2022-08-03 10:45:22 +02:00
|
|
|
# XT Boot Loader
|
|
|
|
PROJECT(XTLDR)
|
|
|
|
|
2022-09-17 00:22:45 +02:00
|
|
|
# Build XTLDR modules
|
|
|
|
add_subdirectory(modules)
|
|
|
|
|
2022-08-03 10:45:22 +02:00
|
|
|
# Specify include directories
|
|
|
|
include_directories(
|
|
|
|
${EXECTOS_SOURCE_DIR}/sdk/xtdk
|
|
|
|
${XTLDR_SOURCE_DIR}/includes)
|
|
|
|
|
2024-01-09 18:51:04 +01:00
|
|
|
# Specify list of library source code files
|
|
|
|
list(APPEND LIBXTLDR_SOURCE
|
|
|
|
${XTLDR_SOURCE_DIR}/library/modproto.c)
|
|
|
|
|
2022-08-03 10:45:22 +02:00
|
|
|
# Specify list of source code files
|
|
|
|
list(APPEND XTLDR_SOURCE
|
2024-01-17 14:42:07 +01:00
|
|
|
${XTLDR_SOURCE_DIR}/arch/${ARCH}/memory.c
|
2024-01-09 18:51:04 +01:00
|
|
|
${XTLDR_SOURCE_DIR}/config.c
|
2022-08-03 22:36:31 +02:00
|
|
|
${XTLDR_SOURCE_DIR}/console.c
|
2024-01-09 18:51:04 +01:00
|
|
|
${XTLDR_SOURCE_DIR}/debug.c
|
|
|
|
${XTLDR_SOURCE_DIR}/efiutils.c
|
2023-11-16 17:20:20 +01:00
|
|
|
${XTLDR_SOURCE_DIR}/globals.c
|
2024-01-09 18:51:04 +01:00
|
|
|
${XTLDR_SOURCE_DIR}/hardware.c
|
2022-12-05 20:08:18 +01:00
|
|
|
${XTLDR_SOURCE_DIR}/memory.c
|
2024-01-09 18:51:04 +01:00
|
|
|
${XTLDR_SOURCE_DIR}/protocol.c
|
|
|
|
${XTLDR_SOURCE_DIR}/shell.c
|
|
|
|
${XTLDR_SOURCE_DIR}/textui.c
|
2022-08-21 19:43:43 +02:00
|
|
|
${XTLDR_SOURCE_DIR}/volume.c
|
2022-08-03 10:45:22 +02:00
|
|
|
${XTLDR_SOURCE_DIR}/xtldr.c)
|
|
|
|
|
2024-01-09 18:51:04 +01:00
|
|
|
# Link static XTLDR library
|
|
|
|
add_library(libxtldr ${LIBXTLDR_SOURCE})
|
|
|
|
|
2022-08-30 23:22:38 +02:00
|
|
|
# Link bootloader executable
|
2022-08-03 10:45:22 +02:00
|
|
|
add_executable(xtldr ${XTLDR_SOURCE})
|
|
|
|
|
2022-08-09 22:27:15 +02:00
|
|
|
# Add linker libraries
|
2022-09-17 00:14:09 +02:00
|
|
|
target_link_libraries(xtldr libxtos)
|
2022-08-09 22:27:15 +02:00
|
|
|
|
2022-08-03 10:45:22 +02:00
|
|
|
# Set proper binary name and install target
|
|
|
|
if(ARCH STREQUAL "i686")
|
|
|
|
set(BINARY_NAME "bootia32")
|
|
|
|
elseif(ARCH STREQUAL "amd64")
|
|
|
|
set(BINARY_NAME "bootx64")
|
|
|
|
endif()
|
|
|
|
set_target_properties(xtldr PROPERTIES OUTPUT_NAME ${BINARY_NAME} SUFFIX .efi)
|
|
|
|
set_install_target(xtldr efi/boot)
|
|
|
|
|
2023-01-02 18:06:54 +01:00
|
|
|
# Set loader entrypoint and subsystem
|
2022-08-09 22:27:15 +02:00
|
|
|
set_entrypoint(xtldr "BlStartXtLoader")
|
2024-01-09 18:51:04 +01:00
|
|
|
set_imagebase(xtldr ${BASEADDRESS_XTLDR})
|
|
|
|
set_linker_map(xtldr TRUE)
|
2022-08-03 10:45:22 +02:00
|
|
|
set_subsystem(xtldr efi_application)
|