xref: /freebsd/stand/i386/loader/Makefile (revision e17f5b1d)
1# $FreeBSD$
2.if 0
3HAVE_ZFS=		${MK_LOADER_ZFS}
4
5LOADER_NET_SUPPORT?=	yes
6LOADER_NFS_SUPPORT?=	yes
7LOADER_TFTP_SUPPORT?=	yes
8LOADER_CD9660_SUPPORT?=	yes
9LOADER_EXT2FS_SUPPORT?=	yes
10LOADER_MSDOS_SUPPORT?=	yes
11LOADER_UFS_SUPPORT?=	yes
12LOADER_GZIP_SUPPORT?=	yes
13LOADER_BZIP2_SUPPORT?=	yes
14.else
15LOADER_NET_SUPPORT?=	yes
16LOADER_UFS_SUPPORT?=    yes
17.endif
18
19.include <bsd.init.mk>
20
21LOADER?=	loader_${LOADER_INTERP}
22PROG=		${LOADER}.sym
23INTERNALPROG=
24NEWVERSWHAT?=	"bootstrap loader" x86
25VERSION_FILE=	${.CURDIR}/../loader/version
26
27.PATH:		${BOOTSRC}/i386/loader
28
29# architecture-specific loader code
30SRCS=		main.c conf.c vers.c chain.c
31
32# Include bcache code.
33HAVE_BCACHE=	yes
34
35# Enable PnP and ISA-PnP code.
36HAVE_PNP=	yes
37HAVE_ISABUS=	yes
38
39.if ${MK_LOADER_FIREWIRE} == "yes"
40CFLAGS+=	-DLOADER_FIREWIRE_SUPPORT
41LIBFIREWIRE=	${BOOTOBJ}/i386/libfirewire/libfirewire.a
42.endif
43
44.if exists(${.CURDIR}/help.i386)
45HELP_FILES=	${.CURDIR}/help.i386
46.endif
47
48# Always add MI sources
49.include	"${BOOTSRC}/loader.mk"
50
51CLEANFILES+=	${LOADER} ${LOADER}.bin
52
53ORG=		0x0
54
55CFLAGS+=	-Wall
56LDFLAGS+=	-static ${LDFLAGS_ORG} -Wl,--gc-sections
57
58# i386 standalone support library
59LIBI386=	${BOOTOBJ}/i386/libi386/libi386.a
60CFLAGS+=	-I${BOOTSRC}/i386
61
62# Debug me!
63CFLAGS+=	-g
64LDFLAGS+=	-g
65
66${LOADER}: ${LOADER}.bin ${BTXLDR} ${BTXKERN}
67	btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \
68		-b ${BTXKERN} ${LOADER}.bin
69
70${LOADER}.bin: ${LOADER}.sym
71	strip -R .comment -R .note -o ${.TARGET} ${.ALLSRC}
72
73.if ${MK_LOADER_ZFS} == "yes" && ${LOADER_INTERP} == ${LOADER_DEFAULT_INTERP}
74LINKS+=		${BINDIR}/${LOADER} ${BINDIR}/zfsloader
75.endif
76.if ${LOADER_INTERP} == ${LOADER_DEFAULT_INTERP}
77LINKS+=		${BINDIR}/${LOADER} ${BINDIR}/loader
78.endif
79FILES+=	${LOADER}
80FILESMODE_${LOADER}= ${BINMODE} -b
81
82# XXX crt0.o needs to be first for pxeboot(8) to work
83OBJS=	${BTXCRT}
84
85DPADD=	${LDR_INTERP32} ${LIBFIREWIRE} ${LIBI386} ${LIBSA32}
86LDADD=	${LDR_INTERP32} ${LIBFIREWIRE} ${LIBI386} ${LIBSA32}
87
88.if ${MACHINE_CPUARCH} == "amd64"
89CFLAGS+=	-DLOADER_PREFER_AMD64
90.endif
91
92.include <bsd.prog.mk>
93