1 | #----------------------------------------------------------
|
---|
2 | # platform
|
---|
3 | #----------------------------------------------------------
|
---|
4 | include ../makeinclude/userdefine.mk
|
---|
5 | include ../makeinclude/platform.mk
|
---|
6 |
|
---|
7 | #----------------------------------------------------------
|
---|
8 | # env
|
---|
9 | #----------------------------------------------------------
|
---|
10 | TARGET_NAME = cf++
|
---|
11 | TARGET_SHARED = $(BUILD_PATH)/lib$(TARGET_NAME).$(EXT_SHARED)
|
---|
12 | TARGET_STATIC = $(BUILD_PATH)/lib$(TARGET_NAME).$(EXT_STATIC)
|
---|
13 |
|
---|
14 | ifeq ($(LIBTYPE),shared)
|
---|
15 | TARGET = $(TARGET_SHARED)
|
---|
16 | else
|
---|
17 | TARGET = $(TARGET_STATIC)
|
---|
18 | endif
|
---|
19 |
|
---|
20 | INCLUDES = -I../include -I.
|
---|
21 | LIBRARIES = $(LIBS)
|
---|
22 |
|
---|
23 | # object files
|
---|
24 | SRCS = $(shell find . -name "*.cpp")
|
---|
25 | OBJS = $(addprefix $(BUILD_PATH)/, \
|
---|
26 | $(addsuffix .o, \
|
---|
27 | $(shell find . -name "*.cpp" | \
|
---|
28 | awk -F"/" '{print $$NF}' | \
|
---|
29 | sed 's/\.cpp//')))
|
---|
30 |
|
---|
31 | ifeq ($(WITH_JNI),yes)
|
---|
32 | JAVA_INCLUDES = -I../jni -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/$(OS_FAMILY)
|
---|
33 | CFLAGS += -D_USE_JNI
|
---|
34 | endif
|
---|
35 |
|
---|
36 | ifeq ($(OS_FAMILY),aix)
|
---|
37 | AIX_EXPORT = -bE:_export.list
|
---|
38 | endif
|
---|
39 |
|
---|
40 | #----------------------------------------------------------
|
---|
41 | # label
|
---|
42 | #----------------------------------------------------------
|
---|
43 | #.PRECIOUS: $(OBJS)
|
---|
44 |
|
---|
45 | all: $(BUILD_PATH) $(TARGET)
|
---|
46 | @echo --------------- Complete ---------------
|
---|
47 | # ldd $(TARGET) || echo cannot ldd;
|
---|
48 | # stat $(TARGET) || echo cannot stat;
|
---|
49 |
|
---|
50 | # mkdir
|
---|
51 | $(BUILD_PATH):
|
---|
52 | @if [ ! -d $@ ] ; then mkdir $@ ; fi
|
---|
53 |
|
---|
54 | # compile
|
---|
55 | $(BUILD_PATH)/%.o: %.cpp
|
---|
56 | $(CXX) $(CFLAGS) $(CDEFS) $(INCLUDES) $(JAVA_INCLUDES) -c -o $@ $<
|
---|
57 |
|
---|
58 | # link
|
---|
59 | $(TARGET_SHARED): $(OBJS)
|
---|
60 | $(LD) $(SHARED_LDFLAGS) $(AIX_EXPORT) -o $@ $? $(LIBRARIES)
|
---|
61 |
|
---|
62 | $(TARGET_STATIC): $(OBJS)
|
---|
63 | $(AR) $(ARFLAGS) $@ $?
|
---|
64 |
|
---|
65 | # clean
|
---|
66 | clean: dummy
|
---|
67 | rm -rf $(TARGET) $(OBJS)
|
---|
68 |
|
---|
69 | dummy:
|
---|
70 |
|
---|