# This file defines what ends up in the floppy boot image and it executes the # rules building the image. local X86_ONLY = ; local PPC_ONLY = ; if $(TARGET_ARCH) = x86 { X86_ONLY = "" ; } else if $(TARGET_ARCH) = ppc { X86_ONLY = ; } else if $(TARGET_ARCH) = m68k { X86_ONLY = ; } local GPL_ONLY = ; if $(HAIKU_INCLUDE_GPL_ADDONS) = 1 { GPL_ONLY = "" ; } #HACK: remove when old ide code is removed! local ATA_ONLY = ; local IDE_ONLY = ; if $(HAIKU_ATA_STACK) = 1 { ATA_ONLY = "" ; } else { IDE_ONLY = "" ; } local NET_BOOT = 0 ; local USB_BOOT = 1 ; local USB_ONLY = ; if $(USB_BOOT) = 1 { USB_ONLY = "" ; } local BOOT_ADD_ONS_NET ; if $(NET_BOOT) = 1 { BOOT_ADD_ONS_NET = remote_disk $(SYSTEM_ADD_ONS_DRIVERS_NET) stack socket $(SYSTEM_NETWORK_DEVICES) $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) $(SYSTEM_NETWORK_PPP) $(SYSTEM_NETWORK_PROTOCOLS) ; } SYSTEM_ADD_ONS_BUS_MANAGERS = $(ATA_ONLY)ata config_manager pci $(IDE_ONLY)ide $(X86_ONLY)isa scsi $(USB_ONLY)usb ; SYSTEM_ADD_ONS_FILE_SYSTEMS = bfs iso9660 attribute_overlay write_overlay ; # modules AddFilesToFloppyBootArchive system add-ons kernel bus_managers : $(SYSTEM_ADD_ONS_BUS_MANAGERS) ; AddFilesToFloppyBootArchive system add-ons kernel busses ide : generic_ide_pci $(X86_ONLY)ide_isa silicon_image_3112 legacy_sata it8211 ; AddFilesToFloppyBootArchive system add-ons kernel busses scsi : ahci ; AddFilesToFloppyBootArchive system add-ons kernel console : vga_text ; AddFilesToFloppyBootArchive system add-ons kernel file_systems : $(SYSTEM_ADD_ONS_FILE_SYSTEMS) ; AddFilesToFloppyBootArchive system add-ons kernel generic : $(ATA_ONLY)ata_adapter $(IDE_ONLY)ide_adapter locked_pool scsi_periph ; AddFilesToFloppyBootArchive system add-ons kernel partitioning_systems : intel session ; AddFilesToFloppyBootArchive system add-ons kernel interrupt_controllers : $(PPC_ONLY)openpic ; if $(USB_BOOT) = 1 { AddFilesToFloppyBootArchive system add-ons kernel busses usb : uhci ohci ehci ; } if $(TARGET_ARCH) = x86 { AddFilesToFloppyBootArchive system add-ons kernel cpu : generic_x86 ; } # drivers AddNewDriversToFloppyBootArchive disk scsi : scsi_cd scsi_disk ; if $(USB_BOOT) = 1 { AddDriversToFloppyBootArchive disk usb : usb_disk ; } if $(NET_BOOT) = 1 { AddDriversToFloppyBootArchive disk virtual : remote_disk ; AddDriversToFloppyBootArchive net : $(SYSTEM_ADD_ONS_DRIVERS_NET) ; } # kernel AddFilesToFloppyBootArchive system : kernel_$(TARGET_ARCH) ; # scripts and data files local driverSettingsFiles = kernel ; SEARCH on $(driverSettingsFiles) = [ FDirName $(HAIKU_TOP) data settings kernel drivers ] ; AddFilesToFloppyBootArchive home config settings kernel drivers : $(driverSettingsFiles) ; if $(NET_BOOT) = 1 { # add-ons AddFilesToFloppyBootArchive system add-ons kernel network : stack socket ; AddFilesToFloppyBootArchive system add-ons kernel network devices : $(SYSTEM_NETWORK_DEVICES) ; AddFilesToFloppyBootArchive system add-ons kernel network datalink_protocols : $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) ; AddFilesToFloppyBootArchive system add-ons kernel network ppp : $(SYSTEM_NETWORK_PPP) ; AddFilesToFloppyBootArchive system add-ons kernel network protocols : $(SYSTEM_NETWORK_PROTOCOLS) ; } # boot module links AddBootModuleSymlinksToFloppyBootArchive $(SYSTEM_ADD_ONS_BUS_MANAGERS) $(PPC_ONLY)openpic $(ATA_ONLY)ata_adapter $(IDE_ONLY)ide_adapter locked_pool scsi_periph $(X86_ONLY)generic_x86 ahci generic_ide_pci $(X86_ONLY)ide_isa silicon_image_3112 legacy_sata it8211 $(USB_ONLY)uhci $(USB_ONLY)ohci $(USB_ONLY)ehci scsi_cd scsi_disk $(USB_ONLY)usb_disk intel session $(SYSTEM_ADD_ONS_FILE_SYSTEMS) $(BOOT_ADD_ONS_NET) ; #pragma mark - Build The Archive # archive target HAIKU_FLOPPY_BOOT_ARCHIVE = haiku-floppyboot.tgz ; MakeLocate $(HAIKU_FLOPPY_BOOT_ARCHIVE) : $(HAIKU_OUTPUT_DIR) ; # the pseudo target all archive contents is attached to NotFile $(HAIKU_BOOT_FLOPPY_CONTAINER_NAME) ; # prepare the script that initializes the shell variables local initVarsScript = haiku-floppyboot-init-vars ; local script = $(initVarsScript) ; MakeLocate $(script) : $(HAIKU_OUTPUT_DIR) ; Always $(script) ; AddVariableToScript $(script) : tmpDir : $(HAIKU_TMP_DIR) ; AddVariableToScript $(script) : addBuildCompatibilityLibDir : $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR) ; AddTargetVariableToScript $(script) : copyattr ; # create the other scripts local makeDirsScript = haiku-floppyboot-make-dirs ; local copyFilesScript = haiku-floppyboot-copy-files ; MakeLocate $(makeDirsScript) $(copyFilesScript) : $(HAIKU_OUTPUT_DIR) ; CreateFloppyBootArchiveMakeDirectoriesScript $(makeDirsScript) ; CreateFloppyBootArchiveCopyFilesScript $(copyFilesScript) ; # build the archive BuildFloppyBootArchive $(HAIKU_FLOPPY_BOOT_ARCHIVE) : $(initVarsScript) $(makeDirsScript) $(copyFilesScript) ; # remove the scripts we have generated RmTemps $(HAIKU_FLOPPY_BOOT_ARCHIVE) : $(initVarsScript) $(makeDirsScript) $(copyFilesScript) ; NotFile haiku-floppyboot-archive ; Depends haiku-floppyboot-archive : $(HAIKU_FLOPPY_BOOT_ARCHIVE) ; # floppy image target HAIKU_BOOT_FLOPPY = haiku-boot-floppy.image ; MakeLocate $(HAIKU_BOOT_FLOPPY) : $(HAIKU_OUTPUT_DIR) ; BuildFloppyBootImage $(HAIKU_BOOT_FLOPPY) : haiku_loader : $(HAIKU_FLOPPY_BOOT_ARCHIVE) ; # remove the archive RmTemps $(HAIKU_BOOT_FLOPPY) : $(HAIKU_FLOPPY_BOOT_ARCHIVE) ; NotFile haiku-boot-floppy ; Depends haiku-boot-floppy : $(HAIKU_BOOT_FLOPPY) ;