RepositoryRules: RepositoryConfig does not need/use URL now.
[haiku.git] / build / jam / images / NetBootArchive
blob1a5dacd4edf6b3191ef2f1f5ccee380d1836e000
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
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
19         etherpci pegasus sis900 usb_ecm wb840
20         #vlance
21 ] ;
22 SYSTEM_ADD_ONS_BUS_MANAGERS = [ FFilterByBuildFeatures
23         pci isa@x86 ata@ata
24         scsi config_manager agp_gart
25 ] ;
26 SYSTEM_ADD_ONS_FILE_SYSTEMS = bfs packagefs ;
29 # modules
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
37         : ahci ;
38 AddFilesToNetBootArchive system add-ons kernel console
39         : vga_text ;
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
45         : intel session ;
46 AddFilesToNetBootArchive system add-ons kernel interrupt_controllers
47         : openpic@ppc ;
49 if $(TARGET_ARCH) = x86 {
50         AddFilesToNetBootArchive system add-ons kernel cpu
51                 : generic_x86 ;
54 # drivers
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) ;
60 # kernel
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) ;
72 # add-ons
73 AddFilesToNetBootArchive system add-ons kernel network
74         : stack ;
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) ;
86 # boot module links
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
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)
106 #pragma mark - Build The Archive
108 # archive target
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) ;
119 Always $(script) ;
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) ;
134 # build the archive
136 BuildNetBootArchive $(HAIKU_NET_BOOT_ARCHIVE) :
137         $(initVarsScript)
138         $(makeDirsScript)
139         $(copyFilesScript)
142 # remove the scripts we have generated
143 RmTemps $(HAIKU_NET_BOOT_ARCHIVE) :
144         $(initVarsScript)
145         $(makeDirsScript)
146         $(copyFilesScript)
149 NotFile haiku-netboot-archive ;
150 Depends haiku-netboot-archive : $(HAIKU_NET_BOOT_ARCHIVE) ;