blob: af7687fe4f12986fbfdbbd7aab7ecae04976c877 [file] [log] [blame] [raw]
#
# Copyright 2005 Sun Microsystems, Inc. All rights reserved.
# Use is subject to license terms.
#
# ident "%Z%%M% %I% %E% SMI"
#
include ../../Makefile.grub
include ../Makefile.solaris.defs
LIBDRIVERS = libdrivers.a
LIBDRIVERS_OBJS = $(LIB_OBJS) $(DRIVER_OBJS)
LIB_OBJS = libdrivers_a-basemem.o \
libdrivers_a-config.o \
libdrivers_a-fsys_tftp.o \
libdrivers_a-i386_timer.o \
libdrivers_a-misc.o \
libdrivers_a-nic.o \
libdrivers_a-pci.o \
libdrivers_a-pci_io.o \
libdrivers_a-pic8259.o \
libdrivers_a-timer.o
$(LIB_OBJS) := CFLAGS = $(BASE_CFLAGS) -Os -fno-builtin -nostdinc \
-DFSYS_TFTP=1 $(NET_CFLAGS) $(NET_EXTRAFLAGS)
#
# The following netboot drivers are available.
# NOTE: Compiling too many netboot drivers into stage2 could cause GRUB to
# crash or misbehave.
# NOTE: NET_CFLAGS has to be adjusted to correspond to the drivers
# selected in $(DRIVER_OBJS).
#
# 3c595.o - 3Com595 driver
# 3c90x.o - 3Com90x driver
# davicom.o - Davicom driver
# e1000.o - Etherexpress Pro/1000 driver
# eepro100.o - Etherexpress Pro/100 driver
# epic100.o - SMC 83c170 EPIC/100 driver
# forcedeth.o - Nvidia Geforce driver
# natsemi.o - NatSemi DP8381x driver
# ns83820.o - NS83820 driver
# ns8390.o - NE2000 PCI driver
# pcnet32.o - AMD Lance/PCI PCNet/32 driver
# pnic.o - Bochs Pseudo Nic driver
# r8169.o - Realtek 8169 driver
# rtl8139.o - Realtek 8139 driver
# sis900.o - SIS 900 and SIS 7016 driver
# sundance.o - Sundance ST201 driver
# tg3.o - Broadcom Tigon3 driver
# tlan.o - TI ThunderLAN driver
# tulip.o - Tulip driver
# undi.o - PXE UNDI driver
# via-rhine.o - Rhine-I/II driver
# w89c840.o - Winbond W89c840 driver
#
DRIVER_OBJS = undi.o
NET_CFLAGS = -DINCLUDE_UNDI=1
$(DRIVER_OBJS) := CFLAGS = $(BASE_CFLAGS) -Os -fno-builtin -nostdinc \
$(NET_EXTRAFLAGS) $(DRIVER_DEFS)
3c595.o := DRIVER_DEFS = -DINCLUDE_3C595=1
3c90x.o := DRIVER_DEFS = -DINCLUDE_3C90X=1
davicom.o := DRIVER_DEFS = -DINCLUDE_DAVICOM=1
e1000.o := DRIVER_DEFS = -DINCLUDE_E1000=1
eepro100.o := DRIVER_DEFS = -DINCLUDE_EEPRO100=1
epic100.o := DRIVER_DEFS = -DINCLUDE_EPIC100=1
forcedeth.o := DRIVER_DEFS = -DINCLUDE_FORCEDETH=1
natsemi.o := DRIVER_DEFS = -DINCLUDE_NATSEMI=1
ns83820.o := DRIVER_DEFS = -DINCLUDE_NS83820=1
ns8390.o := DRIVER_DEFS = -DINCLUDE_NS8390=1
pcnet32.o := DRIVER_DEFS = -DINCLUDE_PCNET32=1
pnic.o := DRIVER_DEFS = -DINCLUDE_PNIC=1
r8169.o := DRIVER_DEFS = -DINCLUDE_R8169=1
rtl8139.o := DRIVER_DEFS = -DINCLUDE_RTL8139=1
sis900.o := DRIVER_DEFS = -DINCLUDE_SIS900=1
sundance.o := DRIVER_DEFS = -DINCLUDE_SUNDANCE=1
tg3.o := DRIVER_DEFS = -DINCLUDE_TG3=1
tlan.o := DRIVER_DEFS = -DINCLUDE_TLAN=1
tulip.o := DRIVER_DEFS = -DINCLUDE_TULIP=1
undi.o := DRIVER_DEFS = -DINCLUDE_UNDI=1
via-rhine.o := DRIVER_DEFS = -DINCLUDE_VIA_RHINE=1
w89c840.o := DRIVER_DEFS = -DINCLUDE_W89C840=1
3c595.o := DRIVER_SRC = 3c595.c
3c90x.o := DRIVER_SRC = 3c90x.c
davicom.o := DRIVER_SRC = davicom.c
e1000.o := DRIVER_SRC = e1000.c
eepro100.o := DRIVER_SRC = eepro100.c
epic100.o := DRIVER_SRC = epic100.c
forcedeth.o := DRIVER_SRC = forcedeth.c
natsemi.o := DRIVER_SRC = natsemi.c
ns83820.o := DRIVER_SRC = ns83820.c
ns8390.o := DRIVER_SRC = ns8390.c
pcnet32.o := DRIVER_SRC = pcnet32.c
pnic.o := DRIVER_SRC = pnic.c
r8169.o := DRIVER_SRC = r8169.c
rtl8139.o := DRIVER_SRC = rtl8139.c
sis900.o := DRIVER_SRC = sis900.c
sundance.o := DRIVER_SRC = sundance.c
tg3.o := DRIVER_SRC = tg3.c
tlan.o := DRIVER_SRC = tlan.c
tulip.o := DRIVER_SRC = tulip.c
undi.o := DRIVER_SRC = undi.c
via-rhine.o := DRIVER_SRC = via-rhine.c
w89c840.o := DRIVER_SRC = w89c840.c
INCLUDES = -I. -I.. -I../stage2 -I../stage1
NET_EXTRAFLAGS = -DCONFIG_PCI \
-DCONFIG_PCI_DIRECT=1 \
-DCONGESTED=1 \
-DNE_SCAN=0x280,0x300,0x320,0x340 \
-DWD_DEFAULT_MEM=0xCC000
#
# Source files to be installed in $(SRC_DIR).
#
SRC_DIR = $(ROOT_SRC)/netboot
SRC_FILES = Makefile.am Makefile.in README.netboot \
3c595.c 3c595.h 3c90x.c basemem.c big_bswap.h bootp.h \
byteswap.h config.c cpu.h davicom.c dev.h e1000.c \
e1000_hw.h eepro100.c elf.h endian.h epic100.c epic100.h \
etherboot.h forcedeth.c fsys_tftp.c grub.h i386_byteswap.h \
i386_elf.h i386_endian.h i386_timer.c if_arp.h if_ether.h \
igmp.h in.h io.h ip.h isa.h latch.h little_bswap.h mii.h \
misc.c natsemi.c nfs.h nic.c nic.h ns83820.c ns8390.c \
ns8390.h osdep.h pci.c pci.h pci_ids.h pci_io.c pcnet32.c \
pic8259.c pic8259.h pnic.c pnic_api.h pxe.h r8169.c \
rtl8139.c segoff.h sis900.c sis900.h stdint.h sundance.c \
tftp.h tg3.c tg3.h timer.c timer.h tlan.c tlan.h tulip.c \
types.h udp.h undi.c undi.h via-rhine.c w89c840.c
INSTALL_TARGETS = $(SRC_FILES:%=$(SRC_DIR)/%)
all: $(LIBDRIVERS)
$(LIBDRIVERS): $(LIBDRIVERS_OBJS)
$(RM) $@
$(AR) cru $@ $(LIBDRIVERS_OBJS)
$(RANLIB) $@
$(LIB_OBJS): $$(@:libdrivers_a-%.o=%.c)
$(CC) $(CFLAGS) -c -o $@ $(@:libdrivers_a-%.o=%.c)
$(DRIVER_OBJS): $$(DRIVER_SRC)
$(CC) $(CFLAGS) -c -o $@ $(DRIVER_SRC)
install: all $(INSTALL_TARGETS)
$(SRC_DIR)/%: $(SRC_DIR) %
$(INS.file)
$(SRC_DIR):
$(INS.dir)
clean: _FORCE
$(RM) *.o $(LIBDRIVERS)
clobber: clean
_FORCE: