summaryrefslogtreecommitdiffstats
path: root/src/occ/rtls/test/app.mk
blob: e5767167f049a6257defd0eddfb109e1758d90f1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
# $Id$

#  @file app.mk
#
#  @brief mk occ application
#
#  This Makefile is included-ed into application Makefiles and
#  encapsulates the steps necessary to create application images.
#
#  The application Makefile (user) must define the following variables:
#
#  APP     - The name of the application
#  SOURCES - The list of local source files that implement the
#            application.
#
#  The application Makefile (user) may optionally define the following
#  variables:  
#
#  D    - The value of $(D) is appended to DEFS defined by ssx.mk
#
#  MODE - The following modes are recognized:
#
#         validation - (Default) An application that requires all SSX
#         services. 
#
#         firmware - An interrupt only configuration. 
#
#  The make process creates the following files:
#
#  $(APP).out  - The PowerPC-ELF version of the application
#  $(APP).bin  - A binary SRAM image of the application
#  $(APP).map  - The linker map of the application
#  @verbatim
#
#
# Change Log ******************************************************************
# Flag     Defect/Feature  User        Date         Description
# ------   --------------  ----------  ------------ -----------
#                          np, dw      08/10/2011   created by nguyenp & dwoodham
#                                                   borrowed from occ/thread/test/app.mk
#  @01                     dwoodham    08/30/2011   Use link script from OCC vs. from SSX
#  @rc003                  rickylie    02/03/2012   Verify & Clean Up OCC Headers & Comments
#
# @endverbatim
#


OCC = ../../
SSX = ../../../ssx
LIB = ../../../lib
PGP = $(SSX)/pgp

ifeq "$(MODE)" "firmware"
SSX_TIMER_SUPPORT = 0
SSX_THREAD_SUPPORT = 0
endif

export SSX_TIMER_SUPPORT
export SSX_THREAD_SUPPORT
export PPC405_MMU_SUPPORT
export PGP_ASYNC_SUPPORT

INCLUDES = -I $(OCC) -I$(LIB)

include $(PGP)/ssx.mk

C-OBJECTS = $(SOURCES:.c=.o)
OBJECTS   = $(C-OBJECTS:.S=.o)

LDFLAGS = -L $(SSX)/ssx -L $(SSX)/ppc32 -L $(SSX)/ppc405 -L $(SSX)/pgp \
	  -L $(OCC) -L $(LIB) -lssx -lppc32

DEFS += $(D)

all: $(OBJECTS) libssx.a
	$(MAKE) -C $(PGP) DEFS="$(DEFS)" -e
	$(CPP) -P $(DEFS) < $(OCC)/linkocc.cmd > linkscript
	$(LD) $(OBJECTS) \
	-Tlinkscript $(LDFLAGS) -Map $(APP).map -Bstatic -o $(APP).out
	$(OBJCOPY) -O binary $(APP).out $(APP).bin
	$(OBJDUMP) -d $(APP).out > $(APP).dis

libssx.a:
	$(MAKE) -C $(LIB) DEFS="$(DEFS)" -e


.PHONY : clean
clean:
	rm -f *.o *.d *.d.* *.out *.bin *.srec *.dis *.map linkscript
	rm -f ./*/*.o ./*/*.d ./*/*.d.*	

.PHONY : clean_all
clean_all:
	$(MAKE) clean
	$(MAKE) -C $(PGP) clean

.PHONY : doc
doc:
	doxygen doc/Doxyfile

include $(OBJECTS:.o=.d) 
OpenPOWER on IntegriCloud