source: cheroxy/trunk/src/makefile@ 53

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

#1 add and change some flags for cygwin to makefile

File size: 2.5 KB
RevLine 
[6]1#----------------------------------------------------------
2# platform
3#----------------------------------------------------------
[53]4PLATFORM = 64
5DEBUG = true
[6]6
[53]7#----------------------------------------------------------
8# load system info
9#----------------------------------------------------------
10ifeq ($(PLATFORM), 64)
[6]11 PLATFORM = -m64
12else
13 PLATFORM = -m32
14endif
15
[53]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
[51]27ifeq ($(DEBUG), true)
28 DEFS = -D_DEBUG
[53]29 FLAG = -g
[51]30else
31 DEFS =
[53]32 FLAG =
[51]33endif
34
[6]35#----------------------------------------------------------
36# env
37#----------------------------------------------------------
38FILES = \
[19]39 CRXException \
[46]40 CRXHttpHeader \
[6]41 CRXHttpRequest \
42 CRXHttpResponse \
43 CRXSocket \
[10]44 CRXMutex \
[29]45 CRXFilter \
[19]46 CRXProxy \
[6]47
[51]48LIB_NAME = cheroxy
49
[6]50CXX = g++
51LD = g++
[51]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 \
[53]57 -O2 $(FLAG)
[6]58LDFLAGS = $(PLATFORM)
59SHARED_FLAGS = $(PLATFORM) -shared
[51]60ARFLAGS = rc
[6]61
62SOURCE_TYPE = cpp
63TARGET_PATH = ../_build
64OBJ_PATH = ../_obj
[53]65TARGET = $(TARGET_PATH)/lib$(LIB_NAME).$(EXT_SHARED)
[6]66SRCS = $(addsuffix .$(SOURCE_TYPE),$(FILES))
67OBJS = $(addprefix $(OBJ_PATH)/,$(addsuffix .o,$(FILES)))
68
69INCLUDES = -I../include
[51]70LIBS =
[6]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
[53]83$(TARGET_PATH)/%.$(EXT_SHARED): $(OBJS)
[51]84 $(LD) $(SHARED_FLAGS) -o $@ $?
[6]85
[53]86$(TARGET_PATH)/%.$(EXT_STATIC): $(OBJS)
[51]87 $(AR) $(ARFLAGS) -o $@ $?
88
[6]89# compile
90$(OBJ_PATH)/%.o: %.$(SOURCE_TYPE)
[51]91 $(CXX) $(CXXFLAGS) $(CXXDEFS) $(INCLUDES) -o $@ -c $?
[6]92
93clean: dummy
94 rm -rf $(TARGET_PATH) $(OBJ_PATH)
95
96dummy:
97
[33]98# test
[51]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
[6]103
Note: See TracBrowser for help on using the repository browser.