# This file defines what ends up in the network boot archive and it executes the# rules building the archive.SYSTEM_NETWORK_DEVICES = ethernet loopback ;SYSTEM_NETWORK_DATALINK_PROTOCOLS = ethernet_frame <module>arp loopback_frame ;SYSTEM_NETWORK_PROTOCOLS = ipv4 tcp udp icmp unix ;SYSTEM_ADD_ONS_DRIVERS_NET = [ FFilterByBuildFeaturesx86,x86_64 @{3comatheros813xatheros81xxattansic_l2broadcom440xbroadcom570xipro100ipro1000marvell_yukonnforcertl8139sis900syskonnectvia_rhine}@ # x86,x86_64etherpcipegasusrtl81xxusb_ecmwb840] ;SYSTEM_ADD_ONS_BUS_MANAGERS = [ FFilterByBuildFeaturespci<pci>x86@x86,x86_64isa@x86usbatascsiagp_gartdpcacpi] ;SYSTEM_ADD_ONS_FILE_SYSTEMS =bfspackagefs;# modulesAddFilesToNetBootArchive system add-ons kernel bus_managers: $(SYSTEM_ADD_ONS_BUS_MANAGERS) ;AddFilesToNetBootArchive system add-ons kernel busses agp_gart :<agp_gart>intel@x86;AddFilesToNetBootArchive system add-ons kernel busses ide :generic_ide_pciide_isa@x86silicon_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 :ata_adapterscsi_periph;AddFilesToNetBootArchive system add-ons kernel partitioning_systems :intelsession;AddFilesToNetBootArchive system add-ons kernel interrupt_controllers :openpic@ppc;if $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 {AddFilesToNetBootArchive system add-ons kernel cpu:generic_x86;}# driversAddNewDriversToNetBootArchive disk scsi :scsi_cdscsi_disk;AddDriversToNetBootArchive disk virtual :# nbd;AddDriversToNetBootArchive disk virtual :remote_disk;AddDriversToNetBootArchive net: $(SYSTEM_ADD_ONS_DRIVERS_NET) ;# kernelAddFilesToNetBootArchive system: <revisioned>kernel_$(TARGET_ARCH) ;# scripts and data fileslocal driverSettingsFiles = <driver-settings>kernel ;SEARCH on $(driverSettingsFiles)= [ FDirName $(HAIKU_TOP) data settings kernel drivers ] ;AddFilesToNetBootArchive home config settings kernel drivers: $(driverSettingsFiles) ;# add-onsAddFilesToNetBootArchive system add-ons kernel network :stack;AddFilesToNetBootArchive system add-ons kernel network devices: $(SYSTEM_NETWORK_DEVICES) ;AddFilesToNetBootArchivesystem add-ons kernel network datalink_protocols: $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) ;AddFilesToNetBootArchive system add-ons kernel network ppp: $(SYSTEM_NETWORK_PPP) ;AddFilesToNetBootArchivesystem add-ons kernel network protocols: $(SYSTEM_NETWORK_PROTOCOLS) ;# boot module linksAddBootModuleSymlinksToNetBootArchive$(SYSTEM_ADD_ONS_BUS_MANAGERS)ahcigeneric_ide_pciide_isa@x86silicon_image_3112$(SYSTEM_ADD_ONS_FILE_SYSTEMS)ata_adapterscsi_periphintelsessionopenpic@ppcgeneric_x86@x86# generic_x86@x86_64# nbdremote_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 targetHAIKU_NET_BOOT_ARCHIVE = haiku-netboot.tgz ;MakeLocate $(HAIKU_NET_BOOT_ARCHIVE) : $(HAIKU_OUTPUT_DIR) ;# the pseudo target all archive contents is attached toNotFile $(HAIKU_NET_BOOT_ARCHIVE_CONTAINER_NAME) ;# prepare the script that initializes the shell variableslocal initVarsScript = <NetBootArchive>haiku-netboot-init-vars ;local script = $(initVarsScript) ;MakeLocate $(script) : $(HAIKU_OUTPUT_DIR) ;Always $(script) ;AddVariableToScript $(script) : tmpDir : $(HAIKU_TMP_DIR) ;AddVariableToScript $(script) : addBuildCompatibilityLibDir: "export $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR)" ;AddTargetVariableToScript $(script) : <build>copyattr ;# create the other scriptslocal makeDirsScript = <NetBootArchive>haiku-netboot-make-dirs ;local copyFilesScript = <NetBootArchive>haiku-netboot-copy-files ;MakeLocate $(makeDirsScript) $(copyFilesScript) : $(HAIKU_OUTPUT_DIR) ;CreateNetBootArchiveMakeDirectoriesScript $(makeDirsScript) ;CreateNetBootArchiveCopyFilesScript $(copyFilesScript) ;# build the archiveBuildNetBootArchive $(HAIKU_NET_BOOT_ARCHIVE) :$(initVarsScript)$(makeDirsScript)$(copyFilesScript);# remove the scripts we have generatedRmTemps $(HAIKU_NET_BOOT_ARCHIVE) :$(initVarsScript)$(makeDirsScript)$(copyFilesScript);NotFile haiku-netboot-archive ;Depends haiku-netboot-archive : $(HAIKU_NET_BOOT_ARCHIVE) ;