Add the DragonFly cvs id and perform general cleanups on cvs/rcs/sccs ids. Most
[dragonfly.git] / sys / boot / pc32 / loader / Makefile
1 # $FreeBSD: src/sys/boot/i386/loader/Makefile,v 1.41.2.8 2002/07/17 12:34:16 ru Exp $
2 # $DragonFly: src/sys/boot/pc32/loader/Makefile,v 1.2 2003/06/17 04:28:18 dillon Exp $
3
4 BASE=           loader
5 PROG=           ${BASE}
6 #NOMAN=
7 STRIP=
8 NEWVERSWHAT=    "bootstrap loader" i386
9 BINDIR?=        /boot
10 INSTALLFLAGS=   -b
11
12 # architecture-specific loader code
13 SRCS=           main.c conf.c
14
15 # Enable PXE TFTP or NFS support, not both.
16 .if defined(LOADER_TFTP_SUPPORT)
17 CFLAGS+=        -DLOADER_TFTP_SUPPORT
18 .else
19 CFLAGS+=        -DLOADER_NFS_SUPPORT
20 .endif
21
22 # Enable PnP and ISA-PnP code.
23 HAVE_PNP=       yes
24 HAVE_ISABUS=    yes
25
26 .if !defined(NOFORTH)
27 # Enable BootForth
28 BOOT_FORTH=     yes
29 CFLAGS+=        -DBOOT_FORTH -I${.CURDIR}/../../ficl -I${.CURDIR}/../../ficl/i386
30 .if exists(${.OBJDIR}/../../ficl/libficl.a)
31 LIBFICL=        ${.OBJDIR}/../../ficl/libficl.a
32 .else
33 LIBFICL=        ${.CURDIR}/../../ficl/libficl.a
34 .endif
35 .endif
36
37 .if defined(LOADER_BZIP2_SUPPORT)
38 CFLAGS+=        -DLOADER_BZIP2_SUPPORT
39 .endif
40 .if !defined(LOADER_NO_GZIP_SUPPORT)
41 CFLAGS+=        -DLOADER_GZIP_SUPPORT
42 .endif
43
44 # Always add MI sources 
45 .PATH:          ${.CURDIR}/../../common
46 .include        <${.CURDIR}/../../common/Makefile.inc>
47 CFLAGS+=        -I${.CURDIR}/../../common
48 CFLAGS+=        -I${.CURDIR}/../../.. -I.
49
50 CLEANFILES+=    vers.c vers.o ${BASE}.list ${BASE}.bin ${BASE}.sym ${BASE}.help
51
52 CFLAGS+=        -Wall
53 LDFLAGS=        -nostdlib -static -Ttext 0x0
54
55 # i386 standalone support library
56 LIBI386=        ${.OBJDIR}/../libi386/libi386.a
57 CFLAGS+=        -I${.CURDIR}/..
58
59 # where to get libstand from
60 #XXX need a better way to do this
61 LIBSTAND=       ${.CURDIR}/../../../../lib/libstand/libstand.a
62 .if !exists(${LIBSTAND})
63 LIBSTAND=       ${.OBJDIR}/../../../../lib/libstand/libstand.a
64 .if !exists(${LIBSTAND})
65 LIBSTAND=       -lstand
66 .endif
67 .endif
68 CFLAGS+=        -I${.CURDIR}/../../../../lib/libstand/
69
70 # BTX components
71 .if exists(${.OBJDIR}/../btx)
72 BTXDIR=         ${.OBJDIR}/../btx
73 .else
74 BTXDIR=         ${.CURDIR}/../btx
75 .endif
76 BTXLDR=         ${BTXDIR}/btxldr/btxldr
77 BTXKERN=        ${BTXDIR}/btx/btx
78 BTXCRT=         ${BTXDIR}/lib/crt0.o
79 CFLAGS+=        -I${.CURDIR}/../btx/lib
80
81 # BTX is expecting ELF components
82 CFLAGS+=        -elf
83
84 # New linker set code
85 CFLAGS+=        -DNEW_LINKER_SET
86
87 # Debug me!
88 #CFLAGS+=       -g
89 #LDFLAGS+=      -g
90
91 vers.o: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version
92         sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
93         ${CC} -c vers.c
94
95 ${BASE}: ${BASE}.bin ${BTXLDR} ${BTXKERN} ${BTXCRT} ${BASE}.help
96         btxld -v -f aout -e ${LOADER_ADDRESS} -o ${.TARGET} -l ${BTXLDR} \
97                 -b ${BTXKERN} ${BASE}.bin
98 #       /usr/bin/kzip ${.TARGET}
99 #       mv ${.TARGET}.kz ${.TARGET}
100
101 ${BASE}.bin: ${BASE}.sym
102         cp ${.ALLSRC} ${.TARGET}
103         strip -R .comment -R .note ${.TARGET}
104
105 ${BASE}.help: help.common help.i386
106         cat ${.ALLSRC} | awk -f ${.CURDIR}/../../common/merge_help.awk > ${.TARGET}
107
108 beforeinstall:
109 .if exists(${.OBJDIR}/loader.help)
110         ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
111                 ${.OBJDIR}/${BASE}.help ${DESTDIR}/boot
112 .else
113         ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
114                 ${.CURDIR}/${BASE}.help ${DESTDIR}/boot
115 .endif
116 .if !exists(${DESTDIR}/boot/loader.rc)
117         ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
118                 ${.CURDIR}/../../forth/loader.rc ${DESTDIR}/boot
119 .endif
120         ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
121                 ${.CURDIR}/../../forth/loader.4th ${DESTDIR}/boot
122         ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
123                 ${.CURDIR}/../../forth/support.4th ${DESTDIR}/boot
124         ${INSTALL} -C -o ${BINOWN} -g ${BINGRP} -m 444 \
125                 ${.CURDIR}/../../forth/loader.conf ${DESTDIR}/boot/defaults
126
127 .include <${.CURDIR}/../Makefile.inc>
128
129 # Cannot use ${OBJS} above this line
130 .include <bsd.prog.mk>
131
132 ${BASE}.sym: ${OBJS} ${LIBI386} ${LIBSTAND} ${LIBFICL} vers.o
133         ${CC} ${LDFLAGS} -o ${.TARGET} ${BTXCRT} ${OBJS} vers.o \
134                 ${LIBFICL} ${LIBI386} ${LIBSTAND}
135
136 # If it's not there, don't consider it a target
137 .if exists(${.CURDIR}/../../../i386/include)
138 beforedepend ${OBJS}: machine
139
140 machine:
141         ln -sf ${.CURDIR}/../../../i386/include machine
142
143 .endif
144
145 CLEANFILES+=    machine