[4] | 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 |
|
---|