2008-03-02 06:05:23 +03:00
|
|
|
# This file defines what ends up in the floppy boot image and it executes the
|
|
|
|
# rules building the image.
|
|
|
|
|
|
|
|
|
2009-05-02 14:20:29 +04:00
|
|
|
#HACK: remove when old ide code is removed!
|
|
|
|
|
2008-03-02 06:23:51 +03:00
|
|
|
local NET_BOOT = 0 ;
|
2009-08-12 18:47:46 +04:00
|
|
|
local USB_BOOT = 1 ;
|
|
|
|
|
|
|
|
local USB_ONLY = ;
|
|
|
|
if $(USB_BOOT) = 1 {
|
|
|
|
USB_ONLY = "" ;
|
|
|
|
}
|
2008-03-02 06:23:51 +03:00
|
|
|
|
|
|
|
local BOOT_ADD_ONS_NET ;
|
|
|
|
if $(NET_BOOT) = 1 {
|
2009-08-12 18:47:46 +04:00
|
|
|
BOOT_ADD_ONS_NET =
|
|
|
|
remote_disk
|
|
|
|
$(SYSTEM_ADD_ONS_DRIVERS_NET)
|
|
|
|
stack socket
|
|
|
|
$(SYSTEM_NETWORK_DEVICES)
|
|
|
|
$(SYSTEM_NETWORK_DATALINK_PROTOCOLS)
|
|
|
|
$(SYSTEM_NETWORK_PPP)
|
|
|
|
$(SYSTEM_NETWORK_PROTOCOLS)
|
|
|
|
;
|
2008-03-02 06:23:51 +03:00
|
|
|
}
|
|
|
|
|
2012-12-09 07:07:29 +04:00
|
|
|
SYSTEM_ADD_ONS_BUS_MANAGERS = [ FFilterByBuildFeatures
|
2019-02-26 03:56:07 +03:00
|
|
|
acpi@x86,x86_64 ata config_manager dpc pci
|
2017-06-28 16:13:37 +03:00
|
|
|
isa@x86,x86_64 scsi $(USB_ONLY)usb fdt@arm
|
2012-12-09 07:07:29 +04:00
|
|
|
] ;
|
2013-09-13 01:27:51 +04:00
|
|
|
SYSTEM_ADD_ONS_FILE_SYSTEMS =
|
2020-07-27 04:26:59 +03:00
|
|
|
attribute_overlay@!m68k bfs iso9660@!m68k packagefs write_overlay@!m68k
|
2013-09-13 01:27:51 +04:00
|
|
|
;
|
2008-03-02 06:05:23 +03:00
|
|
|
|
2013-12-02 00:16:29 +04:00
|
|
|
# modules
|
|
|
|
AddFilesToFloppyBootArchive system add-ons kernel bus_managers
|
|
|
|
: $(SYSTEM_ADD_ONS_BUS_MANAGERS) ;
|
2008-03-02 06:05:23 +03:00
|
|
|
|
2017-06-28 16:13:37 +03:00
|
|
|
AddFilesToFloppyBootArchive system add-ons kernel busses ata
|
|
|
|
: generic_ide_pci ide_isa@x86 silicon_image_3112 legacy_sata
|
|
|
|
it8211 ;
|
2013-12-02 00:16:29 +04:00
|
|
|
|
|
|
|
AddFilesToFloppyBootArchive system add-ons kernel busses scsi
|
|
|
|
: ahci ;
|
|
|
|
AddFilesToFloppyBootArchive system add-ons kernel console : vga_text ;
|
|
|
|
AddFilesToFloppyBootArchive system add-ons kernel file_systems
|
|
|
|
: $(SYSTEM_ADD_ONS_FILE_SYSTEMS) ;
|
|
|
|
AddFilesToFloppyBootArchive system add-ons kernel generic
|
2019-02-26 03:56:07 +03:00
|
|
|
: ata_adapter locked_pool scsi_periph ;
|
2013-12-02 00:16:29 +04:00
|
|
|
AddFilesToFloppyBootArchive system add-ons kernel partitioning_systems
|
|
|
|
: intel session ;
|
|
|
|
AddFilesToFloppyBootArchive system add-ons kernel interrupt_controllers
|
|
|
|
: openpic@ppc ;
|
|
|
|
|
|
|
|
if $(USB_BOOT) = 1 {
|
|
|
|
AddFilesToFloppyBootArchive system add-ons kernel busses usb
|
2014-10-31 13:32:15 +03:00
|
|
|
: <usb>uhci <usb>ohci <usb>ehci ;
|
2013-12-02 00:16:29 +04:00
|
|
|
}
|
2012-09-08 12:33:13 +04:00
|
|
|
|
2013-12-02 00:16:29 +04:00
|
|
|
if $(TARGET_ARCH) = x86 || $(TARGET_ARCH) = x86_64 {
|
2012-07-21 11:32:07 +04:00
|
|
|
AddFilesToFloppyBootArchive system add-ons kernel cpu : generic_x86 ;
|
2013-12-02 00:16:29 +04:00
|
|
|
}
|
2012-07-21 11:32:07 +04:00
|
|
|
|
2013-12-02 00:16:29 +04:00
|
|
|
# drivers
|
|
|
|
AddNewDriversToFloppyBootArchive disk scsi : scsi_cd scsi_disk ;
|
|
|
|
AddNewDriversToFloppyBootArchive disk : norflash@arm ;
|
|
|
|
if $(USB_BOOT) = 1 {
|
|
|
|
AddDriversToFloppyBootArchive disk usb : usb_disk ;
|
|
|
|
}
|
|
|
|
if $(NET_BOOT) = 1 {
|
|
|
|
AddDriversToFloppyBootArchive disk virtual : remote_disk ;
|
|
|
|
AddDriversToFloppyBootArchive net : $(SYSTEM_ADD_ONS_DRIVERS_NET) ;
|
2008-03-02 06:23:51 +03:00
|
|
|
}
|
2008-03-02 06:05:23 +03:00
|
|
|
|
|
|
|
# kernel
|
2011-06-16 11:00:06 +04:00
|
|
|
AddFilesToFloppyBootArchive system
|
|
|
|
: <revisioned>kernel_$(TARGET_ARCH) ;
|
2008-03-02 06:05:23 +03:00
|
|
|
|
|
|
|
# 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) ;
|
|
|
|
|
2008-03-02 06:23:51 +03:00
|
|
|
if $(NET_BOOT) = 1 {
|
2009-08-12 18:47:46 +04:00
|
|
|
# add-ons
|
|
|
|
AddFilesToFloppyBootArchive system add-ons kernel network
|
|
|
|
: stack socket ;
|
2011-06-16 11:00:06 +04:00
|
|
|
AddFilesToFloppyBootArchive
|
|
|
|
system add-ons kernel network devices
|
2009-08-12 18:47:46 +04:00
|
|
|
: $(SYSTEM_NETWORK_DEVICES) ;
|
2011-06-16 11:00:06 +04:00
|
|
|
AddFilesToFloppyBootArchive
|
|
|
|
system add-ons kernel network datalink_protocols
|
2009-08-12 18:47:46 +04:00
|
|
|
: $(SYSTEM_NETWORK_DATALINK_PROTOCOLS) ;
|
2011-06-16 11:00:06 +04:00
|
|
|
AddFilesToFloppyBootArchive
|
|
|
|
system add-ons kernel network ppp
|
2009-08-12 18:47:46 +04:00
|
|
|
: $(SYSTEM_NETWORK_PPP) ;
|
2011-06-16 11:00:06 +04:00
|
|
|
AddFilesToFloppyBootArchive
|
|
|
|
system add-ons kernel network protocols
|
2009-08-12 18:47:46 +04:00
|
|
|
: $(SYSTEM_NETWORK_PROTOCOLS) ;
|
2008-03-02 06:23:51 +03:00
|
|
|
}
|
2008-03-02 06:05:23 +03:00
|
|
|
|
|
|
|
# boot module links
|
2013-12-09 22:48:13 +04:00
|
|
|
AddBootModuleSymlinksToFloppyBootArchive [ FFilterByBuildFeatures
|
|
|
|
$(SYSTEM_ADD_ONS_BUS_MANAGERS)
|
|
|
|
openpic@ppc
|
2019-02-26 03:56:07 +03:00
|
|
|
ata_adapter locked_pool scsi_periph
|
2013-12-09 22:48:13 +04:00
|
|
|
generic_x86@x86
|
|
|
|
ahci generic_ide_pci ide_isa@x86 silicon_image_3112 legacy_sata
|
|
|
|
it8211
|
2014-10-31 13:32:15 +03:00
|
|
|
$(USB_ONLY)<usb>uhci $(USB_ONLY)<usb>ohci $(USB_ONLY)<usb>ehci
|
2013-12-09 22:48:13 +04:00
|
|
|
scsi_cd scsi_disk $(USB_ONLY)usb_disk norflash@arm
|
|
|
|
intel session
|
|
|
|
$(SYSTEM_ADD_ONS_FILE_SYSTEMS)
|
|
|
|
$(BOOT_ADD_ONS_NET)
|
|
|
|
] ;
|
2008-03-02 06:05:23 +03:00
|
|
|
|
|
|
|
|
|
|
|
#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
|
2019-08-31 00:11:50 +03:00
|
|
|
: "export $(HOST_ADD_BUILD_COMPATIBILITY_LIB_DIR)" ;
|
2008-03-02 06:05:23 +03:00
|
|
|
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) ;
|
|
|
|
|
2018-10-09 03:28:00 +03:00
|
|
|
BuildFloppyBootImage $(HAIKU_BOOT_FLOPPY) : haiku_loader.$(HAIKU_KERNEL_PLATFORM)
|
2009-04-03 13:42:58 +04:00
|
|
|
: $(HAIKU_FLOPPY_BOOT_ARCHIVE) ;
|
2008-03-02 06:05:23 +03:00
|
|
|
|
2009-02-15 16:30:42 +03:00
|
|
|
# remove the archive
|
|
|
|
RmTemps $(HAIKU_BOOT_FLOPPY) : $(HAIKU_FLOPPY_BOOT_ARCHIVE) ;
|
|
|
|
|
2008-03-02 06:05:23 +03:00
|
|
|
NotFile haiku-boot-floppy ;
|
|
|
|
Depends haiku-boot-floppy : $(HAIKU_BOOT_FLOPPY) ;
|