]> CyberLeo.Net >> Repos - FreeBSD/releng/10.2.git/blob - sys/boot/i386/loader/Makefile
- Copy stable/10@285827 to releng/10.2 in preparation for 10.2-RC1
[FreeBSD/releng/10.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 .if ${MACHINE_CPUARCH} == "amd64"
45 LIBFICL=        ${.OBJDIR}/../../ficl32/libficl.a
46 .else
47 LIBFICL=        ${.OBJDIR}/../../ficl/libficl.a
48 .endif
49 .endif
50
51 .if defined(LOADER_BZIP2_SUPPORT)
52 CFLAGS+=        -DLOADER_BZIP2_SUPPORT
53 .endif
54 .if !defined(LOADER_NO_GZIP_SUPPORT)
55 CFLAGS+=        -DLOADER_GZIP_SUPPORT
56 .endif
57 .if defined(LOADER_NANDFS_SUPPORT)
58 CFLAGS+=        -DLOADER_NANDFS_SUPPORT
59 .endif
60
61 # Always add MI sources
62 .PATH:          ${.CURDIR}/../../common
63 .include        "${.CURDIR}/../../common/Makefile.inc"
64 CFLAGS+=        -I${.CURDIR}/../../common
65 CFLAGS+=        -I.
66
67 CLEANFILES=     vers.c ${LOADER} ${LOADER}.bin loader.help
68
69 CFLAGS+=        -Wall
70 LDFLAGS=        -static -Ttext 0x0
71
72 # i386 standalone support library
73 LIBI386=        ${.OBJDIR}/../libi386/libi386.a
74 CFLAGS+=        -I${.CURDIR}/..
75
76 LIBSTAND=       ${.OBJDIR}/../../libstand32/libstand.a
77
78 # BTX components
79 CFLAGS+=        -I${.CURDIR}/../btx/lib
80
81 # Debug me!
82 #CFLAGS+=       -g
83 #LDFLAGS+=      -g
84
85 # Pick up ../Makefile.inc early.
86 .include <bsd.init.mk>
87
88 vers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../loader/version
89         sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/../loader/version \
90                 ${NEWVERSWHAT}
91
92 ${LOADER}: ${LOADER}.bin ${BTXLDR} ${BTXKERN}
93         btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \
94                 -b ${BTXKERN} ${LOADER}.bin
95
96 ${LOADER}.bin: ${LOADER}.sym
97         cp ${.ALLSRC} ${.TARGET}
98         strip -R .comment -R .note ${.TARGET}
99
100 loader.help: help.common help.i386
101         cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET}
102
103 FILES=  ${LOADER}
104 # XXX INSTALLFLAGS_loader= -b
105 FILESMODE_${LOADER}= ${BINMODE} -b
106
107 .if !defined(LOADER_ONLY)
108 .PATH: ${.CURDIR}/../../forth
109 .include        "${.CURDIR}/../../forth/Makefile.inc"
110
111 .if !exists(${DESTDIR}/boot/loader.rc)
112 FILES+= loader.rc
113 .endif
114 .if !exists(${DESTDIR}/boot/menu.rc)
115 FILES+= menu.rc
116 .endif
117 .endif
118
119 # XXX crt0.o needs to be first for pxeboot(8) to work
120 OBJS=   ${BTXCRT}
121
122 DPADD=  ${LIBFICL} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBSTAND}
123 LDADD=  ${LIBFICL} ${LIBFIREWIRE} ${LIBZFSBOOT} ${LIBI386} ${LIBSTAND}
124
125 .include <bsd.prog.mk>
126
127 .if ${MACHINE_CPUARCH} == "amd64"
128 beforedepend ${OBJS}: machine
129 CLEANFILES+=    machine
130 CFLAGS+=        -DLOADER_PREFER_AMD64
131 machine:
132         ln -sf ${.CURDIR}/../../../i386/include machine
133 .endif