99d0db680e0f36e6e1bdf65ea4182a6ea0a4265f
[processor-sdk/big-data-ipc-examples.git] / host_bios / simple_buffer_example / dsp / makefile
1 #
2 #  Copyright (c) 2017 Texas Instruments Incorporated - http://www.ti.com
3 #  All rights reserved.
4 #
5 #  Redistribution and use in source and binary forms, with or without
6 #  modification, are permitted provided that the following conditions
7 #  are met:
8 #
9 #  *  Redistributions of source code must retain the above copyright
10 #     notice, this list of conditions and the following disclaimer.
11 #
12 #  *  Redistributions in binary form must reproduce the above copyright
13 #     notice, this list of conditions and the following disclaimer in the
14 #     documentation and/or other materials provided with the distribution.
15 #
16 #  *  Neither the name of Texas Instruments Incorporated nor the names of
17 #     its contributors may be used to endorse or promote products derived
18 #     from this software without specific prior written permission.
19 #
20 #  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
21 #  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
22 #  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
23 #  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
24 #  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
25 #  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
26 #  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
27 #  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
28 #  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
29 #  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
30 #  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 #
33 #
34 #  ======== makefile ========
35 #
37 EXBASE = ..
38 include $(EXBASE)/products.mak
40 srcs = MainDsp.c Server.c
41 objs = $(addprefix bin/$(PLATFORM)/$(PROFILE)/obj/,$(patsubst %.c,%.oe66,$(srcs)))
42 CONFIG = bin/$(PLATFORM)/$(PROFILE)/configuro
44 HOSTOS = bios
45 locallibsrcs = shared/bigdataxlat/$(HOSTOS)/bigdataxlat.c
46 locallibobjs = $(addprefix bin/shared/$(PLATFORM)/$(PROFILE)/obj/,$(patsubst %.c,%.oe66,$(locallibsrcs)))
48 PKGPATH := $(BIOS_INSTALL_DIR)/packages
49 PKGPATH := $(PKGPATH)+$(IPC_INSTALL_DIR)/packages
50 PKGPATH := $(PKGPATH)+$(XDC_INSTALL_DIR)/packages
52 -include $(addprefix bin/$(PLATFORM)/$(PROFILE)/obj/,$(patsubst %.c,%.oe66.dep,$(srcs)))
53 -include $(addprefix bin/shared/$(PLATFORM)/$(PROFILE)/obj/,$(patsubst %.c,%.oe66.dep,$(locallibsrcs)))
55 .PRECIOUS: %/compiler.opt %/linker.cmd
56 .PHONY: release debug install install_rov
58 all: release
60 debug:
61         echo Building debug
62         $(MAKE) PROFILE=debug server_dsp.x
64 release:
65         $(MAKE) PROFILE=release server_dsp.x
67 server_dsp.x: bin/$(PLATFORM)/$(PROFILE)/server_dsp.xe66
68         echo executing server_dsp.x
70 bin/$(PLATFORM)/$(PROFILE)/server_dsp.xe66: $(objs) $(locallibobjs) $(libs) $(CONFIG)/linker.cmd
71         @$(ECHO) "#"
72         @$(ECHO) "# Making $@ ..."
73         $(LD) $(LDFLAGS) -o $@ $^ $(LDLIBS)
75 bin/$(PLATFORM)/$(PROFILE)/obj/%.oe66: %.c $(CONFIG)/compiler.opt
76         @$(ECHO) "#"
77         @$(ECHO) "# Making $@ ..."
78         $(CC) $(CPPFLAGS) $(CFLAGS) --output_file=$@ -fc $<
80 bin/shared/$(PLATFORM)/$(PROFILE)/obj/%.oe66: ../%.c $(CONFIG)/compiler.opt
81         @$(ECHO) "#"
82         @$(ECHO) "# Making $@ ..."
83         $(CC) $(CPPFLAGS) $(CFLAGS) --output_file=$@ -fc $<
85 %/compiler.opt: %/linker.cmd ;
86 %/linker.cmd: Dsp.cfg ../shared/$(PLATFORM)/config.bld
87         @$(ECHO) "#"
88         @$(ECHO) "# Making $@ ..."
89         $(XDC_INSTALL_DIR)/xs --xdcpath="$(subst +,;,$(PKGPATH))" \
90             xdc.tools.configuro -o $(CONFIG) \
91             -t ti.targets.elf.C66 \
92             -c $(ti.targets.elf.C66) \
93             -p $(DSP_PLATFORM) \
94             -b ../shared/$(PLATFORM)/config.bld -r $(PROFILE) \
95             --cfgArgs "{ \
96                 procnamelist: [$(PROC_NAME_LIST)], \
97                 procname: \"$(PROC_DSP_NAME)\", \
98                 profile: \"$(PROFILE)\" \
99             }" \
100             Dsp.cfg
102 install:
103         @$(ECHO) "#"
104         @$(ECHO) "# Making $@ ..."
105 #       @$(MKDIR) $(EXEC_DIR)/debug
106 #       $(CP) bin/$(PLATFORM)/debug/server_dsp.xe66 $(EXEC_DIR)/debug
107         @$(MKDIR) $(EXEC_DIR)/release
108         $(CP) bin/$(PLATFORM)/release/server_dsp.xe66 $(EXEC_DIR)/release
110 install_rov:
111         @$(ECHO) "#"
112         @$(ECHO) "# Making $@ ..."
113         @$(MKDIR) $(EXEC_DIR)/release
114         $(CP) bin/$(PLATFORM)/release/configuro/package/cfg/Dsp_pe66.rov.xs $(EXEC_DIR)/release
116 help:
117         @$(ECHO) "make                   # build executable"
118         @$(ECHO) "make clean             # clean everything"
120 clean::
121         $(RMDIR) bin
123 #  ======== install validation ========
124 ifeq (install,$(MAKECMDGOALS))
125 ifeq (,$(EXEC_DIR))
126 $(error must specify EXEC_DIR)
127 endif
128 endif
130 #  ======== toolchain macros ========
131 CGTOOLS = $(ti.targets.elf.C66)
133 CC = $(CGTOOLS)/bin/cl6x -c
134 LD = $(CGTOOLS)/bin/cl6x -z
136 CPPFLAGS =
137 CFLAGS = -qq -pdsw225 -ppd=$@.dep -ppa $(CCPROFILE_$(PROFILE)) -@$(CONFIG)/compiler.opt -I.
138 CFLAGS += -I../shared/bigdataxlat/bios
140 LDFLAGS = -w -q -c -m $(@D)/obj/$(@F).map
141 LDLIBS = -l $(CGTOOLS)/lib/rts6600_elf.lib
143 CCPROFILE_debug = -D_DEBUG_=1 --symdebug:dwarf
144 CCPROFILE_release = -O2
146 #  ======== standard macros ========
147 ifneq (,$(wildcard $(XDC_INSTALL_DIR)/xdc.exe))
148     # use these on Windows
149     CP      = $(XDC_INSTALL_DIR)/bin/cp
150     ECHO    = $(XDC_INSTALL_DIR)/bin/echo
151     MKDIR   = $(XDC_INSTALL_DIR)/bin/mkdir -p
152     RM      = $(XDC_INSTALL_DIR)/bin/rm -f
153     RMDIR   = $(XDC_INSTALL_DIR)/bin/rm -rf
154 else
155     # use these on Linux
156     CP      = cp
157     ECHO    = echo
158     MKDIR   = mkdir -p
159     RM      = rm -f
160     RMDIR   = rm -rf
161 endif
163 #  ======== create output directories ========
164 ifneq (clean,$(MAKECMDGOALS))
165 ifneq (,$(PROFILE))
166 ifeq (,$(wildcard bin/$(PLATFORM)/$(PROFILE)/obj))
167     $(shell $(MKDIR) -p bin/$(PLATFORM)/$(PROFILE)/obj)
168 endif
169 ifeq (,$(wildcard bin/shared/$(PLATFORM)/$(PROFILE)/obj/shared/bigdataxlat/bios))
170     $(shell $(MKDIR) -p bin/shared/$(PLATFORM)/$(PROFILE)/obj/shared/bigdataxlat/bios)
171 endif
172 endif
173 endif