STATIC_LIB ?= y
DEBUG ?= y
HOST_PLATFORM ?= wipp
WILINK_ROOT = ../..
CUDK_ROOT = $(WILINK_ROOT)/CUDK
TI_OS_LIB_DIR=$(CUDK_ROOT)/output
ifeq ($(STATIC_LIB),y)
TI_OS_LIB = tiOsLib.a
else
TI_OS_LIB = tiOsLib.so
endif
ifeq ($(DEBUG),y)
DEBUGFLAGS = -O2 -g -DDEBUG -DTI_DBG -fno-builtin # "-O" is needed to expand inlines
# DEBUGFLAGS+= -DDEBUG_MESSAGES
else
DEBUGFLAGS = -O2
endif
COMMON = $(WILINK_ROOT)/stad
#ARMFLAGS = -fno-common -pipe -msoft-float -mabi=apcs-gnu
ARMFLAGS = -fno-common -pipe -g -fno-builtin -Wall
INCLUDES = \
-I $(CUDK_ROOT)/os/common/inc \
-I $(WILINK_ROOT)/platforms/os/common/inc \
-I $(WILINK_ROOT)/platforms/os/linux/inc \
-I $(WILINK_ROOT)/stad/Export_Inc \
-I $(WILINK_ROOT)/stad/src/Sta_Management \
-I $(WILINK_ROOT)/stad/src/Connection_Managment \
-I $(WILINK_ROOT)/stad/src/Application \
-I $(WILINK_ROOT)/utils \
-I $(WILINK_ROOT)/Txn \
-I $(WILINK_ROOT)/TWD/TWDriver \
-I $(WILINK_ROOT)/TWD/FirmwareApi \
-I $(WILINK_ROOT)/TWD/FW_Transfer/Export_Inc \
-I $(WILINK_ROOT)/TWD/TwIf \
-I $(CUDK_ROOT)/os/linux/inc \
-I $(KERNEL_DIR)/include
OUTPUT_DIR ?= $(CUDK_ROOT)/output
TARGET = $(OUTPUT_DIR)/tiwlan_loader
SRCS := \
tiwlan_loader.c
OBJS = $(SRCS:.c=.o)
DEPS = $(SRCS:%.c=%.d)
CFLAGS = -Wall -Wstrict-prototypes $(DEBUGFLAGS) $(INCLUDES) -D__LINUX__ $(DK_DEFINES)
CFLAGS += -D__BYTE_ORDER_LITTLE_ENDIAN
CFLAGS += -DDRV_NAME='"tiwlan"'
ifneq "$(CROSS_COMPILE)" "" #compile for ARM
CFLAGS += $(ARMFLAGS)
# strip symbols
ifneq "$(DEBUG)" "y"
LDFLAGS = -s
endif
endif # CROSS_COMPILE != ""
.PHONY: all
all: $(TARGET)
$(TARGET): $(OBJS)
$(CROSS_COMPILE)gcc --static $(OBJS) $(TI_OS_LIB_DIR)/$(TI_OS_LIB) -L $(CUDK_ROOT)/output $(LDFLAGS) -lpthread -lc -o $@
$(CROSS_COMPILE)strip -s $(TARGET)
ifeq ("$(findstring $(MAKECMDGOALS), clean cleanall)", "")
-include .depend
endif
%.o: %.cpp
echo $@
$(CROSS_COMPILE)gcc $(CFLAGS) -c $^ -o $@
%.o: %.c
@echo $@
@$(CROSS_COMPILE)gcc $(CFLAGS) -c $< -o $@
%.i: %.c
$(CROSS_COMPILE)gcc $(CFLAGS) -E -c $< > $@
%.d: %.c
@echo $@
@$(CROSS_COMPILE)gcc $< -MT$(^:%.c=%.o) -M $(CFLAGS) > $@
%.d: %.cpp
echo $@
$(CROSS_COMPILE)gcc $< -MT$(^:%.cpp=%.o) -M $(CFLAGS) > $@
.depend: $(DEPS)
rm -f $@
for aa in $^; do cat $$aa >> $@; done
.PHONY: clean
clean:
-rm -f $(TARGET) .depend $(OBJS) $(DEPS) $(SRCS:.c=.i) *.ko .*.cmd .*.flags *.mod.c *~ *.~*