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)
|