[FREELDR][SETUPLDR]

* Prepare the CMake script for PCH.
* Add header guards to pcbios.h.
CORE-7716

svn path=/trunk/; revision=62128
This commit is contained in:
Amine Khaldi 2014-02-12 11:37:40 +00:00
parent 1cba1c80c4
commit 2d650203c1
3 changed files with 34 additions and 52 deletions

View file

@ -32,6 +32,7 @@ if((ARCH STREQUAL "arm") AND (SARCH STREQUAL "omap-zoom2"))
endif()
list(APPEND FREELDR_COMMON_SOURCE
include/freeldr.h
cmdline.c
debug.c
linuxboot.c
@ -121,7 +122,7 @@ if(ARCH STREQUAL "i386")
windows/headless.c
disk/scsiport.c)
if(NOT MSVC)
list(APPEND FREELDR_COMMON_SOURCE arch/i386/drvmap.S)
list(APPEND FREELDR_COMMON_ASM_SOURCE arch/i386/drvmap.S)
endif()
elseif(ARCH STREQUAL "amd64")
list(APPEND FREELDR_COMMON_ASM_SOURCE
@ -152,12 +153,9 @@ else()
#TBD
endif()
if(NOT MSVC)
add_library(freeldr_common OBJECT ${FREELDR_COMMON_SOURCE} ${FREELDR_COMMON_ASM_SOURCE})
else()
add_asm_files(freeldr_common_asm ${FREELDR_COMMON_ASM_SOURCE})
add_library(freeldr_common ${FREELDR_COMMON_SOURCE} ${freeldr_common_asm})
endif()
add_asm_files(freeldr_common_asm ${FREELDR_COMMON_ASM_SOURCE})
add_library(freeldr_common ${FREELDR_COMMON_SOURCE} ${freeldr_common_asm})
add_pch(freeldr_common include/freeldr.h FREELDR_COMMON_SOURCE)
add_dependencies(freeldr_common bugcodes)
if(ARCH STREQUAL "i386" AND NOT MSVC)
@ -173,24 +171,20 @@ if(NOT MSVC)
list(APPEND FREELDR_BASE_SOURCE ${CMAKE_CURRENT_BINARY_DIR}/freeldr.def)
endif()
if(NOT MSVC)
add_library(freeldr_pe SHARED $<TARGET_OBJECTS:freeldr_common> ${FREELDR_BASE_SOURCE})
add_library(freeldr_pe_dbg SHARED EXCLUDE_FROM_ALL $<TARGET_OBJECTS:freeldr_common> ${FREELDR_BASE_SOURCE})
if(SEPARATE_DBG)
set_target_properties(freeldr_pe PROPERTIES LINKER_LANGUAGE LDR_PE_HELPER)
set_target_properties(freeldr_pe_dbg PROPERTIES LINKER_LANGUAGE LDR_PE_HELPER)
endif()
else()
add_library(freeldr_pe SHARED ${FREELDR_BASE_SOURCE})
add_library(freeldr_pe_dbg SHARED EXCLUDE_FROM_ALL ${FREELDR_BASE_SOURCE})
add_library(freeldr_pe SHARED ${FREELDR_BASE_SOURCE})
add_library(freeldr_pe_dbg SHARED EXCLUDE_FROM_ALL ${FREELDR_BASE_SOURCE})
if(NOT MSVC AND SEPARATE_DBG)
set_target_properties(freeldr_pe PROPERTIES LINKER_LANGUAGE LDR_PE_HELPER)
set_target_properties(freeldr_pe_dbg PROPERTIES LINKER_LANGUAGE LDR_PE_HELPER)
endif()
if(NOT MSVC)
add_target_link_flags(freeldr_pe "-Wl,--strip-all,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds")
add_target_link_flags(freeldr_pe_dbg "-Wl,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds")
else()
if(MSVC)
add_target_link_flags(freeldr_pe "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text ")
add_target_link_flags(freeldr_pe_dbg "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text")
else()
add_target_link_flags(freeldr_pe "-Wl,--strip-all,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds")
add_target_link_flags(freeldr_pe_dbg "-Wl,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds")
endif()
set_image_base(freeldr_pe 0x10000)
@ -206,15 +200,8 @@ if(ARCH STREQUAL "i386")
target_link_libraries(freeldr_pe_dbg mini_hal)
endif()
if(MSVC)
target_link_libraries(freeldr_pe freeldr_common)
target_link_libraries(freeldr_pe_dbg freeldr_common)
endif()
target_link_libraries(freeldr_pe cportlib cmlib rtl libcntpr)
target_link_libraries(freeldr_pe_dbg cportlib cmlib rtl libcntpr)
# add_pch(freeldr_pe include/freeldr.h)
target_link_libraries(freeldr_pe freeldr_common cportlib cmlib rtl libcntpr)
target_link_libraries(freeldr_pe_dbg freeldr_common cportlib cmlib rtl libcntpr)
add_dependencies(freeldr_pe asm)
add_dependencies(freeldr_pe_dbg asm)
@ -237,24 +224,20 @@ if(ARCH STREQUAL "i386" OR ARCH STREQUAL "amd64")
list(APPEND SETUPLDR_SOURCE windows/setupldr.c)
endif()
if(NOT MSVC)
add_library(setupldr_pe SHARED $<TARGET_OBJECTS:freeldr_common> ${FREELDR_BASE_SOURCE} ${SETUPLDR_SOURCE})
add_library(setupldr_pe_dbg SHARED EXCLUDE_FROM_ALL $<TARGET_OBJECTS:freeldr_common> ${FREELDR_BASE_SOURCE} ${SETUPLDR_SOURCE})
if(SEPARATE_DBG)
set_target_properties(setupldr_pe PROPERTIES LINKER_LANGUAGE LDR_PE_HELPER)
set_target_properties(setupldr_pe_dbg PROPERTIES LINKER_LANGUAGE LDR_PE_HELPER)
endif()
else()
add_library(setupldr_pe SHARED ${FREELDR_BASE_SOURCE} ${SETUPLDR_SOURCE})
add_library(setupldr_pe_dbg SHARED EXCLUDE_FROM_ALL ${FREELDR_BASE_SOURCE} ${SETUPLDR_SOURCE})
add_library(setupldr_pe SHARED ${FREELDR_BASE_SOURCE} ${SETUPLDR_SOURCE})
add_library(setupldr_pe_dbg SHARED EXCLUDE_FROM_ALL ${FREELDR_BASE_SOURCE} ${SETUPLDR_SOURCE})
if(NOT MSVC AND SEPARATE_DBG)
set_target_properties(setupldr_pe PROPERTIES LINKER_LANGUAGE LDR_PE_HELPER)
set_target_properties(setupldr_pe_dbg PROPERTIES LINKER_LANGUAGE LDR_PE_HELPER)
endif()
if(NOT MSVC)
add_target_link_flags(setupldr_pe "-Wl,--strip-all,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds")
add_target_link_flags(setupldr_pe_dbg "-Wl,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds")
else()
if(MSVC)
add_target_link_flags(setupldr_pe "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text")
add_target_link_flags(setupldr_pe_dbg "/ignore:4078 /ignore:4254 /DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text")
else()
add_target_link_flags(setupldr_pe "-Wl,--strip-all,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds")
add_target_link_flags(setupldr_pe_dbg "-Wl,--exclude-all-symbols,--file-alignment,0x1000,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lds")
endif()
add_target_compile_definitions(setupldr_pe FREELDR_REACTOS_SETUP)
@ -273,13 +256,8 @@ if(ARCH STREQUAL "i386")
target_link_libraries(setupldr_pe_dbg mini_hal)
endif()
if(MSVC)
target_link_libraries(setupldr_pe freeldr_common)
target_link_libraries(setupldr_pe_dbg freeldr_common)
endif()
target_link_libraries(setupldr_pe cportlib cmlib rtl libcntpr)
target_link_libraries(setupldr_pe_dbg cportlib cmlib rtl libcntpr)
target_link_libraries(setupldr_pe freeldr_common cportlib cmlib rtl libcntpr)
target_link_libraries(setupldr_pe_dbg freeldr_common cportlib cmlib rtl libcntpr)
add_dependencies(setupldr_pe asm)
add_dependencies(setupldr_pe_dbg asm)

View file

@ -1,3 +1,6 @@
#ifndef _PCBIOS_H_
#define _PCBIOS_H_
#ifndef __ASM__
typedef enum
@ -139,3 +142,4 @@ VOID DetectHardware(VOID); // Implemented in hardware.c
#define REGS_EFLAGS 36
#define REGS_SIZE 40
#endif /* _PCBIOS_H_ */

View file

@ -122,4 +122,4 @@ VOID BootMain(LPSTR CmdLine);
VOID LoadOperatingSystem(IN OperatingSystemItem* OperatingSystem);
VOID RunLoader(VOID);
#endif // defined __FREELDR_H
#endif /* __FREELDR_H */