1 #
2 # Copyright (c) 2018 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 # edit PROCLIST list to control how many executables to build
38 #PROCLIST = test_arm
39 #PROCLIST = test_dsp
40 PROCLIST = test_arm test_dsp
42 EXBASE = .
43 include $(EXBASE)/products.mak
45 .PHONY: all $(PROCLIST) help install clean
47 all: $(PROCLIST)
49 $(PROCLIST):
50 @$(ECHO) "#"
51 @$(ECHO) "# Making $@ ..."
52 $(MAKE) -C $(PASDK_INSTALL_DIR)/$@
54 help:
55 @$(ECHO) "make # build executables"
56 @$(ECHO) "make clean # clean everything"
57 @$(ECHO) "make install EXEC_DIR=/.../testbench # install folder"
59 # setup install goal
60 ifeq ($(filter $(MAKECMDGOALS),install),$(MAKECMDGOALS))
61 ifeq (,$(EXEC_DIR))
62 EXEC_DIR=$(CURDIR)/install
63 endif
64 override EXEC_DIR:=$(EXEC_DIR)/pasdk
65 endif
67 install: $(PROCLIST) $(addsuffix _install,$(PROCLIST))
68 $(addsuffix _install,$(PROCLIST)):
69 @$(ECHO) "#"
70 @$(ECHO) "# Making $@ ..."
71 @$(MKDIR) $(EXEC_DIR)/debug
72 @$(MKDIR) $(EXEC_DIR)/release
73 $(MAKE) -C $(subst _install,,$@) EXEC_DIR=$(EXEC_DIR) install
75 clean: $(addsuffix _clean,$(PROCLIST))
76 $(RMDIR) install
78 $(addsuffix _clean,$(PROCLIST)):
79 $(MAKE) -C $(PASDK_INSTALL_DIR)/$(subst _clean,,$@) clean
82 # ======== standard macros ========
83 ifneq (,$(wildcard $(XDC_INSTALL_DIR)/xdc.exe))
84 # use these on Windows
85 CP = $(XDC_INSTALL_DIR)/bin/cp
86 ECHO = $(XDC_INSTALL_DIR)/bin/echo
87 INSTALL = $(XDC_INSTALL_DIR)/bin/cp
88 MKDIR = $(XDC_INSTALL_DIR)/bin/mkdir -p
89 RM = $(XDC_INSTALL_DIR)/bin/rm -f
90 RMDIR = $(XDC_INSTALL_DIR)/bin/rm -rf
91 else
92 # use these on Linux
93 CP = cp
94 ECHO = echo
95 INSTALL = install
96 MKDIR = mkdir -p
97 RM = rm -f
98 RMDIR = rm -rf
99 endif