diff --git a/CMakeLists.txt b/CMakeLists.txt index e28b572..93c8dba 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -62,10 +62,39 @@ if(MARS_NWE_BUILD_DOSUTILS) -fo="${CMAKE_CURRENT_BINARY_DIR}/kern.obj" "${CMAKE_CURRENT_SOURCE_DIR}/kern_wasm.asm" DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/kern_wasm.asm" - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" VERBATIM ) + set(DOSUTILS_OBJECTS) + foreach(src IN LISTS DOSUTILS_C_SOURCES) + get_filename_component(obj_name "${src}" NAME_WE) + set(obj "${CMAKE_CURRENT_BINARY_DIR}/${obj_name}.obj") + list(APPEND DOSUTILS_OBJECTS "${obj}") + + add_custom_command( + OUTPUT "${obj}" + COMMAND "${CMAKE_COMMAND}" -E env ${OPENWATCOM_ENV} + "${OPENWATCOM_WCL}" + -q + -zq + -bt=dos + -ml + -0 + -c + -fo="${obj}" + "${CMAKE_CURRENT_SOURCE_DIR}/${src}" + DEPENDS + "${CMAKE_CURRENT_SOURCE_DIR}/${src}" + "${CMAKE_CURRENT_SOURCE_DIR}/net.h" + "${CMAKE_CURRENT_SOURCE_DIR}/kern.h" + "${CMAKE_CURRENT_SOURCE_DIR}/c32ncp.h" + "${CMAKE_CURRENT_SOURCE_DIR}/nwcrypt.h" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" + VERBATIM + ) + endforeach() + add_custom_command( OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/net.exe" COMMAND "${CMAKE_COMMAND}" -E env ${OPENWATCOM_ENV} @@ -77,15 +106,12 @@ if(MARS_NWE_BUILD_DOSUTILS) -0 -k32768 -fe="${CMAKE_CURRENT_BINARY_DIR}/net.exe" - ${DOSUTILS_C_SOURCES} + ${DOSUTILS_OBJECTS} "${CMAKE_CURRENT_BINARY_DIR}/kern.obj" DEPENDS - ${DOSUTILS_C_SOURCES} + ${DOSUTILS_OBJECTS} "${CMAKE_CURRENT_BINARY_DIR}/kern.obj" - net.h - kern.h - nwcrypt.h - WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" + WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}" VERBATIM ) diff --git a/kern.asm b/doc/kern.asm similarity index 100% rename from kern.asm rename to doc/kern.asm diff --git a/makefile.bcc b/doc/makefile.bcc similarity index 100% rename from makefile.bcc rename to doc/makefile.bcc