haiku/build/jam/NetBootArchive
François Revol 4bc885a2db Hopefully fixed floppy and netboot images, please test.
It's getting annoying having to maintain so many identical driver lists... maybe those should be factored out in some way...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28654 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-14 20:34:52 +00:00

151 lines
4.7 KiB
Plaintext

# This file defines what ends up in the network boot archive and it executes the
# rules building the archive.
local X86_ONLY = ;
local PPC_ONLY = ;
if $(TARGET_ARCH) = x86 {
X86_ONLY = "" ;
} else if $(TARGET_ARCH) = ppc {
X86_ONLY = ;
}
local GPL_ONLY = ;
if $(INCLUDE_GPL_ADDONS) = 1 {
GPL_ONLY = "" ;
}
BEOS_NETWORK_DEVICES = ethernet loopback ;
BEOS_NETWORK_DATALINK_PROTOCOLS = ethernet_frame <module>arp loopback_frame
ipv4_datagram ;
BEOS_NETWORK_PROTOCOLS = ipv4 tcp udp icmp ;
BEOS_ADD_ONS_DRIVERS_NET = $(X86_ONLY)3com etherpci $(X86_ONLY)ipro1000
$(X86_ONLY)ipro100 $(X86_ONLY)rtl8139 rtl8169 sis900
$(X86_ONLY)marvell_yukon $(X86_ONLY)via_rhine wb840 vlance
$(GPL_ONLY)bcm440x $(GPL_ONLY)bcm570x
;
BEOS_ADD_ONS_BUS_MANAGERS = pci $(X86_ONLY)isa ide scsi
config_manager agp_gart
;
BEOS_ADD_ONS_FILE_SYSTEMS = bfs fat iso9660 ;
#cdda googlefs nfs $(GPL_ONLY)ntfs ;
# modules
AddFilesToNetBootArchive beos system add-ons kernel bus_managers
: $(BEOS_ADD_ONS_BUS_MANAGERS) ;
AddFilesToNetBootArchive beos system add-ons kernel busses agp_gart
: $(X86_ONLY)<agp_gart>intel ;
AddFilesToNetBootArchive beos system add-ons kernel busses ide
: generic_ide_pci $(X86_ONLY)ide_isa silicon_image_3112 ;
AddFilesToNetBootArchive beos system add-ons kernel busses scsi
: ahci ;
AddFilesToNetBootArchive beos system add-ons kernel console : vga_text ;
AddFilesToNetBootArchive beos system add-ons kernel file_systems
: $(BEOS_ADD_ONS_FILE_SYSTEMS) ;
AddFilesToNetBootArchive beos system add-ons kernel generic
: ide_adapter locked_pool scsi_periph ;
AddFilesToNetBootArchive beos system add-ons kernel partitioning_systems
: intel session ;
AddFilesToNetBootArchive beos system add-ons kernel interrupt_controllers
: $(PPC_ONLY)openpic ;
if $(TARGET_ARCH) = x86 {
AddFilesToNetBootArchive beos system add-ons kernel cpu : generic_x86 ;
}
# drivers
AddNewDriversToNetBootArchive disk scsi : scsi_cd scsi_disk ;
#AddDriversToNetBootArchive disk virtual : nbd ;
AddDriversToNetBootArchive disk virtual : remote_disk ;
AddDriversToNetBootArchive net : $(BEOS_ADD_ONS_DRIVERS_NET) ;
# kernel
AddFilesToNetBootArchive beos system : <revisioned>kernel_$(TARGET_ARCH) ;
# scripts and data files
local driverSettingsFiles = <driver-settings>kernel ;
SEARCH on $(driverSettingsFiles)
= [ FDirName $(HAIKU_TOP) data settings kernel drivers ] ;
AddFilesToNetBootArchive home config settings kernel drivers
: $(driverSettingsFiles) ;
# add-ons
AddFilesToNetBootArchive beos system add-ons kernel network
: stack ;
AddFilesToNetBootArchive beos system add-ons kernel network devices
: $(BEOS_NETWORK_DEVICES) ;
AddFilesToNetBootArchive beos system add-ons kernel network datalink_protocols
: $(BEOS_NETWORK_DATALINK_PROTOCOLS) ;
AddFilesToNetBootArchive beos system add-ons kernel network ppp
: $(BEOS_NETWORK_PPP) ;
AddFilesToNetBootArchive beos system add-ons kernel network protocols
: $(BEOS_NETWORK_PROTOCOLS) ;
# boot module links
AddBootModuleSymlinksToNetBootArchive
$(BEOS_ADD_ONS_BUS_MANAGERS)
ahci generic_ide_pci $(X86_ONLY)ide_isa silicon_image_3112
$(BEOS_ADD_ONS_FILE_SYSTEMS)
ide_adapter locked_pool scsi_periph
intel session
$(PPC_ONLY)openpic
$(X86_ONLY)generic_x86
# nbd
remote_disk
$(BEOS_ADD_ONS_DRIVERS_NET)
stack
$(BEOS_NETWORK_DEVICES)
$(BEOS_NETWORK_DATALINK_PROTOCOLS)
$(BEOS_NETWORK_PPP)
$(BEOS_NETWORK_PROTOCOLS)
;
#pragma mark - Build The Archive
# archive target
HAIKU_NET_BOOT_ARCHIVE = haiku-netboot.tgz ;
MakeLocate $(haiku-netboot-archive) : $(HAIKU_OUTPUT_DIR) ;
# the pseudo target all archive contents is attached to
NotFile $(HAIKU_NET_BOOT_ARCHIVE_CONTAINER_NAME) ;
# prepare the script that initializes the shell variables
local 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
: $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR) ;
AddTargetVariableToScript $(script) : <build>copyattr ;
# create the other scripts
local 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 archive
BuildNetBootArchive $(HAIKU_NET_BOOT_ARCHIVE) :
$(initVarsScript)
$(makeDirsScript)
$(copyFilesScript)
;
# remove the scripts we have generated
RmTemps $(HAIKU_NET_BOOT_ARCHIVE) :
$(initVarsScript)
$(makeDirsScript)
$(copyFilesScript)
;
NotFile haiku-netboot-archive ;
Depends haiku-netboot-archive : $(HAIKU_NET_BOOT_ARCHIVE) ;