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 39 : vga_text ; 40AddFilesToNetBootArchive system add-ons kernel file_systems 41 : $(SYSTEM_ADD_ONS_FILE_SYSTEMS) ; 42AddFilesToNetBootArchive system add-ons kernel generic 43 : ide_adapter@ide ata_adapter@ata locked_pool scsi_periph ; 44AddFilesToNetBootArchive system add-ons kernel partitioning_systems 45 : intel session ; 46AddFilesToNetBootArchive system add-ons kernel interrupt_controllers 47 : openpic@ppc ; 48 49if $(TARGET_ARCH) = x86 { 50 AddFilesToNetBootArchive system add-ons kernel cpu 51 : generic_x86 ; 52} 53 54# drivers 55AddNewDriversToNetBootArchive disk scsi : scsi_cd scsi_disk ; 56#AddDriversToNetBootArchive disk virtual : nbd ; 57AddDriversToNetBootArchive disk virtual : remote_disk ; 58AddDriversToNetBootArchive net : $(SYSTEM_ADD_ONS_DRIVERS_NET) ; 59 60# kernel 61AddFilesToNetBootArchive system 62 : <revisioned>kernel_$(TARGET_ARCH) ; 63 64# scripts and data files 65 66local driverSettingsFiles = <driver-settings>kernel ; 67SEARCH on $(driverSettingsFiles) 68 = [ FDirName $(HAIKU_TOP) data settings kernel drivers ] ; 69AddFilesToNetBootArchive home config settings kernel drivers 70 : $(driverSettingsFiles) ; 71 72# add-ons 73AddFilesToNetBootArchive system add-ons kernel network 74 : <net>notifications stack ; 75AddFilesToNetBootArchive system add-ons kernel network devices 76 : $(SYSTEM_NETWORK_DEVICES) ; 77AddFilesToNetBootArchive 78 system add-ons kernel network datalink_protocols 79 : $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) ; 80AddFilesToNetBootArchive system add-ons kernel network ppp 81 : $(SYSTEM_NETWORK_PPP) ; 82AddFilesToNetBootArchive 83 system add-ons kernel network protocols 84 : $(SYSTEM_NETWORK_PROTOCOLS) ; 85 86# boot module links 87AddBootModuleSymlinksToNetBootArchive 88 $(SYSTEM_ADD_ONS_BUS_MANAGERS) 89 ahci generic_ide_pci ide_isa@x86 silicon_image_3112 90 $(SYSTEM_ADD_ONS_FILE_SYSTEMS) 91 ide_adapter@ide ata_adapter@ata locked_pool scsi_periph 92 intel session 93 openpic@ppc 94 generic_x86@x86 95# nbd 96 remote_disk 97 $(SYSTEM_ADD_ONS_DRIVERS_NET) 98 stack 99 $(SYSTEM_NETWORK_DEVICES) 100 $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) 101 $(SYSTEM_NETWORK_PPP) 102 $(SYSTEM_NETWORK_PROTOCOLS) 103; 104 105 106#pragma mark - Build The Archive 107 108# archive target 109HAIKU_NET_BOOT_ARCHIVE = haiku-netboot.tgz ; 110MakeLocate $(HAIKU_NET_BOOT_ARCHIVE) : $(HAIKU_OUTPUT_DIR) ; 111 112# the pseudo target all archive contents is attached to 113NotFile $(HAIKU_NET_BOOT_ARCHIVE_CONTAINER_NAME) ; 114 115# prepare the script that initializes the shell variables 116local initVarsScript = <NetBootArchive>haiku-netboot-init-vars ; 117local script = $(initVarsScript) ; 118MakeLocate $(script) : $(HAIKU_OUTPUT_DIR) ; 119Always $(script) ; 120 121AddVariableToScript $(script) : tmpDir : $(HAIKU_TMP_DIR) ; 122AddVariableToScript $(script) : addBuildCompatibilityLibDir 123 : $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR) ; 124AddTargetVariableToScript $(script) : <build>copyattr ; 125 126# create the other scripts 127local makeDirsScript = <NetBootArchive>haiku-netboot-make-dirs ; 128local copyFilesScript = <NetBootArchive>haiku-netboot-copy-files ; 129MakeLocate $(makeDirsScript) $(copyFilesScript) : $(HAIKU_OUTPUT_DIR) ; 130 131CreateNetBootArchiveMakeDirectoriesScript $(makeDirsScript) ; 132CreateNetBootArchiveCopyFilesScript $(copyFilesScript) ; 133 134# build the archive 135 136BuildNetBootArchive $(HAIKU_NET_BOOT_ARCHIVE) : 137 $(initVarsScript) 138 $(makeDirsScript) 139 $(copyFilesScript) 140; 141 142# remove the scripts we have generated 143RmTemps $(HAIKU_NET_BOOT_ARCHIVE) : 144 $(initVarsScript) 145 $(makeDirsScript) 146 $(copyFilesScript) 147; 148 149NotFile haiku-netboot-archive ; 150Depends haiku-netboot-archive : $(HAIKU_NET_BOOT_ARCHIVE) ; 151