1STATIC_LIB ?= y 2DEBUG ?= y 3BUILD_SUPPL ?= y 4SUPPL ?= ANDROID 5WPA_ENTERPRISE ?= y 6ETH_SUPPORT ?= n 7 8ifeq ($(DEBUG),y) 9 DEBUGFLAGS = -O2 -g -DDEBUG -DTI_DBG -fno-builtin 10else 11 DEBUGFLAGS = -O2 12endif 13 14WILINK_ROOT = ../../../.. 15CUDK_ROOT = $(WILINK_ROOT)/CUDK 16LIB_NAME = tiOsLib 17OUTPUT_DIR ?= $(CUDK_ROOT)/output 18 19DK_DEFINES = 20ifeq ($(WPA_ENTERPRISE), y) 21 DK_DEFINES += -D WPA_ENTERPRISE 22endif 23 24ifeq ($(BUILD_SUPPL), y) 25 DK_DEFINES += -D WPA_SUPPLICANT -D CONFIG_CTRL_IFACE -D CONFIG_CTRL_IFACE_UNIX 26 -include $(CUDK_ROOT)/$(TI_SUPP_LIB_DIR)/.config 27 ifeq ($(CONFIG_EAP_WSC), y) 28 DK_DEFINES += -DCONFIG_EAP_WSC 29 endif 30endif 31 32ifeq ($(STATIC_LIB),y) 33 TARGET = $(OUTPUT_DIR)/$(LIB_NAME).a 34else 35 TARGET = $(OUTPUT_DIR)/$(LIB_NAME).so 36endif 37 38ifeq ($(ETH_SUPPORT), y) 39 DK_DEFINES += -DETH_SUPPORT 40endif 41 42SRCS := \ 43 cu_wext.c \ 44 ipc_sta.c \ 45 ipc_event.c \ 46 ipc_wpa.c \ 47 os_trans.c \ 48 ParsEvent.c \ 49 osapi.c 50ifeq ($(BUILD_SUPPL), y) 51SRCS += \ 52 $(CUDK_ROOT)/$(TI_SUPP_LIB_DIR)/wpa_ctrl.c 53endif 54 55OBJS = $(SRCS:.c=.o) 56 57DEPS = $(SRCS:%.c=%.d) 58 59ARMFLAGS = -fno-common -pipe 60 61INCLUDES = \ 62 -I ../inc \ 63 -I ../../common/inc \ 64 -I $(WILINK_ROOT)/stad/Export_Inc \ 65 -I $(WILINK_ROOT)/stad/src/Sta_Management \ 66 -I $(WILINK_ROOT)/stad/src/Application \ 67 -I $(WILINK_ROOT)/utils \ 68 -I $(WILINK_ROOT)/Txn \ 69 -I $(WILINK_ROOT)/TWD/TWDriver \ 70 -I $(WILINK_ROOT)/TWD/FirmwareApi \ 71 -I $(WILINK_ROOT)/TWD/FW_Transfer/Export_Inc \ 72 -I $(WILINK_ROOT)/TWD/TwIf \ 73 -I $(WILINK_ROOT)/platforms/os/linux/inc \ 74 -I $(WILINK_ROOT)/platforms/os/common/inc \ 75 -I $(WILINK_ROOT)/TWD/FirmwareApi \ 76 -I $(CUDK_ROOT)/$(TI_SUPP_LIB_DIR) \ 77 -I $(CUDK_ROOT)/configurationutility/inc 78 79CFLAGS = -Wall -Wstrict-prototypes $(DEBUGFLAGS) $(INCLUDES) -D__LINUX__ $(DK_DEFINES) -D__BYTE_ORDER_LITTLE_ENDIAN 80 81ifneq "$(CROSS_COMPILE)" "" #compile for ARM 82 CFLAGS += $(ARMFLAGS) 83 # strip symbols 84ifneq "$(DEBUG)" "y" 85 LDFLAGS = -s 86endif 87 88endif # CROSS_COMPILE != "" 89 90.PHONY: all 91 92all: $(TARGET) 93 94$(OUTPUT_DIR)/$(LIB_NAME).a: $(OBJS) 95 rm -f $@ 96 $(CROSS_COMPILE)$(AR) -q $@ $^ 97 98$(OUTPUT_DIR)/$(LIB_NAME).so: $(OBJS) 99 rm -f $@ 100 $(CROSS_COMPILE)gcc -shared $(CFLAGS) $(OBJS) -lc -o $@ 101 $(CROSS_COMPILE)strip $@ 102 103ifeq ("$(findstring $(MAKECMDGOALS), clean cleanall)", "") 104-include .depend 105endif 106 107%.o: %.cpp 108 @echo $@ 109 @$(CROSS_COMPILE)gcc $(CFLAGS) -c $^ -o $@ 110 111%.o: %.c 112 @echo $@ 113 @$(CROSS_COMPILE)gcc -s $(CFLAGS) -c $< -o $@ 114 115%.i: %.c 116 @$(CROSS_COMPILE)gcc $(CFLAGS) -E -c $< > $@ 117 118%.d: %.c 119 @echo $@ 120 @$(CROSS_COMPILE)gcc $< -MT$(^:%.c=%.o) -M $(CFLAGS) > $@ 121 122%.d: %.cpp 123 @echo $@ 124 @$(CROSS_COMPILE)gcc $< -MT$(^:%.cpp=%.o) -M $(CFLAGS) > $@ 125 126.depend: $(DEPS) 127 rm -f $@ 128 for aa in $^; do cat $$aa >> $@; done 129 130.PHONY: clean 131clean: 132 @echo cleaning OS library... 133 rm -f .depend $(OBJS) $(DEPS) $(SRCS:.c=.i) *.ko .*.cmd .*.flags *.mod.c *~ *.~* $(TARGET) 134 135cleanall: clean 136 137