#---------------------------------------------------------- # platform #---------------------------------------------------------- include ../makeinclude/userdefine.mk include ../makeinclude/platform.mk #---------------------------------------------------------- # env #---------------------------------------------------------- TARGET_NAME = cf++ TARGET_SHARED = $(BUILD_PATH)/lib$(TARGET_NAME).$(EXT_SHARED) TARGET_STATIC = $(BUILD_PATH)/lib$(TARGET_NAME).$(EXT_STATIC) ifeq ($(LIBTYPE),shared) TARGET = $(TARGET_SHARED) else TARGET = $(TARGET_STATIC) endif INCLUDES = -I../include -I. LIBRARIES = $(LIBS) # object files SRCS = $(shell find . -name "*.cpp") OBJS = $(addprefix $(BUILD_PATH)/, \ $(addsuffix .o, \ $(shell find . -name "*.cpp" | \ awk -F"/" '{print $$NF}' | \ sed 's/\.cpp//'))) ifeq ($(WITH_JNI),yes) JAVA_INCLUDES = -I../jni -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/$(OS_FAMILY) CFLAGS += -D_USE_JNI endif ifeq ($(OS_FAMILY),aix) AIX_EXPORT = -bE:_export.list endif #---------------------------------------------------------- # label #---------------------------------------------------------- #.PRECIOUS: $(OBJS) all: $(BUILD_PATH) $(TARGET) @echo --------------- Complete --------------- # ldd $(TARGET) || echo cannot ldd; # stat $(TARGET) || echo cannot stat; # mkdir $(BUILD_PATH): @if [ ! -d $@ ] ; then mkdir $@ ; fi # compile $(BUILD_PATH)/%.o: %.cpp $(CXX) $(CFLAGS) $(CDEFS) $(INCLUDES) $(JAVA_INCLUDES) -c -o $@ $< # link $(TARGET_SHARED): $(OBJS) $(LD) $(SHARED_LDFLAGS) $(AIX_EXPORT) -o $@ $? $(LIBRARIES) $(TARGET_STATIC): $(OBJS) $(AR) $(ARFLAGS) $@ $? # clean clean: dummy rm -rf $(TARGET) $(OBJS) dummy: