[6] | 1 | #----------------------------------------------------------
|
---|
| 2 | # platform
|
---|
| 3 | #----------------------------------------------------------
|
---|
[51] | 4 | OS = 64
|
---|
| 5 | DEBUG = true
|
---|
[6] | 6 |
|
---|
| 7 | ifeq ($(OS), 64)
|
---|
| 8 | PLATFORM = -m64
|
---|
| 9 | else
|
---|
| 10 | PLATFORM = -m32
|
---|
| 11 | endif
|
---|
| 12 |
|
---|
[51] | 13 | ifeq ($(DEBUG), true)
|
---|
| 14 | DEFS = -D_DEBUG
|
---|
| 15 | else
|
---|
| 16 | DEFS =
|
---|
| 17 | endif
|
---|
| 18 |
|
---|
[6] | 19 | #----------------------------------------------------------
|
---|
| 20 | # env
|
---|
| 21 | #----------------------------------------------------------
|
---|
| 22 | FILES = \
|
---|
[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] | 32 | LIB_NAME = cheroxy
|
---|
| 33 |
|
---|
[6] | 34 | CXX = g++
|
---|
| 35 | LD = g++
|
---|
[51] | 36 | AR = ar
|
---|
| 37 | CXXDEFS = -DLINUX -DUNIX -DMTHREAD -D_REENTRANT $(DEFS)
|
---|
| 38 | CXXFLAGS = $(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] | 42 | LDFLAGS = $(PLATFORM)
|
---|
[51] | 43 | EXT_SH = so
|
---|
| 44 | EXT_AR = a
|
---|
[6] | 45 | SHARED_FLAGS = $(PLATFORM) -shared
|
---|
[51] | 46 | ARFLAGS = rc
|
---|
[6] | 47 |
|
---|
| 48 | SOURCE_TYPE = cpp
|
---|
| 49 | TARGET_PATH = ../_build
|
---|
| 50 | OBJ_PATH = ../_obj
|
---|
[51] | 51 | TARGET = $(TARGET_PATH)/lib$(LIB_NAME).$(EXT_SH)
|
---|
[6] | 52 | SRCS = $(addsuffix .$(SOURCE_TYPE),$(FILES))
|
---|
| 53 | OBJS = $(addprefix $(OBJ_PATH)/,$(addsuffix .o,$(FILES)))
|
---|
| 54 |
|
---|
| 55 | INCLUDES = -I../include
|
---|
[51] | 56 | LIBS =
|
---|
[6] | 57 |
|
---|
| 58 | #----------------------------------------------------------
|
---|
| 59 | # label
|
---|
| 60 | #----------------------------------------------------------
|
---|
| 61 | all: $(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 |
|
---|
| 79 | clean: dummy
|
---|
| 80 | rm -rf $(TARGET_PATH) $(OBJ_PATH)
|
---|
| 81 |
|
---|
| 82 | dummy:
|
---|
| 83 |
|
---|
[33] | 84 | # test
|
---|
[51] | 85 | test: 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 |
|
---|