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
)
