cmake_minimum_required(VERSION 3.14.0)
project(WiFiPi VERSION 0.3.2)
get_verstring(VERSTRING)

add_link_options(-ffreestanding -nostdlib -nostartfiles -Wl,-e,__start)
add_compile_options(-Os -m68040 -Wall -Wextra -Werror -fomit-frame-pointer)
add_compile_definitions(PRIVATE VERSION_STRING="${VERSTRING}")

add_executable(wifipi.device
    src/start.c
    src/device.c
    src/init.c
    src/mbox.c
    src/sdio.c
    src/end.c
    src/wifipi.c
    src/packet.c
    src/d11.c
    src/unit.c
    src/findtoken.c
)
target_include_directories(wifipi.device PRIVATE include)
target_link_libraries(wifipi.device devicetree amiga sana2 common)

add_executable(wifipi_rom
    src/start.c
    src/device.c
    src/init.c
    src/mbox.c
    src/sdio.c
    src/end.c
    src/wifipi.c
    src/packet.c
    src/d11.c
    src/unit.c
    src/findtoken.c
)

target_include_directories(wifipi_rom PRIVATE include)
target_link_libraries(wifipi_rom devicetree sana2 common)
target_link_options(wifipi_rom PRIVATE -Wl,-e_rom_start -Wl,-T${CMAKE_SOURCE_DIR}/extrom.lds)
add_custom_command(
    TARGET wifipi_rom POST_BUILD
    COMMAND ${CMAKE_OBJCOPY} -v -O binary "${CMAKE_CURRENT_BINARY_DIR}/wifipi_rom" "${CMAKE_CURRENT_BINARY_DIR}/wifipi.rom"
    COMMAND dd if="${CMAKE_CURRENT_BINARY_DIR}/wifipi.rom" of="${CMAKE_CURRENT_BINARY_DIR}/wifipi.rom~" bs=512k skip=30
    COMMAND mv "${CMAKE_CURRENT_BINARY_DIR}/wifipi.rom~" "${CMAKE_CURRENT_BINARY_DIR}/wifipi.rom"
#    COMMAND cp "${CMAKE_CURRENT_BINARY_DIR}/wifipi.rom" /home/michal/tftpboot/
    COMMAND rm "${CMAKE_CURRENT_BINARY_DIR}/wifipi_rom"
    WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
set_target_properties(wifipi_rom PROPERTIES LINK_DEPENDS ${CMAKE_SOURCE_DIR}/extrom.lds)

install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/wifipi.device DESTINATION ./Emu68-WiFi/Devs/Networks)
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/firmware/ DESTINATION ./Emu68-WiFi/Devs/Firmware)
