cmake_minimum_required(VERSION 3.11) project(68ksbc) 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(68ksbc ${SRCS}) target_link_libraries(68ksbc 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 )