1# $FreeBSD$ 2# 3 4FICLDIR?= ${.CURDIR} 5 6.if defined(FICL32) 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" || \ 18 (${MACHINE_CPUARCH} == "amd64" && defined(FICL32)) 19CFLAGS+= -march=i386 20CFLAGS.gcc+= -mpreferred-stack-boundary=2 21.endif 22.if ${MACHINE_CPUARCH} == "amd64" 23CFLAGS+= -mno-red-zone 24.endif 25.if ${MACHINE_CPUARCH} == "i386" || ${MACHINE_CPUARCH} == "amd64" 26CFLAGS+= -mno-mmx -mno-3dnow -mno-sse -mno-sse2 -mno-sse3 -msoft-float 27.endif 28.if ${MACHINE_CPUARCH} == "powerpc" || ${MACHINE_CPUARCH} == "arm" 29CFLAGS+= -msoft-float 30.endif 31.if ${MACHINE} == "pc98" 32CFLAGS+= -Os -DPC98 33.endif 34.if HAVE_PNP 35CFLAGS+= -DHAVE_PNP 36.endif 37.ifmake testmain 38CFLAGS+= -DTESTMAIN -D_TESTMAIN 39SRCS+= testmain.c 40PROG= testmain 41.include <bsd.prog.mk> 42.else 43LIB= ficl 44INTERNALLIB= 45.include <bsd.lib.mk> 46.endif 47 48# Standard softwords 49.PATH: ${FICLDIR}/softwords 50SOFTWORDS= softcore.fr jhlocal.fr marker.fr freebsd.fr ficllocal.fr \ 51 ifbrack.fr 52# Optional OO extension softwords 53#SOFTWORDS+= oo.fr classes.fr 54 55.if ${MACHINE_CPUARCH} == "amd64" 56.if defined(FICL32) 57CFLAGS+= -m32 -I. 58.else 59CFLAGS+= -fPIC 60.endif 61.endif 62 63.if ${MACHINE_ARCH} == "powerpc64" 64CFLAGS+= -m32 -mcpu=powerpc -I. 65.endif 66 67.if ${MACHINE_CPUARCH} == "amd64" && defined(FICL32) 68FICL_CPUARCH= i386 69.else 70FICL_CPUARCH= ${MACHINE_CPUARCH} 71.endif 72 73CFLAGS+= -I${FICLDIR} -I${FICLDIR}/${FICL_CPUARCH} \ 74 -I${FICLDIR}/../common 75 76softcore.c: ${SOFTWORDS} softcore.awk 77 (cd ${FICLDIR}/softwords; cat ${SOFTWORDS} \ 78 | awk -f softcore.awk -v datestamp="`LC_ALL=C date`") > ${.TARGET} 79 80.if ${MACHINE_CPUARCH} == "amd64" && defined(FICL32) 81.if !exists(machine) 82${SRCS:M*.c:R:S/$/.o/g}: machine 83 84beforedepend ${OBJS}: machine 85.endif 86 87machine: 88 ln -sf ${.CURDIR}/../../i386/include machine 89 90CLEANFILES+= machine 91.endif 92