]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/pdk.git/blob - packages/ti/drv/gpio/test/baremetal/c66/makefile
Merge pull request #17 in PROCESSOR-SDK/pdk from PRSDK-7323 to master
[processor-sdk/pdk.git] / packages / ti / drv / gpio / test / baremetal / c66 / makefile
1 # Copyright (C) 2015 Texas Instruments Incorporated - http://www.ti.com/\r
2 #\r
3 #\r
4 #  Redistribution and use in source and binary forms, with or without\r
5 #  modification, are permitted provided that the following conditions\r
6 #  are met:\r
7 #\r
8 #    Redistributions of source code must retain the above copyright\r
9 #    notice, this list of conditions and the following disclaimer.\r
10 #\r
11 #    Redistributions in binary form must reproduce the above copyright\r
12 #    notice, this list of conditions and the following disclaimer in the\r
13 #    documentation and/or other materials provided with the\r
14 #    distribution.\r
15 #\r
16 #    Neither the name of Texas Instruments Incorporated nor the names of\r
17 #    its contributors may be used to endorse or promote products derived\r
18 #    from this software without specific prior written permission.\r
19 #\r
20 #  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\r
21 #  "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\r
22 #  LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r
23 #  A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\r
24 #  OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r
25 #  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r
26 #  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r
27 #  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r
28 #  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r
29 #  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r
30 #  OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r
31 \r
32 MODULE =gpio\r
33 #DEVICE_LC = $(shell echo $(DEVICE) | tr A-Z a-z)\r
34 lc = $(subst A,a,$(subst B,b,$(subst C,c,$(subst D,d,$(subst E,e,$(subst F,f,$(subst G,g,$(subst H,h,$(subst I,i,$(subst J,j,$(subst K,k,$(subst L,l,$(subst M,m,$(subst N,n,$(subst O,o,$(subst P,p,$(subst Q,q,$(subst R,r,$(subst S,s,$(subst T,t,$(subst U,u,$(subst V,v,$(subst W,w,$(subst X,x,$(subst Y,y,$(subst Z,z,$1))))))))))))))))))))))))))\r
35 ifeq ($(DEVICE),K2K)\r
36         DEVICE2 = K2H\r
37 else\r
38         DEVICE2 = $(DEVICE)\r
39 endif\r
40 DEVICE_LC = $(call lc,$(DEVICE))\r
41 ifeq ($(DEVICE_LC),k2k)\r
42         DEVICE_LC2 = k2h\r
43 else\r
44         DEVICE_LC2 = $(DEVICE_LC)\r
45 endif\r
46 \r
47 # Module directories\r
48 CSL_DIR = $(PDK_INSTALL_PATH)/ti/csl/\r
49 UART_DIR = $(PDK_INSTALL_PATH)/ti/drv/uart\r
50 GPIO_DIR = $(PDK_INSTALL_PATH)/ti/drv/$(MODULE)\r
51 OSAL_DIR = $(PDK_INSTALL_PATH)/ti/osal\r
52 BOARD_DIR = $(PDK_INSTALL_PATH)/ti/board\r
53 \r
54 # Output directories\r
55 TESTOBJDIR = $(GPIO_DIR)/test/baremetal/c66/$(DEVICE_LC)/obj\r
56 TESTBINDIR = $(GPIO_DIR)/test/baremetal/c66/$(DEVICE_LC)/bin\r
57 \r
58 # LIB Directories\r
59 CSL_LIB_DIR = $(CSL_DIR)/lib/$(DEVICE_LC)/c66\r
60 UART_LIB_DIR = $(UART_DIR)/lib/$(DEVICE_LC2)/c66\r
61 GPIO_LIB_DIR = $(GPIO_DIR)/lib/$(DEVICE_LC2)/c66\r
62 OSAL_LIB_DIR = $(OSAL_DIR)/lib/nonos/$(DEVICE_LC2)/c66\r
63 BOARD_LIB_DIR = $(BOARD_DIR)/lib/evm$(DEVICE2)/c66\r
64 \r
65 # INCLUDE Directories\r
66 INCDIR := $(CSL_DIR);$(UART_DIR);$(GPIO_DIR);$(PDK_INSTALL_PATH);$(OSAL_DIR);$(BOARD_DIR)\r
67 \r
68 # Cross tools\r
69 ifdef CGTOOLS\r
70 # Support backwards compatibility with KeyStone1 approach\r
71  CC = $(CGTOOLS)/bin/cl6x\r
72 endif\r
73 \r
74 COPTS= -g -c -mv6600 -ml3 -I $(CGTOOLS)/include\r
75 AOPTS= -g -c -mv6600 -eogem.oa\r
76 \r
77 ifeq ($(ENDIAN),big)\r
78 ifeq ($(ABI_FORMAT),coffabi)\r
79         COPTS+= -me --abi=coffabi -eo.oe66e\r
80         AOPTS+= -me --abi=coffabi -ea.se66e\r
81 else\r
82         COPTS+= -me --abi=eabi -eo.oe66e --strip_coff_underscore\r
83         AOPTS+= -me --abi=eabi -ea.se66e --strip_coff_underscore\r
84         OBJEXT = oe66e\r
85         ASMOBJEXT = se66e\r
86 endif\r
87         CSL_LIB= $(CSL_LIB_DIR)/ti.csl.ae66e\r
88         CSL_INTC_LIB= $(CSL_LIB_DIR)/ti.csl.intc.ae66e\r
89         OSAL_LIB= $(OSAL_LIB_DIR)/ti.osal.ae66e\r
90         BOARD_LIB= $(BOARD_LIB_DIR)/ti.board.ae66e\r
91         UART_LIB= $(UART_LIB_DIR)/ti.drv.uart.$(DEVICE_LC2).ae66e\r
92         GPIO_LIB= $(GPIO_LIB_DIR)/ti.drv.gpio.$(DEVICE_LC2).ae66e\r
93 else\r
94 ifeq ($(ABI_FORMAT),coffabi)\r
95         COPTS+= --abi=coffabi -eo.oe66\r
96         AOPTS+= --abi=coffabi  -ea.se66\r
97 else\r
98         COPTS+= --abi=eabi -eo.oe66 --strip_coff_underscore\r
99         AOPTS+= --abi=eabi -ea.se66 --strip_coff_underscore\r
100 endif\r
101         CSL_LIB= $(CSL_LIB_DIR)/ti.csl.ae66\r
102         CSL_INTC_LIB= $(CSL_LIB_DIR)/ti.csl.intc.ae66\r
103         OSAL_LIB= $(OSAL_LIB_DIR)/ti.osal.ae66\r
104         BOARD_LIB= $(BOARD_LIB_DIR)/ti.board.ae66\r
105         UART_LIB= $(UART_LIB_DIR)/ti.drv.uart.$(DEVICE_LC2).ae66\r
106         GPIO_LIB= $(GPIO_LIB_DIR)/ti.drv.gpio.$(DEVICE_LC2).ae66\r
107         OBJEXT = oe66\r
108         ASMOBJEXT = se66\r
109 endif\r
110 \r
111 # Libraries\r
112 LIB= -l$(BOARD_LIB) -l$(UART_LIB) -l$(GPIO_LIB) -l$(OSAL_LIB) -l$(CSL_LIB) -l$(CSL_INTC_LIB) -l$(CGTOOLS)/lib/rts6600_elf.lib -l$(CGTOOLS)/lib/libc.a \r
113 \r
114 # Compiler options\r
115 INTERNALDEFS = -DSOC_$(DEVICE) -DEVM_$(DEVICE) -DBARE_METAL\r
116 \r
117 # Linker options\r
118 LOPTS = -mv6600 --abi=eabi -z -c\r
119 \r
120 # Executable using device independent library and device object file\r
121 EXE1=GPIO_LedBlink_$(DEVICE)_EVM_c66xTestproject\r
122 EXE2=GPIO_LedBlink_$(DEVICE)_EVM_c66xExampleproject\r
123 \r
124 SRCDIR = $(GPIO_DIR)/test/src\r
125 TESTDIR = $(GPIO_DIR)/test/led_blink\r
126 EXAMPLEDIR = $(GPIO_DIR)/example/led_blink\r
127 \r
128 INCS = -I. -I$(strip $(subst ;, -I,$(INCDIR)))\r
129 \r
130 VPATH=$(TESTDIR)/src:$(TESTDIR)/$(DEVICE_LC2):$(EXAMPLEDIR)/src:$(UART_DIR)/test/src\r
131 \r
132 #List the Source Files\r
133 TEST_SRC = \\r
134         main_led_blink.c \\r
135         GPIO_board.c\r
136 \r
137 EXAMPLE_SRC = \\r
138         main_led_blink.c \\r
139         GPIO_board.c\r
140 \r
141 UART_SRC_DEV = \\r
142         UART_board.c\r
143         \r
144 # Make Rule for the SRC Files\r
145 TEST_SRC_OBJS = $(patsubst %.c, $(TESTOBJDIR)/%.$(OBJEXT), $(TEST_SRC))\r
146 EXAMPLE_SRC_OBJS = $(patsubst %.c, $(TESTOBJDIR)/%.$(OBJEXT), $(EXAMPLE_SRC))\r
147 UART_SRC_DEV_OBJS = $(patsubst %.c, $(TESTOBJDIR)/%.$(OBJEXT), $(UART_SRC_DEV))\r
148 \r
149 all:$(TESTOBJDIR)/.created $(TESTBINDIR)/$(EXE1).out $(TESTBINDIR)/$(EXE2).out\r
150 \r
151 $(TESTBINDIR)/$(EXE1).out: $(TEST_SRC_OBJS) $(UART_SRC_DEV_OBJS) $(TESTBINDIR)/.created $(TESTOBJDIR)/.created\r
152         echo linking $(TEST_SRC_OBJS) into $@ ...\r
153         $(CC) $(LOPTS) $(TESTDIR)/$(DEVICE_LC2)/linker.cmd $(TEST_SRC_OBJS) $(UART_SRC_DEV_OBJS) $(LIB) -o $@ -m $(TESTBINDIR)/$(EXE1).map\r
154 \r
155 $(TESTBINDIR)/$(EXE2).out: $(EXAMPLE_SRC_OBJS) $(UART_SRC_DEV_OBJS) $(TESTBINDIR)/.created $(TESTOBJDIR)/.created\r
156         echo linking $(EXAMPLE_SRC_OBJS) into $@ ...\r
157         $(CC) $(LOPTS) $(TESTDIR)/$(DEVICE_LC2)/linker.cmd $(EXAMPLE_SRC_OBJS) $(UART_SRC_DEV_OBJS) $(LIB) -o $@ -m $(TESTBINDIR)/$(EXE2).map\r
158 \r
159 $(TESTOBJDIR)/%.$(OBJEXT): %.c $(TESTOBJDIR)/.created\r
160         echo compiling $< ...\r
161         $(CC) -c $(COPTS) $(INTERNALDEFS) $(INCS)  $< -fr $(dir $@) -fo $(notdir $@)\r
162 \r
163 $(TESTOBJDIR)/%.$(ASMOBJEXT): %.S $(TESTOBJDIR)/.created\r
164         @echo compiling $< ...\r
165         @$(CC) -c $(AOPTS) $(INTERNALDEFS) $(INCS)  $< -fr $(dir $@) -fo $(notdir $@)\r
166 \r
167 $(TESTOBJDIR)/.created:\r
168         mkdir -p $(TESTOBJDIR)\r
169         touch $(TESTOBJDIR)/.created\r
170 \r
171 $(TESTBINDIR)/.created:\r
172         mkdir -p $(TESTBINDIR)\r
173         touch $(TESTBINDIR)/.created\r
174 \r
175 clean:\r
176         @rm -f $(TESTBINDIR)/$(EXE1).out $(TESTBINDIR)/$(EXE1).map\r
177         @rm -f $(TESTBINDIR)/$(EXE2).out $(TESTBINDIR)/$(EXE2).map\r
178         @rm -f $(TEST_SRC_OBJS) $(EXAMPLE_SRC_OBJS) $(UART_SRC_DEV_OBJS) $(TESTBINDIR)/.created $(TESTOBJDIR)/.created\r
179 \r
180 \r