1 # This file defines what ends up in the network boot archive and it executes the
2 # rules building the archive.
5 SYSTEM_NETWORK_DEVICES = ethernet loopback ;
6 SYSTEM_NETWORK_DATALINK_PROTOCOLS = ethernet_frame <module>arp loopback_frame ;
7 SYSTEM_NETWORK_PROTOCOLS = ipv4 tcp udp icmp unix ;
9 SYSTEM_ADD_ONS_DRIVERS_NET = [ FFilterByBuildFeatures
12 broadcom440x broadcom570x ipro1000
14 via_rhine ipro100 nforce
15 marvell_yukon syskonnect
19 etherpci pegasus sis900 usb_ecm wb840
22 SYSTEM_ADD_ONS_BUS_MANAGERS = [ FFilterByBuildFeatures
24 scsi config_manager agp_gart
26 SYSTEM_ADD_ONS_FILE_SYSTEMS = bfs packagefs ;
30 AddFilesToNetBootArchive system add-ons kernel bus_managers
31 : $(SYSTEM_ADD_ONS_BUS_MANAGERS) ;
32 AddFilesToNetBootArchive system add-ons kernel busses agp_gart
33 : <agp_gart>intel@x86 ;
34 AddFilesToNetBootArchive system add-ons kernel busses ide
35 : generic_ide_pci ide_isa@x86 silicon_image_3112 ;
36 AddFilesToNetBootArchive system add-ons kernel busses scsi
38 AddFilesToNetBootArchive system add-ons kernel console
40 AddFilesToNetBootArchive system add-ons kernel file_systems
41 : $(SYSTEM_ADD_ONS_FILE_SYSTEMS) ;
42 AddFilesToNetBootArchive system add-ons kernel generic
43 : ata_adapter@ata locked_pool scsi_periph ;
44 AddFilesToNetBootArchive system add-ons kernel partitioning_systems
46 AddFilesToNetBootArchive system add-ons kernel interrupt_controllers
49 if $(TARGET_ARCH) = x86 {
50 AddFilesToNetBootArchive system add-ons kernel cpu
55 AddNewDriversToNetBootArchive disk scsi : scsi_cd scsi_disk ;
56 #AddDriversToNetBootArchive disk virtual : nbd ;
57 AddDriversToNetBootArchive disk virtual : remote_disk ;
58 AddDriversToNetBootArchive net : $(SYSTEM_ADD_ONS_DRIVERS_NET) ;
61 AddFilesToNetBootArchive system
62 : <revisioned>kernel_$(TARGET_ARCH) ;
64 # scripts and data files
66 local driverSettingsFiles = <driver-settings>kernel ;
67 SEARCH on $(driverSettingsFiles)
68 = [ FDirName $(HAIKU_TOP) data settings kernel drivers ] ;
69 AddFilesToNetBootArchive home config settings kernel drivers
70 : $(driverSettingsFiles) ;
73 AddFilesToNetBootArchive system add-ons kernel network
75 AddFilesToNetBootArchive system add-ons kernel network devices
76 : $(SYSTEM_NETWORK_DEVICES) ;
77 AddFilesToNetBootArchive
78 system add-ons kernel network datalink_protocols
79 : $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) ;
80 AddFilesToNetBootArchive system add-ons kernel network ppp
81 : $(SYSTEM_NETWORK_PPP) ;
82 AddFilesToNetBootArchive
83 system add-ons kernel network protocols
84 : $(SYSTEM_NETWORK_PROTOCOLS) ;
87 AddBootModuleSymlinksToNetBootArchive
88 $(SYSTEM_ADD_ONS_BUS_MANAGERS)
89 ahci generic_ide_pci ide_isa@x86 silicon_image_3112
90 $(SYSTEM_ADD_ONS_FILE_SYSTEMS)
91 ata_adapter@ata locked_pool scsi_periph
97 $(SYSTEM_ADD_ONS_DRIVERS_NET)
99 $(SYSTEM_NETWORK_DEVICES)
100 $(SYSTEM_NETWORK_DATALINK_PROTOCOLS)
101 $(SYSTEM_NETWORK_PPP)
102 $(SYSTEM_NETWORK_PROTOCOLS)
106 #pragma mark - Build The Archive
109 HAIKU_NET_BOOT_ARCHIVE = haiku-netboot.tgz ;
110 MakeLocate $(HAIKU_NET_BOOT_ARCHIVE) : $(HAIKU_OUTPUT_DIR) ;
112 # the pseudo target all archive contents is attached to
113 NotFile $(HAIKU_NET_BOOT_ARCHIVE_CONTAINER_NAME) ;
115 # prepare the script that initializes the shell variables
116 local initVarsScript = <NetBootArchive>haiku-netboot-init-vars ;
117 local script = $(initVarsScript) ;
118 MakeLocate $(script) : $(HAIKU_OUTPUT_DIR) ;
121 AddVariableToScript $(script) : tmpDir : $(HAIKU_TMP_DIR) ;
122 AddVariableToScript $(script) : addBuildCompatibilityLibDir
123 : $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR) ;
124 AddTargetVariableToScript $(script) : <build>copyattr ;
126 # create the other scripts
127 local makeDirsScript = <NetBootArchive>haiku-netboot-make-dirs ;
128 local copyFilesScript = <NetBootArchive>haiku-netboot-copy-files ;
129 MakeLocate $(makeDirsScript) $(copyFilesScript) : $(HAIKU_OUTPUT_DIR) ;
131 CreateNetBootArchiveMakeDirectoriesScript $(makeDirsScript) ;
132 CreateNetBootArchiveCopyFilesScript $(copyFilesScript) ;
136 BuildNetBootArchive $(HAIKU_NET_BOOT_ARCHIVE) :
142 # remove the scripts we have generated
143 RmTemps $(HAIKU_NET_BOOT_ARCHIVE) :
149 NotFile haiku-netboot-archive ;
150 Depends haiku-netboot-archive : $(HAIKU_NET_BOOT_ARCHIVE) ;