source: cheroxy/trunk/src/makefile@ 51

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

#1 modify makefile to seperate build script to library and test module

File size: 2.1 KB
RevLine 
[6]1#----------------------------------------------------------
2# platform
3#----------------------------------------------------------
[51]4OS = 64
5DEBUG = true
[6]6
7ifeq ($(OS), 64)
8 PLATFORM = -m64
9else
10 PLATFORM = -m32
11endif
12
[51]13ifeq ($(DEBUG), true)
14 DEFS = -D_DEBUG
15else
16 DEFS =
17endif
18
[6]19#----------------------------------------------------------
20# env
21#----------------------------------------------------------
22FILES = \
[19]23 CRXException \
[46]24 CRXHttpHeader \
[6]25 CRXHttpRequest \
26 CRXHttpResponse \
27 CRXSocket \
[10]28 CRXMutex \
[29]29 CRXFilter \
[19]30 CRXProxy \
[6]31
[51]32LIB_NAME = cheroxy
33
[6]34CXX = g++
35LD = g++
[51]36AR = ar
37CXXDEFS = -DLINUX -DUNIX -DMTHREAD -D_REENTRANT $(DEFS)
38CXXFLAGS = $(PLATFORM) -Wall -Wpointer-arith -Wcast-align -fPIC -Wno-non-virtual-dtor \
39 -Woverloaded-virtual -Wsynth -Wno-ctor-dtor-privacy \
40 -fno-rtti -fno-common -fno-exceptions -fshort-wchar \
41 -O2 -g
[6]42LDFLAGS = $(PLATFORM)
[51]43EXT_SH = so
44EXT_AR = a
[6]45SHARED_FLAGS = $(PLATFORM) -shared
[51]46ARFLAGS = rc
[6]47
48SOURCE_TYPE = cpp
49TARGET_PATH = ../_build
50OBJ_PATH = ../_obj
[51]51TARGET = $(TARGET_PATH)/lib$(LIB_NAME).$(EXT_SH)
[6]52SRCS = $(addsuffix .$(SOURCE_TYPE),$(FILES))
53OBJS = $(addprefix $(OBJ_PATH)/,$(addsuffix .o,$(FILES)))
54
55INCLUDES = -I../include
[51]56LIBS =
[6]57
58#----------------------------------------------------------
59# label
60#----------------------------------------------------------
61all: $(OBJ_PATH) $(TARGET_PATH) $(TARGET)
62 @echo ========== Complete CHEROXY compilation ==========
63$(TARGET_PATH): dummy
64 @if [ ! -d $@ ] ; then mkdir $@ ; fi
65$(OBJ_PATH): dummy
66 @if [ ! -d $@ ] ; then mkdir $@ ; fi
67
68# link
[51]69$(TARGET_PATH)/%.$(EXT_SH): $(OBJS)
70 $(LD) $(SHARED_FLAGS) -o $@ $?
[6]71
[51]72$(TARGET_PATH)/%.$(EXT_AR): $(OBJS)
73 $(AR) $(ARFLAGS) -o $@ $?
74
[6]75# compile
76$(OBJ_PATH)/%.o: %.$(SOURCE_TYPE)
[51]77 $(CXX) $(CXXFLAGS) $(CXXDEFS) $(INCLUDES) -o $@ -c $?
[6]78
79clean: dummy
80 rm -rf $(TARGET_PATH) $(OBJ_PATH)
81
82dummy:
83
[33]84# test
[51]85test: all
86 $(CXX) $(CXXFLAGS) $(INCLUDES) $(CXXDEFS) -o $(OBJ_PATH)/main.o -c main.cpp
87 $(LD) $(LDFLAGS) -o $(TARGET_PATH)/cheroxy.ex $(OBJ_PATH)/main.o -L$(TARGET_PATH) -lcheroxy -lpthread
88 cd $(TARGET_PATH); LD_LIBRARY_PATH=. ./cheroxy.ex
[6]89
Note: See TracBrowser for help on using the repository browser.