|
|
1.1 root 1: # Makefile for Linux device drivers and the glue codes.
2: # Copyright 1998, 1999 Free Software Foundation, Inc.
3: #
4: # Permission to use, copy, modify and distribute this software and its
5: # documentation is hereby granted, provided that both the copyright
6: # notice and this permission notice appear in all copies of the
7: # software, derivative works or modified versions, and any portions
8: # thereof, and that both notices appear in supporting documentation.
9: #
10: # THE FREE SOFTWARE FOUNDATION ALLOWS FREE USE OF THIS SOFTWARE IN ITS
11: # "AS IS" CONDITION. THE FREE SOFTWARE FOUNDATION DISCLAIMS ANY
12: # LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE
13: # USE OF THIS SOFTWARE.
14:
15:
16: # Variables from `configure'.
17: srcdir=@srcdir@
18: systype=@systype@
19: device_drivers=@device_drivers@
20:
21: sysdep=$(srcdir)/..
22: linuxdir=../../linux
23: linuxsrcdir=$(srcdir)/$(linuxdir)
24:
25: # Programs found by configure.
26: CC = @CC@
27: LD = @LD@
28:
29: CFLAGS = @CFLAGS@
30:
31:
32:
33: # Files for driver support.
34: linux-c-files = version.c softirq.c dma.c resource.c printk.c \
35: bios32.c irq.c ctype.c vsprintf.c main.c misc.c sched.c \
36: kmem.c block.c setup.c
37:
38: # `dev' directory contains modified and glue source files.
39: vpath %.c $(linuxsrcdir)/dev/kernel
40: vpath %.c $(linuxsrcdir)/dev/init
41: vpath %.c $(linuxsrcdir)/dev/arch/$(systype)/kernel
42: vpath %.c $(linuxsrcdir)/dev/glue
43: vpath %.c $(linuxsrcdir)/dev/lib
44:
45: # `src' directory contains original Linux source files.
46: vpath %.c $(linuxsrcdir)/src/kernel
47: vpath %.c $(linuxsrcdir)/src/init
48: vpath %.c $(linuxsrcdir)/src/arch/$(systype)/kernel
49: vpath %.c $(linuxsrcdir)/src/lib
50:
51:
52: # XXX: Assembly source files must be treated separately... Uggg...
53: linux-asm-files = delay.S semaphore.S
54: vpath %.S $(linuxsrcdir)/dev/arch/$(systype)/lib
55: vpath %.S $(linuxsrcdir)/src/arch/$(systype)/lib
56:
57:
58: # Linux device drivers.
59: linux-block-files = cmd640.c floppy.c genhd.c ide-cd.c ide.c rz1000.c triton.c
60: vpath %.c $(linuxsrcdir)/dev/drivers/block
61: vpath %.c $(linuxsrcdir)/src/drivers/block
62:
63: linux-net-files = auto_irq.c 3c501.c 3c503.c 3c505.c 3c507.c 3c509.c \
64: 3c59x.c 3c515.c 8390.c Space.c ac3200.c apricot.c at1700.c atp.c \
65: de4x5.c de600.c de620.c depca.c dev.c e2100.c eepro.c eepro100.c \
66: eexpress.c epic100.c eth16i.c ewrk3.c fmv18x.c hp-plus.c hp.c hp100.c \
67: lance.c ne.c ne2k-pci.c net_init.c ni52.c ni65.c pcnet32.c rtl8139.c \
68: seeq8005.c sk_g16.c smc-ultra.c smc-ultra32.c tlan.c tulip.c \
69: via-rhine.c wavelan.c wd.c yellowfin.c znet.c net.c
70: vpath %.c $(linuxsrcdir)/dev/drivers/net
71: vpath %.c $(linuxsrcdir)/dev/net/core
72: vpath %.c $(linuxsrcdir)/src/drivers/net
73: vpath %.c $(linuxsrcdir)/src/net/core
74:
75: linux-pci-files = pci.c
76: vpath %.c $(linuxsrcdir)/dev/drivers/pci
77: vpath %.c $(linuxsrcdir)/src/drivers/pci
78:
79: linux-scsi-files = 53c78xx.c AM53C974.c BusLogic.c NCR53c406a.c advansys.c \
80: aha152x.c aha1542.c aha1740.c aic7xxx.c constants.c dtc.c eata.c \
81: eata_dma.c eata_pio.c fdomain.c g_NCR5380.c gdth.c hosts.c in2000.c \
82: ncr53c8xx.c pas16.c ppa.c qlogicfas.c qlogicisp.c scsi.c scsi_ioctl.c \
83: scsi_proc.c scsicam.c sd.c sd_ioctl.c seagate.c sr.c sr_ioctl.c \
84: t128.c tmscsim.c tmscsiw.c u14-34f.c ultrastor.c wd7000.c
85: vpath %.c $(linuxsrcdir)/dev/drivers/scsi
86: vpath %.c $(linuxsrcdir)/src/drivers/scsi
87:
88:
89: all-linux-files = $(linux-c-files) $(linux-block-files) \
90: $(linux-net-files) $(linux-pci-files) $(linux-scsi-files)
91:
92: # These are always used.
93: linux-objs := $(subst .c,.o, $(linux-c-files) $(linux-pci-files)) genhd.o
94: linux-objs += $(subst .S,.o, $(linux-asm-files))
95:
96: # These files need special flags for compilation; each one will
97: # have a variable like wd7000.c-linux-flags with those flags.
98: CFLAGS += $($(<F)-linux-flags)
99: ASFLAGS += $($(<F)-linux-flags)
100:
101: CPPFLAGS = -DMACH -DCMU -DMACH_KERNEL -DKERNEL -DLINUX_DEV \
102: -DCONTINUATIONS -D__ELF__ -Di386 \
103: -I. -I.. -I$(srcdir)/.. -I../.. -I$(srcdir)/../.. \
104: -I$(srcdir)/../../include -I$(srcdir)/../../bogus \
105: -I$(srcdir)/../../util -I$(srcdir)/../../kern \
106: -I$(srcdir)/../../device -I$(sysdep)/i386at -I$(sysdep)/i386 \
107: -I$(sysdep)/include -I$(sysdep)/include/mach/sa -I$(sysdep)/bogus \
108: -I$(sysdep) -Wall
109:
110: # These flags are:
111: # Instead of Mach's KERNEL, Linux uses __KERNEL__. Whee.
112: # Arrange for special include directories too.
113: # Because of the use of `extern inline' in some Linux header files without
114: # corresponding text-segment definitions, we must always optimize.
115: linux-gen-flags = -D__KERNEL__ -O2 \
116: -Idev/include -I$(srcdir)/dev/include \
117: -I$(linuxdir)/dev/include -I$(linuxdir)/src/include \
118: -I$(linuxsrcdir)/dev/include -I$(linuxsrcdir)/src/include
119: linux-block-flags = -I$(linuxsrcdir)/dev/drivers/block \
120: -I$(linuxsrcdir)/src/drivers/block
121: linux-net-flags = -I$(linuxsrcdir)/dev/drivers/net \
122: -I$(linuxsrcdir)/src/drivers/net
123: linux-pci-flags = -I$(linuxsrcdir)/dev/drivers/pci \
124: -I$(linuxsrcdir)/src/drivers/pci
125: linux-scsi-flags = -I$(linuxsrcdir)/dev/drivers/scsi \
126: -I$(linuxsrcdir)/src/drivers/scsi
127: linux-asm-spec-flags = -D__KERNEL__ -D__ASSEMBLY__ -traditional \
128: -Idev/include -I$(linuxdir)/dev/include -I$(linuxdir)/src/include \
129: -I$(srcdir)/dev/include -I$(linuxsrcdir)/dev/include \
130: -I$(linuxsrcdir)/src/include
131:
132:
133: # Here is where those specs are found.
134: -include linux-flags
135:
136: # How to make this file:
137:
138: linux-flags: Makefile
139: rm -f $@
140: for i in $(linux-c-files); do \
141: echo $$i-linux-flags '= $$(linux-gen-flags)' >> $@; \
142: done
143: for i in $(linux-block-files); do \
144: echo $$i-linux-flags \
145: '= $$(linux-gen-flags) $$(linux-block-flags)' >> $@; \
146: done
147: for i in $(linux-net-files); do \
148: echo $$i-linux-flags \
149: '= $$(linux-gen-flags) $$(linux-net-flags)' >> $@; \
150: done
151: for i in $(linux-pci-files); do \
152: echo $$i-linux-flags \
153: '= $$(linux-gen-flags) $$(linux-pci-flags)' >> $@; \
154: done
155: for i in $(linux-scsi-files); do \
156: echo $$i-linux-flags \
157: '= $$(linux-gen-flags) $$(linux-scsi-flags)' >> $@; \
158: done
159: for i in $(linux-asm-files); do \
160: echo $$i-linux-flags '= $$(linux-asm-spec-flags)' >> $@; \
161: done
162: echo 'linux-flags-done='$(all-linux-files) $(linux-asm-files) >> $@
163:
164: # If we haven't included `linux-flags' properly, then don't try and build
165: # .d files.
166: ifneq ($(linux-flags-done),$(all-linux-files) $(linux-asm-files))
167: no_deps=t
168: endif
169:
170: linux-objs += $(sort $(device_drivers))
171:
172:
173:
174: # Autoconf support
175:
176: $(srcdir)/configure: $(srcdir)/Drivers.in $(srcdir)/../../Drivers.macros
177: cd $(srcdir) && rm -f configure && autoconf Drivers.in > configure
178:
179: device-drivers.h: $(srcdir)/Makefile.in config.status
180: ./config.status
181:
182: config.status: $(srcdir)/configure
183: ./config.status --recheck
184:
185: vpath %.in $(srcdir)
186: vpath configure $(srcdir)
187:
188:
189:
190: # Create a linuxdev object file.
191: all: linux.o
192:
193: linux.o: $(linux-objs) $(srcdir)/configure
194: rm -f $@
195: $(LD) -r -o $@ $(linux-objs)
196:
197: clean:
198: rm -f $(linux-objs) linux.o
199:
200: distclean: clean
201: rm -f $(linuxdir)/src/include/asm $(linuxdir)/dev/include/asm
202: rm -f config.status config.log Makefile device-drivers.h
203:
204: mostlyclean: distclean
205:
206: maintainer-clean: mostlyclean
207: rm -f $(srcdir)/configure
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.