-
Notifications
You must be signed in to change notification settings - Fork 128
/
Makefile.inc
68 lines (54 loc) · 2.33 KB
/
Makefile.inc
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
ifeq (${PLATFORM},)
$(error need to specify $$PLATFORM!)
endif
APP_TOOLS_GNUPLATFORM:=$(shell ${RUMPMAKE} -f bsd.own.mk \
-V '$${MACHINE_GNU_PLATFORM}')
COREDIR:= $(shell pwd)/../../lib/libbmk_core
RUMPUSERDIR:= $(shell pwd)/../../lib/libbmk_rumpuser
BASEDIR:= $(shell pwd)/../../lib/librumprun_base
RUMPKERN_LIB:= -lrump
LDFLAGS_BAKE+= -L${BASEDIR}/${PLATFORM} -L${COREDIR}/${PLATFORM} \
-L${RUMPUSERDIR}/${PLATFORM}
LIBS_USERSTUB:= $(shell pwd)/pseudolinkstubs.o
RUMP_LDLIBS:= --whole-archive ${RUMPKERN_LIB} --no-whole-archive
RUMP_STUBLDLIBS:=${LIBS_USERSTUB}
.PHONY: ${BASEDIR}/${PLATFORM}/librumprun_base.a
${BASEDIR}/${PLATFORM}/librumprun_base.a:
( cd ${BASEDIR} \
&& ${RUMPMAKE} MAKEOBJDIR=${PLATFORM} obj \
&& ${RUMPMAKE} MAKEOBJDIR=${PLATFORM} dependall )
pseudolinkstubs.c: ${BASEDIR}/${PLATFORM}/librumprun_base.a
sh ../makepseudolinkstubs.sh ${NM} ${RUMPSRC} $< $@
.PHONY: ${COREDIR}/${PLATFORM}/libbmk_core.a
${COREDIR}/${PLATFORM}/libbmk_core.a:
( cd ${COREDIR} \
&& ${RUMPMAKE} MAKEOBJDIR=${PLATFORM} obj \
&& ${RUMPMAKE} MAKEOBJDIR=${PLATFORM} dependall )
.PHONY: ${RUMPUSERDIR}/${PLATFORM}/libbmk_rumpuser.a
${RUMPUSERDIR}/${PLATFORM}/libbmk_rumpuser.a:
( cd ${RUMPUSERDIR} \
&& ${RUMPMAKE} MAKEOBJDIR=${PLATFORM} obj \
&& ${RUMPMAKE} MAKEOBJDIR=${PLATFORM} dependall )
commonlibs: ${BASEDIR}/${PLATFORM}/librumprun_base.a ${COREDIR}/${PLATFORM}/libbmk_core.a ${RUMPUSERDIR}/${PLATFORM}/libbmk_rumpuser.a pseudolinkstubs.o
.PHONY: buildtest
buildtest: ../../tests/hello/hello.c ${OBJ_DIR}/rumprun.o commonlibs app-tools
${APP_TOOLS_CC} -g -o $@ $< -lrumprun_tester
@echo Testing baking ...
@export RUMPRUN_WARNING_STFU=please ; for board in \
$(shell RUMPRUN_WARNING_STFU=please ${APP_TOOLS_DIR}/rumpbake list\
| grep ^${PLATFORM}); do \
echo $${board} ; \
${APP_TOOLS_DIR}/rumpbake $${board} $@.$${board} $@ \
|| exit 1;\
done
@echo done
.PHONY: commonclean
commonclean:
( cd ${BASEDIR} && ${RUMPMAKE} MAKEOBJDIR=${PLATFORM} cleandir )
( cd ${COREDIR} && ${RUMPMAKE} MAKEOBJDIR=${PLATFORM} cleandir )
( cd ${RUMPUSERDIR} && ${RUMPMAKE} MAKEOBJDIR=${PLATFORM} cleandir )
rm -f pseudolinkstubs.c pseudolinkstubs.o
.PHONY: tests
tests: ${OBJ_DIR}/rumprun.o commonlibs app-tools
../../tests/buildtests.sh ${PLATFORM}
../../tests/runtests.sh ${PLATFORM_DEFAULT_TESTER}