source: libcf/trunk/src/makefile@ 66

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

#1 add codec module (bin <-> hex-string)

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 cf_codec \
45
46TARGET_NAME = cf
47
48CC = gcc
49LD = gcc
50AR = ar
51CDEFS = $(DEFS) -DLINUX -DUNIX -DMTHREAD -D_REENTRANT
52CFLAGS = $(PLATFORM) $(FLAG) -Wall -Wconversion -Wpointer-arith -Wcast-align -fPIC
53LDFLAGS = $(PLATFORM) -Wl,-Bsymbolic
54SHARED_FLAGS = $(LDFLAGS) -shared
55ARFLAGS = rc
56
57SOURCE_TYPE = c
58TARGET_PATH = ../_build
59OBJ_PATH = ../_obj
60TARGET = $(TARGET_PATH)/lib$(TARGET_NAME).$(EXT_SHARED)
61SRCS = $(addsuffix .$(SOURCE_TYPE),$(FILES))
62OBJS = $(addprefix $(OBJ_PATH)/,$(addsuffix .o,$(FILES)))
63
64INCLUDES = -I../include
65LIBS = -lpthread
66
67#----------------------------------------------------------
68# label
69#----------------------------------------------------------
70all: $(OBJ_PATH) $(TARGET_PATH) $(TARGET)
71 @echo ========== Complete CHEROXY compilation ==========
72$(TARGET_PATH): dummy
73 @if [ ! -d $@ ] ; then mkdir $@ ; fi
74$(OBJ_PATH): dummy
75 @if [ ! -d $@ ] ; then mkdir $@ ; fi
76
77# link
78$(TARGET_PATH)/%.$(EXT_SHARED): $(OBJS)
79 $(LD) $(SHARED_FLAGS) -o $@ $?
80
81$(TARGET_PATH)/%.$(EXT_STATIC): $(OBJS)
82 $(AR) $(ARFLAGS) -o $@ $?
83
84# compile
85$(OBJ_PATH)/%.o: %.$(SOURCE_TYPE)
86 $(CC) $(CFLAGS) $(CDEFS) $(INCLUDES) -o $@ -c $?
87
88clean: dummy
89 rm -rf $(TARGET_PATH) $(OBJ_PATH)
90
91dummy:
92
Note: See TracBrowser for help on using the repository browser.