99 lines
3.0 KiB
Makefile
99 lines
3.0 KiB
Makefile
# $FreeBSD$
|
|
#
|
|
# Makefile for NETBOOT
|
|
#
|
|
# Basic Options:
|
|
# -DSECURE_BOOT - Disable 'boot>' prompt completely
|
|
# -DASK_BOOT - Ask "Boot from Network (Y/N) ?" at startup
|
|
# -DROMSIZE - Size of EPROM - Must be set (even for .COM files)
|
|
# -DRELOC - Relocation address (usually 0x90000)
|
|
#
|
|
# NS8390 Options:
|
|
# -DINCLUDE_WD - Include Western Digital/SMC support
|
|
# -DINCLUDE_NE - Include NE1000/NE2000 support
|
|
# -DINCLUDE_3COM - Include 3c503 support
|
|
# -D_3COM_USE_AUI - Disable transceiver on 3c503 by default
|
|
# -DNE_BASE - Base I/O address for NE1000/NE2000
|
|
# -D_3COM_BASE - Base I/O address for 3c503
|
|
# -DWD_DEFAULT_MEM- Default memory location for WD/SMC cards
|
|
# XXX nothing depends on this Makefile so you must run `make clean' after
|
|
# changing an option.
|
|
#
|
|
|
|
### options for PCI cards
|
|
###
|
|
PCI_VENDOR=0x10ec
|
|
PCI_DEVICE=0x8029
|
|
PCI_CLASS=0x02,0x00,0x00
|
|
|
|
PROG= nb8390.com nb3c509.com nb8390.rom nb3c509.rom
|
|
# Order is very important on the SRCS line for this prog
|
|
SRCS= start2.S main.c misc.c bootmenu.c rpc.c
|
|
|
|
BINMODE= 555
|
|
#CFLAGS= -O2 -DNFS -DROMSIZE=${ROMSIZE} -DRELOC=${RELOCADDR} -DASK_BOOT
|
|
CFLAGS= -O2 -DNFS -DROMSIZE=${ROMSIZE} -DRELOC=${RELOCADDR} # -DASK_BOOT
|
|
CFLAGS += -DPCI -DPCI_VENDOR=${PCI_VENDOR} -DPCI_DEVICE=${PCI_DEVICE}
|
|
CFLAGS += -DPCI_CLASS=${PCI_CLASS} -DASK_BOOT
|
|
#NS8390= -DINCLUDE_WD -DWD_DEFAULT_MEM=0xD0000
|
|
NS8390= -DINCLUDE_NE
|
|
#NS8390+= -DINCLUDE_3COM -D_3COM_BASE=0x300
|
|
CLEANFILES+= netboot.com
|
|
CLEANFILES+= makerom start2.ro 3c509.o ns8390.o
|
|
ROMLDFLAGS= ${LDFLAGS} -aout -N -T ${RELOCADDR} -e _start -nostdlib
|
|
NOSHARED= YES
|
|
MAN8= netboot.8
|
|
SIZE= size -aout
|
|
STRIP=
|
|
STRIPCMD= strip -aout
|
|
|
|
ROMSIZE=16384
|
|
RELOCADDR=0x90000
|
|
|
|
.SUFFIXES: .ro
|
|
|
|
.S.ro:
|
|
${CC} ${CFLAGS} -DBOOTROM -o ${.TARGET} -c ${.IMPSRC}
|
|
|
|
build-tools: makerom
|
|
|
|
ns8390.o: ns8390.c
|
|
${CC} ${CFLAGS} $(NS8390) -o ${.TARGET} -c $<
|
|
|
|
makerom: makerom.c
|
|
${CC} ${CFLAGS} -DROMSIZE=${ROMSIZE} ${LDFLAGS} -o ${.TARGET} \
|
|
${.CURDIR}/makerom.c
|
|
|
|
nb8390.rom: makerom start2.ro ${SRCS:N*.h:R:S/$/.o/g} ns8390.o
|
|
${LD} ${ROMLDFLAGS} -o ${.TARGET} ${OBJS:S/start2.o/start2.ro/} ns8390.o
|
|
${STRIPCMD} ${.TARGET}
|
|
${SIZE} ${.TARGET}
|
|
${.OBJDIR}/makerom ${.TARGET}
|
|
|
|
nb3c509.rom: makerom start2.ro ${SRCS:N*.h:R:S/$/.o/g} 3c509.o
|
|
${LD} ${ROMLDFLAGS} -o ${.TARGET} ${OBJS:S/start2.o/start2.ro/} 3c509.o
|
|
${STRIPCMD} ${.TARGET}
|
|
${SIZE} ${.TARGET}
|
|
${.OBJDIR}/makerom ${.TARGET}
|
|
|
|
nb8390.com: makerom start2.ro ${SRCS:N*.h:R:S/$/.o/g} ns8390.o
|
|
${LD} ${ROMLDFLAGS} -o ${.TARGET}.tmp ${OBJS} ns8390.o
|
|
${STRIPCMD} ${.TARGET}.tmp
|
|
${SIZE} ${.TARGET}.tmp
|
|
dd ibs=32 skip=1 if=${.TARGET}.tmp of=${.TARGET}
|
|
rm -f ${.TARGET}.tmp
|
|
|
|
nb3c509.com: start2.o ${SRCS:N*.h:R:S/$/.o/g} 3c509.o
|
|
${LD} ${ROMLDFLAGS} -o ${.TARGET}.tmp ${OBJS} 3c509.o
|
|
${STRIPCMD} ${.TARGET}.tmp
|
|
${SIZE} ${.TARGET}.tmp
|
|
dd ibs=32 skip=1 if=${.TARGET}.tmp of=${.TARGET}
|
|
rm -f ${.TARGET}.tmp
|
|
|
|
# This force the creation of the "machine" symlink. These objects are
|
|
# specially handled in this file, and thus can't be taken care of in
|
|
# ../Makefile.inc
|
|
3c509.o makerom ns8390.o start2.ro: machine
|
|
|
|
.include <bsd.prog.mk>
|