Merge pull request #3 in PROCESSOR-SDK/traceframework from CATREQ-2702 to master
[keystone-rtos/traceframework.git] / makefile_armv7
1 #*******************************************************************************
2 #* FILE PURPOSE: Top level makefile for Creating Component Libraries for ARM
3 #* architectures
4 #*******************************************************************************
5 #* FILE NAME: makefile
6 #*
7 #* DESCRIPTION: Defines Compiler tools paths, libraries , Build Options 
8 #*
9 #*
10 #*******************************************************************************
11 #*
12 # (Mandatory) Specify where various tools are installed.
14 # Set the device to build the test bin files
15 export DEVICE ?= c6614
17 # Dependent package install location
18 export CUIA_INSTALL_DIR ?= $HOME/cuia_1_00_00_13
20 #Default Do not use the shared object libraries for the test/example applications
21 export USEDYNAMIC_LIB ?= "no"
23 # Output for installing generated library and binary files for install rule
24 export TARGET_ROOT_DIR ?= . 
25 export USRBIN_DIR ?= $(TARGET_ROOT_DIR)/usr/bin
26 export USRLIB_DIR ?= $(TARGET_ROOT_DIR)/usr/lib
27 export USRINC_DIR ?= $(TARGET_ROOT_DIR)/usr/include
29 # Output for prebuilt generated libraries
30 export ARMV7LIBDIR ?= ./lib/armv7
31 export ARMV7BINDIR ?= ./bin/$(DEVICE)
32 export ARMV7OBJDIR ?= ./obj/$(DEVICE)
34 # ROOT Directory
35 export ROOTDIR := ../../..
37 # INCLUDE Directory
38 export INCDIR := ../../..;$(CUIA_INSTALL_DIR);$(CUIA_INSTALL_DIR)/packages;$(CUIA_INSTALL_DIR)/sources;$(ROOTDIR)
40 # Common Macros used in make
41 ifndef RM
42 export RM = rm -f
43 endif
45 ifndef CP
46 export CP = cp -p
47 endif
49 export MKDIR = mkdir -p
51 ifndef RMDIR
52 export RMDIR = rm -rf
53 endif
55 ifndef SED
56 export SED = sed
57 endif
59 ifndef MAKE
60 export MAKE = make
61 endif
63 # PHONY Targets
64 .PHONY: all clean lib tests install
66 # all rule
67 all: .executables 
68 .executables: lib tests
70 # Libraries
71 lib: .libraries
73 # tests Stub to add tests
74 tests: 
75         @$(MAKE) -f ./test/TFUnitTest/$(DEVICE)/armv7/linux/build/makefile all
77 # Make rule to create trace framework libraries
78 .libraries: $(ARMV7LIBDIR)/libtraceframework.a libtraceframework.so
80 $(ARMV7LIBDIR)/libtraceframework.a:
81         @echo Creating the static library
82         @$(MAKE) -f ./build/armv7/libtf_aearmv7.mk $@
84 libtraceframework.so:
85         @echo Creating the shared library
86         @$(MAKE) -f ./build/armv7/libtf_aearmv7.mk $@
88 # Rule to clean traceframework library
89 clean:
90         @$(MAKE) -f ./build/armv7/libtf_aearmv7.mk $@
91         @$(RM) $(ARMV7LIBDIR)/libtraceframework.a
92         @$(MAKE) -f ./test/TFUnitTest/$(DEVICE)/armv7/linux/build/makefile $@
93         @$(RMDIR) $(ARMV7OBJDIR)
94         @$(RMDIR) $(ARMV7BINDIR)
95         @$(RM) $(ARMV7LIBDIR)/libtraceframework.so
96         @$(RM) $(ARMV7LIBDIR)/libtraceframework.so.*
98 install:
99         install -d $(USRINC_DIR)/ti/instrumentation/traceframework
100         install -d $(USRLIB_DIR)
101         install -d $(USRBIN_DIR)        
102         $(CP) ./*.h                         $(USRINC_DIR)/ti/instrumentation/traceframework
103         @$(CP) -r $(ARMV7LIBDIR)/*.a        $(USRLIB_DIR)
104         @$(CP) -r $(ARMV7LIBDIR)/*.so       $(USRLIB_DIR)       
105         @$(CP) -r $(ARMV7LIBDIR)/*.so.*     $(USRLIB_DIR)
106         $(CP) ./test/TFUnitTest/TFUnitTest_input.txt          $(USRBIN_DIR)
107         install -c -m 755 $(ARMV7BINDIR)/tfw/test/tfwUiaArmConsumer.out $(USRBIN_DIR)/tfwUiaArmConsumer_$(DEVICE).out
108         install -c -m 755 $(ARMV7BINDIR)/tfw/test/tfwUiaMinstArmConsumer.out    $(USRBIN_DIR)/tfwUiaMinstArmConsumer_$(DEVICE).out
109         install -c -m 755 $(ARMV7BINDIR)/tfw/test/tfwcUiaProdConsumers.out      $(USRBIN_DIR)/tfwcUiaProdConsumers_$(DEVICE).out