1# This file defines what ends up in the network boot archive and it executes the 2# rules building the archive. 3 4 5SYSTEM_NETWORK_DEVICES = ethernet loopback ; 6SYSTEM_NETWORK_DATALINK_PROTOCOLS = ethernet_frame <module>arp loopback_frame ; 7SYSTEM_NETWORK_PROTOCOLS = ipv4 tcp udp icmp unix ; 8 9SYSTEM_ADD_ONS_DRIVERS_NET = [ FFilterByBuildFeatures 10 x86 @{ 11 3com atheros813x 12 broadcom440x broadcom570x ipro1000 13 rtl8139 rtl81xx 14 via_rhine ipro100 nforce 15 marvell_yukon syskonnect 16 attansic_l2 ar81xx 17 }@ # x86 18 19 etherpci pegasus rtl8169 sis900 usb_ecm wb840 20 #vlance 21] ; 22SYSTEM_ADD_ONS_BUS_MANAGERS = [ FFilterByBuildFeatures 23 pci isa@x86 ide@ide ata@ata 24 scsi config_manager agp_gart 25] ; 26SYSTEM_ADD_ONS_FILE_SYSTEMS = bfs fat iso9660 ; 27 28 29# modules 30AddFilesToNetBootArchive system add-ons kernel bus_managers 31 : $(SYSTEM_ADD_ONS_BUS_MANAGERS) ; 32AddFilesToNetBootArchive system add-ons kernel busses agp_gart 33 : <agp_gart>intel@x86 ; 34AddFilesToNetBootArchive system add-ons kernel busses ide 35 : generic_ide_pci ide_isa@x86 silicon_image_3112 ; 36AddFilesToNetBootArchive system add-ons kernel busses scsi 37 : ahci ; 38AddFilesToNetBootArchive system add-ons kernel console : vga_text ; 39AddFilesToNetBootArchive system add-ons kernel file_systems 40 : $(SYSTEM_ADD_ONS_FILE_SYSTEMS) ; 41AddFilesToNetBootArchive system add-ons kernel generic 42 : ide_adapter@ide ata_adapter@ata locked_pool scsi_periph ; 43AddFilesToNetBootArchive system add-ons kernel partitioning_systems 44 : intel session ; 45AddFilesToNetBootArchive system add-ons kernel interrupt_controllers 46 : openpic@ppc ; 47 48if $(TARGET_ARCH) = x86 { 49 AddFilesToNetBootArchive system add-ons kernel cpu : generic_x86 ; 50} 51 52# drivers 53AddNewDriversToNetBootArchive disk scsi : scsi_cd scsi_disk ; 54#AddDriversToNetBootArchive disk virtual : nbd ; 55AddDriversToNetBootArchive disk virtual : remote_disk ; 56AddDriversToNetBootArchive net : $(SYSTEM_ADD_ONS_DRIVERS_NET) ; 57 58# kernel 59AddFilesToNetBootArchive system : <revisioned>kernel_$(TARGET_ARCH) ; 60 61# scripts and data files 62 63local driverSettingsFiles = <driver-settings>kernel ; 64SEARCH on $(driverSettingsFiles) 65 = [ FDirName $(HAIKU_TOP) data settings kernel drivers ] ; 66AddFilesToNetBootArchive home config settings kernel drivers 67 : $(driverSettingsFiles) ; 68 69# add-ons 70AddFilesToNetBootArchive system add-ons kernel network 71 : <net>notifications stack ; 72AddFilesToNetBootArchive system add-ons kernel network devices 73 : $(SYSTEM_NETWORK_DEVICES) ; 74AddFilesToNetBootArchive system add-ons kernel network datalink_protocols 75 : $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) ; 76AddFilesToNetBootArchive system add-ons kernel network ppp 77 : $(SYSTEM_NETWORK_PPP) ; 78AddFilesToNetBootArchive system add-ons kernel network protocols 79 : $(SYSTEM_NETWORK_PROTOCOLS) ; 80 81# boot module links 82AddBootModuleSymlinksToNetBootArchive 83 $(SYSTEM_ADD_ONS_BUS_MANAGERS) 84 ahci generic_ide_pci ide_isa@x86 silicon_image_3112 85 $(SYSTEM_ADD_ONS_FILE_SYSTEMS) 86 ide_adapter@ide ata_adapter@ata locked_pool scsi_periph 87 intel session 88 openpic@ppc 89 generic_x86@x86 90# nbd 91 remote_disk 92 $(SYSTEM_ADD_ONS_DRIVERS_NET) 93 stack 94 $(SYSTEM_NETWORK_DEVICES) 95 $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) 96 $(SYSTEM_NETWORK_PPP) 97 $(SYSTEM_NETWORK_PROTOCOLS) 98; 99 100 101#pragma mark - Build The Archive 102 103# archive target 104HAIKU_NET_BOOT_ARCHIVE = haiku-netboot.tgz ; 105MakeLocate $(HAIKU_NET_BOOT_ARCHIVE) : $(HAIKU_OUTPUT_DIR) ; 106 107# the pseudo target all archive contents is attached to 108NotFile $(HAIKU_NET_BOOT_ARCHIVE_CONTAINER_NAME) ; 109 110# prepare the script that initializes the shell variables 111local initVarsScript = <NetBootArchive>haiku-netboot-init-vars ; 112local script = $(initVarsScript) ; 113MakeLocate $(script) : $(HAIKU_OUTPUT_DIR) ; 114Always $(script) ; 115 116AddVariableToScript $(script) : tmpDir : $(HAIKU_TMP_DIR) ; 117AddVariableToScript $(script) : addBuildCompatibilityLibDir 118 : $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR) ; 119AddTargetVariableToScript $(script) : <build>copyattr ; 120 121# create the other scripts 122local makeDirsScript = <NetBootArchive>haiku-netboot-make-dirs ; 123local copyFilesScript = <NetBootArchive>haiku-netboot-copy-files ; 124MakeLocate $(makeDirsScript) $(copyFilesScript) : $(HAIKU_OUTPUT_DIR) ; 125 126CreateNetBootArchiveMakeDirectoriesScript $(makeDirsScript) ; 127CreateNetBootArchiveCopyFilesScript $(copyFilesScript) ; 128 129# build the archive 130 131BuildNetBootArchive $(HAIKU_NET_BOOT_ARCHIVE) : 132 $(initVarsScript) 133 $(makeDirsScript) 134 $(copyFilesScript) 135; 136 137# remove the scripts we have generated 138RmTemps $(HAIKU_NET_BOOT_ARCHIVE) : 139 $(initVarsScript) 140 $(makeDirsScript) 141 $(copyFilesScript) 142; 143 144NotFile haiku-netboot-archive ; 145Depends haiku-netboot-archive : $(HAIKU_NET_BOOT_ARCHIVE) ; 146