|
|
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.