2 include_directories(BEFORE include)
3 include_directories(${REACTOS_SOURCE_DIR}/ntoskrnl/include)
6 if(SARCH MATCHES omap-zoom2)
7 add_definitions(-D_ZOOM2_)
13 list(APPEND FREELDR_BASE64K_SOURCE
16 list(APPEND FREELDR_STARTUP_SOURCE
20 elseif(ARCH MATCHES amd64)
21 list(APPEND FREELDR_STARTUP_SOURCE
24 endif(ARCH MATCHES i386)
28 list(APPEND FREELDR_BASE64K_SOURCE
40 elseif(ARCH MATCHES amd64)
41 list(APPEND FREELDR_BASE64K_SOURCE
47 endif(ARCH MATCHES i386)
51 set_source_files_properties(${FREELDR_BASE64K_SOURCE} PROPERTIES COMPILE_DEFINITIONS "_NTHAL_")
53 include_directories(${REACTOS_SOURCE_DIR}/lib/cmlib)
55 list(APPEND FREELDR_BASE_SOURCE
107 if(ARCH MATCHES i386)
108 list(APPEND FREELDR_BASE_SOURCE
111 endif(ARCH MATCHES i386)
113 set_source_files_properties(${FREELDR_BASE_SOURCE} PROPERTIES COMPILE_DEFINITIONS "_NTHAL_;_BLDR_;_NTSYSTEM_")
115 include_directories(${REACTOS_SOURCE_DIR}/include/reactos/libs)
116 include_directories(${REACTOS_SOURCE_DIR}/include/reactos/elf)
118 if(ARCH MATCHES i386)
119 list(APPEND FREELDR_ARCH_SOURCE
148 arch/i386/xboxvideo.c
149 windows/i386/ntsetup.c
150 windows/i386/wlmemory.c)
153 endif(ARCH MATCHES i386)
155 set_source_files_properties(${FREELDR_ARCH_SOURCE} PROPERTIES COMPILE_DEFINITIONS "_NTHAL_;_BLDR_;_NTSYSTEM_")
157 list(APPEND SETUPLDR_MAIN_SOURCE
162 if(ARCH MATCHES i386)
163 list(APPEND SETUPLDR_MAIN_SOURCE windows/setupldr2.c)
164 elseif(ARCH MATCHES amd64)
165 list(APPEND SETUPLDR_MAIN_SOURCE windows/setupldr2.c)
166 endif(ARCH MATCHES i386)
168 set_source_files_properties(${SETUPLDR_MAIN_SOURCE} PROPERTIES COMPILE_FLAGS "-ffreestanding -fno-builtin -fno-inline -fno-zero-initialized-in-bss")
172 list(APPEND FREELDR_SOURCE
174 ${FREELDR_STARTUP_SOURCE}
175 ${FREELDR_BASE64K_SOURCE}
176 ${FREELDR_BASE_SOURCE}
177 ${FREELDR_ARCH_SOURCE})
179 add_library(freeldr SHARED
180 ${CMAKE_CURRENT_BINARY_DIR}/freeldr_freeldr.h.gch
184 set_target_properties(freeldr PROPERTIES LINK_FLAGS "-Wl,--strip-all -Wl,--exclude-all-symbols -Wl,--file-alignment,0x1000 -Wl,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lnk" SUFFIX ".sys")
185 set_image_base(freeldr 0x8000)
187 set_target_properties(freeldr PROPERTIES LINK_FLAGS "/DRIVER /FIXED /ALIGN:0x400 /SECTION:.text,ERW /SECTION:.data,RW /MERGE:.text16=.text /MERGE:.data=.text /MERGE:.rdata=.text /MERGE:.bss=.text /SUBSYSTEM:BOOT_APPLICATION" SUFFIX ".sys")
188 set_image_base(freeldr 0x10000)
191 set_subsystem(freeldr native)
192 set_entrypoint(freeldr mainCRTStartup)
194 if(ARCH MATCHES i386)
195 target_link_libraries(freeldr mini_hal)
196 endif(ARCH MATCHES i386)
198 target_link_libraries(freeldr
204 add_pch(freeldr ${CMAKE_CURRENT_SOURCE_DIR}/include/freeldr.h ${FREELDR_SOURCE})
205 add_dependencies(freeldr asm)
207 list(APPEND SETUPLDR_SOURCE
208 ${FREELDR_STARTUP_SOURCE}
209 ${FREELDR_BASE64K_SOURCE}
210 ${FREELDR_BASE_SOURCE}
211 ${FREELDR_ARCH_SOURCE}
212 ${SETUPLDR_MAIN_SOURCE})
214 add_library(setupldr SHARED ${SETUPLDR_SOURCE})
217 set_target_properties(setupldr PROPERTIES LINK_FLAGS "-Wl,--strip-all -Wl,--exclude-all-symbols -Wl,--file-alignment,0x1000 -Wl,-T,${CMAKE_CURRENT_SOURCE_DIR}/freeldr_i386.lnk" SUFFIX ".sys" COMPILE_DEFINITIONS "FREELDR_REACTOS_SETUP")
218 set_image_base(setupldr 0x8000)
220 set_target_properties(setupldr PROPERTIES LINK_FLAGS "/DRIVER /SECTION:.text,ERWP,ALIGN=0x1000" SUFFIX ".sys" COMPILE_DEFINITIONS "FREELDR_REACTOS_SETUP")
223 set_subsystem(setupldr native)
224 set_entrypoint(setupldr mainCRTStartup)
226 if(ARCH MATCHES i386)
227 target_link_libraries(setupldr mini_hal)
228 endif(ARCH MATCHES i386)
230 target_link_libraries(setupldr
237 add_dependencies(setupldr asm)
240 add_minicd_target(setupldr loader setupldr.sys)
241 add_minicd_target(freeldr loader freeldr.sys)
242 add_livecd_target(setupldr loader)