Tweak some makefiles to prepare for bmake
[dragonfly.git] / sys / boot / pc32 / boot2 / Makefile
index 92006e1..9e4e47a 100644 (file)
@@ -1,11 +1,12 @@
 # $FreeBSD: src/sys/boot/i386/boot2/Makefile,v 1.47 2003/06/26 03:51:57 peter Exp $
-# $DragonFly: src/sys/boot/pc32/boot2/Makefile,v 1.18 2008/09/13 11:45:45 corecode Exp $
 
 BINDIR?=       /boot
 BINMODE=       444
 CLEANFILES=    boot \
                sio.o
 
+CSTD?=         c99
+
 NM?=           nm
 NXCFLAGS=
 NXLDFLAGS=
@@ -40,12 +41,11 @@ ORG1D = `${.OBJDIR}/bootasmdef.nx -d MEM_BIOS_LADDR`
 #
 ORG2=  `${.OBJDIR}/bootasmdef.nx BOOT2_VORIGIN`
 
-# gcc3.x
-#      -fno-guess-branch-probability
-#      -mno-align-long-strings
-CFLAGS=        -elf -ffreestanding -Os -fno-builtin \
+CFLAGS=        -Os \
+       -fno-guess-branch-probability \
        -fomit-frame-pointer \
-       -std=c99 \
+       -fno-unwind-tables \
+       -fno-asynchronous-unwind-tables \
        -DBOOT2 \
        -I${.CURDIR}/../../common \
        -I${.CURDIR}/../../../../lib/libstand \
@@ -54,6 +54,8 @@ CFLAGS=       -elf -ffreestanding -Os -fno-builtin \
        -Wmissing-declarations -Wmissing-prototypes -Wnested-externs \
        -Wpointer-arith -Wshadow -Wstrict-prototypes -Wwrite-strings
 
+DEBUG_FLAGS=
+
 # Tell gcc that it shouldn't do fancy optimizations for newer processors.
 # Otherwise it winds up creating larger code and we won't be able to fit boot2.
 CFLAGS+= -march=i386
@@ -65,11 +67,6 @@ CFLAGS+= -march=i386
 #
 CFLAGS+= -fno-unit-at-a-time
 
-# Disable propolice on gcc that supports it
-.if ${CCVER} == "gcc34"
-CFLAGS+= -fno-stack-protector
-.endif
-
 # boot2 area in 32 bit disklabel is 16 sectors (8K)
 #
 # boot2 area in 64 bit disklabel is 64 sectors (32K).
@@ -79,7 +76,8 @@ CFLAGS+= -fno-stack-protector
 #
 NSECT_32?=     16
 NSECT_64?=     30
-LDFLAGS=-nostdlib -static -N --gc-sections
+LDFLAGS=       -nostdlib -static -N --gc-sections
+LINKSCRIPT=    --script ${.CURDIR}/boot2.ldscript
 
 all: boot
 
@@ -111,11 +109,13 @@ boot1$s.o: boot1.S
        ${CC} ${CFLAGS} ${_ADDCFLAGS$s} -DFLAGS=${B1FLAGS} \
                ${.ALLSRC} -o ${.TARGET} -c
 
-boot2$s.o: boot2.c ${.CURDIR}/../../common/ufsread.c ${.CURDIR}/../../../../lib/libstand/hammerread.c
+boot2$s.s: boot2.c boot2$s.h ${.CURDIR}/../../common/ufsread.c ${.CURDIR}/../../../../lib/libstand/hammerread.c
        ${CC} ${CFLAGS} ${_ADDCFLAGS$s} -S -o boot2$s.s.tmp ${.CURDIR}/boot2.c
-       sed -e '/align/d' -e '/nop/d' < boot2$s.s.tmp > boot2$s.s
-       rm -f boot2$s.s.tmp
-       ${AS} ${AFLAGS} -o boot2$s.o boot2$s.s
+       sed -e '/align/d' -e '/nop/d' < ${.TARGET}.tmp > ${.TARGET}
+       rm -f ${.TARGET}.tmp
+
+boot2$s.o: boot2$s.s
+       ${AS} ${AFLAGS} -o ${.TARGET} boot2$s.s
 
 boot2$s.h: boot1$s.out bootasmdef.nx
        @echo "NOTE: boot2 using xread from boot1 at ${REL1}"
@@ -138,11 +138,9 @@ boot2$s.bin: boot2$s.out
        objcopy -S -O binary boot2$s.out ${.TARGET}
 
 boot2$s.out: boot2$s.o sio.o ${_ADDOBJS$s}
-       ${LD} ${LDFLAGS} -Ttext ${ORG2} -o ${.TARGET} \
+       ${LD} ${LDFLAGS} -Ttext ${ORG2} ${LINKSCRIPT} -o ${.TARGET} \
                ${BTX}/lib/crt0.o ${.ALLSRC}
 
-boot2$s.o: boot2$s.h
-
 CLEANFILES+=   boot1$s boot1$s.out boot1$s.o \
                boot2$s boot2$s.ldr boot2$s.bin \
                boot2$s.ld boot2$s.out boot2$s.o boot2$s.h boot2$s.s \
@@ -175,8 +173,8 @@ install:
 
 .include <bsd.prog.mk>
 
-.if defined(REALLY_AMD64)
-# For amd64, we need to fake up a complete machine/ tree
+.if defined(REALLY_X86_64)
+# For x86_64, we need to fake up a complete machine/ tree
 # so that types for -m32 appear correctly.
 
 boot2.o: machine