NOTICE OF RELOCATION
[keystone-rtos/pa-lld.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 #Default Do not use the shared object libraries for the test/example applications
15 export USEDYNAMIC_LIB ?= "no"
17 # DEVICE
18 export DEVICE ?= k2l
20 # LLD NAME
21 ifeq ($(findstring $(DEVICE),k2h k2k),)
22     export LLD_NAME=pa2
23 else
24     export LLD_NAME=pa
25 endif        
27 # Output for prebuilt generated libraries
28 export ARMV7LIBDIR ?= ./lib
29 export ARMV7OBJDIR ?= ./obj/$(DEVICE)
30 export ARMV7BINDIR ?= ./bin/$(DEVICE)
32 # ROOT Directory
33 export ROOTDIR := ../../..
35 # INCLUDE Directory
36 export INCDIR := ../../..;$(PDK_INSTALL_PATH);$(ROOTDIR)
38 # Common Macros used in make
39 ifndef RM
40 export RM = rm -f
41 endif
43 ifndef CP
44 export CP = cp -p
45 endif
47 export MKDIR = mkdir -p
49 ifndef RMDIR
50 export RMDIR = rm -rf
51 endif
53 ifndef SED
54 export SED = sed
55 endif
57 ifndef MAKE
58 export MAKE = make
59 endif
61 # PHONY Targets
62 .PHONY: all clean lib tests examples install installbin
64 # all rule
65 all: .executables 
66 .executables: lib tests examples
68 # Libraries
69 lib: .libraries
71 # tests Stub to add tests
72 tests: 
73         @$(MAKE) -f ./test/PAUnitTest/$(DEVICE)/armv7/linux/build/makefile all
75 # examples Stub to add Examples
76 examples: 
77         @$(MAKE) -f ./example/emacExample/$(DEVICE)/armv7/linux/build/makefile all
78         @$(MAKE) -f ./example/multicoreExample/$(DEVICE)/armv7/linux/build/makefile all
79         
80 # Make rule to create $(ARMV7LIBDIR)/libpa.a library
81 .libraries: $(ARMV7LIBDIR)/lib$(LLD_NAME).a lib$(LLD_NAME).so
83 $(ARMV7LIBDIR)/lib$(LLD_NAME).a:
84         @$(MAKE) -f ./build/armv7/libpa_aearmv7.mk $@
86 lib$(LLD_NAME).so:
87         @$(MAKE) -f ./build/armv7/libpa_aearmv7.mk $@
89 # Rule to clean $(ARMV7LIBDIR)/lib$(LLD_NMAE).a library
90 clean:
91         @$(MAKE) -f ./build/armv7/libpa_aearmv7.mk $@
92         @$(RM) $(ARMV7LIBDIR)/lib$(LLD_NMAE).a
93         @$(MAKE) -f ./example/emacExample/$(DEVICE)/armv7/linux/build/makefile $@
94         @$(MAKE) -f ./example/multicoreExample/$(DEVICE)/armv7/linux/build/makefile $@
95         @$(MAKE) -f ./test/PAUnitTest/$(DEVICE)/armv7/linux/build/makefile $@
96         @$(RMDIR) $(ARMV7OBJDIR)/$(LLD_NMAE)
97         @$(RMDIR) $(ARMV7BINDIR)/$(LLD_NMAE)
98         @$(RMDIR) $(ARMV7OBJDIR_SO)/$(LLD_NAME)
99         @$(RM) $(ARMV7LIBDIR)/lib$(LLD_NAME).a
100         @$(RM) $(ARMV7LIBDIR)/lib$(LLD_NAME).so
101         @$(RM) $(ARMV7LIBDIR)/lib$(LLD_NAME).so.*
103 installbin:
104         install -d $(INSTALL_BIN_BASE_DIR)
105         install -c -m 755 $(ARMV7BINDIR)/pa/example/paEmacExample.out $(INSTALL_BIN_BASE_DIR)/paEmacExample_$(DEVICE).out
106         install -c -m 755 $(ARMV7BINDIR)/pa/test/paUnitTest.out    $(INSTALL_BIN_BASE_DIR)/paUnitTest_$(DEVICE).out
107         install -c -m 755 $(ARMV7BINDIR)/pa/example/paMCExample.out $(INSTALL_BIN_BASE_DIR)/paMCExample_$(DEVICE).out
108         install -c -m 755 $(ARMV7BINDIR)/pa/example/paEmacExample_so.out $(INSTALL_BIN_BASE_DIR)/paEmacExample_so_$(DEVICE).out
109         install -c -m 755 $(ARMV7BINDIR)/pa/test/paUnitTest_so.out    $(INSTALL_BIN_BASE_DIR)/paUnitTest_so_$(DEVICE).out
110         install -c -m 755 $(ARMV7BINDIR)/pa/example/paMCExample_so.out $(INSTALL_BIN_BASE_DIR)/paMCExample_so_$(DEVICE).out     
112 install:
113         install -d $(INSTALL_INC_BASE_DIR)/ti/drv/pa/fw/v0
114         install -d $(INSTALL_INC_BASE_DIR)/ti/drv/pa/fw/v1
115         install -d $(INSTALL_LIB_BASE_DIR)
116         $(CP) ./*.h          $(INSTALL_INC_BASE_DIR)/ti/drv/pa
117         $(CP) -r ./device    $(INSTALL_INC_BASE_DIR)/ti/drv/pa/
118         $(CP) ./fw/pafw.h    $(INSTALL_INC_BASE_DIR)/ti/drv/pa/fw
119         $(CP) ./fw/v0/pafw.h $(INSTALL_INC_BASE_DIR)/ti/drv/pa/fw/v0
120         $(CP) ./fw/v1/pafw.h $(INSTALL_INC_BASE_DIR)/ti/drv/pa/fw/v1
121         $(CP) ./fw/v0/*_bin.c   $(INSTALL_INC_BASE_DIR)/ti/drv/pa/fw/v0
122         $(CP) ./fw/v1/*_bin.c   $(INSTALL_INC_BASE_DIR)/ti/drv/pa/fw/v1
123         @$(CP) -r $(ARMV7LIBDIR)/*.a       $(INSTALL_LIB_BASE_DIR)
124         @$(CP) -r $(ARMV7LIBDIR)/*.so       $(INSTALL_LIB_BASE_DIR)     
125         @$(CP) -r $(ARMV7LIBDIR)/*.so.*     $(INSTALL_LIB_BASE_DIR)