150477Speter# $FreeBSD$
240843Smsmith#
3244531Srpaulo
4244531SrpauloFICLDIR?=	${.CURDIR}
5244531Srpaulo
6271135Semaste.if defined(FICL32)
7244531Srpaulo.PATH: ${FICLDIR}/${MACHINE_CPUARCH:S/amd64/i386/}
8244531Srpaulo.else
9244531Srpaulo.PATH: ${FICLDIR}/${MACHINE_CPUARCH}
10244531Srpaulo.endif
1196261SobrienBASE_SRCS=	dict.c ficl.c fileaccess.c float.c loader.c math64.c \
1296261Sobrien		prefix.c search.c stack.c tools.c vm.c words.c
1394290Sdcs
1496261SobrienSRCS=		${BASE_SRCS} sysdep.c softcore.c
1596261SobrienCLEANFILES=	softcore.c testmain testmain.o
1696342SobrienCFLAGS+=	-ffreestanding
17271135Semaste.if ${MACHINE_CPUARCH} == "i386" || \
18271135Semaste    (${MACHINE_CPUARCH} == "amd64" && defined(FICL32))
19241785SavgCFLAGS+=	-march=i386
20260096SdimCFLAGS.gcc+=	-mpreferred-stack-boundary=2
21244531Srpaulo.endif
22281321Sjhb.if ${MACHINE_CPUARCH} == "amd64"
23281321SjhbCFLAGS+=	-mno-red-zone
24281321Sjhb.endif
25271135Semaste.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64"
26217033SdimCFLAGS+=	-mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float
2764550Speter.endif
28211678Simp.if ${MACHINE_CPUARCH} == "powerpc" || ${MACHINE_CPUARCH} == "arm"
29123374SgrehanCFLAGS+=	-msoft-float
30123374Sgrehan.endif
31116000Snyan.if ${MACHINE} == "pc98"
32172664SnyanCFLAGS+=	-Os -DPC98
33116000Snyan.endif
3465677Sdfr.if HAVE_PNP
3596261SobrienCFLAGS+=	-DHAVE_PNP
3665677Sdfr.endif
3765698Sdfr.ifmake testmain
3896261SobrienCFLAGS+=	-DTESTMAIN -D_TESTMAIN
3996261SobrienSRCS+=		testmain.c
4096261SobrienPROG=		testmain
4156716Sdcs.include <bsd.prog.mk>
4256716Sdcs.else
4396261SobrienLIB=		ficl
44136910SruINTERNALLIB=
4556716Sdcs.include <bsd.lib.mk>
4656716Sdcs.endif
4740843Smsmith
4840843Smsmith# Standard softwords
49244531Srpaulo.PATH: ${FICLDIR}/softwords
5051786SdcsSOFTWORDS=	softcore.fr jhlocal.fr marker.fr freebsd.fr ficllocal.fr \
5151786Sdcs		ifbrack.fr
5240843Smsmith# Optional OO extension softwords
5340843Smsmith#SOFTWORDS+=	oo.fr classes.fr
5440843Smsmith
55271135Semaste.if ${MACHINE_CPUARCH} == "amd64"
56271135Semaste.if defined(FICL32)
57241785SavgCFLAGS+=	-m32 -I.
58271135Semaste.else
59271135SemasteCFLAGS+=	-fPIC
60116864Speter.endif
61271135Semaste.endif
62116864Speter
63209920Snwhitehorn.if ${MACHINE_ARCH} == "powerpc64"
64209920SnwhitehornCFLAGS+=	-m32 -mcpu=powerpc -I.
65209920Snwhitehorn.endif
66209920Snwhitehorn
67271135Semaste.if ${MACHINE_CPUARCH} == "amd64" && defined(FICL32)
68271135SemasteFICL_CPUARCH=	i386
69271135Semaste.else
70271135SemasteFICL_CPUARCH=	${MACHINE_CPUARCH}
71271135Semaste.endif
72271135Semaste
73271135SemasteCFLAGS+=	-I${FICLDIR} -I${FICLDIR}/${FICL_CPUARCH} \
74244531Srpaulo		-I${FICLDIR}/../common
7540843Smsmith
7696261Sobriensoftcore.c: ${SOFTWORDS} softcore.awk
77244531Srpaulo	(cd ${FICLDIR}/softwords; cat ${SOFTWORDS} \
7873349Sru	    | awk -f softcore.awk -v datestamp="`LC_ALL=C date`") > ${.TARGET}
79116864Speter
80271135Semaste.if ${MACHINE_CPUARCH} == "amd64" && defined(FICL32)
81238795Sache.if !exists(machine)
82116864Speter${SRCS:M*.c:R:S/$/.o/g}: machine
83116864Speter
84116864Speterbeforedepend ${OBJS}: machine
85238795Sache.endif
86116864Speter
87116864Spetermachine:
88116864Speter	ln -sf ${.CURDIR}/../../i386/include machine
89116864Speter
90116864SpeterCLEANFILES+=	machine
91116864Speter.endif
92