source: cheroxy/trunk/src/makefile@ 62

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

#1 fix missed flag set in makefile

File size: 2.5 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 CRXException \
40 CRXHttpHeader \
41 CRXHttpRequest \
42 CRXHttpResponse \
43 CRXSocket \
44 CRXMutex \
45 CRXFilter \
46 CRXProxy \
47
48LIB_NAME = cheroxy
49
50CXX = g++
51LD = g++
52AR = ar
53CXXDEFS = -DLINUX -DUNIX -DMTHREAD -D_REENTRANT $(DEFS)
54CXXFLAGS = $(PLATFORM) -Wall -Wpointer-arith -Wcast-align -fPIC -Wno-non-virtual-dtor \
55 -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy \
56 -fno-rtti -fno-common -fno-exceptions -fshort-wchar \
57 -O2 $(FLAG)
58LDFLAGS = $(PLATFORM)
59SHARED_FLAGS = $(LDFLAGS) -shared
60ARFLAGS = rc
61
62SOURCE_TYPE = cpp
63TARGET_PATH = ../_build
64OBJ_PATH = ../_obj
65TARGET = $(TARGET_PATH)/lib$(LIB_NAME).$(EXT_SHARED)
66SRCS = $(addsuffix .$(SOURCE_TYPE),$(FILES))
67OBJS = $(addprefix $(OBJ_PATH)/,$(addsuffix .o,$(FILES)))
68
69INCLUDES = -I../include
70LIBS =
71
72#----------------------------------------------------------
73# label
74#----------------------------------------------------------
75all: $(OBJ_PATH) $(TARGET_PATH) $(TARGET)
76 @echo ========== Complete CHEROXY compilation ==========
77$(TARGET_PATH): dummy
78 @if [ ! -d $@ ] ; then mkdir $@ ; fi
79$(OBJ_PATH): dummy
80 @if [ ! -d $@ ] ; then mkdir $@ ; fi
81
82# link
83$(TARGET_PATH)/%.$(EXT_SHARED): $(OBJS)
84 $(LD) $(SHARED_FLAGS) -o $@ $?
85
86$(TARGET_PATH)/%.$(EXT_STATIC): $(OBJS)
87 $(AR) $(ARFLAGS) -o $@ $?
88
89# compile
90$(OBJ_PATH)/%.o: %.$(SOURCE_TYPE)
91 $(CXX) $(CXXFLAGS) $(CXXDEFS) $(INCLUDES) -o $@ -c $?
92
93clean: dummy
94 rm -rf $(TARGET_PATH) $(OBJ_PATH)
95
96dummy:
97
98# test
99test: all
100 $(CXX) $(CXXFLAGS) $(INCLUDES) $(CXXDEFS) -o $(OBJ_PATH)/main.o -c main.cpp
101 $(LD) $(LDFLAGS) -o $(TARGET_PATH)/cheroxy.ex $(OBJ_PATH)/main.o -L$(TARGET_PATH) -lcheroxy -lpthread
102 cd $(TARGET_PATH); LD_LIBRARY_PATH=. ./cheroxy.ex
103
Note: See TracBrowser for help on using the repository browser.