]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - processor-sdk/pdk.git/blob - packages/ti/drv/pa/example/emacExample/k2l/armv7/linux/build/makefile
pa-lld: add to PDK
[processor-sdk/pdk.git] / packages / ti / drv / pa / example / emacExample / k2l / armv7 / linux / build / makefile
1 #
2 # Macro definitions referenced below
3 #
5 empty =
6 space =$(empty) $(empty)
8 ARMV7OBJDIR ?= ./obj/$(DEVICE)
9 ARMV7BINDIR ?= ./bin/$(DEVICE)
10 ARMV7LIBDIR ?= ./lib
12 ARMV7OBJDIR := $(ARMV7OBJDIR)/pa/example/emacExample
13 ARMV7BINDIR := $(ARMV7BINDIR)/pa/example
15 #Cross tools
16 ifdef CROSS_TOOL_INSTALL_PATH
17 # Support backwards compatibility with KeyStone1 approach
18  CC = $(CROSS_TOOL_INSTALL_PATH)/$(CROSS_TOOL_PRFX)gcc
19  AC = $(CROSS_TOOL_INSTALL_PATH)/$(CROSS_TOOL_PRFX)as
20  AR = $(CROSS_TOOL_INSTALL_PATH)/$(CROSS_TOOL_PRFX)ar
21  LD = $(CROSS_TOOL_INSTALL_PATH)/$(CROSS_TOOL_PRFX)gcc
22 endif
24 # INCLUDE Directories
25 QMSS_INC_DIR = $(PDK_INSTALL_PATH)/ti/drv/qmss
26 CPPI_INC_DIR = $(PDK_INSTALL_PATH)/ti/drv/cppi
27 PA_SRC_DIR ?= $(PDK_INSTALL_PATH)/ti/drv/pa
28 PA_TEST_INC_DIR = $(PA_SRC_DIR)/example/emacExample/src
30 INCDIR := $(PDK_INSTALL_PATH);$(PA_TEST_INC_DIR);$(CPPI_INC_DIR);$(PA_TEST_INC_DIR)
32 EXAMPLE_DIR = $(PA_SRC_DIR)/example/emacExample/src
34 # Libraries
35 CPPI_LIB = -lcppi
36 QMSS_LIB = -lqmss
37 PA_LIB   = -lpa2
38 PA_LIB_SO = -lpa_device
39 RM_LIB   = -lrm
41 ifeq ($(USEDYNAMIC_LIB), yes)
42 #presuming ARM executable would depend on dynamic library dependency
43 EXE_EXTN = _so
44 LIBS     = $(QMSS_LIB) $(PA_LIB_SO) $(CPPI_LIB) $(RM_LIB)
45 else
46 #forcing ARM executable to depend on static LLD libraries
47 LIBS = -Wl,-Bstatic $(QMSS_LIB) $(PA_LIB) $(CPPI_LIB) $(RM_LIB) -Wl,-Bdynamic
48 EXE_EXTN =
49 endif
51 # Compiler options
52 INTERNALDEFS = $(DEBUG_FLAG) -D__ARMv7 -DSOC_K2L -DNSS_GEN2 -D_VIRTUAL_ADDR_SUPPORT -D__LINUX_USER_SPACE -D_LITTLE_ENDIAN=1 -DMAKEFILE_BUILD
54 # Linker options
55 INTERNALLINKDEFS = -Wl,--start-group -L $(ARMV7LIBDIR) $(LIBS) -lrt -Wl,--end-group -pthread $(LDFLAGS)
57 EXE=paEmacExample$(EXE_EXTN).out
58 OBJEXT = o 
59 SRCDIR = $(EXAMPLE_DIR):$(EXAMPLE_DIR)/armv7/linux
61 INCS = -I. -I$(strip $(subst ;, -I,$(INCDIR)))
63 VPATH=$(SRCDIR)
65 #List the COMMONSRC Files
66 COMMONSRCC = \
67     cppi_qmss_mgmt.c \
68     pa_mgmt.c \
69     cpsw_singlecore.c \
70     view_ale_table.c \
71     fw_main.c \
72     fw_mem_allocator.c \
73     fw_osal.c \
74     framework.c \
75     sockutils.c \
76     setuprm.c
78 # FLAGS for the COMMONSRC Files
79 COMMONSRCCFLAGS = -I.
81 # Make Rule for the COMMONSRC Files
82 COMMONSRCCOBJS = $(patsubst %.c, $(ARMV7OBJDIR)/%.$(OBJEXT), $(COMMONSRCC))
84 all:$(ARMV7BINDIR)/$(EXE)
86 $(ARMV7BINDIR)/$(EXE): $(COMMONSRCCOBJS) $(ARMV7BINDIR)/.created
87         @echo linking $(COMMONSRCCOBJS) into $@ ...
88         @$(CC) $(COMMONSRCCOBJS) $(INTERNALLINKDEFS) -o $@
90 $(ARMV7OBJDIR)/%.$(OBJEXT): %.c $(ARMV7OBJDIR)/.created
91         @echo compiling $< ...
92         @$(CC) -c $(COMMONSRCCFLAGS) $(INTERNALDEFS) $(INCS)  $< -o $@
94 $(ARMV7OBJDIR)/.created:
95         @mkdir -p $(ARMV7OBJDIR)
96         @touch $(ARMV7OBJDIR)/.created
98 $(ARMV7BINDIR)/.created:
99         @mkdir -p $(ARMV7BINDIR)
100         @touch $(ARMV7BINDIR)/.created
102 clean:
103         @rm -fr $(ARMV7OBJDIR)
104         @rm -fr $(ARMV7BINDIR)