cmake_minimum_required(VERSION 3.11) project(micro68) add_executable(m68kmake tools/m68kmake.c) file(GLOB_RECURSE SRCS src/**.c) list(REMOVE_ITEM SRCS ${CMAKE_CURRENT_SOURCE_DIR}/src/musashi/m68k_in.c ${CMAKE_CURRENT_SOURCE_DIR}/src/musashi/m68kfpu.c) find_package(SDL2) add_executable(micro68 ${SRCS}) target_link_libraries(micro68 PRIVATE m SDL2::SDL2) macro(runtime NAME) add_custom_command( OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.o COMMAND vasmm68k_mot -Felf -m68000 -o ${CMAKE_CURRENT_BINARY_DIR}/${NAME}.o ${CMAKE_CURRENT_SOURCE_DIR}/runtime/${NAME}.s DEPENDS runtime/${NAME}.s ) endmacro() runtime(crt0) runtime(libc) add_custom_target(runtime ALL DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/crt0.o ${CMAKE_CURRENT_BINARY_DIR}/libc.o )