--- Gnu-Mach/i386/Makefrag 2020/09/02 04:36:57 1.1.1.1 +++ Gnu-Mach/i386/Makefrag 2020/09/02 04:41:52 1.1.1.3 @@ -1,12 +1,12 @@ # i386 Mach makefile fragment -# Copyright 1997 Free Software Foundation, Inc. +# Copyright 1997, 1999 Free Software Foundation, Inc. # # Permission to use, copy, modify and distribute this software and its # documentation is hereby granted, provided that both the copyright # notice and this permission notice appear in all copies of the # software, derivative works or modified versions, and any portions # thereof, and that both notices appear in supporting documentation. -# +# # THE FREE SOFTWARE FOUNDATION ALLOWS FREE USE OF THIS SOFTWARE IN ITS # "AS IS" CONDITION. THE FREE SOFTWARE FOUNDATION DISCLAIMS ANY # LIABILITY OF ANY KIND FOR ANY DAMAGES WHATSOEVER RESULTING FROM THE @@ -14,7 +14,7 @@ # Some of the i386-specific code checks for these. -DEFINES += -DCONTINUATIONS -DLINUX_DEV -D__ELF__ -Di386 +DEFINES += -DCONTINUATIONS -D__ELF__ -Di386 -DLINUX_DEV # Source files for any i386 kernel i386at-files = autoconf.c blit.c conf.c cons_conf.c fd.c rtc.c \ @@ -26,9 +26,6 @@ i386-files = ast_check.c db_disasm.c db_ phys.c pic.c pit.c seg.c trap.c user_ldt.c intel-files = pmap.c read_fault.c -# Drivers; not used in all kernel, but only if selected. -driver-files= com.c - # Assembler source i386at-Sfiles = boothdr.S interrupt.S kdasm.S i386-Sfiles = cswitch.S debug_trace.S idt_inittab.S locore.S spl.S @@ -49,77 +46,45 @@ objfiles += fpe.o # Mig-generated objfiles += mach_i386_server.o -### Linux device drivers (make this Better, Please) +# This file is only needed for KDB support. +ifeq ($(enable_kdb),yes) +objfiles += _setjmp.o +endif + +# XXX: In i386, com is always enabled. +objfiles += com.o -linux-gen-files = $(addprefix linux_,$(linux-gen-names)) -linux-gen-names = autoirq.c block.c dma.c init.c irq.c kmem.c misc.c net.c \ - port.c printk.c sched.c soft.c timer.c version.c vsprintf.c - -linux-block-files = cmd640.c floppy.c genhd.c ide-cd.c ide.c rz1000.c triton.c - -linux-net-files = 3c501.c 3c503.c 3c505.c 3c507.c 3c509.c 3c59x.c \ - 8390.c Space.c ac3200.c apricot.c at1700.c atp.c \ - de4x5.c de600.c de620.c depca.c dev.c e2100.c eepro.c eexpress.c \ - eth16i.c ewrk3.c hp-plus.c hp.c hp100.c lance.c ne.c net_init.c \ - ni52.c ni65.c seeq8005.c sk_g16.c smc-ultra.c tulip.c \ - wavelan.c wd.c znet.c - -linux-pci-files = bios32.c pci.c - -linux-scsi-files = 53c7,8xx.c AM53C974.c BusLogic.c NCR53c406a.c advansys.c \ - aha152x.c aha1542.c aha1740.c aic7xxx.c constants.c eata.c eata_dma.c \ - eata_pio.c fdomain.c g_NCR5380.c hosts.c in2000.c pas16.c qlogic.c \ - scsi.c scsi_debug.c scsi_ioctl.c scsi_proc.c scsicam.c sd.c \ - sd_ioctl.c seagate.c sr.c sr_ioctl.c t128.c u14-34f.c \ - ultrastor.c wd7000.c - -all-linux-files = $(linux-gen-files) $(linux-block-files) \ - $(linux-net-files) $(linux-pci-files) $(linux-scsi-files) - -# These are always used. -objfiles += $(subst .c,.o,$(filter-out linux_net.c,$(linux-gen-files))) -objfiles += $(subst .c,.o,$(linux-pci-files)) genhd.o - -vpath %.c $(sysdep)/i386at/gpl/linux $(sysdep)/i386at/gpl/linux/block -vpath %.c $(sysdep)/i386at/gpl/linux/net $(sysdep)/i386at/gpl/linux/pci -vpath %.c $(sysdep)/i386at/gpl/linux/scsi - -# These files need special flags for compilation; each one will -# have a variable like wd7000.c-linux-flags with those flags. -CFLAGS += $($(> $@; \ - done - echo 'linux-flags-done='$(all-linux-files) >> $@ - -# If we haven't included `linux-flags' properly, then don't try and build -# .d files. -ifneq ($(linux-flags-done),$(all-linux-files)) -no_deps=t +# This file is only needed for LPR support. +ifeq ($(findstring -DMACH_LPR,@DEFS@),-DMACH_LPR) +objfiles += lpr.o endif -### End Linux device drivers grot +# We link the device drivers together into this file in a separate Make +# run, because the Linux-related code sometimes re-uses filenames. Arrange +# to have that Makefile used to generate and clean and otherwise deal with +# those filenames. + +objfiles += i386/sysdep.o +i386/sysdep.o: $(systype) + cd i386 && $(MAKE) all + +clean: i386-clean +i386-clean: + cd i386 && $(MAKE) clean + +distclean: i386-distclean +i386-distclean: + cd i386 && $(MAKE) distclean + +mostlyclean: i386-mostlyclean +i386-mostlyclean: + cd i386 && $(MAKE) mostlyclean + +maintainerclean: i386-maintainerclean +i386-maitainerclean: + cd i386 && $(MAKE) maintainer-clean - -include i386/driverlist -objfiles += $(device_drivers) @@ -142,11 +107,19 @@ LDFLAGS += -Ttext 100000 # Assemble .S files correctly ASFLAGS += -DASSEMBLER -boothdr.o: i386asm.h +boothdr.o: i386asm.h # Header files we install +install-headers: i386-install-headers +i386-install-headers: + cd i386 && $(MAKE) install-headers + +install-kernel: i386-install-kernel +i386-install-kernel: + cd $(systype) && $(MAKE) install-kernel + # We have our own version of this file installed-headers := $(filter-out mach/proc_ops.h,$(installed-headers)) @@ -160,20 +133,6 @@ i386-installed-headers= mach/proc_ops.h vm_types.h) -# Autoconf support - -$(sysdep)/configure: $(sysdep)/Drivers.in $(srcdir)/Drivers.macros - cd $(sysdep) && rm -f configure && autoconf Drivers.in > configure - -$(systype)/device-drivers.h $(systype)/driverlist: $(sysdep)/driverlist.in $(systype)/config.status - cd $(systype) && ./config.status - -$(systype)/config.status: $(sysdep)/configure - cd $(systype) && ./config.status --recheck - - - - # Cheat, cheat, cheat. fpe.o: fpe.b_elf uudecode $<