# i386 Mach makefile fragment # Copyright 1997 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 # USE OF THIS SOFTWARE. # Some of the i386-specific code checks for these. DEFINES += -DCONTINUATIONS -DLINUX_DEV -D__ELF__ -Di386 # Source files for any i386 kernel i386at-files = autoconf.c blit.c com.c conf.c cons_conf.c fd.c rtc.c \ i386at_ds_routines.c immc.c int_init.c iopl.c kd.c kd_event.c \ kd_mouse.c kd_queue.c model_dep.c phys_mem_grab_page.c pic_isa.c i386-files = ast_check.c db_disasm.c db_interface.c db_trace.c debug_i386.c \ fpe_linkage.c fpu.c gdt.c hardclock.c idt.c io_emulate.c io_map.c \ iopb.c ktss.c kttd_interface.c ldt.c loose_ends.c mp_desc.c pcb.c \ phys.c pic.c pit.c seg.c trap.c user_ldt.c intel-files = pmap.c read_fault.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 # Account for them in the image objfiles += $(subst .c,.o,$(i386at-files) $(i386-files) $(intel-files)) \ $(subst .S,.o,$(i386at-Sfiles) $(i386-Sfiles)) vpath %.c $(sysdep)/i386at $(sysdep)/i386 $(sysdep)/intel vpath %.S $(sysdep)/i386at $(sysdep)/i386 # Files from the generic source that we want objfiles += busses.o cirbuf.o vpath busses.c $(srcdir)/chips # FPE emulation objfiles += fpe.o # Mig-generated objfiles += mach_i386_server.o # This file is only needed for KDB support. ifeq ($(enable_kdb),yes) objfiles += _setjmp.o endif ### Linux device drivers (make this Better, Please) 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 = 53c78xx.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 endif ### End Linux device drivers grot include i386/driverlist objfiles += $(device_drivers) # Where to find some things vpath i386asm.sym $(sysdep)/i386 vpath mach_i386.srv $(sysdep)/i386 # Make sure boothdr.o is at the very front objfiles := boothdr.o $(filter-out boothdr.o,$(objfiles)) # Our include files are here; make sure they PRECEDE the generic ones. INCLUDES := -I$(sysdep)/i386at -I$(sysdep)/i386 \ -I$(sysdep)/include -I$(sysdep)/include/mach/sa \ -I$(sysdep)/bogus -I$(sysdep) \ $(INCLUDES) # arrange suitable load address LDFLAGS += -Ttext 100000 # Assemble .S files correctly ASFLAGS += -DASSEMBLER boothdr.o: i386asm.h # Header files we install # We have our own version of this file installed-headers := $(filter-out mach/proc_ops.h,$(installed-headers)) i386-installed-headers= mach/proc_ops.h \ $(addprefix mach/i386/,asm.h bios.h boolean.h code16.h \ debug_reg.h disk.h dpmi.h eflags.h exception.h far_ptr.h \ fp_reg.h ioccom.h kern_return.h mach_i386.defs \ mach_i386_types.h machine_types.defs multiboot.h paging.h \ pio.h pmode.h proc_reg.h rpc.h seg.h syscall_sw.h \ thread_status.h time_stamp.h trap.h tss.h vcpi.h vm_param.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 $< vpath fpe.b_elf $(sysdep)/i386 fpe.d:; touch $@