Initial push
This commit is contained in:
@@ -0,0 +1,13 @@
|
||||
cmake_minimum_required(VERSION 3.5)
|
||||
project(RN-Praxis)
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
|
||||
add_executable(webserver webserver.c http.c util.c data.c)
|
||||
target_compile_options(webserver PRIVATE -Wall -Wextra -Wpedantic)
|
||||
target_link_libraries(webserver PRIVATE -lm)
|
||||
|
||||
# Packaging
|
||||
set(CPACK_SOURCE_GENERATOR "TGZ")
|
||||
set(CPACK_SOURCE_IGNORE_FILES ${CMAKE_BINARY_DIR} /\\..*$)
|
||||
set(CPACK_VERBATIM_VARIABLES YES)
|
||||
include(CPack)
|
||||
@@ -0,0 +1,435 @@
|
||||
# This is the CMakeCache file.
|
||||
# For build in directory: /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build
|
||||
# It was generated by CMake: /usr/bin/cmake
|
||||
# You can edit this file to change values found and used by cmake.
|
||||
# If you do not want to change any of the values, simply exit the editor.
|
||||
# If you do want to change a value, simply edit, save, and exit the editor.
|
||||
# The syntax for the file is as follows:
|
||||
# KEY:TYPE=VALUE
|
||||
# KEY is the name of a variable in the cache.
|
||||
# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!.
|
||||
# VALUE is the current value for the KEY.
|
||||
|
||||
########################
|
||||
# EXTERNAL cache entries
|
||||
########################
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_AR:FILEPATH=/usr/bin/ar
|
||||
|
||||
//Choose the type of build, options are: None Debug Release RelWithDebInfo
|
||||
// MinSizeRel ...
|
||||
CMAKE_BUILD_TYPE:STRING=Debug
|
||||
|
||||
//Enable/Disable color output during build.
|
||||
CMAKE_COLOR_MAKEFILE:BOOL=ON
|
||||
|
||||
//CXX compiler
|
||||
CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++
|
||||
|
||||
//A wrapper around 'ar' adding the appropriate '--plugin' option
|
||||
// for the GCC compiler
|
||||
CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar
|
||||
|
||||
//A wrapper around 'ranlib' adding the appropriate '--plugin' option
|
||||
// for the GCC compiler
|
||||
CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib
|
||||
|
||||
//Flags used by the CXX compiler during all build types.
|
||||
CMAKE_CXX_FLAGS:STRING=
|
||||
|
||||
//Flags used by the CXX compiler during DEBUG builds.
|
||||
CMAKE_CXX_FLAGS_DEBUG:STRING=-g
|
||||
|
||||
//Flags used by the CXX compiler during MINSIZEREL builds.
|
||||
CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
|
||||
|
||||
//Flags used by the CXX compiler during RELEASE builds.
|
||||
CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
|
||||
|
||||
//Flags used by the CXX compiler during RELWITHDEBINFO builds.
|
||||
CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
|
||||
|
||||
//C compiler
|
||||
CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc
|
||||
|
||||
//A wrapper around 'ar' adding the appropriate '--plugin' option
|
||||
// for the GCC compiler
|
||||
CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar
|
||||
|
||||
//A wrapper around 'ranlib' adding the appropriate '--plugin' option
|
||||
// for the GCC compiler
|
||||
CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib
|
||||
|
||||
//Flags used by the C compiler during all build types.
|
||||
CMAKE_C_FLAGS:STRING=
|
||||
|
||||
//Flags used by the C compiler during DEBUG builds.
|
||||
CMAKE_C_FLAGS_DEBUG:STRING=-g
|
||||
|
||||
//Flags used by the C compiler during MINSIZEREL builds.
|
||||
CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG
|
||||
|
||||
//Flags used by the C compiler during RELEASE builds.
|
||||
CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG
|
||||
|
||||
//Flags used by the C compiler during RELWITHDEBINFO builds.
|
||||
CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND
|
||||
|
||||
//Flags used by the linker during all build types.
|
||||
CMAKE_EXE_LINKER_FLAGS:STRING=
|
||||
|
||||
//Flags used by the linker during DEBUG builds.
|
||||
CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=
|
||||
|
||||
//Flags used by the linker during MINSIZEREL builds.
|
||||
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=
|
||||
|
||||
//Flags used by the linker during RELEASE builds.
|
||||
CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=
|
||||
|
||||
//Flags used by the linker during RELWITHDEBINFO builds.
|
||||
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
|
||||
|
||||
//Enable/Disable output of compile commands during generation.
|
||||
CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=
|
||||
|
||||
//Value Computed by CMake.
|
||||
CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/pkgRedirects
|
||||
|
||||
//Install path prefix, prepended onto install directories.
|
||||
CMAKE_INSTALL_PREFIX:PATH=/usr/local
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_LINKER:FILEPATH=/usr/bin/ld
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make
|
||||
|
||||
//Flags used by the linker during the creation of modules during
|
||||
// all build types.
|
||||
CMAKE_MODULE_LINKER_FLAGS:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of modules during
|
||||
// DEBUG builds.
|
||||
CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of modules during
|
||||
// MINSIZEREL builds.
|
||||
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of modules during
|
||||
// RELEASE builds.
|
||||
CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of modules during
|
||||
// RELWITHDEBINFO builds.
|
||||
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_NM:FILEPATH=/usr/bin/nm
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump
|
||||
|
||||
//Value Computed by CMake
|
||||
CMAKE_PROJECT_DESCRIPTION:STATIC=
|
||||
|
||||
//Value Computed by CMake
|
||||
CMAKE_PROJECT_HOMEPAGE_URL:STATIC=
|
||||
|
||||
//Value Computed by CMake
|
||||
CMAKE_PROJECT_NAME:STATIC=RN-Praxis
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_READELF:FILEPATH=/usr/bin/readelf
|
||||
|
||||
//Flags used by the linker during the creation of shared libraries
|
||||
// during all build types.
|
||||
CMAKE_SHARED_LINKER_FLAGS:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of shared libraries
|
||||
// during DEBUG builds.
|
||||
CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of shared libraries
|
||||
// during MINSIZEREL builds.
|
||||
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of shared libraries
|
||||
// during RELEASE builds.
|
||||
CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of shared libraries
|
||||
// during RELWITHDEBINFO builds.
|
||||
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=
|
||||
|
||||
//If set, runtime paths are not added when installing shared libraries,
|
||||
// but are added when building.
|
||||
CMAKE_SKIP_INSTALL_RPATH:BOOL=NO
|
||||
|
||||
//If set, runtime paths are not added when using shared libraries.
|
||||
CMAKE_SKIP_RPATH:BOOL=NO
|
||||
|
||||
//Flags used by the linker during the creation of static libraries
|
||||
// during all build types.
|
||||
CMAKE_STATIC_LINKER_FLAGS:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of static libraries
|
||||
// during DEBUG builds.
|
||||
CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of static libraries
|
||||
// during MINSIZEREL builds.
|
||||
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of static libraries
|
||||
// during RELEASE builds.
|
||||
CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=
|
||||
|
||||
//Flags used by the linker during the creation of static libraries
|
||||
// during RELWITHDEBINFO builds.
|
||||
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_STRIP:FILEPATH=/usr/bin/strip
|
||||
|
||||
//Path to a program.
|
||||
CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND
|
||||
|
||||
//If this value is on, makefiles will be generated without the
|
||||
// .SILENT directive, and all commands will be echoed to the console
|
||||
// during the make. This is useful for debugging only. With Visual
|
||||
// Studio IDE projects all commands are done without /nologo.
|
||||
CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE
|
||||
|
||||
//Enable to build Debian packages
|
||||
CPACK_BINARY_DEB:BOOL=OFF
|
||||
|
||||
//Enable to build FreeBSD packages
|
||||
CPACK_BINARY_FREEBSD:BOOL=OFF
|
||||
|
||||
//Enable to build IFW packages
|
||||
CPACK_BINARY_IFW:BOOL=OFF
|
||||
|
||||
//Enable to build NSIS packages
|
||||
CPACK_BINARY_NSIS:BOOL=OFF
|
||||
|
||||
//Enable to build RPM packages
|
||||
CPACK_BINARY_RPM:BOOL=OFF
|
||||
|
||||
//Enable to build STGZ packages
|
||||
CPACK_BINARY_STGZ:BOOL=ON
|
||||
|
||||
//Enable to build TBZ2 packages
|
||||
CPACK_BINARY_TBZ2:BOOL=OFF
|
||||
|
||||
//Enable to build TGZ packages
|
||||
CPACK_BINARY_TGZ:BOOL=ON
|
||||
|
||||
//Enable to build TXZ packages
|
||||
CPACK_BINARY_TXZ:BOOL=OFF
|
||||
|
||||
//Enable to build TZ packages
|
||||
CPACK_BINARY_TZ:BOOL=ON
|
||||
|
||||
//Value Computed by CMake
|
||||
RN-Praxis_BINARY_DIR:STATIC=/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build
|
||||
|
||||
//Value Computed by CMake
|
||||
RN-Praxis_IS_TOP_LEVEL:STATIC=ON
|
||||
|
||||
//Value Computed by CMake
|
||||
RN-Praxis_SOURCE_DIR:STATIC=/home/timo/Dokumente/uni/praxis2.skeleton/praxis2
|
||||
|
||||
|
||||
########################
|
||||
# INTERNAL cache entries
|
||||
########################
|
||||
|
||||
//ADVANCED property for variable: CMAKE_ADDR2LINE
|
||||
CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_AR
|
||||
CMAKE_AR-ADVANCED:INTERNAL=1
|
||||
//This is the directory where this CMakeCache.txt was created
|
||||
CMAKE_CACHEFILE_DIR:INTERNAL=/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build
|
||||
//Major version of cmake used to create the current loaded cache
|
||||
CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3
|
||||
//Minor version of cmake used to create the current loaded cache
|
||||
CMAKE_CACHE_MINOR_VERSION:INTERNAL=31
|
||||
//Patch version of cmake used to create the current loaded cache
|
||||
CMAKE_CACHE_PATCH_VERSION:INTERNAL=3
|
||||
//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
|
||||
CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
|
||||
//Path to CMake executable.
|
||||
CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
|
||||
//Path to cpack program executable.
|
||||
CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
|
||||
//Path to ctest program executable.
|
||||
CMAKE_CTEST_COMMAND:INTERNAL=/usr/bin/ctest
|
||||
//ADVANCED property for variable: CMAKE_CXX_COMPILER
|
||||
CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR
|
||||
CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB
|
||||
CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_CXX_FLAGS
|
||||
CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG
|
||||
CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL
|
||||
CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE
|
||||
CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_COMPILER
|
||||
CMAKE_C_COMPILER-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_COMPILER_AR
|
||||
CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB
|
||||
CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_FLAGS
|
||||
CMAKE_C_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG
|
||||
CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL
|
||||
CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE
|
||||
CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_DLLTOOL
|
||||
CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
|
||||
//Path to cache edit program executable.
|
||||
CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/ccmake
|
||||
//Executable file format
|
||||
CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF
|
||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS
|
||||
CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG
|
||||
CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL
|
||||
CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE
|
||||
CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS
|
||||
CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1
|
||||
//Name of external makefile project generator.
|
||||
CMAKE_EXTRA_GENERATOR:INTERNAL=
|
||||
//Name of generator.
|
||||
CMAKE_GENERATOR:INTERNAL=Unix Makefiles
|
||||
//Generator instance identifier.
|
||||
CMAKE_GENERATOR_INSTANCE:INTERNAL=
|
||||
//Name of generator platform.
|
||||
CMAKE_GENERATOR_PLATFORM:INTERNAL=
|
||||
//Name of generator toolset.
|
||||
CMAKE_GENERATOR_TOOLSET:INTERNAL=
|
||||
//Source directory with the top level CMakeLists.txt file for this
|
||||
// project
|
||||
CMAKE_HOME_DIRECTORY:INTERNAL=/home/timo/Dokumente/uni/praxis2.skeleton/praxis2
|
||||
//Install .so files without execute permission.
|
||||
CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0
|
||||
//ADVANCED property for variable: CMAKE_LINKER
|
||||
CMAKE_LINKER-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_MAKE_PROGRAM
|
||||
CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS
|
||||
CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG
|
||||
CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL
|
||||
CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE
|
||||
CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_NM
|
||||
CMAKE_NM-ADVANCED:INTERNAL=1
|
||||
//number of local generators
|
||||
CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_OBJCOPY
|
||||
CMAKE_OBJCOPY-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_OBJDUMP
|
||||
CMAKE_OBJDUMP-ADVANCED:INTERNAL=1
|
||||
//Platform information initialized
|
||||
CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_RANLIB
|
||||
CMAKE_RANLIB-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_READELF
|
||||
CMAKE_READELF-ADVANCED:INTERNAL=1
|
||||
//Path to CMake installation.
|
||||
CMAKE_ROOT:INTERNAL=/usr/share/cmake
|
||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS
|
||||
CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG
|
||||
CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL
|
||||
CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE
|
||||
CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH
|
||||
CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_SKIP_RPATH
|
||||
CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS
|
||||
CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG
|
||||
CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL
|
||||
CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE
|
||||
CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO
|
||||
CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_STRIP
|
||||
CMAKE_STRIP-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_TAPI
|
||||
CMAKE_TAPI-ADVANCED:INTERNAL=1
|
||||
//uname command
|
||||
CMAKE_UNAME:INTERNAL=/usr/bin/uname
|
||||
//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE
|
||||
CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CPACK_BINARY_DEB
|
||||
CPACK_BINARY_DEB-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CPACK_BINARY_FREEBSD
|
||||
CPACK_BINARY_FREEBSD-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CPACK_BINARY_IFW
|
||||
CPACK_BINARY_IFW-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CPACK_BINARY_NSIS
|
||||
CPACK_BINARY_NSIS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CPACK_BINARY_RPM
|
||||
CPACK_BINARY_RPM-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CPACK_BINARY_STGZ
|
||||
CPACK_BINARY_STGZ-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CPACK_BINARY_TBZ2
|
||||
CPACK_BINARY_TBZ2-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CPACK_BINARY_TGZ
|
||||
CPACK_BINARY_TGZ-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CPACK_BINARY_TXZ
|
||||
CPACK_BINARY_TXZ-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: CPACK_BINARY_TZ
|
||||
CPACK_BINARY_TZ-ADVANCED:INTERNAL=1
|
||||
//linker supports push/pop state
|
||||
_CMAKE_CXX_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE
|
||||
//linker supports push/pop state
|
||||
_CMAKE_C_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE
|
||||
//linker supports push/pop state
|
||||
_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
set(CMAKE_C_COMPILER "/usr/bin/cc")
|
||||
set(CMAKE_C_COMPILER_ARG1 "")
|
||||
set(CMAKE_C_COMPILER_ID "GNU")
|
||||
set(CMAKE_C_COMPILER_VERSION "14.2.1")
|
||||
set(CMAKE_C_COMPILER_VERSION_INTERNAL "")
|
||||
set(CMAKE_C_COMPILER_WRAPPER "")
|
||||
set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "17")
|
||||
set(CMAKE_C_EXTENSIONS_COMPUTED_DEFAULT "ON")
|
||||
set(CMAKE_C_STANDARD_LATEST "23")
|
||||
set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert;c_std_17;c_std_23")
|
||||
set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes")
|
||||
set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros")
|
||||
set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert")
|
||||
set(CMAKE_C17_COMPILE_FEATURES "c_std_17")
|
||||
set(CMAKE_C23_COMPILE_FEATURES "c_std_23")
|
||||
|
||||
set(CMAKE_C_PLATFORM_ID "Linux")
|
||||
set(CMAKE_C_SIMULATE_ID "")
|
||||
set(CMAKE_C_COMPILER_FRONTEND_VARIANT "GNU")
|
||||
set(CMAKE_C_SIMULATE_VERSION "")
|
||||
|
||||
|
||||
|
||||
|
||||
set(CMAKE_AR "/usr/bin/ar")
|
||||
set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar")
|
||||
set(CMAKE_RANLIB "/usr/bin/ranlib")
|
||||
set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib")
|
||||
set(CMAKE_LINKER "/usr/bin/ld")
|
||||
set(CMAKE_LINKER_LINK "")
|
||||
set(CMAKE_LINKER_LLD "")
|
||||
set(CMAKE_C_COMPILER_LINKER "/usr/bin/ld")
|
||||
set(CMAKE_C_COMPILER_LINKER_ID "GNU")
|
||||
set(CMAKE_C_COMPILER_LINKER_VERSION 2.43.0)
|
||||
set(CMAKE_C_COMPILER_LINKER_FRONTEND_VARIANT GNU)
|
||||
set(CMAKE_MT "")
|
||||
set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND")
|
||||
set(CMAKE_COMPILER_IS_GNUCC 1)
|
||||
set(CMAKE_C_COMPILER_LOADED 1)
|
||||
set(CMAKE_C_COMPILER_WORKS TRUE)
|
||||
set(CMAKE_C_ABI_COMPILED TRUE)
|
||||
|
||||
set(CMAKE_C_COMPILER_ENV_VAR "CC")
|
||||
|
||||
set(CMAKE_C_COMPILER_ID_RUN 1)
|
||||
set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m)
|
||||
set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC)
|
||||
set(CMAKE_C_LINKER_PREFERENCE 10)
|
||||
set(CMAKE_C_LINKER_DEPFILE_SUPPORTED )
|
||||
|
||||
# Save compiler ABI information.
|
||||
set(CMAKE_C_SIZEOF_DATA_PTR "8")
|
||||
set(CMAKE_C_COMPILER_ABI "ELF")
|
||||
set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN")
|
||||
set(CMAKE_C_LIBRARY_ARCHITECTURE "")
|
||||
|
||||
if(CMAKE_C_SIZEOF_DATA_PTR)
|
||||
set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ABI)
|
||||
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_LIBRARY_ARCHITECTURE)
|
||||
set(CMAKE_LIBRARY_ARCHITECTURE "")
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "")
|
||||
if(CMAKE_C_CL_SHOWINCLUDES_PREFIX)
|
||||
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}")
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include;/usr/local/include;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed;/usr/include")
|
||||
set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s")
|
||||
set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1;/usr/lib;/lib")
|
||||
set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
|
||||
@@ -0,0 +1,105 @@
|
||||
set(CMAKE_CXX_COMPILER "/usr/bin/c++")
|
||||
set(CMAKE_CXX_COMPILER_ARG1 "")
|
||||
set(CMAKE_CXX_COMPILER_ID "GNU")
|
||||
set(CMAKE_CXX_COMPILER_VERSION "14.2.1")
|
||||
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
|
||||
set(CMAKE_CXX_COMPILER_WRAPPER "")
|
||||
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17")
|
||||
set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON")
|
||||
set(CMAKE_CXX_STANDARD_LATEST "26")
|
||||
set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20;cxx_std_23;cxx_std_26")
|
||||
set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters")
|
||||
set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates")
|
||||
set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates")
|
||||
set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17")
|
||||
set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20")
|
||||
set(CMAKE_CXX23_COMPILE_FEATURES "cxx_std_23")
|
||||
set(CMAKE_CXX26_COMPILE_FEATURES "cxx_std_26")
|
||||
|
||||
set(CMAKE_CXX_PLATFORM_ID "Linux")
|
||||
set(CMAKE_CXX_SIMULATE_ID "")
|
||||
set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "GNU")
|
||||
set(CMAKE_CXX_SIMULATE_VERSION "")
|
||||
|
||||
|
||||
|
||||
|
||||
set(CMAKE_AR "/usr/bin/ar")
|
||||
set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar")
|
||||
set(CMAKE_RANLIB "/usr/bin/ranlib")
|
||||
set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib")
|
||||
set(CMAKE_LINKER "/usr/bin/ld")
|
||||
set(CMAKE_LINKER_LINK "")
|
||||
set(CMAKE_LINKER_LLD "")
|
||||
set(CMAKE_CXX_COMPILER_LINKER "/usr/bin/ld")
|
||||
set(CMAKE_CXX_COMPILER_LINKER_ID "GNU")
|
||||
set(CMAKE_CXX_COMPILER_LINKER_VERSION 2.43.0)
|
||||
set(CMAKE_CXX_COMPILER_LINKER_FRONTEND_VARIANT GNU)
|
||||
set(CMAKE_MT "")
|
||||
set(CMAKE_TAPI "CMAKE_TAPI-NOTFOUND")
|
||||
set(CMAKE_COMPILER_IS_GNUCXX 1)
|
||||
set(CMAKE_CXX_COMPILER_LOADED 1)
|
||||
set(CMAKE_CXX_COMPILER_WORKS TRUE)
|
||||
set(CMAKE_CXX_ABI_COMPILED TRUE)
|
||||
|
||||
set(CMAKE_CXX_COMPILER_ENV_VAR "CXX")
|
||||
|
||||
set(CMAKE_CXX_COMPILER_ID_RUN 1)
|
||||
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm;ccm;cxxm;c++m)
|
||||
set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC)
|
||||
|
||||
foreach (lang IN ITEMS C OBJC OBJCXX)
|
||||
if (CMAKE_${lang}_COMPILER_ID_RUN)
|
||||
foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS)
|
||||
list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension})
|
||||
endforeach()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
set(CMAKE_CXX_LINKER_PREFERENCE 30)
|
||||
set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1)
|
||||
set(CMAKE_CXX_LINKER_DEPFILE_SUPPORTED )
|
||||
|
||||
# Save compiler ABI information.
|
||||
set(CMAKE_CXX_SIZEOF_DATA_PTR "8")
|
||||
set(CMAKE_CXX_COMPILER_ABI "ELF")
|
||||
set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN")
|
||||
set(CMAKE_CXX_LIBRARY_ARCHITECTURE "")
|
||||
|
||||
if(CMAKE_CXX_SIZEOF_DATA_PTR)
|
||||
set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_COMPILER_ABI)
|
||||
set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_CXX_LIBRARY_ARCHITECTURE)
|
||||
set(CMAKE_LIBRARY_ARCHITECTURE "")
|
||||
endif()
|
||||
|
||||
set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "")
|
||||
if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX)
|
||||
set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}")
|
||||
endif()
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/14.2.1;/usr/include/c++/14.2.1/x86_64-pc-linux-gnu;/usr/include/c++/14.2.1/backward;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include;/usr/local/include;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed;/usr/include")
|
||||
set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc")
|
||||
set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1;/usr/lib;/lib")
|
||||
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
|
||||
set(CMAKE_CXX_COMPILER_CLANG_RESOURCE_DIR "")
|
||||
|
||||
set(CMAKE_CXX_COMPILER_IMPORT_STD "")
|
||||
### Imported target for C++23 standard library
|
||||
set(CMAKE_CXX23_COMPILER_IMPORT_STD_NOT_FOUND_MESSAGE "Unsupported generator: Unix Makefiles")
|
||||
|
||||
|
||||
### Imported target for C++26 standard library
|
||||
set(CMAKE_CXX26_COMPILER_IMPORT_STD_NOT_FOUND_MESSAGE "Unsupported generator: Unix Makefiles")
|
||||
|
||||
|
||||
|
||||
BIN
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,15 @@
|
||||
set(CMAKE_HOST_SYSTEM "Linux-6.12.7-zen1-1-zen")
|
||||
set(CMAKE_HOST_SYSTEM_NAME "Linux")
|
||||
set(CMAKE_HOST_SYSTEM_VERSION "6.12.7-zen1-1-zen")
|
||||
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
|
||||
|
||||
|
||||
|
||||
set(CMAKE_SYSTEM "Linux-6.12.7-zen1-1-zen")
|
||||
set(CMAKE_SYSTEM_NAME "Linux")
|
||||
set(CMAKE_SYSTEM_VERSION "6.12.7-zen1-1-zen")
|
||||
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
|
||||
|
||||
set(CMAKE_CROSSCOMPILING "FALSE")
|
||||
|
||||
set(CMAKE_SYSTEM_LOADED 1)
|
||||
@@ -0,0 +1,904 @@
|
||||
#ifdef __cplusplus
|
||||
# error "A C++ compiler has been selected for C."
|
||||
#endif
|
||||
|
||||
#if defined(__18CXX)
|
||||
# define ID_VOID_MAIN
|
||||
#endif
|
||||
#if defined(__CLASSIC_C__)
|
||||
/* cv-qualifiers did not exist in K&R C */
|
||||
# define const
|
||||
# define volatile
|
||||
#endif
|
||||
|
||||
#if !defined(__has_include)
|
||||
/* If the compiler does not have __has_include, pretend the answer is
|
||||
always no. */
|
||||
# define __has_include(x) 0
|
||||
#endif
|
||||
|
||||
|
||||
/* Version number components: V=Version, R=Revision, P=Patch
|
||||
Version date components: YYYY=Year, MM=Month, DD=Day */
|
||||
|
||||
#if defined(__INTEL_COMPILER) || defined(__ICC)
|
||||
# define COMPILER_ID "Intel"
|
||||
# if defined(_MSC_VER)
|
||||
# define SIMULATE_ID "MSVC"
|
||||
# endif
|
||||
# if defined(__GNUC__)
|
||||
# define SIMULATE_ID "GNU"
|
||||
# endif
|
||||
/* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
|
||||
except that a few beta releases use the old format with V=2021. */
|
||||
# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
|
||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
|
||||
# if defined(__INTEL_COMPILER_UPDATE)
|
||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
|
||||
# else
|
||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
|
||||
# endif
|
||||
# else
|
||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
|
||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
|
||||
/* The third version component from --version is an update index,
|
||||
but no macro is provided for it. */
|
||||
# define COMPILER_VERSION_PATCH DEC(0)
|
||||
# endif
|
||||
# if defined(__INTEL_COMPILER_BUILD_DATE)
|
||||
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
|
||||
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
|
||||
# endif
|
||||
# if defined(_MSC_VER)
|
||||
/* _MSC_VER = VVRR */
|
||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# endif
|
||||
# if defined(__GNUC__)
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
||||
# elif defined(__GNUG__)
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
|
||||
# endif
|
||||
# if defined(__GNUC_MINOR__)
|
||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
||||
# endif
|
||||
# if defined(__GNUC_PATCHLEVEL__)
|
||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
|
||||
# define COMPILER_ID "IntelLLVM"
|
||||
#if defined(_MSC_VER)
|
||||
# define SIMULATE_ID "MSVC"
|
||||
#endif
|
||||
#if defined(__GNUC__)
|
||||
# define SIMULATE_ID "GNU"
|
||||
#endif
|
||||
/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
|
||||
* later. Look for 6 digit vs. 8 digit version number to decide encoding.
|
||||
* VVVV is no smaller than the current year when a version is released.
|
||||
*/
|
||||
#if __INTEL_LLVM_COMPILER < 1000000L
|
||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
|
||||
#else
|
||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
|
||||
#endif
|
||||
#if defined(_MSC_VER)
|
||||
/* _MSC_VER = VVRR */
|
||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
#endif
|
||||
#if defined(__GNUC__)
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
||||
#elif defined(__GNUG__)
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
|
||||
#endif
|
||||
#if defined(__GNUC_MINOR__)
|
||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
||||
#endif
|
||||
#if defined(__GNUC_PATCHLEVEL__)
|
||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
||||
#endif
|
||||
|
||||
#elif defined(__PATHCC__)
|
||||
# define COMPILER_ID "PathScale"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
|
||||
# if defined(__PATHCC_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
|
||||
# define COMPILER_ID "Embarcadero"
|
||||
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
|
||||
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
|
||||
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
|
||||
|
||||
#elif defined(__BORLANDC__)
|
||||
# define COMPILER_ID "Borland"
|
||||
/* __BORLANDC__ = 0xVRR */
|
||||
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
|
||||
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
|
||||
|
||||
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
|
||||
# define COMPILER_ID "Watcom"
|
||||
/* __WATCOMC__ = VVRR */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
|
||||
# if (__WATCOMC__ % 10) > 0
|
||||
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
|
||||
# endif
|
||||
|
||||
#elif defined(__WATCOMC__)
|
||||
# define COMPILER_ID "OpenWatcom"
|
||||
/* __WATCOMC__ = VVRP + 1100 */
|
||||
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
|
||||
# if (__WATCOMC__ % 10) > 0
|
||||
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
|
||||
# endif
|
||||
|
||||
#elif defined(__SUNPRO_C)
|
||||
# define COMPILER_ID "SunPro"
|
||||
# if __SUNPRO_C >= 0x5100
|
||||
/* __SUNPRO_C = 0xVRRP */
|
||||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12)
|
||||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF)
|
||||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
|
||||
# else
|
||||
/* __SUNPRO_CC = 0xVRP */
|
||||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8)
|
||||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF)
|
||||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF)
|
||||
# endif
|
||||
|
||||
#elif defined(__HP_cc)
|
||||
# define COMPILER_ID "HP"
|
||||
/* __HP_cc = VVRRPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100)
|
||||
|
||||
#elif defined(__DECC)
|
||||
# define COMPILER_ID "Compaq"
|
||||
/* __DECC_VER = VVRRTPPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000)
|
||||
|
||||
#elif defined(__IBMC__) && defined(__COMPILER_VER__)
|
||||
# define COMPILER_ID "zOS"
|
||||
/* __IBMC__ = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
|
||||
|
||||
#elif defined(__open_xl__) && defined(__clang__)
|
||||
# define COMPILER_ID "IBMClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
|
||||
# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
|
||||
|
||||
|
||||
#elif defined(__ibmxl__) && defined(__clang__)
|
||||
# define COMPILER_ID "XLClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
|
||||
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
|
||||
|
||||
|
||||
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800
|
||||
# define COMPILER_ID "XL"
|
||||
/* __IBMC__ = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
|
||||
|
||||
#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800
|
||||
# define COMPILER_ID "VisualAge"
|
||||
/* __IBMC__ = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10)
|
||||
|
||||
#elif defined(__NVCOMPILER)
|
||||
# define COMPILER_ID "NVHPC"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
|
||||
# if defined(__NVCOMPILER_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(__PGI)
|
||||
# define COMPILER_ID "PGI"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
|
||||
# if defined(__PGIC_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(__clang__) && defined(__cray__)
|
||||
# define COMPILER_ID "CrayClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__cray_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__cray_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__)
|
||||
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
|
||||
|
||||
|
||||
#elif defined(_CRAYC)
|
||||
# define COMPILER_ID "Cray"
|
||||
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
|
||||
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
|
||||
|
||||
#elif defined(__TI_COMPILER_VERSION__)
|
||||
# define COMPILER_ID "TI"
|
||||
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
|
||||
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
|
||||
|
||||
#elif defined(__CLANG_FUJITSU)
|
||||
# define COMPILER_ID "FujitsuClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
|
||||
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
|
||||
|
||||
|
||||
#elif defined(__FUJITSU)
|
||||
# define COMPILER_ID "Fujitsu"
|
||||
# if defined(__FCC_version__)
|
||||
# define COMPILER_VERSION __FCC_version__
|
||||
# elif defined(__FCC_major__)
|
||||
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
|
||||
# endif
|
||||
# if defined(__fcc_version)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
|
||||
# elif defined(__FCC_VERSION)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
|
||||
# endif
|
||||
|
||||
|
||||
#elif defined(__ghs__)
|
||||
# define COMPILER_ID "GHS"
|
||||
/* __GHS_VERSION_NUMBER = VVVVRP */
|
||||
# ifdef __GHS_VERSION_NUMBER
|
||||
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
|
||||
# endif
|
||||
|
||||
#elif defined(__TASKING__)
|
||||
# define COMPILER_ID "Tasking"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
|
||||
|
||||
#elif defined(__ORANGEC__)
|
||||
# define COMPILER_ID "OrangeC"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__)
|
||||
|
||||
#elif defined(__TINYC__)
|
||||
# define COMPILER_ID "TinyCC"
|
||||
|
||||
#elif defined(__BCC__)
|
||||
# define COMPILER_ID "Bruce"
|
||||
|
||||
#elif defined(__SCO_VERSION__)
|
||||
# define COMPILER_ID "SCO"
|
||||
|
||||
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
|
||||
# define COMPILER_ID "ARMCC"
|
||||
#if __ARMCC_VERSION >= 1000000
|
||||
/* __ARMCC_VERSION = VRRPPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
|
||||
#else
|
||||
/* __ARMCC_VERSION = VRPPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
|
||||
#endif
|
||||
|
||||
|
||||
#elif defined(__clang__) && defined(__apple_build_version__)
|
||||
# define COMPILER_ID "AppleClang"
|
||||
# if defined(_MSC_VER)
|
||||
# define SIMULATE_ID "MSVC"
|
||||
# endif
|
||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
|
||||
# if defined(_MSC_VER)
|
||||
/* _MSC_VER = VVRR */
|
||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# endif
|
||||
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
|
||||
|
||||
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
|
||||
# define COMPILER_ID "ARMClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
|
||||
|
||||
#elif defined(__clang__) && defined(__ti__)
|
||||
# define COMPILER_ID "TIClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ti_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ti_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__ti_version__)
|
||||
|
||||
#elif defined(__clang__)
|
||||
# define COMPILER_ID "Clang"
|
||||
# if defined(_MSC_VER)
|
||||
# define SIMULATE_ID "MSVC"
|
||||
# endif
|
||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
|
||||
# if defined(_MSC_VER)
|
||||
/* _MSC_VER = VVRR */
|
||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# endif
|
||||
|
||||
#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
|
||||
# define COMPILER_ID "LCC"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
|
||||
# if defined(__LCC_MINOR__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
|
||||
# endif
|
||||
# if defined(__GNUC__) && defined(__GNUC_MINOR__)
|
||||
# define SIMULATE_ID "GNU"
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
||||
# if defined(__GNUC_PATCHLEVEL__)
|
||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#elif defined(__GNUC__)
|
||||
# define COMPILER_ID "GNU"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
|
||||
# if defined(__GNUC_MINOR__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
|
||||
# endif
|
||||
# if defined(__GNUC_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(_MSC_VER)
|
||||
# define COMPILER_ID "MSVC"
|
||||
/* _MSC_VER = VVRR */
|
||||
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# if defined(_MSC_FULL_VER)
|
||||
# if _MSC_VER >= 1400
|
||||
/* _MSC_FULL_VER = VVRRPPPPP */
|
||||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
|
||||
# else
|
||||
/* _MSC_FULL_VER = VVRRPPPP */
|
||||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
|
||||
# endif
|
||||
# endif
|
||||
# if defined(_MSC_BUILD)
|
||||
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
|
||||
# endif
|
||||
|
||||
#elif defined(_ADI_COMPILER)
|
||||
# define COMPILER_ID "ADSP"
|
||||
#if defined(__VERSIONNUM__)
|
||||
/* __VERSIONNUM__ = 0xVVRRPPTT */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
|
||||
# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
|
||||
# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
|
||||
# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
|
||||
#endif
|
||||
|
||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
|
||||
# define COMPILER_ID "IAR"
|
||||
# if defined(__VER__) && defined(__ICCARM__)
|
||||
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
|
||||
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
|
||||
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
|
||||
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
|
||||
# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
|
||||
# endif
|
||||
|
||||
#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC)
|
||||
# define COMPILER_ID "SDCC"
|
||||
# if defined(__SDCC_VERSION_MAJOR)
|
||||
# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR)
|
||||
# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR)
|
||||
# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH)
|
||||
# else
|
||||
/* SDCC = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(SDCC/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(SDCC % 10)
|
||||
# endif
|
||||
|
||||
|
||||
/* These compilers are either not known or too old to define an
|
||||
identification macro. Try to identify the platform and guess that
|
||||
it is the native compiler. */
|
||||
#elif defined(__hpux) || defined(__hpua)
|
||||
# define COMPILER_ID "HP"
|
||||
|
||||
#else /* unknown compiler */
|
||||
# define COMPILER_ID ""
|
||||
#endif
|
||||
|
||||
/* Construct the string literal in pieces to prevent the source from
|
||||
getting matched. Store it in a pointer rather than an array
|
||||
because some compilers will just produce instructions to fill the
|
||||
array rather than assigning a pointer to a static array. */
|
||||
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
|
||||
#ifdef SIMULATE_ID
|
||||
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
|
||||
#endif
|
||||
|
||||
#ifdef __QNXNTO__
|
||||
char const* qnxnto = "INFO" ":" "qnxnto[]";
|
||||
#endif
|
||||
|
||||
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
|
||||
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
|
||||
#endif
|
||||
|
||||
#define STRINGIFY_HELPER(X) #X
|
||||
#define STRINGIFY(X) STRINGIFY_HELPER(X)
|
||||
|
||||
/* Identify known platforms by name. */
|
||||
#if defined(__linux) || defined(__linux__) || defined(linux)
|
||||
# define PLATFORM_ID "Linux"
|
||||
|
||||
#elif defined(__MSYS__)
|
||||
# define PLATFORM_ID "MSYS"
|
||||
|
||||
#elif defined(__CYGWIN__)
|
||||
# define PLATFORM_ID "Cygwin"
|
||||
|
||||
#elif defined(__MINGW32__)
|
||||
# define PLATFORM_ID "MinGW"
|
||||
|
||||
#elif defined(__APPLE__)
|
||||
# define PLATFORM_ID "Darwin"
|
||||
|
||||
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
|
||||
# define PLATFORM_ID "Windows"
|
||||
|
||||
#elif defined(__FreeBSD__) || defined(__FreeBSD)
|
||||
# define PLATFORM_ID "FreeBSD"
|
||||
|
||||
#elif defined(__NetBSD__) || defined(__NetBSD)
|
||||
# define PLATFORM_ID "NetBSD"
|
||||
|
||||
#elif defined(__OpenBSD__) || defined(__OPENBSD)
|
||||
# define PLATFORM_ID "OpenBSD"
|
||||
|
||||
#elif defined(__sun) || defined(sun)
|
||||
# define PLATFORM_ID "SunOS"
|
||||
|
||||
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
|
||||
# define PLATFORM_ID "AIX"
|
||||
|
||||
#elif defined(__hpux) || defined(__hpux__)
|
||||
# define PLATFORM_ID "HP-UX"
|
||||
|
||||
#elif defined(__HAIKU__)
|
||||
# define PLATFORM_ID "Haiku"
|
||||
|
||||
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
|
||||
# define PLATFORM_ID "BeOS"
|
||||
|
||||
#elif defined(__QNX__) || defined(__QNXNTO__)
|
||||
# define PLATFORM_ID "QNX"
|
||||
|
||||
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
|
||||
# define PLATFORM_ID "Tru64"
|
||||
|
||||
#elif defined(__riscos) || defined(__riscos__)
|
||||
# define PLATFORM_ID "RISCos"
|
||||
|
||||
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
|
||||
# define PLATFORM_ID "SINIX"
|
||||
|
||||
#elif defined(__UNIX_SV__)
|
||||
# define PLATFORM_ID "UNIX_SV"
|
||||
|
||||
#elif defined(__bsdos__)
|
||||
# define PLATFORM_ID "BSDOS"
|
||||
|
||||
#elif defined(_MPRAS) || defined(MPRAS)
|
||||
# define PLATFORM_ID "MP-RAS"
|
||||
|
||||
#elif defined(__osf) || defined(__osf__)
|
||||
# define PLATFORM_ID "OSF1"
|
||||
|
||||
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
|
||||
# define PLATFORM_ID "SCO_SV"
|
||||
|
||||
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
|
||||
# define PLATFORM_ID "ULTRIX"
|
||||
|
||||
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
|
||||
# define PLATFORM_ID "Xenix"
|
||||
|
||||
#elif defined(__WATCOMC__)
|
||||
# if defined(__LINUX__)
|
||||
# define PLATFORM_ID "Linux"
|
||||
|
||||
# elif defined(__DOS__)
|
||||
# define PLATFORM_ID "DOS"
|
||||
|
||||
# elif defined(__OS2__)
|
||||
# define PLATFORM_ID "OS2"
|
||||
|
||||
# elif defined(__WINDOWS__)
|
||||
# define PLATFORM_ID "Windows3x"
|
||||
|
||||
# elif defined(__VXWORKS__)
|
||||
# define PLATFORM_ID "VxWorks"
|
||||
|
||||
# else /* unknown platform */
|
||||
# define PLATFORM_ID
|
||||
# endif
|
||||
|
||||
#elif defined(__INTEGRITY)
|
||||
# if defined(INT_178B)
|
||||
# define PLATFORM_ID "Integrity178"
|
||||
|
||||
# else /* regular Integrity */
|
||||
# define PLATFORM_ID "Integrity"
|
||||
# endif
|
||||
|
||||
# elif defined(_ADI_COMPILER)
|
||||
# define PLATFORM_ID "ADSP"
|
||||
|
||||
#else /* unknown platform */
|
||||
# define PLATFORM_ID
|
||||
|
||||
#endif
|
||||
|
||||
/* For windows compilers MSVC and Intel we can determine
|
||||
the architecture of the compiler being used. This is because
|
||||
the compilers do not have flags that can change the architecture,
|
||||
but rather depend on which compiler is being used
|
||||
*/
|
||||
#if defined(_WIN32) && defined(_MSC_VER)
|
||||
# if defined(_M_IA64)
|
||||
# define ARCHITECTURE_ID "IA64"
|
||||
|
||||
# elif defined(_M_ARM64EC)
|
||||
# define ARCHITECTURE_ID "ARM64EC"
|
||||
|
||||
# elif defined(_M_X64) || defined(_M_AMD64)
|
||||
# define ARCHITECTURE_ID "x64"
|
||||
|
||||
# elif defined(_M_IX86)
|
||||
# define ARCHITECTURE_ID "X86"
|
||||
|
||||
# elif defined(_M_ARM64)
|
||||
# define ARCHITECTURE_ID "ARM64"
|
||||
|
||||
# elif defined(_M_ARM)
|
||||
# if _M_ARM == 4
|
||||
# define ARCHITECTURE_ID "ARMV4I"
|
||||
# elif _M_ARM == 5
|
||||
# define ARCHITECTURE_ID "ARMV5I"
|
||||
# else
|
||||
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
|
||||
# endif
|
||||
|
||||
# elif defined(_M_MIPS)
|
||||
# define ARCHITECTURE_ID "MIPS"
|
||||
|
||||
# elif defined(_M_SH)
|
||||
# define ARCHITECTURE_ID "SHx"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__WATCOMC__)
|
||||
# if defined(_M_I86)
|
||||
# define ARCHITECTURE_ID "I86"
|
||||
|
||||
# elif defined(_M_IX86)
|
||||
# define ARCHITECTURE_ID "X86"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
|
||||
# if defined(__ICCARM__)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# elif defined(__ICCRX__)
|
||||
# define ARCHITECTURE_ID "RX"
|
||||
|
||||
# elif defined(__ICCRH850__)
|
||||
# define ARCHITECTURE_ID "RH850"
|
||||
|
||||
# elif defined(__ICCRL78__)
|
||||
# define ARCHITECTURE_ID "RL78"
|
||||
|
||||
# elif defined(__ICCRISCV__)
|
||||
# define ARCHITECTURE_ID "RISCV"
|
||||
|
||||
# elif defined(__ICCAVR__)
|
||||
# define ARCHITECTURE_ID "AVR"
|
||||
|
||||
# elif defined(__ICC430__)
|
||||
# define ARCHITECTURE_ID "MSP430"
|
||||
|
||||
# elif defined(__ICCV850__)
|
||||
# define ARCHITECTURE_ID "V850"
|
||||
|
||||
# elif defined(__ICC8051__)
|
||||
# define ARCHITECTURE_ID "8051"
|
||||
|
||||
# elif defined(__ICCSTM8__)
|
||||
# define ARCHITECTURE_ID "STM8"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__ghs__)
|
||||
# if defined(__PPC64__)
|
||||
# define ARCHITECTURE_ID "PPC64"
|
||||
|
||||
# elif defined(__ppc__)
|
||||
# define ARCHITECTURE_ID "PPC"
|
||||
|
||||
# elif defined(__ARM__)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# elif defined(__x86_64__)
|
||||
# define ARCHITECTURE_ID "x64"
|
||||
|
||||
# elif defined(__i386__)
|
||||
# define ARCHITECTURE_ID "X86"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__clang__) && defined(__ti__)
|
||||
# if defined(__ARM_ARCH)
|
||||
# define ARCHITECTURE_ID "Arm"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__TI_COMPILER_VERSION__)
|
||||
# if defined(__TI_ARM__)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# elif defined(__MSP430__)
|
||||
# define ARCHITECTURE_ID "MSP430"
|
||||
|
||||
# elif defined(__TMS320C28XX__)
|
||||
# define ARCHITECTURE_ID "TMS320C28x"
|
||||
|
||||
# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
|
||||
# define ARCHITECTURE_ID "TMS320C6x"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
# elif defined(__ADSPSHARC__)
|
||||
# define ARCHITECTURE_ID "SHARC"
|
||||
|
||||
# elif defined(__ADSPBLACKFIN__)
|
||||
# define ARCHITECTURE_ID "Blackfin"
|
||||
|
||||
#elif defined(__TASKING__)
|
||||
|
||||
# if defined(__CTC__) || defined(__CPTC__)
|
||||
# define ARCHITECTURE_ID "TriCore"
|
||||
|
||||
# elif defined(__CMCS__)
|
||||
# define ARCHITECTURE_ID "MCS"
|
||||
|
||||
# elif defined(__CARM__)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# elif defined(__CARC__)
|
||||
# define ARCHITECTURE_ID "ARC"
|
||||
|
||||
# elif defined(__C51__)
|
||||
# define ARCHITECTURE_ID "8051"
|
||||
|
||||
# elif defined(__CPCP__)
|
||||
# define ARCHITECTURE_ID "PCP"
|
||||
|
||||
# else
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#else
|
||||
# define ARCHITECTURE_ID
|
||||
#endif
|
||||
|
||||
/* Convert integer to decimal digit literals. */
|
||||
#define DEC(n) \
|
||||
('0' + (((n) / 10000000)%10)), \
|
||||
('0' + (((n) / 1000000)%10)), \
|
||||
('0' + (((n) / 100000)%10)), \
|
||||
('0' + (((n) / 10000)%10)), \
|
||||
('0' + (((n) / 1000)%10)), \
|
||||
('0' + (((n) / 100)%10)), \
|
||||
('0' + (((n) / 10)%10)), \
|
||||
('0' + ((n) % 10))
|
||||
|
||||
/* Convert integer to hex digit literals. */
|
||||
#define HEX(n) \
|
||||
('0' + ((n)>>28 & 0xF)), \
|
||||
('0' + ((n)>>24 & 0xF)), \
|
||||
('0' + ((n)>>20 & 0xF)), \
|
||||
('0' + ((n)>>16 & 0xF)), \
|
||||
('0' + ((n)>>12 & 0xF)), \
|
||||
('0' + ((n)>>8 & 0xF)), \
|
||||
('0' + ((n)>>4 & 0xF)), \
|
||||
('0' + ((n) & 0xF))
|
||||
|
||||
/* Construct a string literal encoding the version number. */
|
||||
#ifdef COMPILER_VERSION
|
||||
char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
|
||||
|
||||
/* Construct a string literal encoding the version number components. */
|
||||
#elif defined(COMPILER_VERSION_MAJOR)
|
||||
char const info_version[] = {
|
||||
'I', 'N', 'F', 'O', ':',
|
||||
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
|
||||
COMPILER_VERSION_MAJOR,
|
||||
# ifdef COMPILER_VERSION_MINOR
|
||||
'.', COMPILER_VERSION_MINOR,
|
||||
# ifdef COMPILER_VERSION_PATCH
|
||||
'.', COMPILER_VERSION_PATCH,
|
||||
# ifdef COMPILER_VERSION_TWEAK
|
||||
'.', COMPILER_VERSION_TWEAK,
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
']','\0'};
|
||||
#endif
|
||||
|
||||
/* Construct a string literal encoding the internal version number. */
|
||||
#ifdef COMPILER_VERSION_INTERNAL
|
||||
char const info_version_internal[] = {
|
||||
'I', 'N', 'F', 'O', ':',
|
||||
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
|
||||
'i','n','t','e','r','n','a','l','[',
|
||||
COMPILER_VERSION_INTERNAL,']','\0'};
|
||||
#elif defined(COMPILER_VERSION_INTERNAL_STR)
|
||||
char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
|
||||
#endif
|
||||
|
||||
/* Construct a string literal encoding the version number components. */
|
||||
#ifdef SIMULATE_VERSION_MAJOR
|
||||
char const info_simulate_version[] = {
|
||||
'I', 'N', 'F', 'O', ':',
|
||||
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
|
||||
SIMULATE_VERSION_MAJOR,
|
||||
# ifdef SIMULATE_VERSION_MINOR
|
||||
'.', SIMULATE_VERSION_MINOR,
|
||||
# ifdef SIMULATE_VERSION_PATCH
|
||||
'.', SIMULATE_VERSION_PATCH,
|
||||
# ifdef SIMULATE_VERSION_TWEAK
|
||||
'.', SIMULATE_VERSION_TWEAK,
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
']','\0'};
|
||||
#endif
|
||||
|
||||
/* Construct the string literal in pieces to prevent the source from
|
||||
getting matched. Store it in a pointer rather than an array
|
||||
because some compilers will just produce instructions to fill the
|
||||
array rather than assigning a pointer to a static array. */
|
||||
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
|
||||
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
|
||||
|
||||
|
||||
|
||||
#define C_STD_99 199901L
|
||||
#define C_STD_11 201112L
|
||||
#define C_STD_17 201710L
|
||||
#define C_STD_23 202311L
|
||||
|
||||
#ifdef __STDC_VERSION__
|
||||
# define C_STD __STDC_VERSION__
|
||||
#endif
|
||||
|
||||
#if !defined(__STDC__) && !defined(__clang__)
|
||||
# if defined(_MSC_VER) || defined(__ibmxl__) || defined(__IBMC__)
|
||||
# define C_VERSION "90"
|
||||
# else
|
||||
# define C_VERSION
|
||||
# endif
|
||||
#elif C_STD > C_STD_17
|
||||
# define C_VERSION "23"
|
||||
#elif C_STD > C_STD_11
|
||||
# define C_VERSION "17"
|
||||
#elif C_STD > C_STD_99
|
||||
# define C_VERSION "11"
|
||||
#elif C_STD >= C_STD_99
|
||||
# define C_VERSION "99"
|
||||
#else
|
||||
# define C_VERSION "90"
|
||||
#endif
|
||||
const char* info_language_standard_default =
|
||||
"INFO" ":" "standard_default[" C_VERSION "]";
|
||||
|
||||
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
|
||||
#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
|
||||
defined(__TI_COMPILER_VERSION__)) && \
|
||||
!defined(__STRICT_ANSI__)
|
||||
"ON"
|
||||
#else
|
||||
"OFF"
|
||||
#endif
|
||||
"]";
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef ID_VOID_MAIN
|
||||
void main() {}
|
||||
#else
|
||||
# if defined(__CLASSIC_C__)
|
||||
int main(argc, argv) int argc; char *argv[];
|
||||
# else
|
||||
int main(int argc, char* argv[])
|
||||
# endif
|
||||
{
|
||||
int require = 0;
|
||||
require += info_compiler[argc];
|
||||
require += info_platform[argc];
|
||||
require += info_arch[argc];
|
||||
#ifdef COMPILER_VERSION_MAJOR
|
||||
require += info_version[argc];
|
||||
#endif
|
||||
#ifdef COMPILER_VERSION_INTERNAL
|
||||
require += info_version_internal[argc];
|
||||
#endif
|
||||
#ifdef SIMULATE_ID
|
||||
require += info_simulate[argc];
|
||||
#endif
|
||||
#ifdef SIMULATE_VERSION_MAJOR
|
||||
require += info_simulate_version[argc];
|
||||
#endif
|
||||
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
|
||||
require += info_cray[argc];
|
||||
#endif
|
||||
require += info_language_standard_default[argc];
|
||||
require += info_language_extensions_default[argc];
|
||||
(void)argv;
|
||||
return require;
|
||||
}
|
||||
#endif
|
||||
Executable
BIN
Binary file not shown.
@@ -0,0 +1,919 @@
|
||||
/* This source file must have a .cpp extension so that all C++ compilers
|
||||
recognize the extension without flags. Borland does not know .cxx for
|
||||
example. */
|
||||
#ifndef __cplusplus
|
||||
# error "A C compiler has been selected for C++."
|
||||
#endif
|
||||
|
||||
#if !defined(__has_include)
|
||||
/* If the compiler does not have __has_include, pretend the answer is
|
||||
always no. */
|
||||
# define __has_include(x) 0
|
||||
#endif
|
||||
|
||||
|
||||
/* Version number components: V=Version, R=Revision, P=Patch
|
||||
Version date components: YYYY=Year, MM=Month, DD=Day */
|
||||
|
||||
#if defined(__INTEL_COMPILER) || defined(__ICC)
|
||||
# define COMPILER_ID "Intel"
|
||||
# if defined(_MSC_VER)
|
||||
# define SIMULATE_ID "MSVC"
|
||||
# endif
|
||||
# if defined(__GNUC__)
|
||||
# define SIMULATE_ID "GNU"
|
||||
# endif
|
||||
/* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later,
|
||||
except that a few beta releases use the old format with V=2021. */
|
||||
# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111
|
||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10)
|
||||
# if defined(__INTEL_COMPILER_UPDATE)
|
||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE)
|
||||
# else
|
||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10)
|
||||
# endif
|
||||
# else
|
||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER)
|
||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE)
|
||||
/* The third version component from --version is an update index,
|
||||
but no macro is provided for it. */
|
||||
# define COMPILER_VERSION_PATCH DEC(0)
|
||||
# endif
|
||||
# if defined(__INTEL_COMPILER_BUILD_DATE)
|
||||
/* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */
|
||||
# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE)
|
||||
# endif
|
||||
# if defined(_MSC_VER)
|
||||
/* _MSC_VER = VVRR */
|
||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# endif
|
||||
# if defined(__GNUC__)
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
||||
# elif defined(__GNUG__)
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
|
||||
# endif
|
||||
# if defined(__GNUC_MINOR__)
|
||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
||||
# endif
|
||||
# if defined(__GNUC_PATCHLEVEL__)
|
||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER)
|
||||
# define COMPILER_ID "IntelLLVM"
|
||||
#if defined(_MSC_VER)
|
||||
# define SIMULATE_ID "MSVC"
|
||||
#endif
|
||||
#if defined(__GNUC__)
|
||||
# define SIMULATE_ID "GNU"
|
||||
#endif
|
||||
/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and
|
||||
* later. Look for 6 digit vs. 8 digit version number to decide encoding.
|
||||
* VVVV is no smaller than the current year when a version is released.
|
||||
*/
|
||||
#if __INTEL_LLVM_COMPILER < 1000000L
|
||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10)
|
||||
#else
|
||||
# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100)
|
||||
#endif
|
||||
#if defined(_MSC_VER)
|
||||
/* _MSC_VER = VVRR */
|
||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
#endif
|
||||
#if defined(__GNUC__)
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
||||
#elif defined(__GNUG__)
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUG__)
|
||||
#endif
|
||||
#if defined(__GNUC_MINOR__)
|
||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
||||
#endif
|
||||
#if defined(__GNUC_PATCHLEVEL__)
|
||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
||||
#endif
|
||||
|
||||
#elif defined(__PATHCC__)
|
||||
# define COMPILER_ID "PathScale"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__PATHCC__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__)
|
||||
# if defined(__PATHCC_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__)
|
||||
# define COMPILER_ID "Embarcadero"
|
||||
# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF)
|
||||
# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF)
|
||||
# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF)
|
||||
|
||||
#elif defined(__BORLANDC__)
|
||||
# define COMPILER_ID "Borland"
|
||||
/* __BORLANDC__ = 0xVRR */
|
||||
# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8)
|
||||
# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF)
|
||||
|
||||
#elif defined(__WATCOMC__) && __WATCOMC__ < 1200
|
||||
# define COMPILER_ID "Watcom"
|
||||
/* __WATCOMC__ = VVRR */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
|
||||
# if (__WATCOMC__ % 10) > 0
|
||||
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
|
||||
# endif
|
||||
|
||||
#elif defined(__WATCOMC__)
|
||||
# define COMPILER_ID "OpenWatcom"
|
||||
/* __WATCOMC__ = VVRP + 1100 */
|
||||
# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10)
|
||||
# if (__WATCOMC__ % 10) > 0
|
||||
# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10)
|
||||
# endif
|
||||
|
||||
#elif defined(__SUNPRO_CC)
|
||||
# define COMPILER_ID "SunPro"
|
||||
# if __SUNPRO_CC >= 0x5100
|
||||
/* __SUNPRO_CC = 0xVRRP */
|
||||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12)
|
||||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF)
|
||||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
|
||||
# else
|
||||
/* __SUNPRO_CC = 0xVRP */
|
||||
# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8)
|
||||
# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF)
|
||||
# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF)
|
||||
# endif
|
||||
|
||||
#elif defined(__HP_aCC)
|
||||
# define COMPILER_ID "HP"
|
||||
/* __HP_aCC = VVRRPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100)
|
||||
|
||||
#elif defined(__DECCXX)
|
||||
# define COMPILER_ID "Compaq"
|
||||
/* __DECCXX_VER = VVRRTPPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000)
|
||||
|
||||
#elif defined(__IBMCPP__) && defined(__COMPILER_VER__)
|
||||
# define COMPILER_ID "zOS"
|
||||
/* __IBMCPP__ = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
|
||||
|
||||
#elif defined(__open_xl__) && defined(__clang__)
|
||||
# define COMPILER_ID "IBMClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
|
||||
# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
|
||||
|
||||
|
||||
#elif defined(__ibmxl__) && defined(__clang__)
|
||||
# define COMPILER_ID "XLClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__)
|
||||
# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__)
|
||||
|
||||
|
||||
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800
|
||||
# define COMPILER_ID "XL"
|
||||
/* __IBMCPP__ = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
|
||||
|
||||
#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800
|
||||
# define COMPILER_ID "VisualAge"
|
||||
/* __IBMCPP__ = VRP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10)
|
||||
|
||||
#elif defined(__NVCOMPILER)
|
||||
# define COMPILER_ID "NVHPC"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__)
|
||||
# if defined(__NVCOMPILER_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(__PGI)
|
||||
# define COMPILER_ID "PGI"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__PGIC__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__)
|
||||
# if defined(__PGIC_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(__clang__) && defined(__cray__)
|
||||
# define COMPILER_ID "CrayClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__cray_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__cray_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__cray_patchlevel__)
|
||||
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
|
||||
|
||||
|
||||
#elif defined(_CRAYC)
|
||||
# define COMPILER_ID "Cray"
|
||||
# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR)
|
||||
# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR)
|
||||
|
||||
#elif defined(__TI_COMPILER_VERSION__)
|
||||
# define COMPILER_ID "TI"
|
||||
/* __TI_COMPILER_VERSION__ = VVVRRRPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000)
|
||||
# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000)
|
||||
|
||||
#elif defined(__CLANG_FUJITSU)
|
||||
# define COMPILER_ID "FujitsuClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
|
||||
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
|
||||
|
||||
|
||||
#elif defined(__FUJITSU)
|
||||
# define COMPILER_ID "Fujitsu"
|
||||
# if defined(__FCC_version__)
|
||||
# define COMPILER_VERSION __FCC_version__
|
||||
# elif defined(__FCC_major__)
|
||||
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
|
||||
# endif
|
||||
# if defined(__fcc_version)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
|
||||
# elif defined(__FCC_VERSION)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
|
||||
# endif
|
||||
|
||||
|
||||
#elif defined(__ghs__)
|
||||
# define COMPILER_ID "GHS"
|
||||
/* __GHS_VERSION_NUMBER = VVVVRP */
|
||||
# ifdef __GHS_VERSION_NUMBER
|
||||
# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10)
|
||||
# endif
|
||||
|
||||
#elif defined(__TASKING__)
|
||||
# define COMPILER_ID "Tasking"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
|
||||
|
||||
#elif defined(__ORANGEC__)
|
||||
# define COMPILER_ID "OrangeC"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ORANGEC_MAJOR__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ORANGEC_MINOR__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ORANGEC_PATCHLEVEL__)
|
||||
|
||||
#elif defined(__SCO_VERSION__)
|
||||
# define COMPILER_ID "SCO"
|
||||
|
||||
#elif defined(__ARMCC_VERSION) && !defined(__clang__)
|
||||
# define COMPILER_ID "ARMCC"
|
||||
#if __ARMCC_VERSION >= 1000000
|
||||
/* __ARMCC_VERSION = VRRPPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
|
||||
#else
|
||||
/* __ARMCC_VERSION = VRPPPP */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000)
|
||||
#endif
|
||||
|
||||
|
||||
#elif defined(__clang__) && defined(__apple_build_version__)
|
||||
# define COMPILER_ID "AppleClang"
|
||||
# if defined(_MSC_VER)
|
||||
# define SIMULATE_ID "MSVC"
|
||||
# endif
|
||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
|
||||
# if defined(_MSC_VER)
|
||||
/* _MSC_VER = VVRR */
|
||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# endif
|
||||
# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__)
|
||||
|
||||
#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION)
|
||||
# define COMPILER_ID "ARMClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION/100 % 100)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION)
|
||||
|
||||
#elif defined(__clang__) && defined(__ti__)
|
||||
# define COMPILER_ID "TIClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__ti_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__ti_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__ti_patchlevel__)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__ti_version__)
|
||||
|
||||
#elif defined(__clang__)
|
||||
# define COMPILER_ID "Clang"
|
||||
# if defined(_MSC_VER)
|
||||
# define SIMULATE_ID "MSVC"
|
||||
# endif
|
||||
# define COMPILER_VERSION_MAJOR DEC(__clang_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__clang_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__)
|
||||
# if defined(_MSC_VER)
|
||||
/* _MSC_VER = VVRR */
|
||||
# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# endif
|
||||
|
||||
#elif defined(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
|
||||
# define COMPILER_ID "LCC"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__LCC__ / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC(__LCC__ % 100)
|
||||
# if defined(__LCC_MINOR__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
|
||||
# endif
|
||||
# if defined(__GNUC__) && defined(__GNUC_MINOR__)
|
||||
# define SIMULATE_ID "GNU"
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
||||
# if defined(__GNUC_PATCHLEVEL__)
|
||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
||||
# endif
|
||||
# endif
|
||||
|
||||
#elif defined(__GNUC__) || defined(__GNUG__)
|
||||
# define COMPILER_ID "GNU"
|
||||
# if defined(__GNUC__)
|
||||
# define COMPILER_VERSION_MAJOR DEC(__GNUC__)
|
||||
# else
|
||||
# define COMPILER_VERSION_MAJOR DEC(__GNUG__)
|
||||
# endif
|
||||
# if defined(__GNUC_MINOR__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__)
|
||||
# endif
|
||||
# if defined(__GNUC_PATCHLEVEL__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
||||
# endif
|
||||
|
||||
#elif defined(_MSC_VER)
|
||||
# define COMPILER_ID "MSVC"
|
||||
/* _MSC_VER = VVRR */
|
||||
# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100)
|
||||
# if defined(_MSC_FULL_VER)
|
||||
# if _MSC_VER >= 1400
|
||||
/* _MSC_FULL_VER = VVRRPPPPP */
|
||||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000)
|
||||
# else
|
||||
/* _MSC_FULL_VER = VVRRPPPP */
|
||||
# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000)
|
||||
# endif
|
||||
# endif
|
||||
# if defined(_MSC_BUILD)
|
||||
# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD)
|
||||
# endif
|
||||
|
||||
#elif defined(_ADI_COMPILER)
|
||||
# define COMPILER_ID "ADSP"
|
||||
#if defined(__VERSIONNUM__)
|
||||
/* __VERSIONNUM__ = 0xVVRRPPTT */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
|
||||
# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
|
||||
# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
|
||||
# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 0xFF)
|
||||
#endif
|
||||
|
||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
|
||||
# define COMPILER_ID "IAR"
|
||||
# if defined(__VER__) && defined(__ICCARM__)
|
||||
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000)
|
||||
# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000)
|
||||
# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
|
||||
# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__))
|
||||
# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100)
|
||||
# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100))
|
||||
# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__)
|
||||
# endif
|
||||
|
||||
|
||||
/* These compilers are either not known or too old to define an
|
||||
identification macro. Try to identify the platform and guess that
|
||||
it is the native compiler. */
|
||||
#elif defined(__hpux) || defined(__hpua)
|
||||
# define COMPILER_ID "HP"
|
||||
|
||||
#else /* unknown compiler */
|
||||
# define COMPILER_ID ""
|
||||
#endif
|
||||
|
||||
/* Construct the string literal in pieces to prevent the source from
|
||||
getting matched. Store it in a pointer rather than an array
|
||||
because some compilers will just produce instructions to fill the
|
||||
array rather than assigning a pointer to a static array. */
|
||||
char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]";
|
||||
#ifdef SIMULATE_ID
|
||||
char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]";
|
||||
#endif
|
||||
|
||||
#ifdef __QNXNTO__
|
||||
char const* qnxnto = "INFO" ":" "qnxnto[]";
|
||||
#endif
|
||||
|
||||
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
|
||||
char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]";
|
||||
#endif
|
||||
|
||||
#define STRINGIFY_HELPER(X) #X
|
||||
#define STRINGIFY(X) STRINGIFY_HELPER(X)
|
||||
|
||||
/* Identify known platforms by name. */
|
||||
#if defined(__linux) || defined(__linux__) || defined(linux)
|
||||
# define PLATFORM_ID "Linux"
|
||||
|
||||
#elif defined(__MSYS__)
|
||||
# define PLATFORM_ID "MSYS"
|
||||
|
||||
#elif defined(__CYGWIN__)
|
||||
# define PLATFORM_ID "Cygwin"
|
||||
|
||||
#elif defined(__MINGW32__)
|
||||
# define PLATFORM_ID "MinGW"
|
||||
|
||||
#elif defined(__APPLE__)
|
||||
# define PLATFORM_ID "Darwin"
|
||||
|
||||
#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32)
|
||||
# define PLATFORM_ID "Windows"
|
||||
|
||||
#elif defined(__FreeBSD__) || defined(__FreeBSD)
|
||||
# define PLATFORM_ID "FreeBSD"
|
||||
|
||||
#elif defined(__NetBSD__) || defined(__NetBSD)
|
||||
# define PLATFORM_ID "NetBSD"
|
||||
|
||||
#elif defined(__OpenBSD__) || defined(__OPENBSD)
|
||||
# define PLATFORM_ID "OpenBSD"
|
||||
|
||||
#elif defined(__sun) || defined(sun)
|
||||
# define PLATFORM_ID "SunOS"
|
||||
|
||||
#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__)
|
||||
# define PLATFORM_ID "AIX"
|
||||
|
||||
#elif defined(__hpux) || defined(__hpux__)
|
||||
# define PLATFORM_ID "HP-UX"
|
||||
|
||||
#elif defined(__HAIKU__)
|
||||
# define PLATFORM_ID "Haiku"
|
||||
|
||||
#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS)
|
||||
# define PLATFORM_ID "BeOS"
|
||||
|
||||
#elif defined(__QNX__) || defined(__QNXNTO__)
|
||||
# define PLATFORM_ID "QNX"
|
||||
|
||||
#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__)
|
||||
# define PLATFORM_ID "Tru64"
|
||||
|
||||
#elif defined(__riscos) || defined(__riscos__)
|
||||
# define PLATFORM_ID "RISCos"
|
||||
|
||||
#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__)
|
||||
# define PLATFORM_ID "SINIX"
|
||||
|
||||
#elif defined(__UNIX_SV__)
|
||||
# define PLATFORM_ID "UNIX_SV"
|
||||
|
||||
#elif defined(__bsdos__)
|
||||
# define PLATFORM_ID "BSDOS"
|
||||
|
||||
#elif defined(_MPRAS) || defined(MPRAS)
|
||||
# define PLATFORM_ID "MP-RAS"
|
||||
|
||||
#elif defined(__osf) || defined(__osf__)
|
||||
# define PLATFORM_ID "OSF1"
|
||||
|
||||
#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv)
|
||||
# define PLATFORM_ID "SCO_SV"
|
||||
|
||||
#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX)
|
||||
# define PLATFORM_ID "ULTRIX"
|
||||
|
||||
#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX)
|
||||
# define PLATFORM_ID "Xenix"
|
||||
|
||||
#elif defined(__WATCOMC__)
|
||||
# if defined(__LINUX__)
|
||||
# define PLATFORM_ID "Linux"
|
||||
|
||||
# elif defined(__DOS__)
|
||||
# define PLATFORM_ID "DOS"
|
||||
|
||||
# elif defined(__OS2__)
|
||||
# define PLATFORM_ID "OS2"
|
||||
|
||||
# elif defined(__WINDOWS__)
|
||||
# define PLATFORM_ID "Windows3x"
|
||||
|
||||
# elif defined(__VXWORKS__)
|
||||
# define PLATFORM_ID "VxWorks"
|
||||
|
||||
# else /* unknown platform */
|
||||
# define PLATFORM_ID
|
||||
# endif
|
||||
|
||||
#elif defined(__INTEGRITY)
|
||||
# if defined(INT_178B)
|
||||
# define PLATFORM_ID "Integrity178"
|
||||
|
||||
# else /* regular Integrity */
|
||||
# define PLATFORM_ID "Integrity"
|
||||
# endif
|
||||
|
||||
# elif defined(_ADI_COMPILER)
|
||||
# define PLATFORM_ID "ADSP"
|
||||
|
||||
#else /* unknown platform */
|
||||
# define PLATFORM_ID
|
||||
|
||||
#endif
|
||||
|
||||
/* For windows compilers MSVC and Intel we can determine
|
||||
the architecture of the compiler being used. This is because
|
||||
the compilers do not have flags that can change the architecture,
|
||||
but rather depend on which compiler is being used
|
||||
*/
|
||||
#if defined(_WIN32) && defined(_MSC_VER)
|
||||
# if defined(_M_IA64)
|
||||
# define ARCHITECTURE_ID "IA64"
|
||||
|
||||
# elif defined(_M_ARM64EC)
|
||||
# define ARCHITECTURE_ID "ARM64EC"
|
||||
|
||||
# elif defined(_M_X64) || defined(_M_AMD64)
|
||||
# define ARCHITECTURE_ID "x64"
|
||||
|
||||
# elif defined(_M_IX86)
|
||||
# define ARCHITECTURE_ID "X86"
|
||||
|
||||
# elif defined(_M_ARM64)
|
||||
# define ARCHITECTURE_ID "ARM64"
|
||||
|
||||
# elif defined(_M_ARM)
|
||||
# if _M_ARM == 4
|
||||
# define ARCHITECTURE_ID "ARMV4I"
|
||||
# elif _M_ARM == 5
|
||||
# define ARCHITECTURE_ID "ARMV5I"
|
||||
# else
|
||||
# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM)
|
||||
# endif
|
||||
|
||||
# elif defined(_M_MIPS)
|
||||
# define ARCHITECTURE_ID "MIPS"
|
||||
|
||||
# elif defined(_M_SH)
|
||||
# define ARCHITECTURE_ID "SHx"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__WATCOMC__)
|
||||
# if defined(_M_I86)
|
||||
# define ARCHITECTURE_ID "I86"
|
||||
|
||||
# elif defined(_M_IX86)
|
||||
# define ARCHITECTURE_ID "X86"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC)
|
||||
# if defined(__ICCARM__)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# elif defined(__ICCRX__)
|
||||
# define ARCHITECTURE_ID "RX"
|
||||
|
||||
# elif defined(__ICCRH850__)
|
||||
# define ARCHITECTURE_ID "RH850"
|
||||
|
||||
# elif defined(__ICCRL78__)
|
||||
# define ARCHITECTURE_ID "RL78"
|
||||
|
||||
# elif defined(__ICCRISCV__)
|
||||
# define ARCHITECTURE_ID "RISCV"
|
||||
|
||||
# elif defined(__ICCAVR__)
|
||||
# define ARCHITECTURE_ID "AVR"
|
||||
|
||||
# elif defined(__ICC430__)
|
||||
# define ARCHITECTURE_ID "MSP430"
|
||||
|
||||
# elif defined(__ICCV850__)
|
||||
# define ARCHITECTURE_ID "V850"
|
||||
|
||||
# elif defined(__ICC8051__)
|
||||
# define ARCHITECTURE_ID "8051"
|
||||
|
||||
# elif defined(__ICCSTM8__)
|
||||
# define ARCHITECTURE_ID "STM8"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__ghs__)
|
||||
# if defined(__PPC64__)
|
||||
# define ARCHITECTURE_ID "PPC64"
|
||||
|
||||
# elif defined(__ppc__)
|
||||
# define ARCHITECTURE_ID "PPC"
|
||||
|
||||
# elif defined(__ARM__)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# elif defined(__x86_64__)
|
||||
# define ARCHITECTURE_ID "x64"
|
||||
|
||||
# elif defined(__i386__)
|
||||
# define ARCHITECTURE_ID "X86"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__clang__) && defined(__ti__)
|
||||
# if defined(__ARM_ARCH)
|
||||
# define ARCHITECTURE_ID "Arm"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#elif defined(__TI_COMPILER_VERSION__)
|
||||
# if defined(__TI_ARM__)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# elif defined(__MSP430__)
|
||||
# define ARCHITECTURE_ID "MSP430"
|
||||
|
||||
# elif defined(__TMS320C28XX__)
|
||||
# define ARCHITECTURE_ID "TMS320C28x"
|
||||
|
||||
# elif defined(__TMS320C6X__) || defined(_TMS320C6X)
|
||||
# define ARCHITECTURE_ID "TMS320C6x"
|
||||
|
||||
# else /* unknown architecture */
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
# elif defined(__ADSPSHARC__)
|
||||
# define ARCHITECTURE_ID "SHARC"
|
||||
|
||||
# elif defined(__ADSPBLACKFIN__)
|
||||
# define ARCHITECTURE_ID "Blackfin"
|
||||
|
||||
#elif defined(__TASKING__)
|
||||
|
||||
# if defined(__CTC__) || defined(__CPTC__)
|
||||
# define ARCHITECTURE_ID "TriCore"
|
||||
|
||||
# elif defined(__CMCS__)
|
||||
# define ARCHITECTURE_ID "MCS"
|
||||
|
||||
# elif defined(__CARM__)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# elif defined(__CARC__)
|
||||
# define ARCHITECTURE_ID "ARC"
|
||||
|
||||
# elif defined(__C51__)
|
||||
# define ARCHITECTURE_ID "8051"
|
||||
|
||||
# elif defined(__CPCP__)
|
||||
# define ARCHITECTURE_ID "PCP"
|
||||
|
||||
# else
|
||||
# define ARCHITECTURE_ID ""
|
||||
# endif
|
||||
|
||||
#else
|
||||
# define ARCHITECTURE_ID
|
||||
#endif
|
||||
|
||||
/* Convert integer to decimal digit literals. */
|
||||
#define DEC(n) \
|
||||
('0' + (((n) / 10000000)%10)), \
|
||||
('0' + (((n) / 1000000)%10)), \
|
||||
('0' + (((n) / 100000)%10)), \
|
||||
('0' + (((n) / 10000)%10)), \
|
||||
('0' + (((n) / 1000)%10)), \
|
||||
('0' + (((n) / 100)%10)), \
|
||||
('0' + (((n) / 10)%10)), \
|
||||
('0' + ((n) % 10))
|
||||
|
||||
/* Convert integer to hex digit literals. */
|
||||
#define HEX(n) \
|
||||
('0' + ((n)>>28 & 0xF)), \
|
||||
('0' + ((n)>>24 & 0xF)), \
|
||||
('0' + ((n)>>20 & 0xF)), \
|
||||
('0' + ((n)>>16 & 0xF)), \
|
||||
('0' + ((n)>>12 & 0xF)), \
|
||||
('0' + ((n)>>8 & 0xF)), \
|
||||
('0' + ((n)>>4 & 0xF)), \
|
||||
('0' + ((n) & 0xF))
|
||||
|
||||
/* Construct a string literal encoding the version number. */
|
||||
#ifdef COMPILER_VERSION
|
||||
char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
|
||||
|
||||
/* Construct a string literal encoding the version number components. */
|
||||
#elif defined(COMPILER_VERSION_MAJOR)
|
||||
char const info_version[] = {
|
||||
'I', 'N', 'F', 'O', ':',
|
||||
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[',
|
||||
COMPILER_VERSION_MAJOR,
|
||||
# ifdef COMPILER_VERSION_MINOR
|
||||
'.', COMPILER_VERSION_MINOR,
|
||||
# ifdef COMPILER_VERSION_PATCH
|
||||
'.', COMPILER_VERSION_PATCH,
|
||||
# ifdef COMPILER_VERSION_TWEAK
|
||||
'.', COMPILER_VERSION_TWEAK,
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
']','\0'};
|
||||
#endif
|
||||
|
||||
/* Construct a string literal encoding the internal version number. */
|
||||
#ifdef COMPILER_VERSION_INTERNAL
|
||||
char const info_version_internal[] = {
|
||||
'I', 'N', 'F', 'O', ':',
|
||||
'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_',
|
||||
'i','n','t','e','r','n','a','l','[',
|
||||
COMPILER_VERSION_INTERNAL,']','\0'};
|
||||
#elif defined(COMPILER_VERSION_INTERNAL_STR)
|
||||
char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
|
||||
#endif
|
||||
|
||||
/* Construct a string literal encoding the version number components. */
|
||||
#ifdef SIMULATE_VERSION_MAJOR
|
||||
char const info_simulate_version[] = {
|
||||
'I', 'N', 'F', 'O', ':',
|
||||
's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[',
|
||||
SIMULATE_VERSION_MAJOR,
|
||||
# ifdef SIMULATE_VERSION_MINOR
|
||||
'.', SIMULATE_VERSION_MINOR,
|
||||
# ifdef SIMULATE_VERSION_PATCH
|
||||
'.', SIMULATE_VERSION_PATCH,
|
||||
# ifdef SIMULATE_VERSION_TWEAK
|
||||
'.', SIMULATE_VERSION_TWEAK,
|
||||
# endif
|
||||
# endif
|
||||
# endif
|
||||
']','\0'};
|
||||
#endif
|
||||
|
||||
/* Construct the string literal in pieces to prevent the source from
|
||||
getting matched. Store it in a pointer rather than an array
|
||||
because some compilers will just produce instructions to fill the
|
||||
array rather than assigning a pointer to a static array. */
|
||||
char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]";
|
||||
char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]";
|
||||
|
||||
|
||||
|
||||
#define CXX_STD_98 199711L
|
||||
#define CXX_STD_11 201103L
|
||||
#define CXX_STD_14 201402L
|
||||
#define CXX_STD_17 201703L
|
||||
#define CXX_STD_20 202002L
|
||||
#define CXX_STD_23 202302L
|
||||
|
||||
#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG)
|
||||
# if _MSVC_LANG > CXX_STD_17
|
||||
# define CXX_STD _MSVC_LANG
|
||||
# elif _MSVC_LANG == CXX_STD_17 && defined(__cpp_aggregate_paren_init)
|
||||
# define CXX_STD CXX_STD_20
|
||||
# elif _MSVC_LANG > CXX_STD_14 && __cplusplus > CXX_STD_17
|
||||
# define CXX_STD CXX_STD_20
|
||||
# elif _MSVC_LANG > CXX_STD_14
|
||||
# define CXX_STD CXX_STD_17
|
||||
# elif defined(__INTEL_CXX11_MODE__) && defined(__cpp_aggregate_nsdmi)
|
||||
# define CXX_STD CXX_STD_14
|
||||
# elif defined(__INTEL_CXX11_MODE__)
|
||||
# define CXX_STD CXX_STD_11
|
||||
# else
|
||||
# define CXX_STD CXX_STD_98
|
||||
# endif
|
||||
#elif defined(_MSC_VER) && defined(_MSVC_LANG)
|
||||
# if _MSVC_LANG > __cplusplus
|
||||
# define CXX_STD _MSVC_LANG
|
||||
# else
|
||||
# define CXX_STD __cplusplus
|
||||
# endif
|
||||
#elif defined(__NVCOMPILER)
|
||||
# if __cplusplus == CXX_STD_17 && defined(__cpp_aggregate_paren_init)
|
||||
# define CXX_STD CXX_STD_20
|
||||
# else
|
||||
# define CXX_STD __cplusplus
|
||||
# endif
|
||||
#elif defined(__INTEL_COMPILER) || defined(__PGI)
|
||||
# if __cplusplus == CXX_STD_11 && defined(__cpp_namespace_attributes)
|
||||
# define CXX_STD CXX_STD_17
|
||||
# elif __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi)
|
||||
# define CXX_STD CXX_STD_14
|
||||
# else
|
||||
# define CXX_STD __cplusplus
|
||||
# endif
|
||||
#elif (defined(__IBMCPP__) || defined(__ibmxl__)) && defined(__linux__)
|
||||
# if __cplusplus == CXX_STD_11 && defined(__cpp_aggregate_nsdmi)
|
||||
# define CXX_STD CXX_STD_14
|
||||
# else
|
||||
# define CXX_STD __cplusplus
|
||||
# endif
|
||||
#elif __cplusplus == 1 && defined(__GXX_EXPERIMENTAL_CXX0X__)
|
||||
# define CXX_STD CXX_STD_11
|
||||
#else
|
||||
# define CXX_STD __cplusplus
|
||||
#endif
|
||||
|
||||
const char* info_language_standard_default = "INFO" ":" "standard_default["
|
||||
#if CXX_STD > CXX_STD_23
|
||||
"26"
|
||||
#elif CXX_STD > CXX_STD_20
|
||||
"23"
|
||||
#elif CXX_STD > CXX_STD_17
|
||||
"20"
|
||||
#elif CXX_STD > CXX_STD_14
|
||||
"17"
|
||||
#elif CXX_STD > CXX_STD_11
|
||||
"14"
|
||||
#elif CXX_STD >= CXX_STD_11
|
||||
"11"
|
||||
#else
|
||||
"98"
|
||||
#endif
|
||||
"]";
|
||||
|
||||
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
|
||||
#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
|
||||
defined(__TI_COMPILER_VERSION__)) && \
|
||||
!defined(__STRICT_ANSI__)
|
||||
"ON"
|
||||
#else
|
||||
"OFF"
|
||||
#endif
|
||||
"]";
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
int require = 0;
|
||||
require += info_compiler[argc];
|
||||
require += info_platform[argc];
|
||||
require += info_arch[argc];
|
||||
#ifdef COMPILER_VERSION_MAJOR
|
||||
require += info_version[argc];
|
||||
#endif
|
||||
#ifdef COMPILER_VERSION_INTERNAL
|
||||
require += info_version_internal[argc];
|
||||
#endif
|
||||
#ifdef SIMULATE_ID
|
||||
require += info_simulate[argc];
|
||||
#endif
|
||||
#ifdef SIMULATE_VERSION_MAJOR
|
||||
require += info_simulate_version[argc];
|
||||
#endif
|
||||
#if defined(__CRAYXT_COMPUTE_LINUX_TARGET)
|
||||
require += info_cray[argc];
|
||||
#endif
|
||||
require += info_language_standard_default[argc];
|
||||
require += info_language_extensions_default[argc];
|
||||
(void)argv;
|
||||
return require;
|
||||
}
|
||||
Executable
BIN
Binary file not shown.
@@ -0,0 +1,516 @@
|
||||
|
||||
---
|
||||
events:
|
||||
-
|
||||
kind: "message-v1"
|
||||
backtrace:
|
||||
- "/usr/share/cmake/Modules/CMakeDetermineSystem.cmake:205 (message)"
|
||||
- "CMakeLists.txt:2 (project)"
|
||||
message: |
|
||||
The system is: Linux - 6.12.7-zen1-1-zen - x86_64
|
||||
-
|
||||
kind: "message-v1"
|
||||
backtrace:
|
||||
- "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:17 (message)"
|
||||
- "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)"
|
||||
- "/usr/share/cmake/Modules/CMakeDetermineCCompiler.cmake:123 (CMAKE_DETERMINE_COMPILER_ID)"
|
||||
- "CMakeLists.txt:2 (project)"
|
||||
message: |
|
||||
Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded.
|
||||
Compiler: /usr/bin/cc
|
||||
Build flags:
|
||||
Id flags:
|
||||
|
||||
The output was:
|
||||
0
|
||||
|
||||
|
||||
Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out"
|
||||
|
||||
The C compiler identification is GNU, found in:
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/3.31.3/CompilerIdC/a.out
|
||||
|
||||
-
|
||||
kind: "message-v1"
|
||||
backtrace:
|
||||
- "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:17 (message)"
|
||||
- "/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake:64 (__determine_compiler_id_test)"
|
||||
- "/usr/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake:126 (CMAKE_DETERMINE_COMPILER_ID)"
|
||||
- "CMakeLists.txt:2 (project)"
|
||||
message: |
|
||||
Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded.
|
||||
Compiler: /usr/bin/c++
|
||||
Build flags:
|
||||
Id flags:
|
||||
|
||||
The output was:
|
||||
0
|
||||
|
||||
|
||||
Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out"
|
||||
|
||||
The CXX compiler identification is GNU, found in:
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/3.31.3/CompilerIdCXX/a.out
|
||||
|
||||
-
|
||||
kind: "try_compile-v1"
|
||||
backtrace:
|
||||
- "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)"
|
||||
- "/usr/share/cmake/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
|
||||
- "CMakeLists.txt:2 (project)"
|
||||
checks:
|
||||
- "Detecting C compiler ABI info"
|
||||
directories:
|
||||
source: "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/CMakeScratch/TryCompile-qD6kqS"
|
||||
binary: "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/CMakeScratch/TryCompile-qD6kqS"
|
||||
cmakeVariables:
|
||||
CMAKE_C_FLAGS: ""
|
||||
CMAKE_EXE_LINKER_FLAGS: ""
|
||||
buildResult:
|
||||
variable: "CMAKE_C_ABI_COMPILED"
|
||||
cached: true
|
||||
stdout: |
|
||||
Change Dir: '/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/CMakeScratch/TryCompile-qD6kqS'
|
||||
|
||||
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_781ad/fast
|
||||
/usr/bin/make -f CMakeFiles/cmTC_781ad.dir/build.make CMakeFiles/cmTC_781ad.dir/build
|
||||
make[1]: Entering directory '/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/CMakeScratch/TryCompile-qD6kqS'
|
||||
Building C object CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.o
|
||||
/usr/bin/cc -v -o CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake/Modules/CMakeCCompilerABI.c
|
||||
Using built-in specs.
|
||||
COLLECT_GCC=/usr/bin/cc
|
||||
Target: x86_64-pc-linux-gnu
|
||||
Configured with: /build/gcc/src/gcc/configure --enable-languages=ada,c,c++,d,fortran,go,lto,m2,objc,obj-c++,rust --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror
|
||||
Thread model: posix
|
||||
Supported LTO compression algorithms: zlib zstd
|
||||
gcc version 14.2.1 20240910 (GCC)
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_781ad.dir/'
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/cc1 -quiet -v /usr/share/cmake/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_781ad.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -o /tmp/ccgfzPsy.s
|
||||
GNU C17 (GCC) version 14.2.1 20240910 (x86_64-pc-linux-gnu)
|
||||
compiled by GNU C version 14.2.1 20240910, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.27-GMP
|
||||
|
||||
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
|
||||
ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../x86_64-pc-linux-gnu/include"
|
||||
#include "..." search starts here:
|
||||
#include <...> search starts here:
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include
|
||||
/usr/local/include
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed
|
||||
/usr/include
|
||||
End of search list.
|
||||
Compiler executable checksum: 91e980a230f7d2e39f93577991713edd
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_781ad.dir/'
|
||||
as -v --64 -o CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.o /tmp/ccgfzPsy.s
|
||||
GNU assembler version 2.43.0 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.43.0
|
||||
COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/
|
||||
LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.'
|
||||
Linking C executable cmTC_781ad
|
||||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_781ad.dir/link.txt --verbose=1
|
||||
Using built-in specs.
|
||||
COLLECT_GCC=/usr/bin/cc
|
||||
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper
|
||||
Target: x86_64-pc-linux-gnu
|
||||
Configured with: /build/gcc/src/gcc/configure --enable-languages=ada,c,c++,d,fortran,go,lto,m2,objc,obj-c++,rust --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror
|
||||
Thread model: posix
|
||||
Supported LTO compression algorithms: zlib zstd
|
||||
gcc version 14.2.1 20240910 (GCC)
|
||||
COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/
|
||||
LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_781ad' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_781ad.'
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccaRqoWZ.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_781ad /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../.. -v CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o
|
||||
collect2 version 14.2.1 20240910
|
||||
/usr/bin/ld -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccaRqoWZ.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_781ad /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../.. -v CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o
|
||||
GNU ld (GNU Binutils) 2.43.0
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_781ad' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_781ad.'
|
||||
/usr/bin/cc -v -Wl,-v CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.o -o cmTC_781ad
|
||||
make[1]: Leaving directory '/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/CMakeScratch/TryCompile-qD6kqS'
|
||||
|
||||
exitCode: 0
|
||||
-
|
||||
kind: "message-v1"
|
||||
backtrace:
|
||||
- "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:182 (message)"
|
||||
- "/usr/share/cmake/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
|
||||
- "CMakeLists.txt:2 (project)"
|
||||
message: |
|
||||
Parsed C implicit include dir info: rv=done
|
||||
found start of include info
|
||||
found start of implicit include info
|
||||
add: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include]
|
||||
add: [/usr/local/include]
|
||||
add: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed]
|
||||
add: [/usr/include]
|
||||
end of search list found
|
||||
collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include]
|
||||
collapse include dir [/usr/local/include] ==> [/usr/local/include]
|
||||
collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed]
|
||||
collapse include dir [/usr/include] ==> [/usr/include]
|
||||
implicit include dirs: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include;/usr/local/include;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed;/usr/include]
|
||||
|
||||
|
||||
-
|
||||
kind: "message-v1"
|
||||
backtrace:
|
||||
- "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:218 (message)"
|
||||
- "/usr/share/cmake/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
|
||||
- "CMakeLists.txt:2 (project)"
|
||||
message: |
|
||||
Parsed C implicit link information:
|
||||
link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
|
||||
linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)]
|
||||
ignore line: [Change Dir: '/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/CMakeScratch/TryCompile-qD6kqS']
|
||||
ignore line: []
|
||||
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_781ad/fast]
|
||||
ignore line: [/usr/bin/make -f CMakeFiles/cmTC_781ad.dir/build.make CMakeFiles/cmTC_781ad.dir/build]
|
||||
ignore line: [make[1]: Entering directory '/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/CMakeScratch/TryCompile-qD6kqS']
|
||||
ignore line: [Building C object CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.o]
|
||||
ignore line: [/usr/bin/cc -v -o CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.o -c /usr/share/cmake/Modules/CMakeCCompilerABI.c]
|
||||
ignore line: [Using built-in specs.]
|
||||
ignore line: [COLLECT_GCC=/usr/bin/cc]
|
||||
ignore line: [Target: x86_64-pc-linux-gnu]
|
||||
ignore line: [Configured with: /build/gcc/src/gcc/configure --enable-languages=ada c c++ d fortran go lto m2 objc obj-c++ rust --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror]
|
||||
ignore line: [Thread model: posix]
|
||||
ignore line: [Supported LTO compression algorithms: zlib zstd]
|
||||
ignore line: [gcc version 14.2.1 20240910 (GCC) ]
|
||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_781ad.dir/']
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/cc1 -quiet -v /usr/share/cmake/Modules/CMakeCCompilerABI.c -quiet -dumpdir CMakeFiles/cmTC_781ad.dir/ -dumpbase CMakeCCompilerABI.c.c -dumpbase-ext .c -mtune=generic -march=x86-64 -version -o /tmp/ccgfzPsy.s]
|
||||
ignore line: [GNU C17 (GCC) version 14.2.1 20240910 (x86_64-pc-linux-gnu)]
|
||||
ignore line: [ compiled by GNU C version 14.2.1 20240910 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.27-GMP]
|
||||
ignore line: []
|
||||
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
|
||||
ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../x86_64-pc-linux-gnu/include"]
|
||||
ignore line: [#include "..." search starts here:]
|
||||
ignore line: [#include <...> search starts here:]
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include]
|
||||
ignore line: [ /usr/local/include]
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed]
|
||||
ignore line: [ /usr/include]
|
||||
ignore line: [End of search list.]
|
||||
ignore line: [Compiler executable checksum: 91e980a230f7d2e39f93577991713edd]
|
||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_781ad.dir/']
|
||||
ignore line: [ as -v --64 -o CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.o /tmp/ccgfzPsy.s]
|
||||
ignore line: [GNU assembler version 2.43.0 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.43.0]
|
||||
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/]
|
||||
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/]
|
||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.']
|
||||
ignore line: [Linking C executable cmTC_781ad]
|
||||
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_781ad.dir/link.txt --verbose=1]
|
||||
ignore line: [Using built-in specs.]
|
||||
ignore line: [COLLECT_GCC=/usr/bin/cc]
|
||||
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper]
|
||||
ignore line: [Target: x86_64-pc-linux-gnu]
|
||||
ignore line: [Configured with: /build/gcc/src/gcc/configure --enable-languages=ada c c++ d fortran go lto m2 objc obj-c++ rust --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror]
|
||||
ignore line: [Thread model: posix]
|
||||
ignore line: [Supported LTO compression algorithms: zlib zstd]
|
||||
ignore line: [gcc version 14.2.1 20240910 (GCC) ]
|
||||
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/]
|
||||
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/]
|
||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_781ad' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_781ad.']
|
||||
link line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccaRqoWZ.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_781ad /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../.. -v CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o]
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/collect2] ==> ignore
|
||||
arg [-plugin] ==> ignore
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so] ==> ignore
|
||||
arg [-plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper] ==> ignore
|
||||
arg [-plugin-opt=-fresolution=/tmp/ccaRqoWZ.res] ==> ignore
|
||||
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
|
||||
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
|
||||
arg [-plugin-opt=-pass-through=-lc] ==> ignore
|
||||
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
|
||||
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
|
||||
arg [--build-id] ==> ignore
|
||||
arg [--eh-frame-hdr] ==> ignore
|
||||
arg [--hash-style=gnu] ==> ignore
|
||||
arg [-m] ==> ignore
|
||||
arg [elf_x86_64] ==> ignore
|
||||
arg [-dynamic-linker] ==> ignore
|
||||
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
|
||||
arg [-pie] ==> ignore
|
||||
arg [-o] ==> ignore
|
||||
arg [cmTC_781ad] ==> ignore
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o]
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o]
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o]
|
||||
arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1]
|
||||
arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib]
|
||||
arg [-L/lib/../lib] ==> dir [/lib/../lib]
|
||||
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
|
||||
arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../..] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../..]
|
||||
arg [-v] ==> ignore
|
||||
arg [CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.o] ==> ignore
|
||||
arg [-lgcc] ==> lib [gcc]
|
||||
arg [--push-state] ==> ignore
|
||||
arg [--as-needed] ==> ignore
|
||||
arg [-lgcc_s] ==> lib [gcc_s]
|
||||
arg [--pop-state] ==> ignore
|
||||
arg [-lc] ==> lib [c]
|
||||
arg [-lgcc] ==> lib [gcc]
|
||||
arg [--push-state] ==> ignore
|
||||
arg [--as-needed] ==> ignore
|
||||
arg [-lgcc_s] ==> lib [gcc_s]
|
||||
arg [--pop-state] ==> ignore
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o]
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o]
|
||||
ignore line: [collect2 version 14.2.1 20240910]
|
||||
ignore line: [/usr/bin/ld -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccaRqoWZ.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_781ad /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../.. -v CMakeFiles/cmTC_781ad.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o]
|
||||
linker tool for 'C': /usr/bin/ld
|
||||
collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o] ==> [/usr/lib/Scrt1.o]
|
||||
collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o] ==> [/usr/lib/crti.o]
|
||||
collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o] ==> [/usr/lib/crtn.o]
|
||||
collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1]
|
||||
collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib] ==> [/usr/lib]
|
||||
collapse library dir [/lib/../lib] ==> [/lib]
|
||||
collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
|
||||
collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../..] ==> [/usr/lib]
|
||||
implicit libs: [gcc;gcc_s;c;gcc;gcc_s]
|
||||
implicit objs: [/usr/lib/Scrt1.o;/usr/lib/crti.o;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o;/usr/lib/crtn.o]
|
||||
implicit dirs: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1;/usr/lib;/lib]
|
||||
implicit fwks: []
|
||||
|
||||
|
||||
-
|
||||
kind: "message-v1"
|
||||
backtrace:
|
||||
- "/usr/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)"
|
||||
- "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)"
|
||||
- "/usr/share/cmake/Modules/CMakeTestCCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
|
||||
- "CMakeLists.txt:2 (project)"
|
||||
message: |
|
||||
Running the C compiler's linker: "/usr/bin/ld" "-v"
|
||||
GNU ld (GNU Binutils) 2.43.0
|
||||
-
|
||||
kind: "try_compile-v1"
|
||||
backtrace:
|
||||
- "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:74 (try_compile)"
|
||||
- "/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
|
||||
- "CMakeLists.txt:2 (project)"
|
||||
checks:
|
||||
- "Detecting CXX compiler ABI info"
|
||||
directories:
|
||||
source: "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/CMakeScratch/TryCompile-B6fFCc"
|
||||
binary: "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/CMakeScratch/TryCompile-B6fFCc"
|
||||
cmakeVariables:
|
||||
CMAKE_CXX_FLAGS: ""
|
||||
CMAKE_CXX_SCAN_FOR_MODULES: "OFF"
|
||||
CMAKE_EXE_LINKER_FLAGS: ""
|
||||
buildResult:
|
||||
variable: "CMAKE_CXX_ABI_COMPILED"
|
||||
cached: true
|
||||
stdout: |
|
||||
Change Dir: '/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/CMakeScratch/TryCompile-B6fFCc'
|
||||
|
||||
Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_79fef/fast
|
||||
/usr/bin/make -f CMakeFiles/cmTC_79fef.dir/build.make CMakeFiles/cmTC_79fef.dir/build
|
||||
make[1]: Entering directory '/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/CMakeScratch/TryCompile-B6fFCc'
|
||||
Building CXX object CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.o
|
||||
/usr/bin/c++ -v -o CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp
|
||||
Using built-in specs.
|
||||
COLLECT_GCC=/usr/bin/c++
|
||||
Target: x86_64-pc-linux-gnu
|
||||
Configured with: /build/gcc/src/gcc/configure --enable-languages=ada,c,c++,d,fortran,go,lto,m2,objc,obj-c++,rust --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror
|
||||
Thread model: posix
|
||||
Supported LTO compression algorithms: zlib zstd
|
||||
gcc version 14.2.1 20240910 (GCC)
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_79fef.dir/'
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/cc1plus -quiet -v -D_GNU_SOURCE /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_79fef.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -o /tmp/ccpBJD2w.s
|
||||
GNU C++17 (GCC) version 14.2.1 20240910 (x86_64-pc-linux-gnu)
|
||||
compiled by GNU C version 14.2.1 20240910, GMP version 6.3.0, MPFR version 4.2.1, MPC version 1.3.1, isl version isl-0.27-GMP
|
||||
|
||||
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
|
||||
ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../x86_64-pc-linux-gnu/include"
|
||||
#include "..." search starts here:
|
||||
#include <...> search starts here:
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/x86_64-pc-linux-gnu
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/backward
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include
|
||||
/usr/local/include
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed
|
||||
/usr/include
|
||||
End of search list.
|
||||
Compiler executable checksum: fce5a105c47978e141f61a441742cadf
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_79fef.dir/'
|
||||
as -v --64 -o CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccpBJD2w.s
|
||||
GNU assembler version 2.43.0 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.43.0
|
||||
COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/
|
||||
LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.'
|
||||
Linking CXX executable cmTC_79fef
|
||||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_79fef.dir/link.txt --verbose=1
|
||||
Using built-in specs.
|
||||
COLLECT_GCC=/usr/bin/c++
|
||||
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper
|
||||
Target: x86_64-pc-linux-gnu
|
||||
Configured with: /build/gcc/src/gcc/configure --enable-languages=ada,c,c++,d,fortran,go,lto,m2,objc,obj-c++,rust --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror
|
||||
Thread model: posix
|
||||
Supported LTO compression algorithms: zlib zstd
|
||||
gcc version 14.2.1 20240910 (GCC)
|
||||
COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/
|
||||
LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_79fef' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_79fef.'
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccF0Yopm.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_79fef /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../.. -v CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o
|
||||
collect2 version 14.2.1 20240910
|
||||
/usr/bin/ld -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccF0Yopm.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_79fef /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../.. -v CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o
|
||||
GNU ld (GNU Binutils) 2.43.0
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_79fef' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_79fef.'
|
||||
/usr/bin/c++ -v -Wl,-v CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_79fef
|
||||
make[1]: Leaving directory '/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/CMakeScratch/TryCompile-B6fFCc'
|
||||
|
||||
exitCode: 0
|
||||
-
|
||||
kind: "message-v1"
|
||||
backtrace:
|
||||
- "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:182 (message)"
|
||||
- "/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
|
||||
- "CMakeLists.txt:2 (project)"
|
||||
message: |
|
||||
Parsed CXX implicit include dir info: rv=done
|
||||
found start of include info
|
||||
found start of implicit include info
|
||||
add: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1]
|
||||
add: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/x86_64-pc-linux-gnu]
|
||||
add: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/backward]
|
||||
add: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include]
|
||||
add: [/usr/local/include]
|
||||
add: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed]
|
||||
add: [/usr/include]
|
||||
end of search list found
|
||||
collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1] ==> [/usr/include/c++/14.2.1]
|
||||
collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/x86_64-pc-linux-gnu] ==> [/usr/include/c++/14.2.1/x86_64-pc-linux-gnu]
|
||||
collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/backward] ==> [/usr/include/c++/14.2.1/backward]
|
||||
collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include]
|
||||
collapse include dir [/usr/local/include] ==> [/usr/local/include]
|
||||
collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed]
|
||||
collapse include dir [/usr/include] ==> [/usr/include]
|
||||
implicit include dirs: [/usr/include/c++/14.2.1;/usr/include/c++/14.2.1/x86_64-pc-linux-gnu;/usr/include/c++/14.2.1/backward;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include;/usr/local/include;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed;/usr/include]
|
||||
|
||||
|
||||
-
|
||||
kind: "message-v1"
|
||||
backtrace:
|
||||
- "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:218 (message)"
|
||||
- "/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
|
||||
- "CMakeLists.txt:2 (project)"
|
||||
message: |
|
||||
Parsed CXX implicit link information:
|
||||
link line regex: [^( *|.*[/\\])(ld[0-9]*(\\.[a-z]+)?|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\\]+-)?ld|collect2)[^/\\]*( |$)]
|
||||
linker tool regex: [^[ ]*(->|")?[ ]*(([^"]*[/\\])?(ld[0-9]*(\\.[a-z]+)?))("|,| |$)]
|
||||
ignore line: [Change Dir: '/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/CMakeScratch/TryCompile-B6fFCc']
|
||||
ignore line: []
|
||||
ignore line: [Run Build Command(s): /usr/bin/cmake -E env VERBOSE=1 /usr/bin/make -f Makefile cmTC_79fef/fast]
|
||||
ignore line: [/usr/bin/make -f CMakeFiles/cmTC_79fef.dir/build.make CMakeFiles/cmTC_79fef.dir/build]
|
||||
ignore line: [make[1]: Entering directory '/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/CMakeScratch/TryCompile-B6fFCc']
|
||||
ignore line: [Building CXX object CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.o]
|
||||
ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp]
|
||||
ignore line: [Using built-in specs.]
|
||||
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
||||
ignore line: [Target: x86_64-pc-linux-gnu]
|
||||
ignore line: [Configured with: /build/gcc/src/gcc/configure --enable-languages=ada c c++ d fortran go lto m2 objc obj-c++ rust --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror]
|
||||
ignore line: [Thread model: posix]
|
||||
ignore line: [Supported LTO compression algorithms: zlib zstd]
|
||||
ignore line: [gcc version 14.2.1 20240910 (GCC) ]
|
||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_79fef.dir/']
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/cc1plus -quiet -v -D_GNU_SOURCE /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_79fef.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -o /tmp/ccpBJD2w.s]
|
||||
ignore line: [GNU C++17 (GCC) version 14.2.1 20240910 (x86_64-pc-linux-gnu)]
|
||||
ignore line: [ compiled by GNU C version 14.2.1 20240910 GMP version 6.3.0 MPFR version 4.2.1 MPC version 1.3.1 isl version isl-0.27-GMP]
|
||||
ignore line: []
|
||||
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
|
||||
ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../x86_64-pc-linux-gnu/include"]
|
||||
ignore line: [#include "..." search starts here:]
|
||||
ignore line: [#include <...> search starts here:]
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1]
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/x86_64-pc-linux-gnu]
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../include/c++/14.2.1/backward]
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include]
|
||||
ignore line: [ /usr/local/include]
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include-fixed]
|
||||
ignore line: [ /usr/include]
|
||||
ignore line: [End of search list.]
|
||||
ignore line: [Compiler executable checksum: fce5a105c47978e141f61a441742cadf]
|
||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_79fef.dir/']
|
||||
ignore line: [ as -v --64 -o CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccpBJD2w.s]
|
||||
ignore line: [GNU assembler version 2.43.0 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.43.0]
|
||||
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/]
|
||||
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/]
|
||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.']
|
||||
ignore line: [Linking CXX executable cmTC_79fef]
|
||||
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_79fef.dir/link.txt --verbose=1]
|
||||
ignore line: [Using built-in specs.]
|
||||
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
||||
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper]
|
||||
ignore line: [Target: x86_64-pc-linux-gnu]
|
||||
ignore line: [Configured with: /build/gcc/src/gcc/configure --enable-languages=ada c c++ d fortran go lto m2 objc obj-c++ rust --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://gitlab.archlinux.org/archlinux/packaging/packages/gcc/-/issues --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror]
|
||||
ignore line: [Thread model: posix]
|
||||
ignore line: [Supported LTO compression algorithms: zlib zstd]
|
||||
ignore line: [gcc version 14.2.1 20240910 (GCC) ]
|
||||
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/]
|
||||
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../:/lib/:/usr/lib/]
|
||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_79fef' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_79fef.']
|
||||
link line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccF0Yopm.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_79fef /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../.. -v CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o]
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/collect2] ==> ignore
|
||||
arg [-plugin] ==> ignore
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so] ==> ignore
|
||||
arg [-plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper] ==> ignore
|
||||
arg [-plugin-opt=-fresolution=/tmp/ccF0Yopm.res] ==> ignore
|
||||
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
|
||||
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
|
||||
arg [-plugin-opt=-pass-through=-lc] ==> ignore
|
||||
arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore
|
||||
arg [-plugin-opt=-pass-through=-lgcc] ==> ignore
|
||||
arg [--build-id] ==> ignore
|
||||
arg [--eh-frame-hdr] ==> ignore
|
||||
arg [--hash-style=gnu] ==> ignore
|
||||
arg [-m] ==> ignore
|
||||
arg [elf_x86_64] ==> ignore
|
||||
arg [-dynamic-linker] ==> ignore
|
||||
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
|
||||
arg [-pie] ==> ignore
|
||||
arg [-o] ==> ignore
|
||||
arg [cmTC_79fef] ==> ignore
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o]
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o]
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o]
|
||||
arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1]
|
||||
arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib]
|
||||
arg [-L/lib/../lib] ==> dir [/lib/../lib]
|
||||
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
|
||||
arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../..] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../..]
|
||||
arg [-v] ==> ignore
|
||||
arg [CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore
|
||||
arg [-lstdc++] ==> lib [stdc++]
|
||||
arg [-lm] ==> lib [m]
|
||||
arg [-lgcc_s] ==> lib [gcc_s]
|
||||
arg [-lgcc] ==> lib [gcc]
|
||||
arg [-lc] ==> lib [c]
|
||||
arg [-lgcc_s] ==> lib [gcc_s]
|
||||
arg [-lgcc] ==> lib [gcc]
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o]
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o]
|
||||
ignore line: [collect2 version 14.2.1 20240910]
|
||||
ignore line: [/usr/bin/ld -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/ccF0Yopm.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_79fef /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1 -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../.. -v CMakeFiles/cmTC_79fef.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o]
|
||||
linker tool for 'CXX': /usr/bin/ld
|
||||
collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/Scrt1.o] ==> [/usr/lib/Scrt1.o]
|
||||
collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crti.o] ==> [/usr/lib/crti.o]
|
||||
collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/crtn.o] ==> [/usr/lib/crtn.o]
|
||||
collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1]
|
||||
collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib] ==> [/usr/lib]
|
||||
collapse library dir [/lib/../lib] ==> [/lib]
|
||||
collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
|
||||
collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../..] ==> [/usr/lib]
|
||||
implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc]
|
||||
implicit objs: [/usr/lib/Scrt1.o;/usr/lib/crti.o;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtbeginS.o;/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/crtendS.o;/usr/lib/crtn.o]
|
||||
implicit dirs: [/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1;/usr/lib;/lib]
|
||||
implicit fwks: []
|
||||
|
||||
|
||||
-
|
||||
kind: "message-v1"
|
||||
backtrace:
|
||||
- "/usr/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake:40 (message)"
|
||||
- "/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake:255 (cmake_determine_linker_id)"
|
||||
- "/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake:26 (CMAKE_DETERMINE_COMPILER_ABI)"
|
||||
- "CMakeLists.txt:2 (project)"
|
||||
message: |
|
||||
Running the CXX compiler's linker: "/usr/bin/ld" "-v"
|
||||
GNU ld (GNU Binutils) 2.43.0
|
||||
...
|
||||
@@ -0,0 +1,16 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.31
|
||||
|
||||
# Relative path conversion top directories.
|
||||
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2")
|
||||
set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build")
|
||||
|
||||
# Force unix paths in dependencies.
|
||||
set(CMAKE_FORCE_UNIX_PATHS 1)
|
||||
|
||||
|
||||
# The C and CXX include file regular expressions for this directory.
|
||||
set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$")
|
||||
set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$")
|
||||
set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN})
|
||||
set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN})
|
||||
@@ -0,0 +1,146 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.31
|
||||
|
||||
# The generator used is:
|
||||
set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles")
|
||||
|
||||
# The top level Makefile was generated from the following files:
|
||||
set(CMAKE_MAKEFILE_DEPENDS
|
||||
"CMakeCache.txt"
|
||||
"/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/CMakeLists.txt"
|
||||
"CMakeFiles/3.31.3/CMakeCCompiler.cmake"
|
||||
"CMakeFiles/3.31.3/CMakeCXXCompiler.cmake"
|
||||
"CMakeFiles/3.31.3/CMakeSystem.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeCCompiler.cmake.in"
|
||||
"/usr/share/cmake/Modules/CMakeCCompilerABI.c"
|
||||
"/usr/share/cmake/Modules/CMakeCInformation.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeCXXCompiler.cmake.in"
|
||||
"/usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp"
|
||||
"/usr/share/cmake/Modules/CMakeCXXInformation.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeCompilerIdDetection.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeDetermineCCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeDetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeDetermineCompilerABI.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeDetermineCompilerId.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeDetermineCompilerSupport.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeDetermineSystem.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeFindBinUtils.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeGenericSystem.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeInitializeConfigs.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeLanguageInformation.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeParseImplicitIncludeInfo.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeParseImplicitLinkInfo.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeParseLibraryArchitecture.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeSystem.cmake.in"
|
||||
"/usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeTestCCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeTestCXXCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeTestCompilerCommon.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeUnixFindMake.cmake"
|
||||
"/usr/share/cmake/Modules/CPack.cmake"
|
||||
"/usr/share/cmake/Modules/CPackComponent.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/ADSP-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/ARMCC-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/ARMClang-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/AppleClang-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Borland-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Bruce-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Clang-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Clang-DetermineCompilerInternal.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Compaq-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Compaq-CXX-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Cray-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/CrayClang-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Embarcadero-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Fujitsu-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/FujitsuClang-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/GHS-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/GNU-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/GNU-C.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/GNU-CXX-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/GNU-CXX.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/GNU-FindBinUtils.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/GNU.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/HP-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/HP-CXX-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/IAR-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/IBMCPP-C-DetermineVersionInternal.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/IBMCPP-CXX-DetermineVersionInternal.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/IBMClang-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/IBMClang-CXX-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Intel-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/IntelLLVM-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/LCC-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/LCC-CXX-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/MSVC-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/NVHPC-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/NVIDIA-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/OpenWatcom-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/OrangeC-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/PGI-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/PathScale-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/SCO-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/SDCC-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/SunPro-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/SunPro-CXX-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/TI-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/TIClang-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Tasking-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/TinyCC-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/VisualAge-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/VisualAge-CXX-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/Watcom-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/XL-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/XL-CXX-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/XLClang-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/XLClang-CXX-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/zOS-C-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/zOS-CXX-DetermineCompiler.cmake"
|
||||
"/usr/share/cmake/Modules/Internal/CMakeCLinkerInformation.cmake"
|
||||
"/usr/share/cmake/Modules/Internal/CMakeCXXLinkerInformation.cmake"
|
||||
"/usr/share/cmake/Modules/Internal/CMakeCommonLinkerInformation.cmake"
|
||||
"/usr/share/cmake/Modules/Internal/CMakeDetermineLinkerId.cmake"
|
||||
"/usr/share/cmake/Modules/Internal/FeatureTesting.cmake"
|
||||
"/usr/share/cmake/Modules/Linker/GNU-C.cmake"
|
||||
"/usr/share/cmake/Modules/Linker/GNU-CXX.cmake"
|
||||
"/usr/share/cmake/Modules/Linker/GNU.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linker/GNU.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linker/Linux-GNU-C.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linker/Linux-GNU-CXX.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linker/Linux-GNU.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linux-Determine-CXX.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linux-GNU-C.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linux-GNU.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linux-Initialize.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linux.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/UnixPaths.cmake"
|
||||
"/usr/share/cmake/Templates/CPackConfig.cmake.in"
|
||||
)
|
||||
|
||||
# The corresponding makefile is:
|
||||
set(CMAKE_MAKEFILE_OUTPUTS
|
||||
"Makefile"
|
||||
"CMakeFiles/cmake.check_cache"
|
||||
)
|
||||
|
||||
# Byproducts of CMake generate step:
|
||||
set(CMAKE_MAKEFILE_PRODUCTS
|
||||
"CMakeFiles/3.31.3/CMakeSystem.cmake"
|
||||
"CMakeFiles/3.31.3/CMakeCCompiler.cmake"
|
||||
"CMakeFiles/3.31.3/CMakeCXXCompiler.cmake"
|
||||
"CMakeFiles/3.31.3/CMakeCCompiler.cmake"
|
||||
"CMakeFiles/3.31.3/CMakeCXXCompiler.cmake"
|
||||
"CPackConfig.cmake"
|
||||
"CPackSourceConfig.cmake"
|
||||
"CMakeFiles/CMakeDirectoryInformation.cmake"
|
||||
)
|
||||
|
||||
# Dependency information for all targets:
|
||||
set(CMAKE_DEPEND_INFO_FILES
|
||||
"CMakeFiles/webserver.dir/DependInfo.cmake"
|
||||
)
|
||||
@@ -0,0 +1,122 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.31
|
||||
|
||||
# Default target executed when no arguments are given to make.
|
||||
default_target: all
|
||||
.PHONY : default_target
|
||||
|
||||
#=============================================================================
|
||||
# Special targets provided by cmake.
|
||||
|
||||
# Disable implicit rules so canonical targets will work.
|
||||
.SUFFIXES:
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : %,v
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : RCS/%
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : RCS/%,v
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : SCCS/s.%
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : s.%
|
||||
|
||||
.SUFFIXES: .hpux_make_needs_suffix_list
|
||||
|
||||
# Command-line flag to silence nested $(MAKE).
|
||||
$(VERBOSE)MAKESILENT = -s
|
||||
|
||||
#Suppress display of executed commands.
|
||||
$(VERBOSE).SILENT:
|
||||
|
||||
# A target that is always out of date.
|
||||
cmake_force:
|
||||
.PHONY : cmake_force
|
||||
|
||||
#=============================================================================
|
||||
# Set environment variables for the build.
|
||||
|
||||
# The shell in which to execute make rules.
|
||||
SHELL = /bin/sh
|
||||
|
||||
# The CMake executable.
|
||||
CMAKE_COMMAND = /usr/bin/cmake
|
||||
|
||||
# The command to remove a file.
|
||||
RM = /usr/bin/cmake -E rm -f
|
||||
|
||||
# Escaping for special characters.
|
||||
EQUALS = =
|
||||
|
||||
# The top-level source directory on which CMake was run.
|
||||
CMAKE_SOURCE_DIR = /home/timo/Dokumente/uni/praxis2.skeleton/praxis2
|
||||
|
||||
# The top-level build directory on which CMake was run.
|
||||
CMAKE_BINARY_DIR = /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build
|
||||
|
||||
#=============================================================================
|
||||
# Directory level rules for the build root directory
|
||||
|
||||
# The main recursive "all" target.
|
||||
all: CMakeFiles/webserver.dir/all
|
||||
.PHONY : all
|
||||
|
||||
# The main recursive "codegen" target.
|
||||
codegen: CMakeFiles/webserver.dir/codegen
|
||||
.PHONY : codegen
|
||||
|
||||
# The main recursive "preinstall" target.
|
||||
preinstall:
|
||||
.PHONY : preinstall
|
||||
|
||||
# The main recursive "clean" target.
|
||||
clean: CMakeFiles/webserver.dir/clean
|
||||
.PHONY : clean
|
||||
|
||||
#=============================================================================
|
||||
# Target rules for target CMakeFiles/webserver.dir
|
||||
|
||||
# All Build rule for target.
|
||||
CMakeFiles/webserver.dir/all:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/webserver.dir/build.make CMakeFiles/webserver.dir/depend
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/webserver.dir/build.make CMakeFiles/webserver.dir/build
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles --progress-num=1,2,3,4,5 "Built target webserver"
|
||||
.PHONY : CMakeFiles/webserver.dir/all
|
||||
|
||||
# Build rule for subdir invocation for target.
|
||||
CMakeFiles/webserver.dir/rule: cmake_check_build_system
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles 5
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/webserver.dir/all
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles 0
|
||||
.PHONY : CMakeFiles/webserver.dir/rule
|
||||
|
||||
# Convenience name for target.
|
||||
webserver: CMakeFiles/webserver.dir/rule
|
||||
.PHONY : webserver
|
||||
|
||||
# codegen rule for target.
|
||||
CMakeFiles/webserver.dir/codegen:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/webserver.dir/build.make CMakeFiles/webserver.dir/codegen
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --progress-dir=/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles --progress-num=1,2,3,4,5 "Finished codegen for target webserver"
|
||||
.PHONY : CMakeFiles/webserver.dir/codegen
|
||||
|
||||
# clean rule for target.
|
||||
CMakeFiles/webserver.dir/clean:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/webserver.dir/build.make CMakeFiles/webserver.dir/clean
|
||||
.PHONY : CMakeFiles/webserver.dir/clean
|
||||
|
||||
#=============================================================================
|
||||
# Special targets to cleanup operation of make.
|
||||
|
||||
# Special rule to run CMake to check the build system integrity.
|
||||
# No rule that depends on this can have commands that come from listfiles
|
||||
# because they might be regenerated.
|
||||
cmake_check_build_system:
|
||||
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
|
||||
.PHONY : cmake_check_build_system
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/webserver.dir
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/package.dir
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/package_source.dir
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/edit_cache.dir
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/rebuild_cache.dir
|
||||
@@ -0,0 +1 @@
|
||||
# This file is generated by cmake for dependency checking of the CMakeCache.txt file
|
||||
@@ -0,0 +1 @@
|
||||
5
|
||||
@@ -0,0 +1,27 @@
|
||||
|
||||
# Consider dependencies only in project.
|
||||
set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF)
|
||||
|
||||
# The set of languages for which implicit dependencies are needed:
|
||||
set(CMAKE_DEPENDS_LANGUAGES
|
||||
)
|
||||
|
||||
# The set of dependency files which are needed:
|
||||
set(CMAKE_DEPENDS_DEPENDENCY_FILES
|
||||
"/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/data.c" "CMakeFiles/webserver.dir/data.c.o" "gcc" "CMakeFiles/webserver.dir/data.c.o.d"
|
||||
"/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/http.c" "CMakeFiles/webserver.dir/http.c.o" "gcc" "CMakeFiles/webserver.dir/http.c.o.d"
|
||||
"/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.c" "CMakeFiles/webserver.dir/util.c.o" "gcc" "CMakeFiles/webserver.dir/util.c.o.d"
|
||||
"/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/webserver.c" "CMakeFiles/webserver.dir/webserver.c.o" "gcc" "CMakeFiles/webserver.dir/webserver.c.o.d"
|
||||
"" "webserver" "gcc" "CMakeFiles/webserver.dir/link.d"
|
||||
)
|
||||
|
||||
# Targets to which this target links which contain Fortran sources.
|
||||
set(CMAKE_Fortran_TARGET_LINKED_INFO_FILES
|
||||
)
|
||||
|
||||
# Targets to which this target links which contain Fortran sources.
|
||||
set(CMAKE_Fortran_TARGET_FORWARD_LINKED_INFO_FILES
|
||||
)
|
||||
|
||||
# Fortran module output directory.
|
||||
set(CMAKE_Fortran_TARGET_MODULE_DIR "")
|
||||
@@ -0,0 +1,162 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.31
|
||||
|
||||
# Delete rule output on recipe failure.
|
||||
.DELETE_ON_ERROR:
|
||||
|
||||
#=============================================================================
|
||||
# Special targets provided by cmake.
|
||||
|
||||
# Disable implicit rules so canonical targets will work.
|
||||
.SUFFIXES:
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : %,v
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : RCS/%
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : RCS/%,v
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : SCCS/s.%
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : s.%
|
||||
|
||||
.SUFFIXES: .hpux_make_needs_suffix_list
|
||||
|
||||
# Command-line flag to silence nested $(MAKE).
|
||||
$(VERBOSE)MAKESILENT = -s
|
||||
|
||||
#Suppress display of executed commands.
|
||||
$(VERBOSE).SILENT:
|
||||
|
||||
# A target that is always out of date.
|
||||
cmake_force:
|
||||
.PHONY : cmake_force
|
||||
|
||||
#=============================================================================
|
||||
# Set environment variables for the build.
|
||||
|
||||
# The shell in which to execute make rules.
|
||||
SHELL = /bin/sh
|
||||
|
||||
# The CMake executable.
|
||||
CMAKE_COMMAND = /usr/bin/cmake
|
||||
|
||||
# The command to remove a file.
|
||||
RM = /usr/bin/cmake -E rm -f
|
||||
|
||||
# Escaping for special characters.
|
||||
EQUALS = =
|
||||
|
||||
# The top-level source directory on which CMake was run.
|
||||
CMAKE_SOURCE_DIR = /home/timo/Dokumente/uni/praxis2.skeleton/praxis2
|
||||
|
||||
# The top-level build directory on which CMake was run.
|
||||
CMAKE_BINARY_DIR = /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build
|
||||
|
||||
# Include any dependencies generated for this target.
|
||||
include CMakeFiles/webserver.dir/depend.make
|
||||
# Include any dependencies generated by the compiler for this target.
|
||||
include CMakeFiles/webserver.dir/compiler_depend.make
|
||||
|
||||
# Include the progress variables for this target.
|
||||
include CMakeFiles/webserver.dir/progress.make
|
||||
|
||||
# Include the compile flags for this target's objects.
|
||||
include CMakeFiles/webserver.dir/flags.make
|
||||
|
||||
CMakeFiles/webserver.dir/codegen:
|
||||
.PHONY : CMakeFiles/webserver.dir/codegen
|
||||
|
||||
CMakeFiles/webserver.dir/webserver.c.o: CMakeFiles/webserver.dir/flags.make
|
||||
CMakeFiles/webserver.dir/webserver.c.o: /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/webserver.c
|
||||
CMakeFiles/webserver.dir/webserver.c.o: CMakeFiles/webserver.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building C object CMakeFiles/webserver.dir/webserver.c.o"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/webserver.dir/webserver.c.o -MF CMakeFiles/webserver.dir/webserver.c.o.d -o CMakeFiles/webserver.dir/webserver.c.o -c /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/webserver.c
|
||||
|
||||
CMakeFiles/webserver.dir/webserver.c.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/webserver.dir/webserver.c.i"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/webserver.c > CMakeFiles/webserver.dir/webserver.c.i
|
||||
|
||||
CMakeFiles/webserver.dir/webserver.c.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/webserver.dir/webserver.c.s"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/webserver.c -o CMakeFiles/webserver.dir/webserver.c.s
|
||||
|
||||
CMakeFiles/webserver.dir/http.c.o: CMakeFiles/webserver.dir/flags.make
|
||||
CMakeFiles/webserver.dir/http.c.o: /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/http.c
|
||||
CMakeFiles/webserver.dir/http.c.o: CMakeFiles/webserver.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building C object CMakeFiles/webserver.dir/http.c.o"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/webserver.dir/http.c.o -MF CMakeFiles/webserver.dir/http.c.o.d -o CMakeFiles/webserver.dir/http.c.o -c /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/http.c
|
||||
|
||||
CMakeFiles/webserver.dir/http.c.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/webserver.dir/http.c.i"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/http.c > CMakeFiles/webserver.dir/http.c.i
|
||||
|
||||
CMakeFiles/webserver.dir/http.c.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/webserver.dir/http.c.s"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/http.c -o CMakeFiles/webserver.dir/http.c.s
|
||||
|
||||
CMakeFiles/webserver.dir/util.c.o: CMakeFiles/webserver.dir/flags.make
|
||||
CMakeFiles/webserver.dir/util.c.o: /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.c
|
||||
CMakeFiles/webserver.dir/util.c.o: CMakeFiles/webserver.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Building C object CMakeFiles/webserver.dir/util.c.o"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/webserver.dir/util.c.o -MF CMakeFiles/webserver.dir/util.c.o.d -o CMakeFiles/webserver.dir/util.c.o -c /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.c
|
||||
|
||||
CMakeFiles/webserver.dir/util.c.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/webserver.dir/util.c.i"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.c > CMakeFiles/webserver.dir/util.c.i
|
||||
|
||||
CMakeFiles/webserver.dir/util.c.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/webserver.dir/util.c.s"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.c -o CMakeFiles/webserver.dir/util.c.s
|
||||
|
||||
CMakeFiles/webserver.dir/data.c.o: CMakeFiles/webserver.dir/flags.make
|
||||
CMakeFiles/webserver.dir/data.c.o: /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/data.c
|
||||
CMakeFiles/webserver.dir/data.c.o: CMakeFiles/webserver.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --progress-dir=/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_4) "Building C object CMakeFiles/webserver.dir/data.c.o"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -MD -MT CMakeFiles/webserver.dir/data.c.o -MF CMakeFiles/webserver.dir/data.c.o.d -o CMakeFiles/webserver.dir/data.c.o -c /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/data.c
|
||||
|
||||
CMakeFiles/webserver.dir/data.c.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Preprocessing C source to CMakeFiles/webserver.dir/data.c.i"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -E /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/data.c > CMakeFiles/webserver.dir/data.c.i
|
||||
|
||||
CMakeFiles/webserver.dir/data.c.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green "Compiling C source to assembly CMakeFiles/webserver.dir/data.c.s"
|
||||
/usr/bin/cc $(C_DEFINES) $(C_INCLUDES) $(C_FLAGS) -S /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/data.c -o CMakeFiles/webserver.dir/data.c.s
|
||||
|
||||
# Object files for target webserver
|
||||
webserver_OBJECTS = \
|
||||
"CMakeFiles/webserver.dir/webserver.c.o" \
|
||||
"CMakeFiles/webserver.dir/http.c.o" \
|
||||
"CMakeFiles/webserver.dir/util.c.o" \
|
||||
"CMakeFiles/webserver.dir/data.c.o"
|
||||
|
||||
# External object files for target webserver
|
||||
webserver_EXTERNAL_OBJECTS =
|
||||
|
||||
webserver: CMakeFiles/webserver.dir/webserver.c.o
|
||||
webserver: CMakeFiles/webserver.dir/http.c.o
|
||||
webserver: CMakeFiles/webserver.dir/util.c.o
|
||||
webserver: CMakeFiles/webserver.dir/data.c.o
|
||||
webserver: CMakeFiles/webserver.dir/build.make
|
||||
webserver: CMakeFiles/webserver.dir/compiler_depend.ts
|
||||
webserver: CMakeFiles/webserver.dir/link.txt
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --green --bold --progress-dir=/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_5) "Linking C executable webserver"
|
||||
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/webserver.dir/link.txt --verbose=$(VERBOSE)
|
||||
|
||||
# Rule to build all files generated by this target.
|
||||
CMakeFiles/webserver.dir/build: webserver
|
||||
.PHONY : CMakeFiles/webserver.dir/build
|
||||
|
||||
CMakeFiles/webserver.dir/clean:
|
||||
$(CMAKE_COMMAND) -P CMakeFiles/webserver.dir/cmake_clean.cmake
|
||||
.PHONY : CMakeFiles/webserver.dir/clean
|
||||
|
||||
CMakeFiles/webserver.dir/depend:
|
||||
cd /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/timo/Dokumente/uni/praxis2.skeleton/praxis2 /home/timo/Dokumente/uni/praxis2.skeleton/praxis2 /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles/webserver.dir/DependInfo.cmake "--color=$(COLOR)"
|
||||
.PHONY : CMakeFiles/webserver.dir/depend
|
||||
|
||||
@@ -0,0 +1,18 @@
|
||||
file(REMOVE_RECURSE
|
||||
"CMakeFiles/webserver.dir/link.d"
|
||||
"CMakeFiles/webserver.dir/data.c.o"
|
||||
"CMakeFiles/webserver.dir/data.c.o.d"
|
||||
"CMakeFiles/webserver.dir/http.c.o"
|
||||
"CMakeFiles/webserver.dir/http.c.o.d"
|
||||
"CMakeFiles/webserver.dir/util.c.o"
|
||||
"CMakeFiles/webserver.dir/util.c.o.d"
|
||||
"CMakeFiles/webserver.dir/webserver.c.o"
|
||||
"CMakeFiles/webserver.dir/webserver.c.o.d"
|
||||
"webserver"
|
||||
"webserver.pdb"
|
||||
)
|
||||
|
||||
# Per-language clean rules from dependency scanning.
|
||||
foreach(lang C)
|
||||
include(CMakeFiles/webserver.dir/cmake_clean_${lang}.cmake OPTIONAL)
|
||||
endforeach()
|
||||
@@ -0,0 +1,326 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.31
|
||||
|
||||
CMakeFiles/webserver.dir/data.c.o
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/data.c
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/data.h
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.h
|
||||
/usr/include/alloca.h
|
||||
/usr/include/bits/atomic_wide_counter.h
|
||||
/usr/include/bits/byteswap.h
|
||||
/usr/include/bits/endian.h
|
||||
/usr/include/bits/endianness.h
|
||||
/usr/include/bits/floatn-common.h
|
||||
/usr/include/bits/floatn.h
|
||||
/usr/include/bits/libc-header-start.h
|
||||
/usr/include/bits/long-double.h
|
||||
/usr/include/bits/pthreadtypes-arch.h
|
||||
/usr/include/bits/pthreadtypes.h
|
||||
/usr/include/bits/select.h
|
||||
/usr/include/bits/stdint-intn.h
|
||||
/usr/include/bits/stdint-least.h
|
||||
/usr/include/bits/stdint-uintn.h
|
||||
/usr/include/bits/stdlib-float.h
|
||||
/usr/include/bits/struct_mutex.h
|
||||
/usr/include/bits/struct_rwlock.h
|
||||
/usr/include/bits/thread-shared-types.h
|
||||
/usr/include/bits/time64.h
|
||||
/usr/include/bits/timesize.h
|
||||
/usr/include/bits/types.h
|
||||
/usr/include/bits/types/__locale_t.h
|
||||
/usr/include/bits/types/__sigset_t.h
|
||||
/usr/include/bits/types/clock_t.h
|
||||
/usr/include/bits/types/clockid_t.h
|
||||
/usr/include/bits/types/locale_t.h
|
||||
/usr/include/bits/types/sigset_t.h
|
||||
/usr/include/bits/types/struct_timespec.h
|
||||
/usr/include/bits/types/struct_timeval.h
|
||||
/usr/include/bits/types/time_t.h
|
||||
/usr/include/bits/types/timer_t.h
|
||||
/usr/include/bits/typesizes.h
|
||||
/usr/include/bits/uintn-identity.h
|
||||
/usr/include/bits/waitflags.h
|
||||
/usr/include/bits/waitstatus.h
|
||||
/usr/include/bits/wchar.h
|
||||
/usr/include/bits/wordsize.h
|
||||
/usr/include/endian.h
|
||||
/usr/include/features-time64.h
|
||||
/usr/include/features.h
|
||||
/usr/include/gnu/stubs-64.h
|
||||
/usr/include/gnu/stubs.h
|
||||
/usr/include/stdc-predef.h
|
||||
/usr/include/stdint.h
|
||||
/usr/include/stdlib.h
|
||||
/usr/include/string.h
|
||||
/usr/include/strings.h
|
||||
/usr/include/sys/cdefs.h
|
||||
/usr/include/sys/select.h
|
||||
/usr/include/sys/types.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdbool.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h
|
||||
|
||||
CMakeFiles/webserver.dir/http.c.o
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/http.c
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/http.h
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.h
|
||||
/usr/include/alloca.h
|
||||
/usr/include/bits/atomic_wide_counter.h
|
||||
/usr/include/bits/byteswap.h
|
||||
/usr/include/bits/endian.h
|
||||
/usr/include/bits/endianness.h
|
||||
/usr/include/bits/floatn-common.h
|
||||
/usr/include/bits/floatn.h
|
||||
/usr/include/bits/libc-header-start.h
|
||||
/usr/include/bits/long-double.h
|
||||
/usr/include/bits/pthreadtypes-arch.h
|
||||
/usr/include/bits/pthreadtypes.h
|
||||
/usr/include/bits/select.h
|
||||
/usr/include/bits/stdint-intn.h
|
||||
/usr/include/bits/stdint-least.h
|
||||
/usr/include/bits/stdint-uintn.h
|
||||
/usr/include/bits/stdio_lim.h
|
||||
/usr/include/bits/stdlib-float.h
|
||||
/usr/include/bits/struct_mutex.h
|
||||
/usr/include/bits/struct_rwlock.h
|
||||
/usr/include/bits/thread-shared-types.h
|
||||
/usr/include/bits/time64.h
|
||||
/usr/include/bits/timesize.h
|
||||
/usr/include/bits/types.h
|
||||
/usr/include/bits/types/FILE.h
|
||||
/usr/include/bits/types/__FILE.h
|
||||
/usr/include/bits/types/__fpos64_t.h
|
||||
/usr/include/bits/types/__fpos_t.h
|
||||
/usr/include/bits/types/__locale_t.h
|
||||
/usr/include/bits/types/__mbstate_t.h
|
||||
/usr/include/bits/types/__sigset_t.h
|
||||
/usr/include/bits/types/clock_t.h
|
||||
/usr/include/bits/types/clockid_t.h
|
||||
/usr/include/bits/types/cookie_io_functions_t.h
|
||||
/usr/include/bits/types/locale_t.h
|
||||
/usr/include/bits/types/sigset_t.h
|
||||
/usr/include/bits/types/struct_FILE.h
|
||||
/usr/include/bits/types/struct_timespec.h
|
||||
/usr/include/bits/types/struct_timeval.h
|
||||
/usr/include/bits/types/time_t.h
|
||||
/usr/include/bits/types/timer_t.h
|
||||
/usr/include/bits/typesizes.h
|
||||
/usr/include/bits/uintn-identity.h
|
||||
/usr/include/bits/waitflags.h
|
||||
/usr/include/bits/waitstatus.h
|
||||
/usr/include/bits/wchar.h
|
||||
/usr/include/bits/wordsize.h
|
||||
/usr/include/ctype.h
|
||||
/usr/include/endian.h
|
||||
/usr/include/features-time64.h
|
||||
/usr/include/features.h
|
||||
/usr/include/gnu/stubs-64.h
|
||||
/usr/include/gnu/stubs.h
|
||||
/usr/include/stdc-predef.h
|
||||
/usr/include/stdint.h
|
||||
/usr/include/stdio.h
|
||||
/usr/include/stdlib.h
|
||||
/usr/include/string.h
|
||||
/usr/include/strings.h
|
||||
/usr/include/sys/cdefs.h
|
||||
/usr/include/sys/select.h
|
||||
/usr/include/sys/types.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdbool.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h
|
||||
|
||||
CMakeFiles/webserver.dir/util.c.o
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.c
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.h
|
||||
/usr/include/alloca.h
|
||||
/usr/include/asm-generic/errno-base.h
|
||||
/usr/include/asm-generic/errno.h
|
||||
/usr/include/asm/errno.h
|
||||
/usr/include/bits/atomic_wide_counter.h
|
||||
/usr/include/bits/byteswap.h
|
||||
/usr/include/bits/endian.h
|
||||
/usr/include/bits/endianness.h
|
||||
/usr/include/bits/errno.h
|
||||
/usr/include/bits/floatn-common.h
|
||||
/usr/include/bits/floatn.h
|
||||
/usr/include/bits/libc-header-start.h
|
||||
/usr/include/bits/long-double.h
|
||||
/usr/include/bits/pthreadtypes-arch.h
|
||||
/usr/include/bits/pthreadtypes.h
|
||||
/usr/include/bits/select.h
|
||||
/usr/include/bits/stdint-intn.h
|
||||
/usr/include/bits/stdint-least.h
|
||||
/usr/include/bits/stdint-uintn.h
|
||||
/usr/include/bits/stdio_lim.h
|
||||
/usr/include/bits/stdlib-float.h
|
||||
/usr/include/bits/struct_mutex.h
|
||||
/usr/include/bits/struct_rwlock.h
|
||||
/usr/include/bits/thread-shared-types.h
|
||||
/usr/include/bits/time64.h
|
||||
/usr/include/bits/timesize.h
|
||||
/usr/include/bits/types.h
|
||||
/usr/include/bits/types/FILE.h
|
||||
/usr/include/bits/types/__FILE.h
|
||||
/usr/include/bits/types/__fpos64_t.h
|
||||
/usr/include/bits/types/__fpos_t.h
|
||||
/usr/include/bits/types/__locale_t.h
|
||||
/usr/include/bits/types/__mbstate_t.h
|
||||
/usr/include/bits/types/__sigset_t.h
|
||||
/usr/include/bits/types/clock_t.h
|
||||
/usr/include/bits/types/clockid_t.h
|
||||
/usr/include/bits/types/cookie_io_functions_t.h
|
||||
/usr/include/bits/types/locale_t.h
|
||||
/usr/include/bits/types/sigset_t.h
|
||||
/usr/include/bits/types/struct_FILE.h
|
||||
/usr/include/bits/types/struct_timespec.h
|
||||
/usr/include/bits/types/struct_timeval.h
|
||||
/usr/include/bits/types/time_t.h
|
||||
/usr/include/bits/types/timer_t.h
|
||||
/usr/include/bits/typesizes.h
|
||||
/usr/include/bits/uintn-identity.h
|
||||
/usr/include/bits/waitflags.h
|
||||
/usr/include/bits/waitstatus.h
|
||||
/usr/include/bits/wchar.h
|
||||
/usr/include/bits/wordsize.h
|
||||
/usr/include/endian.h
|
||||
/usr/include/errno.h
|
||||
/usr/include/features-time64.h
|
||||
/usr/include/features.h
|
||||
/usr/include/gnu/stubs-64.h
|
||||
/usr/include/gnu/stubs.h
|
||||
/usr/include/linux/errno.h
|
||||
/usr/include/stdc-predef.h
|
||||
/usr/include/stdint.h
|
||||
/usr/include/stdio.h
|
||||
/usr/include/stdlib.h
|
||||
/usr/include/string.h
|
||||
/usr/include/strings.h
|
||||
/usr/include/sys/cdefs.h
|
||||
/usr/include/sys/select.h
|
||||
/usr/include/sys/types.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h
|
||||
|
||||
CMakeFiles/webserver.dir/webserver.c.o
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/webserver.c
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/data.h
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/http.h
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.h
|
||||
/usr/include/alloca.h
|
||||
/usr/include/arpa/inet.h
|
||||
/usr/include/asm-generic/bitsperlong.h
|
||||
/usr/include/asm-generic/errno-base.h
|
||||
/usr/include/asm-generic/errno.h
|
||||
/usr/include/asm-generic/posix_types.h
|
||||
/usr/include/asm-generic/socket.h
|
||||
/usr/include/asm-generic/sockios.h
|
||||
/usr/include/asm/bitsperlong.h
|
||||
/usr/include/asm/errno.h
|
||||
/usr/include/asm/posix_types.h
|
||||
/usr/include/asm/posix_types_64.h
|
||||
/usr/include/asm/socket.h
|
||||
/usr/include/asm/sockios.h
|
||||
/usr/include/assert.h
|
||||
/usr/include/bits/atomic_wide_counter.h
|
||||
/usr/include/bits/byteswap.h
|
||||
/usr/include/bits/confname.h
|
||||
/usr/include/bits/endian.h
|
||||
/usr/include/bits/endianness.h
|
||||
/usr/include/bits/environments.h
|
||||
/usr/include/bits/errno.h
|
||||
/usr/include/bits/fcntl-linux.h
|
||||
/usr/include/bits/fcntl.h
|
||||
/usr/include/bits/floatn-common.h
|
||||
/usr/include/bits/floatn.h
|
||||
/usr/include/bits/getopt_core.h
|
||||
/usr/include/bits/getopt_posix.h
|
||||
/usr/include/bits/in.h
|
||||
/usr/include/bits/libc-header-start.h
|
||||
/usr/include/bits/long-double.h
|
||||
/usr/include/bits/netdb.h
|
||||
/usr/include/bits/poll.h
|
||||
/usr/include/bits/posix_opt.h
|
||||
/usr/include/bits/pthreadtypes-arch.h
|
||||
/usr/include/bits/pthreadtypes.h
|
||||
/usr/include/bits/select.h
|
||||
/usr/include/bits/sockaddr.h
|
||||
/usr/include/bits/socket.h
|
||||
/usr/include/bits/socket_type.h
|
||||
/usr/include/bits/stat.h
|
||||
/usr/include/bits/stdint-intn.h
|
||||
/usr/include/bits/stdint-least.h
|
||||
/usr/include/bits/stdint-uintn.h
|
||||
/usr/include/bits/stdio_lim.h
|
||||
/usr/include/bits/stdlib-float.h
|
||||
/usr/include/bits/struct_mutex.h
|
||||
/usr/include/bits/struct_rwlock.h
|
||||
/usr/include/bits/struct_stat.h
|
||||
/usr/include/bits/thread-shared-types.h
|
||||
/usr/include/bits/time64.h
|
||||
/usr/include/bits/timesize.h
|
||||
/usr/include/bits/types.h
|
||||
/usr/include/bits/types/FILE.h
|
||||
/usr/include/bits/types/__FILE.h
|
||||
/usr/include/bits/types/__fpos64_t.h
|
||||
/usr/include/bits/types/__fpos_t.h
|
||||
/usr/include/bits/types/__locale_t.h
|
||||
/usr/include/bits/types/__mbstate_t.h
|
||||
/usr/include/bits/types/__sigset_t.h
|
||||
/usr/include/bits/types/clock_t.h
|
||||
/usr/include/bits/types/clockid_t.h
|
||||
/usr/include/bits/types/cookie_io_functions_t.h
|
||||
/usr/include/bits/types/locale_t.h
|
||||
/usr/include/bits/types/sigset_t.h
|
||||
/usr/include/bits/types/struct_FILE.h
|
||||
/usr/include/bits/types/struct_iovec.h
|
||||
/usr/include/bits/types/struct_osockaddr.h
|
||||
/usr/include/bits/types/struct_timespec.h
|
||||
/usr/include/bits/types/struct_timeval.h
|
||||
/usr/include/bits/types/time_t.h
|
||||
/usr/include/bits/types/timer_t.h
|
||||
/usr/include/bits/typesizes.h
|
||||
/usr/include/bits/uintn-identity.h
|
||||
/usr/include/bits/unistd_ext.h
|
||||
/usr/include/bits/waitflags.h
|
||||
/usr/include/bits/waitstatus.h
|
||||
/usr/include/bits/wchar.h
|
||||
/usr/include/bits/wordsize.h
|
||||
/usr/include/endian.h
|
||||
/usr/include/errno.h
|
||||
/usr/include/fcntl.h
|
||||
/usr/include/features-time64.h
|
||||
/usr/include/features.h
|
||||
/usr/include/gnu/stubs-64.h
|
||||
/usr/include/gnu/stubs.h
|
||||
/usr/include/linux/errno.h
|
||||
/usr/include/linux/posix_types.h
|
||||
/usr/include/linux/stddef.h
|
||||
/usr/include/netdb.h
|
||||
/usr/include/netinet/in.h
|
||||
/usr/include/poll.h
|
||||
/usr/include/rpc/netdb.h
|
||||
/usr/include/stdc-predef.h
|
||||
/usr/include/stdint.h
|
||||
/usr/include/stdio.h
|
||||
/usr/include/stdlib.h
|
||||
/usr/include/string.h
|
||||
/usr/include/strings.h
|
||||
/usr/include/sys/cdefs.h
|
||||
/usr/include/sys/poll.h
|
||||
/usr/include/sys/select.h
|
||||
/usr/include/sys/socket.h
|
||||
/usr/include/sys/types.h
|
||||
/usr/include/unistd.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdbool.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h
|
||||
|
||||
webserver
|
||||
/usr/lib/libc.so
|
||||
/usr/lib/libgcc_s.so
|
||||
/usr/lib/libm.so
|
||||
/usr/lib/ld-linux-x86-64.so.2
|
||||
|
||||
@@ -0,0 +1,563 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.31
|
||||
|
||||
CMakeFiles/webserver.dir/data.c.o: /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/data.c \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/data.h \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.h \
|
||||
/usr/include/alloca.h \
|
||||
/usr/include/bits/atomic_wide_counter.h \
|
||||
/usr/include/bits/byteswap.h \
|
||||
/usr/include/bits/endian.h \
|
||||
/usr/include/bits/endianness.h \
|
||||
/usr/include/bits/floatn-common.h \
|
||||
/usr/include/bits/floatn.h \
|
||||
/usr/include/bits/libc-header-start.h \
|
||||
/usr/include/bits/long-double.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/pthreadtypes.h \
|
||||
/usr/include/bits/select.h \
|
||||
/usr/include/bits/stdint-intn.h \
|
||||
/usr/include/bits/stdint-least.h \
|
||||
/usr/include/bits/stdint-uintn.h \
|
||||
/usr/include/bits/stdlib-float.h \
|
||||
/usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h \
|
||||
/usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/time64.h \
|
||||
/usr/include/bits/timesize.h \
|
||||
/usr/include/bits/types.h \
|
||||
/usr/include/bits/types/__locale_t.h \
|
||||
/usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/clock_t.h \
|
||||
/usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/sigset_t.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/time_t.h \
|
||||
/usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/typesizes.h \
|
||||
/usr/include/bits/uintn-identity.h \
|
||||
/usr/include/bits/waitflags.h \
|
||||
/usr/include/bits/waitstatus.h \
|
||||
/usr/include/bits/wchar.h \
|
||||
/usr/include/bits/wordsize.h \
|
||||
/usr/include/endian.h \
|
||||
/usr/include/features-time64.h \
|
||||
/usr/include/features.h \
|
||||
/usr/include/gnu/stubs-64.h \
|
||||
/usr/include/gnu/stubs.h \
|
||||
/usr/include/stdc-predef.h \
|
||||
/usr/include/stdint.h \
|
||||
/usr/include/stdlib.h \
|
||||
/usr/include/string.h \
|
||||
/usr/include/strings.h \
|
||||
/usr/include/sys/cdefs.h \
|
||||
/usr/include/sys/select.h \
|
||||
/usr/include/sys/types.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdbool.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h
|
||||
|
||||
CMakeFiles/webserver.dir/http.c.o: /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/http.c \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/http.h \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.h \
|
||||
/usr/include/alloca.h \
|
||||
/usr/include/bits/atomic_wide_counter.h \
|
||||
/usr/include/bits/byteswap.h \
|
||||
/usr/include/bits/endian.h \
|
||||
/usr/include/bits/endianness.h \
|
||||
/usr/include/bits/floatn-common.h \
|
||||
/usr/include/bits/floatn.h \
|
||||
/usr/include/bits/libc-header-start.h \
|
||||
/usr/include/bits/long-double.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/pthreadtypes.h \
|
||||
/usr/include/bits/select.h \
|
||||
/usr/include/bits/stdint-intn.h \
|
||||
/usr/include/bits/stdint-least.h \
|
||||
/usr/include/bits/stdint-uintn.h \
|
||||
/usr/include/bits/stdio_lim.h \
|
||||
/usr/include/bits/stdlib-float.h \
|
||||
/usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h \
|
||||
/usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/time64.h \
|
||||
/usr/include/bits/timesize.h \
|
||||
/usr/include/bits/types.h \
|
||||
/usr/include/bits/types/FILE.h \
|
||||
/usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/__fpos64_t.h \
|
||||
/usr/include/bits/types/__fpos_t.h \
|
||||
/usr/include/bits/types/__locale_t.h \
|
||||
/usr/include/bits/types/__mbstate_t.h \
|
||||
/usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/clock_t.h \
|
||||
/usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/sigset_t.h \
|
||||
/usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/time_t.h \
|
||||
/usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/typesizes.h \
|
||||
/usr/include/bits/uintn-identity.h \
|
||||
/usr/include/bits/waitflags.h \
|
||||
/usr/include/bits/waitstatus.h \
|
||||
/usr/include/bits/wchar.h \
|
||||
/usr/include/bits/wordsize.h \
|
||||
/usr/include/ctype.h \
|
||||
/usr/include/endian.h \
|
||||
/usr/include/features-time64.h \
|
||||
/usr/include/features.h \
|
||||
/usr/include/gnu/stubs-64.h \
|
||||
/usr/include/gnu/stubs.h \
|
||||
/usr/include/stdc-predef.h \
|
||||
/usr/include/stdint.h \
|
||||
/usr/include/stdio.h \
|
||||
/usr/include/stdlib.h \
|
||||
/usr/include/string.h \
|
||||
/usr/include/strings.h \
|
||||
/usr/include/sys/cdefs.h \
|
||||
/usr/include/sys/select.h \
|
||||
/usr/include/sys/types.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdbool.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h
|
||||
|
||||
CMakeFiles/webserver.dir/util.c.o: /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.c \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.h \
|
||||
/usr/include/alloca.h \
|
||||
/usr/include/asm-generic/errno-base.h \
|
||||
/usr/include/asm-generic/errno.h \
|
||||
/usr/include/asm/errno.h \
|
||||
/usr/include/bits/atomic_wide_counter.h \
|
||||
/usr/include/bits/byteswap.h \
|
||||
/usr/include/bits/endian.h \
|
||||
/usr/include/bits/endianness.h \
|
||||
/usr/include/bits/errno.h \
|
||||
/usr/include/bits/floatn-common.h \
|
||||
/usr/include/bits/floatn.h \
|
||||
/usr/include/bits/libc-header-start.h \
|
||||
/usr/include/bits/long-double.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/pthreadtypes.h \
|
||||
/usr/include/bits/select.h \
|
||||
/usr/include/bits/stdint-intn.h \
|
||||
/usr/include/bits/stdint-least.h \
|
||||
/usr/include/bits/stdint-uintn.h \
|
||||
/usr/include/bits/stdio_lim.h \
|
||||
/usr/include/bits/stdlib-float.h \
|
||||
/usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h \
|
||||
/usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/time64.h \
|
||||
/usr/include/bits/timesize.h \
|
||||
/usr/include/bits/types.h \
|
||||
/usr/include/bits/types/FILE.h \
|
||||
/usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/__fpos64_t.h \
|
||||
/usr/include/bits/types/__fpos_t.h \
|
||||
/usr/include/bits/types/__locale_t.h \
|
||||
/usr/include/bits/types/__mbstate_t.h \
|
||||
/usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/clock_t.h \
|
||||
/usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/sigset_t.h \
|
||||
/usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/time_t.h \
|
||||
/usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/typesizes.h \
|
||||
/usr/include/bits/uintn-identity.h \
|
||||
/usr/include/bits/waitflags.h \
|
||||
/usr/include/bits/waitstatus.h \
|
||||
/usr/include/bits/wchar.h \
|
||||
/usr/include/bits/wordsize.h \
|
||||
/usr/include/endian.h \
|
||||
/usr/include/errno.h \
|
||||
/usr/include/features-time64.h \
|
||||
/usr/include/features.h \
|
||||
/usr/include/gnu/stubs-64.h \
|
||||
/usr/include/gnu/stubs.h \
|
||||
/usr/include/linux/errno.h \
|
||||
/usr/include/stdc-predef.h \
|
||||
/usr/include/stdint.h \
|
||||
/usr/include/stdio.h \
|
||||
/usr/include/stdlib.h \
|
||||
/usr/include/string.h \
|
||||
/usr/include/strings.h \
|
||||
/usr/include/sys/cdefs.h \
|
||||
/usr/include/sys/select.h \
|
||||
/usr/include/sys/types.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h
|
||||
|
||||
CMakeFiles/webserver.dir/webserver.c.o: /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/webserver.c \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/data.h \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/http.h \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.h \
|
||||
/usr/include/alloca.h \
|
||||
/usr/include/arpa/inet.h \
|
||||
/usr/include/asm-generic/bitsperlong.h \
|
||||
/usr/include/asm-generic/errno-base.h \
|
||||
/usr/include/asm-generic/errno.h \
|
||||
/usr/include/asm-generic/posix_types.h \
|
||||
/usr/include/asm-generic/socket.h \
|
||||
/usr/include/asm-generic/sockios.h \
|
||||
/usr/include/asm/bitsperlong.h \
|
||||
/usr/include/asm/errno.h \
|
||||
/usr/include/asm/posix_types.h \
|
||||
/usr/include/asm/posix_types_64.h \
|
||||
/usr/include/asm/socket.h \
|
||||
/usr/include/asm/sockios.h \
|
||||
/usr/include/assert.h \
|
||||
/usr/include/bits/atomic_wide_counter.h \
|
||||
/usr/include/bits/byteswap.h \
|
||||
/usr/include/bits/confname.h \
|
||||
/usr/include/bits/endian.h \
|
||||
/usr/include/bits/endianness.h \
|
||||
/usr/include/bits/environments.h \
|
||||
/usr/include/bits/errno.h \
|
||||
/usr/include/bits/fcntl-linux.h \
|
||||
/usr/include/bits/fcntl.h \
|
||||
/usr/include/bits/floatn-common.h \
|
||||
/usr/include/bits/floatn.h \
|
||||
/usr/include/bits/getopt_core.h \
|
||||
/usr/include/bits/getopt_posix.h \
|
||||
/usr/include/bits/in.h \
|
||||
/usr/include/bits/libc-header-start.h \
|
||||
/usr/include/bits/long-double.h \
|
||||
/usr/include/bits/netdb.h \
|
||||
/usr/include/bits/poll.h \
|
||||
/usr/include/bits/posix_opt.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/pthreadtypes.h \
|
||||
/usr/include/bits/select.h \
|
||||
/usr/include/bits/sockaddr.h \
|
||||
/usr/include/bits/socket.h \
|
||||
/usr/include/bits/socket_type.h \
|
||||
/usr/include/bits/stat.h \
|
||||
/usr/include/bits/stdint-intn.h \
|
||||
/usr/include/bits/stdint-least.h \
|
||||
/usr/include/bits/stdint-uintn.h \
|
||||
/usr/include/bits/stdio_lim.h \
|
||||
/usr/include/bits/stdlib-float.h \
|
||||
/usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h \
|
||||
/usr/include/bits/struct_stat.h \
|
||||
/usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/time64.h \
|
||||
/usr/include/bits/timesize.h \
|
||||
/usr/include/bits/types.h \
|
||||
/usr/include/bits/types/FILE.h \
|
||||
/usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/__fpos64_t.h \
|
||||
/usr/include/bits/types/__fpos_t.h \
|
||||
/usr/include/bits/types/__locale_t.h \
|
||||
/usr/include/bits/types/__mbstate_t.h \
|
||||
/usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/clock_t.h \
|
||||
/usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/sigset_t.h \
|
||||
/usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/struct_iovec.h \
|
||||
/usr/include/bits/types/struct_osockaddr.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/time_t.h \
|
||||
/usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/typesizes.h \
|
||||
/usr/include/bits/uintn-identity.h \
|
||||
/usr/include/bits/unistd_ext.h \
|
||||
/usr/include/bits/waitflags.h \
|
||||
/usr/include/bits/waitstatus.h \
|
||||
/usr/include/bits/wchar.h \
|
||||
/usr/include/bits/wordsize.h \
|
||||
/usr/include/endian.h \
|
||||
/usr/include/errno.h \
|
||||
/usr/include/fcntl.h \
|
||||
/usr/include/features-time64.h \
|
||||
/usr/include/features.h \
|
||||
/usr/include/gnu/stubs-64.h \
|
||||
/usr/include/gnu/stubs.h \
|
||||
/usr/include/linux/errno.h \
|
||||
/usr/include/linux/posix_types.h \
|
||||
/usr/include/linux/stddef.h \
|
||||
/usr/include/netdb.h \
|
||||
/usr/include/netinet/in.h \
|
||||
/usr/include/poll.h \
|
||||
/usr/include/rpc/netdb.h \
|
||||
/usr/include/stdc-predef.h \
|
||||
/usr/include/stdint.h \
|
||||
/usr/include/stdio.h \
|
||||
/usr/include/stdlib.h \
|
||||
/usr/include/string.h \
|
||||
/usr/include/strings.h \
|
||||
/usr/include/sys/cdefs.h \
|
||||
/usr/include/sys/poll.h \
|
||||
/usr/include/sys/select.h \
|
||||
/usr/include/sys/socket.h \
|
||||
/usr/include/sys/types.h \
|
||||
/usr/include/unistd.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdbool.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h
|
||||
|
||||
webserver: /usr/lib/libc.so \
|
||||
/usr/lib/libgcc_s.so \
|
||||
/usr/lib/libm.so \
|
||||
/usr/lib/ld-linux-x86-64.so.2
|
||||
|
||||
|
||||
/usr/lib/ld-linux-x86-64.so.2:
|
||||
|
||||
/usr/lib/libm.so:
|
||||
|
||||
/usr/lib/libgcc_s.so:
|
||||
|
||||
/usr/include/unistd.h:
|
||||
|
||||
/usr/include/netinet/in.h:
|
||||
|
||||
/usr/include/netdb.h:
|
||||
|
||||
/usr/lib/libc.so:
|
||||
|
||||
/usr/include/fcntl.h:
|
||||
|
||||
/usr/include/bits/types/struct_iovec.h:
|
||||
|
||||
/usr/include/bits/struct_stat.h:
|
||||
|
||||
/usr/include/bits/types/struct_osockaddr.h:
|
||||
|
||||
/usr/include/bits/socket_type.h:
|
||||
|
||||
/usr/include/bits/sockaddr.h:
|
||||
|
||||
/usr/include/bits/posix_opt.h:
|
||||
|
||||
/usr/include/bits/getopt_posix.h:
|
||||
|
||||
/usr/include/bits/fcntl.h:
|
||||
|
||||
/usr/include/bits/unistd_ext.h:
|
||||
|
||||
/usr/include/bits/fcntl-linux.h:
|
||||
|
||||
/usr/include/bits/confname.h:
|
||||
|
||||
/usr/include/assert.h:
|
||||
|
||||
/usr/include/asm/sockios.h:
|
||||
|
||||
/usr/include/asm/socket.h:
|
||||
|
||||
/usr/include/bits/stat.h:
|
||||
|
||||
/usr/include/asm/posix_types_64.h:
|
||||
|
||||
/usr/include/asm/posix_types.h:
|
||||
|
||||
/usr/include/asm/bitsperlong.h:
|
||||
|
||||
/usr/include/sys/socket.h:
|
||||
|
||||
/usr/include/asm-generic/sockios.h:
|
||||
|
||||
/usr/include/asm-generic/bitsperlong.h:
|
||||
|
||||
/usr/include/arpa/inet.h:
|
||||
|
||||
/usr/include/linux/errno.h:
|
||||
|
||||
/usr/include/bits/errno.h:
|
||||
|
||||
/usr/include/asm-generic/errno.h:
|
||||
|
||||
/usr/include/asm-generic/errno-base.h:
|
||||
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.c:
|
||||
|
||||
/usr/include/bits/poll.h:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h:
|
||||
|
||||
/usr/include/ctype.h:
|
||||
|
||||
/usr/include/bits/types/struct_FILE.h:
|
||||
|
||||
/usr/include/bits/netdb.h:
|
||||
|
||||
/usr/include/bits/types/__mbstate_t.h:
|
||||
|
||||
/usr/include/bits/types/__fpos_t.h:
|
||||
|
||||
/usr/include/bits/types/__fpos64_t.h:
|
||||
|
||||
/usr/include/bits/types/FILE.h:
|
||||
|
||||
/usr/include/bits/getopt_core.h:
|
||||
|
||||
/usr/include/bits/types.h:
|
||||
|
||||
/usr/include/poll.h:
|
||||
|
||||
/usr/include/sys/cdefs.h:
|
||||
|
||||
/usr/include/bits/byteswap.h:
|
||||
|
||||
/usr/include/bits/thread-shared-types.h:
|
||||
|
||||
/usr/include/bits/stdint-least.h:
|
||||
|
||||
/usr/include/alloca.h:
|
||||
|
||||
/usr/include/bits/stdint-intn.h:
|
||||
|
||||
/usr/include/gnu/stubs-64.h:
|
||||
|
||||
/usr/include/bits/select.h:
|
||||
|
||||
/usr/include/asm-generic/socket.h:
|
||||
|
||||
/usr/include/features-time64.h:
|
||||
|
||||
/usr/include/bits/types/clock_t.h:
|
||||
|
||||
/usr/include/bits/types/__locale_t.h:
|
||||
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/data.h:
|
||||
|
||||
/usr/include/bits/wordsize.h:
|
||||
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.h:
|
||||
|
||||
/usr/include/bits/endianness.h:
|
||||
|
||||
/usr/include/bits/types/__FILE.h:
|
||||
|
||||
/usr/include/bits/stdlib-float.h:
|
||||
|
||||
/usr/include/bits/types/sigset_t.h:
|
||||
|
||||
/usr/include/sys/poll.h:
|
||||
|
||||
/usr/include/bits/floatn-common.h:
|
||||
|
||||
/usr/include/bits/long-double.h:
|
||||
|
||||
/usr/include/asm-generic/posix_types.h:
|
||||
|
||||
/usr/include/bits/types/__sigset_t.h:
|
||||
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/webserver.c:
|
||||
|
||||
/usr/include/asm/errno.h:
|
||||
|
||||
/usr/include/bits/timesize.h:
|
||||
|
||||
/usr/include/bits/endian.h:
|
||||
|
||||
/usr/include/bits/in.h:
|
||||
|
||||
/usr/include/bits/waitflags.h:
|
||||
|
||||
/usr/include/errno.h:
|
||||
|
||||
/usr/include/bits/types/clockid_t.h:
|
||||
|
||||
/usr/include/bits/atomic_wide_counter.h:
|
||||
|
||||
/usr/include/bits/pthreadtypes.h:
|
||||
|
||||
/usr/include/bits/floatn.h:
|
||||
|
||||
/usr/include/stdc-predef.h:
|
||||
|
||||
/usr/include/bits/pthreadtypes-arch.h:
|
||||
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/http.h:
|
||||
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/data.c:
|
||||
|
||||
/usr/include/bits/types/locale_t.h:
|
||||
|
||||
/usr/include/bits/types/struct_timespec.h:
|
||||
|
||||
/usr/include/bits/stdio_lim.h:
|
||||
|
||||
/usr/include/bits/types/struct_timeval.h:
|
||||
|
||||
/usr/include/linux/posix_types.h:
|
||||
|
||||
/usr/include/bits/libc-header-start.h:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h:
|
||||
|
||||
/usr/include/bits/struct_rwlock.h:
|
||||
|
||||
/usr/include/bits/types/time_t.h:
|
||||
|
||||
/usr/include/stdlib.h:
|
||||
|
||||
/usr/include/bits/struct_mutex.h:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h:
|
||||
|
||||
/usr/include/stdio.h:
|
||||
|
||||
/usr/include/bits/types/timer_t.h:
|
||||
|
||||
/usr/include/bits/socket.h:
|
||||
|
||||
/usr/include/bits/types/cookie_io_functions_t.h:
|
||||
|
||||
/usr/include/bits/stdint-uintn.h:
|
||||
|
||||
/usr/include/endian.h:
|
||||
|
||||
/usr/include/bits/uintn-identity.h:
|
||||
|
||||
/usr/include/bits/typesizes.h:
|
||||
|
||||
/usr/include/bits/time64.h:
|
||||
|
||||
/usr/include/string.h:
|
||||
|
||||
/usr/include/bits/waitstatus.h:
|
||||
|
||||
/usr/include/bits/wchar.h:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdbool.h:
|
||||
|
||||
/usr/include/features.h:
|
||||
|
||||
/usr/include/gnu/stubs.h:
|
||||
|
||||
/usr/include/rpc/netdb.h:
|
||||
|
||||
/usr/include/stdint.h:
|
||||
|
||||
/usr/include/bits/environments.h:
|
||||
|
||||
/usr/include/sys/select.h:
|
||||
|
||||
/usr/include/linux/stddef.h:
|
||||
|
||||
/usr/include/sys/types.h:
|
||||
|
||||
/usr/include/strings.h:
|
||||
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/http.c:
|
||||
@@ -0,0 +1,2 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Timestamp file for compiler generated dependencies management for webserver.
|
||||
Binary file not shown.
@@ -0,0 +1,35 @@
|
||||
CMakeFiles/webserver.dir/data.c.o: \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/data.c \
|
||||
/usr/include/stdc-predef.h \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/data.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdbool.h \
|
||||
/usr/include/stdlib.h /usr/include/bits/libc-header-start.h \
|
||||
/usr/include/features.h /usr/include/features-time64.h \
|
||||
/usr/include/bits/wordsize.h /usr/include/bits/timesize.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/bits/long-double.h \
|
||||
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h \
|
||||
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
|
||||
/usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
|
||||
/usr/include/sys/types.h /usr/include/bits/types.h \
|
||||
/usr/include/bits/typesizes.h /usr/include/bits/time64.h \
|
||||
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/stdint-intn.h /usr/include/endian.h \
|
||||
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
|
||||
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
|
||||
/usr/include/sys/select.h /usr/include/bits/select.h \
|
||||
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
|
||||
/usr/include/bits/stdlib-float.h \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h \
|
||||
/usr/include/stdint.h /usr/include/bits/wchar.h \
|
||||
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h \
|
||||
/usr/include/string.h /usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/__locale_t.h /usr/include/strings.h
|
||||
@@ -0,0 +1,2 @@
|
||||
# Empty dependencies file for webserver.
|
||||
# This may be replaced when dependencies are built.
|
||||
@@ -0,0 +1,10 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.31
|
||||
|
||||
# compile C with /usr/bin/cc
|
||||
C_DEFINES =
|
||||
|
||||
C_INCLUDES =
|
||||
|
||||
C_FLAGS = -g -std=gnu11 -Wall -Wextra -Wpedantic
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,43 @@
|
||||
CMakeFiles/webserver.dir/http.c.o: \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/http.c \
|
||||
/usr/include/stdc-predef.h \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/http.h \
|
||||
/usr/include/stdlib.h /usr/include/bits/libc-header-start.h \
|
||||
/usr/include/features.h /usr/include/features-time64.h \
|
||||
/usr/include/bits/wordsize.h /usr/include/bits/timesize.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/bits/long-double.h \
|
||||
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h \
|
||||
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
|
||||
/usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
|
||||
/usr/include/sys/types.h /usr/include/bits/types.h \
|
||||
/usr/include/bits/typesizes.h /usr/include/bits/time64.h \
|
||||
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/stdint-intn.h /usr/include/endian.h \
|
||||
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
|
||||
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
|
||||
/usr/include/sys/select.h /usr/include/bits/select.h \
|
||||
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
|
||||
/usr/include/bits/stdlib-float.h \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h \
|
||||
/usr/include/stdint.h /usr/include/bits/wchar.h \
|
||||
/usr/include/bits/stdint-uintn.h /usr/include/bits/stdint-least.h \
|
||||
/usr/include/ctype.h /usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/__locale_t.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdbool.h \
|
||||
/usr/include/stdio.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h \
|
||||
/usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
|
||||
/usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/stdio_lim.h /usr/include/string.h \
|
||||
/usr/include/strings.h
|
||||
@@ -0,0 +1,28 @@
|
||||
webserver: \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libm.so \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libm.so \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libgcc_s.so \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libgcc_s.so \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libc.so \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libc.so \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libgcc_s.so \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libgcc_s.so \
|
||||
/usr/lib/ld-linux-x86-64.so.2
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libm.so:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libm.so:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libgcc_s.so:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libgcc_s.so:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libc.so:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libc.so:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libgcc_s.so:
|
||||
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/../../../../lib/libgcc_s.so:
|
||||
|
||||
/usr/lib/ld-linux-x86-64.so.2:
|
||||
@@ -0,0 +1 @@
|
||||
/usr/bin/cc -g -Wl,--dependency-file=CMakeFiles/webserver.dir/link.d CMakeFiles/webserver.dir/webserver.c.o CMakeFiles/webserver.dir/http.c.o CMakeFiles/webserver.dir/util.c.o CMakeFiles/webserver.dir/data.c.o -o webserver -lm
|
||||
@@ -0,0 +1,6 @@
|
||||
CMAKE_PROGRESS_1 = 1
|
||||
CMAKE_PROGRESS_2 = 2
|
||||
CMAKE_PROGRESS_3 = 3
|
||||
CMAKE_PROGRESS_4 = 4
|
||||
CMAKE_PROGRESS_5 = 5
|
||||
|
||||
Binary file not shown.
@@ -0,0 +1,42 @@
|
||||
CMakeFiles/webserver.dir/util.c.o: \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.c \
|
||||
/usr/include/stdc-predef.h \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h \
|
||||
/usr/include/stdint.h /usr/include/bits/libc-header-start.h \
|
||||
/usr/include/features.h /usr/include/features-time64.h \
|
||||
/usr/include/bits/wordsize.h /usr/include/bits/timesize.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/bits/long-double.h \
|
||||
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
|
||||
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
|
||||
/usr/include/bits/time64.h /usr/include/bits/wchar.h \
|
||||
/usr/include/bits/stdint-intn.h /usr/include/bits/stdint-uintn.h \
|
||||
/usr/include/bits/stdint-least.h /usr/include/stdlib.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h \
|
||||
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
|
||||
/usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
|
||||
/usr/include/sys/types.h /usr/include/bits/types/clock_t.h \
|
||||
/usr/include/bits/types/clockid_t.h /usr/include/bits/types/time_t.h \
|
||||
/usr/include/bits/types/timer_t.h /usr/include/endian.h \
|
||||
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
|
||||
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
|
||||
/usr/include/sys/select.h /usr/include/bits/select.h \
|
||||
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
|
||||
/usr/include/bits/stdlib-float.h /usr/include/errno.h \
|
||||
/usr/include/bits/errno.h /usr/include/linux/errno.h \
|
||||
/usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
|
||||
/usr/include/asm-generic/errno-base.h /usr/include/stdio.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h \
|
||||
/usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
|
||||
/usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/stdio_lim.h /usr/include/string.h \
|
||||
/usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
|
||||
/usr/include/strings.h
|
||||
Binary file not shown.
@@ -0,0 +1,64 @@
|
||||
CMakeFiles/webserver.dir/webserver.c.o: \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/webserver.c \
|
||||
/usr/include/stdc-predef.h /usr/include/arpa/inet.h \
|
||||
/usr/include/features.h /usr/include/features-time64.h \
|
||||
/usr/include/bits/wordsize.h /usr/include/bits/timesize.h \
|
||||
/usr/include/sys/cdefs.h /usr/include/bits/long-double.h \
|
||||
/usr/include/gnu/stubs.h /usr/include/gnu/stubs-64.h \
|
||||
/usr/include/netinet/in.h /usr/include/bits/stdint-uintn.h \
|
||||
/usr/include/bits/types.h /usr/include/bits/typesizes.h \
|
||||
/usr/include/bits/time64.h /usr/include/sys/socket.h \
|
||||
/usr/include/bits/types/struct_iovec.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stddef.h \
|
||||
/usr/include/bits/socket.h /usr/include/sys/types.h \
|
||||
/usr/include/bits/types/clock_t.h /usr/include/bits/types/clockid_t.h \
|
||||
/usr/include/bits/types/time_t.h /usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/stdint-intn.h /usr/include/endian.h \
|
||||
/usr/include/bits/endian.h /usr/include/bits/endianness.h \
|
||||
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
|
||||
/usr/include/sys/select.h /usr/include/bits/select.h \
|
||||
/usr/include/bits/types/sigset_t.h /usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h /usr/include/bits/socket_type.h \
|
||||
/usr/include/bits/sockaddr.h /usr/include/asm/socket.h \
|
||||
/usr/include/asm-generic/socket.h /usr/include/linux/posix_types.h \
|
||||
/usr/include/linux/stddef.h /usr/include/asm/posix_types.h \
|
||||
/usr/include/asm/posix_types_64.h /usr/include/asm-generic/posix_types.h \
|
||||
/usr/include/asm/bitsperlong.h /usr/include/asm-generic/bitsperlong.h \
|
||||
/usr/include/asm/sockios.h /usr/include/asm-generic/sockios.h \
|
||||
/usr/include/bits/types/struct_osockaddr.h /usr/include/bits/in.h \
|
||||
/usr/include/assert.h /usr/include/errno.h /usr/include/bits/errno.h \
|
||||
/usr/include/linux/errno.h /usr/include/asm/errno.h \
|
||||
/usr/include/asm-generic/errno.h /usr/include/asm-generic/errno-base.h \
|
||||
/usr/include/fcntl.h /usr/include/bits/fcntl.h \
|
||||
/usr/include/bits/fcntl-linux.h /usr/include/bits/stat.h \
|
||||
/usr/include/bits/struct_stat.h /usr/include/netdb.h \
|
||||
/usr/include/rpc/netdb.h /usr/include/bits/netdb.h /usr/include/poll.h \
|
||||
/usr/include/sys/poll.h /usr/include/bits/poll.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdint.h \
|
||||
/usr/include/stdint.h /usr/include/bits/libc-header-start.h \
|
||||
/usr/include/bits/wchar.h /usr/include/bits/stdint-least.h \
|
||||
/usr/include/stdio.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdarg.h \
|
||||
/usr/include/bits/types/__fpos_t.h /usr/include/bits/types/__mbstate_t.h \
|
||||
/usr/include/bits/types/__fpos64_t.h /usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/FILE.h /usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/stdio_lim.h /usr/include/bits/floatn.h \
|
||||
/usr/include/bits/floatn-common.h /usr/include/string.h \
|
||||
/usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
|
||||
/usr/include/strings.h /usr/include/unistd.h \
|
||||
/usr/include/bits/posix_opt.h /usr/include/bits/environments.h \
|
||||
/usr/include/bits/confname.h /usr/include/bits/getopt_posix.h \
|
||||
/usr/include/bits/getopt_core.h /usr/include/bits/unistd_ext.h \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/data.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/14.2.1/include/stdbool.h \
|
||||
/usr/include/stdlib.h /usr/include/bits/waitflags.h \
|
||||
/usr/include/bits/waitstatus.h /usr/include/alloca.h \
|
||||
/usr/include/bits/stdlib-float.h \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/util.h \
|
||||
/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/http.h
|
||||
@@ -0,0 +1,77 @@
|
||||
# This file will be configured to contain variables for CPack. These variables
|
||||
# should be set in the CMake list file of the project before CPack module is
|
||||
# included. The list of available CPACK_xxx variables and their associated
|
||||
# documentation may be obtained using
|
||||
# cpack --help-variable-list
|
||||
#
|
||||
# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)
|
||||
# and some are specific to a generator
|
||||
# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables
|
||||
# usually begin with CPACK_<GENNAME>_xxxx.
|
||||
|
||||
|
||||
set(CPACK_BINARY_DEB "OFF")
|
||||
set(CPACK_BINARY_FREEBSD "OFF")
|
||||
set(CPACK_BINARY_IFW "OFF")
|
||||
set(CPACK_BINARY_NSIS "OFF")
|
||||
set(CPACK_BINARY_RPM "OFF")
|
||||
set(CPACK_BINARY_STGZ "ON")
|
||||
set(CPACK_BINARY_TBZ2 "OFF")
|
||||
set(CPACK_BINARY_TGZ "ON")
|
||||
set(CPACK_BINARY_TXZ "OFF")
|
||||
set(CPACK_BINARY_TZ "ON")
|
||||
set(CPACK_BUILD_SOURCE_DIRS "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2;/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build")
|
||||
set(CPACK_CMAKE_GENERATOR "Unix Makefiles")
|
||||
set(CPACK_COMPONENTS_ALL "")
|
||||
set(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE")
|
||||
set(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE")
|
||||
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE "/usr/share/cmake/Templates/CPack.GenericDescription.txt")
|
||||
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY "RN-Praxis built using CMake")
|
||||
set(CPACK_GENERATOR "STGZ;TGZ;TZ")
|
||||
set(CPACK_INNOSETUP_ARCHITECTURE "x64")
|
||||
set(CPACK_INSTALL_CMAKE_PROJECTS "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build;RN-Praxis;ALL;/")
|
||||
set(CPACK_INSTALL_PREFIX "/usr/local")
|
||||
set(CPACK_MODULE_PATH "")
|
||||
set(CPACK_NSIS_DISPLAY_NAME "RN-Praxis 0.1.1")
|
||||
set(CPACK_NSIS_INSTALLER_ICON_CODE "")
|
||||
set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
|
||||
set(CPACK_NSIS_INSTALL_ROOT "\$PROGRAMFILES")
|
||||
set(CPACK_NSIS_PACKAGE_NAME "RN-Praxis 0.1.1")
|
||||
set(CPACK_NSIS_UNINSTALL_NAME "Uninstall")
|
||||
set(CPACK_OBJCOPY_EXECUTABLE "/usr/bin/objcopy")
|
||||
set(CPACK_OBJDUMP_EXECUTABLE "/usr/bin/objdump")
|
||||
set(CPACK_OUTPUT_CONFIG_FILE "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CPackConfig.cmake")
|
||||
set(CPACK_PACKAGE_DEFAULT_LOCATION "/")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_FILE "/usr/share/cmake/Templates/CPack.GenericDescription.txt")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "RN-Praxis built using CMake")
|
||||
set(CPACK_PACKAGE_FILE_NAME "RN-Praxis-0.1.1-Linux")
|
||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "RN-Praxis 0.1.1")
|
||||
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "RN-Praxis 0.1.1")
|
||||
set(CPACK_PACKAGE_NAME "RN-Praxis")
|
||||
set(CPACK_PACKAGE_RELOCATABLE "true")
|
||||
set(CPACK_PACKAGE_VENDOR "Humanity")
|
||||
set(CPACK_PACKAGE_VERSION "0.1.1")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR "0")
|
||||
set(CPACK_PACKAGE_VERSION_MINOR "1")
|
||||
set(CPACK_PACKAGE_VERSION_PATCH "1")
|
||||
set(CPACK_READELF_EXECUTABLE "/usr/bin/readelf")
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "/usr/share/cmake/Templates/CPack.GenericLicense.txt")
|
||||
set(CPACK_RESOURCE_FILE_README "/usr/share/cmake/Templates/CPack.GenericDescription.txt")
|
||||
set(CPACK_RESOURCE_FILE_WELCOME "/usr/share/cmake/Templates/CPack.GenericWelcome.txt")
|
||||
set(CPACK_SET_DESTDIR "OFF")
|
||||
set(CPACK_SOURCE_GENERATOR "TGZ")
|
||||
set(CPACK_SOURCE_IGNORE_FILES "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build;/\\..*\$")
|
||||
set(CPACK_SOURCE_OUTPUT_CONFIG_FILE "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CPackSourceConfig.cmake")
|
||||
set(CPACK_SYSTEM_NAME "Linux")
|
||||
set(CPACK_THREADS "1")
|
||||
set(CPACK_TOPLEVEL_TAG "Linux")
|
||||
set(CPACK_VERBATIM_VARIABLES "YES")
|
||||
set(CPACK_WIX_SIZEOF_VOID_P "8")
|
||||
|
||||
if(NOT CPACK_PROPERTIES_FILE)
|
||||
set(CPACK_PROPERTIES_FILE "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CPackProperties.cmake")
|
||||
endif()
|
||||
|
||||
if(EXISTS ${CPACK_PROPERTIES_FILE})
|
||||
include(${CPACK_PROPERTIES_FILE})
|
||||
endif()
|
||||
@@ -0,0 +1,84 @@
|
||||
# This file will be configured to contain variables for CPack. These variables
|
||||
# should be set in the CMake list file of the project before CPack module is
|
||||
# included. The list of available CPACK_xxx variables and their associated
|
||||
# documentation may be obtained using
|
||||
# cpack --help-variable-list
|
||||
#
|
||||
# Some variables are common to all generators (e.g. CPACK_PACKAGE_NAME)
|
||||
# and some are specific to a generator
|
||||
# (e.g. CPACK_NSIS_EXTRA_INSTALL_COMMANDS). The generator specific variables
|
||||
# usually begin with CPACK_<GENNAME>_xxxx.
|
||||
|
||||
|
||||
set(CPACK_BINARY_DEB "OFF")
|
||||
set(CPACK_BINARY_FREEBSD "OFF")
|
||||
set(CPACK_BINARY_IFW "OFF")
|
||||
set(CPACK_BINARY_NSIS "OFF")
|
||||
set(CPACK_BINARY_RPM "OFF")
|
||||
set(CPACK_BINARY_STGZ "ON")
|
||||
set(CPACK_BINARY_TBZ2 "OFF")
|
||||
set(CPACK_BINARY_TGZ "ON")
|
||||
set(CPACK_BINARY_TXZ "OFF")
|
||||
set(CPACK_BINARY_TZ "ON")
|
||||
set(CPACK_BUILD_SOURCE_DIRS "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2;/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build")
|
||||
set(CPACK_CMAKE_GENERATOR "Unix Makefiles")
|
||||
set(CPACK_COMPONENTS_ALL "")
|
||||
set(CPACK_COMPONENT_UNSPECIFIED_HIDDEN "TRUE")
|
||||
set(CPACK_COMPONENT_UNSPECIFIED_REQUIRED "TRUE")
|
||||
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_FILE "/usr/share/cmake/Templates/CPack.GenericDescription.txt")
|
||||
set(CPACK_DEFAULT_PACKAGE_DESCRIPTION_SUMMARY "RN-Praxis built using CMake")
|
||||
set(CPACK_GENERATOR "TGZ")
|
||||
set(CPACK_IGNORE_FILES "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build;/\\..*\$")
|
||||
set(CPACK_INNOSETUP_ARCHITECTURE "x64")
|
||||
set(CPACK_INSTALLED_DIRECTORIES "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2;/")
|
||||
set(CPACK_INSTALL_CMAKE_PROJECTS "")
|
||||
set(CPACK_INSTALL_PREFIX "/usr/local")
|
||||
set(CPACK_MODULE_PATH "")
|
||||
set(CPACK_NSIS_DISPLAY_NAME "RN-Praxis 0.1.1")
|
||||
set(CPACK_NSIS_INSTALLER_ICON_CODE "")
|
||||
set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "")
|
||||
set(CPACK_NSIS_INSTALL_ROOT "\$PROGRAMFILES")
|
||||
set(CPACK_NSIS_PACKAGE_NAME "RN-Praxis 0.1.1")
|
||||
set(CPACK_NSIS_UNINSTALL_NAME "Uninstall")
|
||||
set(CPACK_OBJCOPY_EXECUTABLE "/usr/bin/objcopy")
|
||||
set(CPACK_OBJDUMP_EXECUTABLE "/usr/bin/objdump")
|
||||
set(CPACK_OUTPUT_CONFIG_FILE "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CPackConfig.cmake")
|
||||
set(CPACK_PACKAGE_DEFAULT_LOCATION "/")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_FILE "/usr/share/cmake/Templates/CPack.GenericDescription.txt")
|
||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "RN-Praxis built using CMake")
|
||||
set(CPACK_PACKAGE_FILE_NAME "RN-Praxis-0.1.1-Source")
|
||||
set(CPACK_PACKAGE_INSTALL_DIRECTORY "RN-Praxis 0.1.1")
|
||||
set(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "RN-Praxis 0.1.1")
|
||||
set(CPACK_PACKAGE_NAME "RN-Praxis")
|
||||
set(CPACK_PACKAGE_RELOCATABLE "true")
|
||||
set(CPACK_PACKAGE_VENDOR "Humanity")
|
||||
set(CPACK_PACKAGE_VERSION "0.1.1")
|
||||
set(CPACK_PACKAGE_VERSION_MAJOR "0")
|
||||
set(CPACK_PACKAGE_VERSION_MINOR "1")
|
||||
set(CPACK_PACKAGE_VERSION_PATCH "1")
|
||||
set(CPACK_READELF_EXECUTABLE "/usr/bin/readelf")
|
||||
set(CPACK_RESOURCE_FILE_LICENSE "/usr/share/cmake/Templates/CPack.GenericLicense.txt")
|
||||
set(CPACK_RESOURCE_FILE_README "/usr/share/cmake/Templates/CPack.GenericDescription.txt")
|
||||
set(CPACK_RESOURCE_FILE_WELCOME "/usr/share/cmake/Templates/CPack.GenericWelcome.txt")
|
||||
set(CPACK_RPM_PACKAGE_SOURCES "ON")
|
||||
set(CPACK_SET_DESTDIR "OFF")
|
||||
set(CPACK_SOURCE_GENERATOR "TGZ")
|
||||
set(CPACK_SOURCE_IGNORE_FILES "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build;/\\..*\$")
|
||||
set(CPACK_SOURCE_INSTALLED_DIRECTORIES "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2;/")
|
||||
set(CPACK_SOURCE_OUTPUT_CONFIG_FILE "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CPackSourceConfig.cmake")
|
||||
set(CPACK_SOURCE_PACKAGE_FILE_NAME "RN-Praxis-0.1.1-Source")
|
||||
set(CPACK_SOURCE_TOPLEVEL_TAG "Linux-Source")
|
||||
set(CPACK_STRIP_FILES "")
|
||||
set(CPACK_SYSTEM_NAME "Linux")
|
||||
set(CPACK_THREADS "1")
|
||||
set(CPACK_TOPLEVEL_TAG "Linux-Source")
|
||||
set(CPACK_VERBATIM_VARIABLES "YES")
|
||||
set(CPACK_WIX_SIZEOF_VOID_P "8")
|
||||
|
||||
if(NOT CPACK_PROPERTIES_FILE)
|
||||
set(CPACK_PROPERTIES_FILE "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CPackProperties.cmake")
|
||||
endif()
|
||||
|
||||
if(EXISTS ${CPACK_PROPERTIES_FILE})
|
||||
include(${CPACK_PROPERTIES_FILE})
|
||||
endif()
|
||||
+284
@@ -0,0 +1,284 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.31
|
||||
|
||||
# Default target executed when no arguments are given to make.
|
||||
default_target: all
|
||||
.PHONY : default_target
|
||||
|
||||
# Allow only one "make -f Makefile2" at a time, but pass parallelism.
|
||||
.NOTPARALLEL:
|
||||
|
||||
#=============================================================================
|
||||
# Special targets provided by cmake.
|
||||
|
||||
# Disable implicit rules so canonical targets will work.
|
||||
.SUFFIXES:
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : %,v
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : RCS/%
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : RCS/%,v
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : SCCS/s.%
|
||||
|
||||
# Disable VCS-based implicit rules.
|
||||
% : s.%
|
||||
|
||||
.SUFFIXES: .hpux_make_needs_suffix_list
|
||||
|
||||
# Command-line flag to silence nested $(MAKE).
|
||||
$(VERBOSE)MAKESILENT = -s
|
||||
|
||||
#Suppress display of executed commands.
|
||||
$(VERBOSE).SILENT:
|
||||
|
||||
# A target that is always out of date.
|
||||
cmake_force:
|
||||
.PHONY : cmake_force
|
||||
|
||||
#=============================================================================
|
||||
# Set environment variables for the build.
|
||||
|
||||
# The shell in which to execute make rules.
|
||||
SHELL = /bin/sh
|
||||
|
||||
# The CMake executable.
|
||||
CMAKE_COMMAND = /usr/bin/cmake
|
||||
|
||||
# The command to remove a file.
|
||||
RM = /usr/bin/cmake -E rm -f
|
||||
|
||||
# Escaping for special characters.
|
||||
EQUALS = =
|
||||
|
||||
# The top-level source directory on which CMake was run.
|
||||
CMAKE_SOURCE_DIR = /home/timo/Dokumente/uni/praxis2.skeleton/praxis2
|
||||
|
||||
# The top-level build directory on which CMake was run.
|
||||
CMAKE_BINARY_DIR = /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build
|
||||
|
||||
#=============================================================================
|
||||
# Targets provided globally by CMake.
|
||||
|
||||
# Special rule for the target package
|
||||
package: preinstall
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Run CPack packaging tool..."
|
||||
/usr/bin/cpack --config ./CPackConfig.cmake
|
||||
.PHONY : package
|
||||
|
||||
# Special rule for the target package
|
||||
package/fast: package
|
||||
.PHONY : package/fast
|
||||
|
||||
# Special rule for the target package_source
|
||||
package_source:
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Run CPack packaging tool for source..."
|
||||
/usr/bin/cpack --config ./CPackSourceConfig.cmake /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CPackSourceConfig.cmake
|
||||
.PHONY : package_source
|
||||
|
||||
# Special rule for the target package_source
|
||||
package_source/fast: package_source
|
||||
.PHONY : package_source/fast
|
||||
|
||||
# Special rule for the target edit_cache
|
||||
edit_cache:
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake cache editor..."
|
||||
/usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
|
||||
.PHONY : edit_cache
|
||||
|
||||
# Special rule for the target edit_cache
|
||||
edit_cache/fast: edit_cache
|
||||
.PHONY : edit_cache/fast
|
||||
|
||||
# Special rule for the target rebuild_cache
|
||||
rebuild_cache:
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --cyan "Running CMake to regenerate build system..."
|
||||
/usr/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
|
||||
.PHONY : rebuild_cache
|
||||
|
||||
# Special rule for the target rebuild_cache
|
||||
rebuild_cache/fast: rebuild_cache
|
||||
.PHONY : rebuild_cache/fast
|
||||
|
||||
# The main all target
|
||||
all: cmake_check_build_system
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build//CMakeFiles/progress.marks
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/CMakeFiles 0
|
||||
.PHONY : all
|
||||
|
||||
# The main clean target
|
||||
clean:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean
|
||||
.PHONY : clean
|
||||
|
||||
# The main clean target
|
||||
clean/fast: clean
|
||||
.PHONY : clean/fast
|
||||
|
||||
# Prepare targets for installation.
|
||||
preinstall: all
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
|
||||
.PHONY : preinstall
|
||||
|
||||
# Prepare targets for installation.
|
||||
preinstall/fast:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall
|
||||
.PHONY : preinstall/fast
|
||||
|
||||
# clear depends
|
||||
depend:
|
||||
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1
|
||||
.PHONY : depend
|
||||
|
||||
#=============================================================================
|
||||
# Target rules for targets named webserver
|
||||
|
||||
# Build rule for target.
|
||||
webserver: cmake_check_build_system
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 webserver
|
||||
.PHONY : webserver
|
||||
|
||||
# fast build rule for target.
|
||||
webserver/fast:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/webserver.dir/build.make CMakeFiles/webserver.dir/build
|
||||
.PHONY : webserver/fast
|
||||
|
||||
data.o: data.c.o
|
||||
.PHONY : data.o
|
||||
|
||||
# target to build an object file
|
||||
data.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/webserver.dir/build.make CMakeFiles/webserver.dir/data.c.o
|
||||
.PHONY : data.c.o
|
||||
|
||||
data.i: data.c.i
|
||||
.PHONY : data.i
|
||||
|
||||
# target to preprocess a source file
|
||||
data.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/webserver.dir/build.make CMakeFiles/webserver.dir/data.c.i
|
||||
.PHONY : data.c.i
|
||||
|
||||
data.s: data.c.s
|
||||
.PHONY : data.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
data.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/webserver.dir/build.make CMakeFiles/webserver.dir/data.c.s
|
||||
.PHONY : data.c.s
|
||||
|
||||
http.o: http.c.o
|
||||
.PHONY : http.o
|
||||
|
||||
# target to build an object file
|
||||
http.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/webserver.dir/build.make CMakeFiles/webserver.dir/http.c.o
|
||||
.PHONY : http.c.o
|
||||
|
||||
http.i: http.c.i
|
||||
.PHONY : http.i
|
||||
|
||||
# target to preprocess a source file
|
||||
http.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/webserver.dir/build.make CMakeFiles/webserver.dir/http.c.i
|
||||
.PHONY : http.c.i
|
||||
|
||||
http.s: http.c.s
|
||||
.PHONY : http.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
http.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/webserver.dir/build.make CMakeFiles/webserver.dir/http.c.s
|
||||
.PHONY : http.c.s
|
||||
|
||||
util.o: util.c.o
|
||||
.PHONY : util.o
|
||||
|
||||
# target to build an object file
|
||||
util.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/webserver.dir/build.make CMakeFiles/webserver.dir/util.c.o
|
||||
.PHONY : util.c.o
|
||||
|
||||
util.i: util.c.i
|
||||
.PHONY : util.i
|
||||
|
||||
# target to preprocess a source file
|
||||
util.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/webserver.dir/build.make CMakeFiles/webserver.dir/util.c.i
|
||||
.PHONY : util.c.i
|
||||
|
||||
util.s: util.c.s
|
||||
.PHONY : util.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
util.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/webserver.dir/build.make CMakeFiles/webserver.dir/util.c.s
|
||||
.PHONY : util.c.s
|
||||
|
||||
webserver.o: webserver.c.o
|
||||
.PHONY : webserver.o
|
||||
|
||||
# target to build an object file
|
||||
webserver.c.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/webserver.dir/build.make CMakeFiles/webserver.dir/webserver.c.o
|
||||
.PHONY : webserver.c.o
|
||||
|
||||
webserver.i: webserver.c.i
|
||||
.PHONY : webserver.i
|
||||
|
||||
# target to preprocess a source file
|
||||
webserver.c.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/webserver.dir/build.make CMakeFiles/webserver.dir/webserver.c.i
|
||||
.PHONY : webserver.c.i
|
||||
|
||||
webserver.s: webserver.c.s
|
||||
.PHONY : webserver.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
webserver.c.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/webserver.dir/build.make CMakeFiles/webserver.dir/webserver.c.s
|
||||
.PHONY : webserver.c.s
|
||||
|
||||
# Help Target
|
||||
help:
|
||||
@echo "The following are some of the valid targets for this Makefile:"
|
||||
@echo "... all (the default if no target is provided)"
|
||||
@echo "... clean"
|
||||
@echo "... depend"
|
||||
@echo "... edit_cache"
|
||||
@echo "... package"
|
||||
@echo "... package_source"
|
||||
@echo "... rebuild_cache"
|
||||
@echo "... webserver"
|
||||
@echo "... data.o"
|
||||
@echo "... data.i"
|
||||
@echo "... data.s"
|
||||
@echo "... http.o"
|
||||
@echo "... http.i"
|
||||
@echo "... http.s"
|
||||
@echo "... util.o"
|
||||
@echo "... util.i"
|
||||
@echo "... util.s"
|
||||
@echo "... webserver.o"
|
||||
@echo "... webserver.i"
|
||||
@echo "... webserver.s"
|
||||
.PHONY : help
|
||||
|
||||
|
||||
|
||||
#=============================================================================
|
||||
# Special targets to cleanup operation of make.
|
||||
|
||||
# Special rule to run CMake to check the build system integrity.
|
||||
# No rule that depends on this can have commands that come from listfiles
|
||||
# because they might be regenerated.
|
||||
cmake_check_build_system:
|
||||
$(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0
|
||||
.PHONY : cmake_check_build_system
|
||||
|
||||
@@ -0,0 +1,66 @@
|
||||
# Install script for directory: /home/timo/Dokumente/uni/praxis2.skeleton/praxis2
|
||||
|
||||
# Set the install prefix
|
||||
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
|
||||
set(CMAKE_INSTALL_PREFIX "/usr/local")
|
||||
endif()
|
||||
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
|
||||
|
||||
# Set the install configuration name.
|
||||
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
|
||||
if(BUILD_TYPE)
|
||||
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
|
||||
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
|
||||
else()
|
||||
set(CMAKE_INSTALL_CONFIG_NAME "Debug")
|
||||
endif()
|
||||
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
|
||||
endif()
|
||||
|
||||
# Set the component getting installed.
|
||||
if(NOT CMAKE_INSTALL_COMPONENT)
|
||||
if(COMPONENT)
|
||||
message(STATUS "Install component: \"${COMPONENT}\"")
|
||||
set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
|
||||
else()
|
||||
set(CMAKE_INSTALL_COMPONENT)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# Install shared libraries without execute permission?
|
||||
if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE)
|
||||
set(CMAKE_INSTALL_SO_NO_EXE "0")
|
||||
endif()
|
||||
|
||||
# Is this installation the result of a crosscompile?
|
||||
if(NOT DEFINED CMAKE_CROSSCOMPILING)
|
||||
set(CMAKE_CROSSCOMPILING "FALSE")
|
||||
endif()
|
||||
|
||||
# Set path to fallback-tool for dependency-resolution.
|
||||
if(NOT DEFINED CMAKE_OBJDUMP)
|
||||
set(CMAKE_OBJDUMP "/usr/bin/objdump")
|
||||
endif()
|
||||
|
||||
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
|
||||
"${CMAKE_INSTALL_MANIFEST_FILES}")
|
||||
if(CMAKE_INSTALL_LOCAL_ONLY)
|
||||
file(WRITE "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/install_local_manifest.txt"
|
||||
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
|
||||
endif()
|
||||
if(CMAKE_INSTALL_COMPONENT)
|
||||
if(CMAKE_INSTALL_COMPONENT MATCHES "^[a-zA-Z0-9_.+-]+$")
|
||||
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
|
||||
else()
|
||||
string(MD5 CMAKE_INST_COMP_HASH "${CMAKE_INSTALL_COMPONENT}")
|
||||
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INST_COMP_HASH}.txt")
|
||||
unset(CMAKE_INST_COMP_HASH)
|
||||
endif()
|
||||
else()
|
||||
set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
|
||||
endif()
|
||||
|
||||
if(NOT CMAKE_INSTALL_LOCAL_ONLY)
|
||||
file(WRITE "/home/timo/Dokumente/uni/praxis2.skeleton/praxis2/build/${CMAKE_INSTALL_MANIFEST}"
|
||||
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
|
||||
endif()
|
||||
Executable
BIN
Binary file not shown.
@@ -0,0 +1,66 @@
|
||||
#include "data.h"
|
||||
|
||||
#include <string.h>
|
||||
|
||||
struct tuple *find(string key, struct tuple *tuples, size_t n_tuples) {
|
||||
for (size_t i = 0; i < n_tuples; i += 1) {
|
||||
// compare keys with 'strcmp'
|
||||
if (tuples[i].key && strcmp(key, tuples[i].key) == 0) {
|
||||
return &(tuples[i]);
|
||||
}
|
||||
}
|
||||
return NULL;
|
||||
}
|
||||
|
||||
const char *get(const string key, struct tuple *tuples, size_t n_tuples,
|
||||
size_t *value_length) {
|
||||
struct tuple *tuple = find(key, tuples, n_tuples);
|
||||
if (tuple) {
|
||||
*value_length = tuple->value_length;
|
||||
return tuple->value;
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
bool set(const string key, char *value, size_t value_length,
|
||||
struct tuple *tuples, size_t n_tuples) {
|
||||
// check if tuple already exists
|
||||
struct tuple *tuple = find(key, tuples, n_tuples);
|
||||
|
||||
if (tuple) { // overwrite existing value
|
||||
free(tuple->value);
|
||||
tuple->value = (char *)malloc(value_length * sizeof(char));
|
||||
strcpy(tuple->value, value);
|
||||
tuple->value_length = value_length;
|
||||
return true;
|
||||
} else { // add tuple
|
||||
for (size_t i = 0; i < n_tuples; i += 1) {
|
||||
if (tuples[i].key == NULL) {
|
||||
tuples[i].key =
|
||||
(char *)malloc((strlen(key) + 1) * sizeof(char));
|
||||
strcpy(tuples[i].key, key);
|
||||
tuples[i].value = (char *)malloc(value_length * sizeof(char));
|
||||
memcpy(tuples[i].value, value, value_length);
|
||||
tuples[i].value_length = value_length;
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return false; // fail silently if no space for a new tuple is available
|
||||
}
|
||||
|
||||
bool delete (const string key, struct tuple *tuples, size_t n_tuples) {
|
||||
struct tuple *tuple = find(key, tuples, n_tuples);
|
||||
|
||||
if (tuple) {
|
||||
free(tuple->key);
|
||||
tuple->key = NULL;
|
||||
free(tuple->value);
|
||||
tuple->value = NULL;
|
||||
tuple->value_length = 0;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdbool.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
#include "util.h"
|
||||
|
||||
/**
|
||||
* A simple key-value entry
|
||||
*
|
||||
* Provides a simple, inefficient, key-value when combined with `get()`,
|
||||
* `set()`, and `delete()`.
|
||||
*/
|
||||
struct tuple {
|
||||
string key;
|
||||
char *value;
|
||||
size_t value_length;
|
||||
};
|
||||
|
||||
/**
|
||||
* Get the value matching the key in an array of tuples
|
||||
*
|
||||
* Returns a pointer to the begin of the value, stores its length in
|
||||
* `value_length`.
|
||||
*/
|
||||
const char *get(const string key, struct tuple *tuples, size_t n_tuples,
|
||||
size_t *value_length);
|
||||
|
||||
/**
|
||||
* Set the value for the key in an array of tuples
|
||||
*
|
||||
* Returns true if a value was overwritten, false if it was created.
|
||||
*/
|
||||
bool set(const string key, char *value, size_t value_length,
|
||||
struct tuple *tuples, size_t n_tuples);
|
||||
|
||||
/**
|
||||
* Deletes the key in the array of tuples.
|
||||
*
|
||||
* Returns true if it existed.
|
||||
*/
|
||||
bool delete (const string key, struct tuple *tuples, size_t n_tuples);
|
||||
@@ -0,0 +1,167 @@
|
||||
/**
|
||||
* This file provides functions to parse and extract information from an HTTP
|
||||
* request, such as the request line, headers, and payload.
|
||||
*/
|
||||
|
||||
#include "http.h"
|
||||
|
||||
#include <ctype.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
/**
|
||||
* Non null-terminated string
|
||||
*/
|
||||
struct non_string {
|
||||
char *start;
|
||||
size_t n;
|
||||
};
|
||||
|
||||
/**
|
||||
* Parse the request line of an HTTP request
|
||||
*
|
||||
* Returns whether a valid request line (excluding line separator) is parsed.
|
||||
* On valid request lines, `method` and `uri` are populated with the
|
||||
* corresponding values, reusing `buffer`'s memory.
|
||||
*/
|
||||
static bool parse_request_line(char *buffer, size_t n,
|
||||
struct non_string *method,
|
||||
struct non_string *uri) {
|
||||
const char *end = buffer + n;
|
||||
char *pos = buffer;
|
||||
|
||||
method->start = buffer;
|
||||
if ((pos = memchr(buffer, ' ', end - buffer)) == NULL) {
|
||||
return false;
|
||||
}
|
||||
method->n = pos - buffer;
|
||||
buffer = pos + 1;
|
||||
|
||||
uri->start = buffer;
|
||||
if ((pos = memchr(buffer, ' ', end - buffer)) == NULL) {
|
||||
return false;
|
||||
}
|
||||
uri->n = pos - buffer;
|
||||
buffer = pos + 1;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Parse HTTP header
|
||||
*
|
||||
* Returns whether a valid header (excluding line separator) is parsed. On
|
||||
* a valid header, `key` and `value` are populated with the corresponding
|
||||
* values, reusing `buffer`'s memory.
|
||||
*/
|
||||
static bool parse_header(char *buffer, size_t n, struct non_string *key,
|
||||
struct non_string *value) {
|
||||
char *field_name_end = memchr(buffer, ':', n);
|
||||
if (!field_name_end) {
|
||||
return false;
|
||||
}
|
||||
|
||||
*key = (struct non_string){.start = buffer, .n = field_name_end - buffer};
|
||||
*value = (struct non_string){.start = field_name_end + 1,
|
||||
.n = (buffer + n) - (field_name_end + 1)};
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
ssize_t parse_request(char *buffer, size_t n, struct request *request) {
|
||||
char *line_separator = "\r\n";
|
||||
|
||||
const char *end = buffer + n;
|
||||
char *pos = buffer;
|
||||
char *line_end;
|
||||
|
||||
// Parse the request line
|
||||
if (!(line_end = memstr(pos, end - pos, line_separator))) {
|
||||
return 0; // Request line not received yet
|
||||
}
|
||||
struct non_string method = {0};
|
||||
struct non_string uri = {0};
|
||||
if (!parse_request_line(pos, line_end - pos, &method, &uri)) {
|
||||
return -1; // Error parsing request line
|
||||
}
|
||||
|
||||
pos = line_end + strlen(line_separator); // Skip line separator
|
||||
|
||||
// Parse headers
|
||||
struct {
|
||||
struct non_string key;
|
||||
struct non_string value;
|
||||
} headers[HTTP_MAX_HEADERS] = {0};
|
||||
size_t header_count = 0;
|
||||
|
||||
while ((line_end = memstr(pos, end - pos, line_separator)) != pos) {
|
||||
if (header_count > HTTP_MAX_HEADERS) {
|
||||
fprintf(stderr, "Exceeded max header count.\n");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
if (!line_end) {
|
||||
return 0; // Header not fully received
|
||||
}
|
||||
if (!parse_header(pos, line_end - pos, &(headers[header_count].key),
|
||||
&(headers[header_count].value))) {
|
||||
return -1; // Error parsing header
|
||||
}
|
||||
pos = line_end + strlen(line_separator); // Skip line separator
|
||||
header_count += 1;
|
||||
}
|
||||
|
||||
pos = line_end + strlen(line_separator); // Skip empty line
|
||||
|
||||
// Parse payload length from headers
|
||||
for (size_t i = 0; i < header_count; i += 1) {
|
||||
if (strncmp(headers[i].key.start, "Content-Length", headers[i].key.n) ==
|
||||
0) {
|
||||
request->payload_length = strtoul(headers[i].value.start, NULL, 10);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (request->payload_length < 0) {
|
||||
if (request->method &&
|
||||
strncmp(request->method, "PUT", strlen("PUT")) == 0) {
|
||||
return -1; // Content-Length non-optional on PUT-requests
|
||||
}
|
||||
request->payload_length = 0;
|
||||
}
|
||||
request->payload = pos;
|
||||
if (pos + request->payload_length > end) {
|
||||
return 0; // Payload not yet received completely, try again.
|
||||
}
|
||||
|
||||
// Request is valid: Bytes will be discarded after sending the reply,
|
||||
// so we can reuse `buffer` here to avoid dynamic memory allocation.
|
||||
// All relevant strings are followed by at least one byte, so we can
|
||||
// overwrite these with null-characters, yielding proper strings.
|
||||
|
||||
method.start[method.n] = '\0';
|
||||
request->method = method.start;
|
||||
|
||||
uri.start[uri.n] = '\0';
|
||||
request->uri = uri.start;
|
||||
|
||||
for (size_t i = 0; i < header_count; i += 1) {
|
||||
headers[i].key.start[headers[i].key.n] = '\0';
|
||||
request->headers[i].key = headers[i].key.start;
|
||||
|
||||
headers[i].value.start[headers[i].value.n] = '\0';
|
||||
request->headers[i].value = headers[i].value.start;
|
||||
}
|
||||
|
||||
return (pos + request->payload_length) - buffer; // Parsed until `pos`
|
||||
}
|
||||
|
||||
string get_header(const struct request *request, const string name) {
|
||||
for (size_t i = 0; i < HTTP_MAX_HEADERS; i += 1) {
|
||||
if (request->headers[i].key &&
|
||||
strcmp(request->headers[i].key, name) == 0) {
|
||||
return request->headers[i].value;
|
||||
}
|
||||
}
|
||||
return NULL; // Header not found
|
||||
}
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
|
||||
#include "util.h"
|
||||
|
||||
#define HTTP_MAX_SIZE 8192
|
||||
#define HTTP_MAX_HEADERS 40
|
||||
|
||||
/**
|
||||
* Simple string tuple representing a HTTP header
|
||||
*/
|
||||
struct header {
|
||||
string key;
|
||||
string value;
|
||||
};
|
||||
|
||||
/**
|
||||
* Representation of a HTTP request
|
||||
*/
|
||||
struct request {
|
||||
string method;
|
||||
string uri;
|
||||
struct header headers[HTTP_MAX_HEADERS];
|
||||
char *payload;
|
||||
ssize_t payload_length;
|
||||
};
|
||||
|
||||
/**
|
||||
* The state of an ongoing HTTP connection
|
||||
*
|
||||
* `sock`: the socket connected to the client
|
||||
* `buffer`: buffer for the raw received data
|
||||
* `end`: end of unprocessed data in `buffer`
|
||||
* `current_request`: current, complete request, not yet answered to. Reuses
|
||||
* memory of `buffer`.
|
||||
*/
|
||||
struct connection_state {
|
||||
int sock;
|
||||
char buffer[HTTP_MAX_SIZE];
|
||||
char *end;
|
||||
struct request current_request;
|
||||
};
|
||||
|
||||
/**
|
||||
* Parse HTTP request into the given structure.
|
||||
*
|
||||
* When a full request is read, `request` is populated with its corresponding
|
||||
* values, utilizing the existing memory in `buffer`, and the number of bytes
|
||||
* read is returned. Otherwise, `buffer` remains unchanged, and zero is
|
||||
* returned.
|
||||
*/
|
||||
ssize_t parse_request(char *buffer, size_t n, struct request *request);
|
||||
|
||||
/**
|
||||
* Get value of header in request if set, or NULL.
|
||||
*/
|
||||
string get_header(const struct request *request, const string name);
|
||||
@@ -0,0 +1,2 @@
|
||||
pytest
|
||||
pytest-timeout
|
||||
@@ -0,0 +1,57 @@
|
||||
rn_protocol = Proto("RN", "Computer Networks Chord Protocol")
|
||||
|
||||
-- Header fields
|
||||
flags_f = ProtoField.uint8("rn_protocol.flags", "flags", base.HEX)
|
||||
hash_f = ProtoField.uint16("rn_protocol.hash", "hash", base.HEX)
|
||||
id_f = ProtoField.uint16("rn_protocol.id", "id", base.HEX)
|
||||
ip_f = ProtoField.ipv4("rn_protocol.ip", "ip")
|
||||
port_f = ProtoField.uint16("rn_protocol.port", "port", base.DEC)
|
||||
|
||||
rn_protocol.fields = {flags_f, hash_f, id_f, ip_f, port_f}
|
||||
|
||||
op_names = {
|
||||
[0] = "Lookup",
|
||||
[1] = "Reply",
|
||||
[2] = "Stabilize",
|
||||
[3] = "Notify",
|
||||
[4] = "Join",
|
||||
}
|
||||
|
||||
function info_text(buffer, pinfo)
|
||||
local name = op_names[buffer(0, 1):uint()]
|
||||
local desc = ""
|
||||
if name == "Lookup" then
|
||||
desc = string.format(" %x for %x@%s:%u", buffer(1, 2):uint(), buffer(3, 2):uint(), buffer(5, 4):uint(), buffer(9, 2):uint())
|
||||
elseif name == "Reply" then
|
||||
elseif name == "Stabilize" then
|
||||
desc = string.format(" from 0x%02x@%s:%u", buffer(3, 2):uint(), buffer(5, 4):ipv4(), buffer(9, 2):uint())
|
||||
elseif name == "Notify" then
|
||||
desc = string.format(" of 0x%02x@%s:%u", buffer(3, 2):uint(), buffer(5, 4):ipv4(), buffer(9, 2):uint())
|
||||
elseif name == "Join" then
|
||||
desc = string.format(" from 0x%02x@%s:%u", buffer(3, 2):uint(), buffer(5, 4):ipv4(), buffer(9, 2):uint())
|
||||
end
|
||||
local suffix = string.format(" (%s:%u → %s:%u)", pinfo.src, pinfo.src_port, pinfo.dst, pinfo.dst_port)
|
||||
return name .. desc .. suffix
|
||||
end
|
||||
|
||||
function rn_protocol.dissector(buffer, pinfo, tree)
|
||||
length = buffer:len()
|
||||
|
||||
if length ~= 11 then
|
||||
return 0
|
||||
end
|
||||
|
||||
local subtree = tree:add(rn_protocol, buffer(), rn_protocol.description)
|
||||
pinfo.cols.protocol = rn_protocol.name
|
||||
pinfo.cols.info = info_text(buffer, pinfo) -- string.format("%s: (%s:%u → %s:%u)", op_names[buffer(0, 1):uint()], pinfo.src, pinfo.src_port, pinfo.dst, pinfo.dst_port)
|
||||
|
||||
subtree:add(flags_f, buffer(0, 1)):append_text(" (" .. op_names[buffer(0, 1):uint()] .. ")")
|
||||
subtree:add(hash_f, buffer(1, 2))
|
||||
subtree:add(id_f, buffer(3, 2))
|
||||
subtree:add(ip_f, buffer(5, 4))
|
||||
subtree:add(port_f, buffer(9, 2))
|
||||
|
||||
return 11
|
||||
end
|
||||
|
||||
rn_protocol:register_heuristic("udp", rn_protocol.dissector)
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Executable
+43
@@ -0,0 +1,43 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -e
|
||||
|
||||
if [[ ! $# -eq 1 ]]; then
|
||||
echo "Missing argument."
|
||||
echo "Usage: '$0 praxis{0,1,2,3}'"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TEST_SCRIPT="$(dirname $0)/test_$1.py"
|
||||
|
||||
if [[ ! -e ${TEST_SCRIPT} ]]; then
|
||||
echo "Requested test file ${TEST_SCRIPT} does not exist!"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Packaging submission..."
|
||||
PACKAGING_DIR=$(mktemp -d)
|
||||
cmake -B${PACKAGING_DIR}
|
||||
cmake --build ${PACKAGING_DIR} -t package_source
|
||||
|
||||
echo "Extracting submission..."
|
||||
SOURCE_DIR=$(mktemp -d)
|
||||
(cd ${SOURCE_DIR} && find ${PACKAGING_DIR} -name '*.tar.gz' | head -n1 | xargs tar -xzf)
|
||||
EXTRACTED_SOURCE_DIR=$(find ${SOURCE_DIR} -maxdepth 1 -mindepth 1 -type d | head -n1)
|
||||
|
||||
echo "Building submission..."
|
||||
BUILD_DIR=$(mktemp -d)
|
||||
cmake -S"${EXTRACTED_SOURCE_DIR}" -B${BUILD_DIR}
|
||||
TARGET="webserver"
|
||||
EXECUTABLE="--executable ${BUILD_DIR}/webserver"
|
||||
if [[ "$1" == "praxis0" ]]; then
|
||||
TARGET="hello_world"
|
||||
EXECUTABLE="--executable ${BUILD_DIR}/hello_world"
|
||||
elif [[ "$1" == "praxis3" ]]; then
|
||||
TARGET="zmq_distributor zmq_worker"
|
||||
EXECUTABLE="--dist_exec ${BUILD_DIR}/zmq_distributor --work_exec ${BUILD_DIR}/zmq_worker"
|
||||
fi
|
||||
cmake --build ${BUILD_DIR} -t ${TARGET}
|
||||
|
||||
echo "Executing tests..."
|
||||
python3 -m pytest -o cache_dir=${BUILD_DIR} ${TEST_SCRIPT} ${EXECUTABLE}
|
||||
@@ -0,0 +1,12 @@
|
||||
import pytest
|
||||
|
||||
|
||||
def pytest_addoption(parser):
|
||||
parser.addoption('--executable', action='store', default='build/webserver')
|
||||
parser.addoption('--port', action='store', default=4711)
|
||||
parser.addoption('--debug_own', action='store_true', default=False)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def port(request):
|
||||
return request.config.getoption('port')
|
||||
+55
@@ -0,0 +1,55 @@
|
||||
import collections
|
||||
import contextlib
|
||||
import enum
|
||||
# import hashlib
|
||||
import socket
|
||||
import struct
|
||||
from ipaddress import IPv4Address
|
||||
|
||||
import util
|
||||
|
||||
|
||||
Peer = collections.namedtuple('Peer', ['id', 'ip', 'port'])
|
||||
Message = collections.namedtuple('Message', ['flags', 'id', 'peer'])
|
||||
Flags = enum.Enum('Flags', ['lookup', 'reply', 'stabilize', 'notify', 'join'], start=0)
|
||||
message_format = "!BHH4sH"
|
||||
|
||||
|
||||
def deserialize(data):
|
||||
flags, hash_, id_, ip, port = struct.unpack(message_format, data)
|
||||
return Message(Flags(flags), hash_, Peer(id_, IPv4Address(ip).exploded, port))
|
||||
|
||||
|
||||
def serialize(msg):
|
||||
return struct.pack(message_format, msg.flags.value, msg.id, msg.peer.id, IPv4Address(msg.peer.ip).packed, msg.peer.port)
|
||||
|
||||
|
||||
def hash(data):
|
||||
# return int.from_bytes(hashlib.sha256(data).digest()[:2], 'big')
|
||||
hash_val = 0
|
||||
if len(data) % 2:
|
||||
data += bytes([0])
|
||||
for i in range(0, len(data), 2):
|
||||
hash_val += data[i] << 8 | data[i + 1]
|
||||
hash_val = (hash_val & 0xffff) + (hash_val >> 16)
|
||||
hash_val = ~hash_val & 0xffff # make unsigned int
|
||||
return hash_val
|
||||
|
||||
|
||||
def expect_msg(sock, expectation):
|
||||
assert util.bytes_available(sock) > 0, "No data received on socket"
|
||||
data = sock.recv(1024)
|
||||
assert len(data) == struct.calcsize(message_format), "Received message has invalid length for DHT message"
|
||||
received = deserialize(data)
|
||||
|
||||
assert received.flags == expectation.flags, "Received message is of wrong type"
|
||||
assert expectation.id is None or received.id == expectation.id, "ID of message doesn't match"
|
||||
assert received.peer == expectation.peer, "Messaged peer is not correct"
|
||||
|
||||
|
||||
def peer_socket(peer: Peer):
|
||||
"""Create and open a socket corresponding to the given peer
|
||||
"""
|
||||
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
|
||||
sock.bind((peer.ip, peer.port))
|
||||
return contextlib.closing(sock)
|
||||
@@ -0,0 +1,212 @@
|
||||
"""
|
||||
Tests for RN Praxis 1
|
||||
"""
|
||||
|
||||
import contextlib
|
||||
import re
|
||||
import socket
|
||||
import time
|
||||
from http.client import HTTPConnection
|
||||
|
||||
import pytest
|
||||
|
||||
from util import KillOnExit, randbytes
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def webserver(request):
|
||||
"""
|
||||
Return a callable function that spawns a webserver with the given arguments.
|
||||
"""
|
||||
def runner(*args, **kwargs):
|
||||
"""Spawn a webserver with the given arguments."""
|
||||
return KillOnExit([request.config.getoption('executable'), *args], **kwargs)
|
||||
|
||||
@contextlib.contextmanager
|
||||
def empty_context(*args, **kwargs):
|
||||
yield # No server initialization here, just an empty context that never fails
|
||||
|
||||
if request.config.getoption('debug_own'):
|
||||
return empty_context
|
||||
|
||||
return runner
|
||||
|
||||
|
||||
def test_execute(webserver, port):
|
||||
"""
|
||||
Test server is executable
|
||||
"""
|
||||
|
||||
with webserver('127.0.0.1', f'{port}'):
|
||||
pass
|
||||
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
def test_listen(webserver, port):
|
||||
"""
|
||||
Test server is listening on port (2.1)
|
||||
"""
|
||||
|
||||
with webserver(
|
||||
'127.0.0.1', f'{port}'
|
||||
), socket.create_connection(
|
||||
('localhost', port)
|
||||
):
|
||||
pass
|
||||
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
def test_reply(webserver, port):
|
||||
"""
|
||||
Test the server is sending a reply (2.2)
|
||||
"""
|
||||
|
||||
with webserver(
|
||||
'127.0.0.1', f'{port}'
|
||||
), socket.create_connection(
|
||||
('localhost', port)
|
||||
) as conn:
|
||||
conn.send('Request\r\n\r\n'.encode())
|
||||
reply = conn.recv(1024)
|
||||
assert len(reply) > 0
|
||||
|
||||
|
||||
@pytest.mark.timeout(2)
|
||||
def test_packets(webserver, port):
|
||||
"""
|
||||
Test HTTP delimiter for packet end (2.3)
|
||||
"""
|
||||
|
||||
with webserver(
|
||||
'127.0.0.1', f'{port}'
|
||||
), socket.create_connection(
|
||||
('localhost', port)
|
||||
) as conn:
|
||||
conn.send('GET / HTTP/1.1\r\n\r\n'.encode())
|
||||
time.sleep(.5)
|
||||
conn.send('GET / HTTP/1.1\r\na: b\r\n'.encode())
|
||||
time.sleep(.5)
|
||||
conn.send('\r\n'.encode())
|
||||
time.sleep(.5) # Attempt to gracefully handle all kinds of multi-packet replies...
|
||||
replies = conn.recv(1024).split(b'\r\n\r\n')
|
||||
assert replies[0] and replies[1] and not replies[2]
|
||||
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
def test_httpreply(webserver, port):
|
||||
"""
|
||||
Test reply is syntactically correct HTTP packet (2.4)
|
||||
"""
|
||||
|
||||
with webserver(
|
||||
'127.0.0.1', f'{port}'
|
||||
), socket.create_connection(
|
||||
('localhost', port)
|
||||
) as conn:
|
||||
conn.send('Request\r\n\r\n'.encode())
|
||||
time.sleep(.5) # Attempt to gracefully handle all kinds of multi-packet replies...
|
||||
reply = conn.recv(1024)
|
||||
assert re.search(br'HTTP/1.[01] 400.*\r\n(.*\r\n)*\r\n', reply)
|
||||
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
def test_httpreplies(webserver, port):
|
||||
"""
|
||||
Test reply is semantically correct HTTP packet (2.5)
|
||||
"""
|
||||
|
||||
with webserver(
|
||||
'127.0.0.1', f'{port}'
|
||||
), contextlib.closing(
|
||||
HTTPConnection('localhost', port)
|
||||
) as conn:
|
||||
conn.connect()
|
||||
|
||||
# there is no HEAD command in HTTP :-)
|
||||
conn.request('HEAD', '/index.html')
|
||||
reply = conn.getresponse()
|
||||
reply.read()
|
||||
assert reply.status == 501, "HEAD did not reply with '501'"
|
||||
|
||||
conn.request('GET', '/index.html')
|
||||
reply = conn.getresponse()
|
||||
assert reply.status == 404
|
||||
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
def test_static_content(webserver, port):
|
||||
"""
|
||||
Test static content can be accessed (2.6)
|
||||
"""
|
||||
|
||||
with webserver(
|
||||
'127.0.0.1', f'{port}'
|
||||
), contextlib.closing(
|
||||
HTTPConnection('localhost', port)
|
||||
) as conn:
|
||||
conn.connect()
|
||||
|
||||
for path, content in {
|
||||
'/static/foo': b'Foo',
|
||||
'/static/bar': b'Bar',
|
||||
'/static/baz': b'Baz',
|
||||
}.items():
|
||||
conn.request('GET', path)
|
||||
reply = conn.getresponse()
|
||||
payload = reply.read()
|
||||
assert reply.status == 200
|
||||
assert payload == content
|
||||
|
||||
for path in [
|
||||
'/static/other',
|
||||
'/static/anything',
|
||||
'/static/else'
|
||||
]:
|
||||
conn.request('GET', path)
|
||||
reply = conn.getresponse()
|
||||
reply.length = 0 # Convince `http.client` to handle no-content 404s properly
|
||||
reply.read()
|
||||
assert reply.status == 404
|
||||
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
def test_dynamic_content(webserver, port):
|
||||
"""
|
||||
Test dynamic storage of data (key,value) works (2.7)
|
||||
"""
|
||||
|
||||
with webserver(
|
||||
'127.0.0.1', f'{port}'
|
||||
), contextlib.closing(
|
||||
HTTPConnection('localhost', port)
|
||||
) as conn:
|
||||
conn.connect()
|
||||
|
||||
path = f'/dynamic/{randbytes(8).hex()}'
|
||||
content = randbytes(32).hex().encode()
|
||||
|
||||
conn.request('GET', path)
|
||||
response = conn.getresponse()
|
||||
payload = response.read()
|
||||
assert response.status == 404, f"'{path}' should be missing, but GET was not answered with '404'"
|
||||
|
||||
conn.request('PUT', path, content)
|
||||
response = conn.getresponse()
|
||||
payload = response.read()
|
||||
assert response.status in {200, 201, 202, 204}, f"Creation of '{path}' did not yield '201'"
|
||||
|
||||
conn.request('GET', path)
|
||||
response = conn.getresponse()
|
||||
payload = response.read()
|
||||
assert response.status == 200
|
||||
assert payload == content, f"Content of '{path}' does not match what was passed"
|
||||
|
||||
conn.request('DELETE', path)
|
||||
response = conn.getresponse()
|
||||
response.read()
|
||||
assert response.status in {200, 202, 204}, f"Deletion of '{path}' did not succeed"
|
||||
|
||||
conn.request('GET', path)
|
||||
response = conn.getresponse()
|
||||
response.read()
|
||||
assert response.status == 404, f"'{path}' should be missing"
|
||||
@@ -0,0 +1,343 @@
|
||||
"""
|
||||
Tests for RN Praxis 2
|
||||
"""
|
||||
|
||||
import contextlib
|
||||
import errno
|
||||
import struct
|
||||
import time
|
||||
import urllib.request as req
|
||||
from urllib.parse import urlparse
|
||||
from http.client import HTTPConnection
|
||||
|
||||
import pytest
|
||||
|
||||
import util
|
||||
import dht
|
||||
|
||||
# We assume that all tests from the previous sheet(s) are working!
|
||||
|
||||
# -i dumps header
|
||||
# -L follows redirects
|
||||
# curl -iL localhost:12345/static/baz
|
||||
|
||||
|
||||
def _iter_with_neighbors(xs):
|
||||
"""Return iterator to list that includes each elements neighbors
|
||||
|
||||
For each element in the original list a triple of its neighbors
|
||||
is generated: `(xs[i - 1], xs[i], xs[i + 1])`
|
||||
"""
|
||||
return zip(xs[-1:] + xs[:-1], xs, xs[1:] + xs[:1])
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def static_peer(request):
|
||||
"""Return a function for spawning DHT peers
|
||||
"""
|
||||
def runner(peer, predecessor=None, successor=None):
|
||||
"""Spawn a static DHT peer
|
||||
|
||||
The peer is passed its local neighborhood via environment variables.
|
||||
"""
|
||||
return util.KillOnExit(
|
||||
[request.config.getoption('executable'), peer.ip, f'{peer.port}'] + ([f'{peer.id}'] if peer.id is not None else []),
|
||||
env={
|
||||
**({'PRED_ID': f'{predecessor.id}', 'PRED_IP': predecessor.ip, 'PRED_PORT': f'{predecessor.port}'} if predecessor is not None else {}),
|
||||
**({'SUCC_ID': f'{successor.id}', 'SUCC_IP': successor.ip, 'SUCC_PORT': f'{successor.port}'} if successor is not None else {}),
|
||||
'NO_STABILIZE': '1', # Forward compatibility with P3.
|
||||
},
|
||||
)
|
||||
|
||||
@contextlib.contextmanager
|
||||
def empty_context(*args, **kwargs):
|
||||
yield # No peer initialization here, just an empty context that never fails
|
||||
|
||||
if request.config.getoption('debug_own'):
|
||||
return empty_context
|
||||
|
||||
return runner
|
||||
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
def test_listen(static_peer):
|
||||
"""
|
||||
Tests chord part of the system (1.1).
|
||||
Listens on UDP port.
|
||||
"""
|
||||
|
||||
self = dht.Peer(None, '127.0.0.1', 4711)
|
||||
with static_peer(self), pytest.raises(OSError) as exception_info:
|
||||
time.sleep(.1)
|
||||
|
||||
# Attempt to open the port that the implementation should have opened
|
||||
with dht.peer_socket(self):
|
||||
pass
|
||||
|
||||
assert exception_info.value.errno == errno.EADDRINUSE, "UDP port not open"
|
||||
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
@pytest.mark.parametrize("uri", ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'])
|
||||
def test_immediate_dht(static_peer, uri):
|
||||
"""Test hashing of request (1.2)
|
||||
Run peer in minimal (non-trivial) DHT
|
||||
- two nodes, equal split of namespace
|
||||
- first node real, second mock sockets
|
||||
|
||||
1. make request - internally requires hashing of location part in URL
|
||||
2. check that request yields either 404 (if peer is responsible) or 303 (if it isn't)
|
||||
3. no packet should be received by the second peer
|
||||
"""
|
||||
|
||||
predecessor = dht.Peer(0xc000, '127.0.0.1', 4712)
|
||||
self = dht.Peer(0x4000, '127.0.0.1', 4711)
|
||||
successor = predecessor
|
||||
|
||||
with dht.peer_socket(
|
||||
successor
|
||||
) as mock, static_peer(
|
||||
self, predecessor, successor,
|
||||
), contextlib.closing(
|
||||
HTTPConnection(self.ip, self.port) # Use `http.client` instead of `urllib` to avoid redirection
|
||||
) as conn:
|
||||
conn.connect()
|
||||
|
||||
conn.request('GET', f'/{uri}')
|
||||
time.sleep(.1)
|
||||
reply = conn.getresponse()
|
||||
_ = reply.read()
|
||||
|
||||
uri_hash = dht.hash(f'/{uri}'.encode('latin1'))
|
||||
implementation_responsible = not self.id < uri_hash <= successor.id
|
||||
|
||||
if implementation_responsible:
|
||||
assert reply.status == 404, "Server should've indicated missing data"
|
||||
else:
|
||||
assert reply.status == 303, "Server should've delegated response"
|
||||
assert reply.headers['Location'] == f'http://{successor.ip}:{successor.port}/{uri}', "Server should've delegated to its successor"
|
||||
|
||||
assert util.bytes_available(mock) == 0, "Data received on successor socket"
|
||||
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
@pytest.mark.parametrize("uri", ['a', 'b'])
|
||||
def test_lookup_sent(static_peer, uri):
|
||||
"""Test for lookup to correct peer (1.3)
|
||||
|
||||
Node is running with minimal assigned address space, should send lookup messages
|
||||
for the correct hash to its successors and reply with 503 & Retry-After header.
|
||||
"""
|
||||
|
||||
predecessor = dht.Peer(0xffff, '127.0.0.1', 4710)
|
||||
self = dht.Peer(0x0000, '127.0.0.1', 4711)
|
||||
successor = dht.Peer(0x0001, '127.0.0.1', 4712)
|
||||
|
||||
with dht.peer_socket(successor) as mock: # Can't differentiate predecessor & successor, reusing ports.
|
||||
with static_peer(
|
||||
self, predecessor, successor
|
||||
), pytest.raises(req.HTTPError) as exception_info:
|
||||
|
||||
url = f'http://{self.ip}:{self.port}/{uri}'
|
||||
req.urlopen(url)
|
||||
|
||||
assert exception_info.value.status == 503, "Server should reply with 503"
|
||||
assert exception_info.value.headers.get("Retry-After", None) == "1", "Server should set 'Retry-After' header to 1s"
|
||||
|
||||
time.sleep(.1)
|
||||
assert util.bytes_available(mock) > 0, "No data received on successor socket"
|
||||
data = mock.recv(1024)
|
||||
assert len(data) == struct.calcsize(dht.message_format), "Received message has invalid length for DHT message"
|
||||
msg = dht.deserialize(data)
|
||||
|
||||
assert dht.Flags(msg.flags) == dht.Flags.lookup, "Received message should be a lookup"
|
||||
|
||||
uri_hash = dht.hash(urlparse(url).path.encode('latin1'))
|
||||
assert msg.id == uri_hash, "Received lookup should query the requested datum's hash"
|
||||
|
||||
assert msg.peer == self, "Received lookup should indicate its originator"
|
||||
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
def test_lookup_reply(static_peer):
|
||||
"""Test whether peer replies to lookup correctly (1.4)"""
|
||||
|
||||
predecessor = dht.Peer(0x0000, '127.0.0.1', 4710)
|
||||
self = dht.Peer(0x1000, '127.0.0.1', 4711)
|
||||
successor = dht.Peer(0x2000, '127.0.0.1', 4712)
|
||||
|
||||
with dht.peer_socket(
|
||||
predecessor
|
||||
) as pred_mock, static_peer(
|
||||
self, predecessor, successor
|
||||
), dht.peer_socket(
|
||||
successor
|
||||
) as succ_mock:
|
||||
lookup = dht.Message(dht.Flags.lookup, 0x1800, predecessor)
|
||||
pred_mock.sendto(dht.serialize(lookup), (self.ip, self.port))
|
||||
|
||||
time.sleep(.1)
|
||||
|
||||
assert util.bytes_available(succ_mock) == 0, "Data received on successor socket"
|
||||
assert util.bytes_available(pred_mock) > 0, "No data received on predecessor socket"
|
||||
data = pred_mock.recv(1024)
|
||||
assert len(data) == struct.calcsize(dht.message_format), "Received message has invalid length for DHT message"
|
||||
reply = dht.deserialize(data)
|
||||
|
||||
assert dht.Flags(reply.flags) == dht.Flags.reply, "Received message should be a reply"
|
||||
assert reply.peer == successor, "Reply does not indicate successor as responsible"
|
||||
assert reply.id == self.id, "Reply does not indicate implementation as previous ID"
|
||||
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
def test_lookup_forward(static_peer):
|
||||
"""Test whether peer forwards lookup correctly (1.5)"""
|
||||
|
||||
predecessor = dht.Peer(0x0000, '127.0.0.1', 4710)
|
||||
self = dht.Peer(0x1000, '127.0.0.1', 4711)
|
||||
successor = dht.Peer(0x2000, '127.0.0.1', 4712)
|
||||
|
||||
with dht.peer_socket(
|
||||
predecessor
|
||||
) as pred_mock, static_peer(
|
||||
self, predecessor, successor
|
||||
), dht.peer_socket(
|
||||
successor
|
||||
) as succ_mock:
|
||||
lookup = dht.Message(dht.Flags.lookup, 0x2800, predecessor)
|
||||
pred_mock.sendto(dht.serialize(lookup), (self.ip, self.port))
|
||||
|
||||
time.sleep(.1)
|
||||
|
||||
assert util.bytes_available(pred_mock) == 0, "Data received on predecessor socket"
|
||||
assert util.bytes_available(succ_mock) > 0, "No data received on successor socket"
|
||||
data = succ_mock.recv(1024)
|
||||
assert len(data) == struct.calcsize(dht.message_format), "Received message has invalid length for DHT message"
|
||||
received = dht.deserialize(data)
|
||||
|
||||
assert received == lookup, "Received message should be equal to original lookup"
|
||||
|
||||
|
||||
@pytest.mark.timeout(1)
|
||||
@pytest.mark.parametrize("uri", ['a', 'b'])
|
||||
def test_lookup_complete(static_peer, uri):
|
||||
"""Test for correct lookup use (1.6)
|
||||
|
||||
Node is running with minimal assigned address space, should send lookup messages
|
||||
for the correct hash to its successors and reply with 503 & Retry-After header.
|
||||
"""
|
||||
|
||||
predecessor = dht.Peer(0xffff, '127.0.0.1', 4710)
|
||||
self = dht.Peer(0x0000, '127.0.0.1', 4711)
|
||||
successor = dht.Peer(0x0001, '127.0.0.1', 4712)
|
||||
|
||||
with dht.peer_socket(
|
||||
predecessor
|
||||
) as pred_mock, static_peer(
|
||||
self, predecessor, successor
|
||||
), dht.peer_socket(
|
||||
successor
|
||||
) as succ_mock, contextlib.closing(
|
||||
HTTPConnection(self.ip, self.port) # We have to use the more low-level `http.client` instead of `urllib` to avoid it interpreting the `Retry-After` header
|
||||
) as conn:
|
||||
conn.connect()
|
||||
time.sleep(.1)
|
||||
|
||||
# Check HTTP reply
|
||||
conn.request('GET', f'/{uri}')
|
||||
time.sleep(.1)
|
||||
response = conn.getresponse()
|
||||
_ = response.read()
|
||||
assert response.status == 503, "Server should reply with 503"
|
||||
assert response.headers.get("Retry-After", None) == "1", "Server should set 'Retry-After' header to 1s"
|
||||
time.sleep(.1)
|
||||
|
||||
# Check lookup message
|
||||
time.sleep(.1)
|
||||
assert util.bytes_available(pred_mock) == 0, "Data received on predecessor socket"
|
||||
assert util.bytes_available(succ_mock) > 0, "No data received on successor socket"
|
||||
data = succ_mock.recv(1024)
|
||||
assert len(data) == struct.calcsize(dht.message_format), "Received message has invalid length for DHT message"
|
||||
msg = dht.deserialize(data)
|
||||
|
||||
time.sleep(.1)
|
||||
assert dht.Flags(msg.flags) == dht.Flags.lookup, "Received message should be a lookup"
|
||||
|
||||
uri_hash = dht.hash(f'/{uri}'.encode('latin1'))
|
||||
assert msg.id == uri_hash, "Received lookup should query the requested datum's hash"
|
||||
|
||||
assert msg.peer == self, "Received lookup should indicate its originator"
|
||||
|
||||
time.sleep(.1)
|
||||
|
||||
# Send reply
|
||||
reply = dht.Message(dht.Flags.reply, successor.id, predecessor)
|
||||
pred_mock.sendto(dht.serialize(reply), (self.ip, self.port))
|
||||
|
||||
time.sleep(.1)
|
||||
|
||||
# Check HTTP reply again
|
||||
conn.request('GET', f'/{uri}')
|
||||
response = conn.getresponse()
|
||||
_ = response.read()
|
||||
assert response.status == 303, "Server should've delegated response"
|
||||
assert response.headers['Location'] == f'http://{predecessor.ip}:{predecessor.port}/{uri}', "Server should've delegated to its predecessor"
|
||||
|
||||
|
||||
@pytest.mark.timeout(10) # five requests, two seconds each
|
||||
def test_dht(static_peer):
|
||||
"""Test a complete DHT (1.7)
|
||||
|
||||
At this point, a DHT consisting only of the implementation should work as expected.
|
||||
We will repeat the dynamic content test, but will contact a different peer for each request.
|
||||
"""
|
||||
|
||||
# chosen by fair dice roll.
|
||||
# guaranteed to be random.
|
||||
dht_ids = [10927, 18804, 40809, 54536, 63901]
|
||||
contact_order = [1, 0, 3, 2, 4]
|
||||
datum = '191b023eb6e0090d'
|
||||
content = b'8392cb0f8991fb706b8d80b898fd7bdc888e8fc4b40858e9eb136743ba1ac290'
|
||||
|
||||
peers = [
|
||||
dht.Peer(id_, '127.0.0.1', 4710 + i)
|
||||
for i, id_
|
||||
in enumerate(dht_ids)
|
||||
]
|
||||
|
||||
with contextlib.ExitStack() as contexts:
|
||||
for predecessor, peer, successor in _iter_with_neighbors(peers):
|
||||
contexts.enter_context(static_peer(
|
||||
peer, predecessor, successor
|
||||
))
|
||||
|
||||
# Ensure datum is missing
|
||||
contact = peers[contact_order[0]]
|
||||
with pytest.raises(req.HTTPError) as exception_info:
|
||||
util.urlopen(f'http://{contact.ip}:{contact.port}/dynamic/{datum}')
|
||||
|
||||
assert exception_info.value.status == 404, f"'/dynamic/{datum}' should be missing, but GET was not answered with '404'"
|
||||
|
||||
# Create datum
|
||||
contact = peers[contact_order[1]]
|
||||
reply = util.urlopen(req.Request(f'http://{contact.ip}:{contact.port}/dynamic/{datum}', data=content, method='PUT'))
|
||||
assert reply.status == 201, f"Creation of '/dynamic/{datum}' did not yield '201'"
|
||||
|
||||
# Ensure datum exists
|
||||
contact = peers[contact_order[2]]
|
||||
reply = util.urlopen(f'http://{contact.ip}:{contact.port}/dynamic/{datum}')
|
||||
assert reply.status == 200
|
||||
assert reply.read() == content, f"Content of '/dynamic/{datum}' does not match what was passed"
|
||||
|
||||
# Delete datum
|
||||
contact = peers[contact_order[3]]
|
||||
real_url = util.urlopen(f'http://{contact.ip}:{contact.port}/dynamic/{datum}').geturl() # Determine correct URL
|
||||
reply = util.urlopen(req.Request(real_url, method='DELETE'))
|
||||
assert reply.status in {200, 202, 204}, f"Deletion of '/dynamic/{datum}' did not succeed"
|
||||
|
||||
# Ensure datum is missing
|
||||
contact = peers[contact_order[4]]
|
||||
with pytest.raises(req.HTTPError) as exception_info:
|
||||
util.urlopen(f'http://{contact.ip}:{contact.port}/dynamic/{datum}')
|
||||
|
||||
assert exception_info.value.status == 404, f"'/dynamic/{datum}' should be missing, but GET was not answered with '404'"
|
||||
@@ -0,0 +1,57 @@
|
||||
import array
|
||||
import fcntl
|
||||
import random
|
||||
import subprocess
|
||||
import sys
|
||||
import termios
|
||||
import time
|
||||
import urllib.request
|
||||
|
||||
|
||||
def bytes_available(socket):
|
||||
"""Return number of bytes available to read on socket
|
||||
|
||||
This requires some magic, but can be via an ioctl.
|
||||
"""
|
||||
|
||||
sock_size = array.array('i', [0])
|
||||
fcntl.ioctl(socket, termios.FIONREAD, sock_size)
|
||||
return sock_size[0]
|
||||
|
||||
|
||||
class KillOnExit(subprocess.Popen):
|
||||
"""A Popen subclass that kills the subprocess when its context exits"""
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(
|
||||
*args, **kwargs,
|
||||
#stdout=subprocess.PIPE,
|
||||
)
|
||||
time.sleep(.1)
|
||||
|
||||
def __exit__(self, exc_type, value, traceback):
|
||||
self.kill()
|
||||
|
||||
super().__exit__(exc_type, value, traceback)
|
||||
time.sleep(.1)
|
||||
|
||||
|
||||
def urlopen(url):
|
||||
"""Delegate to `urllib.request.urlopen`, but interpret a 503 with 'Retry-After' header correctly.
|
||||
"""
|
||||
try:
|
||||
return urllib.request.urlopen(url)
|
||||
except urllib.request.HTTPError as e:
|
||||
if e.status == 503 and 'Retry-After' in e.headers:
|
||||
seconds = int(e.headers['Retry-After'])
|
||||
time.sleep(seconds)
|
||||
return urllib.request.urlopen(url)
|
||||
else:
|
||||
raise e
|
||||
|
||||
|
||||
if sys.version_info[:3] >= (3, 9):
|
||||
randbytes = random.randbytes
|
||||
else:
|
||||
def randbytes(n):
|
||||
return bytes(random.randint(0, 255) for _ in range(n))
|
||||
@@ -0,0 +1,10 @@
|
||||
[tox]
|
||||
env_list = py{38,39,310,311}
|
||||
skipsdist = true
|
||||
|
||||
[testenv]
|
||||
description = run unit tests
|
||||
deps =
|
||||
pytest
|
||||
commands =
|
||||
pytest
|
||||
@@ -0,0 +1,55 @@
|
||||
#include "util.h"
|
||||
|
||||
#include <errno.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
char *memstr(char *haystack, size_t n, string needle) {
|
||||
char *end = haystack + n;
|
||||
|
||||
// Iterate through the memory (haystack)
|
||||
while ((haystack = memchr(haystack, needle[0], end - haystack)) != NULL) {
|
||||
if (strncmp(haystack, needle, strlen(needle)) == 0) {
|
||||
return haystack;
|
||||
}
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
uint16_t safe_strtoul(const char *restrict nptr, char **restrict endptr,
|
||||
int base, const string message) {
|
||||
errno = 0;
|
||||
uint16_t result =
|
||||
strtoul(nptr, endptr, base); // Convert string to unsigned int
|
||||
|
||||
if (errno != 0) {
|
||||
fprintf(stderr, "%s\n", message);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
uint16_t pseudo_hash(const unsigned char *buffer, size_t buf_len) {
|
||||
// we use tcp crc16 check here
|
||||
uint32_t hash = 0;
|
||||
// add zero padding to the end if buf_len not even
|
||||
size_t pad_length = buf_len % 2 ? buf_len + 1 : buf_len;
|
||||
uint8_t *int_buffer = calloc(pad_length, sizeof *buffer);
|
||||
memcpy(int_buffer, buffer, buf_len);
|
||||
|
||||
for (size_t i = 0; i < pad_length; i+=2) {
|
||||
hash += int_buffer[i] << 8 | int_buffer[i+1];
|
||||
}
|
||||
|
||||
hash = (hash & 0xFFFF) + (hash >> 16);
|
||||
|
||||
free(int_buffer);
|
||||
|
||||
return (uint16_t) ~hash;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
#pragma once
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
typedef char *string; // differentiate null-terminated C-string from bytes
|
||||
|
||||
/**
|
||||
* Analog to `strstr()`, for non-C-string haystacks.
|
||||
*/
|
||||
char *memstr(char *haystack, size_t n, string needle);
|
||||
|
||||
/**
|
||||
* Safe version of `strtoul()`
|
||||
*
|
||||
* Will return the result of strtoul, unless an error occurs.
|
||||
* In that case, the given message will be printed before exiting the program.
|
||||
*/
|
||||
uint16_t safe_strtoul(const char *restrict nptr, char **restrict endptr,
|
||||
int base, const string message);
|
||||
|
||||
/**
|
||||
* creates a 16 bit hash value of the given buffer
|
||||
* @param buffer
|
||||
* @param buf_len
|
||||
* @return the 16 bit hash
|
||||
*/
|
||||
uint16_t pseudo_hash(const unsigned char *buffer, size_t buf_len);
|
||||
+448
@@ -0,0 +1,448 @@
|
||||
#include <arpa/inet.h>
|
||||
#include <assert.h>
|
||||
#include <errno.h>
|
||||
#include <fcntl.h>
|
||||
#include <netdb.h>
|
||||
#include <netinet/in.h>
|
||||
#include <poll.h>
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <sys/socket.h>
|
||||
#include <sys/types.h>
|
||||
#include <unistd.h>
|
||||
|
||||
#include "data.h"
|
||||
#include "http.h"
|
||||
#include "util.h"
|
||||
|
||||
#define elif else if
|
||||
|
||||
// Getter for environmental DHT sets
|
||||
#define _PRED_ID atoi(getenv("PRED_ID"))
|
||||
#define _PRED_IP getenv("PRED_IP"))
|
||||
#define _PRED_PORT atoi(getenv("PRED_PORT"))
|
||||
#define _SUCC_ID atoi(getenv("SUCC_ID"))
|
||||
#define _SUCC_IP getenv("SUCC_IP"))
|
||||
#define _SUCC_PORT atoi(getenv("SUCC_PORT"))
|
||||
|
||||
int _NODE_ID;
|
||||
const char *_NODE_IP;
|
||||
const char *_NODE_PORT;
|
||||
|
||||
#define MAX_RESOURCES 100
|
||||
|
||||
struct tuple resources[MAX_RESOURCES] = {
|
||||
{"/static/foo", "Foo", sizeof "Foo" - 1},
|
||||
{"/static/bar", "Bar", sizeof "Bar" - 1},
|
||||
{"/static/baz", "Baz", sizeof "Baz" - 1}};
|
||||
|
||||
/**
|
||||
* Sends an HTTP reply to the client based on the received request.
|
||||
*
|
||||
* @param conn The file descriptor of the client connection socket.
|
||||
* @param request A pointer to the struct containing the parsed request
|
||||
* information.
|
||||
*/
|
||||
void send_reply(int conn, struct request *request) {
|
||||
|
||||
// Create a buffer to hold the HTTP reply
|
||||
char buffer[HTTP_MAX_SIZE];
|
||||
char *reply = buffer;
|
||||
size_t offset = 0;
|
||||
|
||||
fprintf(stderr, "Handling %s request for %s (%lu byte payload)\n",
|
||||
request->method, request->uri, request->payload_length);
|
||||
|
||||
if (strcmp(request->method, "GET") == 0) {
|
||||
// Find the resource with the given URI in the 'resources' array.
|
||||
size_t resource_length;
|
||||
const char *resource =
|
||||
get(request->uri, resources, MAX_RESOURCES, &resource_length);
|
||||
|
||||
if (resource) {
|
||||
size_t payload_offset =
|
||||
sprintf(reply, "HTTP/1.1 200 OK\r\nContent-Length: %lu\r\n\r\n",
|
||||
resource_length);
|
||||
memcpy(reply + payload_offset, resource, resource_length);
|
||||
offset = payload_offset + resource_length;
|
||||
} else {
|
||||
reply = "HTTP/1.1 404 Not Found\r\nContent-Length: 0\r\n\r\n";
|
||||
offset = strlen(reply);
|
||||
}
|
||||
} else if (strcmp(request->method, "PUT") == 0) {
|
||||
// Try to set the requested resource with the given payload in the
|
||||
// 'resources' array.
|
||||
if (set(request->uri, request->payload, request->payload_length,
|
||||
resources, MAX_RESOURCES)) {
|
||||
reply = "HTTP/1.1 204 No Content\r\n\r\n";
|
||||
} else {
|
||||
reply = "HTTP/1.1 201 Created\r\nContent-Length: 0\r\n\r\n";
|
||||
}
|
||||
offset = strlen(reply);
|
||||
} else if (strcmp(request->method, "DELETE") == 0) {
|
||||
// Try to delete the requested resource from the 'resources' array
|
||||
if (delete (request->uri, resources, MAX_RESOURCES)) {
|
||||
reply = "HTTP/1.1 204 No Content\r\n\r\n";
|
||||
} else {
|
||||
reply = "HTTP/1.1 404 Not Found\r\n\r\n";
|
||||
}
|
||||
offset = strlen(reply);
|
||||
} else {
|
||||
reply = "HTTP/1.1 501 Method Not Supported\r\n\r\n";
|
||||
offset = strlen(reply);
|
||||
}
|
||||
|
||||
// Send the reply back to the client
|
||||
if (send(conn, reply, offset, 0) == -1) {
|
||||
perror("send");
|
||||
close(conn);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Processes an incoming packet from the client.
|
||||
*
|
||||
* @param conn The socket descriptor representing the connection to the client.
|
||||
* @param buffer A pointer to the incoming packet's buffer.
|
||||
* @param n The size of the incoming packet.
|
||||
*
|
||||
* @return Returns the number of bytes processed from the packet.
|
||||
* If the packet is successfully processed and a reply is sent, the
|
||||
* return value indicates the number of bytes processed. If the packet is
|
||||
* malformed or an error occurs during processing, the return value is -1.
|
||||
*
|
||||
*/
|
||||
size_t process_packet(int conn, char *buffer, size_t n) {
|
||||
struct request request = {
|
||||
.method = NULL, .uri = NULL, .payload = NULL, .payload_length = -1};
|
||||
ssize_t bytes_processed = parse_request(buffer, n, &request);
|
||||
|
||||
if (bytes_processed > 0) {
|
||||
send_reply(conn, &request);
|
||||
|
||||
// Check the "Connection" header in the request to determine if the
|
||||
// connection should be kept alive or closed.
|
||||
const string connection_header = get_header(&request, "Connection");
|
||||
if (connection_header && strcmp(connection_header, "close")) {
|
||||
return -1;
|
||||
}
|
||||
} else if (bytes_processed == -1) {
|
||||
// If the request is malformed or an error occurs during processing,
|
||||
// send a 400 Bad Request response to the client.
|
||||
const string bad_request = "HTTP/1.1 400 Bad Request\r\n\r\n";
|
||||
send(conn, bad_request, strlen(bad_request), 0);
|
||||
printf("Received malformed request, terminating connection.\n");
|
||||
close(conn);
|
||||
return -1;
|
||||
}
|
||||
|
||||
return bytes_processed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up the connection state for a new socket connection.
|
||||
*
|
||||
* @param state A pointer to the connection_state structure to be initialized.
|
||||
* @param sock The socket descriptor representing the new connection.
|
||||
*
|
||||
*/
|
||||
static void connection_setup(struct connection_state *state, int sock) {
|
||||
// Set the socket descriptor for the new connection in the connection_state
|
||||
// structure.
|
||||
state->sock = sock;
|
||||
|
||||
// Set the 'end' pointer of the state to the beginning of the buffer.
|
||||
state->end = state->buffer;
|
||||
|
||||
// Clear the buffer by filling it with zeros to avoid any stale data.
|
||||
memset(state->buffer, 0, HTTP_MAX_SIZE);
|
||||
}
|
||||
|
||||
/**
|
||||
* Discards the front of a buffer
|
||||
*
|
||||
* @param buffer A pointer to the buffer to be modified.
|
||||
* @param discard The number of bytes to drop from the front of the buffer.
|
||||
* @param keep The number of bytes that should be kept after the discarded
|
||||
* bytes.
|
||||
*
|
||||
* @return Returns a pointer to the first unused byte in the buffer after the
|
||||
* discard.
|
||||
* @example buffer_discard(ABCDEF0000, 4, 2):
|
||||
* ABCDEF0000 -> EFCDEF0000 -> EF00000000, returns pointer to first 0.
|
||||
*/
|
||||
char *buffer_discard(char *buffer, size_t discard, size_t keep) {
|
||||
memmove(buffer, buffer + discard, keep);
|
||||
memset(buffer + keep, 0, discard); // invalidate buffer
|
||||
return buffer + keep;
|
||||
}
|
||||
|
||||
/**
|
||||
* Handles incoming connections and processes data received over the socket.
|
||||
*
|
||||
* @param state A pointer to the connection_state structure containing the
|
||||
* connection state.
|
||||
* @return Returns true if the connection and data processing were successful,
|
||||
* false otherwise. If an error occurs while receiving data from the socket, the
|
||||
* function exits the program.
|
||||
*/
|
||||
bool handle_connection(struct connection_state *state) {
|
||||
// Calculate the pointer to the end of the buffer to avoid buffer overflow
|
||||
const char *buffer_end = state->buffer + HTTP_MAX_SIZE;
|
||||
|
||||
// Check if an error occurred while receiving data from the socket
|
||||
ssize_t bytes_read =
|
||||
recv(state->sock, state->end, buffer_end - state->end, 0);
|
||||
if (bytes_read == -1) {
|
||||
perror("recv");
|
||||
close(state->sock);
|
||||
exit(EXIT_FAILURE);
|
||||
} else if (bytes_read == 0) {
|
||||
return false;
|
||||
}
|
||||
|
||||
char *window_start = state->buffer;
|
||||
char *window_end = state->end + bytes_read;
|
||||
|
||||
ssize_t bytes_processed = 0;
|
||||
while ((bytes_processed = process_packet(state->sock, window_start,
|
||||
window_end - window_start)) > 0) {
|
||||
window_start += bytes_processed;
|
||||
}
|
||||
if (bytes_processed == -1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
state->end = buffer_discard(state->buffer, window_start - state->buffer,
|
||||
window_end - window_start);
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Derives a sockaddr_in structure from the provided host and port information.
|
||||
*
|
||||
* @param host The host (IP address or hostname) to be resolved into a network
|
||||
* address.
|
||||
* @param port The port number to be converted into network byte order.
|
||||
*
|
||||
* @return A sockaddr_in structure representing the network address derived from
|
||||
* the host and port.
|
||||
*/
|
||||
static struct sockaddr_in derive_sockaddr(const char *host, const char *port) {
|
||||
struct addrinfo hints = {
|
||||
.ai_family = AF_INET,
|
||||
};
|
||||
struct addrinfo *result_info;
|
||||
|
||||
// Resolve the host (IP address or hostname) into a list of possible
|
||||
// addresses.
|
||||
int returncode = getaddrinfo(host, port, &hints, &result_info);
|
||||
if (returncode) {
|
||||
fprintf(stderr, "Error parsing host/port");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
// Copy the sockaddr_in structure from the first address in the list
|
||||
struct sockaddr_in result = *((struct sockaddr_in *)result_info->ai_addr);
|
||||
|
||||
// Free the allocated memory for the result_info
|
||||
freeaddrinfo(result_info);
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets up a TCP server socket and binds it to the provided sockaddr_in address.
|
||||
*
|
||||
* @param addr The sockaddr_in structure representing the IP address and port of
|
||||
* the server.
|
||||
*
|
||||
* @return The file descriptor of the created TCP server socket.
|
||||
*/
|
||||
static int setup_server_socket(struct sockaddr_in addr) {
|
||||
const int enable = 1;
|
||||
const int backlog = 1;
|
||||
|
||||
// Create a socket
|
||||
int sock = socket(AF_INET, SOCK_STREAM, 0);
|
||||
if (sock == -1) {
|
||||
perror("socket");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
// Avoid dead lock on connections that are dropped after poll returns but
|
||||
// before accept is called
|
||||
if (fcntl(sock, F_SETFL, O_NONBLOCK) == -1) {
|
||||
perror("fcntl");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
// Set the SO_REUSEADDR socket option to allow reuse of local addresses
|
||||
if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &enable, sizeof(enable)) ==
|
||||
-1) {
|
||||
perror("setsockopt");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
// Bind socket to the provided address
|
||||
if (bind(sock, (struct sockaddr *)&addr, sizeof(addr)) == -1) {
|
||||
perror("bind");
|
||||
close(sock);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
// Start listening on the socket with maximum backlog of 1 pending
|
||||
// connection
|
||||
if (listen(sock, backlog)) {
|
||||
perror("listen");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
return sock;
|
||||
}
|
||||
|
||||
static int setup_server_socket_udp(struct sockaddr_in addr){
|
||||
struct protoent *proto = getprotobyname("UDP");
|
||||
int sock = socket(AF_INET, SOCK_DGRAM, proto->p_proto);
|
||||
if(sock == -1){
|
||||
perror("Func: setup_server_socket_udp - socket returned with errors while creating an udp socket!");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
if(bind(sock, (struct sockaddr*) &addr, sizeof(addr)) == -1){
|
||||
perror("Func: setup_server_socket_udp - bind returned with errors while binding socket to port!");
|
||||
close(sock);
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
return sock;
|
||||
}
|
||||
|
||||
static void handle_udp_request(int _caller_sockfd){
|
||||
size_t received_bytes = 0;
|
||||
char buffer[HTTP_MAX_SIZE] = {0};
|
||||
|
||||
struct sockaddr_storage caller_addr;
|
||||
socklen_t addrlen = sizeof caller_addr;
|
||||
|
||||
if((received_bytes = recvfrom(_caller_sockfd, buffer, HTTP_MAX_SIZE, 0, (struct sockaddr *) &caller_addr, &addrlen)) == -1){
|
||||
perror("Func: handle_udp_request - failed to receive data from caller!");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
else{
|
||||
// HASH Received
|
||||
uint16_t hash = pseudo_hash((uint8_t*)buffer, strlen(buffer));
|
||||
// Check belonging
|
||||
int pre_id = _PRED_ID;
|
||||
int suc_id = _SUCC_ID;
|
||||
|
||||
if ((pre_id < hash && hash <= _NODE_ID) || (pre_id > _NODE_ID && (hash > pre_id || hash <= _NODE_ID))) {
|
||||
char res[] = "HTTP/1.1 200 OK\r\nContent-Length: 0\r\n\r\n";
|
||||
if (sendto(_caller_sockfd, res, strlen(res), 0, (struct sockaddr *) &caller_addr, addrlen) == -1) {
|
||||
perror("Func: handle_udp_request - failed to send data to caller!");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
else{
|
||||
// TODO: 303 - See other
|
||||
char res[1024] = {0};
|
||||
snprintf(res, 1024, "HTTP/1.1 303 See Other\r\nLocation: http://%s:%s/%d\r\nContent-Length: 0\r\n\r\n", _NODE_IP, _NODE_PORT, suc_id);
|
||||
if(sendto(_caller_sockfd, res, strlen(res), 0, (struct sockaddr *) &caller_addr, addrlen) == -1){
|
||||
perror("Func: handle_udp_request - failed to send data to caller!");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* The program expects 3; otherwise, it returns EXIT_FAILURE.
|
||||
*
|
||||
* Call as:
|
||||
*
|
||||
* ./build/webserver self.ip self.port
|
||||
*/
|
||||
int main(int argc, char **argv) {
|
||||
if (argc != 4) {
|
||||
return EXIT_FAILURE;
|
||||
}
|
||||
|
||||
// Set this DHT-Nodes ID
|
||||
_NODE_ID = atoi(argv[3]);
|
||||
_NODE_PORT = argv[2];
|
||||
_NODE_IP = argv[1];
|
||||
|
||||
struct sockaddr_in addr = derive_sockaddr(argv[1], argv[2]);
|
||||
|
||||
// Set up a server socket.
|
||||
int server_socket = setup_server_socket(addr);
|
||||
int server_socket_udp = setup_server_socket_udp(addr);
|
||||
|
||||
// Create an array of pollfd structures to monitor sockets.
|
||||
struct pollfd sockets[3] = {
|
||||
{.fd = server_socket, .events = POLLIN},
|
||||
{},
|
||||
{.fd = server_socket_udp, .events = POLLIN}
|
||||
};
|
||||
|
||||
struct connection_state state = {0};
|
||||
while (true) {
|
||||
|
||||
// Use poll() to wait for events on the monitored sockets.
|
||||
int ready = poll(sockets, sizeof(sockets) / sizeof(sockets[0]), -1);
|
||||
if (ready == -1) {
|
||||
perror("poll");
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
|
||||
// Process events on the monitored sockets.
|
||||
for (size_t i = 0; i < sizeof(sockets) / sizeof(sockets[0]); i += 1) {
|
||||
if (sockets[i].revents != POLLIN) {
|
||||
// If there are no POLLIN events on the socket, continue to the
|
||||
// next iteration.
|
||||
continue;
|
||||
}
|
||||
int s = sockets[i].fd;
|
||||
|
||||
if (s == server_socket) {
|
||||
|
||||
// If the event is on the server_socket, accept a new connection
|
||||
// from a client.
|
||||
int connection = accept(server_socket, NULL, NULL);
|
||||
if (connection == -1 && errno != EAGAIN &&
|
||||
errno != EWOULDBLOCK) {
|
||||
close(server_socket);
|
||||
perror("accept");
|
||||
exit(EXIT_FAILURE);
|
||||
} else {
|
||||
connection_setup(&state, connection);
|
||||
|
||||
// limit to one connection at a time
|
||||
sockets[0].events = 0;
|
||||
sockets[1].fd = connection;
|
||||
sockets[1].events = POLLIN;
|
||||
}
|
||||
}
|
||||
elif(s == server_socket_udp){
|
||||
// DO UDP STUFF
|
||||
handle_udp_request(s);
|
||||
sockets[2].events = POLLIN;
|
||||
}
|
||||
|
||||
else {
|
||||
assert(s == state.sock);
|
||||
|
||||
// Call the 'handle_connection' function to process the incoming
|
||||
// data on the socket.
|
||||
bool cont = handle_connection(&state);
|
||||
if (!cont) { // get ready for a new connection
|
||||
sockets[0].events = POLLIN;
|
||||
sockets[1].fd = -1;
|
||||
sockets[1].events = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
Reference in New Issue
Block a user