|
@@ -1,16 +1,30 @@
|
|
|
set(SOURCES
|
|
|
- Arch/x86/boot.S
|
|
|
- Arch/x86/multiboot.S
|
|
|
- init.cpp
|
|
|
- UBSanitizer.cpp
|
|
|
- ../MiniStdLib.cpp
|
|
|
- ../../Userland/Libraries/LibELF/Relocation.cpp
|
|
|
)
|
|
|
+if ("${SERENITY_ARCH}" STREQUAL "aarch64")
|
|
|
+ set(SOURCES
|
|
|
+ ${SOURCES}
|
|
|
+ Arch/aarch64/boot.S
|
|
|
+ )
|
|
|
+else()
|
|
|
+ set(SOURCES
|
|
|
+ ${SOURCES}
|
|
|
+ Arch/x86/boot.S
|
|
|
+ Arch/x86/multiboot.S
|
|
|
+ # FIXME: Eventually, some of these should build on aarch64 too.
|
|
|
+ UBSanitizer.cpp
|
|
|
+ init.cpp
|
|
|
+ ../MiniStdLib.cpp
|
|
|
+ ../../Userland/Libraries/LibELF/Relocation.cpp
|
|
|
+ )
|
|
|
+endif()
|
|
|
+
|
|
|
|
|
|
if ("${SERENITY_ARCH}" STREQUAL "i686")
|
|
|
set(PREKERNEL_TARGET Prekernel32)
|
|
|
-else()
|
|
|
+elseif ("${SERENITY_ARCH}" STREQUAL "x86_64")
|
|
|
set(PREKERNEL_TARGET Prekernel64)
|
|
|
+else()
|
|
|
+ set(PREKERNEL_TARGET Prekernel)
|
|
|
endif()
|
|
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static")
|
|
@@ -27,11 +41,13 @@ else()
|
|
|
target_link_libraries(${PREKERNEL_TARGET} gcc supc++)
|
|
|
endif()
|
|
|
|
|
|
-add_custom_command(
|
|
|
- TARGET ${PREKERNEL_TARGET} POST_BUILD
|
|
|
- COMMAND ${CMAKE_OBJCOPY} -O elf32-i386 ${CMAKE_CURRENT_BINARY_DIR}/${PREKERNEL_TARGET} ${CMAKE_CURRENT_BINARY_DIR}/Prekernel
|
|
|
- BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/Prekernel
|
|
|
-)
|
|
|
+if ("${SERENITY_ARCH}" STREQUAL "i686" OR "${SERENITY_ARCH}" STREQUAL "x86_64")
|
|
|
+ add_custom_command(
|
|
|
+ TARGET ${PREKERNEL_TARGET} POST_BUILD
|
|
|
+ COMMAND ${CMAKE_OBJCOPY} -O elf32-i386 ${CMAKE_CURRENT_BINARY_DIR}/${PREKERNEL_TARGET} ${CMAKE_CURRENT_BINARY_DIR}/Prekernel
|
|
|
+ BYPRODUCTS ${CMAKE_CURRENT_BINARY_DIR}/Prekernel
|
|
|
+ )
|
|
|
+endif()
|
|
|
|
|
|
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/Prekernel" DESTINATION boot)
|
|
|
|