source: libcf/trunk/test/makefile@ 19

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

#1 add logging function with mapped id

File size: 2.2 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_EXECUTE = ex
18EXT_SHARED = so
19EXT_STATIC = a
20
21ifeq ($(findstring CYGWIN,$(UNAME_A)),CYGWIN)
22 # forced
23 PLATFORM = -m32
24 EXT_EXECUTE = exe
25 EXT_SHARED = dll
26 EXT_STATIC = lib
27endif
28
29ifeq ($(DEBUG), true)
30 DEFS = -D_DEBUG
31 FLAG = -g
32else
33 DEFS =
34 FLAG =
35endif
36
37#----------------------------------------------------------
38# env
39#----------------------------------------------------------
40FILES = \
41 test \
42
43TARGET_NAME = test
44
45CC = gcc
46LD = gcc
47AR = ar
48CDEFS = $(DEFS) -DLINUX -DUNIX -DMTHREAD -D_REENTRANT
49CFLAGS = $(PLATFORM) $(FLAG) -Wall -Wconversion -Wpointer-arith -Wcast-align -fPIC
50LDFLAGS = $(PLATFORM) -Wl,-Bsymbolic
51SHARED_FLAGS = $(LDFLAGS) -shared
52ARFLAGS = rc
53
54SOURCE_TYPE = c
55TARGET_PATH = ../_build
56OBJ_PATH = ../_obj
57TARGET = $(TARGET_PATH)/$(TARGET_NAME).$(EXT_EXECUTE)
58SRCS = $(addsuffix .$(SOURCE_TYPE),$(FILES))
59OBJS = $(addprefix $(OBJ_PATH)/,$(addsuffix .o,$(FILES)))
60
61INCLUDES = -I../include
62LIBS = -L$(TARGET_PATH) -lcf -lpthread
63
64LIB_CF = $(TARGET_PATH)/lib$(TARGET_PATH).$(EXT_SHARED)
65
66#----------------------------------------------------------
67# label
68#----------------------------------------------------------
69all: $(OBJ_PATH) $(TARGET_PATH) $(LIB_CF) $(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$(LIB_CF): dummy
76 cd ../src; make all;
77
78# link
79$(TARGET_PATH)/%.$(EXT_EXECUTE): $(OBJS)
80 $(LD) $(LDFLAGS) $(LIBS) -o $@ $?
81
82$(TARGET_PATH)/%.$(EXT_SHARED): $(OBJS)
83 $(LD) $(SHARED_FLAGS) -o $@ $?
84
85$(TARGET_PATH)/%.$(EXT_STATIC): $(OBJS)
86 $(AR) $(ARFLAGS) -o $@ $?
87
88# compile
89$(OBJ_PATH)/%.o: %.$(SOURCE_TYPE)
90 $(CC) $(CFLAGS) $(CDEFS) $(INCLUDES) -o $@ -c $?
91
92clean: dummy
93 rm -rf *.txt
94 rm -rf $(TARGET_PATH) $(OBJ_PATH)
95
96dummy:
97
98test: all
99 LD_LIBRARY_PATH=$(TARGET_PATH) $(TARGET)
Note: See TracBrowser for help on using the repository browser.