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