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