Makefile revision 260096
1# $FreeBSD: stable/10/sys/boot/ficl/Makefile 260096 2013-12-30 20:15:46Z dim $
2#
3
4FICLDIR?=	${.CURDIR}
5
6.if !defined(FICL64)
7.PATH: ${FICLDIR}/${MACHINE_CPUARCH:S/amd64/i386/}
8.else
9.PATH: ${FICLDIR}/${MACHINE_CPUARCH}
10.endif
11BASE_SRCS=	dict.c ficl.c fileaccess.c float.c loader.c math64.c \
12		prefix.c search.c stack.c tools.c vm.c words.c
13
14SRCS=		${BASE_SRCS} sysdep.c softcore.c
15CLEANFILES=	softcore.c testmain testmain.o
16CFLAGS+=	-ffreestanding
17.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
18.if !defined(FICL64)
19CFLAGS+=	-march=i386
20CFLAGS.gcc+=	-mpreferred-stack-boundary=2
21.endif
22CFLAGS+=	-mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float
23.endif
24.if ${MACHINE_CPUARCH} == "powerpc" || ${MACHINE_CPUARCH} == "arm"
25CFLAGS+=	-msoft-float
26.endif
27.if ${MACHINE} == "pc98"
28CFLAGS+=	-Os -DPC98
29.endif
30.if HAVE_PNP
31CFLAGS+=	-DHAVE_PNP
32.endif
33.ifmake testmain
34CFLAGS+=	-DTESTMAIN -D_TESTMAIN
35SRCS+=		testmain.c
36PROG=		testmain
37.include <bsd.prog.mk>
38.else
39LIB=		ficl
40INTERNALLIB=
41.include <bsd.lib.mk>
42.endif
43
44# Standard softwords
45.PATH: ${FICLDIR}/softwords
46SOFTWORDS=	softcore.fr jhlocal.fr marker.fr freebsd.fr ficllocal.fr \
47		ifbrack.fr
48# Optional OO extension softwords
49#SOFTWORDS+=	oo.fr classes.fr
50
51.if ${MACHINE_CPUARCH} == "amd64" && !defined(FICL64)
52CFLAGS+=	-m32 -I.
53.endif
54
55.if ${MACHINE_ARCH} == "powerpc64"
56CFLAGS+=	-m32 -mcpu=powerpc -I.
57.endif
58
59CFLAGS+=	-I${FICLDIR} -I${FICLDIR}/${MACHINE_CPUARCH:S/amd64/i386/} \
60		-I${FICLDIR}/../common
61
62softcore.c: ${SOFTWORDS} softcore.awk
63	(cd ${FICLDIR}/softwords; cat ${SOFTWORDS} \
64	    | awk -f softcore.awk -v datestamp="`LC_ALL=C date`") > ${.TARGET}
65
66.if ${MACHINE_CPUARCH} == "amd64"
67.if !exists(machine)
68${SRCS:M*.c:R:S/$/.o/g}: machine
69
70beforedepend ${OBJS}: machine
71.endif
72
73machine:
74	ln -sf ${.CURDIR}/../../i386/include machine
75
76CLEANFILES+=	machine
77.endif
78