2 # Copyright 2005 Sun Microsystems, Inc. All rights reserved.
3 # Use is subject to license terms.
5 # ident "%Z%%M% %I% %E% SMI"
7 include ../../Makefile.grub
8 include ../Makefile.solaris.defs
10 LIBDRIVERS = libdrivers.a
12 LIBDRIVERS_OBJS = $(LIB_OBJS) $(DRIVER_OBJS)
14 LIB_OBJS = libdrivers_a-basemem.o \
15 libdrivers_a-config.o \
16 libdrivers_a-fsys_tftp.o \
17 libdrivers_a-i386_timer.o \
21 libdrivers_a-pci_io.o \
22 libdrivers_a-pic8259.o \
24 $(LIB_OBJS) := CFLAGS = $(BASE_CFLAGS) -Os -fno-builtin -nostdinc \
25 -DFSYS_TFTP=1 $(NET_CFLAGS) $(NET_EXTRAFLAGS)
28 # The following netboot drivers are available.
29 # NOTE: Compiling too many netboot drivers into stage2 could cause GRUB to
31 # NOTE: NET_CFLAGS has to be adjusted to correspond to the drivers
32 # selected in $(DRIVER_OBJS).
34 # 3c595.o - 3Com595 driver
35 # 3c90x.o - 3Com90x driver
36 # davicom.o - Davicom driver
37 # e1000.o - Etherexpress Pro/1000 driver
38 # eepro100.o - Etherexpress Pro/100 driver
39 # epic100.o - SMC 83c170 EPIC/100 driver
40 # forcedeth.o - Nvidia Geforce driver
41 # natsemi.o - NatSemi DP8381x driver
42 # ns83820.o - NS83820 driver
43 # ns8390.o - NE2000 PCI driver
44 # pcnet32.o - AMD Lance/PCI PCNet/32 driver
45 # pnic.o - Bochs Pseudo Nic driver
46 # r8169.o - Realtek 8169 driver
47 # rtl8139.o - Realtek 8139 driver
48 # sis900.o - SIS 900 and SIS 7016 driver
49 # sundance.o - Sundance ST201 driver
50 # tg3.o - Broadcom Tigon3 driver
51 # tlan.o - TI ThunderLAN driver
52 # tulip.o - Tulip driver
53 # undi.o - PXE UNDI driver
54 # via-rhine.o - Rhine-I/II driver
55 # w89c840.o - Winbond W89c840 driver
59 NET_CFLAGS = -DINCLUDE_UNDI=1
61 $(DRIVER_OBJS) := CFLAGS = $(BASE_CFLAGS) -Os -fno-builtin -nostdinc \
62 $(NET_EXTRAFLAGS) $(DRIVER_DEFS)
64 3c595.o := DRIVER_DEFS = -DINCLUDE_3C595=1
65 3c90x.o := DRIVER_DEFS = -DINCLUDE_3C90X=1
66 davicom.o := DRIVER_DEFS = -DINCLUDE_DAVICOM=1
67 e1000.o := DRIVER_DEFS = -DINCLUDE_E1000=1
68 eepro100.o := DRIVER_DEFS = -DINCLUDE_EEPRO100=1
69 epic100.o := DRIVER_DEFS = -DINCLUDE_EPIC100=1
70 forcedeth.o := DRIVER_DEFS = -DINCLUDE_FORCEDETH=1
71 natsemi.o := DRIVER_DEFS = -DINCLUDE_NATSEMI=1
72 ns83820.o := DRIVER_DEFS = -DINCLUDE_NS83820=1
73 ns8390.o := DRIVER_DEFS = -DINCLUDE_NS8390=1
74 pcnet32.o := DRIVER_DEFS = -DINCLUDE_PCNET32=1
75 pnic.o := DRIVER_DEFS = -DINCLUDE_PNIC=1
76 r8169.o := DRIVER_DEFS = -DINCLUDE_R8169=1
77 rtl8139.o := DRIVER_DEFS = -DINCLUDE_RTL8139=1
78 sis900.o := DRIVER_DEFS = -DINCLUDE_SIS900=1
79 sundance.o := DRIVER_DEFS = -DINCLUDE_SUNDANCE=1
80 tg3.o := DRIVER_DEFS = -DINCLUDE_TG3=1
81 tlan.o := DRIVER_DEFS = -DINCLUDE_TLAN=1
82 tulip.o := DRIVER_DEFS = -DINCLUDE_TULIP=1
83 undi.o := DRIVER_DEFS = -DINCLUDE_UNDI=1
84 via-rhine.o := DRIVER_DEFS = -DINCLUDE_VIA_RHINE=1
85 w89c840.o := DRIVER_DEFS = -DINCLUDE_W89C840=1
87 3c595.o := DRIVER_SRC = 3c595.c
88 3c90x.o := DRIVER_SRC = 3c90x.c
89 davicom.o := DRIVER_SRC = davicom.c
90 e1000.o := DRIVER_SRC = e1000.c
91 eepro100.o := DRIVER_SRC = eepro100.c
92 epic100.o := DRIVER_SRC = epic100.c
93 forcedeth.o := DRIVER_SRC = forcedeth.c
94 natsemi.o := DRIVER_SRC = natsemi.c
95 ns83820.o := DRIVER_SRC = ns83820.c
96 ns8390.o := DRIVER_SRC = ns8390.c
97 pcnet32.o := DRIVER_SRC = pcnet32.c
98 pnic.o := DRIVER_SRC = pnic.c
99 r8169.o := DRIVER_SRC = r8169.c
100 rtl8139.o := DRIVER_SRC = rtl8139.c
101 sis900.o := DRIVER_SRC = sis900.c
102 sundance.o := DRIVER_SRC = sundance.c
103 tg3.o := DRIVER_SRC = tg3.c
104 tlan.o := DRIVER_SRC = tlan.c
105 tulip.o := DRIVER_SRC = tulip.c
106 undi.o := DRIVER_SRC = undi.c
107 via-rhine.o := DRIVER_SRC = via-rhine.c
108 w89c840.o := DRIVER_SRC = w89c840.c
111 INCLUDES = -I. -I.. -I../stage2 -I../stage1
113 NET_EXTRAFLAGS = -DCONFIG_PCI \
114 -DCONFIG_PCI_DIRECT=1 \
116 -DNE_SCAN=0x280,0x300,0x320,0x340 \
117 -DWD_DEFAULT_MEM=0xCC000
120 # Source files to be installed in $(SRC_DIR).
122 SRC_DIR = $(ROOT_SRC)/netboot
123 SRC_FILES = Makefile.am Makefile.in README.netboot \
124 3c595.c 3c595.h 3c90x.c basemem.c big_bswap.h bootp.h \
125 byteswap.h config.c cpu.h davicom.c dev.h e1000.c \
126 e1000_hw.h eepro100.c elf.h endian.h epic100.c epic100.h \
127 etherboot.h forcedeth.c fsys_tftp.c grub.h i386_byteswap.h \
128 i386_elf.h i386_endian.h i386_timer.c if_arp.h if_ether.h \
129 igmp.h in.h io.h ip.h isa.h latch.h little_bswap.h mii.h \
130 misc.c natsemi.c nfs.h nic.c nic.h ns83820.c ns8390.c \
131 ns8390.h osdep.h pci.c pci.h pci_ids.h pci_io.c pcnet32.c \
132 pic8259.c pic8259.h pnic.c pnic_api.h pxe.h r8169.c \
133 rtl8139.c segoff.h sis900.c sis900.h stdint.h sundance.c \
134 tftp.h tg3.c tg3.h timer.c timer.h tlan.c tlan.h tulip.c \
135 types.h udp.h undi.c undi.h via-rhine.c w89c840.c
137 INSTALL_TARGETS = $(SRC_FILES:%=$(SRC_DIR)/%)
142 $(LIBDRIVERS): $(LIBDRIVERS_OBJS)
144 $(AR) cru $@ $(LIBDRIVERS_OBJS)
147 $(LIB_OBJS): $$(@:libdrivers_a-%.o=%.c)
148 $(CC) $(CFLAGS) -c -o $@ $(@:libdrivers_a-%.o=%.c)
150 $(DRIVER_OBJS): $$(DRIVER_SRC)
151 $(CC) $(CFLAGS) -c -o $@ $(DRIVER_SRC)
154 install: all $(INSTALL_TARGETS)
156 $(SRC_DIR)/%: $(SRC_DIR) %
164 $(RM) *.o $(LIBDRIVERS)