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