fa1fc9094a
The whole problem seems to be size. Which is odd, because it is said that size doesn't matter. Anyway... Add -Os to strategic places in the makefile to have the final loader be as mall as possible. This seems to be enough to make it work. For now... I think something is more fundamentally wrong; or something more fundamental is wrong. Potato, potaato.
64 lines
1.4 KiB
Makefile
64 lines
1.4 KiB
Makefile
# $FreeBSD$
|
|
#
|
|
.PATH: ${.CURDIR}/${MACHINE_ARCH:S/amd64/i386/}
|
|
BASE_SRCS= dict.c ficl.c fileaccess.c float.c loader.c math64.c \
|
|
prefix.c search.c stack.c tools.c vm.c words.c
|
|
|
|
SRCS= ${BASE_SRCS} sysdep.c softcore.c
|
|
CLEANFILES= softcore.c testmain testmain.o
|
|
CFLAGS+= -ffreestanding
|
|
.if ${MACHINE_ARCH} == "alpha"
|
|
CFLAGS+= -mno-fp-regs -Os
|
|
.endif
|
|
.if ${MACHINE_ARCH} == "i386" || ${MACHINE_ARCH} == "amd64"
|
|
CFLAGS+= -mpreferred-stack-boundary=2
|
|
.endif
|
|
.if ${MACHINE_ARCH} == "powerpc"
|
|
CFLAGS+= -msoft-float
|
|
.endif
|
|
.if ${MACHINE} == "pc98"
|
|
CFLAGS+= -DPC98
|
|
.endif
|
|
.if HAVE_PNP
|
|
CFLAGS+= -DHAVE_PNP
|
|
.endif
|
|
.ifmake testmain
|
|
CFLAGS+= -DTESTMAIN -D_TESTMAIN
|
|
SRCS+= testmain.c
|
|
PROG= testmain
|
|
.include <bsd.prog.mk>
|
|
.else
|
|
LIB= ficl
|
|
INTERNALLIB= yes
|
|
.include <bsd.lib.mk>
|
|
.endif
|
|
|
|
# Standard softwords
|
|
.PATH: ${.CURDIR}/softwords
|
|
SOFTWORDS= softcore.fr jhlocal.fr marker.fr freebsd.fr ficllocal.fr \
|
|
ifbrack.fr
|
|
# Optional OO extension softwords
|
|
#SOFTWORDS+= oo.fr classes.fr
|
|
|
|
.if ${MACHINE_ARCH} == "amd64"
|
|
CFLAGS+= -m32 -I.
|
|
.endif
|
|
|
|
CFLAGS+= -I${.CURDIR} -I${.CURDIR}/${MACHINE_ARCH:S/amd64/i386/} \
|
|
-I${.CURDIR}/../common
|
|
|
|
softcore.c: ${SOFTWORDS} softcore.awk
|
|
(cd ${.CURDIR}/softwords; cat ${SOFTWORDS} \
|
|
| awk -f softcore.awk -v datestamp="`LC_ALL=C date`") > ${.TARGET}
|
|
|
|
.if ${MACHINE_ARCH} == "amd64"
|
|
${SRCS:M*.c:R:S/$/.o/g}: machine
|
|
|
|
beforedepend ${OBJS}: machine
|
|
|
|
machine:
|
|
ln -sf ${.CURDIR}/../../i386/include machine
|
|
|
|
CLEANFILES+= machine
|
|
.endif
|