]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/boot/i386/loader/Makefile
Remove guards around overwriting loader.rc and menu.rc
[FreeBSD/FreeBSD.git] / sys / boot / i386 / loader / Makefile
1 # $FreeBSD$
2
3 .include <src.opts.mk>
4 MK_SSP=         no
5
6 LOADER?=        loader
7 PROG=           ${LOADER}.sym
8 MAN=    
9 INTERNALPROG=
10 NEWVERSWHAT?=   "bootstrap loader" x86
11
12 # architecture-specific loader code
13 SRCS=           main.c conf.c vers.c
14
15 # Put LOADER_FIREWIRE_SUPPORT=yes in /etc/make.conf for FireWire/dcons support
16 .if defined(LOADER_FIREWIRE_SUPPORT)
17 CFLAGS+=        -DLOADER_FIREWIRE_SUPPORT
18 LIBFIREWIRE=    ${.OBJDIR}/../libfirewire/libfirewire.a
19 .endif
20
21 # Set by zfsloader Makefile
22 .if defined(LOADER_ZFS_SUPPORT)
23 CFLAGS+=        -DLOADER_ZFS_SUPPORT
24 LIBZFSBOOT=     ${.OBJDIR}/../../zfs/libzfsboot.a
25 .endif
26
27 # Enable PXE TFTP or NFS support, not both.
28 .if defined(LOADER_TFTP_SUPPORT)
29 CFLAGS+=        -DLOADER_TFTP_SUPPORT
30 .else
31 CFLAGS+=        -DLOADER_NFS_SUPPORT
32 .endif
33
34 # Include bcache code.
35 HAVE_BCACHE=    yes
36
37 # Enable PnP and ISA-PnP code.
38 HAVE_PNP=       yes
39 HAVE_ISABUS=    yes
40
41 .if ${MK_FORTH} != "no"
42 # Enable BootForth
43 BOOT_FORTH=     yes
44 CFLAGS+=        -DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/i386
45 .if ${MACHINE_CPUARCH} == "amd64"
46 LIBFICL=        ${.OBJDIR}/../../ficl32/libficl.a
47 .else
48 LIBFICL=        ${.OBJDIR}/../../ficl/libficl.a
49 .endif
50 .endif
51
52 .if defined(LOADER_BZIP2_SUPPORT)
53 CFLAGS+=        -DLOADER_BZIP2_SUPPORT
54 .endif
55 .if !defined(LOADER_NO_GZIP_SUPPORT)
56 CFLAGS+=        -DLOADER_GZIP_SUPPORT
57 .endif
58 .if defined(LOADER_NANDFS_SUPPORT)
59 CFLAGS+=        -DLOADER_NANDFS_SUPPORT
60 .endif
61
62 # Always add MI sources
63 .PATH:          ${.CURDIR}/../../common
64 .include        "${.CURDIR}/../../common/Makefile.inc"
65 CFLAGS+=        -I${.CURDIR}/../../common
66 CFLAGS+=        -I.
67
68 CLEANFILES=     vers.c ${LOADER} ${LOADER}.bin loader.help
69
70 CFLAGS+=        -Wall
71 LDFLAGS=        -static -Ttext 0x0
72
73 # i386 standalone support library
74 LIBI386=        ${.OBJDIR}/../libi386/libi386.a
75 CFLAGS+=        -I${.CURDIR}/..
76
77 LIBSTAND=       ${.OBJDIR}/../../libstand32/libstand.a
78
79 # BTX components
80 CFLAGS+=        -I${.CURDIR}/../btx/lib
81
82 # Debug me!
83 #CFLAGS+=       -g
84 #LDFLAGS+=      -g
85
86 # Pick up ../Makefile.inc early.
87 .include <bsd.init.mk>
88
89 vers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../loader/version
90         sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../loader/version \
91                 ${NEWVERSWHAT}
92
93 ${LOADER}: ${LOADER}.bin ${BTXLDR} ${BTXKERN}
94         btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \
95                 -b ${BTXKERN} ${LOADER}.bin
96
97 ${LOADER}.bin: ${LOADER}.sym
98         cp ${.ALLSRC} ${.TARGET}
99         strip -R .comment -R .note ${.TARGET}
100
101 loader.help: help.common help.i386
102         cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET}
103
104 FILES=  ${LOADER}
105 # XXX INSTALLFLAGS_loader= -b
106 FILESMODE_${LOADER}= ${BINMODE} -b
107
108 .if !defined(LOADER_ONLY)
109 .PATH: ${.CURDIR}/../../forth
110 .include        "${.CURDIR}/../../forth/Makefile.inc"
111 FILES+= pcibios.4th
112
113 FILES+= loader.rc menu.rc
114 .endif
115
116 # XXX crt0.o needs to be first for pxeboot(8) to work
117 OBJS=   ${BTXCRT}
118
119 DPADD=  ${LIBFICL} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBSTAND}
120 LDADD=  ${LIBFICL} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBSTAND}
121
122 .include <bsd.prog.mk>
123
124 .if ${MACHINE_CPUARCH} == "amd64"
125 beforedepend ${OBJS}: machine
126 CLEANFILES+=    machine
127 CFLAGS+=        -DLOADER_PREFER_AMD64
128 machine: .NOPATH
129         ln -sf ${.CURDIR}/../../../i386/include machine
130 .endif