Makefile.bak 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. #一般情况无需修改该文件
  2. LOCAL_PATH=$(dir $(abspath $(lastword $(MAKEFILE_LIST))))
  3. ZKSW_PREBUILT_LIB_PATH := $(ZKSW_REAL_PREBUILT)/lib
  4. ZKSW_PREBUILT_INCLUDE_PATH := $(ZKSW_REAL_PREBUILT)/include
  5. EASYUI_COMMON_INCLUDE := $(LOCAL_PATH)/include
  6. #配置源文件目录
  7. PROJ_ROOT_PATH :=./
  8. #源文件后缀名
  9. PROJ_SRC_SUFFIX := %.cpp %.c
  10. PROJ_HEAD_SUFFIX := %.h
  11. # 递归遍历目录下的所有的文件
  12. rwildcard=$(wildcard $1$2) $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2))
  13. # 获取相应的源文件
  14. PROJ_ALL_FILES := $(foreach src_path,$(PROJ_ROOT_PATH), $(call rwildcard,$(src_path),*.*) )
  15. PROJ_SRC_FILES := $(filter $(PROJ_SRC_SUFFIX),$(PROJ_ALL_FILES))
  16. PROJ_HEAD_FILES := $(filter $(PROJ_HEAD_SUFFIX),$(PROJ_ALL_FILES))
  17. # 获取相应的源文件
  18. LOCAL_SRC_FILES := $(PROJ_SRC_FILES)
  19. LOCAL_HEAD_FILES := $(PROJ_HEAD_FILES)
  20. #源文件目录结构
  21. PROJ_DIR_TREE := $(dir $(foreach src_path, $(LOCAL_SRC_FILES), $(call rwildcard,$(src_path),*/) ) )
  22. PROJ_DIR_TREE := $(sort $(PROJ_DIR_TREE))
  23. OBJS_ROOT_DIR=../obj/
  24. OBJS_1 = $(patsubst %.cpp,%.o,$(LOCAL_SRC_FILES))
  25. OBJS_2 = $(patsubst %.c,%.o,$(OBJS_1))
  26. OBJS = $(addprefix $(OBJS_ROOT_DIR),$(OBJS_2))
  27. OBJS_DIR_TREE=$(addprefix $(OBJS_ROOT_DIR),$(PROJ_DIR_TREE))
  28. CFLAGS=-Os -pipe -fno-caller-saves -Wno-unused-result -mfloat-abi=hard -mfpu=vfp -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -Wl,--warn-common -Wl,--warn-once -Wl,-z,combreloc -Wl,-z,defs -DUSE_ANDROID_LOG
  29. CXXFLAGS=-Os -pipe -fno-caller-saves -Wno-unused-result -mfloat-abi=hard -mfpu=vfp -Wformat -Werror=format-security -fstack-protector -D_FORTIFY_SOURCE=1 -Wl,-z,now -Wl,-z,relro -Wl,-z,defs -DUSE_ANDROID_LOG
  30. CXXFLAGS+= -fexceptions -Wall -lstdc++
  31. STATIC_LIB = curl/libcurl.a zlib/libz.a
  32. INCLUDE_DIR := -I$(EASYUI_COMMON_INCLUDE) \
  33. -I$(ZKSW_PREBUILT_INCLUDE_PATH) \
  34. -I. \
  35. -Idep/include
  36. LDFLAGS = -lzkhardware -lzknet -leasyui -llog -pthread -lm -ldl
  37. LDFLAGS += -L$(ZKSW_PREBUILT_LIB_PATH) -L. -Ldep/lib
  38. TARGET=../libs/armeabi/libzkgui.so
  39. ifeq ($(TARGET), $(wildcard $(TARGET)))
  40. DELETE_TARGET=$(TARGET)
  41. endif
  42. # alias commads if compile on windows
  43. RM =rm
  44. MKDIR=mkdir
  45. ECHO=echo
  46. ifeq ($(OS),Windows_NT)
  47. RM=win32-rm
  48. MKDIR=win32-mkdir
  49. ECHO=win32-echo
  50. else
  51. #keep default
  52. endif
  53. #alias end
  54. all: prepare $(TARGET)
  55. @$(ECHO)
  56. @$(ECHO) "[armeabi] Install : libzkgui.so => libs/armeabi/libzkgui.so"
  57. $(OBJS_ROOT_DIR)%.o: %.cpp $(LOCAL_HEAD_FILES)
  58. @$(ECHO) "[armeabi] Compile++ : "$<
  59. @$(CC) -c $< -o $@ $(CXXFLAGS) $(INCLUDE_DIR) $(LDFLAGS)
  60. $(OBJS_ROOT_DIR)%.o: %.c $(LOCAL_HEAD_FILES)
  61. @$(ECHO) "[armeabi] Compile++ : "$<
  62. @$(CC) -c $< -o $@ $(CFLAGS) $(INCLUDE_DIR) $(LDFLAGS)
  63. $(TARGET):$(OBJS)
  64. @$(ECHO) "[armeabi] SharedLibrary : "$@
  65. @$(CC) -fPIC -shared $^ -o $@ $(STATIC_LIB) $(LDFLAGS) $(CXXFLAGS)
  66. prepare:
  67. @$(ECHO) "[armeabi] GCC : "$(CC)
  68. @-$(MKDIR) ../libs/armeabi -p
  69. @-$(MKDIR) $(OBJS_DIR_TREE) -p
  70. @-$(RM) $(TARGET) -rf
  71. clean:
  72. @$(ECHO) "[armeabi] Clean : "$(OBJS_ROOT_DIR)
  73. @-$(RM) $(OBJS_ROOT_DIR) -rf
  74. @$(ECHO) "[armeabi] Clean : "$(TARGET)
  75. @-$(RM) $(TARGET) -rf
  76. .PHONY:all clean prepare $(TARGET)