# This file defines what ends up in the network boot archive and it executes the # rules building the archive. local X86_ONLY = ; local PPC_ONLY = ; if $(TARGET_ARCH) = x86 { X86_ONLY = "" ; } else if $(TARGET_ARCH) = ppc { 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 = "" ; } SYSTEM_NETWORK_DEVICES = ethernet loopback ; SYSTEM_NETWORK_DATALINK_PROTOCOLS = ethernet_frame arp loopback_frame ; SYSTEM_NETWORK_PROTOCOLS = ipv4 tcp udp icmp unix ; SYSTEM_ADD_ONS_DRIVERS_NET = $(X86_ONLY)3com $(X86_ONLY)atheros813x $(X86_ONLY)broadcom440x $(X86_ONLY)broadcom570x etherpci $(X86_ONLY)ipro1000 pegasus $(X86_ONLY)rtl8139 rtl8169 $(X86_ONLY)rtl81xx sis900 $(X86_ONLY)via_rhine wb840 $(X86_ONLY)ipro100 $(X86_ONLY)nforce #vlance $(X86_ONLY)marvell_yukon $(X86_ONLY)syskonnect $(X86_ONLY)attansic_l2 $(X86_ONLY)ar81xx usb_ecm ; SYSTEM_ADD_ONS_BUS_MANAGERS = pci $(X86_ONLY)isa $(IDE_ONLY)ide $(ATA_ONLY)ata scsi config_manager agp_gart ; SYSTEM_ADD_ONS_FILE_SYSTEMS = bfs fat iso9660 ; # modules AddFilesToNetBootArchive system add-ons kernel bus_managers : $(SYSTEM_ADD_ONS_BUS_MANAGERS) ; AddFilesToNetBootArchive system add-ons kernel busses agp_gart : $(X86_ONLY)intel ; AddFilesToNetBootArchive system add-ons kernel busses ide : generic_ide_pci $(X86_ONLY)ide_isa silicon_image_3112 ; AddFilesToNetBootArchive system add-ons kernel busses scsi : ahci ; AddFilesToNetBootArchive system add-ons kernel console : vga_text ; AddFilesToNetBootArchive system add-ons kernel file_systems : $(SYSTEM_ADD_ONS_FILE_SYSTEMS) ; AddFilesToNetBootArchive system add-ons kernel generic : $(IDE_ONLY)ide_adapter $(ATA_ONLY)ata_adapter locked_pool scsi_periph ; AddFilesToNetBootArchive system add-ons kernel partitioning_systems : intel session ; AddFilesToNetBootArchive system add-ons kernel interrupt_controllers : $(PPC_ONLY)openpic ; if $(TARGET_ARCH) = x86 { AddFilesToNetBootArchive system add-ons kernel cpu : generic_x86 ; } # drivers AddNewDriversToNetBootArchive disk scsi : scsi_cd scsi_disk ; #AddDriversToNetBootArchive disk virtual : nbd ; AddDriversToNetBootArchive disk virtual : remote_disk ; AddDriversToNetBootArchive net : $(SYSTEM_ADD_ONS_DRIVERS_NET) ; # kernel AddFilesToNetBootArchive system : kernel_$(TARGET_ARCH) ; # scripts and data files local driverSettingsFiles = kernel ; SEARCH on $(driverSettingsFiles) = [ FDirName $(HAIKU_TOP) data settings kernel drivers ] ; AddFilesToNetBootArchive home config settings kernel drivers : $(driverSettingsFiles) ; # add-ons AddFilesToNetBootArchive system add-ons kernel network : notifications stack ; AddFilesToNetBootArchive system add-ons kernel network devices : $(SYSTEM_NETWORK_DEVICES) ; AddFilesToNetBootArchive system add-ons kernel network datalink_protocols : $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) ; AddFilesToNetBootArchive system add-ons kernel network ppp : $(SYSTEM_NETWORK_PPP) ; AddFilesToNetBootArchive system add-ons kernel network protocols : $(SYSTEM_NETWORK_PROTOCOLS) ; # boot module links AddBootModuleSymlinksToNetBootArchive $(SYSTEM_ADD_ONS_BUS_MANAGERS) ahci generic_ide_pci $(X86_ONLY)ide_isa silicon_image_3112 $(SYSTEM_ADD_ONS_FILE_SYSTEMS) $(IDE_ONLY)ide_adapter $(ATA_ONLY)ata_adapter locked_pool scsi_periph intel session $(PPC_ONLY)openpic $(X86_ONLY)generic_x86 # nbd remote_disk $(SYSTEM_ADD_ONS_DRIVERS_NET) stack $(SYSTEM_NETWORK_DEVICES) $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) $(SYSTEM_NETWORK_PPP) $(SYSTEM_NETWORK_PROTOCOLS) ; #pragma mark - Build The Archive # archive target HAIKU_NET_BOOT_ARCHIVE = haiku-netboot.tgz ; MakeLocate $(HAIKU_NET_BOOT_ARCHIVE) : $(HAIKU_OUTPUT_DIR) ; # the pseudo target all archive contents is attached to NotFile $(HAIKU_NET_BOOT_ARCHIVE_CONTAINER_NAME) ; # prepare the script that initializes the shell variables local initVarsScript = haiku-netboot-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-netboot-make-dirs ; local copyFilesScript = haiku-netboot-copy-files ; MakeLocate $(makeDirsScript) $(copyFilesScript) : $(HAIKU_OUTPUT_DIR) ; CreateNetBootArchiveMakeDirectoriesScript $(makeDirsScript) ; CreateNetBootArchiveCopyFilesScript $(copyFilesScript) ; # build the archive BuildNetBootArchive $(HAIKU_NET_BOOT_ARCHIVE) : $(initVarsScript) $(makeDirsScript) $(copyFilesScript) ; # remove the scripts we have generated RmTemps $(HAIKU_NET_BOOT_ARCHIVE) : $(initVarsScript) $(makeDirsScript) $(copyFilesScript) ; NotFile haiku-netboot-archive ; Depends haiku-netboot-archive : $(HAIKU_NET_BOOT_ARCHIVE) ;