source: libcf/trunk/src/makefile@ 10

Last change on this file since 10 was 10, checked in by cheese, 11 years ago

#1 arrange some code and change windows project name from lower case to upper case

File size: 2.0 KB
Line 
1#----------------------------------------------------------
2# platform
3#----------------------------------------------------------
4PLATFORM = 64
5DEBUG = true
6
7#----------------------------------------------------------
8# load system info
9#----------------------------------------------------------
10ifeq ($(PLATFORM), 64)
11 PLATFORM = -m64
12else
13 PLATFORM = -m32
14endif
15
16UNAME_A := $(shell uname -a)
17EXT_SHARED = so
18EXT_STATIC = a
19
20ifeq ($(findstring CYGWIN,$(UNAME_A)),CYGWIN)
21 # forced
22 PLATFORM = -m32
23 EXT_SHARED = dll
24 EXT_STATIC = lib
25endif
26
27ifeq ($(DEBUG), true)
28 DEFS = -D_DEBUG
29 FLAG = -g
30else
31 DEFS =
32 FLAG =
33endif
34
35#----------------------------------------------------------
36# env
37#----------------------------------------------------------
38FILES = \
39 cf_file \
40 cf_socket \
41 cf_thread \
42 cf_debug \
43 cf_log \
44
45LIB_NAME = cf
46
47CC = gcc
48LD = gcc
49AR = ar
50CDEFS = $(DEFS) -DLINUX -DUNIX -DMTHREAD -D_REENTRANT
51CFLAGS = $(PLATFORM) $(FLAG) -Wall -Wconversion -Wpointer-arith -Wcast-align -fPIC
52LDFLAGS = $(PLATFORM) -Wl,-Bsymbolic
53SHARED_FLAGS = $(LDFLAGS) -shared
54ARFLAGS = rc
55
56SOURCE_TYPE = c
57TARGET_PATH = ../_build
58OBJ_PATH = ../_obj
59TARGET = $(TARGET_PATH)/lib$(LIB_NAME).$(EXT_SHARED)
60SRCS = $(addsuffix .$(SOURCE_TYPE),$(FILES))
61OBJS = $(addprefix $(OBJ_PATH)/,$(addsuffix .o,$(FILES)))
62
63INCLUDES = -I../include
64LIBS = -lpthread
65
66#----------------------------------------------------------
67# label
68#----------------------------------------------------------
69all: $(OBJ_PATH) $(TARGET_PATH) $(TARGET)
70 @echo ========== Complete CHEROXY compilation ==========
71$(TARGET_PATH): dummy
72 @if [ ! -d $@ ] ; then mkdir $@ ; fi
73$(OBJ_PATH): dummy
74 @if [ ! -d $@ ] ; then mkdir $@ ; fi
75
76# link
77$(TARGET_PATH)/%.$(EXT_SHARED): $(OBJS)
78 $(LD) $(SHARED_FLAGS) -o $@ $?
79
80$(TARGET_PATH)/%.$(EXT_STATIC): $(OBJS)
81 $(AR) $(ARFLAGS) -o $@ $?
82
83# compile
84$(OBJ_PATH)/%.o: %.$(SOURCE_TYPE)
85 $(CC) $(CFLAGS) $(CDEFS) $(INCLUDES) -o $@ -c $?
86
87clean: dummy
88 rm -rf $(TARGET_PATH) $(OBJ_PATH)
89
90dummy:
91
Note: See TracBrowser for help on using the repository browser.