1DEBUG ?= y
2STATIC_LIB ?= y
3EXC ?= n
4SG ?= n
5DRIVER_PROFILING ?= n
6
7OUTPUT_DIR ?= ../Output
8
9LIB_NAME = libtiOsLib
10
11ifeq ($(CUDK_ROOT), "")
12	CUDK_ROOT = ..
13endif
14
15ifeq ($(DEBUG),y)
16  DEBUGFLAGS = -O0 -g -fno-builtin -DDEBUG -D TI_DBG  # "-O" is needed to expand inlines
17else
18  DEBUGFLAGS = -O2
19endif
20DEBUGFLAGS+= -DHOST_COMPILE
21
22
23ifeq ($(STATIC_LIB),y)
24	TARGET = $(OUTPUT_DIR)/$(LIB_NAME).a
25else
26	TARGET = $(OUTPUT_DIR)/$(LIB_NAME).so
27endif
28
29CUDK_ROOT ?= ..
30IPC_DIR = $(CUDK_ROOT)/IPC
31OAL_DIR = $(CUDK_ROOT)/OAL
32CROSS_COMPILE ?= arm_v4t_le-
33
34SRCS = $(OAL_DIR)/Common/TI_OAL.cpp \
35       $(OAL_DIR)/Pform/Linux/TILibLinux.cpp \
36       $(CUDK_ROOT)/UtilityAdapter/Linux/IpcWithTISMLinux.cpp \
37       $(CUDK_ROOT)/UtilityAdapter/TI_AdapterApi.cpp \
38       $(CUDK_ROOT)/UtilityAdapter/TI_Adapter.cpp \
39       $(CUDK_ROOT)/UtilityAdapter/CTI_Adapter.cpp \
40       $(CUDK_ROOT)/UtilityAdapter/TI_IPC_Suppl.cpp \
41       $(IPC_DIR)/Linux/ipc_event.c \
42       $(IPC_DIR)/Linux/cu_ipc.c \
43       $(IPC_DIR)/Linux/ipc_user.c
44
45ifeq ($(EXC), y)
46SRCS += $(CUDK_ROOT)/UtilityAdapter/EXC/CTI_AdapterEXC.cpp \
47        $(CUDK_ROOT)/UtilityAdapter/EXC/TI_AdapterApiEXC.cpp
48
49CFLAGS := -D EXC_MODULE_INCLUDED
50endif
51
52ifeq ($(SG), y)
53CFLAGS += -D BTH_COEXISTENCE
54endif
55
56ifeq ($(DRIVER_PROFILING),y)
57   CFLAGS += -D DRIVER_PROFILING
58endif
59
60#ARMFLAGS  = -Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -Uarm -fno-common -pipe
61#ARMFLAGS += -mapcs -mno-sched-prolog -mapcs-32 -D__LINUX_ARM_ARCH__=4 -march=armv4
62#ARMFLAGS += -mtune=arm9tdmi -mshort-load-bytes -msoft-float  -iwithprefix include
63
64ARMFLAGS  = -fno-common -pipe
65
66
67INCLUDEDIR = -I $(CUDK_ROOT)/Inc \
68	-I $(CUDK_ROOT)/OAL/Common \
69	-I $(CUDK_ROOT)/UtilityAdapter \
70	-I $(CUDK_ROOT)/../common/inc \
71	-I $(CUDK_ROOT)/../common/src/hal/FirmwareApi \
72	-I $(CUDK_ROOT)/TISMgr \
73	-I $(CUDK_ROOT)/../pform/linux/inc \
74	-I $(CUDK_ROOT)/../pform/common/inc \
75	-I $(CUDK_ROOT)/IPC/Linux \
76	-I $(CUDK_ROOT)/CLI \
77	-I $(CUDK_ROOT)/CLI/drv_inc \
78	-I $(CUDK_ROOT)/CLI/pform_inc
79
80ifeq ($(EXC),y)
81        INCLUDEDIR += \
82        -I $(CUDK_ROOT)/../common/inc/EXC \
83        -I $(CUDK_ROOT)/Inc/EXC
84endif
85	
86	
87	
88
89CFLAGS += -Wall -D__LINUX__ -D_IPC_SUPPL -DTI_EMBEDDED_SUPPLICANT
90CFLAGS += $(DEBUGFLAGS)
91CFLAGS += $(INCLUDEDIR) $(ARMFLAGS)
92
93OBJS = $(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(SRCS)))
94
95DEPS = $(OBJS:%.o=%.d)
96
97all: $(TARGET)
98
99$(OUTPUT_DIR)/libtiOsLib.a: $(OBJS)
100	rm -f $@
101	$(CROSS_COMPILE)$(AR) -q $@ $^
102
103$(OUTPUT_DIR)/libtiOsLib.so: $(OBJS)
104	rm -f $@
105	$(CROSS_COMPILE)gcc -shared $(CFLAGS) $(OBJS) -lc -o $@
106	$(CROSS_COMPILE)strip $@
107
108ifeq ($(findstring "clean", $(MAKECMDGOALS)), "")
109-include .depend
110endif
111
112%.o: %.cpp
113	@echo $@
114	@$(CROSS_COMPILE)gcc -c $(CFLAGS) $< -o $@
115
116%.o: %.c
117	@echo $@
118	@$(CROSS_COMPILE)gcc -c $(CFLAGS) $< -o $@
119
120%.i: %.cpp %.c
121	$(CROSS_COMPILE)gcc -E -v -c $(CFLAGS) $< -o $@
122
123%.s: %.cpp %.c
124	$(CROSS_COMPILE)gcc -save-temps -c $(CFLAGS) $< -o $@
125
126%.d: %.cpp
127	@echo $@
128	@$(CROSS_COMPILE)gcc $< -MT$(^:%.cpp=%.o) -M $(CFLAGS) > $@
129
130%.d: %.c
131	@echo $@
132	@$(CROSS_COMPILE)gcc $< -MT$(^:%.c=%.o) -M $(CFLAGS) > $@
133
134.depend: $(DEPS)
135	rm -f $@
136	for aa in $^; do cat $$aa >> $@; done
137
138clean:
139	@rm -f .depend $(OBJS) $(DEPS) $(OUTPUT_DIR)/libtiOsLib.a $(OUTPUT_DIR)/libtiOsLib.so
140
141TAGS: $(SRCS)
142	{ find ${BASE_DIR}/common -name '*.h' -print ; \
143	  find ${BASE_DIR}/Test -name '*.h' -print ; \
144	  find . -name '*.h' -print ; } | etags -
145	  etags -a $(SRCS)
146