Files
reactos/boot/freeldr/bootsect/CMakeLists.txt
T
Hermès Bélusca-Maïto b2e33f26eb [REACTOS] Merge our bootcd and livecd into an all-in-one ReactOS BootCD (#7313)
CORE-9069, CORE-13525, RELEASE-11

This new BootCD contains the functionality of both the original bootcd
(text-mode 1st-stage installer) and the livecd (that will include the
1st-stage GUI installer later).
Our separate livecd ISOs become obsolete, and this completely removes
the need for the so-called "hybridcd" ISO.

Some details:

- The "hybridcd" build target is completely removed, since now the new
  BootCD *is* basically what we used to call "hybridcd".

- The "livecd" build target is kept so far (to minimize the code changes),
  but internally I start to refer to it as "LiveImage", and is reduced
  to a minimum.

  A minimal non-bootable "liveimg.iso" is built (but currently not
  included within the BootCD). Its purpose will be to implement the
  "ReactOS Live" functionality as a RAMDISK.
  (We currently don't support other file formats apart from ISO and
  flat disk for a RAMDISK).

  The "ReactOS Live" (non-RAMDISK) is implemented by adding to the
  BootCD file tree the files from the LiveImage.
  These files add two root directories, "Profiles" and "reactos"
  (which is the SystemRoot for the non-ramdisk LiveImage).

- The minimal text-mode ReactOS installation used for the 1st-stage
  installer, including USETUP itself, and the executable for the
  1st-stage GUI installer and the reactos.cab (installation source),
  are moved to the root directory called "i386" (ideally, one directory
  per architecture).

- The "bootcdregtest" target, i.e. the ISOs we feed our testbots with,
  are left untouched, i.e. they are only constituted of the 1st-stage
  text-mode installation only, but placed in a per-architecture root
  directory ("i386", etc. as for the bootcd).

- Remove the ACPI APIC/SMP entries from bootcd.ini. They will be made
  available via the Advanced Boot Options F8 menu in Debug builds, for
  testing purposes only, in a subsequent commit.

This commit is based upon an older SVN one:
svn path=/branches/setup_improvements/; revision=75273
2026-04-28 23:11:10 +02:00

52 lines
3.4 KiB
CMake

include_directories(${REACTOS_SOURCE_DIR}/boot/freeldr)
if(ARCH STREQUAL "i386" OR ARCH STREQUAL "amd64")
CreateBootSectorTarget(dosmbr ${CMAKE_CURRENT_SOURCE_DIR}/dosmbr.S ${CMAKE_CURRENT_BINARY_DIR}/dosmbr.bin 7c00)
CreateBootSectorTarget(ext ${CMAKE_CURRENT_SOURCE_DIR}/ext.S ${CMAKE_CURRENT_BINARY_DIR}/ext.bin 7c00)
CreateBootSectorTarget(extldr ${CMAKE_CURRENT_SOURCE_DIR}/extldr.S ${CMAKE_CURRENT_BINARY_DIR}/extldr.sys 8000)
CreateBootSectorTarget(fat ${CMAKE_CURRENT_SOURCE_DIR}/fat.S ${CMAKE_CURRENT_BINARY_DIR}/fat.bin 7c00)
CreateBootSectorTarget(fat32 ${CMAKE_CURRENT_SOURCE_DIR}/fat32.S ${CMAKE_CURRENT_BINARY_DIR}/fat32.bin 7c00)
CreateBootSectorTarget(ntfsvbr ${CMAKE_CURRENT_SOURCE_DIR}/ntfs.S ${CMAKE_CURRENT_BINARY_DIR}/ntfs.bin 7c00)
CreateBootSectorTarget(btrfsvbr ${CMAKE_CURRENT_SOURCE_DIR}/btrfs.S ${CMAKE_CURRENT_BINARY_DIR}/btrfs.bin 7c00)
if(SARCH STREQUAL "pc98")
CreateBootSectorTarget(fat12pc98 ${CMAKE_CURRENT_SOURCE_DIR}/pc98/fat12fdd.S ${CMAKE_CURRENT_BINARY_DIR}/pc98/fat12fdd.bin 7c00)
endif()
## New versions using FATY.S (experimental)
# add_definitions(-DFAT12)
# CreateBootSectorTarget(fat_new ${CMAKE_CURRENT_SOURCE_DIR}/faty.S ${CMAKE_CURRENT_BINARY_DIR}/fat_new.bin 7c00)
# remove_definitions(-DFAT12)
# add_definitions(-DFAT16)
# CreateBootSectorTarget(fat16_new ${CMAKE_CURRENT_SOURCE_DIR}/faty.S ${CMAKE_CURRENT_BINARY_DIR}/fat16_new.bin 7c00)
# remove_definitions(-DFAT16)
# add_definitions(-DFAT32)
# CreateBootSectorTarget(fat32_new ${CMAKE_CURRENT_SOURCE_DIR}/faty.S ${CMAKE_CURRENT_BINARY_DIR}/fat32_new.bin 7c00)
# remove_definitions(-DFAT32)
CreateBootSectorTarget(isoboot ${CMAKE_CURRENT_SOURCE_DIR}/isoboot.S ${CMAKE_CURRENT_BINARY_DIR}/isoboot.bin 7000)
CreateBootSectorTarget(isobtrt ${CMAKE_CURRENT_SOURCE_DIR}/isobtrt.S ${CMAKE_CURRENT_BINARY_DIR}/isobtrt.bin 7000)
CreateBootSectorTarget(isombr ${CMAKE_CURRENT_SOURCE_DIR}/isombr.S ${CMAKE_CURRENT_BINARY_DIR}/isombr.bin 7000)
add_cd_file(TARGET dosmbr FILE ${CMAKE_CURRENT_BINARY_DIR}/dosmbr.bin DESTINATION loader NO_CAB FOR bootcd regtest)
add_cd_file(TARGET ext FILE ${CMAKE_CURRENT_BINARY_DIR}/ext.bin DESTINATION loader NO_CAB FOR bootcd regtest)
add_cd_file(TARGET extldr FILE ${CMAKE_CURRENT_BINARY_DIR}/extldr.sys DESTINATION loader NO_CAB FOR bootcd regtest)
add_cd_file(TARGET btrfsvbr FILE ${CMAKE_CURRENT_BINARY_DIR}/btrfs.bin DESTINATION loader NO_CAB FOR bootcd regtest)
add_cd_file(TARGET fat FILE ${CMAKE_CURRENT_BINARY_DIR}/fat.bin DESTINATION loader NO_CAB FOR bootcd regtest)
add_cd_file(TARGET fat32 FILE ${CMAKE_CURRENT_BINARY_DIR}/fat32.bin DESTINATION loader NO_CAB FOR bootcd regtest)
add_cd_file(TARGET ntfsvbr FILE ${CMAKE_CURRENT_BINARY_DIR}/ntfs.bin DESTINATION loader NO_CAB FOR bootcd regtest)
add_cd_file(TARGET isoboot FILE ${CMAKE_CURRENT_BINARY_DIR}/isoboot.bin DESTINATION loader NO_CAB FOR bootcd)
add_cd_file(TARGET isobtrt FILE ${CMAKE_CURRENT_BINARY_DIR}/isobtrt.bin DESTINATION loader NO_CAB FOR bootcd regtest)
add_cd_file(TARGET isombr FILE ${CMAKE_CURRENT_BINARY_DIR}/isombr.bin DESTINATION loader NO_CAB FOR bootcd)
elseif(ARCH STREQUAL "arm")
add_custom_target(fat
COMMAND exit 1
COMMENT "arm fat target not implemented yet")
add_custom_target(fat32
COMMAND exit 1
COMMENT "arm fat32 target not implemented yet")
endif()