diff --git a/utils/README b/utils/README index fe3f479e7e..b9d1b214dd 100644 --- a/utils/README +++ b/utils/README @@ -4,7 +4,7 @@ Public domain. Originally written 2005 by Karl Berry. Extra utilities we (optionally) compile for TeX Live. See comments in ../texk/README. -asymptote 2.99 - checked 11feb25 +asymptote 3.00 - checked 18feb25 update to TL from CTAN, to include prebuilt doc. see https://tug.org/texlive/build.html#asymptote and tlpkg/bin/tl-update-asy diff --git a/utils/asymptote/ChangeLog b/utils/asymptote/ChangeLog index becbb6d6d9..39b5480574 100644 --- a/utils/asymptote/ChangeLog +++ b/utils/asymptote/ChangeLog @@ -1,3 +1,51 @@ +commit 6d4b620bfe8895c4e1d1fce7c81e61d499bf765f +Author: Charles Staats III +Date: Sun Feb 16 21:45:13 2025 -0800 + + Fix CPPFLAGS. + +commit edf66a773d0aaf7086e68bc4bcad6409e672e4ba +Author: John Bowman +Date: Sat Feb 15 11:29:57 2025 -0800 + + Simplify code. + +commit fe941345cf1f44a690c16f370d3b4c8db4cdd5c3 +Author: John Bowman +Date: Fri Feb 14 20:25:08 2025 -0800 + + Search for glm in current directory; don't require tirpc under FreeBSD. + +commit a399a7dd6e9784d5d18696e66fd148c453e17ec6 +Author: John Bowman +Date: Fri Feb 14 14:38:18 2025 -0800 + + Always look for includes in current directory first. + +commit 76d289e234c752336333ed9367366059ac978dbd +Author: John Bowman +Date: Fri Feb 14 10:54:22 2025 -0800 + + Update asymptote.spec. + +commit 38e5328c1595d187da029c83d61a18061d55800f +Author: John Bowman +Date: Fri Feb 14 10:43:37 2025 -0800 + + Update ax_pthread.m4. + +commit 8fb038c69868ee0205f8b3852a98167e21fbffe0 +Author: John Bowman +Date: Fri Feb 14 10:38:18 2025 -0800 + + Prebuilt missing gc automake files. + +commit a0c2ea71ef180d391a769d6e78b049571edf0f55 +Author: John Bowman +Date: Mon Feb 10 16:15:41 2025 -0800 + + Increment version to 3.00. + commit cf4243cb97f7d700a320cb93a0e7a47328c32b35 Author: John Bowman Date: Mon Feb 10 14:44:17 2025 -0800 diff --git a/utils/asymptote/GUI/xasyicons/__init__.py b/utils/asymptote/GUI/xasyicons/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/utils/asymptote/GUI/xasyicons/icons_rc.py b/utils/asymptote/GUI/xasyicons/icons_rc.py index 8fccb3e87a..02ea466dec 100644 --- a/utils/asymptote/GUI/xasyicons/icons_rc.py +++ b/utils/asymptote/GUI/xasyicons/icons_rc.py @@ -2797,93 +2797,93 @@ \x00\x00\x00\x00\x00\x02\x00\x00\x00\x2c\x00\x00\x00\x02\ \x00\x00\x00\x00\x00\x00\x00\x00\ \x00\x00\x00\x10\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9c\ +\x00\x00\x01\x95\x12\xd0\x5e\x2a\ \x00\x00\x00\x38\x00\x00\x00\x00\x00\x01\x00\x00\x07\x6f\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9b\ +\x00\x00\x01\x95\x12\xd0\x5e\x28\ \x00\x00\x00\x52\x00\x00\x00\x00\x00\x01\x00\x00\x0d\x0f\ -\x00\x00\x01\x94\xf2\x0a\x5c\x99\ +\x00\x00\x01\x95\x12\xd0\x5e\x27\ \x00\x00\x00\x84\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x85\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9a\ +\x00\x00\x01\x95\x12\xd0\x5e\x28\ \x00\x00\x00\xb0\x00\x00\x00\x00\x00\x01\x00\x00\x12\xa4\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9b\ +\x00\x00\x01\x95\x12\xd0\x5e\x29\ \x00\x00\x00\xee\x00\x01\x00\x00\x00\x01\x00\x00\x16\x90\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9c\ +\x00\x00\x01\x95\x12\xd0\x5e\x29\ \x00\x00\x01\x14\x00\x00\x00\x00\x00\x01\x00\x00\x18\xb3\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9a\ +\x00\x00\x01\x95\x12\xd0\x5e\x28\ \x00\x00\x01\x3e\x00\x00\x00\x00\x00\x01\x00\x00\x1b\xe1\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9d\ +\x00\x00\x01\x95\x12\xd0\x5e\x2a\ \x00\x00\x01\x54\x00\x00\x00\x00\x00\x01\x00\x00\x1f\xfc\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9b\ +\x00\x00\x01\x95\x12\xd0\x5e\x29\ \x00\x00\x01\x78\x00\x00\x00\x00\x00\x01\x00\x00\x24\xa3\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9c\ +\x00\x00\x01\x95\x12\xd0\x5e\x29\ \x00\x00\x01\x98\x00\x00\x00\x00\x00\x01\x00\x00\x29\x1a\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9c\ +\x00\x00\x01\x95\x12\xd0\x5e\x29\ \x00\x00\x01\xae\x00\x00\x00\x00\x00\x01\x00\x00\x2d\xba\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9a\ +\x00\x00\x01\x95\x12\xd0\x5e\x28\ \x00\x00\x01\xd0\x00\x00\x00\x00\x00\x01\x00\x00\x30\x7f\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9d\ +\x00\x00\x01\x95\x12\xd0\x5e\x2a\ \x00\x00\x02\x04\x00\x00\x00\x00\x00\x01\x00\x00\x35\x4d\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9a\ +\x00\x00\x01\x95\x12\xd0\x5e\x28\ \x00\x00\x02\x2a\x00\x00\x00\x00\x00\x01\x00\x00\x3b\x0c\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9b\ +\x00\x00\x01\x95\x12\xd0\x5e\x29\ \x00\x00\x02\x6a\x00\x00\x00\x00\x00\x01\x00\x00\x3e\xe9\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9c\ +\x00\x00\x01\x95\x12\xd0\x5e\x29\ \x00\x00\x02\x8e\x00\x00\x00\x00\x00\x01\x00\x00\x43\x00\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9a\ +\x00\x00\x01\x95\x12\xd0\x5e\x28\ \x00\x00\x02\xc2\x00\x00\x00\x00\x00\x01\x00\x00\x46\x4c\ -\x00\x00\x01\x94\xf2\x0a\x5c\x99\ +\x00\x00\x01\x95\x12\xd0\x5e\x27\ \x00\x00\x02\xec\x00\x00\x00\x00\x00\x01\x00\x00\x48\xe8\ -\x00\x00\x01\x94\xf2\x0a\x5c\x99\ +\x00\x00\x01\x95\x12\xd0\x5e\x27\ \x00\x00\x03\x16\x00\x00\x00\x00\x00\x01\x00\x00\x4c\x02\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9b\ +\x00\x00\x01\x95\x12\xd0\x5e\x28\ \x00\x00\x03\x3c\x00\x00\x00\x00\x00\x01\x00\x00\x50\x04\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9a\ +\x00\x00\x01\x95\x12\xd0\x5e\x28\ \x00\x00\x03\x7a\x00\x00\x00\x00\x00\x01\x00\x00\x52\xf8\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9c\ +\x00\x00\x01\x95\x12\xd0\x5e\x2a\ \x00\x00\x03\x90\x00\x00\x00\x00\x00\x01\x00\x00\x55\x93\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9a\ +\x00\x00\x01\x95\x12\xd0\x5e\x27\ \x00\x00\x03\xb6\x00\x01\x00\x00\x00\x01\x00\x00\x58\x03\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9c\ +\x00\x00\x01\x95\x12\xd0\x5e\x29\ \x00\x00\x03\xcc\x00\x00\x00\x00\x00\x01\x00\x00\x59\xe4\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9b\ +\x00\x00\x01\x95\x12\xd0\x5e\x29\ \x00\x00\x03\xf0\x00\x00\x00\x00\x00\x01\x00\x00\x5d\x25\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9b\ +\x00\x00\x01\x95\x12\xd0\x5e\x29\ \x00\x00\x04\x0a\x00\x00\x00\x00\x00\x01\x00\x00\x60\x10\ -\x00\x00\x01\x94\xf2\x0a\x5c\x99\ +\x00\x00\x01\x95\x12\xd0\x5e\x27\ \x00\x00\x04\x42\x00\x00\x00\x00\x00\x01\x00\x00\x62\x86\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9b\ +\x00\x00\x01\x95\x12\xd0\x5e\x28\ \x00\x00\x04\x5c\x00\x00\x00\x00\x00\x01\x00\x00\x65\xe4\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9c\ +\x00\x00\x01\x95\x12\xd0\x5e\x29\ \x00\x00\x04\x72\x00\x00\x00\x00\x00\x01\x00\x00\x69\x47\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9b\ +\x00\x00\x01\x95\x12\xd0\x5e\x29\ \x00\x00\x04\x8a\x00\x00\x00\x00\x00\x01\x00\x00\x6c\x4e\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9c\ +\x00\x00\x01\x95\x12\xd0\x5e\x2a\ \x00\x00\x04\xa0\x00\x00\x00\x00\x00\x01\x00\x00\x70\x94\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9a\ +\x00\x00\x01\x95\x12\xd0\x5e\x28\ \x00\x00\x04\xc6\x00\x00\x00\x00\x00\x01\x00\x00\x73\x0f\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9a\ +\x00\x00\x01\x95\x12\xd0\x5e\x28\ \x00\x00\x04\xf0\x00\x00\x00\x00\x00\x01\x00\x00\x77\x67\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9a\ +\x00\x00\x01\x95\x12\xd0\x5e\x28\ \x00\x00\x05\x08\x00\x00\x00\x00\x00\x01\x00\x00\x7b\x45\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9b\ +\x00\x00\x01\x95\x12\xd0\x5e\x29\ \x00\x00\x05\x30\x00\x00\x00\x00\x00\x01\x00\x00\x7f\x6b\ -\x00\x00\x01\x94\xf2\x0a\x5c\x99\ +\x00\x00\x01\x95\x12\xd0\x5e\x27\ \x00\x00\x05\x58\x00\x00\x00\x00\x00\x01\x00\x00\x82\x1a\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9d\ +\x00\x00\x01\x95\x12\xd0\x5e\x2a\ \x00\x00\x05\x6e\x00\x00\x00\x00\x00\x01\x00\x00\x83\x3a\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9c\ +\x00\x00\x01\x95\x12\xd0\x5e\x29\ \x00\x00\x05\x82\x00\x00\x00\x00\x00\x01\x00\x00\x87\x1a\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9a\ +\x00\x00\x01\x95\x12\xd0\x5e\x28\ \x00\x00\x05\xbe\x00\x00\x00\x00\x00\x01\x00\x00\x8a\x5d\ -\x00\x00\x01\x94\xf2\x0a\x5c\x99\ +\x00\x00\x01\x95\x12\xd0\x5e\x27\ \x00\x00\x05\xd8\x00\x00\x00\x00\x00\x01\x00\x00\x8b\xca\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9c\ +\x00\x00\x01\x95\x12\xd0\x5e\x29\ \x00\x00\x06\x06\x00\x00\x00\x00\x00\x01\x00\x00\x8f\x85\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9c\ +\x00\x00\x01\x95\x12\xd0\x5e\x2a\ \x00\x00\x06\x36\x00\x00\x00\x00\x00\x01\x00\x00\x8f\xf5\ -\x00\x00\x01\x94\xf2\x0a\x5c\x9c\ +\x00\x00\x01\x95\x12\xd0\x5e\x29\ \x00\x00\x06\x58\x00\x00\x00\x00\x00\x01\x00\x00\x92\xe7\ -\x00\x00\x01\x94\xf2\x0a\x5c\x99\ +\x00\x00\x01\x95\x12\xd0\x5e\x27\ " qt_version = [int(v) for v in QtCore.qVersion().split('.')] diff --git a/utils/asymptote/GUI/xasyqtui/__init__.py b/utils/asymptote/GUI/xasyqtui/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/utils/asymptote/GUI/xasyversion/__init__.py b/utils/asymptote/GUI/xasyversion/__init__.py deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/utils/asymptote/GUI/xasyversion/version.py b/utils/asymptote/GUI/xasyversion/version.py index 3d819e1885..9ddac9a36f 100644 --- a/utils/asymptote/GUI/xasyversion/version.py +++ b/utils/asymptote/GUI/xasyversion/version.py @@ -1 +1 @@ -VERSION="2.99" +VERSION="3.00" diff --git a/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake b/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake index cb4a39bada..c1ed3dc503 100644 --- a/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake +++ b/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/CMakeDirectoryInformation.cmake @@ -2,8 +2,8 @@ # Generated by "Unix Makefiles" Generator, CMake Version 3.30 # Relative path conversion top directories. -set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/usr/local/src/asymptote-2.99/LspCpp") -set(CMAKE_RELATIVE_PATH_TOP_BINARY "/usr/local/src/asymptote-2.99/LspCpp") +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/usr/local/src/asymptote-3.00/LspCpp") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/usr/local/src/asymptote-3.00/LspCpp") # Force unix paths in dependencies. set(CMAKE_FORCE_UNIX_PATHS 1) diff --git a/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make b/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make index fe4a9f8bf3..9fd8216ed0 100644 --- a/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make +++ b/utils/asymptote/LspCpp/third_party/uri/CMakeFiles/doc.dir/build.make @@ -56,10 +56,10 @@ RM = /usr/bin/cmake -E rm -f EQUALS = = # The top-level source directory on which CMake was run. -CMAKE_SOURCE_DIR = /usr/local/src/asymptote-2.99/LspCpp +CMAKE_SOURCE_DIR = /usr/local/src/asymptote-3.00/LspCpp # The top-level build directory on which CMake was run. -CMAKE_BINARY_DIR = /usr/local/src/asymptote-2.99/LspCpp +CMAKE_BINARY_DIR = /usr/local/src/asymptote-3.00/LspCpp # Utility rule file for doc. @@ -70,8 +70,8 @@ include third_party/uri/CMakeFiles/doc.dir/compiler_depend.make include third_party/uri/CMakeFiles/doc.dir/progress.make third_party/uri/CMakeFiles/doc: - @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --blue --bold --progress-dir=/usr/local/src/asymptote-2.99/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Generating API documentation with Doxygen" - cd /usr/local/src/asymptote-2.99/LspCpp/third_party/uri && /bin/doxygen /usr/local/src/asymptote-2.99/LspCpp/third_party/uri/Doxyfile + @$(CMAKE_COMMAND) -E cmake_echo_color "--switch=$(COLOR)" --blue --bold --progress-dir=/usr/local/src/asymptote-3.00/LspCpp/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Generating API documentation with Doxygen" + cd /usr/local/src/asymptote-3.00/LspCpp/third_party/uri && /bin/doxygen /usr/local/src/asymptote-3.00/LspCpp/third_party/uri/Doxyfile doc: third_party/uri/CMakeFiles/doc doc: third_party/uri/CMakeFiles/doc.dir/build.make @@ -82,10 +82,10 @@ third_party/uri/CMakeFiles/doc.dir/build: doc .PHONY : third_party/uri/CMakeFiles/doc.dir/build third_party/uri/CMakeFiles/doc.dir/clean: - cd /usr/local/src/asymptote-2.99/LspCpp/third_party/uri && $(CMAKE_COMMAND) -P CMakeFiles/doc.dir/cmake_clean.cmake + cd /usr/local/src/asymptote-3.00/LspCpp/third_party/uri && $(CMAKE_COMMAND) -P CMakeFiles/doc.dir/cmake_clean.cmake .PHONY : third_party/uri/CMakeFiles/doc.dir/clean third_party/uri/CMakeFiles/doc.dir/depend: - cd /usr/local/src/asymptote-2.99/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /usr/local/src/asymptote-2.99/LspCpp /usr/local/src/asymptote-2.99/LspCpp/third_party/uri /usr/local/src/asymptote-2.99/LspCpp /usr/local/src/asymptote-2.99/LspCpp/third_party/uri /usr/local/src/asymptote-2.99/LspCpp/third_party/uri/CMakeFiles/doc.dir/DependInfo.cmake "--color=$(COLOR)" + cd /usr/local/src/asymptote-3.00/LspCpp && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /usr/local/src/asymptote-3.00/LspCpp /usr/local/src/asymptote-3.00/LspCpp/third_party/uri /usr/local/src/asymptote-3.00/LspCpp /usr/local/src/asymptote-3.00/LspCpp/third_party/uri /usr/local/src/asymptote-3.00/LspCpp/third_party/uri/CMakeFiles/doc.dir/DependInfo.cmake "--color=$(COLOR)" .PHONY : third_party/uri/CMakeFiles/doc.dir/depend diff --git a/utils/asymptote/LspCpp/third_party/uri/Doxyfile b/utils/asymptote/LspCpp/third_party/uri/Doxyfile index 3658984abe..e162ad4633 100644 --- a/utils/asymptote/LspCpp/third_party/uri/Doxyfile +++ b/utils/asymptote/LspCpp/third_party/uri/Doxyfile @@ -128,7 +128,7 @@ FULL_PATH_NAMES = YES # If left blank the directory from which doxygen is run is used as the # path to strip. -STRIP_FROM_PATH = /usr/local/src/asymptote-2.99/LspCpp/third_party/uri/include/ +STRIP_FROM_PATH = /usr/local/src/asymptote-3.00/LspCpp/third_party/uri/include/ # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of # the path mentioned in the documentation of a class, which tells @@ -626,7 +626,7 @@ WARN_LOGFILE = # directories like "/usr/src/myproject". Separate the files or directories # with spaces. -INPUT = /usr/local/src/asymptote-2.99/LspCpp/third_party/uri/include +INPUT = /usr/local/src/asymptote-3.00/LspCpp/third_party/uri/include # This tag can be used to specify the character encoding of the source files # that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is @@ -658,7 +658,7 @@ RECURSIVE = YES # Note that relative paths are relative to the directory from which doxygen is # run. -EXCLUDE = /usr/local/src/asymptote-2.99/LspCpp/third_party/uri/include/network/uri/detail +EXCLUDE = /usr/local/src/asymptote-3.00/LspCpp/third_party/uri/include/network/uri/detail # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or # directories that are symbolic links (a Unix file system feature) are excluded @@ -821,7 +821,7 @@ COLS_IN_ALPHA_INDEX = 5 # The IGNORE_PREFIX tag can be used to specify one or more prefixes that # should be ignored while generating the index headers. -IGNORE_PREFIX = /usr/local/src/asymptote-2.99/LspCpp/third_party/uri/uri/src/ +IGNORE_PREFIX = /usr/local/src/asymptote-3.00/LspCpp/third_party/uri/uri/src/ #--------------------------------------------------------------------------- # configuration options related to the HTML output diff --git a/utils/asymptote/LspCpp/third_party/uri/src/libnetwork-uri.a b/utils/asymptote/LspCpp/third_party/uri/src/libnetwork-uri.a index 398fcc188c..ac61309cf1 100644 Binary files a/utils/asymptote/LspCpp/third_party/uri/src/libnetwork-uri.a and b/utils/asymptote/LspCpp/third_party/uri/src/libnetwork-uri.a differ diff --git a/utils/asymptote/Makefile.in b/utils/asymptote/Makefile.in index c83f7102c2..7bcefe0db7 100644 --- a/utils/asymptote/Makefile.in +++ b/utils/asymptote/Makefile.in @@ -87,7 +87,7 @@ LATEXFILES = asymptote.sty asycolors.sty latexmkrc CONTEXTFILES = colo-asy.tex ASY = ./asy -dir base -config "" -render=0 -DEFS = @DEFS@ @OPTIONS@ @PTHREAD_CFLAGS@ -DFFTWPP_SINGLE_THREAD -Wall +DEFS = @DEFS@ @OPTIONS@ @PTHREAD_CFLAGS@ -DFFTWPP_SINGLE_THREAD -Wall -I. CFLAGS = @CFLAGS@ OPTS = $(DEFS) @CPPFLAGS@ @CXXFLAGS@ $(CFLAGS) \ -Ibackports/optional/include \ @@ -380,6 +380,7 @@ cleaner: FORCE clean -rm -rf GUI/pyUIClass/__pycache__ -rm -rf GUI/configs/__pycache__ -$(MAKE) -C $(GC) distclean + -$(MAKE) -C libatomic_ops distclean -cd $(GC) && rm -rf libatomic_ops .deps cord/.deps cord/tests/.deps extra/.deps tests/.deps -rm -f Makefile config.h config.log config.status errors.temp @@ -394,7 +395,9 @@ cleanest: FORCE maintainer-clean maintainer-clean: FORCE distclean -rm -f configure config.h.in -rm -f ltmain.sh compile missing depcomp test-driver - -rm -rf $(GC)/m4/l*.m4 + -cd $(GC) && -rm -rf ltmain.sh compile missing depcomp test-driver \ + configure autom4te.cache m4/l*.m4 + -cd libatomic_ops && rm -rf autom4te.cache configure m4/l*.m4 -cd GUI && $(PYTHON) buildtool.py clean -rm -rf autom4te.cache $(DIST) -rm -rf vcpkg_installed @@ -410,7 +413,7 @@ check-all: asy FORCE $(MAKE) -C tests all glew.o: glew.c config.h - $(CC) -I. $(GLEWOPTS) -o $@ -c $< + $(CC) $(GLEWOPTS) -o $@ -c $< .SUFFIXES: .c .cc .o .d .ui .py %.o: %.cc $(GENERATEDENUMS:=.h) $(RUNTIME_FILES:=.cc) diff --git a/utils/asymptote/ReleaseNotes b/utils/asymptote/ReleaseNotes index 13ceb86079..136cbce002 100644 --- a/utils/asymptote/ReleaseNotes +++ b/utils/asymptote/ReleaseNotes @@ -1,3 +1,7 @@ +Release Notes for Version 3.00 + +Configuration issues were addressed. + Release Notes for Version 2.99 The libtool dependence of configure was removed. diff --git a/utils/asymptote/asy-keywords.el b/utils/asymptote/asy-keywords.el index 60318468c9..4b1431ae21 100644 --- a/utils/asymptote/asy-keywords.el +++ b/utils/asymptote/asy-keywords.el @@ -2,7 +2,7 @@ ;; This file is automatically generated by asy-list.py. ;; Changes will be overwritten. ;; -(defvar asy-keywords-version "2.99") +(defvar asy-keywords-version "3.00") (defvar asy-keyword-name '( and controls tension atleast curl if else while for do return break continue struct typedef using new access import unravel from include quote static autounravel public private restricted this explicit true false null cycle newframe operator )) diff --git a/utils/asymptote/asy.list b/utils/asymptote/asy.list index 6fe32edeb1..583aae3a42 100644 --- a/utils/asymptote/asy.list +++ b/utils/asymptote/asy.list @@ -37,7 +37,6 @@ slice lastcut(path p, path knife); pen darkgreen; string verbatim(string s); pen heavygray; -coord[] maxcoords(coord[] in, bool operator <=(coord, coord)); pen darkred; pair E; plain_bounds plain_bounds; @@ -80,6 +79,7 @@ pen darkolive; pen Dotted; pen Dotted(pen p=); string math(string s); +coord[] maxcoords(coord[] in, bool operator <=(coord, coord)); void drawarrow(frame f, arrowhead arrowhead=, path g, pen p=, real size=, real angle=, filltype filltype=, position position=, bool forwards=, marginT margin(path, pen)=, bool center=); transform fixedscaling(picture pic=, pair min, pair max, pen p=, bool warn=); pen Symbol(string series=, string shape=); @@ -293,13 +293,13 @@ real[] concat(... real[][]); marker[] concat(... marker[][]); Label[] concat(... Label[][]); bool3[] concat(... bool3[][]); -coord[] concat(... coord[][]); pair[] concat(... pair[][]); pen[] concat(... pen[][]); Legend[] concat(... Legend[][]); picture[] concat(... picture[][]); path[] concat(... path[][]); int[] concat(... int[][]); +coord[] concat(... coord[][]); object[] concat(... object[][]); void()()[] concat(... void()()[][]); string[] concat(... string[][]); @@ -318,6 +318,9 @@ pen palecyan; node node(void d(frame f, transform t, transform T, pair lb, pair rt), string key=); marginT BeginMargin(path, pen); path buildcycle(... path[] p); +real arcarrowsize(pen p=); +real calculateScaling(string dir, coord[] m, coord[] M, real size, bool warn=); +real calculateScaling(string dir, coord[] coords, real size, bool warn=); void activatequote(picture pic=); int undefined; pen roundcap; @@ -335,9 +338,6 @@ void tab(file file); bool CCW; void usetypescript(string s, string encoding=); path randompath(int n, bool cumulate=, guide join(... guide[])=); -real arcarrowsize(pen p=); -real calculateScaling(string dir, coord[] coords, real size, bool warn=); -real calculateScaling(string dir, coord[] m, coord[] M, real size, bool warn=); void()()[] array(int n, void value()(), int depth=); bool[] array(int n, bool value, int depth=); string[] array(int n, string value, int depth=); @@ -356,8 +356,8 @@ int[] array(int n, int value, int depth=); string[][] array(int n, string[] value, int depth=); pair[] array(int n, pair value, int depth=); bool3[] array(int n, bool3 value, int depth=); -coord[] array(int n, coord value, int depth=); guide[] array(int n, guide value, int depth=); +coord[] array(int n, coord value, int depth=); object[] array(int n, object value, int depth=); pen[] array(int n, pen value, int depth=); string[] array(string s); @@ -678,9 +678,9 @@ int[] sequence(int f(int), int n); string[][] sequence(string[] f(int), int n); pair[] sequence(pair f(int), int n); bool3[] sequence(bool3 f(int), int n); -coord[] sequence(coord f(int), int n); int[] sequence(int n, int m, int skip); guide[] sequence(guide f(int), int n); +coord[] sequence(coord f(int), int n); object[] sequence(object f(int), int n); pen[] sequence(pen f(int), int n); void()()[] sequence(void f()()(int), int n); @@ -1059,7 +1059,6 @@ bool alias(int[] a, int[] b); bool alias(string[][] a, string[][] b); bool alias(bool3 a, bool3 b); bool alias(marginT a, marginT b); -bool alias(coord a, coord b); bool alias(transformation a, transformation b); bool alias(projection a, projection b); bool alias(coords3 a, coords3 b); @@ -1089,15 +1088,16 @@ bool alias(pairOrTriple a, pairOrTriple b); bool alias(arrowhead a, arrowhead b); bool alias(triple[] a, triple[] b); bool alias(hsv a, hsv b); +bool alias(coord a, coord b); bool alias(scaleT a, scaleT b); bool alias(object a, object b); bool alias(processtime a, processtime b); bool alias(real[] a, real[] b); bool alias(bool3[] a, bool3[] b); -bool alias(coord[] a, coord[] b); bool alias(pen[] a, pen[] b); bool alias(Legend[] a, Legend[] b); bool alias(picture[] a, picture[] b); +bool alias(coord[] a, coord[] b); bool alias(object[] a, object[] b); bool alias(coords2 a, coords2 b); bool alias(node a, node b); @@ -1129,7 +1129,6 @@ pen[][] map(pen[] f(pen[]), pen[][] a); triple[] map(triple f(triple), triple[] a); pen[] map(pen f(pen), pen[] a); bool3[] map(bool3 f(bool3), bool3[] a); -coord[] map(coord f(coord), coord[] a); pair[] map(pair f(pair), pair[] a); string[] map(string f(string), string[] a); marker[] map(marker f(marker), marker[] a); @@ -1137,6 +1136,7 @@ Label[] map(Label f(Label), Label[] a); void()()[] map(void f()()(void()()), void()()[] a); pair[][] map(pair[] f(pair[]), pair[][] a); real[] map(real f(real), real[] a); +coord[] map(coord f(coord), coord[] a); object[] map(object f(object), object[] a); int[] map(int f(int), int[] a); string[][] map(string[] f(string[]), string[][] a); @@ -1271,13 +1271,13 @@ int search(picture[] a, picture key, bool less(picture, picture)); int search(guide[] a, guide key, bool less(guide, guide)); int search(pair[] a, pair key, bool less(pair, pair)); int search(frame[] a, frame key, bool less(frame, frame)); +int search(coord[] a, coord key, bool less(coord, coord)); int search(object[] a, object key, bool less(object, object)); int search(int[] a, int key, bool less(int, int)); int search(string[] a, string key, bool less(string, string)); int search(path[] a, path key, bool less(path, path)); int search(pen[] a, pen key, bool less(pen, pen)); int search(bool3[] a, bool3 key, bool less(bool3, bool3)); -int search(coord[] a, coord key, bool less(coord, coord)); int search(bool[] a, bool key, bool less(bool, bool)); int search(triple[] a, triple key, bool less(triple, triple)); int[] sort(int[] a); @@ -1300,9 +1300,9 @@ Label[] sort(Label[] a, bool less(Label, Label), bool stable=); int[] sort(int[] a, bool less(int, int), bool stable=); string[][] sort(string[][] a, bool less(string[], string[]), bool stable=); bool3[] sort(bool3[] a, bool less(bool3, bool3), bool stable=); -coord[] sort(coord[] a, bool less(coord, coord), bool stable=); real[] sort(real[] a, bool less(real, real), bool stable=); string[] sort(string[] a, bool less(string, string), bool stable=); +coord[] sort(coord[] a, bool less(coord, coord), bool stable=); object[] sort(object[] a, bool less(object, object), bool stable=); pair[] sort(pair[] a, bool less(pair, pair), bool stable=); real[][] sort(real[][] a, bool less(real[], real[]), bool stable=); @@ -1446,10 +1446,10 @@ string[] copy(string[] a, int depth=); void()()[] copy(void()()[] a, int depth=); int[] copy(int[] a, int depth=); string[][] copy(string[][] a, int depth=); +coord[] copy(coord[] a, int depth=); object[] copy(object[] a, int depth=); frame[] copy(frame[] a, int depth=); bool3[] copy(bool3[] a, int depth=); -coord[] copy(coord[] a, int depth=); pair[] copy(pair[] a, int depth=); marker[] copy(marker[] a, int depth=); Label[] copy(Label[] a, int depth=); @@ -1671,7 +1671,6 @@ bool operator !=(path a, path b); bool operator !=(path3 a, path3 b); bool operator !=(bool3 a, bool3 b); bool operator !=(marginT a, marginT b); -bool operator !=(coord a, coord b); bool operator !=(transformation a, transformation b); bool operator !=(projection a, projection b); bool operator !=(coords3 a, coords3 b); @@ -1695,6 +1694,7 @@ bool operator !=(scaling a, scaling b); bool operator !=(pairOrTriple a, pairOrTriple b); bool operator !=(arrowhead a, arrowhead b); bool operator !=(hsv a, hsv b); +bool operator !=(coord a, coord b); bool operator !=(scaleT a, scaleT b); bool operator !=(object a, object b); bool operator !=(processtime a, processtime b); @@ -1756,6 +1756,7 @@ bool operator ==(scaling a, scaling b); bool operator ==(pairOrTriple a, pairOrTriple b); bool operator ==(arrowhead a, arrowhead b); bool operator ==(hsv a, hsv b); +bool operator ==(coord a, coord b); bool operator ==(scaleT a, scaleT b); bool operator ==(object a, object b); bool operator ==(processtime a, processtime b); @@ -1765,7 +1766,6 @@ bool operator ==(Label a, Label b); bool operator ==(marker a, marker b); bool operator ==(bool3 a, bool3 b); bool operator ==(marginT a, marginT b); -bool operator ==(coord a, coord b); bool operator ==(transformation a, transformation b); bool operator ==(projection a, projection b); bool operator ==(coords3 a, coords3 b); @@ -1949,7 +1949,6 @@ position operator init(); realschur operator init(); bool3 operator init(); marginT operator init(); -coord operator init(); transformation operator init(); projection operator init(); coords3 operator init(); @@ -1960,6 +1959,7 @@ node operator init(); Label operator init(); marker operator init(); hsv operator init(); +coord operator init(); scaleT operator init(); object operator init(); processtime operator init(); @@ -2000,16 +2000,16 @@ int operator cast(key k); int[] operator cast(key[] k); binarytree binarytree(... key[] keys); key key(int n, bool active=); +binarytree searchtree(... int[] keys); object draw(picture pic=, binarytreeNode node, pair pos, int height, real minDist, real levelDist, real nodeDiameter, pen p=, bool condensed=); void draw(picture pic=, binarytree tree, real minDist=, real nodeMargin=, pen p=, bool condensed=); binarytreeNode operator init(); -binarytree searchtree(... int[] keys); real epsilon; -line intersection(face a, face b); +splitface split(face a, face cut, projection P); void add(picture pic=, face[] faces, projection P=); +line intersection(face a, face b); picture operator cast(face f); face operator cast(path3 p); -splitface split(face a, face cut, projection P); list_data viridis; list_data twilight; seg_data wistia; @@ -2031,39 +2031,39 @@ list_data YlGn; list_data Set2; list_data Reds; list_data cividis; -list_data tab20b; +list_data Purples; list_data inferno; list_data RdPu; +seg_data bone; list_data tab20; seg_data summer; -seg_data pink; seg_data gray; list_data twilight_shifted; -seg_data bone; list_data plasma; seg_data spring; -list_data Paired; -list_data Purples; -list_data tab10; -list_data Pastel1; seg_data autumn; -list_data RdBu; seg_data hsv; -seg_data coolwarm; -real[] makeMappingArray(int N, triple[] data, real gamma=); +list_data RdBu; +list_data tab20b; list_data Greys; list_data Spectral; +list_data tab10; +list_data Pastel1; +seg_data coolwarm; +real[] makeMappingArray(int N, triple[] data, real gamma=); +list_data Paired; list_data Set1; list_data Set3; +seg_data pink; list_data magma; list_data YlGnBu; -list_data Greens; list_data BrBG; list_data OrRd; list_data PuRd; list_data PuBuGn; list_data RdGy; list_data YlOrBr; +list_data Greens; list_data Pastel2; seg_data jet; list_data Accent; @@ -2081,10 +2081,10 @@ list_data PuOr; list_data RdYlBu; list_data RdYlGn; real eps; -surface surface(vertex[][] g); vertex[][] contour3(triple[][][] v, real[][][] f, real[][][] midpoint=, projection P=); vertex[][] contour3(real[][][] f, real[][][] midpoint=, triple a, triple b, projection P=); vertex[][] contour3(real f(real, real, real), triple a, triple b, int nx=, int ny=, int nz=, projection P=); +surface surface(vertex[][] g); segment case3(pair p0, pair p1, pair p2, real v0, real v1, real v2, int edge=); segment case1(pair p0, pair p1, int edge); real eps; @@ -2097,20 +2097,20 @@ guide[][] contour(picture pic=, real f(real, real), pair a, pair b, rea guide[][] contour(picture pic=, real f(pair), pair a, pair b, real[] c, int nx=, int ny=, guide join(... guide[])=); guide[][] contour(picture pic=, pair[] z, real[] f, real[] c, guide join(... guide[])=); guide[][] connect(picture pic, pair[][][] points, real[] c, guide join(... guide[])); -void collect(pair[][][] points, real[] c); void addseg(pair[][] gds, segment seg); void draw(picture pic=, Label[] L=, guide[][] g, pen[] p); void draw(picture pic=, Label[] L=, guide[][] g, pen p=); +void collect(pair[][][] points, real[] c); void fill(picture pic=, guide[][] g, pen[][] palette); pen[] extend(pen[] palette, pen below, pen above); void drawAll(TreeNode node, frame f); real layout(int level, TreeNode node); real treeMinNodeWidth; real treeLevelStep; -void add(TreeNode child, TreeNode parent); -void draw(TreeNode root, pair pos); TreeNode makeNode(TreeNode parent=, frame f); TreeNode makeNode(TreeNode parent=, Label label); +void add(TreeNode child, TreeNode parent); +void draw(TreeNode root, pair pos); real treeNodeStep; string embed(string name, string text=, string options=, real width=, real height=); string embedplayer(string name, string text=, string options=, real width=, real height=); @@ -2139,25 +2139,25 @@ path momArrowPath(path p, align align, position pos, real offset=, real path photon(path p, real amp=, real width=); void drawVertexBoxX(picture pic=, pair xy, real r=, pen fgpen=, bool erasebg=, pen bgpen=); path gluon(path p, real amp=, real width=); -string includegraphicscommand; real linemargin; -void drawDoubleLine(picture pic=, path p, pen fgpen=, real dlspacing=, bool arrow(picture, path, pen, marginT(path, pen))=, bool erasebg=, pen bgpen=, real vertexangle=, real margin=); -pen photonpen; -pen ghostpen; +bool overpaint; +bool currentarrow(picture, path, pen, marginT(path, pen)); real momarrowoffset; real doublelinespacing; bool currentmomarrow(picture, path, pen, marginT(path, pen)); real momarrowsize(pen p=); -bool overpaint; real gluonratio; pen vertexpen; -bool currentarrow(picture, path, pen, marginT(path, pen)); +void drawDoubleLine(picture pic=, path p, pen fgpen=, real dlspacing=, bool arrow(picture, path, pen, marginT(path, pen))=, bool erasebg=, pen bgpen=, real vertexangle=, real margin=); +pen photonpen; +pen ghostpen; real bigvertexsize; void do_overpaint(picture pic, path p, pen bgpen, real halfwidth, real vertexangle); real vertexsize; bool YAlign; pen momarrowpen; pen bigvertexpen; +string includegraphicscommand; real gluonamplitude; real photonratio; real photonamplitude; @@ -2428,8 +2428,14 @@ real Infinity; void markangle(picture pic=, Label L=, int n=, real radius=, real space=, explicit line l1, explicit line l2, explicit pair align=, bool arrow(picture, path, pen, marginT(path, pen))=, pen p=, filltype filltype=, marginT margin(path, pen)=, marker marker=); void markangle(picture pic=, Label L=, int n=, real radius=, real space=, explicit line l1, explicit line l2, explicit vector align, bool arrow(picture, path, pen, marginT(path, pen))=, pen p=, filltype filltype=, marginT margin(path, pen)=, marker marker=); pair coordinates(point M); -triangle triangleAbc(real alpha, real b, real c, real angle=, point A=); +real linemargin; +real linemargin(); +bool isparabola(bqe bqe); int angularsystem; +string massformat(string format=, string s, mass M); +conic conic(point F, line l, real e); +conic conic(point M1, point M2, point M3, point M4, point M5); +conic conic(bqe bqe); transform scale(real k, point M); transform scale(real k, point A, point B, point C, point D, bool safe=); transform scale(real k, line l1, line l2, bool safe=); @@ -2439,6 +2445,7 @@ line changecoordsys(coordsys R, line l); bqe changecoordsys(coordsys R, bqe bqe); conic changecoordsys(coordsys R, conic co); int conicnodesfactor; +line radicalline(circle c1, circle c2); point isotomicconjugate(triangle t, point M); point operator +(explicit point P1, explicit point P2); point operator +(explicit point P1, explicit pair p2); @@ -2461,10 +2468,13 @@ arc operator +(explicit arc a, vector v); mass operator +(mass M1, mass M2); mass operator +(explicit mass M, real x); mass operator +(explicit mass M, int x); -void markrightangle(picture pic=, point A, point O, point B, real size=, pen p=, marginT margin(path, pen)=, filltype filltype=); +triangle tangential(triangle t); point arcsubtendedcenter(point A, point B, real angle); real rd(real x, real y, real z); -line radicalline(circle c1, circle c2); +bqe equation(ellipse el); +bqe equation(parabola p); +bqe equation(hyperbola h); +bqe equation(explicit conic co); vector dir(vertex V); coordsys cartesiansystem(pair O=, pair i, pair j); line bisector(line l1, line l2, real angle=, bool sharp=); @@ -2483,12 +2493,12 @@ arc arc(ellipse el, point M, point N, bool direction=); arc arc(explicit arc a, abscissa x1, abscissa x2); arc arc(explicit arc a, point M, point N); path arc(explicit pair B, explicit pair A, explicit pair C, real r); -int sgnd(real x); -int sgnd(int x); point inverse(inversion i, point P); circle inverse(inversion i, line l); circle inverse(inversion i, circle c); arc inverse(inversion i, segment s); +point midpoint(segment s); +point midpoint(side side); pair[] intersectionpoints(pair A, pair B, real a, real b, real c, real d, real f, real g); pair[] intersectionpoints(pair A, pair B, real[] equation); point[] intersectionpoints(line l, path g); @@ -2529,54 +2539,45 @@ point[] intersectionpoints(arc a, conic co); point[] intersectionpoints(arc a1, arc a2); point[] intersectionpoints(line l, arc a); point[] intersectionpoints(arc a, line l); +transform yscaleO(real x); pair attract(pair m, path g, real fuzz=); point attract(point M, path g, real fuzz=); -bool finite(explicit point p); -transform vprojection(line l, bool safe=); -triangle medial(triangle t); -int[] numarray; +void addMargins(picture pic=, real lmargin=, real bmargin=, real rmargin=, real tmargin=, bool rigid=, bool allObject=); +real epsgeo; +bool degenerate(conic c); +bool degenerate(circle c); +bool degenerate(ellipse el); +path square(pair z1, pair z2); +int sgnd(real x); +int sgnd(int x); bool byfoci; -void label(picture pic=, Label L, explicit mass M, align align=, string format=, pen p=, filltype filltype=); -void label(picture pic=, Label L, vertex V, pair align=, real alignFactor=, pen p=, filltype filltype=); -void label(picture pic=, Label LA=, Label LB=, Label LC=, triangle t, real alignAngle=, real alignFactor=, pen p=, filltype filltype=); -point midpoint(segment s); -point midpoint(side side); +real[] realquarticroots(real a, real b, real c, real d, real e); line isotomic(vertex V, point M); point isotomic(side side, point M); triangle isotomic(triangle t, point M); int hyperbolanodesnumberfactor; int ellipsenodesnumber(real a, real b); int ellipsenodesnumber(real a, real b, real angle1, real angle2, bool dir); +bool simeq(point A, point B, real fuzz=); +bool simeq(point a, real b, real fuzz=); line reverse(line l); arc reverse(arc a); -void dot(picture pic=, Label L, explicit point Z, align align=, string format=, pen p=); -real dot(point A, point B); -real dot(point A, explicit pair B); -real dot(explicit pair A, point B); -void dot(picture pic=, Label L, explicit mass M, align align=, string format=, pen p=); -void dot(picture pic=, triangle t, pen p=); -real sharpdegrees(line l1, line l2); -real arclength(circle c); -real arclength(ellipse el); -real arclength(ellipse el, real angle1, real angle2, bool direction=, path polarconicroutine(conic co, real angle1, real angle2, int n, bool direction)=); -real arclength(parabola p, real angle); -real arclength(parabola p, real angle1, real angle2); -real arclength(parabola p); -real arclength(arc a); -void show(picture pic=, Label lo=, Label li=, Label lj=, coordsys R, pen dotpen=, pen xpen=, pen ypen=, pen ipen=, pen jpen=, bool arrow(picture, path, pen, marginT(path, pen))=); -void show(Label L, vector v, pen p=, bool arrow(picture, path, pen, marginT(path, pen))=); -void show(picture pic=, line l, pen p=); -void show(picture pic=, Label LA=, Label LB=, Label LC=, Label La=, Label Lb=, Label Lc=, triangle t, pen p=, filltype filltype=); -void write(explicit line l); -void write(explicit segment s); -void write(trilinear tri); +triangle triangle(line l1, line l2, line l3); +void draw(picture pic=, Label L=, line l, bool dirA=, bool dirB=, align align=, pen p=, bool arrow(picture, path, pen, marginT(path, pen))=, Label legend=, marker marker=, path pathModifier(path)=); +void draw(picture pic=, Label[] L=, line[] l, align align=, pen[] p=, bool arrow(picture, path, pen, marginT(path, pen))=, Label[] legend=, marker marker=, path pathModifier(path)=); +void draw(picture pic=, Label[] L=, line[] l, align align=, pen p, bool arrow(picture, path, pen, marginT(path, pen))=, Label[] legend=, marker marker=, path pathModifier(path)=); +void draw(picture pic=, Label L=, circle c, align align=, pen p=, bool arrow(picture, path, pen, marginT(path, pen))=, bool bar(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, Label legend=, marker marker=); +void draw(picture pic=, Label L=, ellipse el, align align=, pen p=, bool arrow(picture, path, pen, marginT(path, pen))=, bool bar(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, Label legend=, marker marker=); +void draw(picture pic=, Label L=, parabola parabola, align align=, pen p=, bool arrow(picture, path, pen, marginT(path, pen))=, bool bar(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, Label legend=, marker marker=); +void draw(picture pic=, Label L=, hyperbola h, align align=, pen p=, bool arrow(picture, path, pen, marginT(path, pen))=, bool bar(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, Label legend=, marker marker=); +void draw(picture pic=, Label L=, explicit conic co, align align=, pen p=, bool arrow(picture, path, pen, marginT(path, pen))=, bool bar(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, Label legend=, marker marker=); +void draw(picture pic=, Label L=, arc a, align align=, pen p=, bool arrow(picture, path, pen, marginT(path, pen))=, bool bar(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, Label legend=, marker marker=); +void draw(picture pic=, triangle t, pen p=, marker marker=); +void draw(picture pic=, triangle[] ts, pen p=, marker marker=); path arcfromfocus(conic co, real angle1, real angle2, int n=, bool direction=); -void perpendicularmark(picture pic=, point z, explicit pair align, explicit pair dir=, real size=, pen p=, marginT margin(path, pen)=, filltype filltype=); -void perpendicularmark(picture pic=, point z, vector align, vector dir=, real size=, pen p=, marginT margin(path, pen)=, filltype filltype=); -void perpendicularmark(picture pic=, point z, explicit pair align, path g, real size=, pen p=, marginT margin(path, pen)=, filltype filltype=); -void perpendicularmark(picture pic=, point z, vector align, path g, real size=, pen p=, marginT margin(path, pen)=, filltype filltype=); -void perpendicularmark(picture pic=, line l1, line l2, real size=, pen p=, int quarter=, marginT margin(path, pen)=, filltype filltype=); -string defaultmassformat; +bqe bqe(coordsys R=, real a, real b, real c, real d, real e, real f); +bqe bqe(point M1, point M2, point M3, point M4, point M5); +int[] numarray; point relpoint(line l, real x); point relpoint(explicit circle c, real x); point relpoint(explicit ellipse el, real x); @@ -2600,110 +2601,21 @@ void fill(picture pic=, triangle[] ts, pen p=); segment segment(point A, point B); segment segment(line l); segment segment(explicit side side); +void dot(picture pic=, Label L, explicit point Z, align align=, string format=, pen p=); +real dot(point A, point B); +real dot(point A, explicit pair B); +real dot(explicit pair A, point B); +void dot(picture pic=, Label L, explicit mass M, align align=, string format=, pen p=); +void dot(picture pic=, triangle t, pen p=); +real sharpdegrees(line l1, line l2); int circlenodesnumber(real r); int circlenodesnumber(real r, real angle1, real angle2); -line[] tangents(circle c, point M); -line[] tangents(ellipse el, point M); -line[] tangents(parabola p, point M); -line[] tangents(hyperbola h, point M); bool sameside(point M, point N, point O); bool sameside(point M, point P, line l); point[] sameside(point M, line l1, line l2); -path arctopath(arc a, int n); -bool simeq(point A, point B, real fuzz=); -bool simeq(point a, real b, real fuzz=); -void addMargins(picture pic=, real lmargin=, real bmargin=, real rmargin=, real tmargin=, bool rigid=, bool allObject=); -point point(coordsys R, pair p, real m=); -point point(explicit pair p, real m); -point point(coordsys R, explicit point M, real m=); -point point(explicit vector u); -point point(circle c, abscissa l); -point point(ellipse el, abscissa l); -point point(parabola p, abscissa l); -point point(hyperbola h, abscissa l); -point point(explicit conic co, abscissa l); -point point(line l, abscissa x); -point point(line l, explicit real x); -point point(line l, explicit int x); -point point(explicit circle c, explicit real x); -point point(explicit circle c, explicit int x); -point point(explicit ellipse el, explicit real x); -point point(explicit ellipse el, explicit int x); -point point(explicit parabola p, explicit real x); -point point(explicit parabola p, explicit int x); -point point(explicit hyperbola h, explicit real x); -point point(explicit hyperbola h, explicit int x); -point point(explicit conic co, explicit real x); -point point(explicit conic co, explicit int x); -point point(arc a, abscissa l); -point point(arc a, real x); -pair point(explicit arc a, int x); -point point(explicit mass m); -point point(explicit vertex V); -point point(trilinear tri); -point point(circle c, point M); -point point(circle c, explicit vector v); -triangle triangle(line l1, line l2, line l3); -void draw(picture pic=, Label L=, line l, bool dirA=, bool dirB=, align align=, pen p=, bool arrow(picture, path, pen, marginT(path, pen))=, Label legend=, marker marker=, path pathModifier(path)=); -void draw(picture pic=, Label[] L=, line[] l, align align=, pen[] p=, bool arrow(picture, path, pen, marginT(path, pen))=, Label[] legend=, marker marker=, path pathModifier(path)=); -void draw(picture pic=, Label[] L=, line[] l, align align=, pen p, bool arrow(picture, path, pen, marginT(path, pen))=, Label[] legend=, marker marker=, path pathModifier(path)=); -void draw(picture pic=, Label L=, circle c, align align=, pen p=, bool arrow(picture, path, pen, marginT(path, pen))=, bool bar(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, Label legend=, marker marker=); -void draw(picture pic=, Label L=, ellipse el, align align=, pen p=, bool arrow(picture, path, pen, marginT(path, pen))=, bool bar(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, Label legend=, marker marker=); -void draw(picture pic=, Label L=, parabola parabola, align align=, pen p=, bool arrow(picture, path, pen, marginT(path, pen))=, bool bar(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, Label legend=, marker marker=); -void draw(picture pic=, Label L=, hyperbola h, align align=, pen p=, bool arrow(picture, path, pen, marginT(path, pen))=, bool bar(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, Label legend=, marker marker=); -void draw(picture pic=, Label L=, explicit conic co, align align=, pen p=, bool arrow(picture, path, pen, marginT(path, pen))=, bool bar(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, Label legend=, marker marker=); -void draw(picture pic=, Label L=, arc a, align align=, pen p=, bool arrow(picture, path, pen, marginT(path, pen))=, bool bar(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, Label legend=, marker marker=); -void draw(picture pic=, triangle t, pen p=, marker marker=); -void draw(picture pic=, triangle[] ts, pen p=, marker marker=); -bool onpath(picture pic=, path g, point M, pen p=); -bqe bqe(coordsys R=, real a, real b, real c, real d, real e, real f); -bqe bqe(point M1, point M2, point M3, point M4, point M5); -pair operator *(coordsys R, pair p); -path operator *(coordsys R, path g); -coordsys operator *(transform t, coordsys R); -point operator *(real x, explicit point P); -point operator *(transform t, explicit point P); -point operator *(explicit point P1, explicit point P2); -point operator *(explicit point P1, explicit pair p2); -point operator *(explicit pair p1, explicit point p2); -vector operator *(real x, explicit vector v); -vector operator *(transform t, explicit vector v); -vector operator *(explicit point M, explicit vector v); -line operator *(transform t, line l); -line operator *(real x, line l); -line operator *(int x, line l); -line operator *(point M, line l); -circle operator *(real x, explicit circle c); -circle operator *(int x, explicit circle c); -ellipse operator *(transform t, ellipse el); -parabola operator *(transform t, parabola p); -ellipse operator *(transform t, circle c); -hyperbola operator *(transform t, hyperbola h); -conic operator *(transform t, conic co); -ellipse operator *(real x, ellipse el); -abscissa operator *(real x, explicit abscissa a); -abscissa operator *(explicit abscissa a, real x); -arc operator *(transform t, explicit arc a); -arc operator *(real x, explicit arc a); -arc operator *(int x, explicit arc a); -mass operator *(real x, explicit mass M); -mass operator *(int x, explicit mass M); -mass operator *(transform t, mass M); -triangle operator *(transform T, triangle t); -point operator *(inversion i, point P); -circle operator *(inversion i, line l); -circle operator *(inversion i, circle c); -arc operator *(inversion i, segment s); -path operator *(inversion i, triangle t); -line complementary(explicit line l); -line[] complementary(explicit segment s); -arc complementary(arc a); -point centroid(point A, point B, point C); -point centroid(triangle t); -void markarc(picture pic=, Label L=, int n=, real radius=, real space=, arc a, pen sectorpen=, pen markpen=, marginT margin(path, pen)=, bool arrow(picture, path, pen, marginT(path, pen))=, marker marker=); -bool samecoordsys(bool warn= ... point[] M); -bool samecoordsys(bool warn= ... bqe[] bqes); -point intersectionpoint(line l1, line l2); +void write(explicit line l); +void write(explicit segment s); +void write(trilinear tri); pair operator cast(point P); pair[] operator cast(point[] P); point operator cast(pair p); @@ -2745,15 +2657,26 @@ point operator cast(vertex V); point operator cast(trilinear tri); circle operator cast(inversion i); inversion operator cast(circle c); -bool inside(ellipse el, point M); -bool inside(parabola p, point M); -real[] realquarticroots(real a, real b, real c, real d, real e); -path square(pair z1, pair z2); -real epsgeo; -bool degenerate(conic c); -bool degenerate(circle c); -bool degenerate(ellipse el); -transform yscaleO(real x); +real arclength(circle c); +real arclength(ellipse el); +real arclength(ellipse el, real angle1, real angle2, bool direction=, path polarconicroutine(conic co, real angle1, real angle2, int n, bool direction)=); +real arclength(parabola p, real angle); +real arclength(parabola p, real angle1, real angle2); +real arclength(parabola p); +real arclength(arc a); +void show(picture pic=, Label lo=, Label li=, Label lj=, coordsys R, pen dotpen=, pen xpen=, pen ypen=, pen ipen=, pen jpen=, bool arrow(picture, path, pen, marginT(path, pen))=); +void show(Label L, vector v, pen p=, bool arrow(picture, path, pen, marginT(path, pen))=); +void show(picture pic=, line l, pen p=); +void show(picture pic=, Label LA=, Label LB=, Label LC=, Label La=, Label Lb=, Label Lc=, triangle t, pen p=, filltype filltype=); +triangle medial(triangle t); +line complementary(explicit line l); +line[] complementary(explicit segment s); +arc complementary(arc a); +point intersectionpoint(line l1, line l2); +bool samecoordsys(bool warn= ... point[] M); +bool samecoordsys(bool warn= ... bqe[] bqes); +bool finite(explicit point p); +transform vprojection(line l, bool safe=); pair operator /(pair p, coordsys R); point operator /(explicit point P, real x); point operator /(real x, explicit point P); @@ -2769,22 +2692,56 @@ abscissa operator /(int x, explicit abscissa a); arc operator /(explicit arc a, real x); mass operator /(explicit mass M, real x); mass operator /(explicit mass M, int x); +void perpendicularmark(picture pic=, point z, explicit pair align, explicit pair dir=, real size=, pen p=, marginT margin(path, pen)=, filltype filltype=); +void perpendicularmark(picture pic=, point z, vector align, vector dir=, real size=, pen p=, marginT margin(path, pen)=, filltype filltype=); +void perpendicularmark(picture pic=, point z, explicit pair align, path g, real size=, pen p=, marginT margin(path, pen)=, filltype filltype=); +void perpendicularmark(picture pic=, point z, vector align, path g, real size=, pen p=, marginT margin(path, pen)=, filltype filltype=); +void perpendicularmark(picture pic=, line l1, line l2, real size=, pen p=, int quarter=, marginT margin(path, pen)=, filltype filltype=); +string defaultmassformat; int curvilinearsystem; -circle circumcircle(point A, point B, point C); -circle circumcircle(triangle t); real elle(real phi, real k); -void filldraw(picture pic=, circle c, pen fillpen=, pen drawpen=); -void filldraw(picture pic=, ellipse el, pen fillpen=, pen drawpen=); -void filldraw(picture pic=, triangle t, pen fillpen=, pen drawpen=); -void filldraw(picture pic=, triangle[] ts, pen fillpen=, pen drawpen=); -path operator ecast(segment s); -circle operator ecast(ellipse el); -ellipse operator ecast(conic co); -parabola operator ecast(conic co); -hyperbola operator ecast(conic co); -circle operator ecast(conic c); -real approximate(real t); -real[] approximate(real[] T); +void label(picture pic=, Label L, explicit mass M, align align=, string format=, pen p=, filltype filltype=); +void label(picture pic=, Label L, vertex V, pair align=, real alignFactor=, pen p=, filltype filltype=); +void label(picture pic=, Label LA=, Label LB=, Label LC=, triangle t, real alignAngle=, real alignFactor=, pen p=, filltype filltype=); +bool onpath(picture pic=, path g, point M, pen p=); +pair operator *(coordsys R, pair p); +path operator *(coordsys R, path g); +coordsys operator *(transform t, coordsys R); +point operator *(real x, explicit point P); +point operator *(transform t, explicit point P); +point operator *(explicit point P1, explicit point P2); +point operator *(explicit point P1, explicit pair p2); +point operator *(explicit pair p1, explicit point p2); +vector operator *(real x, explicit vector v); +vector operator *(transform t, explicit vector v); +vector operator *(explicit point M, explicit vector v); +line operator *(transform t, line l); +line operator *(real x, line l); +line operator *(int x, line l); +line operator *(point M, line l); +circle operator *(real x, explicit circle c); +circle operator *(int x, explicit circle c); +ellipse operator *(transform t, ellipse el); +parabola operator *(transform t, parabola p); +ellipse operator *(transform t, circle c); +hyperbola operator *(transform t, hyperbola h); +conic operator *(transform t, conic co); +ellipse operator *(real x, ellipse el); +abscissa operator *(real x, explicit abscissa a); +abscissa operator *(explicit abscissa a, real x); +arc operator *(transform t, explicit arc a); +arc operator *(real x, explicit arc a); +arc operator *(int x, explicit arc a); +mass operator *(real x, explicit mass M); +mass operator *(int x, explicit mass M); +mass operator *(transform t, mass M); +triangle operator *(transform T, triangle t); +point operator *(inversion i, point P); +circle operator *(inversion i, line l); +circle operator *(inversion i, circle c); +arc operator *(inversion i, segment s); +path operator *(inversion i, triangle t); +void markrightangle(picture pic=, point A, point O, point B, real size=, pen p=, marginT margin(path, pen)=, filltype filltype=); arc arccircle(point A, point M, point B); arc arccircle(point A, point B, real angle, bool direction=); int nodesystem; @@ -2797,40 +2754,83 @@ real degrees(vector v, coordsys R=, bool warn=); real degrees(line l, coordsys R=); real degrees(line l1, line l2); real degrees(arc a); -bool isparabola(bqe bqe); -bqe equation(ellipse el); -bqe equation(parabola p); -bqe equation(hyperbola h); -bqe equation(explicit conic co); -point orthocentercenter(point A, point B, point C); -point orthocentercenter(triangle t); +path operator ecast(segment s); +circle operator ecast(ellipse el); +ellipse operator ecast(conic co); +parabola operator ecast(conic co); +hyperbola operator ecast(conic co); +circle operator ecast(conic c); +real approximate(real t); +real[] approximate(real[] T); +line[] tangents(circle c, point M); +line[] tangents(ellipse el, point M); +line[] tangents(parabola p, point M); +line[] tangents(hyperbola h, point M); +path compassmark(pair O, pair A, real position, real angle=); +circle circumcircle(point A, point B, point C); +circle circumcircle(triangle t); +triangle triangleAbc(real alpha, real b, real c, real angle=, point A=); bool between(point M, point O, point N); -string massformat(string format=, string s, mass M); -conic conic(point F, line l, real e); -conic conic(point M1, point M2, point M3, point M4, point M5); -conic conic(bqe bqe); +point centroid(point A, point B, point C); +point centroid(triangle t); +void markarc(picture pic=, Label L=, int n=, real radius=, real space=, arc a, pen sectorpen=, pen markpen=, marginT margin(path, pen)=, bool arrow(picture, path, pen, marginT(path, pen))=, marker marker=); +void drawline(picture pic=, triangle t, pen p=); path NoModifier(path); -transform projection(point A, point B); -transform projection(point A, point B, point C, point D, bool safe=); -transform projection(line l); -transform projection(line l1, line l2, bool safe=); -triangle tangential(triangle t); +path arctopath(arc a, int n); +point[] standardizecoordsys(coordsys R=, bool warn= ... point[] M); +ellipse ellipse(point F1, point F2, real a); +ellipse ellipse(point F1, point F2, point M); +ellipse ellipse(point C, real a, real b, real angle=); +ellipse ellipse(bqe bqe); +ellipse ellipse(point M1, point M2, point M3, point M4, point M5); side opposite(vertex V); vertex opposite(side side); -path compassmark(pair O, pair A, real position, real angle=); +void filldraw(picture pic=, circle c, pen fillpen=, pen drawpen=); +void filldraw(picture pic=, ellipse el, pen fillpen=, pen drawpen=); +void filldraw(picture pic=, triangle t, pen fillpen=, pen drawpen=); +void filldraw(picture pic=, triangle[] ts, pen fillpen=, pen drawpen=); +point point(coordsys R, pair p, real m=); +point point(explicit pair p, real m); +point point(coordsys R, explicit point M, real m=); +point point(explicit vector u); +point point(circle c, abscissa l); +point point(ellipse el, abscissa l); +point point(parabola p, abscissa l); +point point(hyperbola h, abscissa l); +point point(explicit conic co, abscissa l); +point point(line l, abscissa x); +point point(line l, explicit real x); +point point(line l, explicit int x); +point point(explicit circle c, explicit real x); +point point(explicit circle c, explicit int x); +point point(explicit ellipse el, explicit real x); +point point(explicit ellipse el, explicit int x); +point point(explicit parabola p, explicit real x); +point point(explicit parabola p, explicit int x); +point point(explicit hyperbola h, explicit real x); +point point(explicit hyperbola h, explicit int x); +point point(explicit conic co, explicit real x); +point point(explicit conic co, explicit int x); +point point(arc a, abscissa l); +point point(arc a, real x); +pair point(explicit arc a, int x); +point point(explicit mass m); +point point(explicit vertex V); +point point(trilinear tri); +point point(circle c, point M); +point point(circle c, explicit vector v); transform xscale(real k, point M); real rf(real x, real y, real z); mass mass(point M, real m); mass mass(explicit point P); mass mass(coordsys R, explicit pair p, real m); +void lineinversion(); pen addpenline; pen addpenline(pen p); -void drawline(picture pic=, triangle t, pen p=); -real linemargin; -real linemargin(); +point orthocentercenter(point A, point B, point C); +point orthocentercenter(triangle t); bool concurrent(... line[] l); int conicnodesnumber(conic co, real angle1, real angle2, bool dir=); -point[] standardizecoordsys(coordsys R=, bool warn= ... point[] M); path polarconicroutine(conic co, real angle1, real angle2, int n, bool direction)(conic co); circle circle(explicit point C, real r); circle circle(point A, point B); @@ -2840,13 +2840,13 @@ circle circle(triangle t); circle circle(inversion i); point incenter(point A, point B, point C); point incenter(triangle t); -void lineinversion(); +transform projection(point A, point B); +transform projection(point A, point B, point C, point D, bool safe=); +transform projection(line l); +transform projection(line l1, line l2, bool safe=); point ppoint(arc a, real x); -ellipse ellipse(point F1, point F2, real a); -ellipse ellipse(point F1, point F2, point M); -ellipse ellipse(point C, real a, real b, real angle=); -ellipse ellipse(bqe bqe); -ellipse ellipse(point M1, point M2, point M3, point M4, point M5); +bool inside(ellipse el, point M); +bool inside(parabola p, point M); path fromCenter(conic co, real angle1, real angle2, int n, bool direction); point bisectorpoint(side side); bool byvertices; @@ -2906,34 +2906,35 @@ void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3 void InOutTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=, bool primary=, projection P); void Bounds(picture, axisT)(int type=, int type2=, triple align=, bool extend=); void Bounds(picture, axisT); -void limits(picture pic=, triple min, triple max); -void labelaxis(picture pic, real[][] T, Label L, path3 g, ticklocate locate=, int sign=, bool ticklabels=); +real ScaleX(picture pic=, real x); +void labely(picture pic=, Label L=, triple v, align align=, string format=, pen p=); ticklocate ticklocate(real a, real b, autoscaleT S=, real tickmin=, real tickmax=, real time(real)=, triple dir(real)); real maxlength(triple f(pair z), pair a, pair b, int nu, int nv); void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=, bool primary=, projection P)(Label format=, string ticklabel(real)=, bool beginlabel=, bool endlabel=, int N=, int n=, real Step=, real step=, bool begin=, bool end=, tickvalues modify(tickvalues)=, real Size=, real size=, bool extend=, pen pTick=, pen ptick=); void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=, bool primary=, projection P)(Label format=, string ticklabel(real)=, bool beginlabel=, bool endlabel=, real[] Ticks, real[] ticks=, real Size=, real size=, bool extend=, pen pTick=, pen ptick=); void InTicks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=, bool primary=, projection P); path3 Circle(triple c, real r, triple normal=, int n=); +void labelx(picture pic=, Label L=, triple v, align align=, string format=, pen p=); real ytrans(real[][] t, real y); real xtrans(real[][] t, real x); -void labely(picture pic=, Label L=, triple v, align align=, string format=, pen p=); -void labeltick(picture pic, real[][] T, path3 g, ticklocate locate, real val, int sign, real Size, string ticklabel(real), Label F, real norm=); +void axis(picture pic=, Label L=, path3 g, path3 g2=, pen p=, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=, bool primary=, projection P), ticklocate locate, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=, marginT3 margin(path3, pen)=, int[] divisor=, bool above=, bool opposite=); +void limits(picture pic=, triple min, triple max); void Straight(flatguide3)(... void(flatguide3)[]); -void polargraph(flatguide3)(real r(real, real), real theta(real), real phi(real), int n=, void join(flatguide3)(... void(flatguide3)[])=); void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=, bool primary=, projection P)(); void NoTicks3(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=, bool primary=, projection P); -void labelx(picture pic=, Label L=, triple v, align align=, string format=, pen p=); -real ScaleX(picture pic=, real x); +void polargraph(flatguide3)(real r(real, real), real theta(real), real phi(real), int n=, void join(flatguide3)(... void(flatguide3)[])=); +void labeltick(picture pic, real[][] T, path3 g, ticklocate locate, real val, int sign, real Size, string ticklabel(real), Label F, real norm=); void Spline(flatguide3)(... void(flatguide3)[]); void drawtick(picture pic, real[][] T, path3 g, path3 g2, ticklocate locate, real val, real Size, int sign, pen p, bool extend); -void axis(picture pic=, Label L=, path3 g, path3 g2=, pen p=, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=, bool primary=, projection P), ticklocate locate, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=, marginT3 margin(path3, pen)=, int[] divisor=, bool above=, bool opposite=); void xtick(picture pic=, triple v, triple dir=, real size=, pen p=); void xtick(picture pic=, Label L, triple v, triple dir=, string format=, real size=, pen p=); +void labelaxis(picture pic, real[][] T, Label L, path3 g, ticklocate locate=, int sign=, bool ticklabels=); void ytick(picture pic=, triple v, triple dir=, real size=, pen p=); void ytick(picture pic=, Label L, triple v, triple dir=, string format=, real size=, pen p=); path3 Arc(triple c, triple v1, triple v2, triple normal=, bool direction=, int n=); path3 Arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=, bool direction, int n=); path3 Arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=, int n=); +path3[] segment(triple[] v, bool[] cond, void join(flatguide3)(... void(flatguide3)[])=); triple polar(real r, real theta, real phi); void graph(flatguide3)(triple F(real), real, real, int)(void join(flatguide3)(... void(flatguide3)[])); void(flatguide3)[] graph(triple F(real), real, real, int)(void join(flatguide3)(... void(flatguide3)[]), bool3 cond(real)); @@ -2949,22 +2950,21 @@ void graph(flatguide3)(triple F(path, real), path p, int n=, void join( void graph(flatguide3)(triple F(pair), path p, int n=, void join(flatguide3)(... void(flatguide3)[])=); void graph(flatguide3)(picture pic=, real f(pair), path p, int n=, void join(flatguide3)(... void(flatguide3)[])=); void graph(flatguide3)(real f(pair), path p, int n=, real T(pair), void join(flatguide3)(... void(flatguide3)[])=); +void tick(picture pic=, triple v, triple dir, real size=, pen p=); +void tick(picture pic=, Label L, real value, triple v, triple dir, string format=, real size=, pen p=); void xaxis3(picture pic=, Label L=, void axis(picture, axisT)=, real xmin=, real xmax=, pen p=, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=, bool primary=, projection P)=, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=, marginT3 margin(path3, pen)=, bool above=, projection P=); -path3[] segment(triple[] v, bool[] cond, void join(flatguide3)(... void(flatguide3)[])=); void labelx3(picture pic=, Label L=, real x, align align=, string format=, pen p=); -picture vectorfield(path3 vector(pair v), triple f(pair z), pair a, pair b, int nu=, int nv=, bool truesize=, real maxlength=, bool cond(pair z)=, pen p=, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=, marginT3 margin(path3, pen)=, string name=, render render=); -triple Scale(picture pic=, triple v); -triple[][] Scale(picture pic=, triple[][] P); +void xtick3(picture pic=, real x, triple dir=, real size=, pen p=); +void xtick3(picture pic=, Label L, real x, triple dir=, string format=, real size=, pen p=); void draw(picture pic=, Label[] L=, void(flatguide3)[][] g, pen[] p, light light=, string name=, render render=, interaction interaction=); void draw(picture pic=, Label[] L=, void(flatguide3)[][] g, pen p=, light light=, string name=, render render=, interaction interaction=); -void tick(picture pic=, triple v, triple dir, real size=, pen p=); -void tick(picture pic=, Label L, real value, triple v, triple dir, string format=, real size=, pen p=); -void yaxis3At(picture pic=, Label L=, void axis(picture, axisT), real ymin=, real ymax=, pen p=, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=, bool primary=, projection P)=, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=, marginT3 margin(path3, pen)=, bool above=, bool opposite=, bool opposite2=, bool primary=, projection P=); -void label(picture pic, Label L, triple v, real x, align align, string format, pen p); +triple Scale(picture pic=, triple v); +triple[][] Scale(picture pic=, triple[][] P); void ztick(picture pic=, triple v, triple dir=, real size=, pen p=); void ztick(picture pic=, Label L, triple v, triple dir=, string format=, real size=, pen p=); -void xtick3(picture pic=, real x, triple dir=, real size=, pen p=); -void xtick3(picture pic=, Label L, real x, triple dir=, string format=, real size=, pen p=); +void yaxis3At(picture pic=, Label L=, void axis(picture, axisT), real ymin=, real ymax=, pen p=, void ticks(picture, real[][], Label, path3, path3, pen, bool(picture, path3, material, marginT3(path3, pen), light, light), marginT3(path3, pen), ticklocate, int[], bool opposite=, bool primary=, projection P)=, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=, marginT3 margin(path3, pen)=, bool above=, bool opposite=, bool opposite2=, bool primary=, projection P=); +void label(picture pic, Label L, triple v, real x, align align, string format, pen p); +picture vectorfield(path3 vector(pair v), triple f(pair z), pair a, pair b, int nu=, int nv=, bool truesize=, real maxlength=, bool cond(pair z)=, pen p=, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=, marginT3 margin(path3, pen)=, string name=, render render=); real[] uniform(real T(real x), real Tinv(real x), real a, real b, int n); void(flatguide3)[][] lift(real f(real x, real y), guide[][] g, void join(flatguide3)(... void(flatguide3)[])=); void(flatguide3)[][] lift(real f(pair z), guide[][] g, void join(flatguide3)(... void(flatguide3)[])=); @@ -3070,9 +3070,14 @@ scaleT Log; scaleT Log(bool automin=, bool automax=); guide Spline(... guide[]); void errorbar(picture pic, pair z, pair dp, pair dm, pen p=, real size=); -void yaxisAt(picture pic=, Label L=, void axis(picture, axisT), real ymin=, real ymax=, pen p=, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=)=, bool arrow(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, bool above=, bool opposite=); -void yequals(picture pic=, Label L=, real y, bool extend=, real xmin=, real xmax=, pen p=, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=)=, bool arrow(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, bool above=); +void tick(picture pic=, pair z, pair dir, real size=, pen p=); +void tick(picture pic=, Label L, real value, explicit pair z, pair dir, string format=, real size=, pen p=); +void YZero(picture, axisT)(bool extend=); +void YZero(picture, axisT); +void Top(picture, axisT)(bool extend=); +void Top(picture, axisT); tickvalues None(tickvalues v); +void yaxisAt(picture pic=, Label L=, void axis(picture, axisT), real ymin=, real ymax=, pen p=, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=)=, bool arrow(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, bool above=, bool opposite=); string conditionlength; pair polar(real r, real theta); void scale(picture pic=, scaleT x, scaleT y=, scaleT z=); @@ -3095,30 +3100,26 @@ pair zero(real); path[] segment(pair[] z, bool[] cond, guide join(... guide[])=); string trailingzero; void xlimits(picture pic=, real min=, real max=, bool crop=); +void yaxis(picture pic=, Label L=, void axis(picture, axisT)=, real ymin=, real ymax=, pen p=, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=)=, bool arrow(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, bool above=, bool autorotate=); +void XEquals(picture, axisT)(real x, bool extend=); void NoTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=)(); void NoTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=); +scaleT Linear; +scaleT Linear(bool automin=, bool automax=, real s=, real intercept=); +string OmitFormat(real)(string s= ... real[] x); +bool logaxiscoverage(int N, transform T, path g, ticklocate locate, pair side, int sign, real Size, Label F, string ticklabel(real), real limit, int first, int last); tickvalues OmitTick(tickvalues)(... real[] x); picture vectorfield(path vector(real), path g, int n, bool truesize=, pen p=, bool arrow(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=); picture vectorfield(path vector(pair), pair a, pair b, int nx=, int ny=, bool truesize=, bool cond(pair z)=, pen p=, bool arrow(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=); pair Scale(picture pic=, pair z); -bool logaxiscoverage(int N, transform T, path g, ticklocate locate, pair side, int sign, real Size, Label F, string ticklabel(real), real limit, int first, int last); +void label(picture pic, Label L, pair z, real x, align align, string format, pen p); void Bottom(picture, axisT)(bool extend=); void Bottom(picture, axisT); -void XEquals(picture, axisT)(real x, bool extend=); -string OmitFormat(real)(string s= ... real[] x); -scaleT Linear; -scaleT Linear(bool automin=, bool automax=, real s=, real intercept=); -void yaxis(picture pic=, Label L=, void axis(picture, axisT)=, real ymin=, real ymax=, pen p=, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=)=, bool arrow(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, bool above=, bool autorotate=); real linear(real)(real S(real)=, real Min, real Max); -void tick(picture pic=, pair z, pair dir, real size=, pen p=); -void tick(picture pic=, Label L, real value, explicit pair z, pair dir, string format=, real size=, pen p=); -void YZero(picture, axisT)(bool extend=); -void YZero(picture, axisT); void xaxisAt(picture pic=, Label L=, void axis(picture, axisT), real xmin=, real xmax=, pen p=, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=)=, bool arrow(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, bool above=, bool opposite=); -void label(picture pic, Label L, pair z, real x, align align, string format, pen p); +int Value; void xequals(picture pic=, Label L=, real x, bool extend=, real ymin=, real ymax=, pen p=, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=)=, bool arrow(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, bool above=); -void Top(picture, axisT)(bool extend=); -void Top(picture, axisT); +void yequals(picture pic=, Label L=, real y, bool extend=, real xmin=, real xmax=, pen p=, void ticks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=)=, bool arrow(picture, path, pen, marginT(path, pen))=, marginT margin(path, pen)=, bool above=); tickvalues OmitTickInterval(tickvalues)(real a, real b); tickvalues NoZero(tickvalues); void BottomTop(picture, axisT)(bool extend=); @@ -3128,7 +3129,6 @@ scientific scientific(real x); void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=)(Label format=, string ticklabel(real)=, bool beginlabel=, bool endlabel=, int N=, int n=, real Step=, real step=, bool begin=, bool end=, tickvalues modify(tickvalues)=, real Size=, real size=, bool extend=, pen pTick=, pen ptick=); void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=)(Label format=, string ticklabel(real)=, bool beginlabel=, bool endlabel=, real[] Ticks, real[] ticks=, real Size=, real size=, bool extend=, pen pTick=, pen ptick=); void LeftTicks(frame, transform, Label, pair, path, path, pen, bool(picture, path, pen, marginT(path, pen)), marginT(path, pen), ticklocate, int[], bool opposite=); -int Value; Label Break; tickvalues Break(tickvalues)(real, real); real zerotickfuzz; @@ -3143,13 +3143,13 @@ real axiscoverage; int nmesh; bool Crop; real Ticksize; +int nCircle; real axislabelfactor; -real ticksize; bool NoCrop; +real epsilon; int ngraph; real ylabelwidth; -real epsilon; -int nCircle; +real ticksize; guide hermite(real[] x, real[] y, real[] splinetype(real[], real[])=); real[] monotonic(real[] x, real[] y); real[] clamped(real[], real[])(real slopea, real slopeb); @@ -3181,31 +3181,33 @@ grid3 ZXgrid(picture pic)(position pos=); grid3 ZXgrid(picture pic); grid3 XYgrid(picture pic)(position pos=); grid3 XYgrid(picture pic); -void yaxis3(picture pic=, Label L=, void axis(picture, axisT)=, pen p=, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=, bool above=); grid3(picture pic)[] XYXgrid(position pos=); grid3(picture pic)[] XYXgrid; +ticksgridT OutTicks()(Label F=, string ticklabel(real)=, bool beginlabel=, bool endlabel=, int N=, int n=, real Step=, real step=, bool begin=, bool end=, real Size=, real size=, pen pTick=, pen ptick=, grid3(picture pic)[][] gridroutine, pen pGrid=, pen pgrid=); +void zaxis3(picture pic=, Label L=, void axis(picture, axisT)=, pen p=, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=, bool above=); +void yaxis3(picture pic=, Label L=, void axis(picture, axisT)=, pen p=, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=, bool above=); +ticksgridT InTicks()(Label F=, string ticklabel(real)=, bool beginlabel=, bool endlabel=, int N=, int n=, real Step=, real step=, bool begin=, bool end=, real Size=, real size=, pen pTick=, pen ptick=, grid3(picture pic)[][] gridroutine, pen pGrid=, pen pgrid=); position bottom; grid3(picture pic)[] ZXZgrid(position pos=); grid3(picture pic)[] ZXZgrid; -grid3(picture pic)[] YXYgrid(position pos=); -grid3(picture pic)[] YXYgrid; -ticksgridT OutTicks()(Label F=, string ticklabel(real)=, bool beginlabel=, bool endlabel=, int N=, int n=, real Step=, real step=, bool begin=, bool end=, real Size=, real size=, pen pTick=, pen ptick=, grid3(picture pic)[][] gridroutine, pen pGrid=, pen pgrid=); grid3(picture pic)[] YX_YZgrid(position posa=, position posb=); grid3(picture pic)[] YX_YZgrid; +grid3(picture pic)[] YXYgrid(position pos=); +grid3(picture pic)[] YXYgrid; triple X(picture pic); -ticksgridT InTicks()(Label F=, string ticklabel(real)=, bool beginlabel=, bool endlabel=, int N=, int n=, real Step=, real step=, bool begin=, bool end=, real Size=, real size=, pen pTick=, pen ptick=, grid3(picture pic)[][] gridroutine, pen pGrid=, pen pgrid=); triple YZ(picture pic); triple Z(picture pic); ticksgridT InOutTicks()(Label F=, string ticklabel(real)=, bool beginlabel=, bool endlabel=, int N=, int n=, real Step=, real step=, bool begin=, bool end=, real Size=, real size=, pen pTick=, pen ptick=, grid3(picture pic)[][] gridroutine, pen pGrid=, pen pgrid=); triple XY(picture pic); triple ZX(picture pic); +triple Y(picture pic); void xaxis3(picture pic=, Label L=, void axis(picture, axisT)=, pen p=, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=, bool above=); +position top; grid3 YXgrid(picture pic)(position pos=); grid3 YXgrid(picture pic); grid3(picture pic)[] operator cast(grid3 gridroutine(picture pic)); grid3(picture pic)[][] operator cast(grid3(picture pic)[] gridroutine); grid3(picture pic)[][] operator cast(grid3 gridroutine(picture pic)); -triple Y(picture pic); position middle; grid3 XZgrid(picture pic)(position pos=); grid3 XZgrid(picture pic); @@ -3213,8 +3215,6 @@ grid3(picture pic)[] XZXgrid(position pos=); grid3(picture pic)[] XZXgrid; grid3 YZgrid(picture pic)(position pos=); grid3 YZgrid(picture pic); -position top; -void zaxis3(picture pic=, Label L=, void axis(picture, axisT)=, pen p=, ticksgridT ticks(), bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=, bool above=); real fspline(real)(real[] x, real[] y, real[] splinetype(real[], real[])=); real pwhermite(real)(real[] x, real[] y, real[] dy); horner diffdiv(real[] x, real[] y); @@ -3264,42 +3264,42 @@ frame tildeframe(int n=, real size=, pair space=, rea frame tildeframe; real tildemarksize(pen p=); real tildemarksizefactor; -real stickmarkspace(pen p=); frame stickframe(int n=, real size=, pair space=, real angle=, pair offset=, pen p=); frame stickframe; frame circlebarframe(int n=, real barsize=, real radius=, real angle=, pair offset=, pen p=, filltype filltype=, bool above=); +real stickmarkspace(pen p=); real barmarksize(pen p=); real markangleradiusfactor; +real markanglespacefactor; marker StickIntervalMarker(int i=, int n=, real size=, real space=, real angle=, pair offset=, bool rotated=, pen p=, frame uniform=, bool above=); void markangle(picture pic=, Label L=, int n=, real radius=, real space=, pair A, pair O, pair B, bool arrow(picture, path, pen, marginT(path, pen))=, pen p=, filltype filltype=, marginT margin(path, pen)=, marker marker=); real circlemarkradiusfactor; -marker operator *(transform T, marker m); real crossmarksize(pen p=); +marker operator *(transform T, marker m); real markangleradius(pen p=); real markangleradius; frame duplicate(path g, int n=, pair space=, pen p=); +real stickmarkspacefactor; real circlemarkradius(pen p=); real stickmarksize(pen p=); -real markanglespacefactor; -marker CircleBarIntervalMarker(int i=, int n=, real barsize=, real radius=, real angle=, pair offset=, bool rotated=, pen p=, filltype filltype=, bool circleabove=, frame uniform=, bool above=); frame crossframe(int n=, real size=, pair space=, real angle=, pair offset=, pen p=); +marker CircleBarIntervalMarker(int i=, int n=, real barsize=, real radius=, real angle=, pair offset=, bool rotated=, pen p=, filltype filltype=, bool circleabove=, frame uniform=, bool above=); real crossmarksizefactor; -real stickmarkspacefactor; void markinterval(picture pic=, frame f, path g)(int n=, frame f, bool rotated=); real findroot(real f(real), real a, real b, real tolerance=, real fa=, real fb=); real[] leastsquares(real[][] A, real[] b, bool warn=); real[] zero(int n); real[][] zero(int n, int m); -real interpolate(real[] x, real[] y, real x0, int i); -real interpolate(real[] x, real[] y, real x0); -pair[][] fft(pair[][] a, int sign=); int[][] segment(bool[] b); real asec(real x); +bool polygon(path p); +real interpolate(real[] x, real[] y, real x0, int i); +real interpolate(real[] x, real[] y, real x0); +triple intersectionpoint(triple n0, triple P0, triple n1, triple P1); bool increasing(real[] a, bool strict=); bool lexorder(pair a, pair b); bool lexorder(triple a, triple b); -bool polygon(path p); -triple intersectionpoint(triple n0, triple P0, triple n1, triple P1); +pair[][] fft(pair[][] a, int sign=); real csc(real x); real slope(path g, real x, int n=, real fuzz=); real slope(path g, explicit pair z, int n=, real fuzz=); @@ -3352,20 +3352,20 @@ real stepfactor; RKTableau RK3; RKTableau Euler; void expfactors(real x, coefficients a); -real[] Coeff; real phi3(real x); -RKTableau E_RK3BS; +void report(real old, real h, real t); +real[] Coeff; RKTableau E_Euler; +RKTableau E_RK3BS; void write(solution S); void write(Solution S); -real adjust(real h, real error, real tolmin, real tolmax, RKTableau tableau); -void report(real old, real h, real t); real[] newton(int iterations=, real[] f(real[]), real[][] jacobian(real[]), real[] t); +real adjust(real h, real error, real tolmin, real tolmax, RKTableau tableau); +real phi4(real x); real phi2(real x); RKTableau RK5; real phi1(real x); real[][] finiteDifferenceJacobian(real[] f(real[]), real[] t, real[] h=); -real phi4(real x); solution integrate(real y, real c=, real f(real t, real y), real a, real b=, real h=, int n=, bool dynamic=, real tolmin=, real tolmax=, real dtmin=, real dtmax=, RKTableau tableau, bool verbose=); Solution integrate(real[] y, real[] f(real t, real[] y), real a, real b=, real h=, int n=, bool dynamic=, real tolmin=, real tolmax=, real dtmin=, real dtmax=, RKTableau tableau, bool verbose=); pen[] BWRainbow2(int NColors=); @@ -3401,9 +3401,9 @@ picture tile(real Hx=, real Hy=, pen p=, filltype fil frame tiling(string name, picture pic, pair lb=, pair rt=); picture crosshatch(real H=, pen p=); real hatchepsilon; -picture hatch(real H=, pair dir=, pen p=); picture brick(real Hx=, real Hy=, pen p=); void add(string name, picture pic, pair lb=, pair rt=); +picture hatch(real H=, pair dir=, pen p=); picture checker(real Hx=, real Hy=, pen p=); void gsave(picture pic=); pen textpen; @@ -3420,30 +3420,30 @@ bool[] operator <(rational[] r, rational s); bool[] operator >(rational[] r, rational s); rational abs(rational r); bool rectangular(rational[][] m); -int gcd(int m, int n); +bool[] operator >=(rational[] r, rational s); +bool[] operator <=(rational[] r, rational s); rational[] operator *(rational[] r, rational[] s); rational[][] rationalidentity(int n); -rational[] operator /(rational[] r, rational[] s); -bool[] operator ==(rational[] r, rational s); -bool operator ==(rational[] r, rational[] s); -bool operator ==(rational[][] r, rational[][] s); +rational max(rational a, rational b); +rational max(rational[] a); void write(file fout, string s=, rational r, void suffix(file)=); void write(string s=, rational r, void suffix(file)=); void write(file fout=, string s=, rational[] a, void suffix(file)=); void write(file fout=, string s=, rational[][] a, void suffix(file)=); +int gcd(int m, int n); +bool[] operator ==(rational[] r, rational s); +bool operator ==(rational[] r, rational[] s); +bool operator ==(rational[][] r, rational[][] s); rational min(rational a, rational b); -rational max(rational a, rational b); -rational max(rational[] a); +rational[] operator /(rational[] r, rational[] s); rational[] operator +(rational[] r, rational[] s); -bool[] operator <=(rational[] r, rational s); -bool[] operator >=(rational[] r, rational s); void simplexPhase2(); void simplexPhase1(rational[] c, rational[][] A, rational[] b, int[] Bindices); void simplexTableau(rational[][] E, int[] Bindices, int I=, int J=, int n=); bool optimizeTableau; int[] artificialColumn; -void simplexInit(rational[] c, rational[][] A, int[] s=, rational[] b, int count); void simplexWrite(rational[][] E, int[] Bindices, int, int); +void simplexInit(rational[] c, rational[][] A, int[] s=, rational[] b, int count); path roundedpath(path A, real R, real S=); void currentexitfunction(); void bibliographystyle(string name); @@ -3478,38 +3478,38 @@ pen backgroundcolor; pen steppagenumberpen; real figureborder; pen pagenumberpen; +string oldbulletcolor; +pair startposition; +void step(); +string cropcode(string s); void figure(string[] s, string options=, real margin=, string[] captions=, string caption=, string[] url=, pair align=, pen p=, pen figuremattpen=, bool final=); void figure(string s, string options=, string caption=, string url=, pair align=, pen p=, pen figuremattpen=, bool final=); pen foregroundcolor; +void reversevideo(); +void equation(string s, pen p=); string bulletcolor(string color); -pair startposition; +string[] codefile; +bool allowstepping; bool landscape; +void erasestep(int erasenode); +bool firststep; bool reverse; -void usersetting(); -pen itempen; -pen institutionpen; void item(string s, pen p=, bool step=); void color(string name, string color); -string cropcode(string s); -void erasestep(int erasenode); -void asycode(bool center=, string s, string options=, string caption=, string preamble=, pair align=, pen p=, pen figuremattpen=, real indent=, real skip=, filltype filltype=, bool newslide=); -real pagemargin; -void asyfigure(string s, string options=, string caption=, pair align=, pen p=, pen figuremattpen=, filltype filltype=, bool newslide=); +pen itempen; +pen institutionpen; transform tinv; +void usersetting(); void setpens(pen red=, pen blue=, pen steppen=); -bool allowstepping; int preamblenodes; -void remark(bool center=, string s, pair align=, pen p=, real indent=, bool minipage=, real skip=, filltype filltype=, bool step=); -void exitfunction(); pair titlealign; -void step(); pair dateskip; void titlepage(string title, string author, string institution=, string date=, string url=, bool newslide=); -string[] codefile; -string oldbulletcolor; -bool firststep; -void equation(string s, pen p=); -void reversevideo(); +void asycode(bool center=, string s, string options=, string caption=, string preamble=, pair align=, pen p=, pen figuremattpen=, real indent=, real skip=, filltype filltype=, bool newslide=); +real pagemargin; +void asyfigure(string s, string options=, string caption=, pair align=, pen p=, pen figuremattpen=, filltype filltype=, bool newslide=); +void remark(bool center=, string s, pair align=, pen p=, real indent=, bool minipage=, real skip=, filltype filltype=, bool step=); +void exitfunction(); void bibliography(string name); pair titlepageposition; void equations(string s, pen p=); @@ -3574,6 +3574,7 @@ real B03(real t); triple nGrad(triple)(real f(triple)); real angledegrees(triple a, triple b); path3 bisector(path3 edgecycle, int[] savevertices); +int ZLOW; real(real)[] bernstein; bool checkpt(triple testpt, real f(triple), triple grad(triple), triple a, triple b); int XHIGH; @@ -3585,19 +3586,18 @@ triple operator cast(evaluatedpoint p); patch[] quadpatches(path3 edgecycle, positionedvector[] corners, real f(triple), triple grad(triple), triple a, triple b, bool usetriangles); int NULL_VERTEX; real B33(real t); -int ZLOW; real B13(real t); bool operator ==(edge a, edge b); revolution sphere(triple c=, real r, int n=); path line(path p, path q, real[] t); pen defaultbackpen; real[] tangent(path p, path q, bool side); -surface surface(revolution r, int n=, pen color(int i, real j)=); void draw(picture pic=, revolution r, int m=, int n=, pen frontpen=, pen backpen=, pen longitudinalpen=, pen longitudinalbackpen=, light light=, string name=, render render=, projection P=); +surface surface(revolution r, int n=, pen color(int i, real j)=); revolution operator *(real[][] t, revolution r); -revolution cone(triple c=, real r, real h, triple axis=, int n=); path[] cylinder(path3 base, real h, triple axis=, projection P); revolution cylinder(triple c=, real r, real h, triple axis=); +revolution cone(triple c=, real r, real h, triple axis=, int n=); linefit leastsquares(real[] x, real[] y); linefit leastsquares(real[] x, real[] y, real[] w); int bins(real[] data, int max=); @@ -3613,30 +3613,30 @@ real kurtosis(real[] A); real skewness(real[] A); real rms(real[] A); real variance(real[] A); +void histogram(picture pic=, real[] bins, real[] count, real low=, pen fillpen=, pen drawpen=, bool bars=, Label legend=, real markersize=); +void histogram(picture pic=, real[] data, real a, real b, int n, bool normalize=, real low=, pen fillpen=, pen drawpen=, bool bars=, Label legend=, real markersize=); real legendmarkersize; real Gaussrand(); pair Gaussrandpair(); -real variancebiased(real[] A); real mean(real[] A); +real variancebiased(real[] A); real stdev(real[] A); real Gaussian(real x, real sigma); real Gaussian(real x); -void histogram(picture pic=, real[] bins, real[] count, real low=, pen fillpen=, pen drawpen=, bool bars=, Label legend=, real markersize=); -void histogram(picture pic=, real[] data, real a, real b, int n, bool normalize=, real low=, pen fillpen=, pen drawpen=, bool bars=, Label legend=, real markersize=); Relation operator -(Relation r); Component bm; Component bp; -Component wye; -pair[] endpoints(guide[] a); real gapfactor; +Relation r3; +pair[] endpoints(guide[] a); Relation r4b; Braid apply(Relation r, Braid b, int step, int place); Relation r4a; +Component wye; picture tableau(frame[] cards, bool number=); -Relation r3; pair min(pair[] z); -pair max(pair[] z); real hwratio; +pair max(pair[] z); Component phi; pen Brown; pen Sepia; @@ -3658,27 +3658,26 @@ pen BlueViolet; pen Violet; pen Plum; pen Lavender; -pen White; pen Black; pen BlueGreen; pen Cerulean; pen Apricot; pen RawSienna; -pen Rhodamine; pen Red; +pen Orange; pen Gray; pen GreenYellow; pen YellowOrange; pen ForestGreen; pen BurntOrange; -pen Turquoise; -pen RedOrange; pen DarkOrchid; -pen Melon; -pen Orange; -pen RoyalPurple; +pen RedOrange; +pen Turquoise; +pen Rhodamine; pen CadetBlue; +pen RoyalPurple; pen Dandelion; +pen White; pen Emerald; pen Cyan; pen Bittersweet; @@ -3686,6 +3685,7 @@ pen Orchid; pen BrickRed; pen CornflowerBlue; pen Yellow; +pen Melon; pen Tan; pen Salmon; pen TealBlue; @@ -3881,33 +3881,44 @@ interaction Embedded; int PRCsphere; real Single; real Zero; -marginT3 EndDotMargin3(path3, pen); +bool ArcArrow3(picture, path3, material, marginT3(path3, pen), light, light)(arrowhead3 arrowhead=, real size=, real angle=, filltype filltype=, position position=, material arrowheadpen=); +bool ArcArrow3(picture, path3, material, marginT3(path3, pen), light, light); +real asin1(real x); pair minbound(triple[] A, projection P); pair minbound(triple[][] A, projection P); +triple[][] subpatchend(triple[][] P, real u, real v); +void addStereoViews(picture dest, picture src, bool group=, filltype filltype=, real eyetoview=, bool leftright=, projection P=); +void addStereoViews(picture src, bool group=, filltype filltype=, real eyetoview=, bool leftright=, projection P=); real[][] shift(triple v); real[][] shift(real x, real y, real z); real[][] shift(real[][] t); +triple truepoint(picture pic=, triple dir, bool user=, projection P=); +picture arrow(arrowhead3 arrowhead=, path3 g, material p=, material arrowheadpen=, real size=, real angle=, filltype filltype=, position position=, bool forwards=, marginT3 margin(path3, pen)=, bool center=, light light=, light arrowheadlight=); +void arrow(picture pic=, Label L=, triple b, triple dir, real length=, align align=, pen p=, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=, marginT3 margin(path3, pen)=, light light=, light arrowheadlight=, string name=, render render=); +void arrow(picture pic=, Label L=, triple b, pair dir, real length=, align align=, pen p=, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=, marginT3 margin(path3, pen)=, light light=, light arrowheadlight=, string name=, render render=, projection P=); pair xypart(triple v); real[][] yscale3(real y); real Medium; bool None(picture, path3, material, marginT3(path3, pen), light, light); -void unitcylinderDraw(frame f, real[][] t=, material[] m, light light=, render render=)(bool core); real[][] intersections(path3 p, patch s, real fuzz=); real[][] intersections(path3 p, surface s, real fuzz=); triple arcdir(path3 p, real L); -triple point(explicit void g(flatguide3), int t); -triple point(patch s, real u, real v); -triple point(frame f, triple dir); -triple point(picture pic=, triple dir, bool user=, projection P=); void nullpath3(flatguide3); -real[][] scale(triple v, real s); path3 interp(path3 a, path3 b, real t); marginT3 operator +(path3, pen)(marginT3 ma(path3, pen), marginT3 mb(path3, pen)); path3 trim(path3 g, real begin, real end); +surface extrude(path3 p, path3 q); +surface extrude(path3 p, triple axis=); +surface extrude(path p, triple plane(pair)=, triple axis=); +surface extrude(explicit path[] p, triple axis=); +surface extrude(Label L, triple axis=); +marginT3 EndDotMargin3(path3, pen); path3 operator &(path3 p, cycleToken tok); void tensorshade(transform t=, frame f, patch s, material m, light light=, projection P); +real Low; +bool Blank(picture, path3, material, marginT3(path3, pen), light, light); +real angleprecision; void operator ::(flatguide3)(... void(flatguide3)[]); -triple truepoint(picture pic=, triple dir, bool user=, projection P=); triple[][][] hsplit(triple[][] P, real v=); pair dir(triple v, triple dir, projection P); triple dir(real theta, triple d0, triple d1, triple reference); @@ -3922,59 +3933,41 @@ path3 arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, trip path3 arc(triple c, real r, real theta1, real phi1, real theta2, real phi2, triple normal=); projection[][] SixViewsFR; void drawTube(frame f, real[][] t=, material[] m, light light=, render render=)(triple[] g, real w, triple min, triple max); +triple midpoint(path3 p); projection[][] SixViewsUS; triple[] intersectionpoints(path3 p, path3 q, real fuzz=); triple[] intersectionpoints(explicit path3[] p, explicit path3[] q, real fuzz=); triple[] intersectionpoints(path3 p, patch s, real fuzz=); triple[] intersectionpoints(path3 p, surface s, real fuzz=); -triple[][] subpatchend(triple[][] P, real u, real v); -void addStereoViews(picture dest, picture src, bool group=, filltype filltype=, real eyetoview=, bool leftright=, projection P=); -void addStereoViews(picture src, bool group=, filltype filltype=, real eyetoview=, bool leftright=, projection P=); -triple midpoint(path3 p); +void unitcylinderDraw(frame f, real[][] t=, material[] m, light light=, render render=)(bool core); triple beginpoint(path3 p); -void aim(flatguide3 g, int N); -void aim(flatguide3 g, int i, int n); +triple[][] degenerate(triple[][] P); +triple[] split(triple z0, triple c0, triple c1, triple z1, real t=); +triple[][][][] split(triple[][] P, real u=, real v=); +bool Arrow3(picture, path3, material, marginT3(path3, pen), light, light)(arrowhead3 arrowhead=, real size=, real angle=, filltype filltype=, position position=, material arrowheadpen=); +bool Arrow3(picture, path3, material, marginT3(path3, pen), light, light); +int NURBSsphere; real[][] transform3(triple u, triple v, triple w=); real[][] transform3(projection P=); -projection obliqueZ(real angle=); -projection obliqueZ; -void label(frame f, Label L, triple position, align align=, pen p=, light light=, string name=, render render=, interaction interaction=, projection P=); -void label(picture pic=, Label L, triple position, align align=, pen p=, light light=, string name=, render render=, interaction interaction=); -void label(picture pic=, Label L, path3 g, align align=, pen p=, light light=, string name=, interaction interaction=); -triple reldir(path3 p, real l); -triple max(explicit path3[] p); -triple max(surface s); -pair max(surface s, projection P); -pair max(path3 p, projection P); -pair max(frame f, projection P); +marginT3 BeginPenMargin3(path3, pen); +void drawTessellation(frame f, surface s, material surfacepen=, pen meshpen=, light light=, light meshlight=, string name=, render render=); +void drawTessellation(picture pic=, surface s, material surfacepen=, pen meshpen=, light light=, light meshlight=, string name=, render render=); void operator ..(flatguide3)(... void(flatguide3)[] g); +pen[] nullpens; +triple max3(picture pic, projection P=); string partname(int i, render render=); -projection LeftView; void reverse(flatguide3)(void g(flatguide3)); patch reverse(patch s); triple size3(picture pic, bool user=, projection P=); surface unitdisk; -triple min(explicit path3[] p); -triple min(surface s); -pair min(surface s, projection P); -pair min(path3 p, projection P); -pair min(frame f, projection P); -real[] curlSpecifier(void g(flatguide3), int t); -void write(file file, control c); -void write(file file, Tension t); -void write(file file, dir d); -void write(file file, string s=, explicit flatguide3 x, void suffix(file)=); -void write(string s=, flatguide3 x, void suffix(file)=); -void write(file file, string s=, explicit path3 x, void suffix(file)=); -void write(string s=, explicit path3 x, void suffix(file)=); -void write(file file, string s=, explicit path3[] x, void suffix(file)=); -void write(string s=, explicit path3[] x, void suffix(file)=); -void write(file file, string s=, explicit void(flatguide3)[] x, void suffix(file)=); -void write(string s=, explicit void(flatguide3)[] x, void suffix(file)=); -void write(file file, string s=, material x, void suffix(file)=); -void write(string s=, material x, void suffix(file)=); -light White; -void addArrow(picture pic, arrowhead3 arrowhead, path3 g, pen p, real size, real angle, filltype filltype, real position); +triple invert(pair z, triple normal, triple point, projection P=); +triple invert(pair z, projection P=); +triple invert(pair dir, triple v, projection P=); +path3 invert(path p, triple normal, triple point, projection P=); +path3 invert(path p, triple point, projection P=); +path3 invert(path p, projection P=); +projection LeftView; +real relative(Label L, path3 g); bool EndBar3(picture, path3, material, marginT3(path3, pen), light, light)(real size=, triple dir=); bool EndBar3(picture, path3, material, marginT3(path3, pen), light, light); void draw(frame f, path3 g, material p=, light light=, string name=, render render=, projection P=); @@ -3997,27 +3990,45 @@ Label align(Label L, triple dir); path3[] align(path3[] g, real[][] t=, triple position, triple align, pen p=); surface align(surface s, real[][] t=, triple position, triple align, pen p=); projection[][] ThreeViews; -void add2(picture pic, arrowhead3 arrowhead, real size, real angle, filltype filltype, material arrowheadpen, path3 g, material p, marginT3 margin(path3, pen), light light, light arrowheadlight); -triple relpoint(path3 p, real l); +projection obliqueZ(real angle=); +projection obliqueZ; +void label(frame f, Label L, triple position, align align=, pen p=, light light=, string name=, render render=, interaction interaction=, projection P=); +void label(picture pic=, Label L, triple position, align align=, pen p=, light light=, string name=, render render=, interaction interaction=); +void label(picture pic=, Label L, path3 g, align align=, pen p=, light light=, string name=, interaction interaction=); path3[] operator ^^(path3 p, path3 q); path3[] operator ^^(path3 p, explicit path3[] q); path3[] operator ^^(explicit path3[] p, path3 q); path3[] operator ^^(explicit path3[] p, explicit path3[] q); +triple relpoint(path3 p, real l); +void add2(picture pic, arrowhead3 arrowhead, real size, real angle, filltype filltype, material arrowheadpen, path3 g, material p, marginT3 margin(path3, pen), light light, light arrowheadlight); +triple cross(triple d0, triple d1, triple reference); material material(material m, light light, bool colors=); arrowhead3 HookHead3(real dir=, real barb=); arrowhead3 HookHead3; -control nocontrol; surface unitsphere; pen color(triple normal, material m, light light, real[][] T=); triple min3(picture pic, projection P=); -triple cross(triple d0, triple d1, triple reference); -pen[] nullpens; -triple max3(picture pic, projection P=); -real relative(Label L, path3 g); -real defaultshininess; -marginT3 PenMargins2(path3, pen); -void drawTessellation(frame f, surface s, material surfacepen=, pen meshpen=, light light=, light meshlight=, string name=, render render=); -void drawTessellation(picture pic=, surface s, material surfacepen=, pen meshpen=, light light=, light meshlight=, string name=, render render=); +light White; +void addArrow(picture pic, arrowhead3 arrowhead, path3 g, pen p, real size, real angle, filltype filltype, real position); +real[] curlSpecifier(void g(flatguide3), int t); +void write(file file, control c); +void write(file file, Tension t); +void write(file file, dir d); +void write(file file, string s=, explicit flatguide3 x, void suffix(file)=); +void write(string s=, flatguide3 x, void suffix(file)=); +void write(file file, string s=, explicit path3 x, void suffix(file)=); +void write(string s=, explicit path3 x, void suffix(file)=); +void write(file file, string s=, explicit path3[] x, void suffix(file)=); +void write(string s=, explicit path3[] x, void suffix(file)=); +void write(file file, string s=, explicit void(flatguide3)[] x, void suffix(file)=); +void write(string s=, explicit void(flatguide3)[] x, void suffix(file)=); +void write(file file, string s=, material x, void suffix(file)=); +void write(string s=, material x, void suffix(file)=); +triple min(explicit path3[] p); +triple min(surface s); +pair min(surface s, projection P); +pair min(path3 p, projection P); +pair min(frame f, projection P); material emissive(material m, bool colors=); bool MidArrow3(picture, path3, material, marginT3(path3, pen), light, light)(arrowhead3 arrowhead=, real size=, real angle=, filltype filltype=, material arrowheadpen=); bool MidArrow3(picture, path3, material, marginT3(path3, pen), light, light); @@ -4040,36 +4051,47 @@ material operator cast(pen p); material[] operator cast(pen[] p); light operator cast(triple v); surface operator cast(surface[] s); +triple max(explicit path3[] p); +triple max(surface s); +pair max(surface s, projection P); +pair max(path3 p, projection P); +pair max(frame f, projection P); void draw3D(frame f, patch s, material m, light light=, render render=, bool primitive=); triple arcpoint(path3 p, real L); +control nocontrol; triple intersectionpoint(path3 p, path3 q, real fuzz=); -triple invert(pair z, triple normal, triple point, projection P=); -triple invert(pair z, projection P=); -triple invert(pair dir, triple v, projection P=); -path3 invert(path p, triple normal, triple point, projection P=); -path3 invert(path p, triple point, projection P=); -path3 invert(path p, projection P=); -bool Arrow3(picture, path3, material, marginT3(path3, pen), light, light)(arrowhead3 arrowhead=, real size=, real angle=, filltype filltype=, position position=, material arrowheadpen=); -bool Arrow3(picture, path3, material, marginT3(path3, pen), light, light); -int NURBSsphere; -triple[][] degenerate(triple[][] P); -triple[] split(triple z0, triple c0, triple c1, triple z1, real t=); -triple[][][][] split(triple[][] P, real u=, real v=); -path3 arrowbase(path3 r, triple y, real t, real size); +real defaultshininess; pair viewportmargin(pair lambda); +real[][] scale(triple v, real s); +real High; path3 plane(triple u, triple v, triple O=); bool MidArcArrow3(picture, path3, material, marginT3(path3, pen), light, light)(arrowhead3 arrowhead=, real size=, real angle=, filltype filltype=, material arrowheadpen=); bool MidArcArrow3(picture, path3, material, marginT3(path3, pen), light, light); triple[][] operator /(triple[][] a, real[][] b); +triple Y; +interaction Billboard; real reltime(path3 p, real l); -void bar(picture pic, triple a, triple d, triple perp=, material p=, light light=); -picture bar(triple a, triple dir, triple perp=, material p=); arrowhead3 HookHead2(real dir=, real barb=, triple normal=); arrowhead3 HookHead2; +marginT3 PenMargins2(path3, pen); +void dot(frame f, triple v, material p=, light light=, string name=, render render=, projection P=); +void dot(frame f, triple[] v, material p=, light light=, string name=, render render=, projection P=); +void dot(frame f, path3 g, material p=, light light=, string name=, render render=, projection P=); +void dot(frame f, path3[] g, material p=, light light=, string name=, render render=, projection P=); +void dot(picture pic=, triple v, material p=, light light=, string name=, render render=); +void dot(picture pic=, triple[] v, material p=, light light=, string name=, render render=); +void dot(picture pic=, explicit path3 g, material p=, light light=, string name=, render render=); +void dot(picture pic=, path3[] g, material p=, light light=, string name=, render render=); +void dot(picture pic=, Label L, triple v, align align=, string format=, material p=, light light=, string name=, render render=); projection BackView; string format(triple v, string sep=); -void _draw(frame f, path3 g, triple center=, material m, light light=, interaction interaction=); void drawarrow2(picture pic, arrowhead3 arrowhead=, path3 g, material p=, material arrowheadpen=, real size=, real angle=, filltype filltype=, marginT3 margin(path3, pen)=, light light=, light arrowheadlight=, projection P=); +void add(picture pic=, void d(picture, real[][]), bool exact=); +void add(picture pic, arrowhead3 arrowhead, real size, real angle, filltype filltype, position position, material arrowheadpen, path3 g, material p, bool forwards=, marginT3 margin(path3, pen), bool center=, light light, light arrowheadlight); +void add(picture dest, picture src, triple position, bool group=, bool above=); +void add(picture src, triple position, bool group=, bool above=); +void add(picture dest=, object src, pair position=, pair align=, bool group=, filltype filltype=, bool above=); +void add(picture dest=, frame src, triple position); projection perspective(triple camera, triple up=, triple target=, real zoom=, real angle=, pair viewportshift=, bool showtarget=, bool autoadjust=, bool center=); projection perspective(real x, real y, real z, triple up=, triple target=, real zoom=, real angle=, pair viewportshift=, bool showtarget=, bool autoadjust=, bool center=); projection perspective(string s); @@ -4085,78 +4107,56 @@ surface operator *(real[][] t, surface s); pen operator ecast(material m); real acos1(real x); void exitfunction(); -void dot(frame f, triple v, material p=, light light=, string name=, render render=, projection P=); -void dot(frame f, triple[] v, material p=, light light=, string name=, render render=, projection P=); -void dot(frame f, path3 g, material p=, light light=, string name=, render render=, projection P=); -void dot(frame f, path3[] g, material p=, light light=, string name=, render render=, projection P=); -void dot(picture pic=, triple v, material p=, light light=, string name=, render render=); -void dot(picture pic=, triple[] v, material p=, light light=, string name=, render render=); -void dot(picture pic=, explicit path3 g, material p=, light light=, string name=, render render=); -void dot(picture pic=, path3[] g, material p=, light light=, string name=, render render=); -void dot(picture pic=, Label L, triple v, align align=, string format=, material p=, light light=, string name=, render render=); real[][] xscale3(real x); -picture arrow(arrowhead3 arrowhead=, path3 g, material p=, material arrowheadpen=, real size=, real angle=, filltype filltype=, position position=, bool forwards=, marginT3 margin(path3, pen)=, bool center=, light light=, light arrowheadlight=); -void arrow(picture pic=, Label L=, triple b, triple dir, real length=, align align=, pen p=, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=, marginT3 margin(path3, pen)=, light light=, light arrowheadlight=, string name=, render render=); -void arrow(picture pic=, Label L=, triple b, pair dir, real length=, align align=, pen p=, bool arrow(picture, path3, material, marginT3(path3, pen), light, light)=, marginT3 margin(path3, pen)=, light light=, light arrowheadlight=, string name=, render render=, projection P=); real[][] rotate(real angle, triple v); real[][] rotate(real angle, triple u, triple v); real[][] zscale3(real z); -void add(picture pic=, void d(picture, real[][]), bool exact=); -void add(picture pic, arrowhead3 arrowhead, real size, real angle, filltype filltype, position position, material arrowheadpen, path3 g, material p, bool forwards=, marginT3 margin(path3, pen), bool center=, light light, light arrowheadlight); -void add(picture dest, picture src, triple position, bool group=, bool above=); -void add(picture src, triple position, bool group=, bool above=); -void add(picture dest=, object src, pair position=, pair align=, bool group=, filltype filltype=, bool above=); -void add(picture dest=, frame src, triple position); void operator ---(flatguide3)(... void(flatguide3)[]); path3 approach(path3 p, int n, real radix=); -bool ArcArrow3(picture, path3, material, marginT3(path3, pen), light, light)(arrowhead3 arrowhead=, real size=, real angle=, filltype filltype=, position position=, material arrowheadpen=); -bool ArcArrow3(picture, path3, material, marginT3(path3, pen), light, light); -render operator init(); -Tension operator init(); -void operator init(flatguide3)(); -material operator init(); -real angleprecision; -real Low; -bool Blank(picture, path3, material, marginT3(path3, pen), light, light); -bool ArcArrows3(picture, path3, material, marginT3(path3, pen), light, light)(arrowhead3 arrowhead=, real size=, real angle=, filltype filltype=, material arrowheadpen=); -bool ArcArrows3(picture, path3, material, marginT3(path3, pen), light, light); -marginT3 BeginPenMargin3(path3, pen); -surface extrude(path3 p, path3 q); -surface extrude(path3 p, triple axis=); -surface extrude(path p, triple plane(pair)=, triple axis=); -surface extrude(explicit path[] p, triple axis=); -surface extrude(Label L, triple axis=); void operator controls(flatguide3)(triple post, triple pre); void operator controls(flatguide3)(triple v); -real asin1(real x); -triple Y; -interaction Billboard; -int adjustedIndex(int i, int n, bool cycles); picture arrow2(arrowhead3 arrowhead=, path3 g, material p=, material arrowheadpen=, real size=, real angle=, filltype filltype=, marginT3 margin(path3, pen)=, light light=, light arrowheadlight=); +bool ArcArrows3(picture, path3, material, marginT3(path3, pen), light, light)(arrowhead3 arrowhead=, real size=, real angle=, filltype filltype=, material arrowheadpen=); +bool ArcArrows3(picture, path3, material, marginT3(path3, pen), light, light); +void bar(picture pic, triple a, triple d, triple perp=, material p=, light light=); +picture bar(triple a, triple dir, triple perp=, material p=); +path3 arrowbase(path3 r, triple y, real t, real size); +triple reldir(path3 p, real l); +void aim(flatguide3 g, int N); +void aim(flatguide3 g, int i, int n); +triple point(explicit void g(flatguide3), int t); +triple point(patch s, real u, real v); +triple point(frame f, triple dir); +triple point(picture pic=, triple dir, bool user=, projection P=); +int adjustedIndex(int i, int n, bool cycles); +void drawarrow(picture pic, arrowhead3 arrowhead=, path3 g, material p=, material arrowheadpen=, real size=, real angle=, position position=, filltype filltype=, bool forwards=, marginT3 margin(path3, pen)=, bool center=, light light=, light arrowheadlight=, projection P=); int computeNormals(triple[] v, int[][] vi, triple[] n, int[][] ni); real[][] YX; real[][] YX(projection P=); void addViews(picture dest, picture src, projection[][] views=, bool group=, filltype filltype=); void addViews(picture src, projection[][] views=, bool group=, filltype filltype=); path3 circle(triple c, real r, triple normal=); +void _draw(frame f, path3 g, triple center=, material m, light light=, interaction interaction=); surface unitcube; surface cone(path3 base, triple vertex); +patch unitfrustum1(real ta, real tb); +projection projection(); int size(void g(flatguide3)); string defaultembed3Doptions; real camerafactor; +render operator init(); +Tension operator init(); +void operator init(flatguide3)(); +material operator init(); real[][] bend(path3 g, real t); triple bend(triple p, path3 g, real scale); void bend(surface s, path3 g, real L); -void drawarrow(picture pic, arrowhead3 arrowhead=, path3 g, material p=, material arrowheadpen=, real size=, real angle=, position position=, filltype filltype=, bool forwards=, marginT3 margin(path3, pen)=, bool center=, light light=, light arrowheadlight=, projection P=); surface nullsurface; path3[] box(triple v1, triple v2); -patch unitfrustum1(real ta, real tb); -projection projection(); light Viewport; real[][] t2; real position(position position, real size, path3 g, bool center); real angle(triple d0, triple d1, triple reference); -real High; real[] intersect(path3 p, patch s, real fuzz=); real[] intersect(path3 p, surface s, real fuzz=); void pixel(picture pic=, triple v, pen p=, real width=); @@ -4183,12 +4183,12 @@ real trembleFuzz(); int coloredNodes; path3 roundedpath(path3 A, real r); surface tube(path3 g, coloredpath section, transform T(real)=, real corner=, real relstep=); -int coloredSegments; real tubegranularity; -surface surface(rmf[] R, real[] t, coloredpath cp, transform T(real), bool cyclic); -real degrees(rmf a, rmf b); +int coloredSegments; coloredpath operator cast(path p); coloredpath operator cast(guide p); +surface surface(rmf[] R, real[] t, coloredpath cp, transform T(real), bool cyclic); +real degrees(rmf a, rmf b); real[] sample(path3 g, real r, real relstep=); void render(path3 s, real r, void f(path3, real)); void importv3d(string name); @@ -4264,45 +4264,43 @@ pen FireBrick; pen White; pen Lime; pen Black; -pen LightGreen; pen DeepPink; pen LightPink; -pen LightSeaGreen; pen Navy; -pen SlateBlue; +pen SlateGray; pen LightGrey; pen LemonChiffon; pen Wheat; pen Cyan; -pen Brown; -pen AliceBlue; -pen Teal; +pen DarkOrange; +pen Peru; +pen Sienna; pen Salmon; pen DimGray; -pen Gray; -pen DarkCyan; -pen Peru; -pen DarkGray; pen AntiqueWhite; pen ForestGreen; -pen Turquoise; -pen DarkOrange; -pen Sienna; +pen SlateBlue; +pen Teal; +pen Gray; +pen DarkCyan; +pen CadetBlue; pen LightYellow; pen Ivory; pen BlueViolet; -pen SlateGray; -pen CadetBlue; +pen AliceBlue; +pen Coral; +pen Turquoise; +pen Brown; pen LightSteelBlue; pen MediumAquamarine; pen Red; pen Azure; +pen DarkGray; +pen LightSeaGreen; pen MediumBlue; -pen Coral; pen MediumOrchid; +pen LightGreen; pen Blue; -pen DarkOrchid; -pen Aqua; pen MediumSeaGreen; pen Orchid; pen PaleGreen; @@ -4314,6 +4312,8 @@ pen Chocolate; pen DarkRed; pen Crimson; pen Indigo; +pen DarkOrchid; +pen Aqua; pen Tan; pen MediumVioletRed; pen Maroon; diff --git a/utils/asymptote/asymptote.spec b/utils/asymptote/asymptote.spec index 9cff4201eb..f631963710 100644 --- a/utils/asymptote/asymptote.spec +++ b/utils/asymptote/asymptote.spec @@ -3,7 +3,7 @@ %global __python %{__python3} Name: asymptote -Version: 2.99 +Version: 3.00 Release: 1%{?dist} Summary: Descriptive vector graphics language @@ -17,7 +17,6 @@ BuildRequires: gcc-c++ BuildRequires: ncurses-devel BuildRequires: readline-devel BuildRequires: fftw-devel >= 3.0 -BuildRequires: gc-devel >= 6.7 BuildRequires: gsl-devel BuildRequires: glm-devel BuildRequires: tetex-latex diff --git a/utils/asymptote/autogen.sh b/utils/asymptote/autogen.sh index 799feeae46..127bdeba65 100755 --- a/utils/asymptote/autogen.sh +++ b/utils/asymptote/autogen.sh @@ -11,4 +11,7 @@ fi autoheader && autoconf -cd gc && ./autogen.sh +cd gc +autoreconf -if +automake --add-missing +cd .. diff --git a/utils/asymptote/ax_pthread.m4 b/utils/asymptote/ax_pthread.m4 index d90de34d14..9f35d13914 100644 --- a/utils/asymptote/ax_pthread.m4 +++ b/utils/asymptote/ax_pthread.m4 @@ -1,5 +1,5 @@ # =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_pthread.html +# https://www.gnu.org/software/autoconf-archive/ax_pthread.html # =========================================================================== # # SYNOPSIS @@ -14,24 +14,28 @@ # flags that are needed. (The user can also force certain compiler # flags/libs to be tested by setting these environment variables.) # -# Also sets PTHREAD_CC to any special C compiler that is needed for -# multi-threaded programs (defaults to the value of CC otherwise). (This -# is necessary on AIX to use the special cc_r compiler alias.) +# Also sets PTHREAD_CC and PTHREAD_CXX to any special C compiler that is +# needed for multi-threaded programs (defaults to the value of CC +# respectively CXX otherwise). (This is necessary on e.g. AIX to use the +# special cc_r/CC_r compiler alias.) # # NOTE: You are assumed to not only compile your program with these flags, -# but also link it with them as well. e.g. you should link with +# but also to link with them as well. For example, you might link with # $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS +# $PTHREAD_CXX $CXXFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS # -# If you are only building threads programs, you may wish to use these +# If you are only building threaded programs, you may wish to use these # variables in your default LIBS, CFLAGS, and CC: # # LIBS="$PTHREAD_LIBS $LIBS" # CFLAGS="$CFLAGS $PTHREAD_CFLAGS" +# CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS" # CC="$PTHREAD_CC" +# CXX="$PTHREAD_CXX" # # In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant -# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name -# (e.g. PTHREAD_CREATE_UNDETACHED on AIX). +# has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to +# that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX). # # Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the # PTHREAD_PRIO_INHERIT symbol is defined when compiling with @@ -55,6 +59,7 @@ # # Copyright (c) 2008 Steven G. Johnson # Copyright (c) 2011 Daniel Richard G. +# Copyright (c) 2019 Marc Stevens # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the @@ -67,7 +72,7 @@ # Public License for more details. # # You should have received a copy of the GNU General Public License along -# with this program. If not, see . +# with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure @@ -82,35 +87,41 @@ # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. -#serial 18 +#serial 31 AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) AC_DEFUN([AX_PTHREAD], [ AC_REQUIRE([AC_CANONICAL_HOST]) +AC_REQUIRE([AC_PROG_CC]) +AC_REQUIRE([AC_PROG_SED]) AC_LANG_PUSH([C]) ax_pthread_ok=no # We used to check for pthread.h first, but this fails if pthread.h -# requires special compiler flags (e.g. on True64 or Sequent). +# requires special compiler flags (e.g. on Tru64 or Sequent). # It gets checked for in the link test anyway. # First of all, check if the user has set any of the PTHREAD_LIBS, # etcetera environment variables, and if threads linking works using # them: -if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then - save_CFLAGS="$CFLAGS" +if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then + ax_pthread_save_CC="$CC" + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + AS_IF([test "x$PTHREAD_CC" != "x"], [CC="$PTHREAD_CC"]) + AS_IF([test "x$PTHREAD_CXX" != "x"], [CXX="$PTHREAD_CXX"]) CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" - AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) - AC_TRY_LINK_FUNC(pthread_join, ax_pthread_ok=yes) - AC_MSG_RESULT($ax_pthread_ok) - if test x"$ax_pthread_ok" = xno; then + AC_MSG_CHECKING([for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS]) + AC_LINK_IFELSE([AC_LANG_CALL([], [pthread_join])], [ax_pthread_ok=yes]) + AC_MSG_RESULT([$ax_pthread_ok]) + if test "x$ax_pthread_ok" = "xno"; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" fi - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" + CC="$ax_pthread_save_CC" + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" fi # We must check for the threads library under a number of different @@ -118,12 +129,14 @@ fi # (e.g. DEC) have both -lpthread and -lpthreads, where one of the # libraries is broken (non-POSIX). -# Create a list of thread flags to try. Items starting with a "-" are -# C compiler flags, and other items are library names, except for "none" -# which indicates that we try without any flags at all, and "pthread-config" -# which is a program returning the flags for the Pth emulation library. +# Create a list of thread flags to try. Items with a "," contain both +# C compiler flags (before ",") and linker flags (after ","). Other items +# starting with a "-" are C compiler flags, and remaining items are +# library names, except for "none" which indicates that we try without +# any flags at all, and "pthread-config" which is a program returning +# the flags for the Pth emulation library. -ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" +ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" # The ordering *is* (sometimes) important. Some notes on the # individual items follow: @@ -132,68 +145,163 @@ ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mt # none: in case threads are in libc; should be tried before -Kthread and # other compiler flags to prevent continual compiler warnings # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) -# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) -# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) -# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) -# -pthreads: Solaris/gcc -# -mthreads: Mingw32/gcc, Lynx/gcc +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64 +# (Note: HP C rejects this with "bad form for `-t' option") +# -pthreads: Solaris/gcc (Note: HP C also rejects) # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it -# doesn't hurt to check since this sometimes defines pthreads too; -# also defines -D_REENTRANT) -# ... -mt is also the pthreads flag for HP/aCC +# doesn't hurt to check since this sometimes defines pthreads and +# -D_REENTRANT too), HP C (must be checked before -lpthread, which +# is present but should not be used directly; and before -mthreads, +# because the compiler interprets this as "-mt" + "-hreads") +# -mthreads: Mingw32/gcc, Lynx/gcc # pthread: Linux, etcetera # --thread-safe: KAI C++ # pthread-config: use pthread-config program (for GNU Pth library) -case ${host_os} in +case $host_os in + + freebsd*) + + # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) + # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) + + ax_pthread_flags="-kthread lthread $ax_pthread_flags" + ;; + + hpux*) + + # From the cc(1) man page: "[-mt] Sets various -D flags to enable + # multi-threading and also sets -lpthread." + + ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags" + ;; + + openedition*) + + # IBM z/OS requires a feature-test macro to be defined in order to + # enable POSIX threads at all, so give the user a hint if this is + # not set. (We don't define these ourselves, as they can affect + # other portions of the system API in unpredictable ways.) + + AC_EGREP_CPP([AX_PTHREAD_ZOS_MISSING], + [ +# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS) + AX_PTHREAD_ZOS_MISSING +# endif + ], + [AC_MSG_WARN([IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support.])]) + ;; + solaris*) # On Solaris (at least, for some versions), libc contains stubbed # (non-functional) versions of the pthreads routines, so link-based - # tests will erroneously succeed. (We need to link with -pthreads/-mt/ - # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather - # a function called by this macro, so we could check for that, but - # who knows whether they'll stub that too in a future libc.) So, - # we'll just look for -pthreads and -lpthread first: + # tests will erroneously succeed. (N.B.: The stubs are missing + # pthread_cleanup_push, or rather a function called by this macro, + # so we could check for that, but who knows whether they'll stub + # that too in a future libc.) So we'll check first for the + # standard Solaris way of linking pthreads (-mt -lpthread). - ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" + ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags" ;; +esac - darwin*) - ax_pthread_flags="-pthread $ax_pthread_flags" +# Are we compiling with Clang? + +AC_CACHE_CHECK([whether $CC is Clang], + [ax_cv_PTHREAD_CLANG], + [ax_cv_PTHREAD_CLANG=no + # Note that Autoconf sets GCC=yes for Clang as well as GCC + if test "x$GCC" = "xyes"; then + AC_EGREP_CPP([AX_PTHREAD_CC_IS_CLANG], + [/* Note: Clang 2.7 lacks __clang_[a-z]+__ */ +# if defined(__clang__) && defined(__llvm__) + AX_PTHREAD_CC_IS_CLANG +# endif + ], + [ax_cv_PTHREAD_CLANG=yes]) + fi + ]) +ax_pthread_clang="$ax_cv_PTHREAD_CLANG" + + +# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC) + +# Note that for GCC and Clang -pthread generally implies -lpthread, +# except when -nostdlib is passed. +# This is problematic using libtool to build C++ shared libraries with pthread: +# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460 +# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333 +# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555 +# To solve this, first try -pthread together with -lpthread for GCC + +AS_IF([test "x$GCC" = "xyes"], + [ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags"]) + +# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first + +AS_IF([test "x$ax_pthread_clang" = "xyes"], + [ax_pthread_flags="-pthread,-lpthread -pthread"]) + + +# The presence of a feature test macro requesting re-entrant function +# definitions is, on some systems, a strong hint that pthreads support is +# correctly enabled + +case $host_os in + darwin* | hpux* | linux* | osf* | solaris*) + ax_pthread_check_macro="_REENTRANT" + ;; + + aix*) + ax_pthread_check_macro="_THREAD_SAFE" + ;; + + *) + ax_pthread_check_macro="--" ;; esac +AS_IF([test "x$ax_pthread_check_macro" = "x--"], + [ax_pthread_check_cond=0], + [ax_pthread_check_cond="!defined($ax_pthread_check_macro)"]) + -if test x"$ax_pthread_ok" = xno; then -for flag in $ax_pthread_flags; do +if test "x$ax_pthread_ok" = "xno"; then +for ax_pthread_try_flag in $ax_pthread_flags; do - case $flag in + case $ax_pthread_try_flag in none) AC_MSG_CHECKING([whether pthreads work without any flags]) ;; + *,*) + PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"` + PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"` + AC_MSG_CHECKING([whether pthreads work with "$PTHREAD_CFLAGS" and "$PTHREAD_LIBS"]) + ;; + -*) - AC_MSG_CHECKING([whether pthreads work with $flag]) - PTHREAD_CFLAGS="$flag" + AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag]) + PTHREAD_CFLAGS="$ax_pthread_try_flag" ;; pthread-config) - AC_CHECK_PROG(ax_pthread_config, pthread-config, yes, no) - if test x"$ax_pthread_config" = xno; then continue; fi + AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no]) + AS_IF([test "x$ax_pthread_config" = "xno"], [continue]) PTHREAD_CFLAGS="`pthread-config --cflags`" PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ;; *) - AC_MSG_CHECKING([for the pthreads library -l$flag]) - PTHREAD_LIBS="-l$flag" + AC_MSG_CHECKING([for the pthreads library -l$ax_pthread_try_flag]) + PTHREAD_LIBS="-l$ax_pthread_try_flag" ;; esac - save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we @@ -204,8 +312,18 @@ for flag in $ax_pthread_flags; do # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include - static void routine(void *a) { a = 0; } +# if $ax_pthread_check_cond +# error "$ax_pthread_check_macro must be defined" +# endif + static void *some_global = NULL; + static void routine(void *a) + { + /* To avoid any unused-parameter or + unused-but-set-parameter warning. */ + some_global = a; + } static void *start_routine(void *a) { return a; }], [pthread_t th; pthread_attr_t attr; pthread_create(&th, 0, start_routine, 0); @@ -213,93 +331,188 @@ for flag in $ax_pthread_flags; do pthread_attr_init(&attr); pthread_cleanup_push(routine, 0); pthread_cleanup_pop(0) /* ; */])], - [ax_pthread_ok=yes], - []) + [ax_pthread_ok=yes], + []) - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" - AC_MSG_RESULT($ax_pthread_ok) - if test "x$ax_pthread_ok" = xyes; then - break; - fi + AC_MSG_RESULT([$ax_pthread_ok]) + AS_IF([test "x$ax_pthread_ok" = "xyes"], [break]) PTHREAD_LIBS="" PTHREAD_CFLAGS="" done fi + +# Clang needs special handling, because older versions handle the -pthread +# option in a rather... idiosyncratic way + +if test "x$ax_pthread_clang" = "xyes"; then + + # Clang takes -pthread; it has never supported any other flag + + # (Note 1: This will need to be revisited if a system that Clang + # supports has POSIX threads in a separate library. This tends not + # to be the way of modern systems, but it's conceivable.) + + # (Note 2: On some systems, notably Darwin, -pthread is not needed + # to get POSIX threads support; the API is always present and + # active. We could reasonably leave PTHREAD_CFLAGS empty. But + # -pthread does define _REENTRANT, and while the Darwin headers + # ignore this macro, third-party headers might not.) + + # However, older versions of Clang make a point of warning the user + # that, in an invocation where only linking and no compilation is + # taking place, the -pthread option has no effect ("argument unused + # during compilation"). They expect -pthread to be passed in only + # when source code is being compiled. + # + # Problem is, this is at odds with the way Automake and most other + # C build frameworks function, which is that the same flags used in + # compilation (CFLAGS) are also used in linking. Many systems + # supported by AX_PTHREAD require exactly this for POSIX threads + # support, and in fact it is often not straightforward to specify a + # flag that is used only in the compilation phase and not in + # linking. Such a scenario is extremely rare in practice. + # + # Even though use of the -pthread flag in linking would only print + # a warning, this can be a nuisance for well-run software projects + # that build with -Werror. So if the active version of Clang has + # this misfeature, we search for an option to squash it. + + AC_CACHE_CHECK([whether Clang needs flag to prevent "argument unused" warning when linking with -pthread], + [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG], + [ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown + # Create an alternate version of $ac_link that compiles and + # links in two steps (.c -> .o, .o -> exe) instead of one + # (.c -> exe), because the warning occurs only in the second + # step + ax_pthread_save_ac_link="$ac_link" + ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g' + ax_pthread_link_step=`AS_ECHO(["$ac_link"]) | sed "$ax_pthread_sed"` + ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)" + ax_pthread_save_CFLAGS="$CFLAGS" + for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do + AS_IF([test "x$ax_pthread_try" = "xunknown"], [break]) + CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS" + ac_link="$ax_pthread_save_ac_link" + AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])], + [ac_link="$ax_pthread_2step_ac_link" + AC_LINK_IFELSE([AC_LANG_SOURCE([[int main(void){return 0;}]])], + [break]) + ]) + done + ac_link="$ax_pthread_save_ac_link" + CFLAGS="$ax_pthread_save_CFLAGS" + AS_IF([test "x$ax_pthread_try" = "x"], [ax_pthread_try=no]) + ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try" + ]) + + case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in + no | unknown) ;; + *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;; + esac + +fi # $ax_pthread_clang = yes + + + # Various other checks: -if test "x$ax_pthread_ok" = xyes; then - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - save_CFLAGS="$CFLAGS" +if test "x$ax_pthread_ok" = "xyes"; then + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. - AC_MSG_CHECKING([for joinable pthread attribute]) - attr_name=unknown - for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do - AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], - [int attr = $attr; return attr /* ; */])], - [attr_name=$attr; break], - []) - done - AC_MSG_RESULT($attr_name) - if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then - AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name, - [Define to necessary symbol if this constant - uses a non-standard name on your system.]) - fi + AC_CACHE_CHECK([for joinable pthread attribute], + [ax_cv_PTHREAD_JOINABLE_ATTR], + [ax_cv_PTHREAD_JOINABLE_ATTR=unknown + for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], + [int attr = $ax_pthread_attr; return attr /* ; */])], + [ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break], + []) + done + ]) + AS_IF([test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \ + test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \ + test "x$ax_pthread_joinable_attr_defined" != "xyes"], + [AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], + [$ax_cv_PTHREAD_JOINABLE_ATTR], + [Define to necessary symbol if this constant + uses a non-standard name on your system.]) + ax_pthread_joinable_attr_defined=yes + ]) - AC_MSG_CHECKING([if more special flags are required for pthreads]) - flag=no - case ${host_os} in - aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";; - osf* | hpux*) flag="-D_REENTRANT";; - solaris*) - if test "$GCC" = "yes"; then - flag="-D_REENTRANT" - else - flag="-mt -D_REENTRANT" - fi - ;; - esac - AC_MSG_RESULT(${flag}) - if test "x$flag" != xno; then - PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" - fi + AC_CACHE_CHECK([whether more special flags are required for pthreads], + [ax_cv_PTHREAD_SPECIAL_FLAGS], + [ax_cv_PTHREAD_SPECIAL_FLAGS=no + case $host_os in + solaris*) + ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS" + ;; + esac + ]) + AS_IF([test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \ + test "x$ax_pthread_special_flags_added" != "xyes"], + [PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS" + ax_pthread_special_flags_added=yes]) AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT], - ax_cv_PTHREAD_PRIO_INHERIT, [ - AC_LINK_IFELSE([ - AC_LANG_PROGRAM([[#include ]], [[int i = PTHREAD_PRIO_INHERIT;]])], - [ax_cv_PTHREAD_PRIO_INHERIT=yes], - [ax_cv_PTHREAD_PRIO_INHERIT=no]) + [ax_cv_PTHREAD_PRIO_INHERIT], + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[int i = PTHREAD_PRIO_INHERIT; + return i;]])], + [ax_cv_PTHREAD_PRIO_INHERIT=yes], + [ax_cv_PTHREAD_PRIO_INHERIT=no]) ]) - AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"], - AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], 1, [Have PTHREAD_PRIO_INHERIT.])) + AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \ + test "x$ax_pthread_prio_inherit_defined" != "xyes"], + [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.]) + ax_pthread_prio_inherit_defined=yes + ]) - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" - # More AIX lossage: must compile with xlc_r or cc_r - if test x"$GCC" != xyes; then - AC_CHECK_PROGS(PTHREAD_CC, xlc_r cc_r, ${CC}) - else - PTHREAD_CC=$CC + # More AIX lossage: compile with *_r variant + if test "x$GCC" != "xyes"; then + case $host_os in + aix*) + AS_CASE(["x/$CC"], + [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6], + [#handle absolute path differently from PATH based program lookup + AS_CASE(["x$CC"], + [x/*], + [ + AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"]) + AS_IF([test "x${CXX}" != "x"], [AS_IF([AS_EXECUTABLE_P([${CXX}_r])],[PTHREAD_CXX="${CXX}_r"])]) + ], + [ + AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC]) + AS_IF([test "x${CXX}" != "x"], [AC_CHECK_PROGS([PTHREAD_CXX],[${CXX}_r],[$CXX])]) + ] + ) + ]) + ;; + esac fi -else - PTHREAD_CC="$CC" fi -AC_SUBST(PTHREAD_LIBS) -AC_SUBST(PTHREAD_CFLAGS) -AC_SUBST(PTHREAD_CC) +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" +test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX" + +AC_SUBST([PTHREAD_LIBS]) +AC_SUBST([PTHREAD_CFLAGS]) +AC_SUBST([PTHREAD_CC]) +AC_SUBST([PTHREAD_CXX]) # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x"$ax_pthread_ok" = xyes; then - ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1]) +if test "x$ax_pthread_ok" = "xyes"; then + ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1]) : else ax_pthread_ok=no diff --git a/utils/asymptote/config.guess b/utils/asymptote/config.guess index 48a684601b..e7a6fe3e6d 100755 --- a/utils/asymptote/config.guess +++ b/utils/asymptote/config.guess @@ -1,10 +1,10 @@ -#! /bin/sh +#!/usr/bin/sh # Attempt to guess a canonical system name. -# Copyright 1992-2024 Free Software Foundation, Inc. +# Copyright 1992-2023 Free Software Foundation, Inc. # shellcheck disable=SC2006,SC2268 # see below for rationale -timestamp='2024-07-27' +timestamp='2023-06-23' # This file is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by @@ -60,7 +60,7 @@ version="\ GNU config.guess ($timestamp) Originally written by Per Bothner. -Copyright 1992-2024 Free Software Foundation, Inc. +Copyright 1992-2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -123,7 +123,7 @@ set_cc_for_build() { dummy=$tmp/dummy case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in ,,) echo "int x;" > "$dummy.c" - for driver in cc gcc c17 c99 c89 ; do + for driver in cc gcc c89 c99 ; do if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then CC_FOR_BUILD=$driver break @@ -155,9 +155,6 @@ Linux|GNU|GNU/*) set_cc_for_build cat <<-EOF > "$dummy.c" - #if defined(__ANDROID__) - LIBC=android - #else #include #if defined(__UCLIBC__) LIBC=uclibc @@ -165,8 +162,6 @@ Linux|GNU|GNU/*) LIBC=dietlibc #elif defined(__GLIBC__) LIBC=gnu - #elif defined(__LLVM_LIBC__) - LIBC=llvm #else #include /* First heuristic to detect musl libc. */ @@ -174,7 +169,6 @@ Linux|GNU|GNU/*) LIBC=musl #endif #endif - #endif EOF cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` eval "$cc_set_libc" @@ -634,8 +628,7 @@ EOF sed 's/^ //' << EOF > "$dummy.c" #include - int - main () + main() { if (!__power_pc()) exit(1); @@ -719,8 +712,7 @@ EOF #include #include - int - main () + int main () { #if defined(_SC_KERNEL_BITS) long bits = sysconf(_SC_KERNEL_BITS); @@ -912,7 +904,7 @@ EOF fi ;; *:FreeBSD:*:*) - UNAME_PROCESSOR=`uname -p` + UNAME_PROCESSOR=`/usr/bin/uname -p` case $UNAME_PROCESSOR in amd64) UNAME_PROCESSOR=x86_64 ;; @@ -984,27 +976,7 @@ EOF GUESS=$UNAME_MACHINE-unknown-minix ;; aarch64:Linux:*:*) - set_cc_for_build - CPU=$UNAME_MACHINE - LIBCABI=$LIBC - if test "$CC_FOR_BUILD" != no_compiler_found; then - ABI=64 - sed 's/^ //' << EOF > "$dummy.c" - #ifdef __ARM_EABI__ - #ifdef __ARM_PCS_VFP - ABI=eabihf - #else - ABI=eabi - #endif - #endif -EOF - cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` - eval "$cc_set_abi" - case $ABI in - eabi | eabihf) CPU=armv8l; LIBCABI=$LIBC$ABI ;; - esac - fi - GUESS=$CPU-unknown-linux-$LIBCABI + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; aarch64_be:Linux:*:*) UNAME_MACHINE=aarch64_be @@ -1070,15 +1042,6 @@ EOF k1om:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; - kvx:Linux:*:*) - GUESS=$UNAME_MACHINE-unknown-linux-$LIBC - ;; - kvx:cos:*:*) - GUESS=$UNAME_MACHINE-unknown-cos - ;; - kvx:mbr:*:*) - GUESS=$UNAME_MACHINE-unknown-mbr - ;; loongarch32:Linux:*:* | loongarch64:Linux:*:*) GUESS=$UNAME_MACHINE-unknown-linux-$LIBC ;; @@ -1597,9 +1560,6 @@ EOF *:Unleashed:*:*) GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE ;; - *:Ironclad:*:*) - GUESS=$UNAME_MACHINE-unknown-ironclad - ;; esac # Do we have a guess based on uname results? @@ -1623,7 +1583,6 @@ cat > "$dummy.c" <." version="\ GNU config.sub ($timestamp) -Copyright 1992-2024 Free Software Foundation, Inc. +Copyright 1992-2023 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." @@ -120,6 +120,7 @@ case $# in esac # Split fields of configuration type +# shellcheck disable=SC2162 saved_IFS=$IFS IFS="-" read field1 field2 field3 field4 <&2 - fi - ;; *) echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2 exit 1 ;; esac -case $obj in - aout* | coff* | elf* | pe*) - ;; - '') - # empty is fine - ;; - *) - echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2 - exit 1 - ;; -esac - -# Here we handle the constraint that a (synthetic) cpu and os are -# valid only in combination with each other and nowhere else. -case $cpu-$os in - # The "javascript-unknown-ghcjs" triple is used by GHC; we - # accept it here in order to tolerate that, but reject any - # variations. - javascript-ghcjs) - ;; - javascript-* | *-ghcjs) - echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2 - exit 1 - ;; -esac - # As a final step for OS-related things, validate the OS-kernel combination # (given a valid OS), if there is a kernel. -case $kernel-$os-$obj in - linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \ - | linux-mlibc*- | linux-musl*- | linux-newlib*- \ - | linux-relibc*- | linux-uclibc*- | linux-ohos*- ) - ;; - uclinux-uclibc*- | uclinux-gnu*- ) +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* ) ;; - managarm-mlibc*- | managarm-kernel*- ) + uclinux-uclibc* ) ;; - windows*-msvc*-) + managarm-mlibc* | managarm-kernel* ) ;; - -dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \ - | -uclibc*- ) + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* ) # These are just libc implementations, not actual OSes, and thus # require a kernel. echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2 exit 1 ;; - -kernel*- ) + -kernel* ) echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2 exit 1 ;; - *-kernel*- ) + *-kernel* ) echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2 exit 1 ;; - *-msvc*- ) - echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2 - exit 1 - ;; - kfreebsd*-gnu*- | knetbsd*-gnu*- | netbsd*-gnu*- | kopensolaris*-gnu*-) - ;; - vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-) + kfreebsd*-gnu* | kopensolaris*-gnu*) ;; - nto-qnx*-) + vxworks-simlinux | vxworks-simwindows | vxworks-spe) ;; - os2-emx-) - ;; - rtmk-nova-) + nto-qnx*) ;; - *-eabi*- | *-gnueabi*-) + os2-emx) ;; - none--*) - # None (no kernel, i.e. freestanding / bare metal), - # can be paired with an machine code file format + *-eabi* | *-gnueabi*) ;; - -*-) + -*) # Blank kernel with real OS is always fine. ;; - --*) - # Blank kernel and OS with real machine code file format is always fine. - ;; - *-*-*) + *-*) echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2 exit 1 ;; @@ -2273,7 +1826,7 @@ case $vendor in *-riscix*) vendor=acorn ;; - *-sunos* | *-solaris*) + *-sunos*) vendor=sun ;; *-cnk* | *-aix*) @@ -2343,7 +1896,7 @@ case $vendor in ;; esac -echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}" +echo "$cpu-$vendor-${kernel:+$kernel-}$os" exit # Local variables: diff --git a/utils/asymptote/configure b/utils/asymptote/configure index 6c8c843107..ec00085b11 100755 --- a/utils/asymptote/configure +++ b/utils/asymptote/configure @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.71 for Asymptote 2.99. +# Generated by GNU Autoconf 2.71 for Asymptote 3.00. # # Report bugs to . # @@ -182,7 +182,8 @@ test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && - test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null then : as_have_required=yes @@ -611,8 +612,8 @@ MAKEFLAGS= # Identity of this package. PACKAGE_NAME='Asymptote' PACKAGE_TARNAME='asymptote' -PACKAGE_VERSION='2.99' -PACKAGE_STRING='Asymptote 2.99' +PACKAGE_VERSION='3.00' +PACKAGE_STRING='Asymptote 3.00' PACKAGE_BUGREPORT='https://github.com/vectorgraphics/asymptote/issues' PACKAGE_URL='' @@ -671,8 +672,13 @@ LSP_CXX_BUILD_FLAGS LSP_ROOT PTHREAD_CFLAGS PTHREAD_LIBS +PTHREAD_CXX PTHREAD_CC ax_pthread_config +EGREP +GREP +CPP +SED FLEX BISON SET_MAKE @@ -788,7 +794,8 @@ CXX CXXFLAGS CCC BISON -FLEX' +FLEX +CPP' # Initialize some variables set by options. @@ -1337,7 +1344,7 @@ if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF -\`configure' configures Asymptote 2.99 to adapt to many kinds of systems. +\`configure' configures Asymptote 3.00 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1404,7 +1411,7 @@ fi if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of Asymptote 2.99:";; + short | recursive ) echo "Configuration of Asymptote 3.00:";; esac cat <<\_ACEOF @@ -1461,6 +1468,7 @@ Some influential environment variables: CXXFLAGS C++ compiler flags BISON bison command FLEX flex command + CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. @@ -1529,7 +1537,7 @@ fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -Asymptote configure 2.99 +Asymptote configure 3.00 generated by GNU Autoconf 2.71 Copyright (C) 2021 Free Software Foundation, Inc. @@ -1791,6 +1799,44 @@ fi } # ac_fn_c_try_link +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + } +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + # ac_fn_cxx_check_header_compile LINENO HEADER VAR INCLUDES # --------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in @@ -2009,7 +2055,7 @@ cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by Asymptote $as_me 2.99, which was +It was created by Asymptote $as_me 3.00, which was generated by GNU Autoconf 2.71. Invocation command line was $ $0$ac_configure_args_raw @@ -2986,7 +3032,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu VERSION=$PACKAGE_VERSION # =========================================================================== -# http://www.gnu.org/software/autoconf-archive/ax_pthread.html +# https://www.gnu.org/software/autoconf-archive/ax_pthread.html # =========================================================================== # # SYNOPSIS @@ -3001,24 +3047,28 @@ VERSION=$PACKAGE_VERSION # flags that are needed. (The user can also force certain compiler # flags/libs to be tested by setting these environment variables.) # -# Also sets PTHREAD_CC to any special C compiler that is needed for -# multi-threaded programs (defaults to the value of CC otherwise). (This -# is necessary on AIX to use the special cc_r compiler alias.) +# Also sets PTHREAD_CC and PTHREAD_CXX to any special C compiler that is +# needed for multi-threaded programs (defaults to the value of CC +# respectively CXX otherwise). (This is necessary on e.g. AIX to use the +# special cc_r/CC_r compiler alias.) # # NOTE: You are assumed to not only compile your program with these flags, -# but also link it with them as well. e.g. you should link with +# but also to link with them as well. For example, you might link with # $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS +# $PTHREAD_CXX $CXXFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS # -# If you are only building threads programs, you may wish to use these +# If you are only building threaded programs, you may wish to use these # variables in your default LIBS, CFLAGS, and CC: # # LIBS="$PTHREAD_LIBS $LIBS" # CFLAGS="$CFLAGS $PTHREAD_CFLAGS" +# CXXFLAGS="$CXXFLAGS $PTHREAD_CFLAGS" # CC="$PTHREAD_CC" +# CXX="$PTHREAD_CXX" # # In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant -# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name -# (e.g. PTHREAD_CREATE_UNDETACHED on AIX). +# has a nonstandard name, this macro defines PTHREAD_CREATE_JOINABLE to +# that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX). # # Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the # PTHREAD_PRIO_INHERIT symbol is defined when compiling with @@ -3042,6 +3092,7 @@ VERSION=$PACKAGE_VERSION # # Copyright (c) 2008 Steven G. Johnson # Copyright (c) 2011 Daniel Richard G. +# Copyright (c) 2019 Marc Stevens # # This program is free software: you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by the @@ -3054,7 +3105,7 @@ VERSION=$PACKAGE_VERSION # Public License for more details. # # You should have received a copy of the GNU General Public License along -# with this program. If not, see . +# with this program. If not, see . # # As a special exception, the respective Autoconf Macro's copyright owner # gives unlimited permission to copy, distribute and modify the configure @@ -3069,7 +3120,7 @@ VERSION=$PACKAGE_VERSION # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. -#serial 18 +#serial 31 # This is what autoupdate's m4 run will expand. It fires the warning # (with _au_warn_XXX), outputs it into the updated configure.ac (with @@ -6843,9 +6894,10 @@ ASYGLVERSION=1.02 DEFS="" OPTIONS=$OPTIONS"-D_FILE_OFFSET_BITS=64 " -INCL="-I. " +INCL="" OPTIONS="" LIBS="" +CPPFLAGS=$CPPFLAGS" -I. " # ------------- vcpkg initialization --------------- # vcpkg_triplet @@ -7002,6 +7054,358 @@ if test "x$enable_threads" != "xno"; then OPTIONS=$OPTIONS" -pthread" else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +printf %s "checking for a sed that does not truncate output... " >&6; } +if test ${ac_cv_path_SED+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in sed gsed + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +printf "%s\n" "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +printf %s "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test ${ac_cv_prog_CPP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # Double quotes because $CC needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +else $as_nop + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + # Broken: success on invalid input. +continue +else $as_nop + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok +then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +printf "%s\n" "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +else $as_nop + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + # Broken: success on invalid input. +continue +else $as_nop + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok +then : + +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +printf %s "checking for grep that handles long lines and -e... " >&6; } +if test ${ac_cv_path_GREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in grep ggrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +printf "%s\n" "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +printf %s "checking for egrep... " >&6; } +if test ${ac_cv_path_EGREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in egrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +printf "%s\n" "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + + + ac_ext=c @@ -7013,19 +7417,28 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu ax_pthread_ok=no # We used to check for pthread.h first, but this fails if pthread.h -# requires special compiler flags (e.g. on True64 or Sequent). +# requires special compiler flags (e.g. on Tru64 or Sequent). # It gets checked for in the link test anyway. # First of all, check if the user has set any of the PTHREAD_LIBS, # etcetera environment variables, and if threads linking works using # them: -if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then - save_CFLAGS="$CFLAGS" +if test "x$PTHREAD_CFLAGS$PTHREAD_LIBS" != "x"; then + ax_pthread_save_CC="$CC" + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" + if test "x$PTHREAD_CC" != "x" +then : + CC="$PTHREAD_CC" +fi + if test "x$PTHREAD_CXX" != "x" +then : + CXX="$PTHREAD_CXX" +fi CFLAGS="$CFLAGS $PTHREAD_CFLAGS" - save_LIBS="$LIBS" LIBS="$PTHREAD_LIBS $LIBS" - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 -printf %s "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS" >&5 +printf %s "checking for pthread_join using $CC $PTHREAD_CFLAGS $PTHREAD_LIBS... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -7049,12 +7462,13 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 printf "%s\n" "$ax_pthread_ok" >&6; } - if test x"$ax_pthread_ok" = xno; then + if test "x$ax_pthread_ok" = "xno"; then PTHREAD_LIBS="" PTHREAD_CFLAGS="" fi - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" + CC="$ax_pthread_save_CC" + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" fi # We must check for the threads library under a number of different @@ -7062,12 +7476,14 @@ fi # (e.g. DEC) have both -lpthread and -lpthreads, where one of the # libraries is broken (non-POSIX). -# Create a list of thread flags to try. Items starting with a "-" are -# C compiler flags, and other items are library names, except for "none" -# which indicates that we try without any flags at all, and "pthread-config" -# which is a program returning the flags for the Pth emulation library. +# Create a list of thread flags to try. Items with a "," contain both +# C compiler flags (before ",") and linker flags (after ","). Other items +# starting with a "-" are C compiler flags, and remaining items are +# library names, except for "none" which indicates that we try without +# any flags at all, and "pthread-config" which is a program returning +# the flags for the Pth emulation library. -ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" +ax_pthread_flags="pthreads none -Kthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" # The ordering *is* (sometimes) important. Some notes on the # individual items follow: @@ -7076,51 +7492,178 @@ ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mt # none: in case threads are in libc; should be tried before -Kthread and # other compiler flags to prevent continual compiler warnings # -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) -# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) -# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) -# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) -# -pthreads: Solaris/gcc -# -mthreads: Mingw32/gcc, Lynx/gcc +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads), Tru64 +# (Note: HP C rejects this with "bad form for `-t' option") +# -pthreads: Solaris/gcc (Note: HP C also rejects) # -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it -# doesn't hurt to check since this sometimes defines pthreads too; -# also defines -D_REENTRANT) -# ... -mt is also the pthreads flag for HP/aCC +# doesn't hurt to check since this sometimes defines pthreads and +# -D_REENTRANT too), HP C (must be checked before -lpthread, which +# is present but should not be used directly; and before -mthreads, +# because the compiler interprets this as "-mt" + "-hreads") +# -mthreads: Mingw32/gcc, Lynx/gcc # pthread: Linux, etcetera # --thread-safe: KAI C++ # pthread-config: use pthread-config program (for GNU Pth library) -case ${host_os} in +case $host_os in + + freebsd*) + + # -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) + # lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) + + ax_pthread_flags="-kthread lthread $ax_pthread_flags" + ;; + + hpux*) + + # From the cc(1) man page: "[-mt] Sets various -D flags to enable + # multi-threading and also sets -lpthread." + + ax_pthread_flags="-mt -pthread pthread $ax_pthread_flags" + ;; + + openedition*) + + # IBM z/OS requires a feature-test macro to be defined in order to + # enable POSIX threads at all, so give the user a hint if this is + # not set. (We don't define these ourselves, as they can affect + # other portions of the system API in unpredictable ways.) + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +# if !defined(_OPEN_THREADS) && !defined(_UNIX03_THREADS) + AX_PTHREAD_ZOS_MISSING +# endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "AX_PTHREAD_ZOS_MISSING" >/dev/null 2>&1 +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&5 +printf "%s\n" "$as_me: WARNING: IBM z/OS requires -D_OPEN_THREADS or -D_UNIX03_THREADS to enable pthreads support." >&2;} +fi +rm -rf conftest* + + ;; + solaris*) # On Solaris (at least, for some versions), libc contains stubbed # (non-functional) versions of the pthreads routines, so link-based - # tests will erroneously succeed. (We need to link with -pthreads/-mt/ - # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather - # a function called by this macro, so we could check for that, but - # who knows whether they'll stub that too in a future libc.) So, - # we'll just look for -pthreads and -lpthread first: + # tests will erroneously succeed. (N.B.: The stubs are missing + # pthread_cleanup_push, or rather a function called by this macro, + # so we could check for that, but who knows whether they'll stub + # that too in a future libc.) So we'll check first for the + # standard Solaris way of linking pthreads (-mt -lpthread). + + ax_pthread_flags="-mt,-lpthread pthread $ax_pthread_flags" + ;; +esac + +# Are we compiling with Clang? + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC is Clang" >&5 +printf %s "checking whether $CC is Clang... " >&6; } +if test ${ax_cv_PTHREAD_CLANG+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ax_cv_PTHREAD_CLANG=no + # Note that Autoconf sets GCC=yes for Clang as well as GCC + if test "x$GCC" = "xyes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Note: Clang 2.7 lacks __clang_[a-z]+__ */ +# if defined(__clang__) && defined(__llvm__) + AX_PTHREAD_CC_IS_CLANG +# endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "AX_PTHREAD_CC_IS_CLANG" >/dev/null 2>&1 +then : + ax_cv_PTHREAD_CLANG=yes +fi +rm -rf conftest* + + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG" >&5 +printf "%s\n" "$ax_cv_PTHREAD_CLANG" >&6; } +ax_pthread_clang="$ax_cv_PTHREAD_CLANG" + + +# GCC generally uses -pthread, or -pthreads on some platforms (e.g. SPARC) + +# Note that for GCC and Clang -pthread generally implies -lpthread, +# except when -nostdlib is passed. +# This is problematic using libtool to build C++ shared libraries with pthread: +# [1] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460 +# [2] https://bugzilla.redhat.com/show_bug.cgi?id=661333 +# [3] https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=468555 +# To solve this, first try -pthread together with -lpthread for GCC + +if test "x$GCC" = "xyes" +then : + ax_pthread_flags="-pthread,-lpthread -pthread -pthreads $ax_pthread_flags" +fi + +# Clang takes -pthread (never supported any other flag), but we'll try with -lpthread first - ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" +if test "x$ax_pthread_clang" = "xyes" +then : + ax_pthread_flags="-pthread,-lpthread -pthread" +fi + + +# The presence of a feature test macro requesting re-entrant function +# definitions is, on some systems, a strong hint that pthreads support is +# correctly enabled + +case $host_os in + darwin* | hpux* | linux* | osf* | solaris*) + ax_pthread_check_macro="_REENTRANT" ;; - darwin*) - ax_pthread_flags="-pthread $ax_pthread_flags" + aix*) + ax_pthread_check_macro="_THREAD_SAFE" + ;; + + *) + ax_pthread_check_macro="--" ;; esac +if test "x$ax_pthread_check_macro" = "x--" +then : + ax_pthread_check_cond=0 +else $as_nop + ax_pthread_check_cond="!defined($ax_pthread_check_macro)" +fi + -if test x"$ax_pthread_ok" = xno; then -for flag in $ax_pthread_flags; do +if test "x$ax_pthread_ok" = "xno"; then +for ax_pthread_try_flag in $ax_pthread_flags; do - case $flag in + case $ax_pthread_try_flag in none) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 printf %s "checking whether pthreads work without any flags... " >&6; } ;; + *,*) + PTHREAD_CFLAGS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\1/"` + PTHREAD_LIBS=`echo $ax_pthread_try_flag | sed "s/^\(.*\),\(.*\)$/\2/"` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"" >&5 +printf %s "checking whether pthreads work with \"$PTHREAD_CFLAGS\" and \"$PTHREAD_LIBS\"... " >&6; } + ;; + -*) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5 -printf %s "checking whether pthreads work with $flag... " >&6; } - PTHREAD_CFLAGS="$flag" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $ax_pthread_try_flag" >&5 +printf %s "checking whether pthreads work with $ax_pthread_try_flag... " >&6; } + PTHREAD_CFLAGS="$ax_pthread_try_flag" ;; pthread-config) @@ -7167,22 +7710,25 @@ printf "%s\n" "no" >&6; } fi - if test x"$ax_pthread_config" = xno; then continue; fi + if test "x$ax_pthread_config" = "xno" +then : + continue +fi PTHREAD_CFLAGS="`pthread-config --cflags`" PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" ;; *) - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5 -printf %s "checking for the pthreads library -l$flag... " >&6; } - PTHREAD_LIBS="-l$flag" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$ax_pthread_try_flag" >&5 +printf %s "checking for the pthreads library -l$ax_pthread_try_flag... " >&6; } + PTHREAD_LIBS="-l$ax_pthread_try_flag" ;; esac - save_LIBS="$LIBS" - save_CFLAGS="$CFLAGS" - LIBS="$PTHREAD_LIBS $LIBS" + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" # Check for various functions. We must include pthread.h, # since some functions may be macros. (On the Sequent, we @@ -7193,10 +7739,20 @@ printf %s "checking for the pthreads library -l$flag... " >&6; } # pthread_cleanup_push because it is one of the few pthread # functions on Solaris that doesn't have a non-functional libc stub. # We try pthread_create on general principles. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include - static void routine(void *a) { a = 0; } +# if $ax_pthread_check_cond +# error "$ax_pthread_check_macro must be defined" +# endif + static void *some_global = NULL; + static void routine(void *a) + { + /* To avoid any unused-parameter or + unused-but-set-parameter warning. */ + some_global = a; + } static void *start_routine(void *a) { return a; } int main (void) @@ -7218,77 +7774,195 @@ fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 printf "%s\n" "$ax_pthread_ok" >&6; } - if test "x$ax_pthread_ok" = xyes; then - break; - fi + if test "x$ax_pthread_ok" = "xyes" +then : + break +fi PTHREAD_LIBS="" PTHREAD_CFLAGS="" done fi + +# Clang needs special handling, because older versions handle the -pthread +# option in a rather... idiosyncratic way + +if test "x$ax_pthread_clang" = "xyes"; then + + # Clang takes -pthread; it has never supported any other flag + + # (Note 1: This will need to be revisited if a system that Clang + # supports has POSIX threads in a separate library. This tends not + # to be the way of modern systems, but it's conceivable.) + + # (Note 2: On some systems, notably Darwin, -pthread is not needed + # to get POSIX threads support; the API is always present and + # active. We could reasonably leave PTHREAD_CFLAGS empty. But + # -pthread does define _REENTRANT, and while the Darwin headers + # ignore this macro, third-party headers might not.) + + # However, older versions of Clang make a point of warning the user + # that, in an invocation where only linking and no compilation is + # taking place, the -pthread option has no effect ("argument unused + # during compilation"). They expect -pthread to be passed in only + # when source code is being compiled. + # + # Problem is, this is at odds with the way Automake and most other + # C build frameworks function, which is that the same flags used in + # compilation (CFLAGS) are also used in linking. Many systems + # supported by AX_PTHREAD require exactly this for POSIX threads + # support, and in fact it is often not straightforward to specify a + # flag that is used only in the compilation phase and not in + # linking. Such a scenario is extremely rare in practice. + # + # Even though use of the -pthread flag in linking would only print + # a warning, this can be a nuisance for well-run software projects + # that build with -Werror. So if the active version of Clang has + # this misfeature, we search for an option to squash it. + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread" >&5 +printf %s "checking whether Clang needs flag to prevent \"argument unused\" warning when linking with -pthread... " >&6; } +if test ${ax_cv_PTHREAD_CLANG_NO_WARN_FLAG+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ax_cv_PTHREAD_CLANG_NO_WARN_FLAG=unknown + # Create an alternate version of $ac_link that compiles and + # links in two steps (.c -> .o, .o -> exe) instead of one + # (.c -> exe), because the warning occurs only in the second + # step + ax_pthread_save_ac_link="$ac_link" + ax_pthread_sed='s/conftest\.\$ac_ext/conftest.$ac_objext/g' + ax_pthread_link_step=`printf "%s\n" "$ac_link" | sed "$ax_pthread_sed"` + ax_pthread_2step_ac_link="($ac_compile) && (echo ==== >&5) && ($ax_pthread_link_step)" + ax_pthread_save_CFLAGS="$CFLAGS" + for ax_pthread_try in '' -Qunused-arguments -Wno-unused-command-line-argument unknown; do + if test "x$ax_pthread_try" = "xunknown" +then : + break +fi + CFLAGS="-Werror -Wunknown-warning-option $ax_pthread_try -pthread $ax_pthread_save_CFLAGS" + ac_link="$ax_pthread_save_ac_link" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void){return 0;} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_link="$ax_pthread_2step_ac_link" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main(void){return 0;} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + done + ac_link="$ax_pthread_save_ac_link" + CFLAGS="$ax_pthread_save_CFLAGS" + if test "x$ax_pthread_try" = "x" +then : + ax_pthread_try=no +fi + ax_cv_PTHREAD_CLANG_NO_WARN_FLAG="$ax_pthread_try" + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&5 +printf "%s\n" "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" >&6; } + + case "$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG" in + no | unknown) ;; + *) PTHREAD_CFLAGS="$ax_cv_PTHREAD_CLANG_NO_WARN_FLAG $PTHREAD_CFLAGS" ;; + esac + +fi # $ax_pthread_clang = yes + + + # Various other checks: -if test "x$ax_pthread_ok" = xyes; then - save_LIBS="$LIBS" - LIBS="$PTHREAD_LIBS $LIBS" - save_CFLAGS="$CFLAGS" +if test "x$ax_pthread_ok" = "xyes"; then + ax_pthread_save_CFLAGS="$CFLAGS" + ax_pthread_save_LIBS="$LIBS" CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 printf %s "checking for joinable pthread attribute... " >&6; } - attr_name=unknown - for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext +if test ${ax_cv_PTHREAD_JOINABLE_ATTR+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ax_cv_PTHREAD_JOINABLE_ATTR=unknown + for ax_pthread_attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main (void) { -int attr = $attr; return attr /* ; */ +int attr = $ax_pthread_attr; return attr /* ; */ ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO" then : - attr_name=$attr; break + ax_cv_PTHREAD_JOINABLE_ATTR=$ax_pthread_attr; break fi rm -f core conftest.err conftest.$ac_objext conftest.beam \ conftest$ac_exeext conftest.$ac_ext - done - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5 -printf "%s\n" "$attr_name" >&6; } - if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then + done -printf "%s\n" "#define PTHREAD_CREATE_JOINABLE $attr_name" >>confdefs.h +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_JOINABLE_ATTR" >&5 +printf "%s\n" "$ax_cv_PTHREAD_JOINABLE_ATTR" >&6; } + if test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xunknown" && \ + test "x$ax_cv_PTHREAD_JOINABLE_ATTR" != "xPTHREAD_CREATE_JOINABLE" && \ + test "x$ax_pthread_joinable_attr_defined" != "xyes" +then : - fi +printf "%s\n" "#define PTHREAD_CREATE_JOINABLE $ax_cv_PTHREAD_JOINABLE_ATTR" >>confdefs.h - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5 -printf %s "checking if more special flags are required for pthreads... " >&6; } - flag=no - case ${host_os} in - aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";; - osf* | hpux*) flag="-D_REENTRANT";; - solaris*) - if test "$GCC" = "yes"; then - flag="-D_REENTRANT" - else - flag="-mt -D_REENTRANT" - fi - ;; - esac - { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${flag}" >&5 -printf "%s\n" "${flag}" >&6; } - if test "x$flag" != xno; then - PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" - fi + ax_pthread_joinable_attr_defined=yes + +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether more special flags are required for pthreads" >&5 +printf %s "checking whether more special flags are required for pthreads... " >&6; } +if test ${ax_cv_PTHREAD_SPECIAL_FLAGS+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ax_cv_PTHREAD_SPECIAL_FLAGS=no + case $host_os in + solaris*) + ax_cv_PTHREAD_SPECIAL_FLAGS="-D_POSIX_PTHREAD_SEMANTICS" + ;; + esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_SPECIAL_FLAGS" >&5 +printf "%s\n" "$ax_cv_PTHREAD_SPECIAL_FLAGS" >&6; } + if test "x$ax_cv_PTHREAD_SPECIAL_FLAGS" != "xno" && \ + test "x$ax_pthread_special_flags_added" != "xyes" +then : + PTHREAD_CFLAGS="$ax_cv_PTHREAD_SPECIAL_FLAGS $PTHREAD_CFLAGS" + ax_pthread_special_flags_added=yes +fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5 printf %s "checking for PTHREAD_PRIO_INHERIT... " >&6; } @@ -7296,15 +7970,14 @@ if test ${ax_cv_PTHREAD_PRIO_INHERIT+y} then : printf %s "(cached) " >&6 else $as_nop - - cat confdefs.h - <<_ACEOF >conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ - - #include +#include int main (void) { int i = PTHREAD_PRIO_INHERIT; + return i; ; return 0; } @@ -7321,19 +7994,44 @@ rm -f core conftest.err conftest.$ac_objext conftest.beam \ fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5 printf "%s\n" "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; } - if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" + if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes" && \ + test "x$ax_pthread_prio_inherit_defined" != "xyes" then : printf "%s\n" "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h + ax_pthread_prio_inherit_defined=yes + fi - LIBS="$save_LIBS" - CFLAGS="$save_CFLAGS" + CFLAGS="$ax_pthread_save_CFLAGS" + LIBS="$ax_pthread_save_LIBS" + + # More AIX lossage: compile with *_r variant + if test "x$GCC" != "xyes"; then + case $host_os in + aix*) + case "x/$CC" in #( + x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6) : + #handle absolute path differently from PATH based program lookup + case "x$CC" in #( + x/*) : + + if as_fn_executable_p ${CC}_r +then : + PTHREAD_CC="${CC}_r" +fi + if test "x${CXX}" != "x" +then : + if as_fn_executable_p ${CXX}_r +then : + PTHREAD_CXX="${CXX}_r" +fi +fi + ;; #( + *) : - # More AIX lossage: must compile with xlc_r or cc_r - if test x"$GCC" != xyes; then - for ac_prog in xlc_r cc_r + for ac_prog in ${CC}_r do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 @@ -7379,21 +8077,81 @@ fi test -n "$PTHREAD_CC" && break done -test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}" +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" - else - PTHREAD_CC=$CC - fi + if test "x${CXX}" != "x" +then : + for ac_prog in ${CXX}_r +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_PTHREAD_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$PTHREAD_CXX"; then + ac_cv_prog_PTHREAD_CXX="$PTHREAD_CXX" # Let the user override the test. else - PTHREAD_CC="$CC" +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_PTHREAD_CXX="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +PTHREAD_CXX=$ac_cv_prog_PTHREAD_CXX +if test -n "$PTHREAD_CXX"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CXX" >&5 +printf "%s\n" "$PTHREAD_CXX" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$PTHREAD_CXX" && break +done +test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX" + +fi + + ;; +esac + ;; #( + *) : + ;; +esac + ;; + esac + fi fi +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" +test -n "$PTHREAD_CXX" || PTHREAD_CXX="$CXX" + + # Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: -if test x"$ax_pthread_ok" = xyes; then +if test "x$ax_pthread_ok" = "xyes"; then printf "%s\n" "#define HAVE_PTHREAD 1" >>confdefs.h @@ -9194,7 +9952,7 @@ fi if test "x$enable_xdr" != "xno"; then case "$OSTYPE" in - darwin*) + darwin* | FreeBSD) printf "%s\n" "#define HAVE_LIBTIRPC 1" >>confdefs.h @@ -10541,7 +11299,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by Asymptote $as_me 2.99, which was +This file was extended by Asymptote $as_me 3.00, which was generated by GNU Autoconf 2.71. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -10605,7 +11363,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ -Asymptote config.status 2.99 +Asymptote config.status 3.00 configured by $0, generated by GNU Autoconf 2.71, with options \\"\$ac_cs_config\\" diff --git a/utils/asymptote/configure.ac b/utils/asymptote/configure.ac index 5f7cdef052..fe19bc5449 100644 --- a/utils/asymptote/configure.ac +++ b/utils/asymptote/configure.ac @@ -3,7 +3,7 @@ # this file. AC_PREREQ([2.71]) -AC_INIT([Asymptote],[2.99],[https://github.com/vectorgraphics/asymptote/issues]) +AC_INIT([Asymptote],[3.00],[https://github.com/vectorgraphics/asymptote/issues]) VERSION=$PACKAGE_VERSION AC_SUBST(VERSION) m4_include([ax_pthread.m4]) @@ -193,9 +193,10 @@ ASYGLVERSION=1.02 DEFS="" OPTIONS=$OPTIONS"-D_FILE_OFFSET_BITS=64 " -INCL="-I. " +INCL="" OPTIONS="" LIBS="" +CPPFLAGS=$CPPFLAGS" -I. " # ------------- vcpkg initialization --------------- # vcpkg_triplet @@ -701,7 +702,7 @@ AC_ARG_ENABLE(xdr, [AS_HELP_STRING(--enable-xdr[[[=yes]]],enable XDR/V3D support)]) if test "x$enable_xdr" != "xno"; then case "$OSTYPE" in - darwin*) + darwin* | FreeBSD) AC_DEFINE(HAVE_LIBTIRPC,1,DEFINE_LIB([tirpc])) ;; *) diff --git a/utils/asymptote/doc/CAD.pdf b/utils/asymptote/doc/CAD.pdf index 512905fe6f..d5c1937a3a 100644 Binary files a/utils/asymptote/doc/CAD.pdf and b/utils/asymptote/doc/CAD.pdf differ diff --git a/utils/asymptote/doc/FAQ/asy-faq.info b/utils/asymptote/doc/FAQ/asy-faq.info index 3afce84fc1..bf9145c4c7 100644 --- a/utils/asymptote/doc/FAQ/asy-faq.info +++ b/utils/asymptote/doc/FAQ/asy-faq.info @@ -10,7 +10,7 @@ END-INFO-DIR-ENTRY File: asy-faq.info, Node: Top, Next: Question 1.1, Up: (dir) ASYMPTOTE FREQUENTLY ASKED QUESTIONS - 2025-02-10 + 2025-02-17 This is the list of Frequently Asked Questions about Asymptote (asy). diff --git a/utils/asymptote/doc/TeXShopAndAsymptote.pdf b/utils/asymptote/doc/TeXShopAndAsymptote.pdf index afba46f1de..d428714e28 100644 Binary files a/utils/asymptote/doc/TeXShopAndAsymptote.pdf and b/utils/asymptote/doc/TeXShopAndAsymptote.pdf differ diff --git a/utils/asymptote/doc/asy-latex.pdf b/utils/asymptote/doc/asy-latex.pdf index 948a706ffc..a6ba10d8c7 100644 Binary files a/utils/asymptote/doc/asy-latex.pdf and b/utils/asymptote/doc/asy-latex.pdf differ diff --git a/utils/asymptote/doc/asyRefCard.pdf b/utils/asymptote/doc/asyRefCard.pdf index 7c0910a9c2..8599e0f366 100644 Binary files a/utils/asymptote/doc/asyRefCard.pdf and b/utils/asymptote/doc/asyRefCard.pdf differ diff --git a/utils/asymptote/doc/asymptote.pdf b/utils/asymptote/doc/asymptote.pdf index b5495c93df..91cab65cd6 100644 Binary files a/utils/asymptote/doc/asymptote.pdf and b/utils/asymptote/doc/asymptote.pdf differ diff --git a/utils/asymptote/doc/png/asymptote.info b/utils/asymptote/doc/png/asymptote.info index fbe11fb2c3..96ba0cec71 100644 --- a/utils/asymptote/doc/png/asymptote.info +++ b/utils/asymptote/doc/png/asymptote.info @@ -1,7 +1,7 @@ This is asymptote.info, produced by makeinfo version 7.1 from asymptote.texi. -This file documents ‘Asymptote’, version 2.99. +This file documents ‘Asymptote’, version 3.00. @@ -22,7 +22,7 @@ File: asymptote.info, Node: Top, Next: Description, Up: (dir) Asymptote ********* -This file documents ‘Asymptote’, version 2.99. +This file documents ‘Asymptote’, version 3.00. diff --git a/utils/asymptote/gc/autom4te.cache/requests b/utils/asymptote/gc/autom4te.cache/requests index fc1e5359fa..fa8f13a88e 100644 --- a/utils/asymptote/gc/autom4te.cache/requests +++ b/utils/asymptote/gc/autom4te.cache/requests @@ -43,188 +43,188 @@ 'configure.ac' ], { - '_LT_AC_LANG_CXX' => 1, - 'AC_LIB_LTDL' => 1, - 'LT_CMD_MAX_LEN' => 1, - 'AC_LIBTOOL_PICMODE' => 1, - '_LT_AC_LANG_F77' => 1, + '_AM_SET_OPTION' => 1, + 'AM_PROG_LD' => 1, + '_m4_warn' => 1, + '_AM_DEPENDENCIES' => 1, + 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, + 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, + '_LT_PROG_F77' => 1, + '_AM_SET_OPTIONS' => 1, + 'LT_LIB_M' => 1, + 'AC_LIBTOOL_F77' => 1, + '_LT_AC_PROG_ECHO_BACKSLASH' => 1, + 'LT_SYS_MODULE_PATH' => 1, + 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + 'm4_include' => 1, + '_LT_PATH_TOOL_PREFIX' => 1, + 'AC_DEPLIBS_CHECK_METHOD' => 1, + 'LTDL_INIT' => 1, + 'LTOBSOLETE_VERSION' => 1, + 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + 'LTSUGAR_VERSION' => 1, + 'AC_PATH_MAGIC' => 1, + 'AM_AUX_DIR_EXPAND' => 1, + 'AC_LTDL_SHLIBPATH' => 1, + 'AU_DEFUN' => 1, + 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, + '_AC_AM_CONFIG_HEADER_HOOK' => 1, + '_AC_PROG_LIBTOOL' => 1, + 'AM_SILENT_RULES' => 1, + 'AM_SET_DEPDIR' => 1, + '_AM_SUBST_NOTMAKE' => 1, + 'AC_LIBTOOL_OBJDIR' => 1, + 'include' => 1, + 'AC_LIBTOOL_CONFIG' => 1, + 'AM_PROG_AS' => 1, + 'AM_CONDITIONAL' => 1, 'AC_DEFUN_ONCE' => 1, + 'LT_SYS_DLOPEN_SELF' => 1, + 'LT_FUNC_ARGZ' => 1, + 'AC_PROG_LD' => 1, + 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, + 'AC_PROG_NM' => 1, + 'AC_LTDL_PREOPEN' => 1, + 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, + 'AC_DEFUN' => 1, 'AM_SUBST_NOTMAKE' => 1, - 'LT_LANG' => 1, - 'LTDL_INIT' => 1, - 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'AC_LIBTOOL_FC' => 1, - '_LT_AC_TRY_DLOPEN_SELF' => 1, 'GC_SET_VERSION' => 1, - 'LT_OUTPUT' => 1, - 'AM_CONDITIONAL' => 1, - '_LT_PREPARE_SED_QUOTE_VARS' => 1, - '_LT_CC_BASENAME' => 1, - 'AC_PROG_LD_RELOAD_FLAG' => 1, - 'LT_LIB_M' => 1, - 'AC_LIBTOOL_OBJDIR' => 1, - 'AC_WITH_LTDL' => 1, - 'LT_INIT' => 1, + 'AC_LTDL_ENABLE_INSTALL' => 1, + 'AC_LIBTOOL_LANG_C_CONFIG' => 1, + '_LT_AC_TRY_DLOPEN_SELF' => 1, + 'LTDL_INSTALLABLE' => 1, + '_LT_PROG_LTMAIN' => 1, + 'AC_PROG_LD_GNU' => 1, + 'AC_LIBTOOL_SETUP' => 1, + 'LT_SUPPORTED_TAG' => 1, + '_AM_IF_OPTION' => 1, + 'LT_PROG_RC' => 1, + '_LT_WITH_SYSROOT' => 1, + 'AC_DISABLE_SHARED' => 1, + 'AC_LIB_LTDL' => 1, + 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AC_LIBTOOL_PROG_CC_C_O' => 1, + 'AM_MISSING_HAS_RUN' => 1, + 'LTOPTIONS_VERSION' => 1, 'AM_PROG_LIBTOOL' => 1, - '_LT_AC_TAGCONFIG' => 1, - 'AC_PROG_LD' => 1, - 'AM_MAINTAINER_MODE' => 1, - 'AC_LIBTOOL_DLOPEN_SELF' => 1, + '_AM_AUTOCONF_VERSION' => 1, + 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, + 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + 'LT_WITH_LTDL' => 1, + 'AM_PROG_INSTALL_SH' => 1, + '_LT_AC_PROG_CXXCPP' => 1, 'AC_CHECK_LIBM' => 1, - 'AC_LIBTOOL_GCJ' => 1, - 'AC_PATH_MAGIC' => 1, + 'AC_PROG_LIBTOOL' => 1, + '_LT_AC_LANG_F77_CONFIG' => 1, 'AM_DISABLE_SHARED' => 1, - 'LT_AC_PROG_SED' => 1, - 'LT_AC_PROG_EGREP' => 1, - '_LT_AC_LANG_RC_CONFIG' => 1, - 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, - 'AC_PATH_TOOL_PREFIX' => 1, - 'AM_MISSING_HAS_RUN' => 1, - 'AM_MAKE_INCLUDE' => 1, - '_LT_AC_SHELL_INIT' => 1, - 'AC_LTDL_DLSYM_USCORE' => 1, - 'AM_PROG_CC_C_O' => 1, - 'AC_LIBTOOL_PROG_CC_C_O' => 1, - 'AC_LIBTOOL_RC' => 1, - '_LT_DLL_DEF_P' => 1, - 'AC_LIBTOOL_WIN32_DLL' => 1, - '_LTDL_SETUP' => 1, - 'AC_PROG_LD_GNU' => 1, - 'm4_pattern_allow' => 1, - 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, - 'LT_SYS_DLOPEN_DEPLIBS' => 1, - 'AC_DEFUN' => 1, - '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'LT_SYS_DLOPEN_SELF' => 1, + '_LT_AC_TAGVAR' => 1, + '_LT_REQUIRED_DARWIN_CHECKS' => 1, + 'AM_PROG_INSTALL_STRIP' => 1, + '_LT_CC_BASENAME' => 1, + '_LT_AC_LANG_F77' => 1, + 'AC_LIBTOOL_LINKER_OPTION' => 1, 'LT_FUNC_DLSYM_USCORE' => 1, - 'LT_PATH_LD' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'AC_LTDL_DLLIB' => 1, - '_LT_AC_LANG_CXX_CONFIG' => 1, + '_LT_AC_CHECK_DLFCN' => 1, + 'AM_RUN_LOG' => 1, + 'LT_AC_PROG_EGREP' => 1, 'LTDL_CONVENIENCE' => 1, - '_LT_PROG_F77' => 1, - 'AC_LIBTOOL_COMPILER_OPTION' => 1, - '_AC_AM_CONFIG_HEADER_HOOK' => 1, - '_LT_AC_LANG_F77_CONFIG' => 1, - 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, - 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, - 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, - 'AM_SET_LEADING_DOT' => 1, - '_LT_AC_FILE_LTDLL_C' => 1, - 'LT_PROG_RC' => 1, - '_AM_MANGLE_OPTION' => 1, - '_LT_PROG_ECHO_BACKSLASH' => 1, - 'AM_SET_DEPDIR' => 1, - '_LT_COMPILER_BOILERPLATE' => 1, - 'AM_PROG_LD' => 1, - 'AC_LIBLTDL_CONVENIENCE' => 1, - '_AM_PROG_CC_C_O' => 1, - 'AM_MISSING_PROG' => 1, - 'AC_PROG_LIBTOOL' => 1, + 'LT_SYS_DLOPEN_DEPLIBS' => 1, 'LT_LIB_DLLOAD' => 1, - 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, - 'LT_SYS_MODULE_EXT' => 1, - '_LT_PROG_CXX' => 1, - '_LT_LINKER_OPTION' => 1, - 'AC_LTDL_SHLIBPATH' => 1, - '_LT_AC_PROG_ECHO_BACKSLASH' => 1, - 'AC_DISABLE_SHARED' => 1, + 'AC_DISABLE_FAST_INSTALL' => 1, + '_LT_AC_SHELL_INIT' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + '_AM_CONFIG_MACRO_DIRS' => 1, 'AC_LIBTOOL_DLOPEN' => 1, - '_AM_PROG_TAR' => 1, - 'AC_LIBTOOL_LINKER_OPTION' => 1, - '_LT_LIBOBJ' => 1, - 'AM_PROG_INSTALL_STRIP' => 1, - 'AM_INIT_AUTOMAKE' => 1, + 'LT_CMD_MAX_LEN' => 1, + 'AM_PROG_NM' => 1, + 'LT_AC_PROG_SED' => 1, 'AC_LTDL_SHLIBEXT' => 1, - 'AC_LTDL_PREOPEN' => 1, - 'AM_RUN_LOG' => 1, - 'LT_PROG_GO' => 1, - 'AM_AUX_DIR_EXPAND' => 1, - '_AM_SUBST_NOTMAKE' => 1, - 'LT_WITH_LTDL' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, - 'm4_pattern_forbid' => 1, - 'LT_FUNC_ARGZ' => 1, - 'AC_LIBTOOL_LANG_C_CONFIG' => 1, - '_LT_AC_LANG_GCJ_CONFIG' => 1, + 'AC_LTDL_SYSSEARCHPATH' => 1, + 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, + 'AM_SET_LEADING_DOT' => 1, + '_LT_PROG_ECHO_BACKSLASH' => 1, + 'LT_PATH_NM' => 1, + '_LT_LIBOBJ' => 1, + 'AC_ENABLE_SHARED' => 1, + 'AC_ENABLE_FAST_INSTALL' => 1, + 'AC_LIBTOOL_RC' => 1, 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, - 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, - 'AM_PROG_AS' => 1, - 'AM_ENABLE_SHARED' => 1, - 'LTOBSOLETE_VERSION' => 1, - '_LT_AC_CHECK_DLFCN' => 1, - 'AC_PROG_NM' => 1, - '_AM_SET_OPTION' => 1, - 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, - 'LT_SUPPORTED_TAG' => 1, - '_AM_DEPENDENCIES' => 1, - 'AC_DISABLE_FAST_INSTALL' => 1, - '_m4_warn' => 1, - '_LT_AC_SYS_COMPILER' => 1, - 'LTVERSION_VERSION' => 1, - 'AC_LIBTOOL_CONFIG' => 1, - 'LT_AC_PROG_RC' => 1, + 'AC_LIBTOOL_CXX' => 1, + 'AC_LIBLTDL_CONVENIENCE' => 1, + 'AC_ENABLE_STATIC' => 1, + 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, + 'AC_LTDL_OBJDIR' => 1, + '_LT_LINKER_OPTION' => 1, + 'LT_INIT' => 1, + 'AC_LTDL_DLSYM_USCORE' => 1, + '_LT_AC_LANG_GCJ' => 1, + '_LT_PREPARE_SED_QUOTE_VARS' => 1, 'LT_SYS_DLSEARCH_PATH' => 1, - '_LT_AC_PROG_CXXCPP' => 1, - 'AU_DEFUN' => 1, - 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, - 'AC_LIBLTDL_INSTALLABLE' => 1, - 'AM_ENABLE_STATIC' => 1, - 'LT_PROG_GCJ' => 1, - '_LT_AC_SYS_LIBPATH_AIX' => 1, '_LT_AC_LOCK' => 1, - 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, - 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, - 'include' => 1, - 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, - '_AM_AUTOCONF_VERSION' => 1, - 'AC_DISABLE_STATIC' => 1, - '_AM_SET_OPTIONS' => 1, - 'LT_SYS_MODULE_PATH' => 1, - 'AM_PROG_INSTALL_SH' => 1, - 'LTOPTIONS_VERSION' => 1, - 'AC_CONFIG_MACRO_DIR' => 1, - 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, - 'LTDL_INSTALLABLE' => 1, - '_AC_PROG_LIBTOOL' => 1, - 'AC_ENABLE_SHARED' => 1, - '_LT_LINKER_BOILERPLATE' => 1, '_LT_AC_LANG_C_CONFIG' => 1, - '_AM_CONFIG_MACRO_DIRS' => 1, - 'AC_LIBTOOL_SETUP' => 1, - 'm4_include' => 1, - '_LT_AC_TAGVAR' => 1, - 'AC_LIBTOOL_CXX' => 1, + 'AM_ENABLE_STATIC' => 1, + '_LT_AC_LANG_GCJ_CONFIG' => 1, + 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, + 'AM_ENABLE_SHARED' => 1, + '_LT_COMPILER_OPTION' => 1, + 'LT_SYS_MODULE_EXT' => 1, + '_LT_AC_LANG_RC_CONFIG' => 1, + 'LT_PROG_GCJ' => 1, + 'AM_MISSING_PROG' => 1, 'LT_CONFIG_LTDL_DIR' => 1, - '_AM_IF_OPTION' => 1, - 'AM_SILENT_RULES' => 1, - '_LT_PATH_TOOL_PREFIX' => 1, - 'AC_DEPLIBS_CHECK_METHOD' => 1, - 'LTSUGAR_VERSION' => 1, + 'LT_AC_PROG_GCJ' => 1, + 'AM_MAKE_INCLUDE' => 1, + 'AC_PROG_EGREP' => 1, + 'LTVERSION_VERSION' => 1, + 'AM_PROG_CC_C_O' => 1, + 'm4_pattern_allow' => 1, + 'LT_LANG' => 1, + 'AC_DISABLE_STATIC' => 1, + 'AC_LIBTOOL_COMPILER_OPTION' => 1, + '_LTDL_SETUP' => 1, + 'AC_PATH_TOOL_PREFIX' => 1, 'LT_SYS_SYMBOL_USCORE' => 1, - 'AM_PROG_NM' => 1, - '_LT_REQUIRED_DARWIN_CHECKS' => 1, - 'AC_LTDL_ENABLE_INSTALL' => 1, - 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, - 'AC_ENABLE_STATIC' => 1, - '_LT_WITH_SYSROOT' => 1, + 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, + 'm4_pattern_forbid' => 1, + 'AM_INIT_AUTOMAKE' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'LT_OUTPUT' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'LT_AC_PROG_RC' => 1, + '_LT_COMPILER_BOILERPLATE' => 1, + '_LT_DLL_DEF_P' => 1, + 'AC_LIBTOOL_WIN32_DLL' => 1, + '_LT_AC_SYS_COMPILER' => 1, + 'AC_CONFIG_MACRO_DIR' => 1, + 'AC_LTDL_DLLIB' => 1, + 'AC_LIBTOOL_DLOPEN_SELF' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + '_AM_PROG_TAR' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, + '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AC_PROG_LD_RELOAD_FLAG' => 1, 'AM_DEP_TRACK' => 1, - 'AC_LTDL_SYSSEARCHPATH' => 1, - 'LT_AC_PROG_GCJ' => 1, - 'LT_PATH_NM' => 1, - 'AC_LIBTOOL_F77' => 1, + 'AC_WITH_LTDL' => 1, + 'AM_MAINTAINER_MODE' => 1, + 'AC_LIBTOOL_FC' => 1, + 'AC_LIBTOOL_PICMODE' => 1, + 'LT_PROG_GO' => 1, + '_LT_PROG_CXX' => 1, + 'LT_PATH_LD' => 1, + '_LT_AC_SYS_LIBPATH_AIX' => 1, + 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, + '_AM_PROG_CC_C_O' => 1, + '_AM_MANGLE_OPTION' => 1, + '_LT_LINKER_BOILERPLATE' => 1, + 'AC_LIBTOOL_GCJ' => 1, 'AC_LTDL_SYMBOL_USCORE' => 1, - '_LT_AC_LANG_GCJ' => 1, - 'AM_SANITY_CHECK' => 1, - 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, - '_LT_PROG_LTMAIN' => 1, - '_LT_PROG_FC' => 1, - 'AC_ENABLE_FAST_INSTALL' => 1, - 'AC_PROG_EGREP' => 1, - 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, - '_LT_COMPILER_OPTION' => 1, + '_LT_AC_LANG_CXX_CONFIG' => 1, + 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, + '_LT_AC_LANG_CXX' => 1, + '_LT_PROG_FC' => 1, 'AM_DISABLE_STATIC' => 1, - 'AC_LTDL_OBJDIR' => 1 + 'AM_SANITY_CHECK' => 1, + 'AC_LIBLTDL_INSTALLABLE' => 1 } ], 'Autom4te::Request' ), bless( [ @@ -239,69 +239,69 @@ 'configure.ac' ], { - 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, - 'include' => 1, 'AM_PROG_FC_C_O' => 1, - 'AC_FC_SRCEXT' => 1, - 'AC_REQUIRE_AUX_FILE' => 1, - 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AH_OUTPUT' => 1, - 'AC_CANONICAL_BUILD' => 1, 'AC_SUBST' => 1, - 'AM_PROG_CXX_C_O' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AC_DEFINE_TRACE_LITERAL' => 1, - '_AM_MAKEFILE_INCLUDE' => 1, - 'LT_INIT' => 1, - 'AC_CANONICAL_TARGET' => 1, + 'AM_PROG_F77_C_O' => 1, 'AC_CANONICAL_HOST' => 1, - 'sinclude' => 1, - '_LT_AC_TAGCONFIG' => 1, - 'AM_PROG_LIBTOOL' => 1, 'AC_FC_FREEFORM' => 1, - 'AM_PROG_F77_C_O' => 1, - 'AC_CANONICAL_SYSTEM' => 1, - 'GTK_DOC_CHECK' => 1, - 'AC_CONFIG_AUX_DIR' => 1, + 'LT_INIT' => 1, + 'sinclude' => 1, + 'AM_POT_TOOLS' => 1, + 'm4_sinclude' => 1, 'AC_PROG_LIBTOOL' => 1, + 'AC_SUBST_TRACE' => 1, + 'AC_LIBSOURCE' => 1, 'AM_MAINTAINER_MODE' => 1, - 'AC_CONFIG_SUBDIRS' => 1, - 'AC_FC_PP_SRCEXT' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'm4_sinclude' => 1, - '_AM_COND_IF' => 1, - 'm4_pattern_allow' => 1, + '_AM_SUBST_NOTMAKE' => 1, + 'AH_OUTPUT' => 1, 'AM_SILENT_RULES' => 1, - 'AC_CONFIG_HEADERS' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - 'AM_PROG_AR' => 1, - '_AM_COND_ENDIF' => 1, + '_AM_MAKEFILE_INCLUDE' => 1, 'AM_PATH_GUILE' => 1, - '_AM_COND_ELSE' => 1, + 'AC_CANONICAL_TARGET' => 1, + 'include' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'AM_XGETTEXT_OPTION' => 1, + 'GTK_DOC_CHECK' => 1, + 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, 'AM_CONDITIONAL' => 1, + 'AM_PROG_CXX_C_O' => 1, + 'AC_CONFIG_HEADERS' => 1, + 'AM_PROG_CC_C_O' => 1, + 'm4_pattern_allow' => 1, + 'AC_DEFINE_TRACE_LITERAL' => 1, + 'AC_FC_PP_SRCEXT' => 1, + 'AC_CONFIG_LIBOBJ_DIR' => 1, + 'AC_CANONICAL_SYSTEM' => 1, '_m4_warn' => 1, + 'IT_PROG_INTLTOOL' => 1, + 'AC_CONFIG_SUBDIRS' => 1, + '_AM_COND_ENDIF' => 1, + 'AM_PROG_MOC' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'AC_FC_SRCEXT' => 1, 'AC_FC_PP_DEFINE' => 1, + 'AC_REQUIRE_AUX_FILE' => 1, + 'm4_pattern_forbid' => 1, 'AM_AUTOMAKE_VERSION' => 1, - 'AM_MAKEFILE_INCLUDE' => 1, - 'AM_PROG_MOC' => 1, - 'AC_SUBST_TRACE' => 1, - 'AM_EXTRA_RECURSIVE_TARGETS' => 1, - 'AM_PROG_CC_C_O' => 1, - 'IT_PROG_INTLTOOL' => 1, - 'AM_GNU_GETTEXT' => 1, - 'AM_POT_TOOLS' => 1, + 'AM_ENABLE_MULTILIB' => 1, + 'm4_include' => 1, 'AM_PROG_MKDIR_P' => 1, - '_AM_SUBST_NOTMAKE' => 1, 'AC_CONFIG_FILES' => 1, - 'AC_LIBSOURCE' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'AM_PROG_AR' => 1, + 'LT_SUPPORTED_TAG' => 1, + 'AM_GNU_GETTEXT' => 1, 'AC_INIT' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, - 'm4_pattern_forbid' => 1, + '_AM_COND_ELSE' => 1, + 'AC_CANONICAL_BUILD' => 1, + 'AM_MAKEFILE_INCLUDE' => 1, 'AC_CONFIG_LINKS' => 1, - 'm4_include' => 1, - 'AM_ENABLE_MULTILIB' => 1, + 'AM_EXTRA_RECURSIVE_TARGETS' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + '_AM_COND_IF' => 1, + 'AM_PROG_LIBTOOL' => 1, 'AM_NLS' => 1, - 'AM_XGETTEXT_OPTION' => 1 + 'AC_CONFIG_AUX_DIR' => 1 } ], 'Autom4te::Request' ), bless( [ @@ -344,188 +344,188 @@ 'configure.ac' ], { - 'LT_SYS_MODULE_PATH' => 1, - 'LTOPTIONS_VERSION' => 1, - 'AC_CONFIG_MACRO_DIR' => 1, - 'AM_PROG_INSTALL_SH' => 1, - 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, - 'LTDL_INSTALLABLE' => 1, - 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, - 'include' => 1, - 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, - 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, - 'AC_DISABLE_STATIC' => 1, - '_AM_AUTOCONF_VERSION' => 1, - '_AM_SET_OPTIONS' => 1, - 'AM_ENABLE_STATIC' => 1, - 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, - 'AC_LIBLTDL_INSTALLABLE' => 1, - 'LT_PROG_GCJ' => 1, - '_LT_AC_LOCK' => 1, - '_LT_AC_SYS_LIBPATH_AIX' => 1, - 'LT_SYS_DLSEARCH_PATH' => 1, - '_LT_AC_PROG_CXXCPP' => 1, - 'AU_DEFUN' => 1, - '_AM_DEPENDENCIES' => 1, - 'AC_DISABLE_FAST_INSTALL' => 1, - '_m4_warn' => 1, - '_LT_AC_SYS_COMPILER' => 1, - 'LT_AC_PROG_RC' => 1, - 'AC_LIBTOOL_CONFIG' => 1, - 'LTVERSION_VERSION' => 1, - '_AM_SET_OPTION' => 1, - 'AC_PROG_NM' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, - 'AC_LIBTOOL_LANG_C_CONFIG' => 1, - 'm4_pattern_forbid' => 1, - 'LT_FUNC_ARGZ' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, - 'LT_WITH_LTDL' => 1, - 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, - 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, - '_LT_AC_LANG_GCJ_CONFIG' => 1, - 'LTOBSOLETE_VERSION' => 1, - 'AM_PROG_AS' => 1, - 'AM_ENABLE_SHARED' => 1, + 'LT_AC_PROG_EGREP' => 1, + 'LT_LIB_DLLOAD' => 1, + 'LTDL_CONVENIENCE' => 1, + 'LT_SYS_DLOPEN_DEPLIBS' => 1, + 'AC_LIBTOOL_LINKER_OPTION' => 1, '_LT_AC_CHECK_DLFCN' => 1, 'AM_RUN_LOG' => 1, - 'AC_LTDL_PREOPEN' => 1, - 'LT_PROG_GO' => 1, - 'AM_AUX_DIR_EXPAND' => 1, - '_AM_SUBST_NOTMAKE' => 1, - 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, - 'AC_ENABLE_FAST_INSTALL' => 1, - 'AC_PROG_EGREP' => 1, - '_LT_COMPILER_OPTION' => 1, - 'AC_LTDL_OBJDIR' => 1, - 'AM_DISABLE_STATIC' => 1, - '_LT_PROG_LTMAIN' => 1, - 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, - '_LT_PROG_FC' => 1, - 'AC_LTDL_SYMBOL_USCORE' => 1, - 'AC_LIBTOOL_F77' => 1, - '_LT_AC_LANG_GCJ' => 1, - 'LT_PATH_NM' => 1, - 'AM_SANITY_CHECK' => 1, - 'AM_DEP_TRACK' => 1, - '_LT_WITH_SYSROOT' => 1, - 'AC_ENABLE_STATIC' => 1, - 'AC_LTDL_SYSSEARCHPATH' => 1, - 'LT_AC_PROG_GCJ' => 1, - 'LT_SYS_SYMBOL_USCORE' => 1, + 'LT_FUNC_DLSYM_USCORE' => 1, + 'LT_AC_PROG_SED' => 1, + '_AM_CONFIG_MACRO_DIRS' => 1, 'AM_PROG_NM' => 1, + 'LT_CMD_MAX_LEN' => 1, + 'AC_LIBTOOL_DLOPEN' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + '_LT_AC_SHELL_INIT' => 1, + 'AC_DISABLE_FAST_INSTALL' => 1, + 'AC_PROG_LIBTOOL' => 1, + '_LT_AC_LANG_F77_CONFIG' => 1, + '_LT_AC_PROG_CXXCPP' => 1, + 'AC_CHECK_LIBM' => 1, + '_LT_AC_LANG_F77' => 1, + '_LT_CC_BASENAME' => 1, + 'AM_PROG_INSTALL_STRIP' => 1, + '_LT_AC_TAGVAR' => 1, + 'AM_DISABLE_SHARED' => 1, '_LT_REQUIRED_DARWIN_CHECKS' => 1, - 'AC_LTDL_ENABLE_INSTALL' => 1, - 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, + '_LT_WITH_SYSROOT' => 1, + 'AC_LIB_LTDL' => 1, + 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AC_DISABLE_SHARED' => 1, + 'LT_PROG_RC' => 1, '_AM_IF_OPTION' => 1, - 'AC_LIBTOOL_CXX' => 1, - 'AM_SILENT_RULES' => 1, - 'AC_DEPLIBS_CHECK_METHOD' => 1, - '_LT_PATH_TOOL_PREFIX' => 1, - 'LTSUGAR_VERSION' => 1, - '_LT_AC_LANG_C_CONFIG' => 1, - '_LT_LINKER_BOILERPLATE' => 1, - '_AM_CONFIG_MACRO_DIRS' => 1, + 'LTOPTIONS_VERSION' => 1, + 'AC_LIBTOOL_PROG_CC_C_O' => 1, + 'AM_MISSING_HAS_RUN' => 1, 'AC_LIBTOOL_SETUP' => 1, - '_LT_AC_TAGVAR' => 1, - 'm4_include' => 1, - '_AC_PROG_LIBTOOL' => 1, - 'AC_ENABLE_SHARED' => 1, - 'AC_PATH_TOOL_PREFIX' => 1, - '_LT_AC_LANG_RC_CONFIG' => 1, + 'AC_PROG_LD_GNU' => 1, + 'LT_SUPPORTED_TAG' => 1, + '_LT_PROG_LTMAIN' => 1, + 'LT_WITH_LTDL' => 1, + 'AM_PROG_INSTALL_SH' => 1, + 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, - 'AM_MISSING_HAS_RUN' => 1, - '_LT_AC_SHELL_INIT' => 1, - 'AM_MAKE_INCLUDE' => 1, - 'AC_LTDL_DLSYM_USCORE' => 1, - 'AC_LIBTOOL_GCJ' => 1, - 'AC_CHECK_LIBM' => 1, - 'AM_DISABLE_SHARED' => 1, - 'AC_PATH_MAGIC' => 1, - 'LT_AC_PROG_EGREP' => 1, - 'LT_AC_PROG_SED' => 1, - 'AM_MAINTAINER_MODE' => 1, - 'AC_LIBTOOL_DLOPEN_SELF' => 1, - 'AC_PROG_LD_RELOAD_FLAG' => 1, - '_LT_CC_BASENAME' => 1, - 'LT_INIT' => 1, - 'LT_LIB_M' => 1, - 'AC_WITH_LTDL' => 1, - 'AC_LIBTOOL_OBJDIR' => 1, 'AM_PROG_LIBTOOL' => 1, - '_LT_AC_TAGCONFIG' => 1, - 'AC_PROG_LD' => 1, - 'LT_OUTPUT' => 1, - 'AM_CONDITIONAL' => 1, - '_LT_PREPARE_SED_QUOTE_VARS' => 1, + '_AM_AUTOCONF_VERSION' => 1, + 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, + 'AC_LTDL_PREOPEN' => 1, + 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, + 'AC_PROG_NM' => 1, + 'AC_LTDL_ENABLE_INSTALL' => 1, + 'LTDL_INSTALLABLE' => 1, '_LT_AC_TRY_DLOPEN_SELF' => 1, + 'AC_LIBTOOL_LANG_C_CONFIG' => 1, 'GC_SET_VERSION' => 1, - 'LT_LANG' => 1, - 'LTDL_INIT' => 1, - 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'AC_LIBTOOL_FC' => 1, - '_LT_AC_LANG_CXX' => 1, - 'AC_LIB_LTDL' => 1, - 'LT_CMD_MAX_LEN' => 1, - 'AC_LIBTOOL_PICMODE' => 1, - '_LT_AC_LANG_F77' => 1, + 'AM_SUBST_NOTMAKE' => 1, + 'AC_DEFUN' => 1, + 'include' => 1, + 'AC_LIBTOOL_CONFIG' => 1, + 'AC_LIBTOOL_OBJDIR' => 1, + 'AC_PROG_LD' => 1, + 'LT_FUNC_ARGZ' => 1, + 'LT_SYS_DLOPEN_SELF' => 1, 'AC_DEFUN_ONCE' => 1, - 'AM_SUBST_NOTMAKE' => 1, - '_AM_PROG_TAR' => 1, - '_LT_AC_PROG_ECHO_BACKSLASH' => 1, - 'AC_DISABLE_SHARED' => 1, - 'AC_LIBTOOL_DLOPEN' => 1, - 'AC_LIBTOOL_LINKER_OPTION' => 1, - 'AM_PROG_INSTALL_STRIP' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AC_LTDL_SHLIBEXT' => 1, - '_LT_LIBOBJ' => 1, - 'LT_SYS_MODULE_EXT' => 1, - 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, - 'LT_LIB_DLLOAD' => 1, - '_LT_PROG_CXX' => 1, - '_LT_LINKER_OPTION' => 1, + 'AM_CONDITIONAL' => 1, + 'AM_PROG_AS' => 1, + 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, + 'AU_DEFUN' => 1, 'AC_LTDL_SHLIBPATH' => 1, - '_AM_MANGLE_OPTION' => 1, - '_LT_PROG_ECHO_BACKSLASH' => 1, - 'LT_PROG_RC' => 1, + '_AM_SUBST_NOTMAKE' => 1, 'AM_SET_DEPDIR' => 1, - '_LT_COMPILER_BOILERPLATE' => 1, - '_AM_PROG_CC_C_O' => 1, - 'AM_PROG_LD' => 1, - 'AC_LIBLTDL_CONVENIENCE' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'AM_MISSING_PROG' => 1, - '_LT_AC_LANG_CXX_CONFIG' => 1, - 'LTDL_CONVENIENCE' => 1, + 'AM_SILENT_RULES' => 1, '_AC_AM_CONFIG_HEADER_HOOK' => 1, - '_LT_AC_LANG_F77_CONFIG' => 1, - 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, + '_AC_PROG_LIBTOOL' => 1, + '_LT_PATH_TOOL_PREFIX' => 1, + 'LTSUGAR_VERSION' => 1, + 'AM_AUX_DIR_EXPAND' => 1, + 'AC_PATH_MAGIC' => 1, + 'LTDL_INIT' => 1, + 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + 'LTOBSOLETE_VERSION' => 1, + 'AC_DEPLIBS_CHECK_METHOD' => 1, + 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, '_LT_PROG_F77' => 1, - 'AC_LIBTOOL_COMPILER_OPTION' => 1, - 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, - '_LT_AC_FILE_LTDLL_C' => 1, - 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, - 'AM_SET_LEADING_DOT' => 1, - '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'LT_SYS_DLOPEN_SELF' => 1, + '_AM_SET_OPTIONS' => 1, + 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, + '_m4_warn' => 1, + '_AM_DEPENDENCIES' => 1, + 'AM_PROG_LD' => 1, + '_AM_SET_OPTION' => 1, + 'LT_SYS_MODULE_PATH' => 1, + 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + 'm4_include' => 1, + '_LT_AC_PROG_ECHO_BACKSLASH' => 1, + 'LT_LIB_M' => 1, + 'AC_LIBTOOL_F77' => 1, + 'AC_LIBTOOL_GCJ' => 1, + '_LT_AC_LANG_CXX_CONFIG' => 1, + 'AC_LTDL_SYMBOL_USCORE' => 1, + '_LT_AC_SYS_LIBPATH_AIX' => 1, + 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, + '_LT_LINKER_BOILERPLATE' => 1, + '_AM_MANGLE_OPTION' => 1, + '_AM_PROG_CC_C_O' => 1, + '_LT_PROG_CXX' => 1, 'LT_PATH_LD' => 1, - 'LT_FUNC_DLSYM_USCORE' => 1, - 'AM_AUTOMAKE_VERSION' => 1, + 'AM_SANITY_CHECK' => 1, + 'AM_DISABLE_STATIC' => 1, + '_LT_PROG_FC' => 1, + 'AC_LIBLTDL_INSTALLABLE' => 1, + '_LT_AC_LANG_CXX' => 1, + 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, + 'AM_DEP_TRACK' => 1, + 'AC_PROG_LD_RELOAD_FLAG' => 1, + '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'LT_PROG_GO' => 1, + 'AC_LIBTOOL_PICMODE' => 1, + 'AC_LIBTOOL_FC' => 1, + 'AC_WITH_LTDL' => 1, + 'AM_MAINTAINER_MODE' => 1, + '_LT_AC_SYS_COMPILER' => 1, + 'AC_CONFIG_MACRO_DIR' => 1, + 'AC_LIBTOOL_WIN32_DLL' => 1, + '_LT_DLL_DEF_P' => 1, + '_LT_COMPILER_BOILERPLATE' => 1, + 'LT_AC_PROG_RC' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, + '_AM_PROG_TAR' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + 'AC_LIBTOOL_DLOPEN_SELF' => 1, 'AC_LTDL_DLLIB' => 1, - 'AC_PROG_LD_GNU' => 1, - 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + 'LT_SYS_SYMBOL_USCORE' => 1, + 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, + '_LTDL_SETUP' => 1, + 'AC_LIBTOOL_COMPILER_OPTION' => 1, + 'AC_DISABLE_STATIC' => 1, + 'AC_PATH_TOOL_PREFIX' => 1, + 'LT_LANG' => 1, + 'LT_OUTPUT' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'm4_pattern_forbid' => 1, + 'LT_AC_PROG_GCJ' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'LT_PROG_GCJ' => 1, + 'AM_MISSING_PROG' => 1, + 'LTVERSION_VERSION' => 1, 'm4_pattern_allow' => 1, - 'LT_SYS_DLOPEN_DEPLIBS' => 1, - 'AC_DEFUN' => 1, - 'AC_LIBTOOL_PROG_CC_C_O' => 1, + 'AM_PROG_CC_C_O' => 1, + 'AC_PROG_EGREP' => 1, + 'AM_MAKE_INCLUDE' => 1, + '_LT_PREPARE_SED_QUOTE_VARS' => 1, + '_LT_AC_LOCK' => 1, + 'LT_SYS_DLSEARCH_PATH' => 1, + '_LT_AC_LANG_GCJ' => 1, + 'LT_INIT' => 1, + 'AC_LTDL_DLSYM_USCORE' => 1, + '_LT_AC_LANG_RC_CONFIG' => 1, + 'AM_ENABLE_SHARED' => 1, + 'LT_SYS_MODULE_EXT' => 1, + '_LT_COMPILER_OPTION' => 1, + 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, + '_LT_AC_LANG_C_CONFIG' => 1, + '_LT_AC_LANG_GCJ_CONFIG' => 1, + 'AM_ENABLE_STATIC' => 1, + 'AC_ENABLE_STATIC' => 1, + 'AC_LIBLTDL_CONVENIENCE' => 1, + 'AC_LIBTOOL_CXX' => 1, 'AC_LIBTOOL_RC' => 1, - '_LT_DLL_DEF_P' => 1, - 'AC_LIBTOOL_WIN32_DLL' => 1, - '_LTDL_SETUP' => 1, - 'AM_PROG_CC_C_O' => 1 + 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, + 'AC_ENABLE_SHARED' => 1, + 'AC_ENABLE_FAST_INSTALL' => 1, + 'AC_LTDL_OBJDIR' => 1, + '_LT_LINKER_OPTION' => 1, + 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, + 'AM_SET_LEADING_DOT' => 1, + 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, + 'AC_LTDL_SHLIBEXT' => 1, + 'AC_LTDL_SYSSEARCHPATH' => 1, + 'LT_PATH_NM' => 1, + '_LT_LIBOBJ' => 1, + '_LT_PROG_ECHO_BACKSLASH' => 1 } ], 'Autom4te::Request' ), bless( [ @@ -541,69 +541,69 @@ 'configure.ac' ], { - 'AM_POT_TOOLS' => 1, - 'AM_GNU_GETTEXT' => 1, - 'AM_PROG_MKDIR_P' => 1, - '_AM_SUBST_NOTMAKE' => 1, - 'AC_CONFIG_FILES' => 1, - 'AC_SUBST_TRACE' => 1, - 'AM_EXTRA_RECURSIVE_TARGETS' => 1, - 'IT_PROG_INTLTOOL' => 1, - 'AM_PROG_CC_C_O' => 1, - 'm4_include' => 1, + 'AM_MAKEFILE_INCLUDE' => 1, 'AC_CONFIG_LINKS' => 1, - 'AM_NLS' => 1, - 'AM_ENABLE_MULTILIB' => 1, - 'AM_XGETTEXT_OPTION' => 1, - 'AC_LIBSOURCE' => 1, + '_AM_COND_ELSE' => 1, + 'AC_CANONICAL_BUILD' => 1, 'AC_INIT' => 1, - 'm4_pattern_forbid' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, - '_AM_COND_ENDIF' => 1, - 'AM_PATH_GUILE' => 1, + 'AM_GNU_GETTEXT' => 1, 'LT_SUPPORTED_TAG' => 1, - 'm4_sinclude' => 1, - 'AM_SILENT_RULES' => 1, - '_AM_COND_IF' => 1, - 'm4_pattern_allow' => 1, - 'AC_CONFIG_HEADERS' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, 'AM_PROG_AR' => 1, - 'AM_MAKEFILE_INCLUDE' => 1, - 'AM_AUTOMAKE_VERSION' => 1, + 'AC_CONFIG_AUX_DIR' => 1, + 'AM_NLS' => 1, + 'AM_PROG_LIBTOOL' => 1, + '_AM_COND_IF' => 1, + 'AM_EXTRA_RECURSIVE_TARGETS' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + '_AM_COND_ENDIF' => 1, 'AM_PROG_MOC' => 1, - '_AM_COND_ELSE' => 1, - 'AM_CONDITIONAL' => 1, + 'AC_CONFIG_SUBDIRS' => 1, + 'IT_PROG_INTLTOOL' => 1, + 'AC_CANONICAL_SYSTEM' => 1, '_m4_warn' => 1, - 'AC_FC_PP_DEFINE' => 1, - 'sinclude' => 1, + 'AC_CONFIG_LIBOBJ_DIR' => 1, '_LT_AC_TAGCONFIG' => 1, - 'AM_PROG_LIBTOOL' => 1, + 'AM_PROG_MKDIR_P' => 1, + 'AC_CONFIG_FILES' => 1, + 'AM_ENABLE_MULTILIB' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'm4_include' => 1, + 'm4_pattern_forbid' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'AC_FC_PP_DEFINE' => 1, + 'AC_REQUIRE_AUX_FILE' => 1, + 'AC_FC_SRCEXT' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'include' => 1, 'AC_CANONICAL_TARGET' => 1, + 'AM_PATH_GUILE' => 1, '_AM_MAKEFILE_INCLUDE' => 1, - 'LT_INIT' => 1, - 'AC_CANONICAL_HOST' => 1, - 'AM_MAINTAINER_MODE' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'AC_CONFIG_SUBDIRS' => 1, + 'AC_DEFINE_TRACE_LITERAL' => 1, 'AC_FC_PP_SRCEXT' => 1, - 'AC_FC_FREEFORM' => 1, - 'AC_CANONICAL_SYSTEM' => 1, - 'AM_PROG_F77_C_O' => 1, + 'm4_pattern_allow' => 1, + 'AM_PROG_CC_C_O' => 1, + 'AC_CONFIG_HEADERS' => 1, + 'AM_CONDITIONAL' => 1, + 'AM_PROG_CXX_C_O' => 1, 'GTK_DOC_CHECK' => 1, - 'AC_CONFIG_AUX_DIR' => 1, - 'AC_CONFIG_LIBOBJ_DIR' => 1, 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, - 'include' => 1, + 'AM_XGETTEXT_OPTION' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'm4_sinclude' => 1, + 'AC_FC_FREEFORM' => 1, + 'LT_INIT' => 1, + 'sinclude' => 1, + 'AM_POT_TOOLS' => 1, + 'AC_SUBST' => 1, + 'AC_CANONICAL_HOST' => 1, + 'AM_PROG_F77_C_O' => 1, 'AM_PROG_FC_C_O' => 1, - 'AC_FC_SRCEXT' => 1, - 'AC_REQUIRE_AUX_FILE' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AC_DEFINE_TRACE_LITERAL' => 1, - 'AC_CANONICAL_BUILD' => 1, + 'AM_SILENT_RULES' => 1, + '_AM_SUBST_NOTMAKE' => 1, 'AH_OUTPUT' => 1, - 'AC_SUBST' => 1, - 'AM_PROG_CXX_C_O' => 1 + 'AM_MAINTAINER_MODE' => 1, + 'AC_LIBSOURCE' => 1, + 'AC_SUBST_TRACE' => 1 } ], 'Autom4te::Request' ) ); diff --git a/utils/asymptote/gc/compile b/utils/asymptote/gc/compile new file mode 120000 index 0000000000..b6af40053a --- /dev/null +++ b/utils/asymptote/gc/compile @@ -0,0 +1 @@ +/usr/share/automake-1.16/compile \ No newline at end of file diff --git a/utils/asymptote/gc/config.guess b/utils/asymptote/gc/config.guess new file mode 100755 index 0000000000..e7a6fe3e6d --- /dev/null +++ b/utils/asymptote/gc/config.guess @@ -0,0 +1,1774 @@ +#!/usr/bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2023 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2023-06-23' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.guess +# +# Please send patches to . + + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system '$me' is run on. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2023 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try '$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +# Just in case it came from the environment. +GUESS= + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, 'CC_FOR_BUILD' used to be named 'HOST_CC'. We still +# use 'HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +tmp= +# shellcheck disable=SC2172 +trap 'test -z "$tmp" || rm -fr "$tmp"' 0 1 2 13 15 + +set_cc_for_build() { + # prevent multiple calls if $tmp is already set + test "$tmp" && return 0 + : "${TMPDIR=/tmp}" + # shellcheck disable=SC2039,SC3028 + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir "$tmp" 2>/dev/null) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir "$tmp" 2>/dev/null) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } + dummy=$tmp/dummy + case ${CC_FOR_BUILD-},${HOST_CC-},${CC-} in + ,,) echo "int x;" > "$dummy.c" + for driver in cc gcc c89 c99 ; do + if ($driver -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD=$driver + break + fi + done + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; + esac +} + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if test -f /.attbin/uname ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case $UNAME_SYSTEM in +Linux|GNU|GNU/*) + LIBC=unknown + + set_cc_for_build + cat <<-EOF > "$dummy.c" + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #elif defined(__GLIBC__) + LIBC=gnu + #else + #include + /* First heuristic to detect musl libc. */ + #ifdef __DEFINED_va_list + LIBC=musl + #endif + #endif + EOF + cc_set_libc=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + eval "$cc_set_libc" + + # Second heuristic to detect musl libc. + if [ "$LIBC" = unknown ] && + command -v ldd >/dev/null && + ldd --version 2>&1 | grep -q ^musl; then + LIBC=musl + fi + + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + if [ "$LIBC" = unknown ]; then + LIBC=gnu + fi + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case $UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + /usr/sbin/sysctl -n hw.machine_arch 2>/dev/null || \ + echo unknown)` + case $UNAME_MACHINE_ARCH in + aarch64eb) machine=aarch64_be-unknown ;; + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; + *) machine=$UNAME_MACHINE_ARCH-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case $UNAME_MACHINE_ARCH in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case $UNAME_MACHINE_ARCH in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case $UNAME_VERSION in + Debian*) + release='-gnu' + ;; + *) + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + GUESS=$machine-${os}${release}${abi-} + ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-bitrig$UNAME_RELEASE + ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-openbsd$UNAME_RELEASE + ;; + *:SecBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/SecBSD.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-secbsd$UNAME_RELEASE + ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + GUESS=$UNAME_MACHINE_ARCH-unknown-libertybsd$UNAME_RELEASE + ;; + *:MidnightBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-midnightbsd$UNAME_RELEASE + ;; + *:ekkoBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-ekkobsd$UNAME_RELEASE + ;; + *:SolidBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-solidbsd$UNAME_RELEASE + ;; + *:OS108:*:*) + GUESS=$UNAME_MACHINE-unknown-os108_$UNAME_RELEASE + ;; + macppc:MirBSD:*:*) + GUESS=powerpc-unknown-mirbsd$UNAME_RELEASE + ;; + *:MirBSD:*:*) + GUESS=$UNAME_MACHINE-unknown-mirbsd$UNAME_RELEASE + ;; + *:Sortix:*:*) + GUESS=$UNAME_MACHINE-unknown-sortix + ;; + *:Twizzler:*:*) + GUESS=$UNAME_MACHINE-unknown-twizzler + ;; + *:Redox:*:*) + GUESS=$UNAME_MACHINE-unknown-redox + ;; + mips:OSF1:*.*) + GUESS=mips-dec-osf1 + ;; + alpha:OSF1:*:*) + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + trap '' 0 + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case $ALPHA_CPU_TYPE in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + OSF_REL=`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + GUESS=$UNAME_MACHINE-dec-osf$OSF_REL + ;; + Amiga*:UNIX_System_V:4.0:*) + GUESS=m68k-unknown-sysv4 + ;; + *:[Aa]miga[Oo][Ss]:*:*) + GUESS=$UNAME_MACHINE-unknown-amigaos + ;; + *:[Mm]orph[Oo][Ss]:*:*) + GUESS=$UNAME_MACHINE-unknown-morphos + ;; + *:OS/390:*:*) + GUESS=i370-ibm-openedition + ;; + *:z/VM:*:*) + GUESS=s390-ibm-zvmoe + ;; + *:OS400:*:*) + GUESS=powerpc-ibm-os400 + ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + GUESS=arm-acorn-riscix$UNAME_RELEASE + ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + GUESS=arm-unknown-riscos + ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + GUESS=hppa1.1-hitachi-hiuxmpp + ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + case `(/bin/universe) 2>/dev/null` in + att) GUESS=pyramid-pyramid-sysv3 ;; + *) GUESS=pyramid-pyramid-bsd ;; + esac + ;; + NILE*:*:*:dcosx) + GUESS=pyramid-pyramid-svr4 + ;; + DRS?6000:unix:4.0:6*) + GUESS=sparc-icl-nx6 + ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) GUESS=sparc-icl-nx7 ;; + esac + ;; + s390x:SunOS:*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$UNAME_MACHINE-ibm-solaris2$SUN_REL + ;; + sun4H:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-hal-solaris2$SUN_REL + ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris2$SUN_REL + ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + GUESS=i386-pc-auroraux$UNAME_RELEASE + ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + set_cc_for_build + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -m64 -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=$SUN_ARCH-pc-solaris2$SUN_REL + ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=sparc-sun-solaris3$SUN_REL + ;; + sun4*:SunOS:*:*) + case `/usr/bin/arch -k` in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like '4.1.3-JL'. + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/'` + GUESS=sparc-sun-sunos$SUN_REL + ;; + sun3*:SunOS:*:*) + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case `/bin/arch` in + sun3) + GUESS=m68k-sun-sunos$UNAME_RELEASE + ;; + sun4) + GUESS=sparc-sun-sunos$UNAME_RELEASE + ;; + esac + ;; + aushp:SunOS:*:*) + GUESS=sparc-auspex-sunos$UNAME_RELEASE + ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + GUESS=m68k-atari-mint$UNAME_RELEASE + ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + GUESS=m68k-milan-mint$UNAME_RELEASE + ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + GUESS=m68k-hades-mint$UNAME_RELEASE + ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + GUESS=m68k-unknown-mint$UNAME_RELEASE + ;; + m68k:machten:*:*) + GUESS=m68k-apple-machten$UNAME_RELEASE + ;; + powerpc:machten:*:*) + GUESS=powerpc-apple-machten$UNAME_RELEASE + ;; + RISC*:Mach:*:*) + GUESS=mips-dec-mach_bsd4.3 + ;; + RISC*:ULTRIX:*:*) + GUESS=mips-dec-ultrix$UNAME_RELEASE + ;; + VAX*:ULTRIX*:*:*) + GUESS=vax-dec-ultrix$UNAME_RELEASE + ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + GUESS=clipper-intergraph-clix$UNAME_RELEASE + ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && + { echo "$SYSTEM_NAME"; exit; } + GUESS=mips-mips-riscos$UNAME_RELEASE + ;; + Motorola:PowerMAX_OS:*:*) + GUESS=powerpc-motorola-powermax + ;; + Motorola:*:4.3:PL8-*) + GUESS=powerpc-harris-powermax + ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + GUESS=powerpc-harris-powermax + ;; + Night_Hawk:Power_UNIX:*:*) + GUESS=powerpc-harris-powerunix + ;; + m88k:CX/UX:7*:*) + GUESS=m88k-harris-cxux7 + ;; + m88k:*:4*:R4*) + GUESS=m88k-motorola-sysv4 + ;; + m88k:*:3*:R3*) + GUESS=m88k-motorola-sysv3 + ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110 + then + if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \ + test "$TARGET_BINARY_INTERFACE"x = x + then + GUESS=m88k-dg-dgux$UNAME_RELEASE + else + GUESS=m88k-dg-dguxbcs$UNAME_RELEASE + fi + else + GUESS=i586-dg-dgux$UNAME_RELEASE + fi + ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + GUESS=m88k-dolphin-sysv3 + ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + GUESS=m88k-motorola-sysv3 + ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + GUESS=m88k-tektronix-sysv3 + ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + GUESS=m68k-tektronix-bsd + ;; + *:IRIX*:*:*) + IRIX_REL=`echo "$UNAME_RELEASE" | sed -e 's/-/_/g'` + GUESS=mips-sgi-irix$IRIX_REL + ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + GUESS=romp-ibm-aix # uname -m gives an 8 hex-code CPU id + ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + GUESS=i386-ibm-aix + ;; + ia64:AIX:*:*) + if test -x /usr/bin/oslevel ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE + fi + GUESS=$UNAME_MACHINE-ibm-aix$IBM_REV + ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` + then + GUESS=$SYSTEM_NAME + else + GUESS=rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + GUESS=rs6000-ibm-aix3.2.4 + else + GUESS=rs6000-ibm-aix3.2 + fi + ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if test -x /usr/bin/lslpp ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | \ + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV=$UNAME_VERSION.$UNAME_RELEASE + fi + GUESS=$IBM_ARCH-ibm-aix$IBM_REV + ;; + *:AIX:*:*) + GUESS=rs6000-ibm-aix + ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + GUESS=romp-ibm-bsd4.4 + ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + GUESS=romp-ibm-bsd$UNAME_RELEASE # 4.3 with uname added to + ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + GUESS=rs6000-bull-bosx + ;; + DPX/2?00:B.O.S.:*:*) + GUESS=m68k-bull-sysv3 + ;; + 9000/[34]??:4.3bsd:1.*:*) + GUESS=m68k-hp-bsd + ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + GUESS=m68k-hp-bsd4.4 + ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + case $UNAME_MACHINE in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if test -x /usr/bin/getconf; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case $sc_cpu_version in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case $sc_kernel_bits in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if test "$HP_ARCH" = ""; then + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if test "$HP_ARCH" = hppa2.0w + then + set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + GUESS=$HP_ARCH-hp-hpux$HPUX_REV + ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*.[0B]*//'` + GUESS=ia64-hp-hpux$HPUX_REV + ;; + 3050*:HI-UX:*:*) + set_cc_for_build + sed 's/^ //' << EOF > "$dummy.c" + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + GUESS=unknown-hitachi-hiuxwe2 + ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) + GUESS=hppa1.1-hp-bsd + ;; + 9000/8??:4.3bsd:*:*) + GUESS=hppa1.0-hp-bsd + ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + GUESS=hppa1.0-hp-mpeix + ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) + GUESS=hppa1.1-hp-osf + ;; + hp8??:OSF1:*:*) + GUESS=hppa1.0-hp-osf + ;; + i*86:OSF1:*:*) + if test -x /usr/sbin/sysversion ; then + GUESS=$UNAME_MACHINE-unknown-osf1mk + else + GUESS=$UNAME_MACHINE-unknown-osf1 + fi + ;; + parisc*:Lites*:*:*) + GUESS=hppa1.1-hp-lites + ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + GUESS=c1-convex-bsd + ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + GUESS=c34-convex-bsd + ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + GUESS=c38-convex-bsd + ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + GUESS=c4-convex-bsd + ;; + CRAY*Y-MP:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=ymp-cray-unicos$CRAY_REL + ;; + CRAY*[A-Z]90:*:*:*) + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=t90-cray-unicos$CRAY_REL + ;; + CRAY*T3E:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=alphaev5-cray-unicosmk$CRAY_REL + ;; + CRAY*SV1:*:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=sv1-cray-unicos$CRAY_REL + ;; + *:UNICOS/mp:*:*) + CRAY_REL=`echo "$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/'` + GUESS=craynv-cray-unicosmp$CRAY_REL + ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` + GUESS=${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + GUESS=sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL} + ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + GUESS=$UNAME_MACHINE-pc-bsdi$UNAME_RELEASE + ;; + sparc*:BSD/OS:*:*) + GUESS=sparc-unknown-bsdi$UNAME_RELEASE + ;; + *:BSD/OS:*:*) + GUESS=$UNAME_MACHINE-unknown-bsdi$UNAME_RELEASE + ;; + arm:FreeBSD:*:*) + UNAME_PROCESSOR=`uname -p` + set_cc_for_build + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabi + else + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL-gnueabihf + fi + ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case $UNAME_PROCESSOR in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + FREEBSD_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_PROCESSOR-unknown-freebsd$FREEBSD_REL + ;; + i*:CYGWIN*:*) + GUESS=$UNAME_MACHINE-pc-cygwin + ;; + *:MINGW64*:*) + GUESS=$UNAME_MACHINE-pc-mingw64 + ;; + *:MINGW*:*) + GUESS=$UNAME_MACHINE-pc-mingw32 + ;; + *:MSYS*:*) + GUESS=$UNAME_MACHINE-pc-msys + ;; + i*:PW*:*) + GUESS=$UNAME_MACHINE-pc-pw32 + ;; + *:SerenityOS:*:*) + GUESS=$UNAME_MACHINE-pc-serenity + ;; + *:Interix*:*) + case $UNAME_MACHINE in + x86) + GUESS=i586-pc-interix$UNAME_RELEASE + ;; + authenticamd | genuineintel | EM64T) + GUESS=x86_64-unknown-interix$UNAME_RELEASE + ;; + IA64) + GUESS=ia64-unknown-interix$UNAME_RELEASE + ;; + esac ;; + i*:UWIN*:*) + GUESS=$UNAME_MACHINE-pc-uwin + ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + GUESS=x86_64-pc-cygwin + ;; + prep*:SunOS:5.*:*) + SUN_REL=`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'` + GUESS=powerpcle-unknown-solaris2$SUN_REL + ;; + *:GNU:*:*) + # the GNU system + GNU_ARCH=`echo "$UNAME_MACHINE" | sed -e 's,[-/].*$,,'` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's,/.*$,,'` + GUESS=$GNU_ARCH-unknown-$LIBC$GNU_REL + ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + GNU_SYS=`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"` + GNU_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-$GNU_SYS$GNU_REL-$LIBC + ;; + x86_64:[Mm]anagarm:*:*|i?86:[Mm]anagarm:*:*) + GUESS="$UNAME_MACHINE-pc-managarm-mlibc" + ;; + *:[Mm]anagarm:*:*) + GUESS="$UNAME_MACHINE-unknown-managarm-mlibc" + ;; + *:Minix:*:*) + GUESS=$UNAME_MACHINE-unknown-minix + ;; + aarch64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' /proc/cpuinfo 2>/dev/null` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arc:Linux:*:* | arceb:Linux:*:* | arc32:Linux:*:* | arc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + arm*:Linux:*:*) + set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabi + else + GUESS=$UNAME_MACHINE-unknown-linux-${LIBC}eabihf + fi + fi + ;; + avr32*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + cris:Linux:*:*) + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; + crisv32:Linux:*:*) + GUESS=$UNAME_MACHINE-axis-linux-$LIBC + ;; + e2k:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + frv:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + hexagon:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + i*86:Linux:*:*) + GUESS=$UNAME_MACHINE-pc-linux-$LIBC + ;; + ia64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + k1om:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + loongarch32:Linux:*:* | loongarch64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + m32r*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + m68*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + mips:Linux:*:* | mips64:Linux:*:*) + set_cc_for_build + IS_GLIBC=0 + test x"${LIBC}" = xgnu && IS_GLIBC=1 + sed 's/^ //' << EOF > "$dummy.c" + #undef CPU + #undef mips + #undef mipsel + #undef mips64 + #undef mips64el + #if ${IS_GLIBC} && defined(_ABI64) + LIBCABI=gnuabi64 + #else + #if ${IS_GLIBC} && defined(_ABIN32) + LIBCABI=gnuabin32 + #else + LIBCABI=${LIBC} + #endif + #endif + + #if ${IS_GLIBC} && defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa64r6 + #else + #if ${IS_GLIBC} && !defined(__mips64) && defined(__mips_isa_rev) && __mips_isa_rev>=6 + CPU=mipsisa32r6 + #else + #if defined(__mips64) + CPU=mips64 + #else + CPU=mips + #endif + #endif + #endif + + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + MIPS_ENDIAN=el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + MIPS_ENDIAN= + #else + MIPS_ENDIAN= + #endif + #endif +EOF + cc_set_vars=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU\|^MIPS_ENDIAN\|^LIBCABI'` + eval "$cc_set_vars" + test "x$CPU" != x && { echo "$CPU${MIPS_ENDIAN}-unknown-linux-$LIBCABI"; exit; } + ;; + mips64el:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + openrisc*:Linux:*:*) + GUESS=or1k-unknown-linux-$LIBC + ;; + or32:Linux:*:* | or1k*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + padre:Linux:*:*) + GUESS=sparc-unknown-linux-$LIBC + ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + GUESS=hppa64-unknown-linux-$LIBC + ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) GUESS=hppa1.1-unknown-linux-$LIBC ;; + PA8*) GUESS=hppa2.0-unknown-linux-$LIBC ;; + *) GUESS=hppa-unknown-linux-$LIBC ;; + esac + ;; + ppc64:Linux:*:*) + GUESS=powerpc64-unknown-linux-$LIBC + ;; + ppc:Linux:*:*) + GUESS=powerpc-unknown-linux-$LIBC + ;; + ppc64le:Linux:*:*) + GUESS=powerpc64le-unknown-linux-$LIBC + ;; + ppcle:Linux:*:*) + GUESS=powerpcle-unknown-linux-$LIBC + ;; + riscv32:Linux:*:* | riscv32be:Linux:*:* | riscv64:Linux:*:* | riscv64be:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + s390:Linux:*:* | s390x:Linux:*:*) + GUESS=$UNAME_MACHINE-ibm-linux-$LIBC + ;; + sh64*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + sh*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + tile*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + vax:Linux:*:*) + GUESS=$UNAME_MACHINE-dec-linux-$LIBC + ;; + x86_64:Linux:*:*) + set_cc_for_build + CPU=$UNAME_MACHINE + LIBCABI=$LIBC + if test "$CC_FOR_BUILD" != no_compiler_found; then + ABI=64 + sed 's/^ //' << EOF > "$dummy.c" + #ifdef __i386__ + ABI=x86 + #else + #ifdef __ILP32__ + ABI=x32 + #endif + #endif +EOF + cc_set_abi=`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^ABI' | sed 's, ,,g'` + eval "$cc_set_abi" + case $ABI in + x86) CPU=i686 ;; + x32) LIBCABI=${LIBC}x32 ;; + esac + fi + GUESS=$CPU-pc-linux-$LIBCABI + ;; + xtensa*:Linux:*:*) + GUESS=$UNAME_MACHINE-unknown-linux-$LIBC + ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + GUESS=i386-sequent-sysv4 + ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + GUESS=$UNAME_MACHINE-pc-sysv4.2uw$UNAME_VERSION + ;; + i*86:OS/2:*:*) + # If we were able to find 'uname', then EMX Unix compatibility + # is probably installed. + GUESS=$UNAME_MACHINE-pc-os2-emx + ;; + i*86:XTS-300:*:STOP) + GUESS=$UNAME_MACHINE-unknown-stop + ;; + i*86:atheos:*:*) + GUESS=$UNAME_MACHINE-unknown-atheos + ;; + i*86:syllable:*:*) + GUESS=$UNAME_MACHINE-pc-syllable + ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + GUESS=i386-unknown-lynxos$UNAME_RELEASE + ;; + i*86:*DOS:*:*) + GUESS=$UNAME_MACHINE-pc-msdosdjgpp + ;; + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + GUESS=$UNAME_MACHINE-univel-sysv$UNAME_REL + else + GUESS=$UNAME_MACHINE-pc-sysv$UNAME_REL + fi + ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + GUESS=$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + GUESS=$UNAME_MACHINE-pc-sco$UNAME_REL + else + GUESS=$UNAME_MACHINE-pc-sysv32 + fi + ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + GUESS=i586-pc-msdosdjgpp + ;; + Intel:Mach:3*:*) + GUESS=i386-pc-mach3 + ;; + paragon:*:*:*) + GUESS=i860-intel-osf1 + ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + GUESS=i860-stardent-sysv$UNAME_RELEASE # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + GUESS=i860-unknown-sysv$UNAME_RELEASE # Unknown i860-SVR4 + fi + ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + GUESS=m68010-convergent-sysv + ;; + mc68k:UNIX:SYSTEM5:3.51m) + GUESS=m68k-convergent-sysv + ;; + M680?0:D-NIX:5.3:*) + GUESS=m68k-diab-dnix + ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + GUESS=m68k-unknown-lynxos$UNAME_RELEASE + ;; + mc68030:UNIX_System_V:4.*:*) + GUESS=m68k-atari-sysv4 + ;; + TSUNAMI:LynxOS:2.*:*) + GUESS=sparc-unknown-lynxos$UNAME_RELEASE + ;; + rs6000:LynxOS:2.*:*) + GUESS=rs6000-unknown-lynxos$UNAME_RELEASE + ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + GUESS=powerpc-unknown-lynxos$UNAME_RELEASE + ;; + SM[BE]S:UNIX_SV:*:*) + GUESS=mips-dde-sysv$UNAME_RELEASE + ;; + RM*:ReliantUNIX-*:*:*) + GUESS=mips-sni-sysv4 + ;; + RM*:SINIX-*:*:*) + GUESS=mips-sni-sysv4 + ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + GUESS=$UNAME_MACHINE-sni-sysv4 + else + GUESS=ns32k-sni-sysv + fi + ;; + PENTIUM:*:4.0*:*) # Unisys 'ClearPath HMP IX 4000' SVR4/MP effort + # says + GUESS=i586-unisys-sysv4 + ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + GUESS=hppa1.1-stratus-sysv4 + ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + GUESS=i860-stratus-sysv4 + ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + GUESS=$UNAME_MACHINE-stratus-vos + ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + GUESS=hppa1.1-stratus-vos + ;; + mc68*:A/UX:*:*) + GUESS=m68k-apple-aux$UNAME_RELEASE + ;; + news*:NEWS-OS:6*:*) + GUESS=mips-sony-newsos6 + ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if test -d /usr/nec; then + GUESS=mips-nec-sysv$UNAME_RELEASE + else + GUESS=mips-unknown-sysv$UNAME_RELEASE + fi + ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + GUESS=powerpc-be-beos + ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + GUESS=powerpc-apple-beos + ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + GUESS=i586-pc-beos + ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + GUESS=i586-pc-haiku + ;; + ppc:Haiku:*:*) # Haiku running on Apple PowerPC + GUESS=powerpc-apple-haiku + ;; + *:Haiku:*:*) # Haiku modern gcc (not bound by BeOS compat) + GUESS=$UNAME_MACHINE-unknown-haiku + ;; + SX-4:SUPER-UX:*:*) + GUESS=sx4-nec-superux$UNAME_RELEASE + ;; + SX-5:SUPER-UX:*:*) + GUESS=sx5-nec-superux$UNAME_RELEASE + ;; + SX-6:SUPER-UX:*:*) + GUESS=sx6-nec-superux$UNAME_RELEASE + ;; + SX-7:SUPER-UX:*:*) + GUESS=sx7-nec-superux$UNAME_RELEASE + ;; + SX-8:SUPER-UX:*:*) + GUESS=sx8-nec-superux$UNAME_RELEASE + ;; + SX-8R:SUPER-UX:*:*) + GUESS=sx8r-nec-superux$UNAME_RELEASE + ;; + SX-ACE:SUPER-UX:*:*) + GUESS=sxace-nec-superux$UNAME_RELEASE + ;; + Power*:Rhapsody:*:*) + GUESS=powerpc-apple-rhapsody$UNAME_RELEASE + ;; + *:Rhapsody:*:*) + GUESS=$UNAME_MACHINE-apple-rhapsody$UNAME_RELEASE + ;; + arm64:Darwin:*:*) + GUESS=aarch64-apple-darwin$UNAME_RELEASE + ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` + case $UNAME_PROCESSOR in + unknown) UNAME_PROCESSOR=powerpc ;; + esac + if command -v xcode-select > /dev/null 2> /dev/null && \ + ! xcode-select --print-path > /dev/null 2> /dev/null ; then + # Avoid executing cc if there is no toolchain installed as + # cc will be a stub that puts up a graphical alert + # prompting the user to install developer tools. + CC_FOR_BUILD=no_compiler_found + else + set_cc_for_build + fi + if test "$CC_FOR_BUILD" != no_compiler_found; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # uname -m returns i386 or x86_64 + UNAME_PROCESSOR=$UNAME_MACHINE + fi + GUESS=$UNAME_PROCESSOR-apple-darwin$UNAME_RELEASE + ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + GUESS=$UNAME_PROCESSOR-$UNAME_MACHINE-nto-qnx$UNAME_RELEASE + ;; + *:QNX:*:4*) + GUESS=i386-pc-qnx + ;; + NEO-*:NONSTOP_KERNEL:*:*) + GUESS=neo-tandem-nsk$UNAME_RELEASE + ;; + NSE-*:NONSTOP_KERNEL:*:*) + GUESS=nse-tandem-nsk$UNAME_RELEASE + ;; + NSR-*:NONSTOP_KERNEL:*:*) + GUESS=nsr-tandem-nsk$UNAME_RELEASE + ;; + NSV-*:NONSTOP_KERNEL:*:*) + GUESS=nsv-tandem-nsk$UNAME_RELEASE + ;; + NSX-*:NONSTOP_KERNEL:*:*) + GUESS=nsx-tandem-nsk$UNAME_RELEASE + ;; + *:NonStop-UX:*:*) + GUESS=mips-compaq-nonstopux + ;; + BS2000:POSIX*:*:*) + GUESS=bs2000-siemens-sysv + ;; + DS/*:UNIX_System_V:*:*) + GUESS=$UNAME_MACHINE-$UNAME_SYSTEM-$UNAME_RELEASE + ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "${cputype-}" = 386; then + UNAME_MACHINE=i386 + elif test "x${cputype-}" != x; then + UNAME_MACHINE=$cputype + fi + GUESS=$UNAME_MACHINE-unknown-plan9 + ;; + *:TOPS-10:*:*) + GUESS=pdp10-unknown-tops10 + ;; + *:TENEX:*:*) + GUESS=pdp10-unknown-tenex + ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + GUESS=pdp10-dec-tops20 + ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + GUESS=pdp10-xkl-tops20 + ;; + *:TOPS-20:*:*) + GUESS=pdp10-unknown-tops20 + ;; + *:ITS:*:*) + GUESS=pdp10-unknown-its + ;; + SEI:*:*:SEIUX) + GUESS=mips-sei-seiux$UNAME_RELEASE + ;; + *:DragonFly:*:*) + DRAGONFLY_REL=`echo "$UNAME_RELEASE" | sed -e 's/[-(].*//'` + GUESS=$UNAME_MACHINE-unknown-dragonfly$DRAGONFLY_REL + ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case $UNAME_MACHINE in + A*) GUESS=alpha-dec-vms ;; + I*) GUESS=ia64-dec-vms ;; + V*) GUESS=vax-dec-vms ;; + esac ;; + *:XENIX:*:SysV) + GUESS=i386-pc-xenix + ;; + i*86:skyos:*:*) + SKYOS_REL=`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'` + GUESS=$UNAME_MACHINE-pc-skyos$SKYOS_REL + ;; + i*86:rdos:*:*) + GUESS=$UNAME_MACHINE-pc-rdos + ;; + i*86:Fiwix:*:*) + GUESS=$UNAME_MACHINE-pc-fiwix + ;; + *:AROS:*:*) + GUESS=$UNAME_MACHINE-unknown-aros + ;; + x86_64:VMkernel:*:*) + GUESS=$UNAME_MACHINE-unknown-esx + ;; + amd64:Isilon\ OneFS:*:*) + GUESS=x86_64-unknown-onefs + ;; + *:Unleashed:*:*) + GUESS=$UNAME_MACHINE-unknown-unleashed$UNAME_RELEASE + ;; +esac + +# Do we have a guess based on uname results? +if test "x$GUESS" != x; then + echo "$GUESS" + exit +fi + +# No uname command or uname output not recognized. +set_cc_for_build +cat > "$dummy.c" < +#include +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined (vax) || defined (__vax) || defined (__vax__) || defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#include +#if defined(_SIZE_T_) || defined(SIGLOST) +#include +#endif +#endif +#endif +main () +{ +#if defined (sony) +#if defined (MIPSEB) + /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, + I don't know.... */ + printf ("mips-sony-bsd\n"); exit (0); +#else +#include + printf ("m68k-sony-newsos%s\n", +#ifdef NEWSOS4 + "4" +#else + "" +#endif + ); exit (0); +#endif +#endif + +#if defined (NeXT) +#if !defined (__ARCHITECTURE__) +#define __ARCHITECTURE__ "m68k" +#endif + int version; + version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; + if (version < 4) + printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); + else + printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); + exit (0); +#endif + +#if defined (MULTIMAX) || defined (n16) +#if defined (UMAXV) + printf ("ns32k-encore-sysv\n"); exit (0); +#else +#if defined (CMU) + printf ("ns32k-encore-mach\n"); exit (0); +#else + printf ("ns32k-encore-bsd\n"); exit (0); +#endif +#endif +#endif + +#if defined (__386BSD__) + printf ("i386-pc-bsd\n"); exit (0); +#endif + +#if defined (sequent) +#if defined (i386) + printf ("i386-sequent-dynix\n"); exit (0); +#endif +#if defined (ns32000) + printf ("ns32k-sequent-dynix\n"); exit (0); +#endif +#endif + +#if defined (_SEQUENT_) + struct utsname un; + + uname(&un); + if (strncmp(un.version, "V2", 2) == 0) { + printf ("i386-sequent-ptx2\n"); exit (0); + } + if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ + printf ("i386-sequent-ptx1\n"); exit (0); + } + printf ("i386-sequent-ptx\n"); exit (0); +#endif + +#if defined (vax) +#if !defined (ultrix) +#include +#if defined (BSD) +#if BSD == 43 + printf ("vax-dec-bsd4.3\n"); exit (0); +#else +#if BSD == 199006 + printf ("vax-dec-bsd4.3reno\n"); exit (0); +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#endif +#else + printf ("vax-dec-bsd\n"); exit (0); +#endif +#else +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname un; + uname (&un); + printf ("vax-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("vax-dec-ultrix\n"); exit (0); +#endif +#endif +#endif +#if defined(ultrix) || defined(_ultrix) || defined(__ultrix) || defined(__ultrix__) +#if defined(mips) || defined(__mips) || defined(__mips__) || defined(MIPS) || defined(__MIPS__) +#if defined(_SIZE_T_) || defined(SIGLOST) + struct utsname *un; + uname (&un); + printf ("mips-dec-ultrix%s\n", un.release); exit (0); +#else + printf ("mips-dec-ultrix\n"); exit (0); +#endif +#endif +#endif + +#if defined (alliant) && defined (i860) + printf ("i860-alliant-bsd\n"); exit (0); +#endif + + exit (1); +} +EOF + +$CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + +# Apollos put the system type in the environment. +test -d /usr/apollo && { echo "$ISP-apollo-$SYSTYPE"; exit; } + +echo "$0: unable to guess system type" >&2 + +case $UNAME_MACHINE:$UNAME_SYSTEM in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 <&2 </dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" +EOF +fi + +exit 1 + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/utils/asymptote/gc/config.sub b/utils/asymptote/gc/config.sub new file mode 100755 index 0000000000..a6d99a0f15 --- /dev/null +++ b/utils/asymptote/gc/config.sub @@ -0,0 +1,1907 @@ +#!/usr/bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2023 Free Software Foundation, Inc. + +# shellcheck disable=SC2006,SC2268 # see below for rationale + +timestamp='2023-06-23' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +# The "shellcheck disable" line above the timestamp inhibits complaints +# about features and limitations of the classic Bourne shell that were +# superseded or lifted in POSIX. However, this script identifies a wide +# variety of pre-POSIX systems that do not have POSIX shells at all, and +# even some reasonably current systems (Solaris 10 as case-in-point) still +# have a pre-POSIX /bin/sh. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2023 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try '$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Split fields of configuration type +# shellcheck disable=SC2162 +saved_IFS=$IFS +IFS="-" read field1 field2 field3 field4 <&2 + exit 1 + ;; + *-*-*-*) + basic_machine=$field1-$field2 + basic_os=$field3-$field4 + ;; + *-*-*) + # Ambiguous whether COMPANY is present, or skipped and KERNEL-OS is two + # parts + maybe_os=$field2-$field3 + case $maybe_os in + nto-qnx* | linux-* | uclinux-uclibc* \ + | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \ + | netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \ + | storm-chaos* | os2-emx* | rtmk-nova* | managarm-*) + basic_machine=$field1 + basic_os=$maybe_os + ;; + android-linux) + basic_machine=$field1-unknown + basic_os=linux-android + ;; + *) + basic_machine=$field1-$field2 + basic_os=$field3 + ;; + esac + ;; + *-*) + # A lone config we happen to match not fitting any pattern + case $field1-$field2 in + decstation-3100) + basic_machine=mips-dec + basic_os= + ;; + *-*) + # Second component is usually, but not always the OS + case $field2 in + # Prevent following clause from handling this valid os + sun*os*) + basic_machine=$field1 + basic_os=$field2 + ;; + zephyr*) + basic_machine=$field1-unknown + basic_os=$field2 + ;; + # Manufacturers + dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \ + | att* | 7300* | 3300* | delta* | motorola* | sun[234]* \ + | unicom* | ibm* | next | hp | isi* | apollo | altos* \ + | convergent* | ncr* | news | 32* | 3600* | 3100* \ + | hitachi* | c[123]* | convex* | sun | crds | omron* | dg \ + | ultra | tti* | harris | dolphin | highlevel | gould \ + | cbm | ns | masscomp | apple | axis | knuth | cray \ + | microblaze* | sim | cisco \ + | oki | wec | wrs | winbond) + basic_machine=$field1-$field2 + basic_os= + ;; + *) + basic_machine=$field1 + basic_os=$field2 + ;; + esac + ;; + esac + ;; + *) + # Convert single-component short-hands not valid as part of + # multi-component configurations. + case $field1 in + 386bsd) + basic_machine=i386-pc + basic_os=bsd + ;; + a29khif) + basic_machine=a29k-amd + basic_os=udi + ;; + adobe68k) + basic_machine=m68010-adobe + basic_os=scout + ;; + alliant) + basic_machine=fx80-alliant + basic_os= + ;; + altos | altos3068) + basic_machine=m68k-altos + basic_os= + ;; + am29k) + basic_machine=a29k-none + basic_os=bsd + ;; + amdahl) + basic_machine=580-amdahl + basic_os=sysv + ;; + amiga) + basic_machine=m68k-unknown + basic_os= + ;; + amigaos | amigados) + basic_machine=m68k-unknown + basic_os=amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + basic_os=sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + basic_os=sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + basic_os=bsd + ;; + aros) + basic_machine=i386-pc + basic_os=aros + ;; + aux) + basic_machine=m68k-apple + basic_os=aux + ;; + balance) + basic_machine=ns32k-sequent + basic_os=dynix + ;; + blackfin) + basic_machine=bfin-unknown + basic_os=linux + ;; + cegcc) + basic_machine=arm-unknown + basic_os=cegcc + ;; + convex-c1) + basic_machine=c1-convex + basic_os=bsd + ;; + convex-c2) + basic_machine=c2-convex + basic_os=bsd + ;; + convex-c32) + basic_machine=c32-convex + basic_os=bsd + ;; + convex-c34) + basic_machine=c34-convex + basic_os=bsd + ;; + convex-c38) + basic_machine=c38-convex + basic_os=bsd + ;; + cray) + basic_machine=j90-cray + basic_os=unicos + ;; + crds | unos) + basic_machine=m68k-crds + basic_os= + ;; + da30) + basic_machine=m68k-da30 + basic_os= + ;; + decstation | pmax | pmin | dec3100 | decstatn) + basic_machine=mips-dec + basic_os= + ;; + delta88) + basic_machine=m88k-motorola + basic_os=sysv3 + ;; + dicos) + basic_machine=i686-pc + basic_os=dicos + ;; + djgpp) + basic_machine=i586-pc + basic_os=msdosdjgpp + ;; + ebmon29k) + basic_machine=a29k-amd + basic_os=ebmon + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + basic_os=ose + ;; + gmicro) + basic_machine=tron-gmicro + basic_os=sysv + ;; + go32) + basic_machine=i386-pc + basic_os=go32 + ;; + h8300hms) + basic_machine=h8300-hitachi + basic_os=hms + ;; + h8300xray) + basic_machine=h8300-hitachi + basic_os=xray + ;; + h8500hms) + basic_machine=h8500-hitachi + basic_os=hms + ;; + harris) + basic_machine=m88k-harris + basic_os=sysv3 + ;; + hp300 | hp300hpux) + basic_machine=m68k-hp + basic_os=hpux + ;; + hp300bsd) + basic_machine=m68k-hp + basic_os=bsd + ;; + hppaosf) + basic_machine=hppa1.1-hp + basic_os=osf + ;; + hppro) + basic_machine=hppa1.1-hp + basic_os=proelf + ;; + i386mach) + basic_machine=i386-mach + basic_os=mach + ;; + isi68 | isi) + basic_machine=m68k-isi + basic_os=sysv + ;; + m68knommu) + basic_machine=m68k-unknown + basic_os=linux + ;; + magnum | m3230) + basic_machine=mips-mips + basic_os=sysv + ;; + merlin) + basic_machine=ns32k-utek + basic_os=sysv + ;; + mingw64) + basic_machine=x86_64-pc + basic_os=mingw64 + ;; + mingw32) + basic_machine=i686-pc + basic_os=mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + basic_os=mingw32ce + ;; + monitor) + basic_machine=m68k-rom68k + basic_os=coff + ;; + morphos) + basic_machine=powerpc-unknown + basic_os=morphos + ;; + moxiebox) + basic_machine=moxie-unknown + basic_os=moxiebox + ;; + msdos) + basic_machine=i386-pc + basic_os=msdos + ;; + msys) + basic_machine=i686-pc + basic_os=msys + ;; + mvs) + basic_machine=i370-ibm + basic_os=mvs + ;; + nacl) + basic_machine=le32-unknown + basic_os=nacl + ;; + ncr3000) + basic_machine=i486-ncr + basic_os=sysv4 + ;; + netbsd386) + basic_machine=i386-pc + basic_os=netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + basic_os=linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + basic_os=newsos + ;; + news1000) + basic_machine=m68030-sony + basic_os=newsos + ;; + necv70) + basic_machine=v70-nec + basic_os=sysv + ;; + nh3000) + basic_machine=m68k-harris + basic_os=cxux + ;; + nh[45]000) + basic_machine=m88k-harris + basic_os=cxux + ;; + nindy960) + basic_machine=i960-intel + basic_os=nindy + ;; + mon960) + basic_machine=i960-intel + basic_os=mon960 + ;; + nonstopux) + basic_machine=mips-compaq + basic_os=nonstopux + ;; + os400) + basic_machine=powerpc-ibm + basic_os=os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + basic_os=ose + ;; + os68k) + basic_machine=m68k-none + basic_os=os68k + ;; + paragon) + basic_machine=i860-intel + basic_os=osf + ;; + parisc) + basic_machine=hppa-unknown + basic_os=linux + ;; + psp) + basic_machine=mipsallegrexel-sony + basic_os=psp + ;; + pw32) + basic_machine=i586-unknown + basic_os=pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + basic_os=rdos + ;; + rdos32) + basic_machine=i386-pc + basic_os=rdos + ;; + rom68k) + basic_machine=m68k-rom68k + basic_os=coff + ;; + sa29200) + basic_machine=a29k-amd + basic_os=udi + ;; + sei) + basic_machine=mips-sei + basic_os=seiux + ;; + sequent) + basic_machine=i386-sequent + basic_os= + ;; + sps7) + basic_machine=m68k-bull + basic_os=sysv2 + ;; + st2000) + basic_machine=m68k-tandem + basic_os= + ;; + stratus) + basic_machine=i860-stratus + basic_os=sysv4 + ;; + sun2) + basic_machine=m68000-sun + basic_os= + ;; + sun2os3) + basic_machine=m68000-sun + basic_os=sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + basic_os=sunos4 + ;; + sun3) + basic_machine=m68k-sun + basic_os= + ;; + sun3os3) + basic_machine=m68k-sun + basic_os=sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + basic_os=sunos4 + ;; + sun4) + basic_machine=sparc-sun + basic_os= + ;; + sun4os3) + basic_machine=sparc-sun + basic_os=sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + basic_os=sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + basic_os=solaris2 + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + basic_os= + ;; + sv1) + basic_machine=sv1-cray + basic_os=unicos + ;; + symmetry) + basic_machine=i386-sequent + basic_os=dynix + ;; + t3e) + basic_machine=alphaev5-cray + basic_os=unicos + ;; + t90) + basic_machine=t90-cray + basic_os=unicos + ;; + toad1) + basic_machine=pdp10-xkl + basic_os=tops20 + ;; + tpf) + basic_machine=s390x-ibm + basic_os=tpf + ;; + udi29k) + basic_machine=a29k-amd + basic_os=udi + ;; + ultra3) + basic_machine=a29k-nyu + basic_os=sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + basic_os=none + ;; + vaxv) + basic_machine=vax-dec + basic_os=sysv + ;; + vms) + basic_machine=vax-dec + basic_os=vms + ;; + vsta) + basic_machine=i386-pc + basic_os=vsta + ;; + vxworks960) + basic_machine=i960-wrs + basic_os=vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + basic_os=vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + basic_os=vxworks + ;; + xbox) + basic_machine=i686-pc + basic_os=mingw32 + ;; + ymp) + basic_machine=ymp-cray + basic_os=unicos + ;; + *) + basic_machine=$1 + basic_os= + ;; + esac + ;; +esac + +# Decode 1-component or ad-hoc basic machines +case $basic_machine in + # Here we handle the default manufacturer of certain CPU types. It is in + # some cases the only manufacturer, in others, it is the most popular. + w89k) + cpu=hppa1.1 + vendor=winbond + ;; + op50n) + cpu=hppa1.1 + vendor=oki + ;; + op60c) + cpu=hppa1.1 + vendor=oki + ;; + ibm*) + cpu=i370 + vendor=ibm + ;; + orion105) + cpu=clipper + vendor=highlevel + ;; + mac | mpw | mac-mpw) + cpu=m68k + vendor=apple + ;; + pmac | pmac-mpw) + cpu=powerpc + vendor=apple + ;; + + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + cpu=m68000 + vendor=att + ;; + 3b*) + cpu=we32k + vendor=att + ;; + bluegene*) + cpu=powerpc + vendor=ibm + basic_os=cnk + ;; + decsystem10* | dec10*) + cpu=pdp10 + vendor=dec + basic_os=tops10 + ;; + decsystem20* | dec20*) + cpu=pdp10 + vendor=dec + basic_os=tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + cpu=m68k + vendor=motorola + ;; + dpx2*) + cpu=m68k + vendor=bull + basic_os=sysv3 + ;; + encore | umax | mmax) + cpu=ns32k + vendor=encore + ;; + elxsi) + cpu=elxsi + vendor=elxsi + basic_os=${basic_os:-bsd} + ;; + fx2800) + cpu=i860 + vendor=alliant + ;; + genix) + cpu=ns32k + vendor=ns + ;; + h3050r* | hiux*) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + cpu=m68000 + vendor=hp + ;; + hp9k3[2-9][0-9]) + cpu=m68k + vendor=hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + cpu=hppa1.1 + vendor=hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + cpu=hppa1.0 + vendor=hp + ;; + i*86v32) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv32 + ;; + i*86v4*) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv4 + ;; + i*86v) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=sysv + ;; + i*86sol2) + cpu=`echo "$1" | sed -e 's/86.*/86/'` + vendor=pc + basic_os=solaris2 + ;; + j90 | j90-cray) + cpu=j90 + vendor=cray + basic_os=${basic_os:-unicos} + ;; + iris | iris4d) + cpu=mips + vendor=sgi + case $basic_os in + irix*) + ;; + *) + basic_os=irix4 + ;; + esac + ;; + miniframe) + cpu=m68000 + vendor=convergent + ;; + *mint | mint[0-9]* | *MiNT | *MiNT[0-9]*) + cpu=m68k + vendor=atari + basic_os=mint + ;; + news-3600 | risc-news) + cpu=mips + vendor=sony + basic_os=newsos + ;; + next | m*-next) + cpu=m68k + vendor=next + case $basic_os in + openstep*) + ;; + nextstep*) + ;; + ns2*) + basic_os=nextstep2 + ;; + *) + basic_os=nextstep3 + ;; + esac + ;; + np1) + cpu=np1 + vendor=gould + ;; + op50n-* | op60c-*) + cpu=hppa1.1 + vendor=oki + basic_os=proelf + ;; + pa-hitachi) + cpu=hppa1.1 + vendor=hitachi + basic_os=hiuxwe2 + ;; + pbd) + cpu=sparc + vendor=tti + ;; + pbb) + cpu=m68k + vendor=tti + ;; + pc532) + cpu=ns32k + vendor=pc532 + ;; + pn) + cpu=pn + vendor=gould + ;; + power) + cpu=power + vendor=ibm + ;; + ps2) + cpu=i386 + vendor=ibm + ;; + rm[46]00) + cpu=mips + vendor=siemens + ;; + rtpc | rtpc-*) + cpu=romp + vendor=ibm + ;; + sde) + cpu=mipsisa32 + vendor=sde + basic_os=${basic_os:-elf} + ;; + simso-wrs) + cpu=sparclite + vendor=wrs + basic_os=vxworks + ;; + tower | tower-32) + cpu=m68k + vendor=ncr + ;; + vpp*|vx|vx-*) + cpu=f301 + vendor=fujitsu + ;; + w65) + cpu=w65 + vendor=wdc + ;; + w89k-*) + cpu=hppa1.1 + vendor=winbond + basic_os=proelf + ;; + none) + cpu=none + vendor=none + ;; + leon|leon[3-9]) + cpu=sparc + vendor=$basic_machine + ;; + leon-*|leon[3-9]-*) + cpu=sparc + vendor=`echo "$basic_machine" | sed 's/-.*//'` + ;; + + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read cpu vendor <&2 + exit 1 + ;; + esac + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $vendor in + digital*) + vendor=dec + ;; + commodore*) + vendor=cbm + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if test x$basic_os != x +then + +# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just +# set os. +case $basic_os in + gnu/linux*) + kernel=linux + os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'` + ;; + os2-emx) + kernel=os2 + os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'` + ;; + nto-qnx*) + kernel=nto + os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'` + ;; + *-*) + # shellcheck disable=SC2162 + saved_IFS=$IFS + IFS="-" read kernel os <&2 + exit 1 + ;; +esac + +# As a final step for OS-related things, validate the OS-kernel combination +# (given a valid OS), if there is a kernel. +case $kernel-$os in + linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* \ + | linux-musl* | linux-relibc* | linux-uclibc* | linux-mlibc* ) + ;; + uclinux-uclibc* ) + ;; + managarm-mlibc* | managarm-kernel* ) + ;; + -dietlibc* | -newlib* | -musl* | -relibc* | -uclibc* | -mlibc* ) + # These are just libc implementations, not actual OSes, and thus + # require a kernel. + echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2 + exit 1 + ;; + -kernel* ) + echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2 + exit 1 + ;; + *-kernel* ) + echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2 + exit 1 + ;; + kfreebsd*-gnu* | kopensolaris*-gnu*) + ;; + vxworks-simlinux | vxworks-simwindows | vxworks-spe) + ;; + nto-qnx*) + ;; + os2-emx) + ;; + *-eabi* | *-gnueabi*) + ;; + -*) + # Blank kernel with real OS is always fine. + ;; + *-*) + echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2 + exit 1 + ;; +esac + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +case $vendor in + unknown) + case $cpu-$os in + *-riscix*) + vendor=acorn + ;; + *-sunos*) + vendor=sun + ;; + *-cnk* | *-aix*) + vendor=ibm + ;; + *-beos*) + vendor=be + ;; + *-hpux*) + vendor=hp + ;; + *-mpeix*) + vendor=hp + ;; + *-hiux*) + vendor=hitachi + ;; + *-unos*) + vendor=crds + ;; + *-dgux*) + vendor=dg + ;; + *-luna*) + vendor=omron + ;; + *-genix*) + vendor=ns + ;; + *-clix*) + vendor=intergraph + ;; + *-mvs* | *-opened*) + vendor=ibm + ;; + *-os400*) + vendor=ibm + ;; + s390-* | s390x-*) + vendor=ibm + ;; + *-ptx*) + vendor=sequent + ;; + *-tpf*) + vendor=ibm + ;; + *-vxsim* | *-vxworks* | *-windiss*) + vendor=wrs + ;; + *-aux*) + vendor=apple + ;; + *-hms*) + vendor=hitachi + ;; + *-mpw* | *-macos*) + vendor=apple + ;; + *-*mint | *-mint[0-9]* | *-*MiNT | *-MiNT[0-9]*) + vendor=atari + ;; + *-vos*) + vendor=stratus + ;; + esac + ;; +esac + +echo "$cpu-$vendor-${kernel:+$kernel-}$os" +exit + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/utils/asymptote/gc/depcomp b/utils/asymptote/gc/depcomp new file mode 120000 index 0000000000..4ed246b49f --- /dev/null +++ b/utils/asymptote/gc/depcomp @@ -0,0 +1 @@ +/usr/share/automake-1.16/depcomp \ No newline at end of file diff --git a/utils/asymptote/gc/install-sh b/utils/asymptote/gc/install-sh new file mode 100755 index 0000000000..e046efdf0a --- /dev/null +++ b/utils/asymptote/gc/install-sh @@ -0,0 +1,541 @@ +#!/usr/bin/sh +# install - install a program, script, or datafile + +scriptversion=2020-11-14.01; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to +# deal in the Software without restriction, including without limitation the +# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +# sell copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in +# all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +tab=' ' +nl=' +' +IFS=" $tab$nl" + +# Set DOITPROG to "echo" to test this script. + +doit=${DOITPROG-} +doit_exec=${doit:-exec} + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +# Create dirs (including intermediate dirs) using mode 755. +# This is like GNU 'install' as of coreutils 8.32 (2020). +mkdir_umask=22 + +backupsuffix= +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +is_target_a_directory=possibly + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -p pass -p to $cpprog. + -s $stripprog installed files. + -S SUFFIX attempt to back up existing files, with suffix SUFFIX. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG + +By default, rm is invoked with -f; when overridden with RMPROG, +it's up to you to specify -f if you want it. + +If -S is not specified, no backups are attempted. + +Email bug reports to bug-automake@gnu.org. +Automake home page: https://www.gnu.org/software/automake/ +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -p) cpprog="$cpprog -p";; + + -s) stripcmd=$stripprog;; + + -S) backupsuffix="$2" + shift;; + + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) is_target_a_directory=never;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + # Don't chown directories that already exist. + if test $dstdir_status = 0; then + chowncmd="" + fi + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename. + if test -d "$dst"; then + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dstbase=`basename "$src"` + case $dst in + */) dst=$dst$dstbase;; + *) dst=$dst/$dstbase;; + esac + dstdir_status=0 + else + dstdir=`dirname "$dst"` + test -d "$dstdir" + dstdir_status=$? + fi + fi + + case $dstdir in + */) dstdirslash=$dstdir;; + *) dstdirslash=$dstdir/;; + esac + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + # The $RANDOM variable is not portable (e.g., dash). Use it + # here however when possible just to lower collision chance. + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + + trap ' + ret=$? + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null + exit $ret + ' 0 + + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p'. + if (umask $mkdir_umask && + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null + fi + trap '' 0;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + oIFS=$IFS + IFS=/ + set -f + set fnord $dstdir + shift + set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=${dstdirslash}_inst.$$_ + rmtmp=${dstdirslash}_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && + { test -z "$stripcmd" || { + # Create $dsttmp read-write so that cp doesn't create it read-only, + # which would cause strip to fail. + if test -z "$doit"; then + : >"$dsttmp" # No need to fork-exec 'touch'. + else + $doit touch "$dsttmp" + fi + } + } && + $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + set +f && + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # If $backupsuffix is set, and the file being installed + # already exists, attempt a backup. Don't worry if it fails, + # e.g., if mv doesn't support -f. + if test -n "$backupsuffix" && test -f "$dst"; then + $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null + fi + + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/utils/asymptote/gc/missing b/utils/asymptote/gc/missing new file mode 120000 index 0000000000..60599889af --- /dev/null +++ b/utils/asymptote/gc/missing @@ -0,0 +1 @@ +/usr/share/automake-1.16/missing \ No newline at end of file diff --git a/utils/asymptote/gc/test-driver b/utils/asymptote/gc/test-driver new file mode 120000 index 0000000000..ce2380d8ab --- /dev/null +++ b/utils/asymptote/gc/test-driver @@ -0,0 +1 @@ +/usr/share/automake-1.16/test-driver \ No newline at end of file diff --git a/utils/asymptote/install-sh b/utils/asymptote/install-sh index e046efdf0a..ec298b5374 100755 --- a/utils/asymptote/install-sh +++ b/utils/asymptote/install-sh @@ -1,4 +1,4 @@ -#!/usr/bin/sh +#!/bin/sh # install - install a program, script, or datafile scriptversion=2020-11-14.01; # UTC diff --git a/utils/asymptote/revision.cc b/utils/asymptote/revision.cc index 5e48286c32..618eb8f59e 100644 --- a/utils/asymptote/revision.cc +++ b/utils/asymptote/revision.cc @@ -1,2 +1,2 @@ -const char *REVISION="2.99"; +const char *REVISION="3.00"; const char *AsyGLVersion="1.02";