haiku/build/jam/FloppyBootImage
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

170 lines
5.1 KiB
Plaintext

# This file defines what ends up in the floppy boot image and it executes the
# rules building the image.
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 = "" ;
}
local NET_BOOT = 0 ;
local BOOT_ADD_ONS_NET ;
if $(NET_BOOT) = 1 {
BOOT_ADD_ONS_NET =
# nbd
# remote_disk
# $(BEOS_ADD_ONS_DRIVERS_NET)
# stack socket
# $(BEOS_NETWORK_DEVICES)
# $(BEOS_NETWORK_DATALINK_PROTOCOLS)
# $(BEOS_NETWORK_PPP)
# $(BEOS_NETWORK_PROTOCOLS)
;
}
BEOS_ADD_ONS_BUS_MANAGERS = pci $(X86_ONLY)isa ide scsi
config_manager agp_gart usb
;
BEOS_ADD_ONS_FILE_SYSTEMS = bfs ;
#cdda fat googlefs iso9660 nfs ;
# modules
AddFilesToFloppyBootArchive beos system add-ons kernel bus_managers
: $(BEOS_ADD_ONS_BUS_MANAGERS) ;
AddFilesToFloppyBootArchive beos system add-ons kernel busses agp_gart
: $(X86_ONLY)<agp_gart>intel ;
AddFilesToFloppyBootArchive beos system add-ons kernel busses ide
: generic_ide_pci $(X86_ONLY)ide_isa silicon_image_3112 legacy_sata it8211 ;
AddFilesToFloppyBootArchive beos system add-ons kernel busses scsi
: ahci ;
AddFilesToFloppyBootArchive beos system add-ons kernel console : vga_text ;
AddFilesToFloppyBootArchive beos system add-ons kernel file_systems
: $(BEOS_ADD_ONS_FILE_SYSTEMS) ;
AddFilesToFloppyBootArchive beos system add-ons kernel generic
: ide_adapter locked_pool scsi_periph ;
AddFilesToFloppyBootArchive beos system add-ons kernel partitioning_systems
: intel session ;
AddFilesToFloppyBootArchive beos system add-ons kernel interrupt_controllers
: $(PPC_ONLY)openpic ;
AddFilesToFloppyBootArchive beos system add-ons kernel busses usb
: <usb>uhci <usb>ohci <usb>ehci ;
if $(TARGET_ARCH) = x86 {
AddFilesToFloppyBootArchive beos system add-ons kernel cpu : generic_x86 ;
}
# drivers
AddNewDriversToFloppyBootArchive disk scsi : scsi_cd scsi_disk ;
AddDriversToFloppyBootArchive disk usb : usb_disk ;
if $(NET_BOOT) = 1 {
#AddDriversToFloppyBootArchive disk virtual : nbd ;
AddDriversToFloppyBootArchive disk virtual : remote_disk ;
AddDriversToFloppyBootArchive net : $(BEOS_ADD_ONS_DRIVERS_NET) ;
}
# kernel
AddFilesToFloppyBootArchive 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 ] ;
AddFilesToFloppyBootArchive home config settings kernel drivers
: $(driverSettingsFiles) ;
if $(NET_BOOT) = 1 {
# add-ons
AddFilesToFloppyBootArchive beos system add-ons kernel network
: stack socket ;
AddFilesToFloppyBootArchive beos system add-ons kernel network devices
: $(BEOS_NETWORK_DEVICES) ;
AddFilesToFloppyBootArchive beos system add-ons kernel network datalink_protocols
: $(BEOS_NETWORK_DATALINK_PROTOCOLS) ;
AddFilesToFloppyBootArchive beos system add-ons kernel network ppp
: $(BEOS_NETWORK_PPP) ;
AddFilesToFloppyBootArchive beos system add-ons kernel network protocols
: $(BEOS_NETWORK_PROTOCOLS) ;
}
# boot module links
AddBootModuleSymlinksToFloppyBootArchive
$(BEOS_ADD_ONS_BUS_MANAGERS)
$(PPC_ONLY)openpic
ide_adapter locked_pool scsi_periph
$(X86_ONLY)generic_x86
ahci generic_ide_pci $(X86_ONLY)ide_isa silicon_image_3112 legacy_sata it8211
<usb>uhci <usb>ohci <usb>ehci
scsi_cd scsi_disk usb_disk
intel session
$(BEOS_ADD_ONS_FILE_SYSTEMS)
$(BOOT_ADD_ONS_NET)
;
#pragma mark - Build The Archive
# archive target
HAIKU_FLOPPY_BOOT_ARCHIVE = haiku-floppyboot.tgz ;
MakeLocate $(HAIKU_FLOPPY_BOOT_ARCHIVE) : $(HAIKU_OUTPUT_DIR) ;
# the pseudo target all archive contents is attached to
NotFile $(HAIKU_BOOT_FLOPPY_CONTAINER_NAME) ;
# prepare the script that initializes the shell variables
local initVarsScript = <FloppyBootArchive>haiku-floppyboot-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 = <FloppyBootArchive>haiku-floppyboot-make-dirs ;
local copyFilesScript = <FloppyBootArchive>haiku-floppyboot-copy-files ;
MakeLocate $(makeDirsScript) $(copyFilesScript) : $(HAIKU_OUTPUT_DIR) ;
CreateFloppyBootArchiveMakeDirectoriesScript $(makeDirsScript) ;
CreateFloppyBootArchiveCopyFilesScript $(copyFilesScript) ;
# build the archive
BuildFloppyBootArchive $(HAIKU_FLOPPY_BOOT_ARCHIVE) :
$(initVarsScript)
$(makeDirsScript)
$(copyFilesScript)
;
# remove the scripts we have generated
RmTemps $(HAIKU_FLOPPY_BOOT_ARCHIVE) :
$(initVarsScript)
$(makeDirsScript)
$(copyFilesScript)
;
NotFile haiku-floppyboot-archive ;
Depends haiku-floppyboot-archive : $(HAIKU_FLOPPY_BOOT_ARCHIVE) ;
# floppy image target
HAIKU_BOOT_FLOPPY = haiku-boot-floppy.image ;
MakeLocate $(HAIKU_BOOT_FLOPPY) : $(HAIKU_OUTPUT_DIR) ;
BuildFloppyBootImage $(HAIKU_BOOT_FLOPPY) : zbeos : $(HAIKU_FLOPPY_BOOT_ARCHIVE) ;
NotFile haiku-boot-floppy ;
Depends haiku-boot-floppy : $(HAIKU_BOOT_FLOPPY) ;