[Simh] RFC: [PATCH] add cmake build for cross compile
Lothar Felten
lothar.felten at gmail.com
Mon Sep 12 04:13:39 EDT 2016
Hello,
while trying to cross compile simh/pdp11 I found that the simh makefile
would need some patches, so I build the pdp11 simulator with cmake. The
main advantage of cmake is that is handles cross compiling nicely.
Now I've added all simulators (but tested only a few of them) and since
it doesn't interfere with the default makefile, maybe this patch is
useful for someone else.
Full patch below.
Lothar
The default simh makefile has some issues when cross compiling for a
different architecture. This patch adds CMakeLists.txt so the simh
project can optionally be built with cmake.
Signed-off-by: Lothar Felten <lothar.felten at gmail.com>
---
CMakeLists.txt | 697
++++++++++++++++++++++++++++++++++++++++++++
CMakeSources.txt | 744
+++++++++++++++++++++++++++++++++++++++++++++++
CMakeTestLargeFile.cmake | 32 ++
3 files changed, 1473 insertions(+)
create mode 100644 CMakeLists.txt
create mode 100644 CMakeSources.txt
create mode 100644 CMakeTestLargeFile.cmake
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..a891b47
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,697 @@
+#
+# CMakeLists for simh project
+#
+# The default simh makefile is not suited for cross compile
+#
+# usage (out of source build):
+# - make directory next to simh sources
+# - cmake <path to simh/CMakeLists.txt>
+# - run make
+#
+# example:
+# git clone https://github.com/simh/simh
+# mkdir build
+# cd build
+# cmake ../simh/
+# make -j 8
+#
+# TODO:
+# - add support for Windos/MacOS/...
+# - fix besm6 true type font
+# - testing
+# - build the simulator core as independent library (requires
+# code changes because the net/video option is handled at
+# compile time)
+#
+# 2016 Lothar Felten <lothar.felten at gmail.com>
+#
+cmake_minimum_required(VERSION 2.8.8)
+include(${CMAKE_CURRENT_SOURCE_DIR}/CMakeSources.txt)
+project(simh)
+
+#
+# OPTIONS
+#
+option(BUILD_ALPHA "build alpha simulator" ON)#EXPERIMENTAL
+option(BUILD_ALTAIR "build altair simulator" ON)
+option(BUILD_ALTAIRZ80 "build altairz80 simulator" ON)
+option(BUILD_B5500 "build b5500 simulator" ON)
+option(BUILD_BESM6 "build besm6 simulator" ON)
+option(BUILD_CDC1700 "build cdc1700 simulator" ON)
+option(BUILD_ECLIPSE "build eclipse simulator" ON)
+option(BUILD_GRI "build gri simulator" ON)
+option(BUILD_H316 "build h316 simulator" ON)
+option(BUILD_HP2100 "build hp2100 simulator" ON)
+option(BUILD_HP3000 "build hp3000 simulator" ON)
+option(BUILD_I1401 "build i1401 simulator" ON)
+option(BUILD_I1620 "build i1620 simulator" ON)
+option(BUILD_I7094 "build i7094 simulator" ON)
+option(BUILD_IBM1130 "build ibm1130 simulator" ON)
+option(BUILD_ID16 "build id16 simulator" ON)
+option(BUILD_ID32 "build id32 simulator" ON)
+option(BUILD_ISYS8010 "build isys8010 simulator" ON)
+option(BUILD_ISYS8020 "build isys8020 simulator" ON)
+option(BUILD_LGP "build lgp simulator" ON)
+option(BUILD_MICROVAX1 "build microvax1 simulator" ON)
+option(BUILD_MICROVAX2 "build microvax2 simulator" ON)
+option(BUILD_MICROVAX3900 "build microvax3900 simulator" ON)
+option(BUILD_NOVA "build nova simulator" ON)
+option(BUILD_PDP1 "build pdp1 simulator" ON)
+option(BUILD_PDP4 "build pdp4 simulator" ON)
+option(BUILD_PDP7 "build pdp7 simulator" ON)
+option(BUILD_PDP8 "build pdp8 simulator" ON)
+option(BUILD_PDP9 "build pdp9 simulator" ON)
+option(BUILD_PDP10 "build pdp10 simulator" ON)
+option(BUILD_PDP11 "build pdp11 simulator" ON)
+option(BUILD_PDP15 "build pdp15 simulator" ON)
+option(BUILD_PDQ3 "build pdq3 simulator" ON)#EXPERIMENTAL
+option(BUILD_RTVAX1000 "build rtvax1000 simulator" ON)
+option(BUILD_S3 "build s3 simulator" ON)
+option(BUILD_SAGE "build sage simulator" ON)#EXPERIMENTAL
+option(BUILD_SDS "build sds simulator" ON)
+option(BUILD_SIGMA "build sigma simulator" ON)#EXPERIMENTAL
+option(BUILD_SSEM "build ssem simulator" ON)
+option(BUILD_SWTP6800A "build swtp6800a simulator" ON)
+option(BUILD_SWTP6800A2 "build swtp6800a2 simulator" ON)
+option(BUILD_TX-0 "build tx-0 simulator" ON)
+option(BUILD_VAX "build vax simulator" ON)
+option(BUILD_VAX730 "build vax730 simulator" ON)
+option(BUILD_VAX750 "build vax750 simulator" ON)
+option(BUILD_VAX780 "build vax780 simulator" ON)
+option(BUILD_VAX8600 "build vax8600 simulator" ON)
+option(BUILD_ROMHEADERS "build headers from ROM files" ON)
+option(ASYNC_IO "async io option (requires threads)" ON)
+option(VIDEO "video option (requires libSDL2)" ON)
+option(NETWORK "network option (requires libpcap, threads)" ON)
+
+#
+# DEBUG
+#
+# uncomment the next line to see the invoked commands and debug messages
+#set(DEBUG 1)
+if(DEBUG)
+ message("DEBUG ENABLED")
+ set(CMAKE_VERBOSE_MAKEFILE ON)
+endif(DEBUG)
+
+#
+# EXTERNAL LIBRARIES
+#
+# find out which libraries are available on the system
+# add each required library to the SYSTEM_LIBS list
+# add compiler flags depending on available libraries
+find_package(Threads)
+if(THREADS_FOUND)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_READER_THREAD")
+ set(SYSTEM_LIBS ${SYSTEM_LIBS} ${CMAKE_THREAD_LIBS_INIT})
+endif(THREADS_FOUND)
+
+find_package(PkgConfig)
+if(PKGCONFIG_FOUND)
+ pkg_check_modules(LIBPNG libpng)
+ if(LIBPNG_FOUND)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_LIBPNG")
+ set(SYSTEM_LIBS ${SYSTEM_LIBS} ${LIBPNG_LIBRARIES})
+ endif(LIBPNG_FOUND)
+
+ pkg_check_modules(SDL2 sdl2)
+ if(SDL2_FOUND)
+ set(SYSTEM_LIBS ${SYSTEM_LIBS} ${SDL2_LIBRARIES}) # might be unused
+ endif(SDL2_FOUND)
+
+ pkg_check_modules(SDL2_TTF SDL2_ttf)
+ if(SDL2_TTF_FOUND)
+ set(SYSTEM_LIBS ${SYSTEM_LIBS} ${SDL2_TTF_LIBRARIES}) # might be unused
+ endif(SDL2_TTF_FOUND)
+
+ pkg_check_modules(LIBPCREPOSIX libpcreposix)
+ if(LIBPCREPOSIX_FOUND)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_PCRE_POSIX")
+ set(SYSTEM_LIBS ${SYSTEM_LIBS} ${LIBPCREPOSIX_LIBRARIES})
+ endif(LIBPCREPOSIX_FOUND)
+
+ pkg_check_modules(LIBPCAP libpcap)
+ if(LIBPCAP_FOUND)
+ set(SYSTEM_LIBS ${SYSTEM_LIBS} ${LIBPCAP_LIBRARIES}) # might be unused
+ endif(LIBPCAP_FOUND)
+endif()
+
+find_library(DL_LIBRARY dl)
+if(DL_LIBRARY)
+ set(SYSTEM_LIBS ${SYSTEM_LIBS} ${DL_LIBRARY}) # might be unused
+ message(STATUS "system libraries: dl available")
+else()
+ message(STATUS "system libraries: dl not found")
+endif(DL_LIBRARY)
+
+find_library(RT_LIBRARY rt)
+if(RT_LIBRARY)
+ set(SYSTEM_LIBS ${SYSTEM_LIBS} ${RT_LIBRARY}) # might be unused
+ message(STATUS "system libraries: rt available")
+else()
+ message(STATUS "system libraries: rt not found")
+endif(RT_LIBRARY)
+
+#
+# EXTERNAL HEADERS
+#
+# find out which header files are available on the system
+# add compiler flagsdepending on available header files
+include(CheckIncludeFiles)
+check_include_files(regex.h HAVE_REGEX_H)
+check_include_files(dlfcn.h HAVE_DLOPEN_H)
+check_include_files(glob.h HAVE_GLOB_H)
+check_include_files(fnmatch.h HAVE_FNMATCH_H)
+check_include_files(sys/mman.h HAVE_SHM_OPEN_H)
+
+if(HAVE_REGEX_H)
+ if(NOT LIBPCREPOSIX_FOUND)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_REGEX")
+ message(STATUS "system headers: regex.h available (no libpcre found,
using regex)")
+ else(NOT LIBPCREPOSIX_FOUND)
+ message(STATUS "system headers: regex.h available (unused, using
libpcre instead)")
+ endif(NOT LIBPCREPOSIX_FOUND)
+endif(HAVE_REGEX_H)
+
+if(HAVE_DLOPEN_H AND DL_LIBRARY)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_DLOPEN")
+ set(SYSTEM_LIBS ${SYSTEM_LIBS} ${DL_LIBRARY})
+endif(HAVE_DLOPEN_H AND DL_LIBRARY)
+
+if(HAVE_GLOB_H)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_GLOB")
+endif(HAVE_GLOB_H)
+
+if(HAVE_FNMATCH_H)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_FNMATCH")
+endif(HAVE_FNMATCH_H)
+
+if(HAVE_SHM_OPEN_H AND RT_LIBRARY)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_SHM_OPEN")
+ set(SYSTEM_LIBS ${SYSTEM_LIBS} ${RT_LIBRARY})
+endif(HAVE_SHM_OPEN_H AND RT_LIBRARY)
+
+#
+# PROJECT OPTIONS
+#
+# add compiler flags depending on available libraries and selected options
+
+#
+# PROJECT OPTIONS: ASYNC_IO?
+#
+if(ASYNC_IO AND THREADS_FOUND)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DSIM_ASYNCH_IO")
+ message(STATUS "async io support available (threads found)")
+elseif(NOT (THREADS_FOUND))
+ message(STATUS "no async io support (threads required)")
+else()
+ message(STATUS "no async io support (disabled)")
+endif()
+
+#
+# PROJECT OPTIONS: NETWORK?
+#
+# check for libpcap and threads, set NETWORK_FLAGS
+if(NETWORK AND LIBPCAP_FOUND AND THREADS_FOUND)
+ set(NETWORK_FLAGS "-DUSE_NETWORK -DHAVE_PCAP_NETWORK")
+ message(STATUS "network support available (libpcap & threads found)")
+ set(ADD_NETWORK 1)
+elseif(NOT (LIBPCAP_FOUND AND THREADS_FOUND))
+ message(STATUS "no network support (libpcap & threads required)")
+else()
+ message(STATUS "no network support (disabled)")
+endif()
+
+#
+# PROJECT OPTIONS: VIDEO?
+#
+# check for libSDL2, set VIDEO_FLAGS
+if(VIDEO AND SDL2_FOUND)
+ find_path(SDL2_INCLUDE_DIR NAMES SDL.h PATH_SUFFIXES SDL2)#TODO required?
+ set(VIDEO_FLAGS "-I${SDL2_INCLUDE_DIR} -DHAVE_LIBSDL -DUSE_SIM_VIDEO
-DUSE_DISPLAY")
+ set(display_source_files
+ display/display.c
+ display/sim_ws.c
+ )
+ set(vt_source_files
+ display/vt11.c
+ )
+ set(ADD_VIDEO 1)
+ message(STATUS "video support available (libSDL2 found)")
+elseif(NOT SDL2_LIBRARY)
+ message(STATUS "no video support (libSDL2 required)")
+else()
+ message(STATUS "no video support (disabled)")
+endif()
+
+#
+# OS / COMPILER SPECIFIC
+#
+if(UNIX)
+ # generic unix target settings
+ include_directories(.)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wp,-w") # suppress preprocessor
warnings
+ include(CMakeTestLargeFile.cmake)
+ test_large_file_support(HAVE_LARGEFILE64_SOURCE)
+ if(HAVE_LARGEFILE64_SOURCE)
+ set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_LARGEFILE64_SOURCE")
+ else()
+ message(FATAL_ERROR "toolchain has no LARGEFILE64 support")
+ endif(HAVE_LARGEFILE64_SOURCE)
+ # on unix the math lib libm is optional, add it:
+ find_library(MATH_LIBRARY m)
+ set(SYSTEM_LIBS ${SYSTEM_LIBS} ${MATH_LIBRARY})
+endif(UNIX)
+
+#
+# SYSTEM LIBRARIES HELPER FUNCTION
+#
+# this function calls target_link_libraries for each libaray in SYSTEM_LIBS
+# for the given target
+function(target_link_system_libs target)
+ foreach(loop_var ${SYSTEM_LIBS})
+ if(DEBUG)
+ message(" target ${target}: add system lib: ${loop_var}")
+ endif(DEBUG)
+ target_link_libraries(${target} ${loop_var})
+ endforeach(loop_var)
+endfunction()
+
+#
+# BUILD TARGETS
+#
+if(BUILD_ROMHEADERS)
+ add_executable(buildroms ${buildrom_source_files})
+ target_link_system_libs(buildroms)
+ file(COPY ${vax_rom_source_files} DESTINATION
${CMAKE_CURRENT_BINARY_DIR}/roms/VAX)
+ file(COPY ${pdp11_rom_source_files} DESTINATION
${CMAKE_CURRENT_BINARY_DIR}/roms/PDP11/lunar11)
+ file(COPY ${swtp6800_rom_source_files} DESTINATION
${CMAKE_CURRENT_BINARY_DIR}/roms/swtp6800/swtp6800)
+ add_custom_command(TARGET buildroms POST_BUILD COMMAND buildroms +
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/roms COMMENT running
buildroms VERBATIM)
+endif(BUILD_ROMHEADERS)
+
+if(BUILD_ALPHA)
+ add_executable(alpha ${alpha_source_files} ${simulator_source_files})
+ set_target_properties(alpha PROPERTIES COMPILE_FLAGS "-DUSE_ADDR64
-DUSE_INT64")
+ target_link_system_libs(alpha)
+ install (TARGETS alpha DESTINATION bin)
+endif(BUILD_ALPHA)
+
+if(BUILD_ALTAIR)
+ add_executable(altair ${altair_source_files} ${simulator_source_files})
+ target_link_system_libs(altair)
+ install (TARGETS altair DESTINATION bin)
+endif(BUILD_ALTAIR)
+
+if(BUILD_ALTAIRZ80)
+ add_executable(altairz80 ${altairz80_source_files}
${simulator_source_files})
+ set_target_properties(altairz80 PROPERTIES COMPILE_FLAGS "-DUSE_SIM_IMD")
+ target_link_system_libs(altairz80)
+ install (TARGETS altairz80 DESTINATION bin)
+endif(BUILD_ALTAIRZ80)
+
+if(BUILD_B5500)
+ add_executable(b5500 ${b5500_source_files} ${simulator_source_files})
+ set_target_properties(b5500 PROPERTIES COMPILE_FLAGS "-DUSE_INT64
-DB5500 -DUSE_SIM_CARD")
+ target_link_system_libs(b5500)
+ install (TARGETS b5500 DESTINATION bin)
+endif(BUILD_B5500)
+
+if(BUILD_BESM6)
+ add_executable(besm6 ${besm6_source_files} ${simulator_source_files})
+ set(BESM6_C_FLAGS "${CMAKE_C_FLAGS} -DUSE_INT64")
+ if(ADD_VIDEO)
+ set(BESM6_C_FLAGS "${BESM6_C_FLAGS} ${VIDEO_FLAGS}")
+ set(BESM6_C_FLAGS "${BESM6_C_FLAGS} -DFONTFILE=DejaVuSans.ttf")
+ endif(ADD_VIDEO)
+ set_target_properties(besm6 PROPERTIES COMPILE_FLAGS "${BESM6_C_FLAGS}")
+ target_link_system_libs(besm6)
+ install (TARGETS besm6 DESTINATION bin)
+endif(BUILD_BESM6)
+
+if(BUILD_CDC1700)
+ add_executable(cdc1700 ${cdc1700_source_files} ${simulator_source_files})
+ set_target_properties(cdc1700 PROPERTIES COMPILE_FLAGS "-DUSE_INT64
-Dcdc1700 -DUSE_SIM_CARD")
+ target_link_system_libs(cdc1700)
+ install (TARGETS cdc1700 DESTINATION bin)
+endif(BUILD_CDC1700)
+
+if(BUILD_ECLIPSE)
+ add_executable(eclipse ${eclipse_source_files} ${simulator_source_files})
+ target_include_directories(eclipse PRIVATE NOVA)
+ target_link_system_libs(eclipse)
+ install (TARGETS eclipse DESTINATION bin)
+endif(BUILD_ECLIPSE)
+
+if(BUILD_GRI)
+ add_executable(gri ${gri_source_files} ${simulator_source_files})
+ set_target_properties(gri PROPERTIES COMPILE_FLAGS "-DVM_IMPTIP")
+ target_link_system_libs(gri)
+ install (TARGETS gri DESTINATION bin)
+endif(BUILD_GRI)
+
+if(BUILD_H316)
+ add_executable(h316 ${h316_source_files} ${simulator_source_files})
+ set_target_properties(h316 PROPERTIES COMPILE_FLAGS "-DVM_IMPTIP")
+ target_link_system_libs(h316)
+ install (TARGETS h316 DESTINATION bin)
+endif(BUILD_H316)
+
+if(BUILD_HP2100)
+ add_executable(hp2100 ${hp2100_source_files} ${simulator_source_files})
+ set_target_properties(hp2100 PROPERTIES COMPILE_FLAGS "-DHAVE_INT64")
+ target_link_system_libs(hp2100)
+ install (TARGETS hp2100 DESTINATION bin)
+endif(BUILD_HP2100)
+
+if(BUILD_HP3000)
+ add_executable(hp3000 ${hp3000_source_files} ${simulator_source_files})
+ target_link_system_libs(hp3000)
+ install (TARGETS hp3000 DESTINATION bin)
+endif(BUILD_HP3000)
+
+if(BUILD_I1401)
+ add_executable(i1401 ${i1401_source_files} ${simulator_source_files})
+ target_link_system_libs(i1401)
+ install (TARGETS i1401 DESTINATION bin)
+endif(BUILD_I1401)
+
+if(BUILD_I1620)
+ add_executable(i1620 ${i1620_source_files} ${simulator_source_files})
+ target_link_system_libs(i1620)
+ install (TARGETS i1620 DESTINATION bin)
+endif(BUILD_I1620)
+
+if(BUILD_I7094)
+ add_executable(i7094 ${i7094_source_files} ${simulator_source_files})
+ set_target_properties(i7094 PROPERTIES COMPILE_FLAGS "-DUSE_INT64")
+ target_link_system_libs(i7094)
+ install (TARGETS i7094 DESTINATION bin)
+endif(BUILD_I7094)
+
+if(BUILD_IBM1130)
+ add_executable(ibm1130 ${ibm1130_source_files} ${simulator_source_files})
+ target_link_system_libs(ibm1130)
+ install (TARGETS ibm1130 DESTINATION bin)
+endif(BUILD_IBM1130)
+
+if(BUILD_ID16)
+ add_executable(id16 ${id16_source_files} ${simulator_source_files})
+ target_link_system_libs(id16)
+ install (TARGETS id16 DESTINATION bin)
+endif(BUILD_ID16)
+
+if(BUILD_ID32)
+ add_executable(id32 ${id32_source_files} ${simulator_source_files})
+ target_link_system_libs(id32)
+ install (TARGETS id32 DESTINATION bin)
+endif(BUILD_ID32)
+
+if(BUILD_ISYS8010)
+ add_executable(isys8010 ${isys8010_source_files}
${simulator_source_files})
+ target_include_directories(isys8010 PRIVATE Intel-Systems/isys8010)
+ target_link_system_libs(isys8010)
+ install (TARGETS isys8010 DESTINATION bin)
+endif(BUILD_ISYS8010)
+
+if(BUILD_ISYS8020)
+ add_executable(isys8020 ${isys8020_source_files}
${simulator_source_files})
+ target_include_directories(isys8020 PRIVATE Intel-Systems/isys8020)
+ target_link_system_libs(isys8020)
+ install (TARGETS isys8020 DESTINATION bin)
+endif(BUILD_ISYS8020)
+
+if(BUILD_LGP)
+ add_executable(lgp ${lgp_source_files} ${simulator_source_files})
+ set_target_properties(lgp PROPERTIES COMPILE_FLAGS "-DVM_IMPTIP")
+ target_link_system_libs(lgp)
+ install (TARGETS lgp DESTINATION bin)
+endif(BUILD_LGP)
+
+if(BUILD_MICROVAX1)
+ add_executable(microvax1 ${microvax1_source_files}
${vax_qbus_source_files} ${simulator_source_files})
+ target_include_directories(microvax1 PRIVATE PDP11)
+ target_include_directories(microvax1 PRIVATE VAX)
+ set(MICROVAX1_C_FLAGS "${CMAKE_C_FLAGS} -DVM_VAX -DVAX_610 -DUSE_INT64
-DUSE_ADDR64")
+ if(ADD_NETWORK)
+ set(MICROVAX1_C_FLAGS "${MICROVAX1_C_FLAGS} ${NETWORK_FLAGS}")
+ endif(ADD_NETWORK)
+ if(ADD_VIDEO)
+ set(MICROVAX1_C_FLAGS "${MICROVAX1_C_FLAGS} ${VIDEO_FLAGS}")
+ endif(ADD_VIDEO)
+ set_target_properties(microvax1 PROPERTIES COMPILE_FLAGS
"${MICROVAX1_C_FLAGS}")
+ target_link_system_libs(microvax1)
+ install (TARGETS microvax1 DESTINATION bin)
+endif(BUILD_MICROVAX1)
+
+if(BUILD_MICROVAX2)
+ add_executable(microvax2 ${microvax2_source_files}
${vax_qbus_source_files} ${simulator_source_files})
+ target_include_directories(microvax2 PRIVATE PDP11)
+ target_include_directories(microvax2 PRIVATE VAX)
+ set(MICROVAX2_C_FLAGS "${CMAKE_C_FLAGS} -DVM_VAX -DVAX_630 -DUSE_INT64
-DUSE_ADDR64")
+ if(ADD_NETWORK)
+ set(MICROVAX2_C_FLAGS "${MICROVAX2_C_FLAGS} ${NETWORK_FLAGS}")
+ endif(ADD_NETWORK)
+ if(ADD_VIDEO)
+ set(MICROVAX2_C_FLAGS "${MICROVAX2_C_FLAGS} ${VIDEO_FLAGS}")
+ endif(ADD_VIDEO)
+ set_target_properties(microvax2 PROPERTIES COMPILE_FLAGS
"${MICROVAX2_C_FLAGS}")
+ target_link_system_libs(microvax2)
+ install (TARGETS microvax2 DESTINATION bin)
+endif(BUILD_MICROVAX2)
+
+if(BUILD_MICROVAX3900)
+ add_executable(microvax3900 ${vax_source_files}
${vax_qbus_source_files} ${simulator_source_files})
+ target_include_directories(microvax3900 PRIVATE PDP11)
+ target_include_directories(microvax3900 PRIVATE VAX)
+ set(MICROVAX3900_C_FLAGS "${CMAKE_C_FLAGS} -DVM_VAX -DUSE_INT64
-DUSE_ADDR64")
+ if(ADD_NETWORK)
+ set(MICROVAX3900_C_FLAGS "${MICROVAX3900_C_FLAGS} ${NETWORK_FLAGS}")
+ endif(ADD_NETWORK)
+ if(ADD_VIDEO)
+ set(MICROVAX3900_C_FLAGS "${MICROVAX3900_C_FLAGS} ${VIDEO_FLAGS}")
+ endif(ADD_VIDEO)
+ set_target_properties(microvax3900 PROPERTIES COMPILE_FLAGS
"${MICROVAX3900_C_FLAGS}")
+ target_link_system_libs(microvax3900)
+ install (TARGETS microvax3900 DESTINATION bin)
+endif(BUILD_MICROVAX3900)
+
+if(BUILD_NOVA)
+ add_executable(nova ${nova_source_files} ${simulator_source_files})
+ target_link_system_libs(nova)
+ install (TARGETS nova DESTINATION bin)
+endif(BUILD_NOVA)
+
+if(BUILD_PDP1)
+ add_executable(pdp1 ${pdp1_source_files} ${simulator_source_files}
${display_source_files})
+ set(PDP1_C_FLAGS "${CMAKE_C_FLAGS}")
+ if(ADD_VIDEO)
+ set(PDP1_C_FLAGS "${PDP1_C_FLAGS} -DDISPLAY_TYPE=DIS_TYPE30
-DPIX_SCALE=RES_HALF")
+ set(PDP1_C_FLAGS "${PDP1_C_FLAGS} ${VIDEO_FLAGS}")
+ endif(ADD_VIDEO)
+ set_target_properties(pdp1 PROPERTIES COMPILE_FLAGS "${PDP1_C_FLAGS}")
+ target_link_system_libs(pdp1)
+ install (TARGETS pdp1 DESTINATION bin)
+endif(BUILD_PDP1)
+
+if(BUILD_PDP4)
+ add_executable(pdp4 ${pdp18b_source_files} ${simulator_source_files})
+ set_target_properties(pdp4 PROPERTIES COMPILE_FLAGS "-DPDP4")
+ target_link_system_libs(pdp4)
+ install (TARGETS pdp4 DESTINATION bin)
+endif(BUILD_PDP4)
+
+if(BUILD_PDP7)
+ add_executable(pdp7 ${pdp18b_source_files} ${simulator_source_files})
+ set_target_properties(pdp7 PROPERTIES COMPILE_FLAGS "-DPDP7")
+ target_link_system_libs(pdp7)
+ install (TARGETS pdp7 DESTINATION bin)
+endif(BUILD_PDP7)
+
+if(BUILD_PDP8)
+ add_executable(pdp8 ${pdp8_source_files} ${simulator_source_files})
+ target_link_system_libs(pdp8)
+ install (TARGETS pdp8 DESTINATION bin)
+endif(BUILD_PDP8)
+
+if(BUILD_PDP9)
+ add_executable(pdp9 ${pdp18b_source_files} ${simulator_source_files})
+ set_target_properties(pdp9 PROPERTIES COMPILE_FLAGS "-DPDP9")
+ target_link_system_libs(pdp9)
+ install (TARGETS pdp9 DESTINATION bin)
+endif(BUILD_PDP9)
+
+if(BUILD_PDP10)
+ add_executable(pdp10 ${pdp10_source_files} ${simulator_source_files})
+ target_include_directories(pdp10 PRIVATE PDP10)
+ set(PDP10_C_FLAGS "${CMAKE_C_FLAGS} -DVM_PDP10 -DUSE_INT64")
+ if(ADD_NETWORK)
+ set(PDP10_C_FLAGS "${PDP10_C_FLAGS} ${NETWORK_FLAGS}")
+ endif(ADD_NETWORK)
+ set_target_properties(pdp10 PROPERTIES COMPILE_FLAGS "${PDP10_C_FLAGS}")
+ target_link_system_libs(pdp10)
+ install (TARGETS pdp10 DESTINATION bin)
+endif(BUILD_PDP10)
+
+if(BUILD_PDP11)
+ add_executable(pdp11 ${pdp11_source_files} ${simulator_source_files}
${display_source_files} ${vt_source_files})
+ set(PDP11_C_FLAGS "${CMAKE_C_FLAGS} -DVM_PDP11")
+ if(ADD_NETWORK)
+ set(PDP11_C_FLAGS "${PDP11_C_FLAGS} ${NETWORK_FLAGS}")
+ endif(ADD_NETWORK)
+ if(ADD_VIDEO)
+ set(PDP11_C_FLAGS "${PDP11_C_FLAGS} ${VIDEO_FLAGS}")
+ endif(ADD_VIDEO)
+ set_target_properties(pdp11 PROPERTIES COMPILE_FLAGS "${PDP11_C_FLAGS}")
+ target_link_system_libs(pdp11)
+ install (TARGETS pdp11 DESTINATION bin)
+endif(BUILD_PDP11)
+
+if(BUILD_PDP15)
+ add_executable(pdp15 ${pdp18b_source_files} ${simulator_source_files})
+ set_target_properties(pdp15 PROPERTIES COMPILE_FLAGS "-DPDP15")
+ target_link_system_libs(pdp15)
+ install (TARGETS pdp15 DESTINATION bin)
+endif(BUILD_PDP15)
+
+if(BUILD_PDQ3)
+ add_executable(pdq3 ${pdq3_source_files} ${simulator_source_files})
+ set_target_properties(pdq3 PROPERTIES COMPILE_FLAGS "-DUSE_SIM_IMD")
+ target_link_system_libs(pdq3)
+ install (TARGETS pdq3 DESTINATION bin)
+endif(BUILD_PDQ3)
+
+if(BUILD_RTVAX1000)
+ add_executable(rtvax1000 ${microvax2_source_files}
${vax_qbus_source_files} ${simulator_source_files})
+ target_include_directories(rtvax1000 PRIVATE PDP11)
+ target_include_directories(rtvax1000 PRIVATE VAX)
+ set(RTVAX1000_C_FLAGS "${CMAKE_C_FLAGS} -DVM_VAX -DVAX_620 -DUSE_INT64
-DUSE_ADDR64")
+ if(ADD_NETWORK)
+ set(RTVAX1000_C_FLAGS "${RTVAX1000_C_FLAGS} ${NETWORK_FLAGS}")
+ endif(ADD_NETWORK)
+ set_target_properties(rtvax1000 PROPERTIES COMPILE_FLAGS
"${RTVAX1000_C_FLAGS}")
+ target_link_system_libs(rtvax1000)
+ install (TARGETS rtvax1000 DESTINATION bin)
+endif(BUILD_RTVAX1000)
+
+if(BUILD_S3)
+ add_executable(s3 ${s3_source_files} ${simulator_source_files})
+ target_link_system_libs(s3)
+ install (TARGETS s3 DESTINATION bin)
+endif(BUILD_S3)
+
+if(BUILD_SAGE)
+ add_executable(sage ${sage_source_files} ${simulator_source_files})
+ set_target_properties(sage PROPERTIES COMPILE_FLAGS "-DHAVE_INT64
-DUSE_SIM_IMD")
+ target_link_system_libs(sage)
+ install (TARGETS sage DESTINATION bin)
+endif(BUILD_SAGE)
+
+if(BUILD_SDS)
+ add_executable(sds ${sds_source_files} ${simulator_source_files})
+ target_link_system_libs(sds)
+ install (TARGETS sds DESTINATION bin)
+endif(BUILD_SDS)
+
+if(BUILD_SIGMA)
+ add_executable(sigma ${sigma_source_files} ${simulator_source_files})
+ target_link_system_libs(sigma)
+ install (TARGETS sigma DESTINATION bin)
+endif(BUILD_SIGMA)
+
+if(BUILD_SSEM)
+ add_executable(ssem ${ssem_source_files} ${simulator_source_files})
+ target_link_system_libs(ssem)
+ install (TARGETS ssem DESTINATION bin)
+endif(BUILD_SSEM)
+
+if(BUILD_SWTP6800A)
+ add_executable(swtp6800a ${swtp6800a_source_files}
${simulator_source_files})
+ target_include_directories(swtp6800a PRIVATE swtp6800/swtp6800)
+ target_link_system_libs(swtp6800a)
+ install (TARGETS swtp6800a DESTINATION bin)
+endif(BUILD_SWTP6800A)
+
+if(BUILD_SWTP6800A2)
+ add_executable(swtp6800a2 ${swtp6800a2_source_files}
${simulator_source_files})
+ target_include_directories(swtp6800a2 PRIVATE swtp6800/swtp6800)
+ target_link_system_libs(swtp6800a2)
+ install (TARGETS swtp6800a2 DESTINATION bin)
+endif(BUILD_SWTP6800A2)
+
+if(BUILD_TX-0)
+ add_executable(tx-0 ${tx-0_source_files} ${simulator_source_files}
${display_source_files})
+ if(ADD_VIDEO)
+ set_target_properties(tx-0 PROPERTIES COMPILE_FLAGS "${CMAKE_C_FLAGS}
${VIDEO_FLAGS}")
+ endif(ADD_VIDEO)
+ target_link_system_libs(tx-0)
+ install (TARGETS tx-0 DESTINATION bin)
+endif(BUILD_TX-0)
+
+if(BUILD_VAX)
+ add_executable(vax ${vax_source_files} ${vax_qbus_source_files}
${simulator_source_files})
+ target_include_directories(vax PRIVATE PDP11)
+ target_include_directories(vax PRIVATE VAX)
+ set(VAX_C_FLAGS "${CMAKE_C_FLAGS} -DVM_VAX -DUSE_INT64 -DUSE_ADDR64")
+ if(ADD_NETWORK)
+ set(VAX_C_FLAGS "${VAX_C_FLAGS} ${NETWORK_FLAGS}")
+ endif(ADD_NETWORK)
+ if(ADD_VIDEO)
+ set(VAX_C_FLAGS "${VAX_C_FLAGS} ${VIDEO_FLAGS}")
+ endif(ADD_VIDEO)
+ set_target_properties(vax PROPERTIES COMPILE_FLAGS "${VAX_C_FLAGS}")
+ target_link_system_libs(vax)
+ install (TARGETS vax DESTINATION bin)
+endif(BUILD_VAX)
+
+if(BUILD_VAX730)
+ add_executable(vax730 ${vax730_source_files}
${vax_unibus_source_files} ${simulator_source_files})
+ target_include_directories(vax730 PRIVATE PDP11)
+ target_include_directories(vax730 PRIVATE VAX)
+ set(VAX730_C_FLAGS "${CMAKE_C_FLAGS} -DVM_VAX -DVAX_730 -DUSE_INT64
-DUSE_ADDR64")
+ if(ADD_NETWORK)
+ set(VAX730_C_FLAGS "${VAX730_C_FLAGS} ${NETWORK_FLAGS}")
+ endif(ADD_NETWORK)
+ set_target_properties(vax730 PROPERTIES COMPILE_FLAGS "${VAX730_C_FLAGS}")
+ target_link_system_libs(vax730)
+ install (TARGETS vax730 DESTINATION bin)
+endif(BUILD_VAX730)
+
+if(BUILD_VAX750)
+ add_executable(vax750 ${vax750_source_files}
${vax_massbus_source_files} ${vax_unibus_source_files}
${simulator_source_files})
+ target_include_directories(vax750 PRIVATE PDP11)
+ target_include_directories(vax750 PRIVATE VAX)
+ set(VAX750_C_FLAGS "${CMAKE_C_FLAGS} -DVM_VAX -DVAX_750 -DUSE_INT64
-DUSE_ADDR64")
+ if(ADD_NETWORK)
+ set(VAX750_C_FLAGS "${VAX750_C_FLAGS} ${NETWORK_FLAGS}")
+ endif(ADD_NETWORK)
+ set_target_properties(vax750 PROPERTIES COMPILE_FLAGS "${VAX750_C_FLAGS}")
+ target_link_system_libs(vax750)
+ install (TARGETS vax750 DESTINATION bin)
+endif(BUILD_VAX750)
+
+if(BUILD_VAX780)
+ add_executable(vax780 ${vax780_source_files}
${vax_massbus_source_files} ${vax_unibus_source_files}
${simulator_source_files})
+ target_include_directories(vax780 PRIVATE PDP11)
+ target_include_directories(vax780 PRIVATE VAX)
+ set(VAX780_C_FLAGS "${CMAKE_C_FLAGS} -DVM_VAX -DVAX_780 -DUSE_INT64
-DUSE_ADDR64")
+ if(ADD_NETWORK)
+ set(VAX780_C_FLAGS "${VAX780_C_FLAGS} ${NETWORK_FLAGS}")
+ endif(ADD_NETWORK)
+ set_target_properties(vax780 PROPERTIES COMPILE_FLAGS "${VAX780_C_FLAGS}")
+ target_link_system_libs(vax780)
+ install (TARGETS vax780 DESTINATION bin)
+endif(BUILD_VAX780)
+
+if(BUILD_VAX8600)
+ add_executable(vax8600 ${vax8600_source_files}
${vax_massbus_source_files} ${vax_unibus_source_files}
${simulator_source_files})
+ target_include_directories(vax8600 PRIVATE PDP11)
+ target_include_directories(vax8600 PRIVATE VAX)
+ set(VAX8600_C_FLAGS "${CMAKE_C_FLAGS} -DVM_VAX -DVAX_860 -DUSE_INT64
-DUSE_ADDR64")
+ if(ADD_NETWORK)
+ set(VAX8600_C_FLAGS "${VAX8600_C_FLAGS} ${NETWORK_FLAGS}")
+ endif(ADD_NETWORK)
+ set_target_properties(vax8600 PROPERTIES COMPILE_FLAGS
"${VAX8600_C_FLAGS}")
+ target_link_system_libs(vax8600)
+ install (TARGETS vax8600 DESTINATION bin)
+endif(BUILD_VAX8600)
diff --git a/CMakeSources.txt b/CMakeSources.txt
new file mode 100644
index 0000000..a0806a1
--- /dev/null
+++ b/CMakeSources.txt
@@ -0,0 +1,744 @@
+#
+# SIMULATOR FILES
+#
+set(simulator_source_files
+ scp.c
+ sim_console.c
+ sim_fio.c
+ sim_timer.c
+ sim_sock.c
+ sim_tmxr.c
+ sim_ether.c
+ sim_tape.c
+ sim_disk.c
+ sim_serial.c
+ sim_imd.c
+ sim_card.c
+ sim_video.c
+)
+
+#
+# BUILDROM FILES
+#
+set(buildrom_source_files
+ sim_BuildROMs.c
+)
+set(vax_rom_source_files
+ VAX/ka620.bin
+ VAX/ka750_new.bin
+ VAX/ka610.bin
+ VAX/ka655x.bin
+ VAX/ka630.bin
+ VAX/ka750_old.bin
+ VAX/vmb.exe
+)
+set(swtp6800_rom_source_files
+ swtp6800/swtp6800/swtbug.bin
+)
+set(pdp11_rom_source_files
+ PDP11/lunar11/lunar.lda
+)
+
+#
+# MACHINE FILES
+#
+set(alpha_source_files
+ alpha/alpha_500au_syslist.c
+ alpha/alpha_cpu.c
+ alpha/alpha_ev5_cons.c
+ alpha/alpha_ev5_pal.c
+ alpha/alpha_ev5_tlb.c
+ alpha/alpha_fpi.c
+ alpha/alpha_fpv.c
+ alpha/alpha_io.c
+ alpha/alpha_mmu.c
+ alpha/alpha_sys.c
+)
+set(altair_source_files
+ ALTAIR/altair_cpu.c
+ ALTAIR/altair_dsk.c
+ ALTAIR/altair_sio.c
+ ALTAIR/altair_sys.c
+)
+set(altairz80_source_files
+ AltairZ80/altairz80_cpu.c
+ AltairZ80/altairz80_cpu_nommu.c
+ AltairZ80/altairz80_dsk.c
+ AltairZ80/altairz80_hdsk.c
+ AltairZ80/altairz80_mhdsk.c
+ AltairZ80/altairz80_net.c
+ AltairZ80/altairz80_sio.c
+ AltairZ80/altairz80_sys.c
+ AltairZ80/disasm.c
+ AltairZ80/flashwriter2.c
+ AltairZ80/i8272.c
+ AltairZ80/i86_decode.c
+ AltairZ80/i86_ops.c
+ AltairZ80/i86_prim_ops.c
+ AltairZ80/insnsd.c
+ AltairZ80/m68kcpu.c
+ AltairZ80/m68kdasm.c
+ AltairZ80/m68kopac.c
+ AltairZ80/m68kopdm.c
+ AltairZ80/m68kopnz.c
+ AltairZ80/m68kops.c
+ AltairZ80/m68ksim.c
+ AltairZ80/mfdc.c
+ AltairZ80/n8vem.c
+ AltairZ80/s100_64fdc.c
+ AltairZ80/s100_adcs6.c
+ AltairZ80/s100_disk1a.c
+ AltairZ80/s100_disk2.c
+ AltairZ80/s100_disk3.c
+ AltairZ80/s100_fif.c
+ AltairZ80/s100_hdc1001.c
+ AltairZ80/s100_if3.c
+ AltairZ80/s100_mdriveh.c
+ AltairZ80/s100_mdsa.c
+ AltairZ80/s100_mdsad.c
+ AltairZ80/s100_scp300f.c
+ AltairZ80/s100_selchan.c
+ AltairZ80/s100_ss1.c
+ AltairZ80/vfdhd.c
+ AltairZ80/wd179x.c
+)
+set(b5500_source_files
+ B5500/b5500_cpu.c
+ B5500/b5500_dk.c
+ B5500/b5500_dr.c
+ B5500/b5500_dtc.c
+ B5500/b5500_io.c
+ B5500/b5500_mt.c
+ B5500/b5500_sys.c
+ B5500/b5500_urec.c
+)
+set(besm6_source_files
+ BESM6/besm6_arith.c
+ BESM6/besm6_cpu.c
+ BESM6/besm6_disk.c
+ BESM6/besm6_drum.c
+ BESM6/besm6_mmu.c
+ BESM6/besm6_panel.c
+ BESM6/besm6_printer.c
+ BESM6/besm6_punch.c
+ BESM6/besm6_sys.c
+ BESM6/besm6_tty.c
+)
+set(cdc1700_source_files
+ CDC1700/cdc1700_cd.c
+ CDC1700/cdc1700_cpu.c
+ CDC1700/cdc1700_dc.c
+ CDC1700/cdc1700_dev1.c
+ CDC1700/cdc1700_dis.c
+ CDC1700/cdc1700_dp.c
+ CDC1700/cdc1700_io.c
+ CDC1700/cdc1700_iofw.c
+ CDC1700/cdc1700_lp.c
+ CDC1700/cdc1700_mt.c
+ CDC1700/cdc1700_rtc.c
+ CDC1700/cdc1700_sym.c
+ CDC1700/cdc1700_sys.c
+)
+set(eclipse_source_files
+ NOVA/nova_clk.c
+ NOVA/eclipse_cpu.c
+ NOVA/nova_dkp.c
+ NOVA/nova_dsk.c
+ NOVA/nova_lp.c
+ NOVA/nova_mta.c
+ NOVA/nova_plt.c
+ NOVA/nova_pt.c
+ NOVA/nova_qty.c
+ NOVA/nova_sys.c
+ NOVA/nova_tt1.c
+ NOVA/eclipse_tt.c
+)
+set(gri_source_files
+ GRI/gri_cpu.c
+ GRI/gri_stddev.c
+ GRI/gri_sys.c
+)
+set(h316_source_files
+ H316/h316_cpu.c
+ H316/h316_dp.c
+ H316/h316_fhd.c
+ H316/h316_hi.c
+ H316/h316_imp.c
+ H316/h316_lp.c
+ H316/h316_mi.c
+ H316/h316_mt.c
+ H316/h316_rtc.c
+ H316/h316_stddev.c
+ H316/h316_sys.c
+ H316/h316_udp.c
+)
+set(hp2100_source_files
+ HP2100/hp2100_baci.c
+ HP2100/hp2100_cpu0.c
+ HP2100/hp2100_cpu1.c
+ HP2100/hp2100_cpu2.c
+ HP2100/hp2100_cpu3.c
+ HP2100/hp2100_cpu4.c
+ HP2100/hp2100_cpu5.c
+ HP2100/hp2100_cpu6.c
+ HP2100/hp2100_cpu7.c
+ HP2100/hp2100_cpu.c
+ HP2100/hp2100_di.c
+ HP2100/hp2100_di_da.c
+ HP2100/hp2100_disclib.c
+ HP2100/hp2100_dp.c
+ HP2100/hp2100_dq.c
+ HP2100/hp2100_dr.c
+ HP2100/hp2100_ds.c
+ HP2100/hp2100_fp1.c
+ HP2100/hp2100_fp.c
+ HP2100/hp2100_ipl.c
+ HP2100/hp2100_lps.c
+ HP2100/hp2100_lpt.c
+ HP2100/hp2100_mpx.c
+ HP2100/hp2100_ms.c
+ HP2100/hp2100_mt.c
+ HP2100/hp2100_mux.c
+ HP2100/hp2100_pif.c
+ HP2100/hp2100_stddev.c
+ HP2100/hp2100_sys.c
+)
+set(hp3000_source_files
+ HP3000/hp3000_atc.c
+ HP3000/hp3000_clk.c
+ HP3000/hp3000_cpu_base.c
+ HP3000/hp3000_cpu.c
+ HP3000/hp3000_cpu_fp.c
+ HP3000/hp3000_ds.c
+ HP3000/hp3000_iop.c
+ HP3000/hp3000_lp.c
+ HP3000/hp3000_mpx.c
+ HP3000/hp3000_ms.c
+ HP3000/hp3000_scmb.c
+ HP3000/hp3000_sel.c
+ HP3000/hp3000_sys.c
+ HP3000/hp_disclib.c
+ HP3000/hp_tapelib.c
+)
+set(i1401_source_files
+ I1401/i1401_cd.c
+ I1401/i1401_cpu.c
+ I1401/i1401_dp.c
+ I1401/i1401_iq.c
+ I1401/i1401_lp.c
+ I1401/i1401_mt.c
+ I1401/i1401_sys.c
+)
+set(i1620_source_files
+ I1620/i1620_cd.c
+ I1620/i1620_cpu.c
+ I1620/i1620_dp.c
+ I1620/i1620_fp.c
+ I1620/i1620_lp.c
+ I1620/i1620_pt.c
+ I1620/i1620_sys.c
+ I1620/i1620_tty.c
+)
+set(i7094_source_files
+ I7094/i7094_binloader.c
+ I7094/i7094_cd.c
+ I7094/i7094_clk.c
+ I7094/i7094_com.c
+ I7094/i7094_cpu1.c
+ I7094/i7094_cpu.c
+ I7094/i7094_drm.c
+ I7094/i7094_dsk.c
+ I7094/i7094_io.c
+ I7094/i7094_lp.c
+ I7094/i7094_mt.c
+ I7094/i7094_sys.c
+)
+set(ibm1130_source_files
+ Ibm1130/ibm1130_cpu.c
+ Ibm1130/ibm1130_cr.c
+ Ibm1130/ibm1130_disk.c
+ Ibm1130/ibm1130_fmt.c
+ Ibm1130/ibm1130_gdu.c
+ Ibm1130/ibm1130_gui.c
+ Ibm1130/ibm1130_plot.c
+ Ibm1130/ibm1130_prt.c
+ Ibm1130/ibm1130_ptrp.c
+ Ibm1130/ibm1130_sca.c
+ Ibm1130/ibm1130_stddev.c
+ Ibm1130/ibm1130_sys.c
+ Ibm1130/ibm1130_t2741.c
+)
+set(id16_source_files
+ Interdata/id16_cpu.c
+ Interdata/id16_dboot.c
+ Interdata/id16_sys.c
+ Interdata/id_dp.c
+ Interdata/id_fd.c
+ Interdata/id_fp.c
+ Interdata/id_idc.c
+ Interdata/id_io.c
+ Interdata/id_lp.c
+ Interdata/id_mt.c
+ Interdata/id_pas.c
+ Interdata/id_pt.c
+ Interdata/id_tt.c
+ Interdata/id_ttp.c
+ Interdata/id_uvc.c
+)
+set(id32_source_files
+ Interdata/id32_cpu.c
+ Interdata/id32_dboot.c
+ Interdata/id32_sys.c
+ Interdata/id_dp.c
+ Interdata/id_fd.c
+ Interdata/id_fp.c
+ Interdata/id_idc.c
+ Interdata/id_io.c
+ Interdata/id_lp.c
+ Interdata/id_mt.c
+ Interdata/id_pas.c
+ Interdata/id_pt.c
+ Interdata/id_tt.c
+ Interdata/id_ttp.c
+ Interdata/id_uvc.c
+)
+set(isys8010_source_files
+ Intel-Systems/isys8010/isys8010_sys.c
+ Intel-Systems/common/i8080.c
+ Intel-Systems/common/i8251.c
+ Intel-Systems/common/i8255.c
+ Intel-Systems/common/ieprom.c
+ Intel-Systems/common/iram8.c
+ Intel-Systems/common/isbc064.c
+ Intel-Systems/common/isbc208.c
+ Intel-Systems/common/isbc80-10.c
+ Intel-Systems/common/multibus.c
+)
+set(isys8020_source_files
+ Intel-Systems/isys8020/isys8020_sys.c
+ Intel-Systems/common/i8080.c
+ Intel-Systems/common/i8251.c
+ Intel-Systems/common/i8255.c
+ Intel-Systems/common/i8259.c
+ Intel-Systems/common/ieprom.c
+ Intel-Systems/common/iram8.c
+ Intel-Systems/common/isbc064.c
+ Intel-Systems/common/isbc208.c
+ Intel-Systems/common/isbc80-20.c
+ Intel-Systems/common/multibus.c
+)
+set(lgp_source_files
+ LGP/lgp_cpu.c
+ LGP/lgp_stddev.c
+ LGP/lgp_sys.c
+)
+set(microvax3900_source_files
+ VAX/vax_2681.c
+ VAX/vax_cis.c
+ VAX/vax_cmode.c
+ VAX/vax_cpu1.c
+ VAX/vax_cpu.c
+ VAX/vax_fpa.c
+ VAX/vax_io.c
+ VAX/vax_lk.c
+ VAX/vax_mmu.c
+ VAX/vax_octa.c
+ VAX/vax_stddev.c
+ VAX/vax_sys.c
+ VAX/vax_syscm.c
+ VAX/vax_sysdev.c
+ VAX/vax_syslist.c
+ VAX/vax_vc.c
+ VAX/vax_vs.c
+)
+set(microvax1_source_files
+ VAX/vax_2681.c
+ VAX/vax_cis.c
+ VAX/vax_cmode.c
+ VAX/vax_cpu1.c
+ VAX/vax_cpu.c
+ VAX/vax_fpa.c
+ VAX/vax_lk.c
+ VAX/vax_mmu.c
+ VAX/vax_octa.c
+ VAX/vax_sys.c
+ VAX/vax_syscm.c
+ VAX/vax_vc.c
+ VAX/vax_vs.c
+ VAX/vax610_io.c
+ VAX/vax610_mem.c
+ VAX/vax610_stddev.c
+ VAX/vax610_sysdev.c
+ VAX/vax610_syslist.c
+)
+set(microvax2_source_files
+ VAX/vax_2681.c
+ VAX/vax_cis.c
+ VAX/vax_cmode.c
+ VAX/vax_cpu1.c
+ VAX/vax_cpu.c
+ VAX/vax_fpa.c
+ VAX/vax_lk.c
+ VAX/vax_mmu.c
+ VAX/vax_octa.c
+ VAX/vax_sys.c
+ VAX/vax_syscm.c
+ VAX/vax_vc.c
+ VAX/vax_vs.c
+ VAX/vax_watch.c
+ VAX/vax630_io.c
+ VAX/vax630_stddev.c
+ VAX/vax630_sysdev.c
+ VAX/vax630_syslist.c
+)
+set(nova_source_files
+ NOVA/nova_clk.c
+ NOVA/nova_cpu.c
+ NOVA/nova_dkp.c
+ NOVA/nova_dsk.c
+ NOVA/nova_lp.c
+ NOVA/nova_mta.c
+ NOVA/nova_plt.c
+ NOVA/nova_pt.c
+ NOVA/nova_qty.c
+ NOVA/nova_sys.c
+ NOVA/nova_tt1.c
+ NOVA/nova_tt.c
+)
+set(pdp1_source_files
+ PDP1/pdp1_clk.c
+ PDP1/pdp1_cpu.c
+ PDP1/pdp1_dcs.c
+ PDP1/pdp1_defs.h
+ PDP1/pdp1_diag.txt
+ PDP1/pdp1_dpy.c
+ PDP1/pdp1_drm.c
+ PDP1/pdp1_dt.c
+ PDP1/pdp1_lp.c
+ PDP1/pdp1_stddev.c
+ PDP1/pdp1_sys.c
+)
+set(pdp8_source_files
+ PDP8/pdp8_clk.c
+ PDP8/pdp8_cpu.c
+ PDP8/pdp8_ct.c
+ PDP8/pdp8_df.c
+ PDP8/pdp8_dt.c
+ PDP8/pdp8_fpp.c
+ PDP8/pdp8_lp.c
+ PDP8/pdp8_mt.c
+ PDP8/pdp8_pt.c
+ PDP8/pdp8_rf.c
+ PDP8/pdp8_rk.c
+ PDP8/pdp8_rl.c
+ PDP8/pdp8_rx.c
+ PDP8/pdp8_sys.c
+ PDP8/pdp8_td.c
+ PDP8/pdp8_tsc.c
+ PDP8/pdp8_tt.c
+ PDP8/pdp8_ttx.c
+)
+set(pdp10_source_files
+ PDP10/pdp10_fe.c
+ PDP10/pdp10_cpu.c
+ PDP10/pdp10_ksio.c
+ PDP10/pdp10_lp20.c
+ PDP10/pdp10_mdfp.c
+ PDP10/pdp10_pag.c
+ PDP10/pdp10_rp.c
+ PDP10/pdp10_sys.c
+ PDP10/pdp10_tim.c
+ PDP10/pdp10_tu.c
+ PDP10/pdp10_xtnd.c
+ PDP11/pdp11_pt.c
+ PDP11/pdp11_ry.c
+ PDP11/pdp11_cr.c
+ PDP11/pdp11_dup.c
+ PDP11/pdp11_dmc.c
+ PDP11/pdp11_kmc.c
+ PDP11/pdp11_xu.c
+ PDP11/pdp11_dz.c
+)
+set(pdp11_source_files
+ PDP11/pdp11_cis.c
+ PDP11/pdp11_cpu.c
+ PDP11/pdp11_cpumod.c
+ PDP11/pdp11_cr.c
+ PDP11/pdp11_dc.c
+ PDP11/pdp11_dl.c
+ PDP11/pdp11_dmc.c
+ PDP11/pdp11_dup.c
+ PDP11/pdp11_dz.c
+ PDP11/pdp11_fp.c
+ PDP11/pdp11_hk.c
+ PDP11/pdp11_io.c
+ PDP11/pdp11_io_lib.c
+ PDP11/pdp11_ke.c
+ PDP11/pdp11_kg.c
+ PDP11/pdp11_kmc.c
+ PDP11/pdp11_lp.c
+ PDP11/pdp11_pclk.c
+ PDP11/pdp11_pt.c
+ PDP11/pdp11_rc.c
+ PDP11/pdp11_rf.c
+ PDP11/pdp11_rh.c
+ PDP11/pdp11_rk.c
+ PDP11/pdp11_rl.c
+ PDP11/pdp11_rp.c
+ PDP11/pdp11_rq.c
+ PDP11/pdp11_rs.c
+ PDP11/pdp11_rx.c
+ PDP11/pdp11_ry.c
+ PDP11/pdp11_stddev.c
+ PDP11/pdp11_sys.c
+ PDP11/pdp11_ta.c
+ PDP11/pdp11_tc.c
+ PDP11/pdp11_td.c
+ PDP11/pdp11_tm.c
+ PDP11/pdp11_tq.c
+ PDP11/pdp11_ts.c
+ PDP11/pdp11_tu.c
+ PDP11/pdp11_vh.c
+ PDP11/pdp11_vt.c
+ PDP11/pdp11_xq.c
+ PDP11/pdp11_xu.c
+)
+set(pdp18b_source_files
+ PDP18B/pdp18b_cpu.c
+ PDP18B/pdp18b_drm.c
+ PDP18B/pdp18b_dt.c
+ PDP18B/pdp18b_fpp.c
+ PDP18B/pdp18b_g2tty.c
+ PDP18B/pdp18b_lp.c
+ PDP18B/pdp18b_mt.c
+ PDP18B/pdp18b_rb.c
+ PDP18B/pdp18b_rf.c
+ PDP18B/pdp18b_rp.c
+ PDP18B/pdp18b_stddev.c
+ PDP18B/pdp18b_sys.c
+ PDP18B/pdp18b_tt1.c
+)
+set(pdq3_source_files
+ PDQ-3/pdq3_cpu.c
+ PDQ-3/pdq3_debug.c
+ PDQ-3/pdq3_fdc.c
+ PDQ-3/pdq3_mem.c
+ PDQ-3/pdq3_stddev.c
+ PDQ-3/pdq3_sys.c
+)
+set(s3_source_files
+ S3/s3_cd.c
+ S3/s3_cpu.c
+ S3/s3_disk.c
+ S3/s3_lp.c
+ S3/s3_pkb.c
+ S3/s3_sys.c
+)
+set(sage_source_files
+ SAGE/i8251.c
+ SAGE/i8253.c
+ SAGE/i8255.c
+ SAGE/i8259.c
+ SAGE/i8272.c
+ SAGE/m68k_cpu.c
+ SAGE/m68k_mem.c
+ SAGE/m68k_parse.tab.c
+ SAGE/m68k_scp.c
+ SAGE/m68k_sys.c
+ SAGE/sage_aux.c
+ SAGE/sage_cons.c
+ SAGE/sage_cpu.c
+ SAGE/sage_fd.c
+ SAGE/sage_hd.c
+ SAGE/sage_ieee.c
+ SAGE/sage_lp.c
+ SAGE/sage_stddev.c
+ SAGE/sage_sys.c
+)
+set(sds_source_files
+ SDS/sds_cpu.c
+ SDS/sds_drm.c
+ SDS/sds_dsk.c
+ SDS/sds_io.c
+ SDS/sds_lp.c
+ SDS/sds_mt.c
+ SDS/sds_mux.c
+ SDS/sds_rad.c
+ SDS/sds_stddev.c
+ SDS/sds_sys.c
+)
+set(sigma_source_files
+ sigma/sigma_cis.c
+ sigma/sigma_coc.c
+ sigma/sigma_cpu.c
+ sigma/sigma_dk.c
+ sigma/sigma_dp.c
+ sigma/sigma_fp.c
+ sigma/sigma_io.c
+ sigma/sigma_lp.c
+ sigma/sigma_map.c
+ sigma/sigma_mt.c
+ sigma/sigma_pt.c
+ sigma/sigma_rad.c
+ sigma/sigma_rtc.c
+ sigma/sigma_sys.c
+ sigma/sigma_tt.c
+)
+set(ssem_source_files
+ SSEM/ssem_cpu.c
+ SSEM/ssem_sys.c
+)
+set(swtp6800a_source_files
+ swtp6800/swtp6800/mp-a_sys.c
+ swtp6800/common/bootrom.c
+ swtp6800/common/dc-4.c
+ swtp6800/common/m6800.c
+ swtp6800/common/m6810.c
+ swtp6800/common/mp-8m.c
+ swtp6800/common/mp-a.c
+ swtp6800/common/mp-b2.c
+ swtp6800/common/mp-s.c
+)
+set(swtp6800a2_source_files
+ swtp6800/swtp6800/mp-a2_sys.c
+ swtp6800/common/bootrom.c
+ swtp6800/common/dc-4.c
+ swtp6800/common/i2716.c
+ swtp6800/common/m6800.c
+ swtp6800/common/m6810.c
+ swtp6800/common/mp-8m.c
+ swtp6800/common/mp-a2.c
+ swtp6800/common/mp-b2.c
+ swtp6800/common/mp-s.c
+)
+set(tx-0_source_files
+ TX-0/tx0_cpu.c
+ TX-0/tx0_dpy.c
+ TX-0/tx0_stddev.c
+ TX-0/tx0_sys.c
+ TX-0/tx0_sys_orig.c
+)
+set(vax_qbus_source_files
+ PDP11/pdp11_rl.c
+ PDP11/pdp11_rq.c
+ PDP11/pdp11_ts.c
+ PDP11/pdp11_dz.c
+ PDP11/pdp11_lp.c
+ PDP11/pdp11_tq.c
+ PDP11/pdp11_xq.c
+ PDP11/pdp11_vh.c
+ PDP11/pdp11_cr.c
+ PDP11/pdp11_td.c
+ PDP11/pdp11_io_lib.c
+)
+set(vax_unibus_source_files
+ PDP11/pdp11_rl.c
+ PDP11/pdp11_rq.c
+ PDP11/pdp11_ts.c
+ PDP11/pdp11_dz.c
+ PDP11/pdp11_lp.c
+ PDP11/pdp11_tq.c
+ PDP11/pdp11_xu.c
+ PDP11/pdp11_ry.c
+ PDP11/pdp11_cr.c
+ PDP11/pdp11_hk.c
+ PDP11/pdp11_vh.c
+ PDP11/pdp11_dmc.c
+ PDP11/pdp11_td.c
+ PDP11/pdp11_tc.c
+ PDP11/pdp11_rk.c
+ PDP11/pdp11_io_lib.c
+)
+set(vax_massbus_source_files
+ PDP11/pdp11_rp.c
+ PDP11/pdp11_tu.c
+ PDP11/pdp11_dup.c
+)
+set(vax_source_files
+ VAX/vax_2681.c
+ VAX/vax_cis.c
+ VAX/vax_cmode.c
+ VAX/vax_cpu1.c
+ VAX/vax_cpu.c
+ VAX/vax_fpa.c
+ VAX/vax_io.c
+ VAX/vax_lk.c
+ VAX/vax_mmu.c
+ VAX/vax_octa.c
+ VAX/vax_stddev.c
+ VAX/vax_sys.c
+ VAX/vax_syscm.c
+ VAX/vax_sysdev.c
+ VAX/vax_syslist.c
+ VAX/vax_vc.c
+ VAX/vax_vs.c
+)
+set(vax730_source_files
+ VAX/vax_cis.c
+ VAX/vax_cmode.c
+ VAX/vax_cpu1.c
+ VAX/vax_cpu.c
+ VAX/vax_fpa.c
+ VAX/vax_mmu.c
+ VAX/vax_octa.c
+ VAX/vax_sys.c
+ VAX/vax_syscm.c
+ VAX/vax730_mem.c
+ VAX/vax730_stddev.c
+ VAX/vax730_sys.c
+ VAX/vax730_syslist.c
+ VAX/vax730_uba.c
+ VAX/vax730_rb.c
+)
+set(vax750_source_files
+ VAX/vax_cis.c
+ VAX/vax_cmode.c
+ VAX/vax_cpu1.c
+ VAX/vax_cpu.c
+ VAX/vax_fpa.c
+ VAX/vax_mmu.c
+ VAX/vax_octa.c
+ VAX/vax_sys.c
+ VAX/vax_syscm.c
+ VAX/vax750_cmi.c
+ VAX/vax750_mem.c
+ VAX/vax750_stddev.c
+ VAX/vax750_syslist.c
+ VAX/vax750_uba.c
+ VAX/vax7x0_mba.c
+)
+set(vax780_source_files
+ VAX/vax_cis.c
+ VAX/vax_cmode.c
+ VAX/vax_cpu1.c
+ VAX/vax_cpu.c
+ VAX/vax_fpa.c
+ VAX/vax_mmu.c
+ VAX/vax_octa.c
+ VAX/vax_sys.c
+ VAX/vax_syscm.c
+ VAX/vax780_fload.c
+ VAX/vax780_mem.c
+ VAX/vax780_sbi.c
+ VAX/vax780_stddev.c
+ VAX/vax780_syslist.c
+ VAX/vax780_uba.c
+ VAX/vax7x0_mba.c
+)
+set(vax8600_source_files
+ VAX/vax_cis.c
+ VAX/vax_cmode.c
+ VAX/vax_cpu1.c
+ VAX/vax_cpu.c
+ VAX/vax_fpa.c
+ VAX/vax_mmu.c
+ VAX/vax_octa.c
+ VAX/vax_sys.c
+ VAX/vax_syscm.c
+ VAX/vax780_uba.c
+ VAX/vax7x0_mba.c
+ VAX/vax860_abus.c
+ VAX/vax860_sbia.c
+ VAX/vax860_stddev.c
+ VAX/vax860_syslist.c
+)
diff --git a/CMakeTestLargeFile.cmake b/CMakeTestLargeFile.cmake
new file mode 100644
index 0000000..d217cb9
--- /dev/null
+++ b/CMakeTestLargeFile.cmake
@@ -0,0 +1,32 @@
+#
+# Test if the toolchain supports large files
+#
+# VAR - Variable to set to 1 or 0, depending on the result
+#
+
+macro(test_large_file_support VAR)
+ set(FILE
"${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTemp/test_large_file_support.c")
+ set(SOURCE "
+ # define _LARGEFILE64_SOURCE
+ # define _FILE_OFFSET_BITS 64 /* select default interface as 64
bit */
+ # define _LARGE_FILES /* some OSes need this for 64-bit off_t */
+ #include <sys/types.h>
+
+ /* Check that off_t can represent 2**63 - 1 correctly.
+ We can't simply define LARGE_OFF_T to be 9223372036854775807,
+ since some C++ compilers masquerading as C compilers
+ incorrectly reject 9223372036854775807. */
+ #define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
+ int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
+ && LARGE_OFF_T % 2147483647 == 1)
+ ? 1 : -1];
+ int main () {return 0;}
+ ")
+ file(WRITE "${FILE}" "${SOURCE}\n")
+ try_compile(${VAR} ${CMAKE_BINARY_DIR} ${FILE})
+ if(${VAR})
+ message(STATUS "Checking whether toolchain has large file support --
yes")
+ else(${VAR})
+ message(STATUS "Checking whether toolchain has large file support -- no")
+ endif(${VAR})
+endmacro(test_large_file_support)
--
1.9.1
More information about the Simh
mailing list