fe5a481b54
Add asm sources which provide a fixed entry point for raw bootxx and bootxxx because modern aggressive gcc4 may reorder functions in the same source and the first function in a C source won't always appear at the beginning in its object. Also overhaul various files in the stand directory: - rename stand/Makefile.inc to stand/Makefile.booters and explicitly include it from each Makefile because the stand directory contains non standalone programs like installboot and Makefile.inc will be included implicitly from all Makefiles in SUBDIRs - put more common options into Makefile.booters so that all boot programs use proper options (-Os etc.) - make standalone boot programs compile without installed ${DESTDIR}: - create machine and m68k symlinks in ${.OBJDIR} in all boot programs - set appropriate make environments to suppress errors and warnings - <string.h> isn't there in _STANDALONE case - put #ifdef TOSTOOLS (looks equivarent with !_STANDALONE) to some files in stand/tostools - use ${LD} ${LINKFLAGS} rather than ${CC} ${LDFLAGS} - create raw binaries on ${PROG} target rather than on beforeinstall and stop weird renaming on beforeinstall and afterinstall - print proper error message if bootxx size is larger than limit - create ${DESTDIR}/usr/mdec/{milan,std} directories on beforeinstall in all boot programs (XXX: how can we put MD /usr/mdec/foo directories into src/etc/mtree?) - prototype warnsfy - cleanup Makefiles for readablity and remove unnecessary rules - no need to use daddr_t in installboot because the AHDI label doesn't support 64 bit block numbers Tested by David Ross (PR submitter) on port-atari, and finally NetBSD/atari on TT030 is now fully functional. Should be pulled up to netbsd-4 (where gcc4 was initially imported) and netbsd-5.
24 lines
665 B
Makefile
24 lines
665 B
Makefile
# $NetBSD: Makefile.booters,v 1.1 2009/01/06 13:35:30 tsutsui Exp $
|
|
|
|
BINDIR= /usr/mdec/${BTYPE:tl}
|
|
|
|
DBG=
|
|
COPTS= -Os -fomit-frame-pointer -fno-function-cse -fstrength-reduce
|
|
|
|
CPPFLAGS+= -D_STANDALONE -DHEAP_VARIABLE
|
|
CPPFLAGS+= -D__daddr_t=int32_t
|
|
|
|
CFLAGS+= -ffreestanding
|
|
CFLAGS+= -Wall
|
|
CFLAGS+= -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith
|
|
|
|
.if !make(obj) && !make(clean) && !make(cleandir)
|
|
.BEGIN:
|
|
@([ -h machine ] || \
|
|
ln -s ${S}/arch/${MACHINE}/include machine)
|
|
@([ -h ${MACHINE_ARCH} ] || \
|
|
ln -s ${S}/arch/${MACHINE_ARCH}/include ${MACHINE_ARCH})
|
|
.NOPATH: machine ${MACHINE_ARCH}
|
|
.endif
|
|
CLEANFILES+= machine ${MACHINE_ARCH}
|