diff --git a/.makefile b/.makefile index 72142901af..474937241e 100644 --- a/.makefile +++ b/.makefile @@ -266,7 +266,7 @@ bc-base: if [ "$(RACKETBC_SUFFIX)" = "" ] ; \ then $(MAKE) bc-configure MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --enable-bcdefault" ; \ else $(MAKE) bc-configure MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --disable-bcdefault" ; fi - cd racket/src/build && $(MAKE) racketbc $(SELF_FLAGS_qq) + cd racket/src/build/bc && $(MAKE) $(SELF_FLAGS_qq) cd racket/src/build && $(MAKE) install-bc $(INSTALL_SETUP_ARGS) win-bc-base: @@ -286,11 +286,12 @@ BC_CONFIGURE_ARGS == $(CONFIGURE_ARGS) $(MORE_CONFIGURE_ARGS) $(CONFIG_IN_PLACE_ bc-configure: $(MAKE) racket/src/build/bc/Makefile - cd racket/src/build && $(MAKE) reconfigure MORE_CONFIGURE_ARGS="$(BC_CONFIGURE_ARGS)" + cd racket/src/build/bc && $(MAKE) reconfigure MORE_CONFIGURE_ARGS="$(BC_CONFIGURE_ARGS)" -racket/src/build/bc/Makefile: racket/src/configure racket/src/Makefile.in - mkdir -p racket/src/build - cd racket/src/build && ../configure --enable-bc $(CONFIGURE_ARGS_qq) $(BC_CONFIGURE_ARGS) +racket/src/build/bc/Makefile: racket/src/bc/configure racket/src/bc/Makefile.in racket/src/cfg-bc racket/src/Makefile.in + mkdir -p racket/src/build/bc + cd racket/src/build/bc && ../../bc/configure $(CONFIGURE_ARGS_qq) $(BC_CONFIGURE_ARGS) + cd racket/src/build && ../cfg-bc $(CONFIGURE_ARGS_qq) $(CS_CONFIGURE_ARGS) MORE_CROSS_CONFIGURE_ARGS = diff --git a/Makefile b/Makefile index 51be5c19fe..26ff878b45 100644 --- a/Makefile +++ b/Makefile @@ -131,14 +131,14 @@ DRIVE_DESCRIBE = DRIVE_CMD_q = -l- distro-build/drive-clients $(DRIVE_DESCRIBE) $(RELEASE_MODE) $(VERSIONLESS_MODE) $(SOURCE_MODE) $(CLEAN_MODE) $(SERVER_COMPILE_MACHINE) "$(CONFIG)" "$(CONFIG_MODE)" $(SERVER) $(SERVER_PORT) "$(SERVER_HOSTS)" "$(PKGS)" "$(DOC_SEARCH)" "$(DIST_NAME)" $(DIST_BASE) $(DIST_DIR) DOC_CATALOGS = build/built/catalog build/native/catalog main: - $(MAKE) in-place CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" + $(MAKE) in-place CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" win: $(MAKE) win-in-place DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" in-place: - if [ "$(CPUS)" = "" ] ; then $(MAKE) plain-in-place CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" ; else $(MAKE) -j $(CPUS) plain-in-place JOB_OPTIONS="-j $(CPUS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" ; fi + if [ "$(CPUS)" = "" ] ; then $(MAKE) plain-in-place CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" ; else $(MAKE) -j $(CPUS) plain-in-place JOB_OPTIONS="-j $(CPUS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" ; fi plain-in-place: $(MAKE) base-config - $(MAKE) $(VM)-$(INITIAL_SETUP_MODE)-in-place CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" + $(MAKE) $(VM)-$(INITIAL_SETUP_MODE)-in-place CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) $(VM)-in-place-setup IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" win-in-place: $(MAKE) win-base-config @@ -152,18 +152,18 @@ plain-minimal-in-place-after-base: plain-in-place-setup: $(PLAIN_RACKET) $(SETUP_MACHINE_FLAGS) -G racket/etc -X racket/collects -N raco -l- raco setup $(JOB_OPTIONS) $(PLT_SETUP_OPTIONS) $(IN_PLACE_SETUP_OPTIONS) as-is: - if [ "$(CPUS)" = "" ] ; then $(MAKE) plain-as-is CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" ; else $(MAKE) -j $(CPUS) plain-as-is JOB_OPTIONS="-j $(CPUS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" ; fi + if [ "$(CPUS)" = "" ] ; then $(MAKE) plain-as-is CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" ; else $(MAKE) -j $(CPUS) plain-as-is JOB_OPTIONS="-j $(CPUS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" ; fi plain-as-is: - $(MAKE) plain-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" + $(MAKE) plain-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" $(MAKE) $(VM)-in-place-setup IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" win-as-is: $(MAKE) win-base DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" VM="$(VM)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" $(MAKE) win-$(VM)-in-place-setup IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" unix-style: - if [ "$(CPUS)" = "" ] ; then $(MAKE) plain-unix-style CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PREFIX="$(PREFIX)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" REQUIRED_PKGS="$(REQUIRED_PKGS)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" ; else $(MAKE) -j $(CPUS) plain-unix-style JOB_OPTIONS="-j $(CPUS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PREFIX="$(PREFIX)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" REQUIRED_PKGS="$(REQUIRED_PKGS)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" ; fi + if [ "$(CPUS)" = "" ] ; then $(MAKE) plain-unix-style CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PREFIX="$(PREFIX)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" REQUIRED_PKGS="$(REQUIRED_PKGS)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" ; else $(MAKE) -j $(CPUS) plain-unix-style JOB_OPTIONS="-j $(CPUS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PREFIX="$(PREFIX)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" REQUIRED_PKGS="$(REQUIRED_PKGS)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" VM="$(VM)" ; fi plain-unix-style: if [ "$(PREFIX)" = "" ] ; then $(MAKE) error-need-prefix ; fi - $(MAKE) $(VM)-base MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --prefix=$(PREFIX) --enable-macprefix" CONFIG_IN_PLACE_ARGS="" SELF_ROOT_CONFIG_FLAG="-Z" SKIP_DESTDIR_FIX="skip" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" + $(MAKE) $(VM)-base MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --prefix=$(PREFIX) --enable-macprefix" CONFIG_IN_PLACE_ARGS="" SELF_ROOT_CONFIG_FLAG="-Z" SKIP_DESTDIR_FIX="skip" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" $(MAKE) set-src-catalog DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" PREFIX="$(PREFIX)" SRC_CATALOG="$(SRC_CATALOG)" $(MAKE) local-catalog DESTDIR="$(DESTDIR)" PREFIX="$(PREFIX)" "$(DESTDIR)$(PREFIX)/bin/raco" pkg install $(JOB_OPTIONS) --catalog build/local/catalog --auto -i $(REQUIRED_PKGS) $(PKGS) @@ -179,10 +179,10 @@ local-catalog: set-src-catalog: if [ ! "$(SRC_CATALOG)" = "$(DEFAULT_SRC_CATALOG)" ] ; then "$(DESTDIR)$(PREFIX)/bin/raco" pkg config -i --set catalogs "$(SRC_CATALOG)" ""; fi base: - if [ "$(CPUS)" = "" ] ; then $(MAKE) plain-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" ; else $(MAKE) -j $(CPUS) plain-base JOB_OPTIONS="-j $(CPUS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" ; fi + if [ "$(CPUS)" = "" ] ; then $(MAKE) plain-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" ; else $(MAKE) -j $(CPUS) plain-base JOB_OPTIONS="-j $(CPUS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" ; fi plain-base: $(MAKE) base-config - $(MAKE) $(VM)-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" + $(MAKE) $(VM)-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" win-base: $(MAKE) win-base-config $(MAKE) win-$(VM)-base DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" @@ -193,27 +193,27 @@ win-base-config: IF NOT EXIST build\config cmd /c mkdir build\config cmd /c echo #hash((links-search-files . ())) > build\config\config.rktd bc: - $(MAKE) bc-in-place CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" + $(MAKE) bc-in-place CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" win-bc: $(MAKE) win-bc-in-place DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" bc-in-place: - $(MAKE) in-place VM=bc CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" + $(MAKE) in-place VM=bc CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" win-bc-in-place: $(MAKE) win-in-place VM=bc DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" bc-as-is: - $(MAKE) as-is VM=bc CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" + $(MAKE) as-is VM=bc CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" win-bc-as-is: $(MAKE) win-as-is VM=bc DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" bc-unix-style: - $(MAKE) unix-style VM=bc CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PREFIX="$(PREFIX)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" + $(MAKE) unix-style VM=bc CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PREFIX="$(PREFIX)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" bc-minimal-in-place: - $(MAKE) bc-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" + $(MAKE) bc-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" $(MAKE) plain-minimal-in-place-after-base PLAIN_RACKET=racket/bin/racket$(RACKETBC_SUFFIX) DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" REQUIRED_PKGS="$(REQUIRED_PKGS)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" win-bc-minimal-in-place: $(MAKE) win-bc-base JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" $(MAKE) plain-minimal-in-place-after-base PLAIN_RACKET=racket\racket$(RACKETBC_SUFFIX) DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" REQUIRED_PKGS="$(REQUIRED_PKGS)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" bc-skip-in-place: - $(MAKE) bc-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" + $(MAKE) bc-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" win-bc-skip-in-place: $(MAKE) win-bc-base JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" bc-in-place-setup: @@ -221,8 +221,8 @@ bc-in-place-setup: win-bc-in-place-setup: $(MAKE) plain-in-place-setup PLAIN_RACKET=racket\racket$(RACKETBC_SUFFIX) IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" bc-base: - if [ "$(RACKETBC_SUFFIX)" = "" ] ; then $(MAKE) bc-configure MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --enable-bcdefault" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" ; else $(MAKE) bc-configure MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --disable-bcdefault" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" ; fi - cd racket/src/build && $(MAKE) racketbc SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" + if [ "$(RACKETBC_SUFFIX)" = "" ] ; then $(MAKE) bc-configure MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --enable-bcdefault" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" ; else $(MAKE) bc-configure MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --disable-bcdefault" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" ; fi + cd racket/src/build/bc && $(MAKE) SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" cd racket/src/build && $(MAKE) install-bc SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" PLT_SETUP_OPTIONS="$(JOB_OPTIONS) $(PLT_SETUP_OPTIONS)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" win-bc-base: $(MAKE) win-remove-setup-dlls @@ -234,11 +234,12 @@ win-remove-setup-dlls: IF EXIST racket\lib\libeay32.dll cmd /c del racket\lib\libeay32.dll IF EXIST racket\lib\ssleay32.dll cmd /c del racket\lib\ssleay32.dll bc-configure: - $(MAKE) racket/src/build/bc/Makefile CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" - cd racket/src/build && $(MAKE) reconfigure MORE_CONFIGURE_ARGS=" $(CONFIGURE_ARGS) $(MORE_CONFIGURE_ARGS) $(CONFIG_IN_PLACE_ARGS)" -racket/src/build/bc/Makefile: racket/src/configure racket/src/Makefile.in - mkdir -p racket/src/build - cd racket/src/build && ../configure --enable-bc $(CONFIGURE_ARGS_qq) $(CONFIGURE_ARGS) $(MORE_CONFIGURE_ARGS) $(CONFIG_IN_PLACE_ARGS) + $(MAKE) racket/src/build/bc/Makefile CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" + cd racket/src/build/bc && $(MAKE) reconfigure MORE_CONFIGURE_ARGS=" $(CONFIGURE_ARGS) $(MORE_CONFIGURE_ARGS) $(CONFIG_IN_PLACE_ARGS)" +racket/src/build/bc/Makefile: racket/src/bc/configure racket/src/bc/Makefile.in racket/src/cfg-bc racket/src/Makefile.in + mkdir -p racket/src/build/bc + cd racket/src/build/bc && ../../bc/configure $(CONFIGURE_ARGS_qq) $(CONFIGURE_ARGS) $(MORE_CONFIGURE_ARGS) $(CONFIG_IN_PLACE_ARGS) + cd racket/src/build && ../cfg-bc $(CONFIGURE_ARGS_qq) $(CONFIGURE_ARGS) $(MORE_CONFIGURE_ARGS) $(CONFIG_IN_PLACE_ARGS) native-for-cross: mkdir -p racket/src/build/cross $(MAKE) racket/src/build/cross/Makefile MORE_CROSS_CONFIGURE_ARGS="$(MORE_CROSS_CONFIGURE_ARGS)" @@ -247,19 +248,19 @@ native-for-cross: racket/src/build/cross/Makefile: racket/src/configure racket/src/cfg-bc racket/src/Makefile.in cd racket/src/build/cross && ../../configure $(MORE_CROSS_CONFIGURE_ARGS) cs: - $(MAKE) cs-in-place CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" + $(MAKE) cs-in-place CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" win-cs: $(MAKE) win-cs-in-place DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" cs-in-place: - $(MAKE) in-place VM=cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" + $(MAKE) in-place VM=cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" win-cs-in-place: $(MAKE) win-in-place VM=cs DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" cs-as-is: - $(MAKE) as-is VM=cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" + $(MAKE) as-is VM=cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" win-cs-as-is: $(MAKE) win-as-is VM=cs DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" cs-unix-style: - $(MAKE) unix-style VM=cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PREFIX="$(PREFIX)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" + $(MAKE) unix-style VM=cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DESTDIR="$(DESTDIR)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PREFIX="$(PREFIX)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" cs-minimal-in-place: $(MAKE) cs-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" $(MAKE) cs-minimal-in-place-after-base$(CS_CROSS_SUFFIX) DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" @@ -328,23 +329,23 @@ native-cs-for-cross: racket/src/build/cross/cs/c/Makefile: racket/src/cs/c/configure racket/src/cs/c/Makefile.in cd racket/src/build/cross/cs/c; ../../../../cs/c/configure --enable-csdefault both: - $(MAKE) bc IN_PLACE_SETUP_OPTIONS="--error-out build/step" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" - $(MAKE) also-cs IN_PLACE_SETUP_OPTIONS="--error-in build/step" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" + $(MAKE) bc IN_PLACE_SETUP_OPTIONS="--error-out build/step" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" + $(MAKE) also-cs IN_PLACE_SETUP_OPTIONS="--error-in build/step" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" plain-also: - $(MAKE) $(VM) INITIAL_SETUP_MODE=skip PLT_SETUP_OPTIONS="-D $(PLT_SETUP_OPTIONS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" + $(MAKE) $(VM) INITIAL_SETUP_MODE=skip PLT_SETUP_OPTIONS="-D $(PLT_SETUP_OPTIONS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" also-cs: - $(MAKE) plain-also VM=cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" + $(MAKE) plain-also VM=cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" also-bc: - $(MAKE) plain-also VM=bc CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" + $(MAKE) plain-also VM=bc CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" win-both: $(MAKE) win-bc DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" - $(MAKE) win-also-cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" + $(MAKE) win-also-cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" win-plain-also: - $(MAKE) $(VM) INITIAL_SETUP_MODE=skip PLT_SETUP_OPTIONS="-D $(PLT_SETUP_OPTIONS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" + $(MAKE) $(VM) INITIAL_SETUP_MODE=skip PLT_SETUP_OPTIONS="-D $(PLT_SETUP_OPTIONS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" win-also-cs: - $(MAKE) win-plain-also VM=cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" + $(MAKE) win-plain-also VM=cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" win-also-bc: - $(MAKE) win-plain-also VM=bc CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" + $(MAKE) win-plain-also VM=bc CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" bootstrapped-repo: if [ "$(EXTRA_REPOS_BASE)" = "" ] ; then $(MAKE) update-bootstrapped-normal GIT_UPDATE_ARGS_qq="$(GIT_UPDATE_ARGS_qq)" ; else $(MAKE) update-bootstrapped-as-extra GIT_CLONE_ARGS_qq="" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_PULL_ARGS_qq="$(GIT_PULL_ARGS_qq)" ; fi update-bootstrapped-normal: @@ -361,14 +362,14 @@ pkgs-catalog: $(PLAIN_RACKET) $(SETUP_MACHINE_FLAGS) -G racket/etc -X racket/collects -U -G build/config racket/src/pkgs-config.rkt "$(DEFAULT_SRC_CATALOG)" "$(SRC_CATALOG)" $(PLAIN_RACKET) $(SETUP_MACHINE_FLAGS) -G racket/etc -X racket/collects racket/src/pkgs-check.rkt racket/share/pkgs-catalog with-setup-flags: - if [ "$(SERVER_COMPILE_MACHINE)" = "-M" ] ; then $(MAKE) $(NEXT_TARGET) SETUP_MACHINE_FLAGS="-MCR `pwd`/build/zo:" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --enable-crossany" BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" ; else $(MAKE) $(NEXT_TARGET) BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" ; fi + if [ "$(SERVER_COMPILE_MACHINE)" = "-M" ] ; then $(MAKE) $(NEXT_TARGET) SETUP_MACHINE_FLAGS="-MCR `pwd`/build/zo:" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --enable-crossany" BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" ; else $(MAKE) $(NEXT_TARGET) BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" ; fi random: echo $(MORE_CONFIGURE_ARGS) server: - $(MAKE) with-setup-flags NEXT_TARGET=plain-server BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" + $(MAKE) with-setup-flags NEXT_TARGET=plain-server BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" plain-server: rm -rf build/zo - $(MAKE) plain-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" + $(MAKE) plain-base CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" $(MAKE) server-from-base BUILD_STAMP="$(BUILD_STAMP)" CONFIG="$(CONFIG)" CONFIG_MODE="$(CONFIG_MODE)" DOC_SEARCH="$(DOC_SEARCH)" JOB_OPTIONS="$(JOB_OPTIONS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" server-from-base: $(MAKE) build/site.rkt @@ -420,7 +421,7 @@ binary-catalog-server: $(PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -l- distro-build/serve-catalog --mode binary "$(CONFIG)" "$(CONFIG_MODE)" "$(SERVER_HOSTS)" $(SERVER_PORT) client: if [ ! -d build/log ] ; then rm -rf build/user ; fi - $(MAKE) $(CLIENT_BASE) MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) $(DISABLE_STATIC_LIBS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" + $(MAKE) $(CLIENT_BASE) MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) $(DISABLE_STATIC_LIBS)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" VM="$(VM)" $(MAKE) distro-build-from-server JOB_OPTIONS="$(JOB_OPTIONS)" PLAIN_RACKET="$(PLAIN_RACKET)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SVR_CAT="$(SVR_CAT)" $(MAKE) $(BUNDLE_FROM_SERVER_TARGET) COPY_ARGS="$(COPY_ARGS)" IN_BUNDLE_RACO="$(IN_BUNDLE_RACO)" JOB_OPTIONS="$(JOB_OPTIONS)" PKGS="$(PKGS)" PKG_INSTALL_OPTIONS="$(PKG_INSTALL_OPTIONS)" PKG_SOURCE_MODE="$(PKG_SOURCE_MODE)" PLAIN_RACKET="$(PLAIN_RACKET)" SERVER_COLLECTS_PATH="$(SERVER_COLLECTS_PATH)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SOURCE_MODE="$(SOURCE_MODE)" SVR_CAT="$(SVR_CAT)" SVR_PRT="$(SVR_PRT)" UNPACK_COLLECTS_FLAGS="$(UNPACK_COLLECTS_FLAGS)" $(PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -l distro-build/set-config bundle/racket/etc/config.rktd "$(INSTALL_NAME)" "$(BUILD_STAMP)" "$(DOC_SEARCH)" $(DIST_CATALOGS_q) @@ -433,7 +434,7 @@ win-client: $(WIN32_PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -l distro-build/set-config bundle/racket/etc/config.rktd "$(INSTALL_NAME)" "$(BUILD_STAMP)" "$(DOC_SEARCH)" $(DIST_CATALOGS_q) $(MAKE) win-installer-from-bundle DIST_BASE="$(DIST_BASE)" DIST_DESC="$(DIST_DESC)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DIST_SUFFIX="$(DIST_SUFFIX)" INSTALLER_OPTIONS="$(INSTALLER_OPTIONS)" INSTALLER_POST_PROCESS_BASE64="$(INSTALLER_POST_PROCESS_BASE64)" INSTALLER_PRE_PROCESS_BASE64="$(INSTALLER_PRE_PROCESS_BASE64)" MAC_PKG_MODE="$(MAC_PKG_MODE)" OSSLSIGNCODE_ARGS_BASE64="$(OSSLSIGNCODE_ARGS_BASE64)" README="$(README)" RELEASE_MODE="$(RELEASE_MODE)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SIGN_IDENTITY="$(SIGN_IDENTITY)" SOURCE_MODE="$(SOURCE_MODE)" TGZ_MODE="$(TGZ_MODE)" UPLOAD="$(UPLOAD)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" WIN32_PLAIN_RACKET="$(WIN32_PLAIN_RACKET)" client-compile-any: - $(MAKE) client SETUP_MACHINE_FLAGS="-MCR `pwd`/build/zo:" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --enable-crossany" BUNDLE_FROM_SERVER_TARGET=bundle-cross-from-server BUILD_STAMP="$(BUILD_STAMP)" CLIENT_BASE="$(CLIENT_BASE)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" COPY_ARGS="$(COPY_ARGS)" CPUS="$(CPUS)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" DIST_BASE="$(DIST_BASE)" DIST_CATALOGS_q="$(DIST_CATALOGS_q)" DIST_DESC="$(DIST_DESC)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DIST_SUFFIX="$(DIST_SUFFIX)" DOC_SEARCH="$(DOC_SEARCH)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INSTALLER_OPTIONS="$(INSTALLER_OPTIONS)" INSTALLER_POST_PROCESS_BASE64="$(INSTALLER_POST_PROCESS_BASE64)" INSTALLER_PRE_PROCESS_BASE64="$(INSTALLER_PRE_PROCESS_BASE64)" INSTALL_NAME="$(INSTALL_NAME)" IN_BUNDLE_RACO="$(IN_BUNDLE_RACO)" JOB_OPTIONS="$(JOB_OPTIONS)" MAC_PKG_MODE="$(MAC_PKG_MODE)" OSSLSIGNCODE_ARGS_BASE64="$(OSSLSIGNCODE_ARGS_BASE64)" PKGS="$(PKGS)" PKG_INSTALL_OPTIONS="$(PKG_INSTALL_OPTIONS)" PKG_SOURCE_MODE="$(PKG_SOURCE_MODE)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" README="$(README)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER_COLLECTS_PATH="$(SERVER_COLLECTS_PATH)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SIGN_IDENTITY="$(SIGN_IDENTITY)" SOURCE_MODE="$(SOURCE_MODE)" SVR_CAT="$(SVR_CAT)" SVR_PRT="$(SVR_PRT)" TGZ_MODE="$(TGZ_MODE)" UNPACK_COLLECTS_FLAGS="$(UNPACK_COLLECTS_FLAGS)" UPLOAD="$(UPLOAD)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" + $(MAKE) client SETUP_MACHINE_FLAGS="-MCR `pwd`/build/zo:" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS) --enable-crossany" BUNDLE_FROM_SERVER_TARGET=bundle-cross-from-server BUILD_STAMP="$(BUILD_STAMP)" CLIENT_BASE="$(CLIENT_BASE)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" COPY_ARGS="$(COPY_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" DIST_BASE="$(DIST_BASE)" DIST_CATALOGS_q="$(DIST_CATALOGS_q)" DIST_DESC="$(DIST_DESC)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DIST_SUFFIX="$(DIST_SUFFIX)" DOC_SEARCH="$(DOC_SEARCH)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INSTALLER_OPTIONS="$(INSTALLER_OPTIONS)" INSTALLER_POST_PROCESS_BASE64="$(INSTALLER_POST_PROCESS_BASE64)" INSTALLER_PRE_PROCESS_BASE64="$(INSTALLER_PRE_PROCESS_BASE64)" INSTALL_NAME="$(INSTALL_NAME)" IN_BUNDLE_RACO="$(IN_BUNDLE_RACO)" JOB_OPTIONS="$(JOB_OPTIONS)" MAC_PKG_MODE="$(MAC_PKG_MODE)" OSSLSIGNCODE_ARGS_BASE64="$(OSSLSIGNCODE_ARGS_BASE64)" PKGS="$(PKGS)" PKG_INSTALL_OPTIONS="$(PKG_INSTALL_OPTIONS)" PKG_SOURCE_MODE="$(PKG_SOURCE_MODE)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" README="$(README)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER_COLLECTS_PATH="$(SERVER_COLLECTS_PATH)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SIGN_IDENTITY="$(SIGN_IDENTITY)" SOURCE_MODE="$(SOURCE_MODE)" SVR_CAT="$(SVR_CAT)" SVR_PRT="$(SVR_PRT)" TGZ_MODE="$(TGZ_MODE)" UNPACK_COLLECTS_FLAGS="$(UNPACK_COLLECTS_FLAGS)" UPLOAD="$(UPLOAD)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" distro-build-from-server: $(PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -N raco -l- raco pkg install --catalog $(SVR_CAT) --scope user --skip-installed --deps search-auto --pkgs $(JOB_OPTIONS) distro-build-client bundle-from-server: @@ -475,14 +476,14 @@ win-test-client: $(WIN32_PLAIN_RACKET) -G bundle/racket/etc -X bundle/racket/collects -C -A bundle/user -l raco pkg install --catalog $(SVR_CAT) --scope installation --skip-installed --deps search-auto --pkgs $(JOB_OPTIONS) $(PKG_INSTALL_OPTIONS) --recompile-only $(PKG_SOURCE_MODE) $(TEST_PKGS) bundle\racket\raco test $(TEST_ARGS_q) client-from-site: - $(MAKE) with-setup-flags NEXT_TARGET=plain-client-from-site BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" + $(MAKE) with-setup-flags NEXT_TARGET=plain-client-from-site BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" plain-client-from-site: make client SERVER_CATALOG_PATH=$(SITE_PATH)catalog/ SERVER_COLLECTS_PATH=$(SITE_PATH)origin/ DIST_CATALOGS_q='$(SERVER_URL_SCHEME)://$(SERVER):$(SERVER_PORT)/$(SITE_PATH)catalog/ ""' DOC_SEARCH="$(SERVER_URL_SCHEME)://$(SERVER):$(SERVER_PORT)/$(SITE_PATH)doc/local-redirect/index.html" $(PROP_ARGS) installers: rm -rf build/installers - $(MAKE) server SERVE_DURING_CMD_qq=' -l- distro-build/drive-clients $(DRIVE_DESCRIBE) $(RELEASE_MODE) $(VERSIONLESS_MODE) $(SOURCE_MODE) $(CLEAN_MODE) $(SERVER_COMPILE_MACHINE) "$(CONFIG)" "$(CONFIG_MODE)" $(SERVER) $(SERVER_PORT) "$(SERVER_HOSTS)" "$(PKGS)" "$(DOC_SEARCH)" "$(DIST_NAME)" $(DIST_BASE) $(DIST_DIR)' BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" + $(MAKE) server SERVE_DURING_CMD_qq=' -l- distro-build/drive-clients $(DRIVE_DESCRIBE) $(RELEASE_MODE) $(VERSIONLESS_MODE) $(SOURCE_MODE) $(CLEAN_MODE) $(SERVER_COMPILE_MACHINE) "$(CONFIG)" "$(CONFIG_MODE)" $(SERVER) $(SERVER_PORT) "$(SERVER_HOSTS)" "$(PKGS)" "$(DOC_SEARCH)" "$(DIST_NAME)" $(DIST_BASE) $(DIST_DIR)' BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" installers-from-built: - $(MAKE) with-setup-flags NEXT_TARGET=plain-installers-from-built BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" + $(MAKE) with-setup-flags NEXT_TARGET=plain-installers-from-built BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" plain-installers-from-built: $(MAKE) built-catalog-server SERVE_DURING_CMD_qq=' -l- distro-build/drive-clients $(DRIVE_DESCRIBE) $(RELEASE_MODE) $(VERSIONLESS_MODE) $(SOURCE_MODE) $(CLEAN_MODE) $(SERVER_COMPILE_MACHINE) "$(CONFIG)" "$(CONFIG_MODE)" $(SERVER) $(SERVER_PORT) "$(SERVER_HOSTS)" "$(PKGS)" "$(DOC_SEARCH)" "$(DIST_NAME)" $(DIST_BASE) $(DIST_DIR)' CONFIG="$(CONFIG)" CONFIG_MODE="$(CONFIG_MODE)" PLAIN_RACKET="$(PLAIN_RACKET)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PORT="$(SERVER_PORT)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" drive-clients: @@ -490,20 +491,20 @@ drive-clients: describe-clients: $(MAKE) drive-clients DRIVE_DESCRIBE=--describe CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIG_MODE="$(CONFIG_MODE)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_SEARCH="$(DOC_SEARCH)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" RELEASE_MODE="$(RELEASE_MODE)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PORT="$(SERVER_PORT)" SOURCE_MODE="$(SOURCE_MODE)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" site: - $(MAKE) installers BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" - $(MAKE) site-from-installers BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" + $(MAKE) installers BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" + $(MAKE) site-from-installers BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" site-from-installers: - $(MAKE) with-setup-flags NEXT_TARGET=plain-site-from-installers BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" + $(MAKE) with-setup-flags NEXT_TARGET=plain-site-from-installers BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" plain-site-from-installers: rm -rf build/docs rm -rf "build/zo`pwd`/build/docs" $(PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -l- distro-build/install-for-docs build/docs "$(CONFIG)" "$(CONFIG_MODE)" "$(PKGS)" $(DOC_CATALOGS) $(PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -l- distro-build/assemble-site "$(CONFIG)" "$(CONFIG_MODE)" snapshot-site: - $(MAKE) site BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" - $(MAKE) snapshot-at-site BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" + $(MAKE) site BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" + $(MAKE) snapshot-at-site BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" snapshot-at-site: - $(MAKE) with-setup-flags NEXT_TARGET=plain-snapshot-at-site BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" + $(MAKE) with-setup-flags NEXT_TARGET=plain-snapshot-at-site BUILD_STAMP="$(BUILD_STAMP)" CLEAN_MODE="$(CLEAN_MODE)" CONFIG="$(CONFIG)" CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CONFIG_MODE="$(CONFIG_MODE)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" DIST_BASE="$(DIST_BASE)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DOC_CATALOGS="$(DOC_CATALOGS)" DOC_SEARCH="$(DOC_SEARCH)" DRIVE_DESCRIBE="$(DRIVE_DESCRIBE)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PACK_BUILT_OPTIONS="$(PACK_BUILT_OPTIONS)" PKGS="$(PKGS)" PLAIN_RACKET="$(PLAIN_RACKET)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" PROP_ARGS="$(PROP_ARGS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RELEASE_MODE="$(RELEASE_MODE)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SERVER="$(SERVER)" SERVER_COMPILE_MACHINE="$(SERVER_COMPILE_MACHINE)" SERVER_HOSTS="$(SERVER_HOSTS)" SERVER_PKG_INSTALL_OPTIONS="$(SERVER_PKG_INSTALL_OPTIONS)" SERVER_PORT="$(SERVER_PORT)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SITE_PATH="$(SITE_PATH)" SOURCE_MODE="$(SOURCE_MODE)" SRC_CATALOG="$(SRC_CATALOG)" TEST_PKGS="$(TEST_PKGS)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" plain-snapshot-at-site: $(PLAIN_RACKET) -G build/user/config -X racket/collects -A build/user $(SETUP_MACHINE_FLAGS) -l- distro-build/manage-snapshots "$(CONFIG)" "$(CONFIG_MODE)" win32-in-place: @@ -521,9 +522,9 @@ win32-cs-as-is: win32-cs-base: $(MAKE) win-cs-base DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" JOB_OPTIONS="$(JOB_OPTIONS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" win32-both: - $(MAKE) win-both CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" + $(MAKE) win-both CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" win32-also-cs: - $(MAKE) win-also-cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" + $(MAKE) win-also-cs CONFIGURE_ARGS="$(CONFIGURE_ARGS)" CONFIG_IN_PLACE_ARGS="$(CONFIG_IN_PLACE_ARGS)" CPUS="$(CPUS)" CS_CONFIGURE_ARGS="$(CS_CONFIGURE_ARGS)" CS_CROSS_SUFFIX="$(CS_CROSS_SUFFIX)" DEFAULT_SRC_CATALOG="$(DEFAULT_SRC_CATALOG)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" INITIAL_SETUP_MODE="$(INITIAL_SETUP_MODE)" IN_PLACE_SETUP_OPTIONS="$(IN_PLACE_SETUP_OPTIONS)" JOB_OPTIONS="$(JOB_OPTIONS)" MORE_CONFIGURE_ARGS="$(MORE_CONFIGURE_ARGS)" PKGS="$(PKGS)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BOOTFILES="$(RACKET_FOR_BOOTFILES)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SRC_CATALOG="$(SRC_CATALOG)" win32-client: $(MAKE) win-client BUILD_STAMP="$(BUILD_STAMP)" DISABLE_STATIC_LIBS="$(DISABLE_STATIC_LIBS)" DIST_BASE="$(DIST_BASE)" DIST_CATALOGS_q="$(DIST_CATALOGS_q)" DIST_DESC="$(DIST_DESC)" DIST_DIR="$(DIST_DIR)" DIST_NAME="$(DIST_NAME)" DIST_SUFFIX="$(DIST_SUFFIX)" DOC_SEARCH="$(DOC_SEARCH)" EXTRA_REPOS_BASE="$(EXTRA_REPOS_BASE)" GIT_CLONE_ARGS_qq="$(GIT_CLONE_ARGS_qq)" INSTALLER_OPTIONS="$(INSTALLER_OPTIONS)" INSTALLER_POST_PROCESS_BASE64="$(INSTALLER_POST_PROCESS_BASE64)" INSTALLER_PRE_PROCESS_BASE64="$(INSTALLER_PRE_PROCESS_BASE64)" INSTALL_NAME="$(INSTALL_NAME)" JOB_OPTIONS="$(JOB_OPTIONS)" MAC_PKG_MODE="$(MAC_PKG_MODE)" OSSLSIGNCODE_ARGS_BASE64="$(OSSLSIGNCODE_ARGS_BASE64)" PKGS="$(PKGS)" PKG_INSTALL_OPTIONS="$(PKG_INSTALL_OPTIONS)" PKG_SOURCE_MODE="$(PKG_SOURCE_MODE)" PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" RACKETBC_SUFFIX="$(RACKETBC_SUFFIX)" RACKETCS_SUFFIX="$(RACKETCS_SUFFIX)" RACKET_FOR_BUILD="$(RACKET_FOR_BUILD)" README="$(README)" RELEASE_MODE="$(RELEASE_MODE)" SERVER_COLLECTS_PATH="$(SERVER_COLLECTS_PATH)" SERVER_URL_SCHEME="$(SERVER_URL_SCHEME)" SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" SIGN_IDENTITY="$(SIGN_IDENTITY)" SOURCE_MODE="$(SOURCE_MODE)" SVR_CAT="$(SVR_CAT)" SVR_PRT="$(SVR_PRT)" TGZ_MODE="$(TGZ_MODE)" UNPACK_COLLECTS_FLAGS="$(UNPACK_COLLECTS_FLAGS)" UPLOAD="$(UPLOAD)" VERSIONLESS_MODE="$(VERSIONLESS_MODE)" VM="$(VM)" WIN32_BUILD_LEVEL="$(WIN32_BUILD_LEVEL)" WIN32_CLIENT_BASE="$(WIN32_CLIENT_BASE)" WIN32_PLAIN_RACKET="$(WIN32_PLAIN_RACKET)" win32-distro-build-from-server: diff --git a/racket/src/Makefile.in b/racket/src/Makefile.in index cfec153cfe..678de8567c 100644 --- a/racket/src/Makefile.in +++ b/racket/src/Makefile.in @@ -1,6 +1,4 @@ - -# Builds Racket and GRacket (if enabled), and -# drives the main install +# Dispatches to CS or BC to build Racket, and drives the main install PACKAGE = racket @@ -22,16 +20,6 @@ builddir = @builddir@ NOOP = : -ICP = @ICP@ - -# RUN_RACKET_ typically redirects to RUN_THIS_RACKET_, -# but it can also redirect to an existing Racket executable -# that is the same as the version being built (which is -# useful for cross-compilation, for example). -RUN_THIS_RACKET_CGC = bc/racket@CGC@ -RUN_THIS_RACKET_MMM = bc/racket@MMM@ -RUN_THIS_RACKET_MAIN_VARIANT = bc/racket@MAIN_VARIANT@ - ALLDIRINFO = "$(DESTDIR)$(bindir)" \ "$(DESTDIR)$(collectsdir)" \ "$(DESTDIR)$(docdir)" \ @@ -63,36 +51,31 @@ TAGS: etags `find "@srcdir@/racket" -type f` 3m: + if [ ! -f bc/Makefile ]; then $(MAKE) bc-explain-configure; fi $(MAKE) @MAKE_LOCAL_RACKET@ - cd bc && $(MAKE) 3m - $(MAKE) @MAKE_GRACKET@-3m - -gracket-3m: - cd bc/gracket && $(MAKE) 3m + cd bc && $(MAKE) 3m-with-gracket no-3m: $(NOOP) .PHONY: cgc cgc: + if [ ! -f bc/Makefile ]; then $(MAKE) bc-explain-configure; fi $(MAKE) @MAKE_LOCAL_RACKET@ - cd bc && $(MAKE) cgc - $(MAKE) @MAKE_GRACKET@-cgc - -gracket-cgc: - cd bc/gracket && $(MAKE) cgc - -no-cgc: - $(NOOP) + cd bc && $(MAKE) cgc-with-gracket both: $(MAKE) cgc $(MAKE) 3m +bc-explain-configure: + echo configure with --enable-bc or similar to enable + exit 1 + racketcs: if [ ! -f cs/c/Makefile ]; then $(MAKE) cs-explain-configure; fi $(MAKE) @CS_BOOTSTRAP_HELP@ - cd cs/c && $(MAKE) + cd cs/c && $(MAKE) @CS_USE_BOOTSTRAP_HELP@ .PHONY: cs cs: @@ -113,21 +96,12 @@ local/bc/racket3m: cd local && $(MAKE) local/Makefile: - cd local && `cd ..; cd $(srcdir); pwd`/configure --disable-gracket + cd local && `cd ..; cd $(srcdir); pwd`/configure --disable-gracket # Install (common) ---------------------------------------- -# Intended for configuration by an external makefile that drives this one: -SELF_ROOT_CONFIG_FLAG = -Z -SELF_ROOT_CONFIG_DIR = ../../../build/config -SELF_ROOT_CONFIG = $(SELF_ROOT_CONFIG_FLAG) $(SELF_ROOT_CONFIG_DIR) - -INST_CONFIG = -X @DIRCVTPRE@"$(DESTDIR)$(collectsdir)"@DIRCVTPOST@ -G @DIRCVTPRE@"$(DESTDIR)$(configdir)"@DIRCVTPOST@ -SETUP_RACKET_FLAGS = $(INST_CONFIG) $(SETUP_MACHINE_FLAGS) $(SELF_ROOT_CONFIG) @INSTALL_SETUP_RACKET_FLAGS@ -SETUP_SETUP_FLAGS = @INSTALL_SETUP_FLAGS@ $(PLT_SETUP_OPTIONS) $(PLT_ISO) -SETUP_ARGS = $(SETUP_RACKET_FLAGS) -N "raco" -l- setup $(SETUP_SETUP_FLAGS) - # Needed for non-GNU makes: +SELF_ROOT_CONFIG_FLAG = -Z PROPAGATE_VARIABLES = SELF_ROOT_CONFIG_FLAG="$(SELF_ROOT_CONFIG_FLAG)" \ PLT_SETUP_OPTIONS="$(PLT_SETUP_OPTIONS)" \ SETUP_MACHINE_FLAGS="$(SETUP_MACHINE_FLAGS)" @@ -151,51 +125,41 @@ install-common-first: esac mkdir -p $(ALLDIRINFO) -MIDDLE_POST_COLLECTS = install-@MAKE_GRACKET@-post-collects +MIDDLE_POST_COLLECTS = install-no-post-collects install-common-middle: $(MAKE) @MAKE_COPYTREE@-run - $(MAKE) $(MIDDLE_POST_COLLECTS) - $(MAKE) lib-finish install-common-last: $(MAKE) fix-paths $(MAKE) @MAKE_INSTALL_PKGSCOPE@-raco-pkg-default-scope - $(ICP) $(COPYING) "$(DESTDIR)$(sharepltdir)"/ + cp $(COPYING) "$(DESTDIR)$(sharepltdir)"/ install-no: $(NOOP) -lib-finish: - if [ "$(DESTDIR)" = "" ]; then \ - @LIBFINISH@ "$(libdir)"; \ - fi - no-run: $(NOOP) copytree-run: - @RUN_RACKET_CGC@ $(SELF_RACKET_FLAGS) -u \ + @RUN_RACKET@ $(SELF_RACKET_FLAGS) -u \ "$(srcdir)/../collects/setup/unixstyle-install.rkt" \ make-install-copytree "$(srcdir)/.." \ $(ALLDIRINFO) "@INSTALL_ORIG_TREE@" adjust-raco-pkg-default-scope: - @RUN_RACKET_CGC@ -l raco pkg config -i --set default-scope @INSTALL_PKGSCOPE@ + @RUN_RACKET@ -l raco pkg config -i --set default-scope @INSTALL_PKGSCOPE@ preserve-raco-pkg-default-scope: $(NOOP) -install-gracket-post-collects: - cd bc/gracket && $(MAKE) install-post-collects - install-no-post-collects: $(NOOP) fix-paths: if [ "$(DESTDIR)" != "" ]; then \ if [ "$(SKIP_DESTDIR_FIX)" = "" ]; then \ - @RUN_RACKET_CGC@ $(SELF_RACKET_FLAGS) -u \ + @RUN_RACKET@ $(SELF_RACKET_FLAGS) -u \ "$(srcdir)/../collects/setup/unixstyle-install.rkt" \ make-install-destdir-fix "$(srcdir)/.." \ $(ALLDIRINFO) "@INSTALL_ORIG_TREE@"; \ @@ -207,12 +171,12 @@ fix-paths: install-3m-common: $(MAKE) install-common-first cd bc && $(MAKE) install-3m - $(MAKE) install-@MAKE_GRACKET@-3m $(MAKE) install-common-middle + $(MAKE) install-bc-common-post-collects install-3m: $(MAKE) install-3m-common - @RUN_RACKET_MMM@ $(SETUP_ARGS) + cd bc && $(MAKE) install-setup-3m $(PROPAGATE_VARIABLES) $(MAKE) install-common-last plain-install-3m: @@ -222,20 +186,21 @@ plain-install-3m: install-no-3m: $(NOOP) -install-gracket-3m: - cd bc/gracket && $(MAKE) install-3m +install-bc-common-post-collects: + cd bc && $(MAKE) install-post-collects + cd bc && $(MAKE) install-lib-finish DESTDIR="$(DESTDIR)" LIB_FINISH_DIR="$(libdir)" # CGC install ---------------------------------------- install-cgc-common: $(MAKE) install-common-first cd bc && $(MAKE) install-cgc - $(MAKE) install-@MAKE_GRACKET@-cgc $(MAKE) install-common-middle + $(MAKE) install-bc-common-post-collects install-cgc: $(MAKE) install-cgc-common - @RUN_RACKET_CGC@ $(SETUP_ARGS) + cd bc && $(MAKE) install-setup-cgc $(PROPAGATE_VARIABLES) $(MAKE) install-common-last plain-install-cgc: @@ -245,20 +210,16 @@ plain-install-cgc: install-no-cgc: $(NOOP) -install-gracket-cgc: - cd bc/gracket && $(MAKE) install-cgc - # Both install ---------------------------------------- install-both-common: $(MAKE) install-common-first cd bc && $(MAKE) install-both - $(MAKE) install-@MAKE_GRACKET@-both $(MAKE) install-common-middle install-both: $(MAKE) install-both-common - @RUN_RACKET_MAIN_VARIANT@ $(SETUP_ARGS) + cd bc && $(MAKE) install-setup-3m $(MAKE) install-common-last plain-install-both: @@ -268,9 +229,6 @@ plain-install-both: install-no-both: $(NOOP) -install-gracket-both: - cd bc/gracket && $(MAKE) install-both - # CS install ---------------------------------------- CS_SETUP_INSTALL_TARGET = setup-install @@ -278,7 +236,7 @@ CS_SETUP_INSTALL_TARGET = setup-install install-cs-common: $(MAKE) install-common-first cd cs/c && $(MAKE) plain-install - $(MAKE) install-common-middle MIDDLE_POST_COLLECTS=install-no-post-collects + $(MAKE) install-common-middle cd cs/c && $(MAKE) $(CS_SETUP_INSTALL_TARGET) $(PROPAGATE_VARIABLES) $(MAKE) install-common-last @@ -307,23 +265,5 @@ install-pdf: clean: cd bc && $(MAKE) clean - if [ -d bc/gracket ]; then cd bc/gracket; $(MAKE) clean; fi rm -rf compiled rm -f TAGS - -# Reconfigure ---------------------------------------- - -SRC_MAKEFILES = $(srcdir)/Makefile.in $(srcdir)/bc/Makefile.in \ - $(srcdir)/bc/src/Makefile.in $(srcdir)/bc/gracket/Makefile.in \ - $(srcdir)/bc/gc2/Makefile.in $(srcdir)/bc/gracket/gc2/Makefile.in \ - $(srcdir)/rktio/Makefile.in $(srcdir)/bc/dynsrc/Makefile.in - -# Only fire the `Makefile` rule explicitly via `reconfigure` -NO_RECONFIG = -ON_RECONFIG = no - -reconfigure: - $(MAKE) Makefile NO_RECONFIG=no ON_RECONFIG= - -Makefile$(ON_RECONFIG): $(srcdir)/configure $(srcdir)/cfg-bc $(srcdir)/cfg-cs $(SRC_MAKEFILES) - $(srcdir)/configure --enable-bc $(CONFIGURE_ARGS_qq) $(MORE_CONFIGURE_ARGS) diff --git a/racket/src/ac/boothelp.m4 b/racket/src/ac/boothelp.m4 new file mode 100644 index 0000000000..fc1ac997ee --- /dev/null +++ b/racket/src/ac/boothelp.m4 @@ -0,0 +1,10 @@ +if test "${enable_boothelp}" = "yes" ; then + CS_BOOTSTRAP_HELP="3m" + CS_USE_BOOTSTRAP_HELP="BOOTFILE_RACKET=../../bc/racket3m" +else + CS_BOOTSTRAP_HELP="no-3m" + CS_USE_BOOTSTRAP_HELP="" +fi + +AC_SUBST(CS_BOOTSTRAP_HELP) +AC_SUBST(CS_USE_BOOTSTRAP_HELP) diff --git a/racket/src/ac/boothelp_arg.m4 b/racket/src/ac/boothelp_arg.m4 new file mode 100644 index 0000000000..c2d7415187 --- /dev/null +++ b/racket/src/ac/boothelp_arg.m4 @@ -0,0 +1 @@ +AC_ARG_ENABLE(boothelp, [ --enable-boothelp use BC to boot CS]) diff --git a/racket/src/ac/make-configure b/racket/src/ac/make-configure index e22795c807..5c291448e9 100755 --- a/racket/src/ac/make-configure +++ b/racket/src/ac/make-configure @@ -2,11 +2,16 @@ #| cd "`dirname \"$0\"`" src="../bc/configure.ac" -tgt="../cfg-bc" +tgt="../bc/configure" if [ ! -e "$src" ]; then echo "abort: did not find $src"; exit 1; fi echo "Creating $tgt from $src" autoconf "$src" | racket "$0" > "$tgt" chmod +x "$tgt" +src="../bc/configure-parent.ac" +tgt="../cfg-bc" +echo "Creating $tgt from $src" +autoconf "$src" | racket "$0" > "$tgt" +chmod +x "$tgt" src="../rktio/configure.ac" tgt="../rktio/configure" echo "Creating $tgt from $src" diff --git a/racket/src/ac/path.m4 b/racket/src/ac/path.m4 index 1f3dfccd84..1f85d1b14a 100644 --- a/racket/src/ac/path.m4 +++ b/racket/src/ac/path.m4 @@ -97,8 +97,6 @@ fi GUI_COLLECTS_PATH="${COLLECTS_PATH}" GUI_CONFIG_PATH="${CONFIG_PATH}" -CS_BOOTSTRAP_HELP="no-3m" - ######################################## AC_SUBST(collectsdir) @@ -130,7 +128,6 @@ AC_SUBST(CGC_INSTALLED) AC_SUBST(CGC_CAP_INSTALLED) AC_SUBST(MAIN_VARIANT) AC_SUBST(MAIN_MAKE_TARGET) -AC_SUBST(CS_BOOTSTRAP_HELP) AC_SUBST(MAKE_LOCAL_RACKET) diff --git a/racket/src/ac/rktio_keep.m4 b/racket/src/ac/rktio_keep.m4 new file mode 100644 index 0000000000..abfb18b219 --- /dev/null +++ b/racket/src/ac/rktio_keep.m4 @@ -0,0 +1,18 @@ +# Pass certain configure args on to rktio +keep_configure_args= +fixup_prev= +eval "set x $ac_configure_args" +shift +for fixup_arg +do + case $fixup_arg in + # Strip away all feature choices + -enable* | --enable* | -disable* | --disable*) + ;; + *) + case $fixup_arg in + *\'*) fixup_arg=`echo "$fixup_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + keep_configure_args="$keep_configure_args '$fixup_arg'" ;; + esac +done diff --git a/racket/src/bc/Makefile.in b/racket/src/bc/Makefile.in index 4337f7a279..51f06d1bfa 100644 --- a/racket/src/bc/Makefile.in +++ b/racket/src/bc/Makefile.in @@ -15,6 +15,7 @@ libpltdir = @libpltdir@ libpltdir_rel = @libpltdir_rel@ etcpltdir = @etcpltdir@ sharepltdir = @sharepltdir@ +configdir = @etcpltdir@ collectsdir = @collectsdir@ builddir = @builddir@ @@ -82,12 +83,12 @@ bin: $(MAKE) @MZBINTARGET@ normal-bin: - $(MAKE) @MAIN_VARIANT@ + $(MAKE) @MAIN_VARIANT@-with-gracket common: $(MAKE) g-c $(MAKE) @FOREIGNTARGET@ - $(MAKE) rktio + $(MAKE) rktio-lib cgc: $(MAKE) cgc-core @@ -112,6 +113,26 @@ cgc-core: cd gc2; $(MAKE) ../mzcom@MMM@@EXE_SUFFIX@ $(MAKE) sysinfer@MMM@ +3m-with-gracket: + $(MAKE) 3m + $(MAKE) @MAKE_GRACKET@-3m + +gracket-3m: + cd gracket && $(MAKE) 3m + +no-3m: + $(NOOP) + +cgc-with-gracket: + $(MAKE) cgc + $(MAKE) @MAKE_GRACKET@-cgc + +gracket-cgc: + cd gracket && $(MAKE) cgc + +no-cgc: + $(NOOP) + both: $(MAKE) cgc-core $(MAKE) 3m @@ -152,8 +173,8 @@ foreign-stuff: foreign-stub: cd $(FOREIGN_DIR); $(MAKE) stub -rktio: - cd ../rktio; $(MAKE) CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" +rktio-lib: + cd rktio; $(MAKE) CFLAGS="$(CFLAGS)" CPPFLAGS="$(CPPFLAGS)" mzlibrary: cd src; $(MAKE) all @@ -164,7 +185,7 @@ mzlibrary: no-cgc-needed: cd src; $(MAKE) plain-objs $(MAKE) @FOREIGNTARGET@ - $(MAKE) rktio + $(MAKE) rktio-lib $(MAKE) main.@LTO@ $(MAKE) mingw-other cd dynsrc; $(MAKE) ../starter@EXE_SUFFIX@ @@ -184,7 +205,7 @@ FOREIGN_USED_OBJSLIB = $(FOREIGN_OBJSLIB) FOREIGN_NOT_USED_LIB = $(FOREIGN_OBJ) FOREIGN_NOT_USED_OBJSLIB = $(FOREIGN_OBJ) -LIBRKTIO = ../rktio/librktio.@LTA@ +LIBRKTIO = rktio/librktio.@LTA@ LIBRKTIO_FOR_DLL_la = $(LIBRKTIO) LIBRKTIO_FOR_DLL_a = LIBRKTIO_FOR_LIB_la = @@ -400,6 +421,36 @@ install-both: $(MAKE) @MZINSTALLTARGET@-cgc $(MAKE) @MZINSTALLTARGET@-@MAIN_VARIANT@-final +install-lib-finish: + if [ "$(DESTDIR)" = "" ]; then \ + @LIBFINISH@ "$(LIB_FINISH_DIR)"; \ + fi + +install-post-collects: + $(MAKE) install-@MAKE_GRACKET@-post-collects + +install-gracket-post-collects: + cd gracket && $(MAKE) install-post-collects + +install-no-post-collects: + $(NOOP) + +# Intended for configuration by an external makefile that drives this one: +SELF_ROOT_CONFIG_FLAG = -Z +SELF_ROOT_CONFIG_DIR = ../../../../build/config +SELF_ROOT_CONFIG = $(SELF_ROOT_CONFIG_FLAG) $(SELF_ROOT_CONFIG_DIR) + +INST_CONFIG = -X @DIRCVTPRE@"$(DESTDIR)$(collectsdir)"@DIRCVTPOST@ -G @DIRCVTPRE@"$(DESTDIR)$(configdir)"@DIRCVTPOST@ +SETUP_RACKET_FLAGS = $(INST_CONFIG) $(SETUP_MACHINE_FLAGS) $(SELF_ROOT_CONFIG) @INSTALL_SETUP_RACKET_FLAGS@ +SETUP_SETUP_FLAGS = @INSTALL_SETUP_FLAGS@ $(PLT_SETUP_OPTIONS) $(PLT_ISO) +SETUP_ARGS = $(SETUP_RACKET_FLAGS) -N "raco" -l- setup $(SETUP_SETUP_FLAGS) + +install-setup-3m: + @RUN_RACKET_MMM@ $(SETUP_ARGS) + +install-setup-cgc: + @RUN_RACKET_CGC@ $(SETUP_ARGS) + # Unix install ---------------------------------------- # Prefix might be relative to srcdir, or it might be absolute, so we @@ -430,7 +481,7 @@ unix-install-cgc: unix-install-libs-cgc: cd ..; $(ICP_LIB) bc/libmzgc.@LIBSFX@ "$(DESTDIR)$(libdir)/libmzgc.@LIBSFX@" cd ..; $(ICP_LIB) bc/libracket.@LIBSFX@ "$(DESTDIR)$(libdir)/libracket.@LIBSFX@" - cd ..; $(ICP_STATIC_LIB) rktio/librktio.@LIBSFX@ "$(DESTDIR)$(libdir)/librktio.@LIBSFX@" + cd ..; $(ICP_STATIC_LIB) bc/rktio/librktio.@LIBSFX@ "$(DESTDIR)$(libdir)/librktio.@LIBSFX@" cd ..; $(STRIP_LIB_DEBUG) "$(DESTDIR)$(libdir)/libmzgc.@LIBSFX@" cd ..; $(STRIP_LIB_DEBUG) "$(DESTDIR)$(libdir)/libracket.@LIBSFX@" @@ -449,7 +500,7 @@ unix-install-3m: unix-install-libs-3m: cd ..; $(ICP_LIB) bc/libracket3m.@LIBSFX@ "$(DESTDIR)$(libdir)/libracket3m.@LIBSFX@" - cd ..; $(ICP_STATIC_LIB) rktio/librktio.@LIBSFX@ "$(DESTDIR)$(libdir)/librktio.@LIBSFX@" + cd ..; $(ICP_STATIC_LIB) bc/rktio/librktio.@LIBSFX@ "$(DESTDIR)$(libdir)/librktio.@LIBSFX@" cd ..; $(STRIP_LIB_DEBUG) "$(DESTDIR)$(libdir)/libracket3m.@LIBSFX@" unix-no-install-libs-3m: @@ -573,3 +624,21 @@ unix-cygwin-install-3m-final: mz-gdbinit: $(srcdir)/mk-gdbinit.rkt $(srcdir)/src/stypes.h $(RACKET) $(srcdir)/mk-gdbinit.rkt + + +# Reconfigure ---------------------------------------- + +SRC_MAKEFILES = $(srcdir)/Makefile.in \ + $(srcdir)/src/Makefile.in $(srcdir)/gracket/Makefile.in \ + $(srcdir)/gc2/Makefile.in $(srcdir)/gracket/gc2/Makefile.in \ + $(srcdir)/../rktio/Makefile.in $(srcdir)/dynsrc/Makefile.in + +# Only fire the `Makefile` rule explicitly via `reconfigure` +NO_RECONFIG = +ON_RECONFIG = no + +reconfigure: + $(MAKE) Makefile NO_RECONFIG=no ON_RECONFIG= + +Makefile$(ON_RECONFIG): $(srcdir)/configure $(SRC_MAKEFILES) + $(srcdir)/configure $(CONFIGURE_ARGS_qq) $(MORE_CONFIGURE_ARGS) diff --git a/racket/src/bc/configure b/racket/src/bc/configure new file mode 100755 index 0000000000..433f32593f --- /dev/null +++ b/racket/src/bc/configure @@ -0,0 +1,8690 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.69. +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +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 \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org about your system, +$0: including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO 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'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME= +PACKAGE_TARNAME= +PACKAGE_VERSION= +PACKAGE_STRING= +PACKAGE_BUGREPORT= +PACKAGE_URL= + +ac_unique_file="Racket" +ac_unique_file="src/bignum.c" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +enable_option_checking=no +ac_subst_vars='LTLIBOBJS +LIBOBJS +subdirs +CROSS_COMPILE_TARGET_KIND +STARTUP_AS_AUTO +STARTUP_AS_C +STARTUP_AS_BYTECODE +BOOT_MODE +CGC_IF_NEEDED_FOR_MMM +RUN_RACKET_MAIN_VARIANT +RUN_RACKET_MMM +RUN_RACKET_CGC +INSTALL_LIBS_ENABLE +INSTALL_SETUP_RACKET_FLAGS +INSTALL_SETUP_FLAGS +LTA +LTO +LIBRACKET_DEP +FOREIGNTARGET +FOREIGN_CONVENIENCE +FOREIGN_OBJSLIB +FOREIGN_IF_USED +EXTRA_OSK_LIBS +OSKHOME +DLLTOOL +WINDRES +DIRCVTPOST +DIRCVTPRE +PWD +WX_MMD_FLAG +INCLUDEDEP +USE_WXPRECOMP +WXPRECOMP +MAKE_FINISH +MRLIBINSTALL +ICP_STATIC_LIB +ICP_LIB +ICP +WXVARIANT +WXLIBS +LIBSFX +OWN_LIBFFI +SO_SUFFIX +EXE_SUFFIX +FRAMEWORK_PREFIX +FRAMEWORK_REL_INSTALL +FRAMEWORK_INSTALL_DIR +NOT_MINGW +MINGW +NOT_OSX +OSX +EXTRA_GMP_DEP +EXTRA_GMP_OBJ +MZINSTALLBINDIR +MZINSTALLTARGET +MZBINTARGET +XFORMFLAGS +GCDIR +MROPTIONS +GC2OPTIONS +CGCOPTIONS +MZOPTIONS +OPTIONS +X_EXTRA_LIBS +X_PRE_LIBS +X_LIBS +X_CFLAGS +x_libraries +x_includes +DYN_CFLAGS +PLAIN_CC +POST_LINKER +MZLINKER +REZ +STRIP_LIB_DEBUG +STRIP_DEBUG +ARFLAGS +STATIC_AR +AR +AS +SED +PROFFLAGS +COMPFLAGS +PREFLAGS +EGREP +GREP +STRIP +platform_ar_found +RANLIB +CPP +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +MAKE_INSTALL_PKGSCOPE +INSTALL_PKGSCOPE +MAKE_LOCAL_RACKET +MAIN_MAKE_TARGET +MAIN_VARIANT +CGC_CAP_INSTALLED +CGC_INSTALLED +CGC +MMM_CAP_INSTALLED +MMM_INSTALLED +MMM +INSTALL_ORIG_TREE +LIBFINISH +MAKE_GRACKET +MAKE_COPYTREE +GR_APP_CONFIG_PATH +GUI_CONFIG_PATH +CONFIG_PATH +GR_APP_COLLECTS_PATH +GUI_COLLECTS_PATH +COLLECTS_PATH +includepltdir +etcpltdir +sharepltdir +libpltdir_rel +libpltdir +appsdir +collectsdir +MACLIBRKT_LINK_MODE +target_os +target_vendor +target_cpu +target +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +appsdir +collectsdir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_gracket +enable_jit +enable_foreign +enable_places +enable_futures +enable_float +enable_floatinstead +enable_extflonum +enable_racket +enable_origtree +enable_useprefix +enable_pkgscope +enable_docs +enable_usersetup +enable_natipkg +enable_shared +enable_dynlib +enable_lt +enable_libs +enable_libffi +enable_sdk +enable_xonx +enable_macprefix +enable_libfw +enable_userfw +enable_embedfw +enable_mac64 +enable_bcdefault +enable_csonly +enable_csdefault +enable_sgc +enable_sgcdebug +enable_generations +enable_backtrace +enable_cify +enable_pthread +enable_stackup +enable_bigendian +enable_ffipoll +enable_gprof +enable_gcov +enable_noopt +enable_ubsan +enable_jitframe +enable_werror +enable_crossany +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP' +ac_subdirs_all='foreign/libffi ' + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +collectsdir='${exec_prefix}/share/${PACKAGE}/collects' +appsdir='${exec_prefix}/share/applications' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -collectsdir | --collectsdir | --collectsdi | --collectsd | --collects | --dv) + ac_prev=collectsdir ;; + -collectsdir=* | --collectsdir=* | --collectsdi=* | --collectsd=* | --collects=* | --dv=*) + collectsdir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -appsdir | --appsdir | --appsdi | --appsd | --apps | --pd) + ac_prev=appsdir ;; + -appsdir=* | --appsdir=* | --appsdi=* | --appsd=* | --apps=* | --pd=*) + appsdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir collectsdir appsdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +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 this package to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] + --collectsdir=DIR base collections [EPREFIX/share/PACKAGE/collects] + --appsdir=DIR .desktop files [EPREFIX/share/applications] +_ACEOF + + cat <<\_ACEOF + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] + --target=TARGET configure for building compilers for TARGET [HOST] +_ACEOF +fi + +if test -n "$ac_init_help"; then + + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-gracket build GRacket as well as Racket (enabled by default) + --enable-jit support JIT compiler (enabled by default) + --enable-foreign support foreign calls (enabled by default) + --enable-places support places (3m only; usually enabled by default) + --enable-futures support futures (usually enabled by default) + --enable-float support single-precision floats (enabled by default) + --enable-floatinstead use single-precision by default (NOT RECOMMENDED) + --enable-extflonum support extflonums (enabled by default, if available) + --enable-racket= use as Racket to build; or "auto" to create + --enable-origtree install with original directory structure + --disable-useprefix ignore any --prefix setting + --enable-pkgscope= set `raco pkg' default: installation, user, or shared + --enable-docs build docs on install (enabled by default) + --enable-usersetup setup user-specific files on install + --enable-natipkg add "-natipkg" to library subpath + --enable-shared create shared libraries (ok, but not recommended) + --enable-dynlib same as --enable-shared + --enable-lt= use instead of libtool; disable to use bundled + --enable-libs install static libraries (enabled by default for Unix) + --enable-libffi use installed libffi (enabled by default for Unix) + --enable-sdk= use Mac OS 10.4 SDK directory + --enable-sdk5= use Mac OS 10.5 SDK directory + --enable-sdk6= use Mac OS 10.6 SDK directory + --enable-sdk9= use Mac OS 10.9 SDK directory + --enable-ios= use iOS SDK directory + --enable-sysroot= use sysroot directory (e.g., for Android) + --enable-xonx use Unix style (e.g., use Gtk) for Mac OS + --enable-macprefix allow --prefix with a Mac OS install + --enable-libfw install Mac OS frameworks to /Library/Frameworks + --enable-userfw install Mac OS frameworks to ~/Library/Frameworks + --enable-embedfw embed Mac OS framework content in executables + --enable-mac64 allow 64-bit Mac OS build (enabled by default) + --enable-bcdefault install BC without suffix + --enable-bconly BC default, and skip CS build + --enable-csdefault install CS without suffix + --enable-csonly CS default, and skip BC build + --enable-sgc obsolte; Senora GC is always enabled + --enable-sgcdebug use Senora GC for debugging (expensive; CGC only) + --enable-generations 3m: support generational GC (enabled by default) + --enable-backtrace 3m: support GC backtrace dumps (expensive debug mode) + --enable-cify compile startup code to C instead of bytecode + --enable-pthread link with pthreads (usually auto-enabled if needed) + --enable-stackup assume "up" if stack direction cannot be determined + --enable-bigendian assume "big" if endianness cannot be determined + --enable-ffipoll FFI calls only when embedding program explicitly polls + --enable-gprof compile for profiling with gprof (gcc only) + --enable-gcov compile to gather gcov statistics (gcc3 only) + --enable-strip strip debug on install (usually enabled by default) + --enable-noopt drop -O C flags (useful for low-level debugging) + --enable-ubsan compile with -fsanitize=undefined + --enable-jitframe x86_64: use frame pointer for internal calls + --enable-werror compile sources with warnings as errors + --enable-crossany Record own cross target as machine-independent + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + 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. + +Report bugs to the package provider. +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +configure +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +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\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 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 + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$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_compile + +# 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\"" +$as_echo "$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 + $as_echo "$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_echo "$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_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +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\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 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 + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_mongrel + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +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\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { 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\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES +# -------------------------------------------- +# Tries to find the compile-time value of EXPR in a program that includes +# INCLUDES, setting VAR accordingly. Returns whether the value could be +# computed +ac_fn_c_compute_int () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) >= 0)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_lo=0 ac_mid=0 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=$ac_mid; break +else + as_fn_arith $ac_mid + 1 && ac_lo=$as_val + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) < 0)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=-1 ac_mid=-1 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) >= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_lo=$ac_mid; break +else + as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + ac_lo= ac_hi= +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=$ac_mid +else + as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in #(( +?*) eval "$3=\$ac_lo"; ac_retval=0 ;; +'') ac_retval=1 ;; +esac + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +static long int longval () { return $2; } +static unsigned long int ulongval () { return $2; } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (($2) < 0) + { + long int i = longval (); + if (i != ($2)) + return 1; + fprintf (f, "%ld", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ($2)) + return 1; + fprintf (f, "%lu", i); + } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + echo >>conftest.val; read $3 &5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_type +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 $as_me, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 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 || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +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 + + + +ac_config_headers="$ac_config_headers mzconfig.h" + + +ac_aux_dir= +for ac_dir in ../lt "$srcdir"/../lt; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in ../lt \"$srcdir\"/../lt" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking target system type" >&5 +$as_echo_n "checking target system type... " >&6; } +if ${ac_cv_target+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$target_alias" = x; then + ac_cv_target=$ac_cv_host +else + ac_cv_target=`$SHELL "$ac_aux_dir/config.sub" $target_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $target_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_target" >&5 +$as_echo "$ac_cv_target" >&6; } +case $ac_cv_target in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical target" "$LINENO" 5;; +esac +target=$ac_cv_target +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_target +shift +target_cpu=$1 +target_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +target_os=$* +IFS=$ac_save_IFS +case $target_os in *\ *) target_os=`echo "$target_os" | sed 's/ /-/g'`;; esac + + +# The aliases save the names the user supplied, while $host etc. +# will get canonicalized. +test -n "$target_alias" && + test "$program_prefix$program_suffix$program_transform_name" = \ + NONENONEs,x,x, && + program_prefix=${target_alias}- + + +# Check whether --enable-gracket was given. +if test "${enable_gracket+set}" = set; then : + enableval=$enable_gracket; +else + enable_gracket=yes +fi + +# Check whether --enable-jit was given. +if test "${enable_jit+set}" = set; then : + enableval=$enable_jit; +else + enable_jit=yes +fi + +# Check whether --enable-foreign was given. +if test "${enable_foreign+set}" = set; then : + enableval=$enable_foreign; +else + enable_foreign=yes +fi + +# Check whether --enable-places was given. +if test "${enable_places+set}" = set; then : + enableval=$enable_places; +fi + +# Check whether --enable-futures was given. +if test "${enable_futures+set}" = set; then : + enableval=$enable_futures; +fi + +# Check whether --enable-float was given. +if test "${enable_float+set}" = set; then : + enableval=$enable_float; +else + enable_float=yes +fi + +# Check whether --enable-floatinstead was given. +if test "${enable_floatinstead+set}" = set; then : + enableval=$enable_floatinstead; +fi + +# Check whether --enable-extflonum was given. +if test "${enable_extflonum+set}" = set; then : + enableval=$enable_extflonum; +else + enable_extflonum=default +fi + + +# Check whether --enable-racket was given. +if test "${enable_racket+set}" = set; then : + enableval=$enable_racket; +fi + + +PREFIX_PATH_RELATIVE=/.. + +# Check whether --enable-origtree was given. +if test "${enable_origtree+set}" = set; then : + enableval=$enable_origtree; +fi + +# Check whether --enable-useprefix was given. +if test "${enable_useprefix+set}" = set; then : + enableval=$enable_useprefix; +fi + +# Check whether --enable-pkgscope was given. +if test "${enable_pkgscope+set}" = set; then : + enableval=$enable_pkgscope; +fi + + +# Check whether --enable-docs was given. +if test "${enable_docs+set}" = set; then : + enableval=$enable_docs; +else + enable_docs=yes +fi + +# Check whether --enable-usersetup was given. +if test "${enable_usersetup+set}" = set; then : + enableval=$enable_usersetup; +fi + + + +# Check whether --enable-natipkg was given. +if test "${enable_natipkg+set}" = set; then : + enableval=$enable_natipkg; +fi + + + +# Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; +fi + +# Check whether --enable-dynlib was given. +if test "${enable_dynlib+set}" = set; then : + enableval=$enable_dynlib; +fi + +# Check whether --enable-lt was given. +if test "${enable_lt+set}" = set; then : + enableval=$enable_lt; LIBTOOLPROG="$enableval" +else + enable_lt=default +fi + +# Check whether --enable-libs was given. +if test "${enable_libs+set}" = set; then : + enableval=$enable_libs; +fi + + + +# Check whether --enable-libffi was given. +if test "${enable_libffi+set}" = set; then : + enableval=$enable_libffi; +else + enable_libffi=default +fi + + +# Check whether --enable-sdk was given. +if test "${enable_sdk+set}" = set; then : + enableval=$enable_sdk; +fi + +# Check whether --enable-sdk was given. +if test "${enable_sdk+set}" = set; then : + enableval=$enable_sdk; +fi + +# Check whether --enable-sdk was given. +if test "${enable_sdk+set}" = set; then : + enableval=$enable_sdk; +fi + +# Check whether --enable-sdk was given. +if test "${enable_sdk+set}" = set; then : + enableval=$enable_sdk; +fi + +# Check whether --enable-sdk was given. +if test "${enable_sdk+set}" = set; then : + enableval=$enable_sdk; +fi + +# Check whether --enable-sdk was given. +if test "${enable_sdk+set}" = set; then : + enableval=$enable_sdk; +fi + +# Check whether --enable-xonx was given. +if test "${enable_xonx+set}" = set; then : + enableval=$enable_xonx; +fi + +# Check whether --enable-macprefix was given. +if test "${enable_macprefix+set}" = set; then : + enableval=$enable_macprefix; +fi + +# Check whether --enable-libfw was given. +if test "${enable_libfw+set}" = set; then : + enableval=$enable_libfw; +fi + +# Check whether --enable-userfw was given. +if test "${enable_userfw+set}" = set; then : + enableval=$enable_userfw; +fi + +# Check whether --enable-embedfw was given. +if test "${enable_embedfw+set}" = set; then : + enableval=$enable_embedfw; +fi + +# Check whether --enable-mac64 was given. +if test "${enable_mac64+set}" = set; then : + enableval=$enable_mac64; +else + enable_mac64=yes +fi + + + +# Check whether --enable-bcdefault was given. +if test "${enable_bcdefault+set}" = set; then : + enableval=$enable_bcdefault; +fi + +# Check whether --enable-csonly was given. +if test "${enable_csonly+set}" = set; then : + enableval=$enable_csonly; +fi + +# Check whether --enable-csdefault was given. +if test "${enable_csdefault+set}" = set; then : + enableval=$enable_csdefault; +fi + +# Check whether --enable-csonly was given. +if test "${enable_csonly+set}" = set; then : + enableval=$enable_csonly; +fi + + + +# Check whether --enable-sgc was given. +if test "${enable_sgc+set}" = set; then : + enableval=$enable_sgc; +fi + +# Check whether --enable-sgcdebug was given. +if test "${enable_sgcdebug+set}" = set; then : + enableval=$enable_sgcdebug; +fi + +# Check whether --enable-generations was given. +if test "${enable_generations+set}" = set; then : + enableval=$enable_generations; +else + enable_generations=yes +fi + +# Check whether --enable-backtrace was given. +if test "${enable_backtrace+set}" = set; then : + enableval=$enable_backtrace; +fi + + +# Check whether --enable-cify was given. +if test "${enable_cify+set}" = set; then : + enableval=$enable_cify; +fi + + +# Check whether --enable-pthread was given. +if test "${enable_pthread+set}" = set; then : + enableval=$enable_pthread; +fi + +# Check whether --enable-stackup was given. +if test "${enable_stackup+set}" = set; then : + enableval=$enable_stackup; +fi + +# Check whether --enable-bigendian was given. +if test "${enable_bigendian+set}" = set; then : + enableval=$enable_bigendian; +fi + +# Check whether --enable-ffipoll was given. +if test "${enable_ffipoll+set}" = set; then : + enableval=$enable_ffipoll; +fi + + +# AC_ARG_ENABLE(oskit, [ --enable-oskit compile OSKit-based Racket kernel]) +# AC_ARG_ENABLE(smalloskit, [ --enable-smalloskit compile small OSKit-based Racket kernel]) + +# Check whether --enable-gprof was given. +if test "${enable_gprof+set}" = set; then : + enableval=$enable_gprof; +fi + +# Check whether --enable-gcov was given. +if test "${enable_gcov+set}" = set; then : + enableval=$enable_gcov; +fi + + +# Check whether --enable-noopt was given. +if test "${enable_noopt+set}" = set; then : + enableval=$enable_noopt; +fi + + +STRIP_DEBUG=":" +STRIP_LIB_DEBUG=":" +strip_debug_flags="" +enable_strip_by_default=yes +strip_needs_dash_s=no + +# Check whether --enable-noopt was given. +if test "${enable_noopt+set}" = set; then : + enableval=$enable_noopt; +fi + +# Check whether --enable-ubsan was given. +if test "${enable_ubsan+set}" = set; then : + enableval=$enable_ubsan; +fi + + +# Check whether --enable-jitframe was given. +if test "${enable_jitframe+set}" = set; then : + enableval=$enable_jitframe; +fi + + +# Check whether --enable-werror was given. +if test "${enable_werror+set}" = set; then : + enableval=$enable_werror; +fi + + +# Check whether --enable-crossany was given. +if test "${enable_crossany+set}" = set; then : + enableval=$enable_crossany; +fi + + + +###### Some flags imply other flags ####### + +if test "${enable_smalloskit}" = "yes" ; then + enable_oskit=yes +fi + +if test "${enable_oskit}" = "yes" ; then + enable_gracket=no +fi + +if test "${enable_dynlib}" = "no" ; then + enable_shared=no +fi +if test "${enable_dynlib}" = "yes" ; then + enable_shared=yes +fi +if test "${enable_shared}" != "yes" ; then + enable_lt=no +fi +if test "${enable_lt}" = "no" ; then + LIBTOOLPROG="" +fi +if test "${enable_lt}" = "yes" ; then + echo "ERROR: no program given for libtool!" + echo " Supply a program for --enable-lt, something like this:" + echo " --enable-lt=/usr/bin/libtool" + exit 1 +fi +if test "${enable_lt}" = "default" ; then + if `which libtool > /dev/null` ; then + LIBTOOLPROG="libtool" + fi +fi + +if test "${enable_shared}" = "yes" ; then + case "$host_os" in + darwin*) + if test "${enable_xonx}" != "yes" ; then + echo "ERROR: don't use --enable-shared or --enable-dynlib under Mac OS," + echo " unless you also use --enable-xonx" + exit 1 + fi + ;; + *mingw*) + echo "ERROR: don't use --enable-shared or --enable-dynlib with mingw" + exit 1 + ;; + esac +fi + + +enable_quartz=no +if test "${enable_xonx}" = "yes" ; then + enable_quartz=no +else + case "$host_os" in + darwin*) + enable_quartz=yes + if test "${enable_origtree}" != "no" ; then + enable_origtree=yes + fi + if test "${prefix}" != "NONE" ; then + if test "${enable_macprefix}" != "yes" ; then + echo "ERROR: --prefix not allowed for a Mac OS build, unless either" + echo " --enable-xonx is supplied (to create a Unix-style" + echo " build), or " + echo " --enable-macprefix is supplied (to allow a Mac-style" + echo " installation, even though --prefix is normally used" + echo " for Unix-style installations)" + exit 1 + fi + fi + ;; + esac +fi + + +MACLIBRKT_LINK_MODE=fw + +if test "${enable_embedfw}" = "yes" ; then + MACLIBRKT_LINK_MODE=static +fi + + + + +if test "${enable_iconv}" = "" ; then + enable_iconv=yes +fi + +############## Install targets ################ + + +unixstyle=no +if test "${enable_origtree}" != "yes" -a "${enable_useprefix}" != "no" ; then + if test "${prefix}" != "NONE" ; then + unixstyle=yes + fi + if test "${exec_prefix}" != "NONE" ; then + unixstyle=yes + fi + if test "${bindir}" != '${exec_prefix}/bin' ; then + unixstyle=yes + fi + if test "${datadir}" != '${prefix}/share' ; then + # Newer autoconf uses datarootdir: + if test "${datadir}" = '${datarootdir}' ; then + if test "${datarootdir}" != '${prefix}/share' ; then + unixstyle=yes + fi + else + unixstyle=yes + fi + fi + if test "${libdir}" != '${exec_prefix}/lib' ; then + if test "${libdir}" != '${exec_prefix}/lib64' ; then + unixstyle=yes + fi + fi + if test "${includedir}" != '${prefix}/include' ; then + unixstyle=yes + fi + if test "${mandir}" != '${prefix}/man' ; then + if test "${mandir}" = '${datarootdir}/man' ; then + if test "${datarootdir}" != '${prefix}/share' ; then + unixstyle=yes + fi + else + unixstyle=yes + fi + fi + if test "${docdir}" != '${datarootdir}/doc/${PACKAGE}' ; then + unixstyle=yes + fi + if test "${collectsdir}" != '${exec_prefix}/share/${PACKAGE}/collects' ; then + unixstyle=yes + fi + if test "${appsdir}" != '${exec_prefix}/share/applications' ; then + unixstyle=yes + fi +fi + +MAKE_COPYTREE=no +if test "${unixstyle}" = "no" ; then + if test "${enable_useprefix}" = "no" -o "${prefix}" = "NONE" ; then + inplacebuild=yes + prefix=`cd "${srcdir}/..${PREFIX_PATH_RELATIVE}" && pwd` + else + MAKE_COPYTREE=copytree + fi + bindir='${prefix}/bin' + libpltdir='${prefix}/lib' + libpltdir_rel='lib' + sharepltdir='${prefix}/share' + etcpltdir='${prefix}/etc' + includepltdir='${prefix}/include' + docdir='${prefix}/doc' + mandir='${prefix}/man' + collectsdir='${prefix}/collects' + appsdir='${prefix}/share/applications' + COLLECTS_PATH="../collects" + CONFIG_PATH="../etc" + GR_APP_COLLECTS_PATH="../../../../collects" + GR_APP_CONFIG_PATH="../../../../etc" + INSTALL_ORIG_TREE=yes +else + if test "${prefix}" = "NONE" ; then + # Set prefix explicitly so we can use it during configure + prefix="${ac_default_prefix}" + fi + libpltdir="${libdir}/"'${PACKAGE}' + libpltdir_rel="" + if test "${libpltdir}" = '${exec_prefix}/lib/${PACKAGE}' ; then + if test "${bindir}" = '${exec_prefix}/bin' ; then + libpltdir_rel="lib/"'${PACKAGE}' + fi + fi + sharepltdir="${datadir}/"'${PACKAGE}' + etcpltdir="${sysconfdir}/"'${PACKAGE}' + includepltdir="${includedir}/"'${PACKAGE}' + MAKE_COPYTREE=copytree + COLLECTS_PATH='${collectsdir}' + CONFIG_PATH='${etcpltdir}' + GR_APP_COLLECTS_PATH="${COLLECTS_PATH}" + GR_APP_CONFIG_PATH="${CONFIG_PATH}" + INSTALL_ORIG_TREE=no +fi + +GUI_COLLECTS_PATH="${COLLECTS_PATH}" +GUI_CONFIG_PATH="${CONFIG_PATH}" + +######################################## + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +######################################## + +show_path_results() +{ + if test "${inplacebuild}" = "yes" ; then + echo ">>> Installation is in-place:" + echo " ${srcdir}/.." + echo " Configure with --prefix if you wanted to install somewhere else." + if test "${enable_quartz}" != "yes" ; then + echo " The --prefix option also makes the installed files better conform" + echo " to Unix installation conventions. (The configure script will show" + echo " you specific installation paths when --prefix is used.)" + fi + if test "${enable_shared}" != "yes" ; then + echo " Alternately, you can simply "'`'"mv' the in-place installation after" + echo " running "'`'"make install'." + fi + else + echo ">>> Installation targets:" + echo " executables : ${bindir}/..." + echo " core docs : ${docdir}/..." + echo " C libraries : ${libdir}/..." + echo " C headers : ${includepltdir}/..." + echo " platform libraries : ${libpltdir}/..." + echo " common libraries : ${sharepltdir}/..." + echo " base collections : ${collectsdir}/..." + echo " configuration : ${etcpltdir}/..." + echo " .desktop files : ${appsdir}/..." + echo " man pages : ${mandir}/..." + echo " where prefix = ${prefix}" + echo " and datarootdir = ${datarootdir}" + if test "${unixstyle}" = "yes" ; then + echo " and exec_prefix = ${exec_prefix}" + echo " and PACKAGE = racket" + fi + fi +} + + + +###### Make sure GRacket is really there ###### + +if test "${enable_gracket}" = "yes" ; then + if test ! -d $srcdir/gracket ; then + enable_gracket=no + fi +fi + +###### Tell user what flags we have ####### + +show_explicitly_disabled() +{ + if test "$1" = "no" ; then + echo "=== $2 disabled" + fi +} + +show_explicitly_enabled() +{ + if test "$1" = "yes" ; then + echo "=== $2 enabled" + if test "$3" != "" ; then + echo " $3" + fi + fi +} + +if test "${enable_bconly}" = "yes" ; then + if test "${enable_csonly}" = "yes" ; then + echo "ERROR: cannot specify both --enable-bconly and --enable-csonly" + fi +fi + +if test "${enable_cgcdefault}" = "yes" ; then + if test "${enable_bcdefault}" = "no" ; then + echo "ERROR: cannot specify both --enable-cgcdefault and --disable-bcdefault" + fi + if test "${enable_csdefault}" = "yes" ; then + echo "ERROR: cannot specify both --enable-cgcdefault and --enable-csdefault" + fi + enable_bcdefault=yes +fi + +if test "${enable_bcdefault}" = "yes" ; then + if test "${enable_csdefault}" = "yes" ; then + echo "ERROR: cannot specify both --enable-bcdefault and --enable-csdefault" + fi + if test "${enable_bconly}" = "no" ; then + echo "ERROR: cannot specify both --enable-bcdefault and --disable-bconly" + fi + enable_csdefault=no +fi + +if test "${enable_csdefault}" = "yes" ; then + if test "${enable_csonly}" = "no" ; then + echo "ERROR: cannot specify both --enable-csdefault and --disable-csonly" + fi + enable_bcdefault=no +fi + +if test "${enable_bconly}" = "yes" ; then + enable_bcdefault=yes + enable_csdefault=no +fi + +if test "${enable_csonly}" = "yes" ; then + enable_csdefault=yes + enable_bcdefault=no +fi + +if test "${enable_csdefault}" = "" ; then + if test "${enable_bcdefault}" = "" ; then + # Pick a default default here, but make it consistent with "src/configure" + enable_bcdefault=yes + enable_csdefault=no + fi +fi + +show_explicitly_enabled "${enable_csdefault}" "CS executables without suffix" +show_explicitly_enabled "${enable_bcdefault}" "BC executables without suffix" +show_explicitly_enabled "${enable_cgcdefault}" "CGC as default" "Note that this mode is NOT RECOMMENDED for normal Racket use" + + +show_explicitly_disabled "${enable_docs}" "Documentation build" +show_explicitly_enabled "${enable_usersetup}" "User-specific setup on install" +show_explicitly_enabled "${enable_natipkg}" "Adding \"-natipkg\" suffix to library subpath" + + +show_explicitly_enabled "${enable_xonx}" "Unix style" +show_explicitly_enabled "${enable_shared}" "Shared libraries" + +show_explicitly_disabled "${enable_gracket}" GRacket + +if test "$LIBTOOLPROG" != "" ; then + echo "=== Libtool program: $LIBTOOLPROG" +fi +show_explicitly_enabled "${enable_orig}" "Original install tree" + +show_explicitly_disabled "${enable_jit}" JIT + +show_explicitly_disabled "${enable_foreign}" Foreign +show_explicitly_enabled "${enable_libffi}" "Installed libffi" +show_explicitly_disabled "${enable_libffi}" "Installed libffi" + +show_explicitly_enabled "${enable_places}" Places +show_explicitly_disabled "${enable_places}" Places +show_explicitly_enabled "${enable_futures}" Futures +show_explicitly_disabled "${enable_futures}" Futures + +show_explicitly_enabled "${enable_sgcdebug}" "SGC debug mode" +show_explicitly_disabled "${enable_generations}" "3m generational GC" +show_explicitly_enabled "${enable_backtrace}" "3m GC backtraces" "Note that this mode is not intended for normal Racket use" +show_explicitly_enabled "${enable_cify}" "Startup compiled to C" +show_explicitly_disabled "${enable_cify}" "Startup compiled to C" + +show_explicitly_disabled "${enable_float}" "Single-precision floats" +show_explicitly_enabled "${enable_floatinstead}" "Single-precision default floats" "Note that this mode is NOT RECOMMENDED" +show_explicitly_enabled "${enable_extflonum}" "Extflonums" +show_explicitly_disabled "${enable_extflonum}" "Extflonums" + +show_explicitly_enabled "${enable_pthread}" "pthreads" +show_explicitly_disabled "${enable_pthread}" "pthreads" +show_explicitly_enabled "${enable_ffipoll}" "ffipoll" +show_explicitly_enabled "${enable_oskit}" "OSKit" +show_explicitly_enabled "${enable_smalloskit}" "OSKit small mode" + +show_explicitly_enabled "${enable_gprof}" "gprof" +show_explicitly_enabled "${enable_gcov}" "gcov" + +show_explicitly_enabled "${enable_jitframe}" "jitframe" + +show_explicitly_enabled "${enable_noopt}" "No-optimization" "Note that this mode is intended only for debugging purposes" +show_explicitly_enabled "${enable_strip}" "Debug-symbol stripping" +show_explicitly_disabled "${enable_strip}" "Debug-symbol stripping" + + +show_explicitly_enabled "${enable_libs}" "Installation of static libraries (if any)" +show_explicitly_disabled "${enable_libs}" "Installation of static libraries (if any)" + +INSTALL_LIBS_ENABLE=no-install + +if test "${enable_libs}" != "no" ; then + # Intended to be canceled for some platforms: + INSTALL_LIBS_ENABLE=install +fi + + +show_explicitly_disabled "${enable_mac64}" "64-bit Mac OS" + +show_explicitly_enabled "${enable_libfw}" "Frameworks-to-system" +show_explicitly_enabled "${enable_userfw}" "Frameworks-to-user" +show_explicitly_enabled "${enable_embedfw}" "embedded frameworks" + +if test "${enable_sdk}" != "" ; then + if test "${enable_sdk5}" != "" ; then + echo "ERROR: cannot specify both --enable-sdk and --enable-sdk5" + fi + if test "${enable_sdk6}" != "" ; then + echo "ERROR: cannot specify both --enable-sdk and --enable-sdk6" + fi + if test "${enable_ios}" != "" ; then + echo "ERROR: cannot specify both --enable-sdk and --enable-ios" + fi + echo "=== Using Mac OS 10.4 SDK directory ${enable_sdk}" +fi +if test "${enable_sdk5}" != "" ; then + if test "${enable_sdk6}" != "" ; then + echo "ERROR: cannot specify both --enable-sdk5 and --enable-sdk6" + fi + if test "${enable_ios}" != "" ; then + echo "ERROR: cannot specify both --enable-sdk5 and --enable-ios" + fi + echo "=== Using Mac OS 10.5 SDK directory ${enable_sdk}" +fi +if test "${enable_sdk6}" != "" ; then + if test "${enable_ios}" != "" ; then + echo "ERROR: cannot specify both --enable-sdk6 and --enable-ios" + fi + echo "=== Using Mac OS 10.6 SDK directory ${enable_sdk6}" +fi +if test "${enable_ios}" != "" ; then + echo "=== Using ios SDK directory ${enable_ios}" +fi + +if test "${enable_sysroot}" != "" ; then + echo "=== Using sysroot directory ${enable_sysroot}" +fi + + +if test "${enable_racket}" != "" ; then + if test "${enable_racket}" = "auto" ; then + echo "=== Creating and using local Racket executable" + else + if test ! -f "${enable_racket}"; then + echo "cannot find racket executable in ${enable_racket}" + exit 1 + else + echo "=== Using Racket executable ${enable_racket}" + fi + fi +fi + +INSTALL_PKGSCOPE=user +MAKE_INSTALL_PKGSCOPE=preserve +if test "${enable_pkgscope}" != "" ; then + case "${enable_pkgscope}" in + installation) + INSTALL_PKGSCOPE=installation + ;; + user) + INSTALL_PKGSCOPE=user + ;; + shared) + INSTALL_PKGSCOPE=shared + ;; + *) + echo "Unrecognized package scope: ${enable_pkgscope}" + exit 1 + ;; + esac + echo "=== Package scope: " $INSTALL_PKGSCOPE + MAKE_INSTALL_PKGSCOPE=adjust +fi + + + + + +show_explicitly_enabled "${enable_crossany}" "Own cross-compile target as machine-independent" + +CROSS_COMPILE_TARGET_KIND=machine +if test "${enable_crossany}" = "yes" ; then + CROSS_COMPILE_TARGET_KIND=any +fi + + +###### Some defaults ####### + +OPTIONS= + +# GC Directory +GCDIR=sgc + +MZBINTARGET=normal-bin +MZINSTALLTARGET=unix-install +MZINSTALLBINDIR='$(bindir)' + +MZOPTIONS= +CGCOPTIONS= +GC2OPTIONS= +DYN_CFLAGS= + +WXVARIANT="wx_xt" + +MROPTIONS= +INCLUDEDEP="#" +WX_MMD_FLAG= + +DIRCVTPRE= +DIRCVTPOST= +PWD=pwd +WINDRES=windres +DLLTOOL=dlltool + +PREFLAGS="$CPPFLAGS" + +OWN_LIBFFI="ON" + +ar_libtool_no_undefined="" +LIBRACKET_DEP="" + +EXE_SUFFIX= +SO_SUFFIX=.so + +POST_LINKER="echo" + +MMM=3m +MMM_INSTALLED= +MMM_CAP_INSTALLED= +CGC=cgc +CGC_INSTALLED=cgc +CGC_CAP_INSTALLED=CGC +MAIN_VARIANT=3m + +INSTALL_SETUP_FLAGS= +INSTALL_SETUP_RACKET_FLAGS= + +use_flag_pthread=yes +use_flag_posix_pthread=no +mzrt_needs_pthread=yes +skip_iconv_check=no +check_page_size=yes +try_no_nullability_completeness=no +check_for_unwind=no + +if test "${enable_cify}" = "yes" ; then + STARTUP_AS_BYTECODE=_bytecode + STARTUP_AS_C= + STARTUP_AS_AUTO=_auto +else + if test "${enable_cify}" = "no" ; then + STARTUP_AS_BYTECODE= + STARTUP_AS_C=_c + STARTUP_AS_AUTO=_auto + else + STARTUP_AS_BYTECODE=_bytecode + STARTUP_AS_C=_c + STARTUP_AS_AUTO= + fi +fi + +###### OSKit stuff ####### + +if test "${enable_oskit}" = "yes" ; then + OSKHOME=${OSKHOME:-/usr/local/oskit} + + if test ! -d ${OSKHOME}/bin ; then + as_fn_error $? "cannot find OSKit support; try defining OSKHOME" "$LINENO" 5 + fi + + CC=`(ls ${OSKHOME}/bin/*-oskit-gcc | head -1) 2> /dev/null` + if test ! -x "${CC}" ; then + as_fn_error $? "can't find *-oskit-gcc compiler script in ${OSKHOME}/bin" "$LINENO" 5 + fi + + PREFLAGS="-nostdinc -I${OSKHOME}/include/oskit -I${OSKHOME}/include/oskit/freebsd " + PREFLAGS="$PREFLAGS -I${OSKHOME}/include/oskit/c -I${OSKHOME}/include -I/usr/include" + + OPTIONS="-DOSKIT -DUSE_SENORA_GC -DSGC_AUTO_ROOTS=0" + + if test "${enable_smalloskit}" = "yes" ; then + EXTRA_OSK_LIBS= + else + EXTRA_OSK_LIBS="-loskit_linux_dev -loskit_linux_fs -loskit_diskpart -loskit_freebsd_net" + OPTIONS="$OPTIONS -DOSK_FILESYSTEMS_AND_ETHERNET" + fi + + MZBINTARGET=oskit +else + enable_oskit=no +fi + +###### float stuff ####### + +if test "${enable_floatinstead}" = "yes" ; then + enable_float=yes + +$as_echo "#define USE_SINGLE_FLOATS_AS_DEFAULT 1" >>confdefs.h + +fi + +if test "${enable_float}" = "yes" ; then + +$as_echo "#define USE_SINGLE_FLOATS 1" >>confdefs.h + +fi + +if test "${enable_extflonum}" = "no" ; then + +$as_echo "#define MZ_NO_EXTFLONUMS 1" >>confdefs.h + +fi + +###### Autoconfigure ####### + +COMPFLAGS="" + +ORIG_CC="${CC}" +ORIG_CPP="${CPP}" +# Include `--enable-portable-binary' by default for libffi +LIBFFI_CONFIGURE_EXTRAS=" --enable-portable-binary" +SUB_CONFIGURE_EXTRAS= + +if test "${enable_sysroot}" != "" ; then + PREFLAGS="--sysroot=${enable_sysroot} ${PREFLAGS}" + CPPFLAGS="--sysroot=${enable_sysroot} ${CPPFLAGS}" + LDFLAGS="--sysroot=${enable_sysroot} ${LDFLAGS}" + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CPPFLAGS="'"'"${PREFLAGS}"'"' + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} LDFLAGS="'"'"${LDFLAGS}"'"' +fi + +if test "${enable_ios}" != "" ; then + case "$host_cpu" in + aarch64) + IOS_ARCH=arm64 + ;; + *) + IOS_ARCH=$host_cpu + ;; + esac + case "${enable_ios}" in + iPhoneOS|iPhoneSimulator) + ios_sdk=/Applications/Xcode.app/Contents/Developer/Platforms/${enable_ios}.platform/Developer/SDKs/${enable_ios}.sdk + ;; + *) + ios_sdk="${enable_ios}" + ;; + esac + IOS_PHONE_VERS="6.0" + PREFLAGS="$PREFLAGS -DTARGET_OS_IPHONE=1" + CPPFLAGS="$CPPFLAGS -DTARGET_OS_IPHONE=1" + PREFLAGS="$PREFLAGS -arch ${IOS_ARCH} -isysroot ${ios_sdk} -miphoneos-version-min=${IOS_PHONE_VERS}" + CPPFLAGS="$CPPFLAGS -arch ${IOS_ARCH} -isysroot ${ios_sdk} -miphoneos-version-min=${IOS_PHONE_VERS}" + LDFLAGS="$LDFLAGS -arch ${IOS_ARCH} -isysroot ${ios_sdk} -miphoneos-version-min=${IOS_PHONE_VERS} -liconv" + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CFLAGS="'"'"${CFLAGS}"'"' + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CPPFLAGS="'"'"${PREFLAGS}"'"' + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} LDFLAGS="'"'"${LDFLAGS}"'"' +fi + + +if test "${enable_oskit}" = "no" ; then + # Auto-set CC, CPP, etc. + + if test "${CFLAGS}${CC}${CPP}" = "" ; then + starts_out_default=yes + else + starts_out_default=no + 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 +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + 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_CC="${ac_tool_prefix}gcc" + $as_echo "$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 +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + 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_ac_ct_CC="gcc" + $as_echo "$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 +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + 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_CC="${ac_tool_prefix}cc" + $as_echo "$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 +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + 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_CC="$ac_tool_prefix$ac_prog" + $as_echo "$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 +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + 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_ac_ct_CC="$ac_prog" + $as_echo "$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 +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +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\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +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\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +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\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +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\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { 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\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +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\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +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 + + 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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "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 ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-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. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # 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. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # 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 + # 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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$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. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # 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. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # 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 + # 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_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$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 + + + if test "$starts_out_default" = "yes" ; then + if test "$GCC" = "yes" ; then + # Auto selection of C compiler picked GCC, so we + # assume it also picked the GNU preprocessor; move + # auto-picked CFLAGS to PREFLAGS so that compilation + # and preprocessing are in sync (e.g., for optimization flags) + PREFLAGS="${CFLAGS} ${PREFLAGS}" + CPPFLAGS="${CFLAGS} ${CPPFLAGS}" + CFLAGS="" + fi + fi + if test "$AS" = '' ; then + AS="${ac_tool_prefix}as" + as_was_set=no + else + as_was_set=yes + fi +fi +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + 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_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$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 +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + 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_ac_ct_RANLIB="ranlib" + $as_echo "$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 +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +if test "$AR" = '' ; then + AR="${ac_tool_prefix}ar" + # Extract the first word of "$AR", so it can be a program name with args. +set dummy $AR; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_platform_ar_found+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$platform_ar_found"; then + ac_cv_prog_platform_ar_found="$platform_ar_found" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + 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_platform_ar_found="yes" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_platform_ar_found" && ac_cv_prog_platform_ar_found="no" +fi +fi +platform_ar_found=$ac_cv_prog_platform_ar_found +if test -n "$platform_ar_found"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $platform_ar_found" >&5 +$as_echo "$platform_ar_found" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test "$platform_ar_found" = 'no' ; then + AR="ar" + fi +fi +if test "$ARFLAGS" = '' ; then + ARFLAGS=rc +fi +SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} AR_FLAGS="'"'"${ARFLAGS}"'"' + +is_gmake=`make -v no-such-target-we-hope 2>&1 | grep "GNU Make"` + +# If using gcc, we want all warnings: +is_gcc=`$CC -v 2>&1 | tail -n 1 | grep -E '^gcc version [[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+ \([^\)]+\)[[:space:]]*$'` + +# We also need to test if $CC is gcc itself because on mac, +# where clang impersonates gcc, although is_gcc is false, we want +# to use it as if it was gcc. +# See https://github.com/racket/racket/pull/2897#pullrequestreview-314906673 +if test "$is_gcc" != "" || test "`basename $CC`" = "gcc"; then + COMPFLAGS="$COMPFLAGS -Wall" + + # Use -MMD when we have gcc and gnumake: + if test "$is_gmake" = "" ; then + WX_MMD_FLAG="" + else + WX_MMD_FLAG="-MMD" + fi + + # Compile mzdyn.o with -fPIC + DYN_CFLAGS="-fPIC" +fi + +# When GNU Make is present, use version.mak +if test "$is_gmake" != ""; then + INCLUDEDEP="-include" +fi + +if test "$REZ" = '' ; then + REZ=/Developer/Tools/Rez +fi + +if test "${enable_gracket}" = "yes" ; then + MAKE_GRACKET=gracket +else + MAKE_GRACKET=no +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 +$as_echo_n "checking for cos in -lm... " >&6; } +if ${ac_cv_lib_m_cos+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char cos (); +int +main () +{ +return cos (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_m_cos=yes +else + ac_cv_lib_m_cos=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 +$as_echo "$ac_cv_lib_m_cos" >&6; } +if test "x$ac_cv_lib_m_cos" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBM 1 +_ACEOF + + LIBS="-lm $LIBS" + +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBDL 1 +_ACEOF + + LIBS="-ldl $LIBS" + +fi + + +PROFFLAGS="" + +if test "${enable_gprof}" = "yes" ; then + MZOPTIONS="$MZOPTIONS -DDONT_ITIMER" + PROFFLAGS="$PROFFLAGS -pg" + LIBS="$LIBS -pg" +fi + +if test "${enable_gcov}" = "yes" ; then + PROFFLAGS="$PROFFLAGS -fprofile-arcs -ftest-coverage" +fi + +if test "${enable_jitframe}" = "yes" ; then + MZOPTIONS="$MZOPTIONS -DMZ_PROLOG_CREATE_FULL_STACK_FRAME" +fi + +if test "${enable_shared}" = "yes" ; then + LIBRACKET_DEP="${LIBRACKET_DEP} libmzgc.la" + INSTALL_LIBS_ENABLE=install +fi + +if test "${enable_foreign}" = "yes" ; then + check_for_mprotect=yes +fi +if test "${enable_jit}" = "yes" ; then + check_for_mprotect=yes +fi + +############## platform tests ################ + +# for flags we don't want to use in config tests: +EXTRALIBS= + +# for gmp assembly: +EXTRA_GMP_OBJ= +EXTRA_GMP_DEP= + +# For Racket targets: +OSX=".osx" +NOT_OSX="" +MINGW=".mingw" +NOT_MINGW="" +CGC_X86_64="" + +case "$host_os" in + solaris2*) + STATICLINK="-Wl,-Bstatic" # after -ldl + LIBS="$LIBS -lsocket -lnsl -lintl" + need_gcc_static_libgcc="yes" + check_gcc_dash_e="yes" + use_flag_pthread="no" + use_flag_posix_pthread="yes" + ;; + aix*) + enable_cgcdefault="yes" + EXTRALIBS="-Wl,-brtl,-bE:\$(srcdir)/../bc/include/racket.exp" + ;; + *freebsd*) + LIBS="$LIBS -rdynamic" + DYN_CFLAGS="-fPIC" + enable_pthread_by_default=yes + ;; + openbsd*) + LIBS="$LIBS -Wl,--export-dynamic" + enable_pthread_by_default=yes + ;; + bitrig*) + LIBS="$LIBS -Wl,--export-dynamic" + enable_pthread_by_default=yes + ;; + dragonfly*) + LIBS="$LIBS -Wl,--export-dynamic" + enable_pthread_by_default=yes + ;; + netbsd*) + LIBS="$LIBS -rdynamic" + POST_LINKER="paxctl +m" + ;; + irix*) + enable_cgcdefault="yes" + STATICLINK="/usr/lib/libC.a /usr/lib/libmalloc.a" + if test "$X_PRE_LIBS" = " -lSM -lICE" ; then + # For some reason, works best to drop these + X_PRE_LIBS="" + fi + ;; + linux*) + LIBS="$LIBS -ldl -lm -rdynamic" + DYN_CFLAGS="-fPIC" + case "$host_cpu" in + #Required for CentOS 4.6 + x86_64) + enable_parallel_by_default=yes + CGC_X86_64="1" + check_for_unwind=REG_RSP + ;; + ppc|powerpc) + ;; + alpha) + EXTRA_GMP_OBJ='gmp_alpha_gcc.$(LTO)' + EXTRA_GMP_DEP='$(EXTRA_GMP_DEP_FILE)' + ;; + i386|i486|i586|i686) + enable_parallel_by_default=yes + check_for_unwind=REG_ESP + ;; + arm*) + EXTRA_GMP_OBJ='gmp_arm_gcc.$(LTO)' + EXTRA_GMP_DEP='$(EXTRA_GMP_DEP_FILE)' + ;; + *) + ;; + esac + ;; + osf1*) + enable_cgcdefault="yes" + if test "$CC" = "cc" ; then + COMPFLAGS="$COMPFLAGS -ieee_with_inexact -assume noaligned_objects" + elif test "$CC" = "gcc" ; then + EXTRA_GMP_OBJ='gmp_alpha_gcc.$(LTO)' + EXTRA_GMP_DEP='$(EXTRA_GMP_DEP_FILE)' + fi + ;; + hpux*) + enable_cgcdefault="yes" + if test "$CC" = "gcc"; then + COMPFLAGS="$COMPFLAGS -fPIC" + else + CFLAGS="$CFLAGS -Wp,-H,64000" + PREFLAGS="$PREFLAGS -D_HPUX_SOURCE" + COMPFLAGS="$COMPFLAGS -Aa +Z" + CGCOPTIONS="$CGCOPTIONS +ESdbgasm" + MZOPTIONS="$MZOPTIONS +e" + fi + LIBS="$LIBS -Wl,-E" + ;; + *mingw*) + enable_parallel_by_default=yes + mzrt_needs_pthread=no + use_flag_pthread=no + MZOPTIONS="$MZOPTIONS -fno-omit-frame-pointer" # to make JIT backtraces work + MINGW="" + NOT_MINGW=".other" + MZINSTALLTARGET=mingw-install + MZINSTALLBINDIR="${MZINSTALLBINDIR}/.." + EXE_SUFFIX=".exe" + COLLECTS_PATH="collects" + GUI_COLLECTS_PATH="../collects" + CONFIG_PATH="etc" + GUI_CONFIG_PATH="../etc" + skip_iconv_check=yes + check_for_mprotect=no + # ".a" is typically not useful, since we always build a DLL: + if test "${enable_libs}" = "" ; then + INSTALL_LIBS_ENABLE=no-install + fi + +$as_echo "#define HAVE_STDINT_H 1" >>confdefs.h + + if `which ${host}-windres > /dev/null` ; then + WINDRES="${host}-windres" + fi + if `which ${host}-dlltool > /dev/null` ; then + DLLTOOL="${host}-dlltool" + fi + + case "$build_os" in + *cygwin*) + PWD="cygpath -m \\\`pwd\\\`" + DIRCVTPRE="\`cygpath -m " + DIRCVTPOST="\`" + ;; + esac + ;; + cygwin*) + MZINSTALLTARGET=unix-cygwin-install + if test "${enable_shared}" = "yes" ; then + ar_libtool_no_undefined=" -no-undefined" + LIBRACKET_DEP="${LIBRACKET_DEP} -liconv" + fi + EXE_SUFFIX=".exe" + ;; + darwin*) + + if test "${enable_sdk}" != "" ; then + PREFLAGS="$PREFLAGS -isysroot ${enable_sdk} -mmacosx-version-min=10.4 -DEXTRA_EXCEPTION_STUBS" + LDFLAGS="$LDFLAGS -isysroot ${enable_sdk} -mmacosx-version-min=10.4" + if test "${CC}" = "gcc" ; then + CC=gcc-4.0 + fi + if test "${CPP}" = "gcc -E" ; then + CPP="gcc-4.0 -E" + need_cpp_in_extras=yes + fi + if test "${LD}" = "gcc" ; then + LD=gcc-4.0 + need_ld_in_extras=yes + fi + if test "$PROPAGATE_SUB_CONFIGURE" != "no" ; then + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CFLAGS="'"'"${CFLAGS}"'"' + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CPPFLAGS="'"'"${PREFLAGS}"'"' + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} LDFLAGS="'"'"${LDFLAGS}"'"' + fi + need_cc_in_extras=yes + if test "$ORIG_CC_FOR_BUILD" = "" ; then + CC_FOR_BUILD="$CC" + fi + fi + + if test "${enable_sdk5}" != "" ; then + PREFLAGS="$PREFLAGS -isysroot ${enable_sdk5} -mmacosx-version-min=10.5" + LDFLAGS="$LDFLAGS -isysroot ${enable_sdk5} -mmacosx-version-min=10.5" + if test "$PROPAGATE_SUB_CONFIGURE" != "no" ; then + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CFLAGS="'"'"${CFLAGS}"'"' + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CPPFLAGS="'"'"${PREFLAGS}"'"' + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} LDFLAGS="'"'"${LDFLAGS}"'"' + fi + fi + + if test "${enable_sdk6}" != "" ; then + PREFLAGS="$PREFLAGS -isysroot ${enable_sdk6} -mmacosx-version-min=10.6" + LDFLAGS="$LDFLAGS -isysroot ${enable_sdk6} -mmacosx-version-min=10.6" + if test "$PROPAGATE_SUB_CONFIGURE" != "no" ; then + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CFLAGS="'"'"${CFLAGS}"'"' + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CPPFLAGS="'"'"${PREFLAGS}"'"' + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} LDFLAGS="'"'"${LDFLAGS}"'"' + fi + fi + + if test "${enable_sdk9}" != "" ; then + PREFLAGS="$PREFLAGS -isysroot ${enable_sdk9} -mmacosx-version-min=10.9" + LDFLAGS="$LDFLAGS -isysroot ${enable_sdk9} -mmacosx-version-min=10.9" + if test "$PROPAGATE_SUB_CONFIGURE" != "no" ; then + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CFLAGS="'"'"${CFLAGS}"'"' + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CPPFLAGS="'"'"${PREFLAGS}"'"' + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} LDFLAGS="'"'"${LDFLAGS}"'"' + fi + fi + + # Force 32-bit build unless mac64 is enabled: + if test "${enable_mac64}" != "yes" ; then + if test "$host_cpu" != "powerpc" ; then + if test "${ORIG_CC}" = "" ; then + PREFLAGS="${PREFLAGS} -m32" + CPPFLAGS="${CPPFLAGS} -m32" + LDFLAGS="${LDFLAGS} -m32" + # To make the libffi build work, we have to fold -m32 into CC + # instead of CFLAGS: + if test "$PROPAGATE_SUB_CONFIGURE" != "no" ; then + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CC="'"'"${CC}"' -m32"' + fi + need_cc_in_extras=no + if test "$build_cpu" = "x86_64" ; then + # AG_PROC_CC has already decided that we weren't + # cross compiling, so change that decision + cross_compiling=yes + echo may be cross compiling after all + fi + fi + fi + fi + + + case "$host_cpu" in + i386|x86_64) + enable_parallel_by_default=yes + ;; + *) + ;; + esac + + PREFLAGS="$PREFLAGS -DOS_X -D_DARWIN_UNLIMITED_SELECT" + + # -pthread is not needed and triggers a warning + use_flag_pthread=no + + # Use -Wno-nullability-completeness if supported + try_no_nullability_completeness=yes + + SO_SUFFIX=.dylib + + if test "${need_cc_in_extras}" = "yes" ; then + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CC="'"'"${CC}"'"' + fi + if test "${need_cpp_in_extras}" = "yes" ; then + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CPP="'"'"${CPP}"'"' + fi + if test "${need_ld_in_extras}" = "yes" ; then + SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} LD="'"'"${LD}"'"' + fi + + if test "${enable_quartz}" = "yes" ; then + WXVARIANT="wx_mac" + INCLUDEDEP="-include" + OPTIONS="$OPTIONS -fno-common" + OSX="" + NOT_OSX=".other" + MZINSTALLTARGET=osx-install + DYN_CFLAGS="" + if test "${enable_libfw}" = "yes" ; then + FRAMEWORK_INSTALL_DIR=/Library/Frameworks + FRAMEWORK_REL_INSTALL=no + FRAMEWORK_PREFIX='' + elif test "${enable_userfw}" = "yes" ; then + FRAMEWORK_INSTALL_DIR=~/Library/Frameworks + FRAMEWORK_REL_INSTALL=no + FRAMEWORK_PREFIX='' + else + FRAMEWORK_INSTALL_DIR='${libpltdir}' + FRAMEWORK_REL_INSTALL=yes + if test "${libpltdir_rel}" = "" ; then + FRAMEWORK_PREFIX='$(FRAMEWORK_ABS_PREFIX)' + else + FRAMEWORK_PREFIX='$(FRAMEWORK_REL_PREFIX)' + fi + fi + if test "${enable_embedfw}" = "yes" ; then + strip_needs_dash_s=yes + fi + # ".a" is typically not useful, since we always build a ".dylib": + if test "${enable_libs}" = "" ; then + INSTALL_LIBS_ENABLE=no-install + fi + else + PREFLAGS="$PREFLAGS -DXONX " + LIBS="$LIBS -framework CoreFoundation" + strip_needs_dash_s=yes + fi + ;; + nto-qnx*) + use_flag_pthread=no + LIBS="$LIBS -lsocket -Wl,--export-dynamic" + ;; + *) + ;; +esac + +case "$host_cpu" in + alpha | sparc | powerpc) + if test "$CC" = "gcc" ; then + if test "$as_was_set" = "no" ; then + AS="gcc -c -x assembler-with-cpp" + fi + fi + ;; + *) + ;; +esac + +############## GC variant ################ + +if test "${enable_bcdefault}" != "yes" ; then + MMM_INSTALLED=bc + MMM_CAP_INSTALLED=BC + +$as_echo "#define COMPILED_PATH_AS_BC 1" >>confdefs.h + +fi + +if test "${enable_cgcdefault}" = "yes" ; then + CGC_INSTALLED= + CGC_CAP_INSTALLED= + MMM_INSTALLED=3m + MMM_CAP_INSTALLED=3m + MAIN_VARIANT=cgc +fi +MAIN_MAKE_TARGET="${MAIN_VARIANT}" + +if test "${enable_csdefault}" = "yes" ; then + MAIN_MAKE_TARGET=cs +fi + +############## SGC ################ + +if test "${enable_sgcdebug}" = "yes" ; then + OPTIONS="$OPTIONS -DSGC_STD_DEBUGGING=1" +fi + +OPTIONS="$OPTIONS -DUSE_SENORA_GC" + +if test "${enable_generations}" = "yes" ; then + +$as_echo "#define USE_GC_GENS 1" >>confdefs.h + +else + +$as_echo "#define USE_GC_GENS 0" >>confdefs.h + +fi + +############## Strip tool ################ + +if test "${enable_strip}" = "" ; then + if test "${enable_strip_by_default}" = "yes" ; then + enable_strip=yes + fi +fi + +try_archive_conftest() +{ + $AR $ARFLAGS conftest.a conftest.$OBJEXT > /dev/null 2>&1 +} + +if test "${enable_strip}" = "yes" ; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + 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_STRIP="${ac_tool_prefix}strip" + $as_echo "$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 +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_STRIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + 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_ac_ct_STRIP="strip" + $as_echo "$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 +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + + # Used to add -S flag, but not all `strip' variants support it: + STRIP_DEBUG="${STRIP}" + if test "${INSTALL_LIBS_ENABLE}" = "install" ; then + check_strip_dash_s=yes + fi + if test "${strip_needs_dash_s}" = "yes" ; then + check_strip_dash_s=yes + fi + if test "${check_strip_dash_s}" = "yes" ; then + # Can only support library stripping if something like "-S" is available: + msg="for strip -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 +$as_echo_n "checking $msg... " >&6; } + set_strip_lib=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int f() { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + try_archive_conftest +else + set_strip_lib=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test conftest.a ; then + if "${STRIP_DEBUG}" -S conftest.a > /dev/null 2>&1 ; then + STRIP_LIB_DEBUG="${STRIP_DEBUG} -S" + set_strip_lib=yes + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $set_strip_lib" >&5 +$as_echo "$set_strip_lib" >&6; } + if test "${strip_needs_dash_s}" = "yes" ; then + STRIP_DEBUG="${STRIP_LIB_DEBUG}" + fi + fi +fi + + +############## C flags ################ + +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 + + + msg="for inline keyword" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 +$as_echo_n "checking $msg... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + static inline int foo() { return 0; } + int main() { + return foo(); + } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + inline=yes +else + inline=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +if test "$inline" = "no" ; then + MZOPTIONS="$MZOPTIONS -DNO_INLINE_KEYWORD" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $inline" >&5 +$as_echo "$inline" >&6; } + + msg="for noinline attribute" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 +$as_echo_n "checking $msg... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + static int foo() __attribute__ ((noinline)); + static int foo() { return 0; } + int main() { + return foo(); + } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + noinline=yes +else + noinline=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +if test "$noinline" = "yes" ; then + +$as_echo "#define MZ_USE_NOINLINE 1" >>confdefs.h + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $noinline" >&5 +$as_echo "$noinline" >&6; } + + msg="for GNU preprocessor" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 +$as_echo_n "checking $msg... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + int main () { + #ifdef __GNUC__ + return 0; + #else + if; // should fail + #endif + } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + using_gnu_cpp=yes +else + using_gnu_cpp=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +if test "$using_gnu_cpp" = "yes" ; then + XFORMFLAGS="$XFORMFLAGS --keep-lines" + case "$build_os" in + *cygwin*) + XFORMFLAGS="$XFORMFLAGS --D-via-include" + ;; + esac +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $using_gnu_cpp" >&5 +$as_echo "$using_gnu_cpp" >&6; } + +# Although rktio takes care of iconv, we need to know whether +# to link to it +iconv_lib_flag="" +if test "${skip_iconv_check}" = "no" ; then + if test "${enable_iconv}" = "yes" ; then + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + 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 + test -z "$as_dir" && as_dir=. + 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 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + 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 + test -z "$as_dir" && as_dir=. + 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 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '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 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +ac_fn_c_check_header_mongrel "$LINENO" "iconv.h" "ac_cv_header_iconv_h" "$ac_includes_default" +if test "x$ac_cv_header_iconv_h" = xyes; then : + enable_iconv=yes +else + enable_iconv=no +fi + + + if test "${enable_iconv}" = "yes" ; then + # Does it all work, now? + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include +int +main () +{ + iconv_open("UTF-8", "UTF-8"); + return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + enable_iconv=yes +else + enable_iconv=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "${enable_iconv}" = "no" ; then + # Try adding -liconv ? + # We did not use AC_CHECK_LIB because iconv is sometimes macro-renamed + ORIG_LIBS="$LIBS" + LIBS="$LIBS -liconv" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include +int +main () +{ + iconv_open("UTF-8", "UTF-8"); + return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + enable_iconv=yes +else + enable_iconv=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "${enable_iconv}" = "no" ; then + LIBS="$ORIG_LIBS" + else + iconv_lib_flag=" -liconv" + fi + fi + fi + fi + msg="iconv is usable" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 +$as_echo_n "checking $msg... " >&6; } + iconv_usage_result="$enable_iconv$iconv_lib_flag" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $iconv_usage_result" >&5 +$as_echo "$iconv_usage_result" >&6; } +fi + + +if test "${check_for_mprotect}" = "yes" ; then + msg="for mmap and mprotect" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 +$as_echo_n "checking $msg... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + int main() { + void *p; + p = mmap(0, 2 << 16, PROT_READ | PROT_WRITE, MAP_PRIVATE, open("/dev/zero", O_RDWR), 0); + mprotect(p, 2 << 16, PROT_READ | PROT_WRITE); + return 0; + } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + use_mprotect=yes +else + use_mprotect=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_mprotect" >&5 +$as_echo "$use_mprotect" >&6; } + if test "${use_mprotect}" = "yes" ; then + +$as_echo "#define HAVE_MMAP_MPROTECT 1" >>confdefs.h + + fi +fi + +if test "${check_for_unwind}" != "no" ; then + msg="for unwind support" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 +$as_echo_n "checking $msg... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #define __USE_GNU + #include + int main() { + return ${check_for_unwind}; + } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + can_unwind=yes +else + can_unwind=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test "$can_unwind" = "no" ; then + +$as_echo "#define MZ_NO_UNWIND_SUPPORT 1" >>confdefs.h + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_unwind" >&5 +$as_echo "$can_unwind" >&6; } +fi + +if test "${check_page_size}" = "yes" ; then + msg="for large page size" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 +$as_echo_n "checking $msg... " >&6; } + if test "$cross_compiling" = yes; then : + use_large_page_size=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + #include + int main() { + return !(getpagesize() > (1 << 14)); + } +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + use_large_page_size=yes +else + use_large_page_size=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_large_page_size" >&5 +$as_echo "$use_large_page_size" >&6; } + if test "${use_large_page_size}" = "yes" ; then + +$as_echo "#define MZ_USE_LARGE_PAGE_SIZE 1" >>confdefs.h + + fi +fi + + msg="for __builtin_popcount" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 +$as_echo_n "checking $msg... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + int main(int argc, char **argv) { + unsigned int i = argc; + return __builtin_popcount(i); + } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + has_builtin_popcount=yes +else + has_builtin_popcount=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_builtin_popcount" >&5 +$as_echo "$has_builtin_popcount" >&6; } +if test "${has_builtin_popcount}" = "yes" ; then + +$as_echo "#define MZ_HAS_BUILTIN_POPCOUNT 1" >>confdefs.h + +fi + + msg="for __builtin_clz" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 +$as_echo_n "checking $msg... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + int main(int argc, char **argv) { + unsigned int i = argc; + return __builtin_clz(i); + } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + has_builtin_clz=yes +else + has_builtin_clz=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_builtin_clz" >&5 +$as_echo "$has_builtin_clz" >&6; } +if test "${has_builtin_clz}" = "yes" ; then + +$as_echo "#define MZ_HAS_BUILTIN_CLZ 1" >>confdefs.h + +fi + +if test "${enable_backtrace}" = "yes" ; then + GC2OPTIONS="$GC2OPTIONS -DMZ_GC_BACKTRACE" +fi + +LFS_CFLAGS=`getconf LFS_CFLAGS 2> /dev/null` +if test "${LFS_CFLAGS}" != "" && test "${LFS_CFLAGS}" != "undefined"; then + echo "Large-file support: ${LFS_CFLAGS}" + MZOPTIONS="${MZOPTIONS} ${LFS_CFLAGS}" +fi + +if test "${try_no_nullability_completeness}" = "yes" ; then + msg="for -Wno-nullability-completeness" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 +$as_echo_n "checking $msg... " >&6; } + OLD_CFLAGS="${CFLAGS}" + CFLAGS="${CFLAGS} -Wno-nullability-completeness" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int main() { return 0; } +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + nonullcomp=yes +else + nonullcomp=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test "$nonullcomp" = "yes" ; then + GC2OPTIONS="$GC2OPTIONS -Wno-nullability-completeness" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $nonullcomp" >&5 +$as_echo "$nonullcomp" >&6; } + CFLAGS="${OLD_CFLAGS}" +fi + +###### Get data sizes, stack direction, and endianness ####### + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 +$as_echo_n "checking size of char... " >&6; } +if ${ac_cv_sizeof_char+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_char" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (char) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_char=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5 +$as_echo "$ac_cv_sizeof_char" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_CHAR $ac_cv_sizeof_char +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 +$as_echo_n "checking size of short... " >&6; } +if ${ac_cv_sizeof_short+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_short" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (short) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_short=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 +$as_echo "$ac_cv_sizeof_short" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_SHORT $ac_cv_sizeof_short +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 +$as_echo_n "checking size of int... " >&6; } +if ${ac_cv_sizeof_int+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_int" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (int) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_int=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 +$as_echo "$ac_cv_sizeof_int" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT $ac_cv_sizeof_int +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 +$as_echo_n "checking size of long... " >&6; } +if ${ac_cv_sizeof_long+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_long" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (long) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_long=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 +$as_echo "$ac_cv_sizeof_long" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG $ac_cv_sizeof_long +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 +$as_echo_n "checking size of long long... " >&6; } +if ${ac_cv_sizeof_long_long+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_long_long" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (long long) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_long_long=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 +$as_echo "$ac_cv_sizeof_long_long" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 +$as_echo_n "checking size of void *... " >&6; } +if ${ac_cv_sizeof_void_p+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_void_p" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (void *) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_void_p=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 +$as_echo "$ac_cv_sizeof_void_p" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_VOID_P $ac_cv_sizeof_void_p +_ACEOF + + +# The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of bool" >&5 +$as_echo_n "checking size of bool... " >&6; } +if ${ac_cv_sizeof_bool+:} false; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (bool))" "ac_cv_sizeof_bool" "#include +"; then : + +else + if test "$ac_cv_type_bool" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (bool) +See \`config.log' for more details" "$LINENO" 5; } + else + ac_cv_sizeof_bool=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_bool" >&5 +$as_echo "$ac_cv_sizeof_bool" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_BOOL $ac_cv_sizeof_bool +_ACEOF + + + +if test "${ac_cv_sizeof_void_p}" != "4" ; then + if test "${ac_cv_sizeof_void_p}" != "8" ; then + echo "Something has gone wrong getting the pointer size; see config.log" + exit 1 + fi +fi + + + + ac_fn_c_check_type "$LINENO" "intptr_t" "ac_cv_type_intptr_t" "$ac_includes_default" +if test "x$ac_cv_type_intptr_t" = xyes; then : + +$as_echo "#define HAVE_INTPTR_T 1" >>confdefs.h + +else + for ac_type in 'int' 'long int' 'long long int'; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +cat >>confdefs.h <<_ACEOF +#define intptr_t $ac_type +_ACEOF + + ac_type= +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test -z "$ac_type" && break + done +fi + + + + ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default" +if test "x$ac_cv_type_uintptr_t" = xyes; then : + +$as_echo "#define HAVE_UINTPTR_T 1" >>confdefs.h + +else + for ac_type in 'unsigned int' 'unsigned long int' \ + 'unsigned long long int'; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ +static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))]; +test_array [0] = 0; +return test_array [0]; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +cat >>confdefs.h <<_ACEOF +#define uintptr_t $ac_type +_ACEOF + + ac_type= +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + test -z "$ac_type" && break + done +fi + + + + msg="for stack direction" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 +$as_echo_n "checking $msg... " >&6; } +if test "$cross_compiling" = yes; then : + stack_direction=unknown +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int grows_down_p(int n, void *cmp) { + if (!cmp) + return grows_down_p(10, &cmp); + else if (!n) + return ((unsigned long)&cmp < (unsigned long)cmp); + else + return grows_down_p(n - 1, cmp); + } + int main() { + return grows_down_p(0, 0); + } +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + stack_direction=up +else + stack_direction=down +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $stack_direction" >&5 +$as_echo "$stack_direction" >&6; } + +if test "${stack_direction}" = "unknown" ; then + if test "${enable_stackup}" = "yes" ; then + stack_direction=up + else + echo configure: warning: cannot determine stack direction, assuming down + fi +fi + +if test "${stack_direction}" = "up" ; then + +$as_echo "#define STACK_DIRECTION 1" >>confdefs.h + +fi +if test "${stack_direction}" = "down" ; then + +$as_echo "#define STACK_DIRECTION -1" >>confdefs.h + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if ${ac_cv_c_bigendian+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no +else + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + endianness=big;; #( + no) + endianness=little ;; #( + universal) + +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + endianness=unknown ;; + esac + +if test "${endianness}" = "unknown" ; then + if test "${enable_bigendian}" = "yes" ; then + endianness=big + else + echo configure: warning: cannot determine endianness, assuming little + fi +fi + +if test "${endianness}" = "big" ; then + +$as_echo "#define SCHEME_BIG_ENDIAN 1" >>confdefs.h + +fi + +################### JIT #################### + +if test "${enable_jit}" = "no" ; then + PREFLAGS="${PREFLAGS} -DMZ_DONT_USE_JIT" + if test "${enable_futures}" = "yes" ; then + echo configure: cannot enable futures and disable the JIT + exit 1 + fi + enable_futures=no +fi + +############### places ################### + +if test "${enable_parallel_by_default}" = "yes" ; then + if test "${enable_places}" = "" ; then + enable_places=yes + fi +fi + +if test "${enable_places}" = "yes" ; then + +$as_echo "#define MZ_USE_PLACES 1" >>confdefs.h + + enable_mzrt=yes +fi + +############### futures ################### + +if test "${enable_parallel_by_default}" = "yes" ; then + if test "${enable_futures}" = "" ; then + enable_futures=yes + fi +fi + +if test "${enable_futures}" = "yes" ; then + +$as_echo "#define MZ_USE_FUTURES 1" >>confdefs.h + + enable_mzrt=yes +fi + +############### ffipoll ################### + +if test "${enable_ffipoll}" = "yes" ; then + +$as_echo "#define MZ_USE_FFIPOLL 1" >>confdefs.h + +fi + +############## compare-and-swap ################ + +if test "${enable_mzrt}" = "yes" ; then + msg="for compare-and-swap" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 +$as_echo_n "checking $msg... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + int check1(long *addr, long old, long new_val) { + return __sync_bool_compare_and_swap(addr, old, new_val); + } + int check2(short *addr, short old, short new_val) { + return __sync_bool_compare_and_swap(addr, old, new_val); + } + int main() { + long l = 2; short s = 3; + return !check1(&l, 2, 4) || !check2(&s, 3, 6); + } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + cas_available=yes +else + cas_available=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cas_available" >&5 +$as_echo "$cas_available" >&6; } + if test "${cas_available}" = "yes" ; then + +$as_echo "#define MZ_CAS_AVAILABLE 1" >>confdefs.h + + fi +fi + + +############### OS threads ################### + +if test "${enable_mzrt}" = "yes" ; then + if test "${mzrt_needs_pthread}" = "yes" ; then + if test "${enable_pthread}" = "no" ; then + echo configure: cannot disable pthreads with places/futures enabled + exit 1 + fi + enable_pthread=yes + fi +fi + +############### pthread ################### + +if test "${enable_pthread}" = "" ; then + if test "${enable_pthread_by_default}" = "yes" ; then + enable_pthread=yes + fi +fi + +if test "${enable_pthread}" = "yes" ; then + if test "${use_flag_pthread}" = "yes" ; then + PREFLAGS="$PREFLAGS -pthread" + LDFLAGS="$LDFLAGS -pthread" + fi + if test "${use_flag_posix_pthread}" = "yes" ; then + PREFLAGS="$PREFLAGS -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT" + fi + +$as_echo "#define USE_PTHREAD_INSTEAD_OF_ITIMER 1" >>confdefs.h + + + msg="whether pthread_rwlock is available" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 +$as_echo_n "checking $msg... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + pthread_rwlock_t l; + int main() { + return pthread_rwlock_init(&l, NULL); + } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + rwlockavail=yes +else + rwlockavail=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $rwlockavail" >&5 +$as_echo "$rwlockavail" >&6; } + if test "$rwlockavail" = "yes" ; then + +$as_echo "#define HAVE_PTHREAD_RWLOCK 1" >>confdefs.h + + fi +fi + +############## extflonum ################ + +if test "${enable_extflonum}" = "default" ; then + msg="for powl for extflonums" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 +$as_echo_n "checking $msg... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + int main(int argc, char **argv) { + char *p; + long double x = 2.0, y = strtod(*(argv+1), &p); + if (powl(x, y) == 8.0) + return 0; + return 1; + } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + use_extflonums=yes +else + use_extflonums=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_extflonums" >&5 +$as_echo "$use_extflonums" >&6; } + if test "${use_extflonums}" = "no" ; then + +$as_echo "#define MZ_NO_EXTFLONUMS 1" >>confdefs.h + + fi +fi + +if test "${enable_extflonum}" = "yes" ; then + $as_echo "#define MZ_INSIST_EXTFLONUMS 1" >>confdefs.h + +fi + +############## libffi ################ + +# Depends on pthread on some platforms + +if test "${enable_pthread}" = "" ; then + enable_pthread=no +fi + +if test "${enable_libffi}" = "yes" ; then + complain_if_libffi_fails=yes +fi + +if test "${enable_libffi}" = "default" ; then + case "$host_os" in + darwin*) + enable_libffi=no + ;; + *) + enable_libffi=yes + ;; + esac +fi + +if test "${enable_libffi}" = "yes" ; then + if test "${enable_foreign}" = "yes" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libffi" >&5 +$as_echo_n "checking for libffi... " >&6; } + + # Try to get flags form pkg-config: + libffi_config_prog="pkg-config libffi" + libffi_config_preflags=`$libffi_config_prog --cflags-only-I 2> /dev/null` + if test "$?" = 0 ; then + libffi_config_cflags=`$libffi_config_prog --cflags-only-other 2> /dev/null` + if test "$?" = 0 ; then + libffi_config_libs=`$libffi_config_prog --libs 2> /dev/null` + if test "$?" != 0 ; then + libffi_config_preflags="" + libffi_config_cflags="" + libffi_config_libs="-lffi" + fi + else + libffi_config_preflags="" + libffi_config_cflags="" + libffi_config_libs="-lffi" + fi + else + libffi_config_preflags="" + libffi_config_cflags="" + libffi_config_libs="-lffi" + fi + + OLD_CFLAGS="${CFLAGS}" + OLD_LIBS="${LIBS}" + CFLAGS="${CFLAGS} ${libffi_config_preflags} ${libffi_config_cflags}" + LIBS="${LIBS} ${libffi_config_libs}" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +ffi_cif cif; + ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 0, &ffi_type_void, NULL); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + have_libffi=yes +else + have_libffi=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_libffi" >&5 +$as_echo "$have_libffi" >&6; } + if test "${have_libffi}" = "no" ; then + CFLAGS="${OLD_CFLAGS}" + LIBS="${OLD_LIBS}" + echo "Building own libffi" + if test "${complain_if_libffi_fails}" = "yes" ; then + echo configure: unable to link to libffi + exit 1 + fi + else + CFLAGS="${OLD_CFLAGS}" + PREFLAGS="${PREFLAGS} ${libffi_config_preflags}" + COMPFLAGS="${COMPFLAGS} ${libffi_config_cflags}" + echo "Using installed libffi" + OWN_LIBFFI="OFF" + fi + fi +fi + +############## Solaris grunge ################ + +if test "$check_gcc_dash_e" = "yes" ; then + + orig_ldflags="$LDFLAGS" + LDFLAGS="$LDFLAGS -Wl,-E" + + # Can use -Wl,-E for linking because we're using GNU linker? + msg="whether linker accepts -Wl,-E" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 +$as_echo_n "checking $msg... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + int main() { + return 0; + } +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + linker_dash_e=yes +else + linker_dash_e=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "$linker_dash_e" = "no" ; then + LDFLAGS="${orig_ldflags}" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $linker_dash_e" >&5 +$as_echo "$linker_dash_e" >&6; } + +fi + +############## drop optimization flags ################ + +if test "${enable_noopt}" = "yes" ; then + AWKPRG='BEGIN { FS = "(^| )-O(0|1|2|3|4|5|6|7|8|9)?( |$)" } /.*/ { for (i = 1; i < NF; i++) printf "%s ", $i; print $NF }' + CFLAGS=`echo "$CFLAGS" | awk "$AWKPRG"` + CPPFLAGS=`echo "$CPPFLAGS" | awk "$AWKPRG"` + PREFLAGS=`echo "$PREFLAGS" | awk "$AWKPRG"` +fi + +############## ubsan ################ + +if test "${enable_ubsan}" = "yes" ; then + UBSAN="-fsanitize=undefined -fno-sanitize=alignment -fno-sanitize=float-divide-by-zero" + CFLAGS="$CFLAGS $UBSAN" + CPPFLAGS="$CPPFLAGS $UBSAN" + PREFLAGS="$PREFLAGS $UBSAN" + LDFLAGS="$LDFLAGS $UBSAN" +fi + + +############## usersetup ################ + +if test "${enable_usersetup}" != "yes" ; then + INSTALL_SETUP_FLAGS="${INSTALL_SETUP_FLAGS} --no-user" + INSTALL_SETUP_RACKET_FLAGS="${INSTALL_SETUP_RACKET_FLAGS} --no-user-path" +fi + +############## docs ################ + +if test "${enable_docs}" = "no" ; then + INSTALL_SETUP_FLAGS="${INSTALL_SETUP_FLAGS} --no-docs" +fi + +############## natipkg ################ + +if test "${enable_natipkg}" = "yes" ; then + +$as_echo "#define SPLS_SUFFIX \"-natipkg\"" >>confdefs.h + +fi + +############## Racket for Racket ################ + +if test "${enable_racket}" = "auto" ; then + enable_racket="`pwd`/../local/bc/racket3m" +fi + +if test "${enable_racket}" = "" ; then + RUN_RACKET_CGC='$(RUN_THIS_RACKET_CGC)' + RUN_RACKET_MMM='$(RUN_THIS_RACKET_MMM)' + RUN_RACKET_MAIN_VARIANT='$(RUN_THIS_RACKET_MAIN_VARIANT)' + CGC_IF_NEEDED_FOR_MMM="cgc" + BOOT_MODE="--boot" +else + RUN_RACKET_CGC="${enable_racket}" + RUN_RACKET_MMM="${enable_racket}" + RUN_RACKET_MAIN_VARIANT="${enable_racket}" + CGC_IF_NEEDED_FOR_MMM="no-cgc-needed" + BOOT_MODE="--chain" +fi + +############## libtool ################ + +if test "${enable_shared}" = "yes" ; then + echo "Configuring libtool" + + abssrcdir=`(cd ${srcdir}; pwd)` + + # Try to convert libdir to an absolute path: + # (Is this necessary anymore?) + if test -d "${libdir}" ; then + abslibdir=`(cd ${libdir}; pwd)` + else + abslibdir="${libdir}" + fi + + if test "${LIBTOOLPROG}" = "" ; then + mkdir -p lt + (cd lt; sh ${abssrcdir}/../lt/configure --enable-shared --disable-static) + LIBTOOLPROG=`pwd`/lt/libtool + fi + + if test "${need_gcc_static_libgcc}" = "yes" ; then + need_gcc_static_libgcc="" + if test "$CC" = "gcc" ; then + gcc_vers_three=`${CC} -v 2>&1 | grep "version 3."` + if test "$gcc_vers_three" = "" ; then + need_gcc_static_libgcc="" + else + need_gcc_static_libgcc=" -XCClinker -static-libgcc" + fi + fi + fi + + if test "$INCLUDEDEP" = "-include" ; then + plt_lib_version="\$(FWVERSION)" + else + VERSION_X=`grep 'define MZSCHEME_VERSION_X ' ${srcdir}/../version/racket_version.h | cut -d ' ' -f 3` + VERSION_Y=`grep 'define MZSCHEME_VERSION_Y ' ${srcdir}/../version/racket_version.h | cut -d ' ' -f 3` + VERSION_Z=`grep 'define MZSCHEME_VERSION_Z ' ${srcdir}/../version/racket_version.h | cut -d ' ' -f 3` + VERSION_W=`grep 'define MZSCHEME_VERSION_W ' ${srcdir}/../version/racket_version.h | cut -d ' ' -f 3` + + if test "${VERSION_W}" != "0" ; then + plt_lib_version="${VERSION_X}.${VERSION_Y}.${VERSION_Z}.${VERSION_W}" + else + if test "${VERSION_Z}" != "0" ; then + plt_lib_version="${VERSION_X}.${VERSION_Y}.${VERSION_Z}" + else + plt_lib_version="${VERSION_X}.${VERSION_Y}" + fi + fi + fi + + AR="${LIBTOOLPROG} --mode=link --tag=CC $CC${need_gcc_static_libgcc}${ar_libtool_no_undefined} -release ${plt_lib_version} -rpath ${abslibdir} \$(ARLIBFLAGS) -o" + STATIC_AR="${LIBTOOLPROG} --mode=link --tag=CC $CC -o" + ARFLAGS="" + RANLIB=":" + MZLINKER="${LIBTOOLPROG} --mode=link --tag=CC $CC${need_gcc_static_libgcc} -rpath ${abslibdir}" + PLAIN_CC="$CC" + CC="${LIBTOOLPROG} --mode=compile --tag=CC $CC" + AS="${LIBTOOLPROG} --mode=compile $AS" + LIBSFX=la + WXLIBS=WXLIBSDYN + ICP="${LIBTOOLPROG} --mode=install cp" + ICP_LIB="${LIBTOOLPROG} --mode=install install -s" + ICP_STATIC_LIB='$(NOOP)' + MRLIBINSTALL="install-lib" + LIBFINISH="${LIBTOOLPROG} --mode=finish" + LTO="lo" + LTA="la" + FOREIGN_CONVENIENCE="_convenience" + FOREIGN_OBJSLIB="\$(FOREIGN_LIB)" + MZOPTIONS="$MZOPTIONS -DMZ_USES_SHARED_LIB" + STRIP_LIB_DEBUG=":" +else + LIBSFX=a + WXLIBS=WXLIBSNORM + ICP=cp + ICP_LIB=cp + ICP_STATIC_LIB=cp + MRLIBINSTALL="install-no-lib" + LIBFINISH=echo + LTO="o" + LTA="a" + MZLINKER='$(CC)' + STATIC_AR="$AR" + PLAIN_CC='$(CC)' + FOREIGN_CONVENIENCE="" + FOREIGN_OBJSLIB="\$(FOREIGN_OBJS)" +fi + +# Last but not least, if Werror was requested, add it now +if test "${enable_werror}" = "yes"; then + CFLAGS="-Werror ${CFLAGS}" +fi + +############## final output ################ + +LIBS="$LIBS $EXTRALIBS" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +mk_needed_dir() +{ + if test ! -d "$1" ; then + mkdir "$1" + fi +} + +makefiles="Makefile + src/Makefile dynsrc/Makefile + sgc/Makefile gc2/Makefile" + +# Make sure the --enable-shared default is propagated: +if test "${enable_shared}" = "yes" ; then + SUB_CONFIGURE_EXTRAS="$SUB_CONFIGURE_EXTRAS --enable-shared" +fi + +# Make sure the --enable-pthread result is propagated: +if test "${enable_pthread}" = "yes" ; then + SUB_CONFIGURE_EXTRAS="$SUB_CONFIGURE_EXTRAS --enable-pthread" +else + SUB_CONFIGURE_EXTRAS="$SUB_CONFIGURE_EXTRAS --disable-pthread" +fi + +# Make sure the --enable-iconv result is propagated: +if test "${enable_iconv}" = "yes" ; then + SUB_CONFIGURE_EXTRAS="$SUB_CONFIGURE_EXTRAS --enable-iconv" +else + SUB_CONFIGURE_EXTRAS="$SUB_CONFIGURE_EXTRAS --disable-iconv" +fi + +FOREIGNTARGET= +FOREIGN_IF_USED="FOREIGN_NOT_USED" +if test -d "${srcdir}/foreign" && test "${enable_foreign}" = "yes" ; then + if test "${have_libffi}" != "yes" ; then + ac_aux_dir= +for ac_dir in foreign/libffi "$srcdir"/foreign/libffi ; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in foreign/libffi \"$srcdir\"/foreign/libffi " "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + + +subdirs="$subdirs foreign/libffi" + + fi + FOREIGNTARGET="foreign-stuff" + FOREIGN_IF_USED="FOREIGN_USED" +else + FOREIGNTARGET="foreign-stub" + MZOPTIONS="$MZOPTIONS -DDONT_USE_FOREIGN" +fi +makefiles="$makefiles foreign/Makefile" + +# Pass certain configure args on to rktio +keep_configure_args= +fixup_prev= +eval "set x $ac_configure_args" +shift +for fixup_arg +do + case $fixup_arg in + # Strip away all feature choices + -enable* | --enable* | -disable* | --disable*) + ;; + *) + case $fixup_arg in + *\'*) fixup_arg=`echo "$fixup_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + keep_configure_args="$keep_configure_args '$fixup_arg'" ;; + esac +done + + +# Add in `SUB_CONFIGURE_EXTRAS' +ac_configure_args="$new_configure_args$LIBFFI_CONFIGURE_EXTRAS$SUB_CONFIGURE_EXTRAS" + +if test "${enable_gracket}" = "yes" ; then + makefiles="$makefiles + gracket/Makefile + gracket/gc2/Makefile" +fi + +ac_config_files="$ac_config_files $makefiles" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by $as_me, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Report bugs to the package provider." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +config.status +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "mzconfig.h") CONFIG_HEADERS="$CONFIG_HEADERS mzconfig.h" ;; + "$makefiles") CONFIG_FILES="$CONFIG_FILES $makefiles" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi + ;; + + + esac + +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi + +# +# CONFIG_SUBDIRS section. +# +if test "$no_recursion" != yes; then + + # Remove --cache-file, --srcdir, and --disable-option-checking arguments + # so they do not pile up. + ac_sub_configure_args= + ac_prev= + eval "set x $ac_configure_args" + shift + for ac_arg + do + if test -n "$ac_prev"; then + ac_prev= + continue + fi + case $ac_arg in + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \ + | --c=*) + ;; + --config-cache | -C) + ;; + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + ;; + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + ;; + --disable-option-checking) + ;; + *) + case $ac_arg in + *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_sub_configure_args " '$ac_arg'" ;; + esac + done + + # Always prepend --prefix to ensure using the same prefix + # in subdir configurations. + ac_arg="--prefix=$prefix" + case $ac_arg in + *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args" + + # Pass --silent + if test "$silent" = yes; then + ac_sub_configure_args="--silent $ac_sub_configure_args" + fi + + # Always prepend --disable-option-checking to silence warnings, since + # different subdirs can have different --enable and --with options. + ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args" + + ac_popdir=`pwd` + for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue + + # Do not complain, so a configure script can configure whichever + # parts of a large source tree are present. + test -d "$srcdir/$ac_dir" || continue + + ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)" + $as_echo "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5 + $as_echo "$ac_msg" >&6 + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + cd "$ac_dir" + + # Check for guested configure; otherwise get Cygnus style configure. + if test -f "$ac_srcdir/configure.gnu"; then + ac_sub_configure=$ac_srcdir/configure.gnu + elif test -f "$ac_srcdir/configure"; then + ac_sub_configure=$ac_srcdir/configure + elif test -f "$ac_srcdir/configure.in"; then + # This should be Cygnus configure. + ac_sub_configure=$ac_aux_dir/configure + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5 +$as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;} + ac_sub_configure= + fi + + # The recursion is here. + if test -n "$ac_sub_configure"; then + # Make the cache file name correct relative to the subdirectory. + case $cache_file in + [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;; + *) # Relative name. + ac_sub_cache_file=$ac_top_build_prefix$cache_file ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5 +$as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;} + # The eval makes quoting arguments work. + eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \ + --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" || + as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5 + fi + + cd "$ac_popdir" + done +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + +mkdir -p rktio +abssrcdir=`(cd ${srcdir}; pwd)` +echo "=== configuring in rktio (${abssrcdir}/rktio)" +cd rktio; eval "${abssrcdir}/../rktio/configure ${SUB_CONFIGURE_EXTRAS}" diff --git a/racket/src/bc/configure-parent.ac b/racket/src/bc/configure-parent.ac new file mode 100644 index 0000000000..ae9611ac5e --- /dev/null +++ b/racket/src/bc/configure-parent.ac @@ -0,0 +1,57 @@ +############################################################ +# This configure script generates `cfg-bc`, which sets up # +# "Makefile" to drive a BC build by default. # +############################################################ + +AC_INIT([setup-go.rkt]) + +AC_CONFIG_AUX_DIR(lt) +AC_CANONICAL_SYSTEM + +AC_DISABLE_OPTION_CHECKING + +m4_include(../ac/path_arg.m4) +m4_include(../ac/sdk_arg.m4) +m4_include(../ac/vm_arg.m4) +m4_include(../ac/boothelp_arg.m4) + +show_explicitly_disabled() +{ + done=true +} + +show_explicitly_enabled() +{ + done=true +} + + +m4_include(../ac/sdk.m4) +m4_include(../ac/path_pkgscope.m4) +m4_include(../ac/path.m4) +m4_include(../ac/vm.m4) +m4_include(../ac/boothelp.m4) + +MAKE_LOCAL_RACKET=no-local-racket + +if test "${enable_racket}" = "auto" ; then + MAKE_LOCAL_RACKET="local/bc/racket3m" +fi + +if test "${enable_cgcdefault}" = "yes" ; then + MAIN_VARIANT=cgc +else + MAIN_VARIANT=3m +fi +MAIN_MAKE_TARGET="${MAIN_VARIANT}" +RUN_RACKET="bc/racket${MAIN_VARIANT}" + +AC_SUBST(RUN_RACKET) +AC_SUBST(MAKE_LOCAL_RACKET) + +makefiles="Makefile" + +AC_OUTPUT($makefiles) + +# From "../ac/path.m4": +show_path_results diff --git a/racket/src/bc/configure.ac b/racket/src/bc/configure.ac index 6884ae8a12..83b691eeb3 100644 --- a/racket/src/bc/configure.ac +++ b/racket/src/bc/configure.ac @@ -20,10 +20,10 @@ # hence PREFLAGS, which is initialized to the original CPPFLAGS. AC_INIT([Racket]) -AC_CONFIG_SRCDIR(bc/src/bignum.c) -AC_CONFIG_HEADERS([bc/mzconfig.h]) +AC_CONFIG_SRCDIR(src/bignum.c) +AC_CONFIG_HEADERS([mzconfig.h]) -AC_CONFIG_AUX_DIR(lt) +AC_CONFIG_AUX_DIR(../lt) AC_CANONICAL_SYSTEM AC_ARG_ENABLE(gracket, [ --enable-gracket build GRacket as well as Racket (enabled by default)], , enable_gracket=yes ) @@ -37,6 +37,7 @@ AC_ARG_ENABLE(extflonum, [ --enable-extflonum support extflonums (enabl AC_ARG_ENABLE(racket, [ --enable-racket= use as Racket to build; or "auto" to create]) +PREFIX_PATH_RELATIVE=/.. m4_include(../ac/path_arg.m4) m4_include(../ac/natipkg_arg.m4) @@ -142,7 +143,7 @@ m4_include(../ac/path.m4) ###### Make sure GRacket is really there ###### if test "${enable_gracket}" = "yes" ; then - if test ! -d $srcdir/bc/gracket ; then + if test ! -d $srcdir/gracket ; then enable_gracket=no fi fi @@ -314,8 +315,6 @@ else fi fi -MAKE_LOCAL_RACKET=no-local-racket - ###### OSKit stuff ####### if test "${enable_oskit}" = "yes" ; then @@ -369,7 +368,8 @@ COMPFLAGS="" ORIG_CC="${CC}" ORIG_CPP="${CPP}" # Include `--enable-portable-binary' by default for libffi -SUB_CONFIGURE_EXTRAS=" --enable-portable-binary" +LIBFFI_CONFIGURE_EXTRAS=" --enable-portable-binary" +SUB_CONFIGURE_EXTRAS= if test "${enable_sysroot}" != "" ; then PREFLAGS="--sysroot=${enable_sysroot} ${PREFLAGS}" @@ -781,12 +781,6 @@ if test "${enable_cgcdefault}" = "yes" ; then fi MAIN_MAKE_TARGET="${MAIN_VARIANT}" -if test "${enable_racket}" = "" ; then - CS_BOOTSTRAP_HELP="${MAIN_VARIANT}" -else - CS_BOOTSTRAP_HELP="no-${MAIN_VARIANT}" -fi - if test "${enable_csdefault}" = "yes" ; then MAIN_MAKE_TARGET=cs fi @@ -1286,8 +1280,7 @@ fi ############## Racket for Racket ################ if test "${enable_racket}" = "auto" ; then - enable_racket="`pwd`/local/bc/racket3m" - MAKE_LOCAL_RACKET="local/bc/racket3m" + enable_racket="`pwd`/../local/bc/racket3m" fi if test "${enable_racket}" = "" ; then @@ -1309,9 +1302,6 @@ fi if test "${enable_shared}" = "yes" ; then echo "Configuring libtool" - if test ! -d "lt" ; then - mkdir "lt" - fi abssrcdir=`(cd ${srcdir}; pwd)` # Try to convert libdir to an absolute path: @@ -1321,10 +1311,10 @@ if test "${enable_shared}" = "yes" ; then else abslibdir="${libdir}" fi - if test "${LIBTOOLPROG}" = "" ; then - (cd lt; sh ${abssrcdir}/lt/configure --enable-shared --disable-static) + mkdir -p lt + (cd lt; sh ${abssrcdir}/../lt/configure --enable-shared --disable-static) LIBTOOLPROG=`pwd`/lt/libtool fi @@ -1343,10 +1333,10 @@ if test "${enable_shared}" = "yes" ; then if test "$INCLUDEDEP" = "-include" ; then plt_lib_version="\$(FWVERSION)" else - VERSION_X=`grep 'define MZSCHEME_VERSION_X ' ${srcdir}/bc/src/schvers.h | cut -d ' ' -f 3` - VERSION_Y=`grep 'define MZSCHEME_VERSION_Y ' ${srcdir}/bc/src/schvers.h | cut -d ' ' -f 3` - VERSION_Z=`grep 'define MZSCHEME_VERSION_Z ' ${srcdir}/bc/src/schvers.h | cut -d ' ' -f 3` - VERSION_W=`grep 'define MZSCHEME_VERSION_W ' ${srcdir}/bc/src/schvers.h | cut -d ' ' -f 3` + VERSION_X=`grep 'define MZSCHEME_VERSION_X ' ${srcdir}/../version/racket_version.h | cut -d ' ' -f 3` + VERSION_Y=`grep 'define MZSCHEME_VERSION_Y ' ${srcdir}/../version/racket_version.h | cut -d ' ' -f 3` + VERSION_Z=`grep 'define MZSCHEME_VERSION_Z ' ${srcdir}/../version/racket_version.h | cut -d ' ' -f 3` + VERSION_W=`grep 'define MZSCHEME_VERSION_W ' ${srcdir}/../version/racket_version.h | cut -d ' ' -f 3` if test "${VERSION_W}" != "0" ; then plt_lib_version="${VERSION_X}.${VERSION_Y}.${VERSION_Z}.${VERSION_W}" @@ -1516,9 +1506,8 @@ mk_needed_dir() } makefiles="Makefile - bc/Makefile - bc/src/Makefile bc/dynsrc/Makefile - bc/sgc/Makefile bc/gc2/Makefile" + src/Makefile dynsrc/Makefile + sgc/Makefile gc2/Makefile" # Make sure the --enable-shared default is propagated: if test "${enable_shared}" = "yes" ; then @@ -1541,10 +1530,10 @@ fi FOREIGNTARGET= FOREIGN_IF_USED="FOREIGN_NOT_USED" -if test -d "${srcdir}/bc/foreign" && test "${enable_foreign}" = "yes" ; then +if test -d "${srcdir}/foreign" && test "${enable_foreign}" = "yes" ; then if test "${have_libffi}" != "yes" ; then - AC_CONFIG_AUX_DIR( bc/foreign/libffi ) - AC_CONFIG_SUBDIRS( bc/foreign/libffi ) + AC_CONFIG_AUX_DIR( foreign/libffi ) + AC_CONFIG_SUBDIRS( foreign/libffi ) fi FOREIGNTARGET="foreign-stuff" FOREIGN_IF_USED="FOREIGN_USED" @@ -1552,38 +1541,22 @@ else FOREIGNTARGET="foreign-stub" MZOPTIONS="$MZOPTIONS -DDONT_USE_FOREIGN" fi -makefiles="$makefiles bc/foreign/Makefile" +makefiles="$makefiles foreign/Makefile" -AC_CONFIG_SUBDIRS( rktio ) +m4_include(../ac/rktio_keep.m4) -# Remove any --enable or --disable arguments from `ac_configure_args': -new_configure_args= -fixup_prev= -eval "set x $ac_configure_args" -shift -for fixup_arg -do - case $fixup_arg in - # Strip away all feature choices - -enable* | --enable* | -disable* | --disable*) - ;; - *) - case $fixup_arg in - *\'*) fixup_arg=`echo "$fixup_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - new_configure_args="$new_configure_args '$fixup_arg'" ;; - esac -done # Add in `SUB_CONFIGURE_EXTRAS' -ac_configure_args="$new_configure_args$SUB_CONFIGURE_EXTRAS" +ac_configure_args="$new_configure_args$LIBFFI_CONFIGURE_EXTRAS$SUB_CONFIGURE_EXTRAS" if test "${enable_gracket}" = "yes" ; then makefiles="$makefiles - bc/gracket/Makefile - bc/gracket/gc2/Makefile" + gracket/Makefile + gracket/gc2/Makefile" fi AC_OUTPUT($makefiles) -# From "../ac/path.m4": -show_path_results +mkdir -p rktio +abssrcdir=`(cd ${srcdir}; pwd)` +echo "=== configuring in rktio (${abssrcdir}/rktio)" +cd rktio; eval "${abssrcdir}/../rktio/configure ${SUB_CONFIGURE_EXTRAS}" diff --git a/racket/src/bc/foreign/Makefile.in b/racket/src/bc/foreign/Makefile.in index e9ab225ca3..16149389b3 100644 --- a/racket/src/bc/foreign/Makefile.in +++ b/racket/src/bc/foreign/Makefile.in @@ -11,7 +11,7 @@ CPPFLAGS = @PREFLAGS@ ALL_CFLAGS = $(CFLAGS) $(CPPFLAGS) @OPTIONS@ @MZOPTIONS@ \ -I$(builddir)/.. \ -I$(srcdir)/../include -I$(srcdir)/../src \ - -I$(srcdir)/../../rktio -I$(builddir)/../../rktio \ + -I$(srcdir)/../../rktio -I$(builddir)/../rktio \ $(LIBFFI_LOCAL_INCLUDE_@OWN_LIBFFI@) ARFLAGS = @ARFLAGS@ NOOP = : diff --git a/racket/src/bc/gc2/Makefile.in b/racket/src/bc/gc2/Makefile.in index 34eded29dc..a447787ed5 100644 --- a/racket/src/bc/gc2/Makefile.in +++ b/racket/src/bc/gc2/Makefile.in @@ -24,7 +24,7 @@ RANLIB = @RANLIB@ CFLAGS = @CFLAGS@ @COMPFLAGS@ @PROFFLAGS@ CPPFLAGS = @PREFLAGS@ -RKTIO_INC = -I$(srcdir)/../../rktio -I../../rktio +RKTIO_INC = -I$(srcdir)/../../rktio -I../rktio ALL_CPPFLAGS = -I$(builddir)/.. -I$(srcdir)/../include -I$(srcdir)/../../version $(RKTIO_INC) $(CPPFLAGS) @OPTIONS@ @GC2OPTIONS@ @MZOPTIONS@ ALL_CFLAGS = $(CFLAGS) $(ALL_CPPFLAGS) LIBS = @LIBS@ @@ -572,7 +572,7 @@ FOREIGN_USED_OBJSLIB = $(FOREIGN_OBJSLIB) FOREIGN_NOT_USED_LIB = $(FOREIGN_OBJ) FOREIGN_NOT_USED_OBJSLIB = -LIBRKTIO = ../../rktio/librktio.@LTA@ +LIBRKTIO = ../rktio/librktio.@LTA@ LIBRKTIO_FOR_DLL_la = $(LIBRKTIO) LIBRKTIO_FOR_DLL_a = LIBRKTIO_FOR_LIB_la = diff --git a/racket/src/bc/gracket/Makefile.in b/racket/src/bc/gracket/Makefile.in index c95e1270f9..d60ca5aa3b 100644 --- a/racket/src/bc/gracket/Makefile.in +++ b/racket/src/bc/gracket/Makefile.in @@ -24,7 +24,7 @@ mainsrcdir = @srcdir@/../.. WXDIR = $(srcdir)/../wxxt PLTSRCDIR = $(srcdir)/../.. -PLTBUILDDIR = $(builddir)/../.. +BCBUILDDIR = $(builddir)/.. NOOP = : @@ -48,7 +48,7 @@ GCDIRECTORY = @GCDIR@ WBUILD = @WBUILD@ WXVARIANT = @WXVARIANT@ -NOGCINC = $(WXINC) -I$(PLTBUILDDIR)/bc/ -I$(PLTSRCDIR)/bc/include/ -I$(PLTSRCDIR)/version/ +NOGCINC = $(WXINC) -I$(BCBUILDDIR)/ -I$(PLTSRCDIR)/bc/include/ -I$(PLTSRCDIR)/version/ INC = -I$(PLTSRCDIR)/bc/$(GCDIRECTORY) $(NOGCINC) CFLAGS = @COMPFLAGS@ @PROFFLAGS@ @CFLAGS@ CPPFLAGS = @PREFLAGS@ @@ -59,7 +59,7 @@ ARLIBFLAGS = $(LDFLAGS) $(LDLIBS) GRACKETLINKER = @MZLINKER@ -LIBRKTIO = ../../rktio/librktio.@LTA@ +LIBRKTIO = ../rktio/librktio.@LTA@ LIBRKTIO_a = $(LIBRKTIO) LIBRKTIO_la = diff --git a/racket/src/bc/gracket/gc2/Makefile.in b/racket/src/bc/gracket/gc2/Makefile.in index 1722cfe74b..342732ab69 100644 --- a/racket/src/bc/gracket/gc2/Makefile.in +++ b/racket/src/bc/gracket/gc2/Makefile.in @@ -17,7 +17,7 @@ mainsrcdir = @srcdir@/../../.. @INCLUDEDEP@ @srcdir@/../../version.mak PLTSRCDIR = $(srcdir)/../../.. -PLTBUILDDIR = $(builddir)/../../.. +BCBUILDDIR = $(builddir)/../.. ########################### # Common Macros # @@ -34,7 +34,7 @@ GCDIRECTORY = @GCDIR@ WBUILD = @WBUILD@ WXVARIANT = @WXVARIANT@ -NOGCINC = -I$(PLTBUILDDIR)/bc/ -I$(PLTSRCDIR)/bc/include/ -I$(PLTSRCDIR)/version +NOGCINC = -I$(BCBUILDDIR) -I$(PLTSRCDIR)/bc/include/ -I$(PLTSRCDIR)/version INC = -I$(PLTSRCDIR)/bc/$(GCDIRECTORY) $(NOGCINC) CFLAGS = @COMPFLAGS@ @PROFFLAGS@ @CFLAGS@ CPPFLAGS = @PREFLAGS@ @@ -93,7 +93,7 @@ wx_mac_LIBS = -framework CoreFoundation GRACKETLINKER = @MZLINKER@ -LIBRKTIO = ../../../rktio/librktio.@LTA@ +LIBRKTIO = ../../rktio/librktio.@LTA@ LIBRKTIO_a = $(LIBRKTO) LIBRKTIO_la = diff --git a/racket/src/bc/src/Makefile.in b/racket/src/bc/src/Makefile.in index 1bd2d72317..e19cda3b5a 100644 --- a/racket/src/bc/src/Makefile.in +++ b/racket/src/bc/src/Makefile.in @@ -11,7 +11,7 @@ MZSRC = $(srcdir) CFLAGS = @CFLAGS@ @COMPFLAGS@ @PROFFLAGS@ CPPFLAGS = @PREFLAGS@ -RKTIO_INC = -I$(srcdir)/../../rktio -I../../rktio +RKTIO_INC = -I$(srcdir)/../../rktio -I../rktio ALL_CFLAGS = $(CFLAGS) -I$(builddir)/.. -I$(srcdir)/../include -I$(srcdir)/../../version $(RKTIO_INC) $(CPPFLAGS) @OPTIONS@ @MZOPTIONS@ LTO=@LTO@ # Need for replacement of EXTRA_GMP_OBJ which carries the variable @@ -315,7 +315,7 @@ COMMON_HEADERS = $(srcdir)/schpriv.h $(srcdir)/schexn.h $(SCONFIG) $(srcdir)/../ $(srcdir)/longdouble/longdouble.h $(srcdir)/../utils/schiptr.h RKTIO_HEADERS = $(srcdir)/schrktio.h \ $(srcdir)/../../rktio/rktio.h $(srcdir)/../../rktio/rktio_platform.h \ - ../../rktio/rktio_config.h + ../rktio/rktio_config.h JIT_HEADERS = $(srcdir)/jit.h $(srcdir)/jitfpu.h $(srcdir)/stypes.h \ $(srcdir)/lightning/i386/core.h $(srcdir)/lightning/i386/core-common.h \ diff --git a/racket/src/cfg-bc b/racket/src/cfg-bc index 27d6173e8f..90823df971 100755 --- a/racket/src/cfg-bc +++ b/racket/src/cfg-bc @@ -195,8 +195,7 @@ 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 \$(( 1 + 1 )) = 2 || exit 1" + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else @@ -582,146 +581,14 @@ PACKAGE_STRING= PACKAGE_BUGREPORT= PACKAGE_URL= -ac_unique_file="Racket" -ac_unique_file="bc/src/bignum.c" -# Factoring default headers for most tests. -ac_includes_default="\ -#include -#ifdef HAVE_SYS_TYPES_H -# include -#endif -#ifdef HAVE_SYS_STAT_H -# include -#endif -#ifdef STDC_HEADERS -# include -# include -#else -# ifdef HAVE_STDLIB_H -# include -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include -# endif -# include -#endif -#ifdef HAVE_STRINGS_H -# include -#endif -#ifdef HAVE_INTTYPES_H -# include -#endif -#ifdef HAVE_STDINT_H -# include -#endif -#ifdef HAVE_UNISTD_H -# include -#endif" - +ac_unique_file="setup-go.rkt" enable_option_checking=no ac_subst_vars='LTLIBOBJS LIBOBJS -subdirs -CROSS_COMPILE_TARGET_KIND -STARTUP_AS_AUTO -STARTUP_AS_C -STARTUP_AS_BYTECODE -BOOT_MODE -CGC_IF_NEEDED_FOR_MMM -RUN_RACKET_MAIN_VARIANT -RUN_RACKET_MMM -RUN_RACKET_CGC -INSTALL_LIBS_ENABLE -INSTALL_SETUP_RACKET_FLAGS -INSTALL_SETUP_FLAGS -LTA -LTO -LIBRACKET_DEP -FOREIGNTARGET -FOREIGN_CONVENIENCE -FOREIGN_OBJSLIB -FOREIGN_IF_USED -EXTRA_OSK_LIBS -OSKHOME -DLLTOOL -WINDRES -DIRCVTPOST -DIRCVTPRE -PWD -WX_MMD_FLAG -INCLUDEDEP -USE_WXPRECOMP -WXPRECOMP -MAKE_FINISH -MRLIBINSTALL -ICP_STATIC_LIB -ICP_LIB -ICP -WXVARIANT -WXLIBS -LIBSFX -OWN_LIBFFI -SO_SUFFIX -EXE_SUFFIX -FRAMEWORK_PREFIX -FRAMEWORK_REL_INSTALL -FRAMEWORK_INSTALL_DIR -NOT_MINGW -MINGW -NOT_OSX -OSX -EXTRA_GMP_DEP -EXTRA_GMP_OBJ -MZINSTALLBINDIR -MZINSTALLTARGET -MZBINTARGET -XFORMFLAGS -GCDIR -MROPTIONS -GC2OPTIONS -CGCOPTIONS -MZOPTIONS -OPTIONS -X_EXTRA_LIBS -X_PRE_LIBS -X_LIBS -X_CFLAGS -x_libraries -x_includes -DYN_CFLAGS -PLAIN_CC -POST_LINKER -MZLINKER -REZ -STRIP_LIB_DEBUG -STRIP_DEBUG -ARFLAGS -STATIC_AR -AR -AS -SED -PROFFLAGS -COMPFLAGS -PREFLAGS -EGREP -GREP -STRIP -platform_ar_found -RANLIB -CPP -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -MAKE_INSTALL_PKGSCOPE -INSTALL_PKGSCOPE -MAKE_LOCAL_RACKET +RUN_RACKET +CS_USE_BOOTSTRAP_HELP CS_BOOTSTRAP_HELP +MAKE_LOCAL_RACKET MAIN_MAKE_TARGET MAIN_VARIANT CGC_CAP_INSTALLED @@ -747,6 +614,8 @@ libpltdir_rel libpltdir appsdir collectsdir +MAKE_INSTALL_PKGSCOPE +INSTALL_PKGSCOPE MACLIBRKT_LINK_MODE target_os target_vendor @@ -801,26 +670,11 @@ SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking -enable_gracket -enable_jit -enable_foreign -enable_places -enable_futures -enable_float -enable_floatinstead -enable_extflonum -enable_racket enable_origtree enable_useprefix enable_pkgscope enable_docs enable_usersetup -enable_natipkg -enable_shared -enable_dynlib -enable_lt -enable_libs -enable_libffi enable_sdk enable_xonx enable_macprefix @@ -831,34 +685,12 @@ enable_mac64 enable_bcdefault enable_csonly enable_csdefault -enable_sgc -enable_sgcdebug -enable_generations -enable_backtrace -enable_cify -enable_pthread -enable_stackup -enable_bigendian -enable_ffipoll -enable_gprof -enable_gcov -enable_noopt -enable_ubsan -enable_jitframe -enable_werror -enable_crossany +enable_boothelp ' ac_precious_vars='build_alias host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP' -ac_subdirs_all='bc/foreign/libffi -rktio ' +target_alias' + # Initialize some variables set by options. ac_init_help= @@ -1461,26 +1293,11 @@ Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-gracket build GRacket as well as Racket (enabled by default) - --enable-jit support JIT compiler (enabled by default) - --enable-foreign support foreign calls (enabled by default) - --enable-places support places (3m only; usually enabled by default) - --enable-futures support futures (usually enabled by default) - --enable-float support single-precision floats (enabled by default) - --enable-floatinstead use single-precision by default (NOT RECOMMENDED) - --enable-extflonum support extflonums (enabled by default, if available) - --enable-racket= use as Racket to build; or "auto" to create --enable-origtree install with original directory structure --disable-useprefix ignore any --prefix setting --enable-pkgscope= set `raco pkg' default: installation, user, or shared --enable-docs build docs on install (enabled by default) --enable-usersetup setup user-specific files on install - --enable-natipkg add "-natipkg" to library subpath - --enable-shared create shared libraries (ok, but not recommended) - --enable-dynlib same as --enable-shared - --enable-lt= use instead of libtool; disable to use bundled - --enable-libs install static libraries (enabled by default for Unix) - --enable-libffi use installed libffi (enabled by default for Unix) --enable-sdk= use Mac OS 10.4 SDK directory --enable-sdk5= use Mac OS 10.5 SDK directory --enable-sdk6= use Mac OS 10.6 SDK directory @@ -1497,36 +1314,7 @@ Optional Features: --enable-bconly BC default, and skip CS build --enable-csdefault install CS without suffix --enable-csonly CS default, and skip BC build - --enable-sgc obsolte; Senora GC is always enabled - --enable-sgcdebug use Senora GC for debugging (expensive; CGC only) - --enable-generations 3m: support generational GC (enabled by default) - --enable-backtrace 3m: support GC backtrace dumps (expensive debug mode) - --enable-cify compile startup code to C instead of bytecode - --enable-pthread link with pthreads (usually auto-enabled if needed) - --enable-stackup assume "up" if stack direction cannot be determined - --enable-bigendian assume "big" if endianness cannot be determined - --enable-ffipoll FFI calls only when embedding program explicitly polls - --enable-gprof compile for profiling with gprof (gcc only) - --enable-gcov compile to gather gcov statistics (gcc3 only) - --enable-strip strip debug on install (usually enabled by default) - --enable-noopt drop -O C flags (useful for low-level debugging) - --enable-ubsan compile with -fsanitize=undefined - --enable-jitframe x86_64: use frame pointer for internal calls - --enable-werror compile sources with warnings as errors - --enable-crossany Record own cross target as machine-independent - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L if you have libraries in a - nonstandard directory - LIBS libraries to pass to the linker, e.g. -l - CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if - you have headers in a nonstandard directory - 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. + --enable-boothelp use BC to boot CS Report bugs to the package provider. _ACEOF @@ -1604,524 +1392,6 @@ fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## - -# ac_fn_c_try_compile LINENO -# -------------------------- -# Try to compile conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext - if { { ac_try="$ac_compile" -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\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 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 - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then : - ac_retval=0 -else - $as_echo "$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_compile - -# 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\"" -$as_echo "$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 - $as_echo "$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_echo "$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_c_try_link LINENO -# ----------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. -ac_fn_c_try_link () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - rm -f conftest.$ac_objext conftest$ac_exeext - if { { ac_try="$ac_link" -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\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 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 - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest$ac_exeext && { - test "$cross_compiling" = yes || - test -x conftest$ac_exeext - }; then : - ac_retval=0 -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=1 -fi - # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information - # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would - # interfere with the next link command; also delete a directory that is - # left behind by Apple's compiler. We do this before executing the actions. - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_link - -# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists, giving a warning if it cannot be compiled using -# the include files in INCLUDES and setting the cache variable VAR -# accordingly. -ac_fn_c_check_header_mongrel () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if eval \${$3+:} false; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -else - # Is the header compilable? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 -$as_echo_n "checking $2 usability... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_header_compiler=yes -else - ac_header_compiler=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 -$as_echo "$ac_header_compiler" >&6; } - -# Is the header present? -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 -$as_echo_n "checking $2 presence... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include <$2> -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - ac_header_preproc=yes -else - ac_header_preproc=no -fi -rm -f conftest.err conftest.i conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 -$as_echo "$ac_header_preproc" >&6; } - -# So? What about this header? -case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( - yes:no: ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 -$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; - no:yes:* ) - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 -$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 -$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 -$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 -$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 -$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} - ;; -esac - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=\$ac_header_compiler" -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -fi - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_mongrel - -# ac_fn_c_try_run LINENO -# ---------------------- -# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes -# that executables *can* be run. -ac_fn_c_try_run () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if { { ac_try="$ac_link" -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\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' - { { 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\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then : - ac_retval=0 -else - $as_echo "$as_me: program exited with status $ac_status" >&5 - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_retval=$ac_status -fi - rm -rf conftest.dSYM conftest_ipa8_conftest.oo - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - as_fn_set_status $ac_retval - -} # ac_fn_c_try_run - -# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES -# ------------------------------------------------------- -# Tests whether HEADER exists and can be compiled using the include files in -# INCLUDES, setting the cache variable VAR accordingly. -ac_fn_c_check_header_compile () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -#include <$2> -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - eval "$3=yes" -else - eval "$3=no" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_header_compile - -# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES -# -------------------------------------------- -# Tries to find the compile-time value of EXPR in a program that includes -# INCLUDES, setting VAR accordingly. Returns whether the value could be -# computed -ac_fn_c_compute_int () -{ - as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack - if test "$cross_compiling" = yes; then - # Depending upon the size, compute the lo and hi bounds. -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) >= 0)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=0 ac_mid=0 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid; break -else - as_fn_arith $ac_mid + 1 && ac_lo=$as_val - if test $ac_lo -le $ac_mid; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) < 0)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=-1 ac_mid=-1 - while :; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) >= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_lo=$ac_mid; break -else - as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val - if test $ac_mid -le $ac_hi; then - ac_lo= ac_hi= - break - fi - as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - done -else - ac_lo= ac_hi= -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -# Binary search between lo and hi bounds. -while test "x$ac_lo" != "x$ac_hi"; do - as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -static int test_array [1 - 2 * !(($2) <= $ac_mid)]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_hi=$ac_mid -else - as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -done -case $ac_lo in #(( -?*) eval "$3=\$ac_lo"; ac_retval=0 ;; -'') ac_retval=1 ;; -esac - else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -static long int longval () { return $2; } -static unsigned long int ulongval () { return $2; } -#include -#include -int -main () -{ - - FILE *f = fopen ("conftest.val", "w"); - if (! f) - return 1; - if (($2) < 0) - { - long int i = longval (); - if (i != ($2)) - return 1; - fprintf (f, "%ld", i); - } - else - { - unsigned long int i = ulongval (); - if (i != ($2)) - return 1; - fprintf (f, "%lu", i); - } - /* Do not output a trailing newline, as this causes \r\n confusion - on some platforms. */ - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - echo >>conftest.val; read $3 &5 -$as_echo_n "checking for $2... " >&6; } -if eval \${$3+:} false; then : - $as_echo_n "(cached) " >&6 -else - eval "$3=no" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof ($2)) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$4 -int -main () -{ -if (sizeof (($2))) - return 0; - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - eval "$3=yes" -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -eval ac_res=\$$3 - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } - eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno - -} # ac_fn_c_check_type cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. @@ -2475,9 +1745,6 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu -ac_config_headers="$ac_config_headers bc/mzconfig.h" - - ac_aux_dir= for ac_dir in lt "$srcdir"/lt; do if test -f "$ac_dir/install-sh"; then @@ -2619,61 +1886,7 @@ test -n "$target_alias" && program_prefix=${target_alias}- -# Check whether --enable-gracket was given. -if test "${enable_gracket+set}" = set; then : - enableval=$enable_gracket; -else - enable_gracket=yes -fi -# Check whether --enable-jit was given. -if test "${enable_jit+set}" = set; then : - enableval=$enable_jit; -else - enable_jit=yes -fi - -# Check whether --enable-foreign was given. -if test "${enable_foreign+set}" = set; then : - enableval=$enable_foreign; -else - enable_foreign=yes -fi - -# Check whether --enable-places was given. -if test "${enable_places+set}" = set; then : - enableval=$enable_places; -fi - -# Check whether --enable-futures was given. -if test "${enable_futures+set}" = set; then : - enableval=$enable_futures; -fi - -# Check whether --enable-float was given. -if test "${enable_float+set}" = set; then : - enableval=$enable_float; -else - enable_float=yes -fi - -# Check whether --enable-floatinstead was given. -if test "${enable_floatinstead+set}" = set; then : - enableval=$enable_floatinstead; -fi - -# Check whether --enable-extflonum was given. -if test "${enable_extflonum+set}" = set; then : - enableval=$enable_extflonum; -else - enable_extflonum=default -fi - - -# Check whether --enable-racket was given. -if test "${enable_racket+set}" = set; then : - enableval=$enable_racket; -fi @@ -2706,46 +1919,6 @@ if test "${enable_usersetup+set}" = set; then : fi - -# Check whether --enable-natipkg was given. -if test "${enable_natipkg+set}" = set; then : - enableval=$enable_natipkg; -fi - - - -# Check whether --enable-shared was given. -if test "${enable_shared+set}" = set; then : - enableval=$enable_shared; -fi - -# Check whether --enable-dynlib was given. -if test "${enable_dynlib+set}" = set; then : - enableval=$enable_dynlib; -fi - -# Check whether --enable-lt was given. -if test "${enable_lt+set}" = set; then : - enableval=$enable_lt; LIBTOOLPROG="$enableval" -else - enable_lt=default -fi - -# Check whether --enable-libs was given. -if test "${enable_libs+set}" = set; then : - enableval=$enable_libs; -fi - - - -# Check whether --enable-libffi was given. -if test "${enable_libffi+set}" = set; then : - enableval=$enable_libffi; -else - enable_libffi=default -fi - - # Check whether --enable-sdk was given. if test "${enable_sdk+set}" = set; then : enableval=$enable_sdk; @@ -2809,7 +1982,6 @@ else fi - # Check whether --enable-bcdefault was given. if test "${enable_bcdefault+set}" = set; then : enableval=$enable_bcdefault; @@ -2831,162 +2003,23 @@ if test "${enable_csonly+set}" = set; then : fi - -# Check whether --enable-sgc was given. -if test "${enable_sgc+set}" = set; then : - enableval=$enable_sgc; -fi - -# Check whether --enable-sgcdebug was given. -if test "${enable_sgcdebug+set}" = set; then : - enableval=$enable_sgcdebug; -fi - -# Check whether --enable-generations was given. -if test "${enable_generations+set}" = set; then : - enableval=$enable_generations; -else - enable_generations=yes -fi - -# Check whether --enable-backtrace was given. -if test "${enable_backtrace+set}" = set; then : - enableval=$enable_backtrace; -fi - - -# Check whether --enable-cify was given. -if test "${enable_cify+set}" = set; then : - enableval=$enable_cify; -fi - - -# Check whether --enable-pthread was given. -if test "${enable_pthread+set}" = set; then : - enableval=$enable_pthread; -fi - -# Check whether --enable-stackup was given. -if test "${enable_stackup+set}" = set; then : - enableval=$enable_stackup; -fi - -# Check whether --enable-bigendian was given. -if test "${enable_bigendian+set}" = set; then : - enableval=$enable_bigendian; -fi - -# Check whether --enable-ffipoll was given. -if test "${enable_ffipoll+set}" = set; then : - enableval=$enable_ffipoll; -fi - - -# AC_ARG_ENABLE(oskit, [ --enable-oskit compile OSKit-based Racket kernel]) -# AC_ARG_ENABLE(smalloskit, [ --enable-smalloskit compile small OSKit-based Racket kernel]) - -# Check whether --enable-gprof was given. -if test "${enable_gprof+set}" = set; then : - enableval=$enable_gprof; -fi - -# Check whether --enable-gcov was given. -if test "${enable_gcov+set}" = set; then : - enableval=$enable_gcov; -fi - - -# Check whether --enable-noopt was given. -if test "${enable_noopt+set}" = set; then : - enableval=$enable_noopt; -fi - - -STRIP_DEBUG=":" -STRIP_LIB_DEBUG=":" -strip_debug_flags="" -enable_strip_by_default=yes -strip_needs_dash_s=no - -# Check whether --enable-noopt was given. -if test "${enable_noopt+set}" = set; then : - enableval=$enable_noopt; -fi - -# Check whether --enable-ubsan was given. -if test "${enable_ubsan+set}" = set; then : - enableval=$enable_ubsan; -fi - - -# Check whether --enable-jitframe was given. -if test "${enable_jitframe+set}" = set; then : - enableval=$enable_jitframe; -fi - - -# Check whether --enable-werror was given. -if test "${enable_werror+set}" = set; then : - enableval=$enable_werror; -fi - - -# Check whether --enable-crossany was given. -if test "${enable_crossany+set}" = set; then : - enableval=$enable_crossany; +# Check whether --enable-boothelp was given. +if test "${enable_boothelp+set}" = set; then : + enableval=$enable_boothelp; fi -###### Some flags imply other flags ####### +show_explicitly_disabled() +{ + done=true +} -if test "${enable_smalloskit}" = "yes" ; then - enable_oskit=yes -fi +show_explicitly_enabled() +{ + done=true +} -if test "${enable_oskit}" = "yes" ; then - enable_gracket=no -fi - -if test "${enable_dynlib}" = "no" ; then - enable_shared=no -fi -if test "${enable_dynlib}" = "yes" ; then - enable_shared=yes -fi -if test "${enable_shared}" != "yes" ; then - enable_lt=no -fi -if test "${enable_lt}" = "no" ; then - LIBTOOLPROG="" -fi -if test "${enable_lt}" = "yes" ; then - echo "ERROR: no program given for libtool!" - echo " Supply a program for --enable-lt, something like this:" - echo " --enable-lt=/usr/bin/libtool" - exit 1 -fi -if test "${enable_lt}" = "default" ; then - if `which libtool > /dev/null` ; then - LIBTOOLPROG="libtool" - fi -fi - -if test "${enable_shared}" = "yes" ; then - case "$host_os" in - darwin*) - if test "${enable_xonx}" != "yes" ; then - echo "ERROR: don't use --enable-shared or --enable-dynlib under Mac OS," - echo " unless you also use --enable-xonx" - exit 1 - fi - ;; - *mingw*) - echo "ERROR: don't use --enable-shared or --enable-dynlib with mingw" - exit 1 - ;; - esac -fi enable_quartz=no @@ -3023,12 +2056,30 @@ fi - -if test "${enable_iconv}" = "" ; then - enable_iconv=yes +INSTALL_PKGSCOPE=user +MAKE_INSTALL_PKGSCOPE=preserve +if test "${enable_pkgscope}" != "" ; then + case "${enable_pkgscope}" in + installation) + INSTALL_PKGSCOPE=installation + ;; + user) + INSTALL_PKGSCOPE=user + ;; + shared) + INSTALL_PKGSCOPE=shared + ;; + *) + echo "Unrecognized package scope: ${enable_pkgscope}" + exit 1 + ;; + esac + echo "=== Package scope: " $INSTALL_PKGSCOPE + MAKE_INSTALL_PKGSCOPE=adjust fi -############## Install targets ################ + + unixstyle=no @@ -3129,8 +2180,6 @@ fi GUI_COLLECTS_PATH="${COLLECTS_PATH}" GUI_CONFIG_PATH="${CONFIG_PATH}" -CS_BOOTSTRAP_HELP="no-3m" - ######################################## @@ -3163,7 +2212,6 @@ CS_BOOTSTRAP_HELP="no-3m" - ######################################## @@ -3205,34 +2253,6 @@ show_path_results() } - -###### Make sure GRacket is really there ###### - -if test "${enable_gracket}" = "yes" ; then - if test ! -d $srcdir/bc/gracket ; then - enable_gracket=no - fi -fi - -###### Tell user what flags we have ####### - -show_explicitly_disabled() -{ - if test "$1" = "no" ; then - echo "=== $2 disabled" - fi -} - -show_explicitly_enabled() -{ - if test "$1" = "yes" ; then - echo "=== $2 enabled" - if test "$3" != "" ; then - echo " $3" - fi - fi -} - if test "${enable_bconly}" = "yes" ; then if test "${enable_csonly}" = "yes" ; then echo "ERROR: cannot specify both --enable-bconly and --enable-csonly" @@ -3288,3997 +2308,36 @@ show_explicitly_enabled "${enable_csdefault}" "CS executables without suffix" show_explicitly_enabled "${enable_bcdefault}" "BC executables without suffix" show_explicitly_enabled "${enable_cgcdefault}" "CGC as default" "Note that this mode is NOT RECOMMENDED for normal Racket use" - -show_explicitly_disabled "${enable_docs}" "Documentation build" -show_explicitly_enabled "${enable_usersetup}" "User-specific setup on install" -show_explicitly_enabled "${enable_natipkg}" "Adding \"-natipkg\" suffix to library subpath" - - -show_explicitly_enabled "${enable_xonx}" "Unix style" -show_explicitly_enabled "${enable_shared}" "Shared libraries" - -show_explicitly_disabled "${enable_gracket}" GRacket - -if test "$LIBTOOLPROG" != "" ; then - echo "=== Libtool program: $LIBTOOLPROG" -fi -show_explicitly_enabled "${enable_orig}" "Original install tree" - -show_explicitly_disabled "${enable_jit}" JIT - -show_explicitly_disabled "${enable_foreign}" Foreign -show_explicitly_enabled "${enable_libffi}" "Installed libffi" -show_explicitly_disabled "${enable_libffi}" "Installed libffi" - -show_explicitly_enabled "${enable_places}" Places -show_explicitly_disabled "${enable_places}" Places -show_explicitly_enabled "${enable_futures}" Futures -show_explicitly_disabled "${enable_futures}" Futures - -show_explicitly_enabled "${enable_sgcdebug}" "SGC debug mode" -show_explicitly_disabled "${enable_generations}" "3m generational GC" -show_explicitly_enabled "${enable_backtrace}" "3m GC backtraces" "Note that this mode is not intended for normal Racket use" -show_explicitly_enabled "${enable_cify}" "Startup compiled to C" -show_explicitly_disabled "${enable_cify}" "Startup compiled to C" - -show_explicitly_disabled "${enable_float}" "Single-precision floats" -show_explicitly_enabled "${enable_floatinstead}" "Single-precision default floats" "Note that this mode is NOT RECOMMENDED" -show_explicitly_enabled "${enable_extflonum}" "Extflonums" -show_explicitly_disabled "${enable_extflonum}" "Extflonums" - -show_explicitly_enabled "${enable_pthread}" "pthreads" -show_explicitly_disabled "${enable_pthread}" "pthreads" -show_explicitly_enabled "${enable_ffipoll}" "ffipoll" -show_explicitly_enabled "${enable_oskit}" "OSKit" -show_explicitly_enabled "${enable_smalloskit}" "OSKit small mode" - -show_explicitly_enabled "${enable_gprof}" "gprof" -show_explicitly_enabled "${enable_gcov}" "gcov" - -show_explicitly_enabled "${enable_jitframe}" "jitframe" - -show_explicitly_enabled "${enable_noopt}" "No-optimization" "Note that this mode is intended only for debugging purposes" -show_explicitly_enabled "${enable_strip}" "Debug-symbol stripping" -show_explicitly_disabled "${enable_strip}" "Debug-symbol stripping" - - -show_explicitly_enabled "${enable_libs}" "Installation of static libraries (if any)" -show_explicitly_disabled "${enable_libs}" "Installation of static libraries (if any)" - -INSTALL_LIBS_ENABLE=no-install - -if test "${enable_libs}" != "no" ; then - # Intended to be canceled for some platforms: - INSTALL_LIBS_ENABLE=install -fi - - -show_explicitly_disabled "${enable_mac64}" "64-bit Mac OS" - -show_explicitly_enabled "${enable_libfw}" "Frameworks-to-system" -show_explicitly_enabled "${enable_userfw}" "Frameworks-to-user" -show_explicitly_enabled "${enable_embedfw}" "embedded frameworks" - -if test "${enable_sdk}" != "" ; then - if test "${enable_sdk5}" != "" ; then - echo "ERROR: cannot specify both --enable-sdk and --enable-sdk5" - fi - if test "${enable_sdk6}" != "" ; then - echo "ERROR: cannot specify both --enable-sdk and --enable-sdk6" - fi - if test "${enable_ios}" != "" ; then - echo "ERROR: cannot specify both --enable-sdk and --enable-ios" - fi - echo "=== Using Mac OS 10.4 SDK directory ${enable_sdk}" -fi -if test "${enable_sdk5}" != "" ; then - if test "${enable_sdk6}" != "" ; then - echo "ERROR: cannot specify both --enable-sdk5 and --enable-sdk6" - fi - if test "${enable_ios}" != "" ; then - echo "ERROR: cannot specify both --enable-sdk5 and --enable-ios" - fi - echo "=== Using Mac OS 10.5 SDK directory ${enable_sdk}" -fi -if test "${enable_sdk6}" != "" ; then - if test "${enable_ios}" != "" ; then - echo "ERROR: cannot specify both --enable-sdk6 and --enable-ios" - fi - echo "=== Using Mac OS 10.6 SDK directory ${enable_sdk6}" -fi -if test "${enable_ios}" != "" ; then - echo "=== Using ios SDK directory ${enable_ios}" -fi - -if test "${enable_sysroot}" != "" ; then - echo "=== Using sysroot directory ${enable_sysroot}" -fi - - -if test "${enable_racket}" != "" ; then - if test "${enable_racket}" = "auto" ; then - echo "=== Creating and using local Racket executable" - else - if test ! -f "${enable_racket}"; then - echo "cannot find racket executable in ${enable_racket}" - exit 1 - else - echo "=== Using Racket executable ${enable_racket}" - fi - fi -fi - -INSTALL_PKGSCOPE=user -MAKE_INSTALL_PKGSCOPE=preserve -if test "${enable_pkgscope}" != "" ; then - case "${enable_pkgscope}" in - installation) - INSTALL_PKGSCOPE=installation - ;; - user) - INSTALL_PKGSCOPE=user - ;; - shared) - INSTALL_PKGSCOPE=shared - ;; - *) - echo "Unrecognized package scope: ${enable_pkgscope}" - exit 1 - ;; - esac - echo "=== Package scope: " $INSTALL_PKGSCOPE - MAKE_INSTALL_PKGSCOPE=adjust -fi - - - - - -show_explicitly_enabled "${enable_crossany}" "Own cross-compile target as machine-independent" - -CROSS_COMPILE_TARGET_KIND=machine -if test "${enable_crossany}" = "yes" ; then - CROSS_COMPILE_TARGET_KIND=any -fi - - -###### Some defaults ####### - -OPTIONS= - -# GC Directory -GCDIR=sgc - -MZBINTARGET=normal-bin -MZINSTALLTARGET=unix-install -MZINSTALLBINDIR='$(bindir)' - -MZOPTIONS= -CGCOPTIONS= -GC2OPTIONS= -DYN_CFLAGS= - -WXVARIANT="wx_xt" - -MROPTIONS= -INCLUDEDEP="#" -WX_MMD_FLAG= - -DIRCVTPRE= -DIRCVTPOST= -PWD=pwd -WINDRES=windres -DLLTOOL=dlltool - -PREFLAGS="$CPPFLAGS" - -OWN_LIBFFI="ON" - -ar_libtool_no_undefined="" -LIBRACKET_DEP="" - -EXE_SUFFIX= -SO_SUFFIX=.so - -POST_LINKER="echo" - -MMM=3m -MMM_INSTALLED= -MMM_CAP_INSTALLED= -CGC=cgc -CGC_INSTALLED=cgc -CGC_CAP_INSTALLED=CGC -MAIN_VARIANT=3m - -INSTALL_SETUP_FLAGS= -INSTALL_SETUP_RACKET_FLAGS= - -use_flag_pthread=yes -use_flag_posix_pthread=no -mzrt_needs_pthread=yes -skip_iconv_check=no -check_page_size=yes -try_no_nullability_completeness=no -check_for_unwind=no - -if test "${enable_cify}" = "yes" ; then - STARTUP_AS_BYTECODE=_bytecode - STARTUP_AS_C= - STARTUP_AS_AUTO=_auto +if test "${enable_boothelp}" = "yes" ; then + CS_BOOTSTRAP_HELP="3m" + CS_USE_BOOTSTRAP_HELP="BOOTFILE_RACKET=../../bc/racket3m" else - if test "${enable_cify}" = "no" ; then - STARTUP_AS_BYTECODE= - STARTUP_AS_C=_c - STARTUP_AS_AUTO=_auto - else - STARTUP_AS_BYTECODE=_bytecode - STARTUP_AS_C=_c - STARTUP_AS_AUTO= - fi + CS_BOOTSTRAP_HELP="no-3m" + CS_USE_BOOTSTRAP_HELP="" fi + + + + MAKE_LOCAL_RACKET=no-local-racket -###### OSKit stuff ####### - -if test "${enable_oskit}" = "yes" ; then - OSKHOME=${OSKHOME:-/usr/local/oskit} - - if test ! -d ${OSKHOME}/bin ; then - as_fn_error $? "cannot find OSKit support; try defining OSKHOME" "$LINENO" 5 - fi - - CC=`(ls ${OSKHOME}/bin/*-oskit-gcc | head -1) 2> /dev/null` - if test ! -x "${CC}" ; then - as_fn_error $? "can't find *-oskit-gcc compiler script in ${OSKHOME}/bin" "$LINENO" 5 - fi - - PREFLAGS="-nostdinc -I${OSKHOME}/include/oskit -I${OSKHOME}/include/oskit/freebsd " - PREFLAGS="$PREFLAGS -I${OSKHOME}/include/oskit/c -I${OSKHOME}/include -I/usr/include" - - OPTIONS="-DOSKIT -DUSE_SENORA_GC -DSGC_AUTO_ROOTS=0" - - if test "${enable_smalloskit}" = "yes" ; then - EXTRA_OSK_LIBS= - else - EXTRA_OSK_LIBS="-loskit_linux_dev -loskit_linux_fs -loskit_diskpart -loskit_freebsd_net" - OPTIONS="$OPTIONS -DOSK_FILESYSTEMS_AND_ETHERNET" - fi - - MZBINTARGET=oskit -else - enable_oskit=no -fi - -###### float stuff ####### - -if test "${enable_floatinstead}" = "yes" ; then - enable_float=yes - -$as_echo "#define USE_SINGLE_FLOATS_AS_DEFAULT 1" >>confdefs.h - -fi - -if test "${enable_float}" = "yes" ; then - -$as_echo "#define USE_SINGLE_FLOATS 1" >>confdefs.h - -fi - -if test "${enable_extflonum}" = "no" ; then - -$as_echo "#define MZ_NO_EXTFLONUMS 1" >>confdefs.h - -fi - -###### Autoconfigure ####### - -COMPFLAGS="" - -ORIG_CC="${CC}" -ORIG_CPP="${CPP}" -# Include `--enable-portable-binary' by default for libffi -SUB_CONFIGURE_EXTRAS=" --enable-portable-binary" - -if test "${enable_sysroot}" != "" ; then - PREFLAGS="--sysroot=${enable_sysroot} ${PREFLAGS}" - CPPFLAGS="--sysroot=${enable_sysroot} ${CPPFLAGS}" - LDFLAGS="--sysroot=${enable_sysroot} ${LDFLAGS}" - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CPPFLAGS="'"'"${PREFLAGS}"'"' - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} LDFLAGS="'"'"${LDFLAGS}"'"' -fi - -if test "${enable_ios}" != "" ; then - case "$host_cpu" in - aarch64) - IOS_ARCH=arm64 - ;; - *) - IOS_ARCH=$host_cpu - ;; - esac - case "${enable_ios}" in - iPhoneOS|iPhoneSimulator) - ios_sdk=/Applications/Xcode.app/Contents/Developer/Platforms/${enable_ios}.platform/Developer/SDKs/${enable_ios}.sdk - ;; - *) - ios_sdk="${enable_ios}" - ;; - esac - IOS_PHONE_VERS="6.0" - PREFLAGS="$PREFLAGS -DTARGET_OS_IPHONE=1" - CPPFLAGS="$CPPFLAGS -DTARGET_OS_IPHONE=1" - PREFLAGS="$PREFLAGS -arch ${IOS_ARCH} -isysroot ${ios_sdk} -miphoneos-version-min=${IOS_PHONE_VERS}" - CPPFLAGS="$CPPFLAGS -arch ${IOS_ARCH} -isysroot ${ios_sdk} -miphoneos-version-min=${IOS_PHONE_VERS}" - LDFLAGS="$LDFLAGS -arch ${IOS_ARCH} -isysroot ${ios_sdk} -miphoneos-version-min=${IOS_PHONE_VERS} -liconv" - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CFLAGS="'"'"${CFLAGS}"'"' - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CPPFLAGS="'"'"${PREFLAGS}"'"' - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} LDFLAGS="'"'"${LDFLAGS}"'"' -fi - - -if test "${enable_oskit}" = "no" ; then - # Auto-set CC, CPP, etc. - - if test "${CFLAGS}${CC}${CPP}" = "" ; then - starts_out_default=yes - else - starts_out_default=no - 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 -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - 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_CC="${ac_tool_prefix}gcc" - $as_echo "$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 -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - 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_ac_ct_CC="gcc" - $as_echo "$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 -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - 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_CC="${ac_tool_prefix}cc" - $as_echo "$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 -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - 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_CC="$ac_tool_prefix$ac_prog" - $as_echo "$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 -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_CC+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - 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_ac_ct_CC="$ac_prog" - $as_echo "$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 -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "no acceptable C compiler found in \$PATH -See \`config.log' for more details" "$LINENO" 5; } - -# Provide some information about the compiler. -$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -for ac_option in --version -v -V -qversion; do - { { ac_try="$ac_compiler $ac_option >&5" -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\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compiler $ac_option >&5") 2>conftest.err - ac_status=$? - if test -s conftest.err; then - sed '10a\ -... rest of stderr output deleted ... - 10q' conftest.err >conftest.er1 - cat conftest.er1 >&5 - fi - rm -f conftest.er1 conftest.err - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } -done - -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { { ac_try="$ac_link_default" -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\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi -if test -z "$ac_file"; then : - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "C compiler cannot create executables -See \`config.log' for more details" "$LINENO" 5; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 -$as_echo "yes" >&6; } -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -ac_exeext=$ac_cv_exeext - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { { ac_try="$ac_link" -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\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest conftest$ac_cv_exeext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -FILE *f = fopen ("conftest.out", "w"); - return ferror (f) || fclose (f) != 0; - - ; - return 0; -} -_ACEOF -ac_clean_files="$ac_clean_files conftest.out" -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -if test "$cross_compiling" != yes; then - { { ac_try="$ac_link" -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\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; } - if { ac_try='./conftest$ac_cv_exeext' - { { 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\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details" "$LINENO" 5; } - fi - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out -ac_clean_files=$ac_clean_files_save -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if ${ac_cv_objext+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { { ac_try="$ac_compile" -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\"" -$as_echo "$ac_try_echo"; } >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 - test $ac_status = 0; }; then : - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error $? "cannot compute suffix of object files: cannot compile -See \`config.log' for more details" "$LINENO" 5; } -fi -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if ${ac_cv_c_compiler_gnu+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_compiler_gnu=yes -else - ac_compiler_gnu=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if ${ac_cv_prog_cc_g+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -else - CFLAGS="" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -else - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_g=yes -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if ${ac_cv_prog_cc_c89+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -struct stat; -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_prog_cc_c89=$ac_arg -fi -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac -if test "x$ac_cv_prog_cc_c89" != xno; then : - -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 - - 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 -$as_echo_n "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 ${ac_cv_prog_CPP+:} false; then : - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-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. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # 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. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # 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 - # 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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 -$as_echo "$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. - # Prefer to if __STDC__ is defined, since - # exists even on freestanding compilers. - # 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. */ -#ifdef __STDC__ -# include -#else -# include -#endif - Syntax error -_ACEOF -if ac_fn_c_try_cpp "$LINENO"; then : - -else - # 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 - # 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_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$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 - - - if test "$starts_out_default" = "yes" ; then - if test "$GCC" = "yes" ; then - # Auto selection of C compiler picked GCC, so we - # assume it also picked the GNU preprocessor; move - # auto-picked CFLAGS to PREFLAGS so that compilation - # and preprocessing are in sync (e.g., for optimization flags) - PREFLAGS="${CFLAGS} ${PREFLAGS}" - CPPFLAGS="${CFLAGS} ${CPPFLAGS}" - CFLAGS="" - fi - fi - if test "$AS" = '' ; then - AS="${ac_tool_prefix}as" - as_was_set=no - else - as_was_set=yes - fi -fi -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. -set dummy ${ac_tool_prefix}ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$RANLIB"; then - ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - 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_RANLIB="${ac_tool_prefix}ranlib" - $as_echo "$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 -RANLIB=$ac_cv_prog_RANLIB -if test -n "$RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 -$as_echo "$RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_RANLIB"; then - ac_ct_RANLIB=$RANLIB - # Extract the first word of "ranlib", so it can be a program name with args. -set dummy ranlib; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_RANLIB+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_RANLIB"; then - ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - 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_ac_ct_RANLIB="ranlib" - $as_echo "$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 -ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB -if test -n "$ac_ct_RANLIB"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 -$as_echo "$ac_ct_RANLIB" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_RANLIB" = x; then - RANLIB=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - RANLIB=$ac_ct_RANLIB - fi -else - RANLIB="$ac_cv_prog_RANLIB" -fi - -if test "$AR" = '' ; then - AR="${ac_tool_prefix}ar" - # Extract the first word of "$AR", so it can be a program name with args. -set dummy $AR; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_platform_ar_found+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$platform_ar_found"; then - ac_cv_prog_platform_ar_found="$platform_ar_found" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - 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_platform_ar_found="yes" - $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done - done -IFS=$as_save_IFS - - test -z "$ac_cv_prog_platform_ar_found" && ac_cv_prog_platform_ar_found="no" -fi -fi -platform_ar_found=$ac_cv_prog_platform_ar_found -if test -n "$platform_ar_found"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $platform_ar_found" >&5 -$as_echo "$platform_ar_found" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "$platform_ar_found" = 'no' ; then - AR="ar" - fi -fi -if test "$ARFLAGS" = '' ; then - ARFLAGS=rc -fi -SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} AR_FLAGS="'"'"${ARFLAGS}"'"' - -is_gmake=`make -v no-such-target-we-hope 2>&1 | grep "GNU Make"` - -# If using gcc, we want all warnings: -is_gcc=`$CC -v 2>&1 | tail -n 1 | grep -E '^gcc version [[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+ \([^\)]+\)[[:space:]]*$'` - -# We also need to test if $CC is gcc itself because on mac, -# where clang impersonates gcc, although is_gcc is false, we want -# to use it as if it was gcc. -# See https://github.com/racket/racket/pull/2897#pullrequestreview-314906673 -if test "$is_gcc" != "" || test "`basename $CC`" = "gcc"; then - COMPFLAGS="$COMPFLAGS -Wall" - - # Use -MMD when we have gcc and gnumake: - if test "$is_gmake" = "" ; then - WX_MMD_FLAG="" - else - WX_MMD_FLAG="-MMD" - fi - - # Compile mzdyn.o with -fPIC - DYN_CFLAGS="-fPIC" -fi - -# When GNU Make is present, use version.mak -if test "$is_gmake" != ""; then - INCLUDEDEP="-include" -fi - -if test "$REZ" = '' ; then - REZ=/Developer/Tools/Rez -fi - -if test "${enable_gracket}" = "yes" ; then - MAKE_GRACKET=gracket -else - MAKE_GRACKET=no -fi - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 -$as_echo_n "checking for cos in -lm... " >&6; } -if ${ac_cv_lib_m_cos+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-lm $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char cos (); -int -main () -{ -return cos (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_m_cos=yes -else - ac_cv_lib_m_cos=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 -$as_echo "$ac_cv_lib_m_cos" >&6; } -if test "x$ac_cv_lib_m_cos" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBM 1 -_ACEOF - - LIBS="-lm $LIBS" - -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 -$as_echo_n "checking for dlopen in -ldl... " >&6; } -if ${ac_cv_lib_dl_dlopen+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_check_lib_save_LIBS=$LIBS -LIBS="-ldl $LIBS" -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - -/* Override any GCC internal prototype to avoid an error. - Use char because int might match the return type of a GCC - builtin and then its argument prototype would still apply. */ -#ifdef __cplusplus -extern "C" -#endif -char dlopen (); -int -main () -{ -return dlopen (); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - ac_cv_lib_dl_dlopen=yes -else - ac_cv_lib_dl_dlopen=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -LIBS=$ac_check_lib_save_LIBS -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 -$as_echo "$ac_cv_lib_dl_dlopen" >&6; } -if test "x$ac_cv_lib_dl_dlopen" = xyes; then : - cat >>confdefs.h <<_ACEOF -#define HAVE_LIBDL 1 -_ACEOF - - LIBS="-ldl $LIBS" - -fi - - -PROFFLAGS="" - -if test "${enable_gprof}" = "yes" ; then - MZOPTIONS="$MZOPTIONS -DDONT_ITIMER" - PROFFLAGS="$PROFFLAGS -pg" - LIBS="$LIBS -pg" -fi - -if test "${enable_gcov}" = "yes" ; then - PROFFLAGS="$PROFFLAGS -fprofile-arcs -ftest-coverage" -fi - -if test "${enable_jitframe}" = "yes" ; then - MZOPTIONS="$MZOPTIONS -DMZ_PROLOG_CREATE_FULL_STACK_FRAME" -fi - -if test "${enable_shared}" = "yes" ; then - LIBRACKET_DEP="${LIBRACKET_DEP} libmzgc.la" - INSTALL_LIBS_ENABLE=install -fi - -if test "${enable_foreign}" = "yes" ; then - check_for_mprotect=yes -fi -if test "${enable_jit}" = "yes" ; then - check_for_mprotect=yes -fi - -############## platform tests ################ - -# for flags we don't want to use in config tests: -EXTRALIBS= - -# for gmp assembly: -EXTRA_GMP_OBJ= -EXTRA_GMP_DEP= - -# For Racket targets: -OSX=".osx" -NOT_OSX="" -MINGW=".mingw" -NOT_MINGW="" -CGC_X86_64="" - -case "$host_os" in - solaris2*) - STATICLINK="-Wl,-Bstatic" # after -ldl - LIBS="$LIBS -lsocket -lnsl -lintl" - need_gcc_static_libgcc="yes" - check_gcc_dash_e="yes" - use_flag_pthread="no" - use_flag_posix_pthread="yes" - ;; - aix*) - enable_cgcdefault="yes" - EXTRALIBS="-Wl,-brtl,-bE:\$(srcdir)/../bc/include/racket.exp" - ;; - *freebsd*) - LIBS="$LIBS -rdynamic" - DYN_CFLAGS="-fPIC" - enable_pthread_by_default=yes - ;; - openbsd*) - LIBS="$LIBS -Wl,--export-dynamic" - enable_pthread_by_default=yes - ;; - bitrig*) - LIBS="$LIBS -Wl,--export-dynamic" - enable_pthread_by_default=yes - ;; - dragonfly*) - LIBS="$LIBS -Wl,--export-dynamic" - enable_pthread_by_default=yes - ;; - netbsd*) - LIBS="$LIBS -rdynamic" - POST_LINKER="paxctl +m" - ;; - irix*) - enable_cgcdefault="yes" - STATICLINK="/usr/lib/libC.a /usr/lib/libmalloc.a" - if test "$X_PRE_LIBS" = " -lSM -lICE" ; then - # For some reason, works best to drop these - X_PRE_LIBS="" - fi - ;; - linux*) - LIBS="$LIBS -ldl -lm -rdynamic" - DYN_CFLAGS="-fPIC" - case "$host_cpu" in - #Required for CentOS 4.6 - x86_64) - enable_parallel_by_default=yes - CGC_X86_64="1" - check_for_unwind=REG_RSP - ;; - ppc|powerpc) - ;; - alpha) - EXTRA_GMP_OBJ='gmp_alpha_gcc.$(LTO)' - EXTRA_GMP_DEP='$(EXTRA_GMP_DEP_FILE)' - ;; - i386|i486|i586|i686) - enable_parallel_by_default=yes - check_for_unwind=REG_ESP - ;; - arm*) - EXTRA_GMP_OBJ='gmp_arm_gcc.$(LTO)' - EXTRA_GMP_DEP='$(EXTRA_GMP_DEP_FILE)' - ;; - *) - ;; - esac - ;; - osf1*) - enable_cgcdefault="yes" - if test "$CC" = "cc" ; then - COMPFLAGS="$COMPFLAGS -ieee_with_inexact -assume noaligned_objects" - elif test "$CC" = "gcc" ; then - EXTRA_GMP_OBJ='gmp_alpha_gcc.$(LTO)' - EXTRA_GMP_DEP='$(EXTRA_GMP_DEP_FILE)' - fi - ;; - hpux*) - enable_cgcdefault="yes" - if test "$CC" = "gcc"; then - COMPFLAGS="$COMPFLAGS -fPIC" - else - CFLAGS="$CFLAGS -Wp,-H,64000" - PREFLAGS="$PREFLAGS -D_HPUX_SOURCE" - COMPFLAGS="$COMPFLAGS -Aa +Z" - CGCOPTIONS="$CGCOPTIONS +ESdbgasm" - MZOPTIONS="$MZOPTIONS +e" - fi - LIBS="$LIBS -Wl,-E" - ;; - *mingw*) - enable_parallel_by_default=yes - mzrt_needs_pthread=no - use_flag_pthread=no - MZOPTIONS="$MZOPTIONS -fno-omit-frame-pointer" # to make JIT backtraces work - MINGW="" - NOT_MINGW=".other" - MZINSTALLTARGET=mingw-install - MZINSTALLBINDIR="${MZINSTALLBINDIR}/.." - EXE_SUFFIX=".exe" - COLLECTS_PATH="collects" - GUI_COLLECTS_PATH="../collects" - CONFIG_PATH="etc" - GUI_CONFIG_PATH="../etc" - skip_iconv_check=yes - check_for_mprotect=no - # ".a" is typically not useful, since we always build a DLL: - if test "${enable_libs}" = "" ; then - INSTALL_LIBS_ENABLE=no-install - fi - -$as_echo "#define HAVE_STDINT_H 1" >>confdefs.h - - if `which ${host}-windres > /dev/null` ; then - WINDRES="${host}-windres" - fi - if `which ${host}-dlltool > /dev/null` ; then - DLLTOOL="${host}-dlltool" - fi - - case "$build_os" in - *cygwin*) - PWD="cygpath -m \\\`pwd\\\`" - DIRCVTPRE="\`cygpath -m " - DIRCVTPOST="\`" - ;; - esac - ;; - cygwin*) - MZINSTALLTARGET=unix-cygwin-install - if test "${enable_shared}" = "yes" ; then - ar_libtool_no_undefined=" -no-undefined" - LIBRACKET_DEP="${LIBRACKET_DEP} -liconv" - fi - EXE_SUFFIX=".exe" - ;; - darwin*) - - if test "${enable_sdk}" != "" ; then - PREFLAGS="$PREFLAGS -isysroot ${enable_sdk} -mmacosx-version-min=10.4 -DEXTRA_EXCEPTION_STUBS" - LDFLAGS="$LDFLAGS -isysroot ${enable_sdk} -mmacosx-version-min=10.4" - if test "${CC}" = "gcc" ; then - CC=gcc-4.0 - fi - if test "${CPP}" = "gcc -E" ; then - CPP="gcc-4.0 -E" - need_cpp_in_extras=yes - fi - if test "${LD}" = "gcc" ; then - LD=gcc-4.0 - need_ld_in_extras=yes - fi - if test "$PROPAGATE_SUB_CONFIGURE" != "no" ; then - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CFLAGS="'"'"${CFLAGS}"'"' - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CPPFLAGS="'"'"${PREFLAGS}"'"' - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} LDFLAGS="'"'"${LDFLAGS}"'"' - fi - need_cc_in_extras=yes - if test "$ORIG_CC_FOR_BUILD" = "" ; then - CC_FOR_BUILD="$CC" - fi - fi - - if test "${enable_sdk5}" != "" ; then - PREFLAGS="$PREFLAGS -isysroot ${enable_sdk5} -mmacosx-version-min=10.5" - LDFLAGS="$LDFLAGS -isysroot ${enable_sdk5} -mmacosx-version-min=10.5" - if test "$PROPAGATE_SUB_CONFIGURE" != "no" ; then - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CFLAGS="'"'"${CFLAGS}"'"' - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CPPFLAGS="'"'"${PREFLAGS}"'"' - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} LDFLAGS="'"'"${LDFLAGS}"'"' - fi - fi - - if test "${enable_sdk6}" != "" ; then - PREFLAGS="$PREFLAGS -isysroot ${enable_sdk6} -mmacosx-version-min=10.6" - LDFLAGS="$LDFLAGS -isysroot ${enable_sdk6} -mmacosx-version-min=10.6" - if test "$PROPAGATE_SUB_CONFIGURE" != "no" ; then - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CFLAGS="'"'"${CFLAGS}"'"' - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CPPFLAGS="'"'"${PREFLAGS}"'"' - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} LDFLAGS="'"'"${LDFLAGS}"'"' - fi - fi - - if test "${enable_sdk9}" != "" ; then - PREFLAGS="$PREFLAGS -isysroot ${enable_sdk9} -mmacosx-version-min=10.9" - LDFLAGS="$LDFLAGS -isysroot ${enable_sdk9} -mmacosx-version-min=10.9" - if test "$PROPAGATE_SUB_CONFIGURE" != "no" ; then - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CFLAGS="'"'"${CFLAGS}"'"' - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CPPFLAGS="'"'"${PREFLAGS}"'"' - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} LDFLAGS="'"'"${LDFLAGS}"'"' - fi - fi - - # Force 32-bit build unless mac64 is enabled: - if test "${enable_mac64}" != "yes" ; then - if test "$host_cpu" != "powerpc" ; then - if test "${ORIG_CC}" = "" ; then - PREFLAGS="${PREFLAGS} -m32" - CPPFLAGS="${CPPFLAGS} -m32" - LDFLAGS="${LDFLAGS} -m32" - # To make the libffi build work, we have to fold -m32 into CC - # instead of CFLAGS: - if test "$PROPAGATE_SUB_CONFIGURE" != "no" ; then - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CC="'"'"${CC}"' -m32"' - fi - need_cc_in_extras=no - if test "$build_cpu" = "x86_64" ; then - # AG_PROC_CC has already decided that we weren't - # cross compiling, so change that decision - cross_compiling=yes - echo may be cross compiling after all - fi - fi - fi - fi - - - case "$host_cpu" in - i386|x86_64) - enable_parallel_by_default=yes - ;; - *) - ;; - esac - - PREFLAGS="$PREFLAGS -DOS_X -D_DARWIN_UNLIMITED_SELECT" - - # -pthread is not needed and triggers a warning - use_flag_pthread=no - - # Use -Wno-nullability-completeness if supported - try_no_nullability_completeness=yes - - SO_SUFFIX=.dylib - - if test "${need_cc_in_extras}" = "yes" ; then - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CC="'"'"${CC}"'"' - fi - if test "${need_cpp_in_extras}" = "yes" ; then - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} CPP="'"'"${CPP}"'"' - fi - if test "${need_ld_in_extras}" = "yes" ; then - SUB_CONFIGURE_EXTRAS="${SUB_CONFIGURE_EXTRAS} LD="'"'"${LD}"'"' - fi - - if test "${enable_quartz}" = "yes" ; then - WXVARIANT="wx_mac" - INCLUDEDEP="-include" - OPTIONS="$OPTIONS -fno-common" - OSX="" - NOT_OSX=".other" - MZINSTALLTARGET=osx-install - DYN_CFLAGS="" - if test "${enable_libfw}" = "yes" ; then - FRAMEWORK_INSTALL_DIR=/Library/Frameworks - FRAMEWORK_REL_INSTALL=no - FRAMEWORK_PREFIX='' - elif test "${enable_userfw}" = "yes" ; then - FRAMEWORK_INSTALL_DIR=~/Library/Frameworks - FRAMEWORK_REL_INSTALL=no - FRAMEWORK_PREFIX='' - else - FRAMEWORK_INSTALL_DIR='${libpltdir}' - FRAMEWORK_REL_INSTALL=yes - if test "${libpltdir_rel}" = "" ; then - FRAMEWORK_PREFIX='$(FRAMEWORK_ABS_PREFIX)' - else - FRAMEWORK_PREFIX='$(FRAMEWORK_REL_PREFIX)' - fi - fi - if test "${enable_embedfw}" = "yes" ; then - strip_needs_dash_s=yes - fi - # ".a" is typically not useful, since we always build a ".dylib": - if test "${enable_libs}" = "" ; then - INSTALL_LIBS_ENABLE=no-install - fi - else - PREFLAGS="$PREFLAGS -DXONX " - LIBS="$LIBS -framework CoreFoundation" - strip_needs_dash_s=yes - fi - ;; - nto-qnx*) - use_flag_pthread=no - LIBS="$LIBS -lsocket -Wl,--export-dynamic" - ;; - *) - ;; -esac - -case "$host_cpu" in - alpha | sparc | powerpc) - if test "$CC" = "gcc" ; then - if test "$as_was_set" = "no" ; then - AS="gcc -c -x assembler-with-cpp" - fi - fi - ;; - *) - ;; -esac - -############## GC variant ################ - -if test "${enable_bcdefault}" != "yes" ; then - MMM_INSTALLED=bc - MMM_CAP_INSTALLED=BC - -$as_echo "#define COMPILED_PATH_AS_BC 1" >>confdefs.h - -fi - -if test "${enable_cgcdefault}" = "yes" ; then - CGC_INSTALLED= - CGC_CAP_INSTALLED= - MMM_INSTALLED=3m - MMM_CAP_INSTALLED=3m - MAIN_VARIANT=cgc -fi -MAIN_MAKE_TARGET="${MAIN_VARIANT}" - -if test "${enable_racket}" = "" ; then - CS_BOOTSTRAP_HELP="${MAIN_VARIANT}" -else - CS_BOOTSTRAP_HELP="no-${MAIN_VARIANT}" -fi - -if test "${enable_csdefault}" = "yes" ; then - MAIN_MAKE_TARGET=cs -fi - -############## SGC ################ - -if test "${enable_sgcdebug}" = "yes" ; then - OPTIONS="$OPTIONS -DSGC_STD_DEBUGGING=1" -fi - -OPTIONS="$OPTIONS -DUSE_SENORA_GC" - -if test "${enable_generations}" = "yes" ; then - -$as_echo "#define USE_GC_GENS 1" >>confdefs.h - -else - -$as_echo "#define USE_GC_GENS 0" >>confdefs.h - -fi - -############## Strip tool ################ - -if test "${enable_strip}" = "" ; then - if test "${enable_strip_by_default}" = "yes" ; then - enable_strip=yes - fi -fi - -try_archive_conftest() -{ - $AR $ARFLAGS conftest.a conftest.$OBJEXT > /dev/null 2>&1 -} - -if test "${enable_strip}" = "yes" ; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - 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_STRIP="${ac_tool_prefix}strip" - $as_echo "$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 -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if ${ac_cv_prog_ac_ct_STRIP+:} false; then : - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - 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_ac_ct_STRIP="strip" - $as_echo "$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 -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - - # Used to add -S flag, but not all `strip' variants support it: - STRIP_DEBUG="${STRIP}" - if test "${INSTALL_LIBS_ENABLE}" = "install" ; then - check_strip_dash_s=yes - fi - if test "${strip_needs_dash_s}" = "yes" ; then - check_strip_dash_s=yes - fi - if test "${check_strip_dash_s}" = "yes" ; then - # Can only support library stripping if something like "-S" is available: - msg="for strip -S" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 -$as_echo_n "checking $msg... " >&6; } - set_strip_lib=no - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int f() { return 0; } -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - try_archive_conftest -else - set_strip_lib=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test conftest.a ; then - if "${STRIP_DEBUG}" -S conftest.a > /dev/null 2>&1 ; then - STRIP_LIB_DEBUG="${STRIP_DEBUG} -S" - set_strip_lib=yes - fi - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $set_strip_lib" >&5 -$as_echo "$set_strip_lib" >&6; } - if test "${strip_needs_dash_s}" = "yes" ; then - STRIP_DEBUG="${STRIP_LIB_DEBUG}" - fi - fi -fi - - -############## C flags ################ - -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 - - - msg="for inline keyword" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 -$as_echo_n "checking $msg... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - static inline int foo() { return 0; } - int main() { - return foo(); - } -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - inline=yes -else - inline=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -if test "$inline" = "no" ; then - MZOPTIONS="$MZOPTIONS -DNO_INLINE_KEYWORD" -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $inline" >&5 -$as_echo "$inline" >&6; } - - msg="for noinline attribute" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 -$as_echo_n "checking $msg... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - static int foo() __attribute__ ((noinline)); - static int foo() { return 0; } - int main() { - return foo(); - } -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - noinline=yes -else - noinline=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -if test "$noinline" = "yes" ; then - -$as_echo "#define MZ_USE_NOINLINE 1" >>confdefs.h - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $noinline" >&5 -$as_echo "$noinline" >&6; } - - msg="for GNU preprocessor" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 -$as_echo_n "checking $msg... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - int main () { - #ifdef __GNUC__ - return 0; - #else - if; // should fail - #endif - } -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - using_gnu_cpp=yes -else - using_gnu_cpp=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -if test "$using_gnu_cpp" = "yes" ; then - XFORMFLAGS="$XFORMFLAGS --keep-lines" - case "$build_os" in - *cygwin*) - XFORMFLAGS="$XFORMFLAGS --D-via-include" - ;; - esac -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $using_gnu_cpp" >&5 -$as_echo "$using_gnu_cpp" >&6; } - -# Although rktio takes care of iconv, we need to know whether -# to link to it -iconv_lib_flag="" -if test "${skip_iconv_check}" = "no" ; then - if test "${enable_iconv}" = "yes" ; then - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if ${ac_cv_path_GREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - 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 - test -z "$as_dir" && as_dir=. - 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 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo '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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if ${ac_cv_path_EGREP+:} false; then : - $as_echo_n "(cached) " >&6 -else - 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 - test -z "$as_dir" && as_dir=. - 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 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo '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 -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if ${ac_cv_header_stdc+:} false; then : - $as_echo_n "(cached) " >&6 -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#include -#include - -int -main () -{ - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_header_stdc=yes -else - ac_cv_header_stdc=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then : - -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then : - : -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -#include -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - -else - ac_cv_header_stdc=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -$as_echo "#define STDC_HEADERS 1" >>confdefs.h - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do : - as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default -" -if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - -ac_fn_c_check_header_mongrel "$LINENO" "iconv.h" "ac_cv_header_iconv_h" "$ac_includes_default" -if test "x$ac_cv_header_iconv_h" = xyes; then : - enable_iconv=yes -else - enable_iconv=no -fi - - - if test "${enable_iconv}" = "yes" ; then - # Does it all work, now? - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include -int -main () -{ - iconv_open("UTF-8", "UTF-8"); - return 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - enable_iconv=yes -else - enable_iconv=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "${enable_iconv}" = "no" ; then - # Try adding -liconv ? - # We did not use AC_CHECK_LIB because iconv is sometimes macro-renamed - ORIG_LIBS="$LIBS" - LIBS="$LIBS -liconv" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include -int -main () -{ - iconv_open("UTF-8", "UTF-8"); - return 0; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - enable_iconv=yes -else - enable_iconv=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "${enable_iconv}" = "no" ; then - LIBS="$ORIG_LIBS" - else - iconv_lib_flag=" -liconv" - fi - fi - fi - fi - msg="iconv is usable" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 -$as_echo_n "checking $msg... " >&6; } - iconv_usage_result="$enable_iconv$iconv_lib_flag" - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $iconv_usage_result" >&5 -$as_echo "$iconv_usage_result" >&6; } -fi - - -if test "${check_for_mprotect}" = "yes" ; then - msg="for mmap and mprotect" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 -$as_echo_n "checking $msg... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #include - int main() { - void *p; - p = mmap(0, 2 << 16, PROT_READ | PROT_WRITE, MAP_PRIVATE, open("/dev/zero", O_RDWR), 0); - mprotect(p, 2 << 16, PROT_READ | PROT_WRITE); - return 0; - } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - use_mprotect=yes -else - use_mprotect=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_mprotect" >&5 -$as_echo "$use_mprotect" >&6; } - if test "${use_mprotect}" = "yes" ; then - -$as_echo "#define HAVE_MMAP_MPROTECT 1" >>confdefs.h - - fi -fi - -if test "${check_for_unwind}" != "no" ; then - msg="for unwind support" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 -$as_echo_n "checking $msg... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #define __USE_GNU - #include - int main() { - return ${check_for_unwind}; - } -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - can_unwind=yes -else - can_unwind=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$can_unwind" = "no" ; then - -$as_echo "#define MZ_NO_UNWIND_SUPPORT 1" >>confdefs.h - - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_unwind" >&5 -$as_echo "$can_unwind" >&6; } -fi - -if test "${check_page_size}" = "yes" ; then - msg="for large page size" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 -$as_echo_n "checking $msg... " >&6; } - if test "$cross_compiling" = yes; then : - use_large_page_size=no -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - #include - int main() { - return !(getpagesize() > (1 << 14)); - } -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - use_large_page_size=yes -else - use_large_page_size=no -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_large_page_size" >&5 -$as_echo "$use_large_page_size" >&6; } - if test "${use_large_page_size}" = "yes" ; then - -$as_echo "#define MZ_USE_LARGE_PAGE_SIZE 1" >>confdefs.h - - fi -fi - - msg="for __builtin_popcount" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 -$as_echo_n "checking $msg... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - int main(int argc, char **argv) { - unsigned int i = argc; - return __builtin_popcount(i); - } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - has_builtin_popcount=yes -else - has_builtin_popcount=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_builtin_popcount" >&5 -$as_echo "$has_builtin_popcount" >&6; } -if test "${has_builtin_popcount}" = "yes" ; then - -$as_echo "#define MZ_HAS_BUILTIN_POPCOUNT 1" >>confdefs.h - -fi - - msg="for __builtin_clz" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 -$as_echo_n "checking $msg... " >&6; } -cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - int main(int argc, char **argv) { - unsigned int i = argc; - return __builtin_clz(i); - } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - has_builtin_clz=yes -else - has_builtin_clz=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $has_builtin_clz" >&5 -$as_echo "$has_builtin_clz" >&6; } -if test "${has_builtin_clz}" = "yes" ; then - -$as_echo "#define MZ_HAS_BUILTIN_CLZ 1" >>confdefs.h - -fi - -if test "${enable_backtrace}" = "yes" ; then - GC2OPTIONS="$GC2OPTIONS -DMZ_GC_BACKTRACE" -fi - -LFS_CFLAGS=`getconf LFS_CFLAGS 2> /dev/null` -if test "${LFS_CFLAGS}" != "" && test "${LFS_CFLAGS}" != "undefined"; then - echo "Large-file support: ${LFS_CFLAGS}" - MZOPTIONS="${MZOPTIONS} ${LFS_CFLAGS}" -fi - -if test "${try_no_nullability_completeness}" = "yes" ; then - msg="for -Wno-nullability-completeness" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 -$as_echo_n "checking $msg... " >&6; } - OLD_CFLAGS="${CFLAGS}" - CFLAGS="${CFLAGS} -Wno-nullability-completeness" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int main() { return 0; } -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - nonullcomp=yes -else - nonullcomp=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test "$nonullcomp" = "yes" ; then - GC2OPTIONS="$GC2OPTIONS -Wno-nullability-completeness" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $nonullcomp" >&5 -$as_echo "$nonullcomp" >&6; } - CFLAGS="${OLD_CFLAGS}" -fi - -###### Get data sizes, stack direction, and endianness ####### - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 -$as_echo_n "checking size of char... " >&6; } -if ${ac_cv_sizeof_char+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_char" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (char) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_char=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5 -$as_echo "$ac_cv_sizeof_char" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_CHAR $ac_cv_sizeof_char -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 -$as_echo_n "checking size of short... " >&6; } -if ${ac_cv_sizeof_short+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_short" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (short) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_short=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 -$as_echo "$ac_cv_sizeof_short" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_SHORT $ac_cv_sizeof_short -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 -$as_echo_n "checking size of int... " >&6; } -if ${ac_cv_sizeof_int+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_int" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (int) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_int=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 -$as_echo "$ac_cv_sizeof_int" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_INT $ac_cv_sizeof_int -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 -$as_echo_n "checking size of long... " >&6; } -if ${ac_cv_sizeof_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 -$as_echo "$ac_cv_sizeof_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG $ac_cv_sizeof_long -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long long" >&5 -$as_echo_n "checking size of long long... " >&6; } -if ${ac_cv_sizeof_long_long+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long long))" "ac_cv_sizeof_long_long" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_long_long" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (long long) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_long_long=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long_long" >&5 -$as_echo "$ac_cv_sizeof_long_long" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void *" >&5 -$as_echo_n "checking size of void *... " >&6; } -if ${ac_cv_sizeof_void_p+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void *))" "ac_cv_sizeof_void_p" "$ac_includes_default"; then : - -else - if test "$ac_cv_type_void_p" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (void *) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_void_p=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_void_p" >&5 -$as_echo "$ac_cv_sizeof_void_p" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_VOID_P $ac_cv_sizeof_void_p -_ACEOF - - -# The cast to long int works around a bug in the HP C Compiler -# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects -# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. -# This bug is HP SR number 8606223364. -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of bool" >&5 -$as_echo_n "checking size of bool... " >&6; } -if ${ac_cv_sizeof_bool+:} false; then : - $as_echo_n "(cached) " >&6 -else - if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (bool))" "ac_cv_sizeof_bool" "#include -"; then : - -else - if test "$ac_cv_type_bool" = yes; then - { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -as_fn_error 77 "cannot compute sizeof (bool) -See \`config.log' for more details" "$LINENO" 5; } - else - ac_cv_sizeof_bool=0 - fi -fi - -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_bool" >&5 -$as_echo "$ac_cv_sizeof_bool" >&6; } - - - -cat >>confdefs.h <<_ACEOF -#define SIZEOF_BOOL $ac_cv_sizeof_bool -_ACEOF - - - -if test "${ac_cv_sizeof_void_p}" != "4" ; then - if test "${ac_cv_sizeof_void_p}" != "8" ; then - echo "Something has gone wrong getting the pointer size; see config.log" - exit 1 - fi -fi - - - - ac_fn_c_check_type "$LINENO" "intptr_t" "ac_cv_type_intptr_t" "$ac_includes_default" -if test "x$ac_cv_type_intptr_t" = xyes; then : - -$as_echo "#define HAVE_INTPTR_T 1" >>confdefs.h - -else - for ac_type in 'int' 'long int' 'long long int'; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -cat >>confdefs.h <<_ACEOF -#define intptr_t $ac_type -_ACEOF - - ac_type= -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test -z "$ac_type" && break - done -fi - - - - ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "$ac_includes_default" -if test "x$ac_cv_type_uintptr_t" = xyes; then : - -$as_echo "#define HAVE_UINTPTR_T 1" >>confdefs.h - -else - for ac_type in 'unsigned int' 'unsigned long int' \ - 'unsigned long long int'; do - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -static int test_array [1 - 2 * !(sizeof (void *) <= sizeof ($ac_type))]; -test_array [0] = 0; -return test_array [0]; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - -cat >>confdefs.h <<_ACEOF -#define uintptr_t $ac_type -_ACEOF - - ac_type= -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - test -z "$ac_type" && break - done -fi - - - - msg="for stack direction" -{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 -$as_echo_n "checking $msg... " >&6; } -if test "$cross_compiling" = yes; then : - stack_direction=unknown -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -int grows_down_p(int n, void *cmp) { - if (!cmp) - return grows_down_p(10, &cmp); - else if (!n) - return ((unsigned long)&cmp < (unsigned long)cmp); - else - return grows_down_p(n - 1, cmp); - } - int main() { - return grows_down_p(0, 0); - } -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - stack_direction=up -else - stack_direction=down -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $stack_direction" >&5 -$as_echo "$stack_direction" >&6; } - -if test "${stack_direction}" = "unknown" ; then - if test "${enable_stackup}" = "yes" ; then - stack_direction=up - else - echo configure: warning: cannot determine stack direction, assuming down - fi -fi - -if test "${stack_direction}" = "up" ; then - -$as_echo "#define STACK_DIRECTION 1" >>confdefs.h - -fi -if test "${stack_direction}" = "down" ; then - -$as_echo "#define STACK_DIRECTION -1" >>confdefs.h - -fi - - { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 -$as_echo_n "checking whether byte ordering is bigendian... " >&6; } -if ${ac_cv_c_bigendian+:} false; then : - $as_echo_n "(cached) " >&6 -else - ac_cv_c_bigendian=unknown - # See if we're dealing with a universal compiler. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#ifndef __APPLE_CC__ - not a universal capable compiler - #endif - typedef int dummy; - -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - - # Check for potential -arch flags. It is not universal unless - # there are at least two -arch flags with different values. - ac_arch= - ac_prev= - for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do - if test -n "$ac_prev"; then - case $ac_word in - i?86 | x86_64 | ppc | ppc64) - if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then - ac_arch=$ac_word - else - ac_cv_c_bigendian=universal - break - fi - ;; - esac - ac_prev= - elif test "x$ac_word" = "x-arch"; then - ac_prev=arch - fi - done -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - if test $ac_cv_c_bigendian = unknown; then - # See if sys/param.h defines the BYTE_ORDER macro. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ - && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ - && LITTLE_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - #include - -int -main () -{ -#if BYTE_ORDER != BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) - bogus endian macros - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - # It does; now see whether it defined to _BIG_ENDIAN or not. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include - -int -main () -{ -#ifndef _BIG_ENDIAN - not big endian - #endif - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - ac_cv_c_bigendian=yes -else - ac_cv_c_bigendian=no -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - fi - if test $ac_cv_c_bigendian = unknown; then - # Compile a test program. - if test "$cross_compiling" = yes; then : - # Try to guess by grepping values from an object file. - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -short int ascii_mm[] = - { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; - short int ascii_ii[] = - { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; - int use_ascii (int i) { - return ascii_mm[i] + ascii_ii[i]; - } - short int ebcdic_ii[] = - { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; - short int ebcdic_mm[] = - { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; - int use_ebcdic (int i) { - return ebcdic_mm[i] + ebcdic_ii[i]; - } - extern int foo; - -int -main () -{ -return use_ascii (foo) == use_ebcdic (foo); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_compile "$LINENO"; then : - if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then - ac_cv_c_bigendian=yes - fi - if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then - if test "$ac_cv_c_bigendian" = unknown; then - ac_cv_c_bigendian=no - else - # finding both strings is unlikely to happen, but who knows? - ac_cv_c_bigendian=unknown - fi - fi -fi -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -else - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ - - /* Are we little or big endian? From Harbison&Steele. */ - union - { - long int l; - char c[sizeof (long int)]; - } u; - u.l = 1; - return u.c[sizeof (long int) - 1] == 1; - - ; - return 0; -} -_ACEOF -if ac_fn_c_try_run "$LINENO"; then : - ac_cv_c_bigendian=no -else - ac_cv_c_bigendian=yes -fi -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ - conftest.$ac_objext conftest.beam conftest.$ac_ext -fi - - fi -fi -{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 -$as_echo "$ac_cv_c_bigendian" >&6; } - case $ac_cv_c_bigendian in #( - yes) - endianness=big;; #( - no) - endianness=little ;; #( - universal) - -$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h - - ;; #( - *) - endianness=unknown ;; - esac - -if test "${endianness}" = "unknown" ; then - if test "${enable_bigendian}" = "yes" ; then - endianness=big - else - echo configure: warning: cannot determine endianness, assuming little - fi -fi - -if test "${endianness}" = "big" ; then - -$as_echo "#define SCHEME_BIG_ENDIAN 1" >>confdefs.h - -fi - -################### JIT #################### - -if test "${enable_jit}" = "no" ; then - PREFLAGS="${PREFLAGS} -DMZ_DONT_USE_JIT" - if test "${enable_futures}" = "yes" ; then - echo configure: cannot enable futures and disable the JIT - exit 1 - fi - enable_futures=no -fi - -############### places ################### - -if test "${enable_parallel_by_default}" = "yes" ; then - if test "${enable_places}" = "" ; then - enable_places=yes - fi -fi - -if test "${enable_places}" = "yes" ; then - -$as_echo "#define MZ_USE_PLACES 1" >>confdefs.h - - enable_mzrt=yes -fi - -############### futures ################### - -if test "${enable_parallel_by_default}" = "yes" ; then - if test "${enable_futures}" = "" ; then - enable_futures=yes - fi -fi - -if test "${enable_futures}" = "yes" ; then - -$as_echo "#define MZ_USE_FUTURES 1" >>confdefs.h - - enable_mzrt=yes -fi - -############### ffipoll ################### - -if test "${enable_ffipoll}" = "yes" ; then - -$as_echo "#define MZ_USE_FFIPOLL 1" >>confdefs.h - -fi - -############## compare-and-swap ################ - -if test "${enable_mzrt}" = "yes" ; then - msg="for compare-and-swap" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 -$as_echo_n "checking $msg... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - int check1(long *addr, long old, long new_val) { - return __sync_bool_compare_and_swap(addr, old, new_val); - } - int check2(short *addr, short old, short new_val) { - return __sync_bool_compare_and_swap(addr, old, new_val); - } - int main() { - long l = 2; short s = 3; - return !check1(&l, 2, 4) || !check2(&s, 3, 6); - } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - cas_available=yes -else - cas_available=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cas_available" >&5 -$as_echo "$cas_available" >&6; } - if test "${cas_available}" = "yes" ; then - -$as_echo "#define MZ_CAS_AVAILABLE 1" >>confdefs.h - - fi -fi - - -############### OS threads ################### - -if test "${enable_mzrt}" = "yes" ; then - if test "${mzrt_needs_pthread}" = "yes" ; then - if test "${enable_pthread}" = "no" ; then - echo configure: cannot disable pthreads with places/futures enabled - exit 1 - fi - enable_pthread=yes - fi -fi - -############### pthread ################### - -if test "${enable_pthread}" = "" ; then - if test "${enable_pthread_by_default}" = "yes" ; then - enable_pthread=yes - fi -fi - -if test "${enable_pthread}" = "yes" ; then - if test "${use_flag_pthread}" = "yes" ; then - PREFLAGS="$PREFLAGS -pthread" - LDFLAGS="$LDFLAGS -pthread" - fi - if test "${use_flag_posix_pthread}" = "yes" ; then - PREFLAGS="$PREFLAGS -D_POSIX_PTHREAD_SEMANTICS -D_REENTRANT" - fi - -$as_echo "#define USE_PTHREAD_INSTEAD_OF_ITIMER 1" >>confdefs.h - - - msg="whether pthread_rwlock is available" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 -$as_echo_n "checking $msg... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - pthread_rwlock_t l; - int main() { - return pthread_rwlock_init(&l, NULL); - } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - rwlockavail=yes -else - rwlockavail=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $rwlockavail" >&5 -$as_echo "$rwlockavail" >&6; } - if test "$rwlockavail" = "yes" ; then - -$as_echo "#define HAVE_PTHREAD_RWLOCK 1" >>confdefs.h - - fi -fi - -############## extflonum ################ - -if test "${enable_extflonum}" = "default" ; then - msg="for powl for extflonums" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 -$as_echo_n "checking $msg... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - #include - #include - int main(int argc, char **argv) { - char *p; - long double x = 2.0, y = strtod(*(argv+1), &p); - if (powl(x, y) == 8.0) - return 0; - return 1; - } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - use_extflonums=yes -else - use_extflonums=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_extflonums" >&5 -$as_echo "$use_extflonums" >&6; } - if test "${use_extflonums}" = "no" ; then - -$as_echo "#define MZ_NO_EXTFLONUMS 1" >>confdefs.h - - fi -fi - -if test "${enable_extflonum}" = "yes" ; then - $as_echo "#define MZ_INSIST_EXTFLONUMS 1" >>confdefs.h - -fi - -############## libffi ################ - -# Depends on pthread on some platforms - -if test "${enable_pthread}" = "" ; then - enable_pthread=no -fi - -if test "${enable_libffi}" = "yes" ; then - complain_if_libffi_fails=yes -fi - -if test "${enable_libffi}" = "default" ; then - case "$host_os" in - darwin*) - enable_libffi=no - ;; - *) - enable_libffi=yes - ;; - esac -fi - -if test "${enable_libffi}" = "yes" ; then - if test "${enable_foreign}" = "yes" ; then - { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libffi" >&5 -$as_echo_n "checking for libffi... " >&6; } - - # Try to get flags form pkg-config: - libffi_config_prog="pkg-config libffi" - libffi_config_preflags=`$libffi_config_prog --cflags-only-I 2> /dev/null` - if test "$?" = 0 ; then - libffi_config_cflags=`$libffi_config_prog --cflags-only-other 2> /dev/null` - if test "$?" = 0 ; then - libffi_config_libs=`$libffi_config_prog --libs 2> /dev/null` - if test "$?" != 0 ; then - libffi_config_preflags="" - libffi_config_cflags="" - libffi_config_libs="-lffi" - fi - else - libffi_config_preflags="" - libffi_config_cflags="" - libffi_config_libs="-lffi" - fi - else - libffi_config_preflags="" - libffi_config_cflags="" - libffi_config_libs="-lffi" - fi - - OLD_CFLAGS="${CFLAGS}" - OLD_LIBS="${LIBS}" - CFLAGS="${CFLAGS} ${libffi_config_preflags} ${libffi_config_cflags}" - LIBS="${LIBS} ${libffi_config_libs}" - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ -#include -int -main () -{ -ffi_cif cif; - ffi_prep_cif(&cif, FFI_DEFAULT_ABI, 0, &ffi_type_void, NULL); - ; - return 0; -} -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - have_libffi=yes -else - have_libffi=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_libffi" >&5 -$as_echo "$have_libffi" >&6; } - if test "${have_libffi}" = "no" ; then - CFLAGS="${OLD_CFLAGS}" - LIBS="${OLD_LIBS}" - echo "Building own libffi" - if test "${complain_if_libffi_fails}" = "yes" ; then - echo configure: unable to link to libffi - exit 1 - fi - else - CFLAGS="${OLD_CFLAGS}" - PREFLAGS="${PREFLAGS} ${libffi_config_preflags}" - COMPFLAGS="${COMPFLAGS} ${libffi_config_cflags}" - echo "Using installed libffi" - OWN_LIBFFI="OFF" - fi - fi -fi - -############## Solaris grunge ################ - -if test "$check_gcc_dash_e" = "yes" ; then - - orig_ldflags="$LDFLAGS" - LDFLAGS="$LDFLAGS -Wl,-E" - - # Can use -Wl,-E for linking because we're using GNU linker? - msg="whether linker accepts -Wl,-E" - { $as_echo "$as_me:${as_lineno-$LINENO}: checking $msg" >&5 -$as_echo_n "checking $msg... " >&6; } - cat confdefs.h - <<_ACEOF >conftest.$ac_ext -/* end confdefs.h. */ - - int main() { - return 0; - } -_ACEOF -if ac_fn_c_try_link "$LINENO"; then : - linker_dash_e=yes -else - linker_dash_e=no -fi -rm -f core conftest.err conftest.$ac_objext \ - conftest$ac_exeext conftest.$ac_ext - if test "$linker_dash_e" = "no" ; then - LDFLAGS="${orig_ldflags}" - fi - { $as_echo "$as_me:${as_lineno-$LINENO}: result: $linker_dash_e" >&5 -$as_echo "$linker_dash_e" >&6; } - -fi - -############## drop optimization flags ################ - -if test "${enable_noopt}" = "yes" ; then - AWKPRG='BEGIN { FS = "(^| )-O(0|1|2|3|4|5|6|7|8|9)?( |$)" } /.*/ { for (i = 1; i < NF; i++) printf "%s ", $i; print $NF }' - CFLAGS=`echo "$CFLAGS" | awk "$AWKPRG"` - CPPFLAGS=`echo "$CPPFLAGS" | awk "$AWKPRG"` - PREFLAGS=`echo "$PREFLAGS" | awk "$AWKPRG"` -fi - -############## ubsan ################ - -if test "${enable_ubsan}" = "yes" ; then - UBSAN="-fsanitize=undefined -fno-sanitize=alignment -fno-sanitize=float-divide-by-zero" - CFLAGS="$CFLAGS $UBSAN" - CPPFLAGS="$CPPFLAGS $UBSAN" - PREFLAGS="$PREFLAGS $UBSAN" - LDFLAGS="$LDFLAGS $UBSAN" -fi - - -############## usersetup ################ - -if test "${enable_usersetup}" != "yes" ; then - INSTALL_SETUP_FLAGS="${INSTALL_SETUP_FLAGS} --no-user" - INSTALL_SETUP_RACKET_FLAGS="${INSTALL_SETUP_RACKET_FLAGS} --no-user-path" -fi - -############## docs ################ - -if test "${enable_docs}" = "no" ; then - INSTALL_SETUP_FLAGS="${INSTALL_SETUP_FLAGS} --no-docs" -fi - -############## natipkg ################ - -if test "${enable_natipkg}" = "yes" ; then - -$as_echo "#define SPLS_SUFFIX \"-natipkg\"" >>confdefs.h - -fi - -############## Racket for Racket ################ - if test "${enable_racket}" = "auto" ; then - enable_racket="`pwd`/local/bc/racket3m" MAKE_LOCAL_RACKET="local/bc/racket3m" fi -if test "${enable_racket}" = "" ; then - RUN_RACKET_CGC='$(RUN_THIS_RACKET_CGC)' - RUN_RACKET_MMM='$(RUN_THIS_RACKET_MMM)' - RUN_RACKET_MAIN_VARIANT='$(RUN_THIS_RACKET_MAIN_VARIANT)' - CGC_IF_NEEDED_FOR_MMM="cgc" - BOOT_MODE="--boot" +if test "${enable_cgcdefault}" = "yes" ; then + MAIN_VARIANT=cgc else - RUN_RACKET_CGC="${enable_racket}" - RUN_RACKET_MMM="${enable_racket}" - RUN_RACKET_MAIN_VARIANT="${enable_racket}" - CGC_IF_NEEDED_FOR_MMM="no-cgc-needed" - BOOT_MODE="--chain" + MAIN_VARIANT=3m fi +MAIN_MAKE_TARGET="${MAIN_VARIANT}" +RUN_RACKET="bc/racket${MAIN_VARIANT}" -############## libtool ################ -if test "${enable_shared}" = "yes" ; then - echo "Configuring libtool" - if test ! -d "lt" ; then - mkdir "lt" - fi - abssrcdir=`(cd ${srcdir}; pwd)` - # Try to convert libdir to an absolute path: - # (Is this necessary anymore?) - if test -d "${libdir}" ; then - abslibdir=`(cd ${libdir}; pwd)` - else - abslibdir="${libdir}" - fi - - - if test "${LIBTOOLPROG}" = "" ; then - (cd lt; sh ${abssrcdir}/lt/configure --enable-shared --disable-static) - LIBTOOLPROG=`pwd`/lt/libtool - fi - - if test "${need_gcc_static_libgcc}" = "yes" ; then - need_gcc_static_libgcc="" - if test "$CC" = "gcc" ; then - gcc_vers_three=`${CC} -v 2>&1 | grep "version 3."` - if test "$gcc_vers_three" = "" ; then - need_gcc_static_libgcc="" - else - need_gcc_static_libgcc=" -XCClinker -static-libgcc" - fi - fi - fi - - if test "$INCLUDEDEP" = "-include" ; then - plt_lib_version="\$(FWVERSION)" - else - VERSION_X=`grep 'define MZSCHEME_VERSION_X ' ${srcdir}/bc/src/schvers.h | cut -d ' ' -f 3` - VERSION_Y=`grep 'define MZSCHEME_VERSION_Y ' ${srcdir}/bc/src/schvers.h | cut -d ' ' -f 3` - VERSION_Z=`grep 'define MZSCHEME_VERSION_Z ' ${srcdir}/bc/src/schvers.h | cut -d ' ' -f 3` - VERSION_W=`grep 'define MZSCHEME_VERSION_W ' ${srcdir}/bc/src/schvers.h | cut -d ' ' -f 3` - - if test "${VERSION_W}" != "0" ; then - plt_lib_version="${VERSION_X}.${VERSION_Y}.${VERSION_Z}.${VERSION_W}" - else - if test "${VERSION_Z}" != "0" ; then - plt_lib_version="${VERSION_X}.${VERSION_Y}.${VERSION_Z}" - else - plt_lib_version="${VERSION_X}.${VERSION_Y}" - fi - fi - fi - - AR="${LIBTOOLPROG} --mode=link --tag=CC $CC${need_gcc_static_libgcc}${ar_libtool_no_undefined} -release ${plt_lib_version} -rpath ${abslibdir} \$(ARLIBFLAGS) -o" - STATIC_AR="${LIBTOOLPROG} --mode=link --tag=CC $CC -o" - ARFLAGS="" - RANLIB=":" - MZLINKER="${LIBTOOLPROG} --mode=link --tag=CC $CC${need_gcc_static_libgcc} -rpath ${abslibdir}" - PLAIN_CC="$CC" - CC="${LIBTOOLPROG} --mode=compile --tag=CC $CC" - AS="${LIBTOOLPROG} --mode=compile $AS" - LIBSFX=la - WXLIBS=WXLIBSDYN - ICP="${LIBTOOLPROG} --mode=install cp" - ICP_LIB="${LIBTOOLPROG} --mode=install install -s" - ICP_STATIC_LIB='$(NOOP)' - MRLIBINSTALL="install-lib" - LIBFINISH="${LIBTOOLPROG} --mode=finish" - LTO="lo" - LTA="la" - FOREIGN_CONVENIENCE="_convenience" - FOREIGN_OBJSLIB="\$(FOREIGN_LIB)" - MZOPTIONS="$MZOPTIONS -DMZ_USES_SHARED_LIB" - STRIP_LIB_DEBUG=":" -else - LIBSFX=a - WXLIBS=WXLIBSNORM - ICP=cp - ICP_LIB=cp - ICP_STATIC_LIB=cp - MRLIBINSTALL="install-no-lib" - LIBFINISH=echo - LTO="o" - LTA="a" - MZLINKER='$(CC)' - STATIC_AR="$AR" - PLAIN_CC='$(CC)' - FOREIGN_CONVENIENCE="" - FOREIGN_OBJSLIB="\$(FOREIGN_OBJS)" -fi - -# Last but not least, if Werror was requested, add it now -if test "${enable_werror}" = "yes"; then - CFLAGS="-Werror ${CFLAGS}" -fi - -############## final output ################ - -LIBS="$LIBS $EXTRALIBS" - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -mk_needed_dir() -{ - if test ! -d "$1" ; then - mkdir "$1" - fi -} - -makefiles="Makefile - bc/Makefile - bc/src/Makefile bc/dynsrc/Makefile - bc/sgc/Makefile bc/gc2/Makefile" - -# Make sure the --enable-shared default is propagated: -if test "${enable_shared}" = "yes" ; then - SUB_CONFIGURE_EXTRAS="$SUB_CONFIGURE_EXTRAS --enable-shared" -fi - -# Make sure the --enable-pthread result is propagated: -if test "${enable_pthread}" = "yes" ; then - SUB_CONFIGURE_EXTRAS="$SUB_CONFIGURE_EXTRAS --enable-pthread" -else - SUB_CONFIGURE_EXTRAS="$SUB_CONFIGURE_EXTRAS --disable-pthread" -fi - -# Make sure the --enable-iconv result is propagated: -if test "${enable_iconv}" = "yes" ; then - SUB_CONFIGURE_EXTRAS="$SUB_CONFIGURE_EXTRAS --enable-iconv" -else - SUB_CONFIGURE_EXTRAS="$SUB_CONFIGURE_EXTRAS --disable-iconv" -fi - -FOREIGNTARGET= -FOREIGN_IF_USED="FOREIGN_NOT_USED" -if test -d "${srcdir}/bc/foreign" && test "${enable_foreign}" = "yes" ; then - if test "${have_libffi}" != "yes" ; then - ac_aux_dir= -for ac_dir in bc/foreign/libffi "$srcdir"/bc/foreign/libffi ; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - as_fn_error $? "cannot find install-sh, install.sh, or shtool in bc/foreign/libffi \"$srcdir\"/bc/foreign/libffi " "$LINENO" 5 -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - - - -subdirs="$subdirs bc/foreign/libffi" - - fi - FOREIGNTARGET="foreign-stuff" - FOREIGN_IF_USED="FOREIGN_USED" -else - FOREIGNTARGET="foreign-stub" - MZOPTIONS="$MZOPTIONS -DDONT_USE_FOREIGN" -fi -makefiles="$makefiles bc/foreign/Makefile" - -subdirs="$subdirs rktio" - - -# Remove any --enable or --disable arguments from `ac_configure_args': -new_configure_args= -fixup_prev= -eval "set x $ac_configure_args" -shift -for fixup_arg -do - case $fixup_arg in - # Strip away all feature choices - -enable* | --enable* | -disable* | --disable*) - ;; - *) - case $fixup_arg in - *\'*) fixup_arg=`echo "$fixup_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - new_configure_args="$new_configure_args '$fixup_arg'" ;; - esac -done -# Add in `SUB_CONFIGURE_EXTRAS' -ac_configure_args="$new_configure_args$SUB_CONFIGURE_EXTRAS" - -if test "${enable_gracket}" = "yes" ; then - makefiles="$makefiles - bc/gracket/Makefile - bc/gracket/gc2/Makefile" -fi +makefiles="Makefile" ac_config_files="$ac_config_files $makefiles" @@ -7372,7 +2431,43 @@ test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' -DEFS=-DHAVE_CONFIG_H +# Transform confdefs.h into DEFS. +# Protect against shell expansion while executing Makefile rules. +# Protect against Makefile macro expansion. +# +# If the first sed substitution is executed (which looks for macros that +# take arguments), then branch to the quote section. Otherwise, +# look for a macro that doesn't take arguments. +ac_script=' +:mline +/\\$/{ + N + s,\\\n,, + b mline +} +t clear +:clear +s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g +t quote +s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g +t quote +b any +:quote +s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g +s/\[/\\&/g +s/\]/\\&/g +s/\$/$$/g +H +:any +${ + g + s/^\n// + s/\n/ /g + p +} +' +DEFS=`sed -n "$ac_script" confdefs.h` + ac_libobjs= ac_ltlibobjs= @@ -7392,7 +2487,6 @@ LTLIBOBJS=$ac_ltlibobjs - : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files @@ -7807,15 +2901,11 @@ case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac -case $ac_config_headers in *" -"*) set x $ac_config_headers; shift; ac_config_headers=$*;; -esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" -config_headers="$ac_config_headers" _ACEOF @@ -7836,15 +2926,10 @@ Usage: $0 [OPTION]... [TAG]... --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE - --header=FILE[:TEMPLATE] - instantiate the configuration header FILE Configuration files: $config_files -Configuration headers: -$config_headers - Report bugs to the package provider." _ACEOF @@ -7905,18 +2990,7 @@ do esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; - --header | --heade | --head | --hea ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append CONFIG_HEADERS " '$ac_optarg'" - ac_need_defaults=false;; - --he | --h) - # Conflict between --help and --header - as_fn_error $? "ambiguous option: \`$1' -Try \`$0 --help' for more information.";; - --help | --hel | -h ) + --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) @@ -7972,7 +3046,6 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 for ac_config_target in $ac_config_targets do case $ac_config_target in - "bc/mzconfig.h") CONFIG_HEADERS="$CONFIG_HEADERS bc/mzconfig.h" ;; "$makefiles") CONFIG_FILES="$CONFIG_FILES $makefiles" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; @@ -7986,7 +3059,6 @@ done # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers fi # Have a temporary directory for convenience. Make it in the build tree @@ -8174,116 +3246,8 @@ fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" -# Set up the scripts for CONFIG_HEADERS section. -# No need to generate them if there are no CONFIG_HEADERS. -# This happens for instance with `./config.status Makefile'. -if test -n "$CONFIG_HEADERS"; then -cat >"$ac_tmp/defines.awk" <<\_ACAWK || -BEGIN { -_ACEOF -# Transform confdefs.h into an awk script `defines.awk', embedded as -# here-document in config.status, that substitutes the proper values into -# config.h.in to produce config.h. - -# Create a delimiter string that does not exist in confdefs.h, to ease -# handling of long lines. -ac_delim='%!_!# ' -for ac_last_try in false false :; do - ac_tt=`sed -n "/$ac_delim/p" confdefs.h` - if test -z "$ac_tt"; then - break - elif $ac_last_try; then - as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done - -# For the awk script, D is an array of macro values keyed by name, -# likewise P contains macro parameters if any. Preserve backslash -# newline sequences. - -ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* -sed -n ' -s/.\{148\}/&'"$ac_delim"'/g -t rset -:rset -s/^[ ]*#[ ]*define[ ][ ]*/ / -t def -d -:def -s/\\$// -t bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3"/p -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p -d -:bsnl -s/["\\]/\\&/g -s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ -D["\1"]=" \3\\\\\\n"\\/p -t cont -s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p -t cont -d -:cont -n -s/.\{148\}/&'"$ac_delim"'/g -t clear -:clear -s/\\$// -t bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/"/p -d -:bsnlc -s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p -b cont -' >$CONFIG_STATUS || ac_write_fail=1 - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - for (key in D) D_is_set[key] = 1 - FS = "" -} -/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { - line = \$ 0 - split(line, arg, " ") - if (arg[1] == "#") { - defundef = arg[2] - mac1 = arg[3] - } else { - defundef = substr(arg[1], 2) - mac1 = arg[2] - } - split(mac1, mac2, "(") #) - macro = mac2[1] - prefix = substr(line, 1, index(line, defundef) - 1) - if (D_is_set[macro]) { - # Preserve the white space surrounding the "#". - print prefix "define", macro P[macro] D[macro] - next - } else { - # Replace #undef with comments. This is necessary, for example, - # in the case of _POSIX_SOURCE, which is predefined and required - # on some systems where configure will not decide to define it. - if (defundef == "undef") { - print "/*", prefix defundef, macro, "*/" - next - } - } -} -{ print } -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 -fi # test -n "$CONFIG_HEADERS" - - -eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " +eval set X " :F $CONFIG_FILES " shift for ac_tag do @@ -8491,30 +3455,7 @@ which seems to be undefined. Please make sure it is defined" >&2;} esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; - :H) - # - # CONFIG_HEADER - # - if test x"$ac_file" != x-; then - { - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" - } >"$ac_tmp/config.h" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then - { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 -$as_echo "$as_me: $ac_file is unchanged" >&6;} - else - rm -f "$ac_file" - mv "$ac_tmp/config.h" "$ac_file" \ - || as_fn_error $? "could not create $ac_file" "$LINENO" 5 - fi - else - $as_echo "/* $configure_input */" \ - && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ - || as_fn_error $? "could not create -" "$LINENO" 5 - fi - ;; + esac @@ -8550,151 +3491,6 @@ if test "$no_create" != yes; then # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi - -# -# CONFIG_SUBDIRS section. -# -if test "$no_recursion" != yes; then - - # Remove --cache-file, --srcdir, and --disable-option-checking arguments - # so they do not pile up. - ac_sub_configure_args= - ac_prev= - eval "set x $ac_configure_args" - shift - for ac_arg - do - if test -n "$ac_prev"; then - ac_prev= - continue - fi - case $ac_arg in - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \ - | --c=*) - ;; - --config-cache | -C) - ;; - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - ;; - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - ;; - --disable-option-checking) - ;; - *) - case $ac_arg in - *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - as_fn_append ac_sub_configure_args " '$ac_arg'" ;; - esac - done - - # Always prepend --prefix to ensure using the same prefix - # in subdir configurations. - ac_arg="--prefix=$prefix" - case $ac_arg in - *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args" - - # Pass --silent - if test "$silent" = yes; then - ac_sub_configure_args="--silent $ac_sub_configure_args" - fi - - # Always prepend --disable-option-checking to silence warnings, since - # different subdirs can have different --enable and --with options. - ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args" - - ac_popdir=`pwd` - for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue - - # Do not complain, so a configure script can configure whichever - # parts of a large source tree are present. - test -d "$srcdir/$ac_dir" || continue - - ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)" - $as_echo "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5 - $as_echo "$ac_msg" >&6 - as_dir="$ac_dir"; as_fn_mkdir_p - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - cd "$ac_dir" - - # Check for guested configure; otherwise get Cygnus style configure. - if test -f "$ac_srcdir/configure.gnu"; then - ac_sub_configure=$ac_srcdir/configure.gnu - elif test -f "$ac_srcdir/configure"; then - ac_sub_configure=$ac_srcdir/configure - elif test -f "$ac_srcdir/configure.in"; then - # This should be Cygnus configure. - ac_sub_configure=$ac_aux_dir/configure - else - { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5 -$as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2;} - ac_sub_configure= - fi - - # The recursion is here. - if test -n "$ac_sub_configure"; then - # Make the cache file name correct relative to the subdirectory. - case $cache_file in - [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;; - *) # Relative name. - ac_sub_cache_file=$ac_top_build_prefix$cache_file ;; - esac - - { $as_echo "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5 -$as_echo "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;} - # The eval makes quoting arguments work. - eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \ - --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" || - as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5 - fi - - cd "$ac_popdir" - done -fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} diff --git a/racket/src/cfg-cs b/racket/src/cfg-cs index 58922c933d..90335565ba 100755 --- a/racket/src/cfg-cs +++ b/racket/src/cfg-cs @@ -585,10 +585,10 @@ ac_unique_file="setup-go.rkt" enable_option_checking=no ac_subst_vars='LTLIBOBJS LIBOBJS -RUN_RACKET_CGC -ICP -MAKE_LOCAL_RACKET +RUN_RACKET +CS_USE_BOOTSTRAP_HELP CS_BOOTSTRAP_HELP +MAKE_LOCAL_RACKET MAIN_MAKE_TARGET MAIN_VARIANT CGC_CAP_INSTALLED @@ -682,6 +682,7 @@ enable_libfw enable_userfw enable_embedfw enable_mac64 +enable_boothelp ' ac_precious_vars='build_alias host_alias @@ -1306,6 +1307,7 @@ Optional Features: --enable-userfw install Mac OS frameworks to ~/Library/Frameworks --enable-embedfw embed Mac OS framework content in executables --enable-mac64 allow 64-bit Mac OS build (enabled by default) + --enable-boothelp use BC to boot CS Report bugs to the package provider. _ACEOF @@ -1973,6 +1975,12 @@ else fi +# Check whether --enable-boothelp was given. +if test "${enable_boothelp+set}" = set; then : + enableval=$enable_boothelp; +fi + + enable_quartz=no @@ -2135,8 +2143,6 @@ fi GUI_COLLECTS_PATH="${COLLECTS_PATH}" GUI_CONFIG_PATH="${CONFIG_PATH}" -CS_BOOTSTRAP_HELP="no-3m" - ######################################## @@ -2169,7 +2175,6 @@ CS_BOOTSTRAP_HELP="no-3m" - ######################################## @@ -2212,13 +2217,24 @@ show_path_results() +if test "${enable_boothelp}" = "yes" ; then + CS_BOOTSTRAP_HELP="3m" + CS_USE_BOOTSTRAP_HELP="BOOTFILE_RACKET=../../bc/racket3m" +else + CS_BOOTSTRAP_HELP="no-3m" + CS_USE_BOOTSTRAP_HELP="" +fi + + + + + +MAKE_LOCAL_RACKET=no-local-racket + MAIN_MAKE_TARGET=racketcs MAIN_VARIANT=3m -MAKE_GRACKET=no -LIBFINISH=echo -ICP=cp -RUN_RACKET_CGC="cs/c/racketcs" +RUN_RACKET="cs/c/racketcs" diff --git a/racket/src/configure b/racket/src/configure index 638c0e5810..5876819d8f 100755 --- a/racket/src/configure +++ b/racket/src/configure @@ -4,60 +4,110 @@ set -e dir=`dirname "$0"` -use_cs=no -use_bc=yes +pb_dir="$dir/ChezScheme/boot/pb" + +use_cs=maybe +use_bc=maybe +supplied_racket=no +enable_boothelp= + +# We don't have to detect conflicts like `--enable-csdefault --enable-bcdefault`, +# since the `configure` scripts will do that, but we have to figure out which +# configure scripts to run for arg in $*; do - case "$arg" in - --enable-cs | --enable-csdefault) - use_cs=yes - ;; - --enable-bc | --enable-bcdefault) - use_bc=yes - ;; - --enable-csonly) - use_cs=yes - use_bc=no - ;; - --enable-bconly) - use_cs=no - use_bc=yes - ;; - --help | -h) - echo $0: - echo see --help-bc or --help-cs, since the Racket CS build and the - echo Racket BC build support different options. If you use options - echo that build both CS and BC, then you can mix options that apply - echo to both or either kind of build. - exit 0 - ;; - --help-bc) - exec "$dir/cfg-bc" --help - ;; - --help-cs) - exec "$dir/cs/c/configure" --help - ;; - esac + case "$arg" in + --enable-cs | --enable-csdefault) + use_cs=yes + ;; + --enable-bc | --enable-bcdefault) + use_bc=yes + ;; + --enable-csonly) + use_cs=yes + use_bc=no + ;; + --enable-bconly) + use_cs=no + use_bc=yes + ;; + --enable-racket=*) + supplied_racket=yes + ;; + --help | -h) + echo $0: + echo see --help-bc or --help-cs, since the Racket CS build and the + echo Racket BC build support different options. If you use options + echo that build both CS and BC, then you can mix options that apply + echo to both or either kind of build. + exit 0 + ;; + --help-bc) + exec "$dir/bc/configure" --help + ;; + --help-cs) + exec "$dir/cs/c/configure" --help + ;; + esac done +# Select default build if none specified: +if test "$use_bc" = maybe ; then + if test "$use_cs" = maybe ; then + use_cs=no + use_bc=yes + elif test "$use_cs" = no ; then + use_bc=yes + elif test -d "$pb_dir" -o $supplied_racket = yes ; then + use_bc=no + else + echo No "$pb_dir", so enabling BC build + use_bc=yes + enable_boothelp=--enable-boothelp + fi +elif test "$use_cs" = "maybe" ; then + use_cs=no +fi + if test "$use_cs" = "yes" ; then - # The "cs/c/configure" script doesn't report the installation - # configuration, so we run it first and let "cfg-cs" or - # "cfg-bc" report that information. + # The "cs/c/configure" script doesn't report the installation + # configuration, so we run it first and let "cfg-cs" or + # "cfg-bc" report that information. - mkdir -p cs/c - case "$dir" in - /*) - (cd cs/c && "$dir/cs/c/configure" ${1+"$@"}) - ;; - *) - (cd cs/c && "../../$dir/cs/c/configure" ${1+"$@"}) - ;; - esac + if test $use_bc = no -a $supplied_racket = no -a ! -d "$pb_dir" ; then + echo $0: must have $pb_dir or --enable-racket=... for --enable-csonly + exit 1 + fi + + echo "=== Racket CS enabled" + + mkdir -p cs/c + case "$dir" in + /*) + (cd cs/c && "$dir/cs/c/configure" ${1+"$@"}) + ;; + *) + (cd cs/c && "../../$dir/cs/c/configure" ${1+"$@"}) + ;; + esac fi -if test "$use_racket" = "no" ; then - exec "$dir/cfg-cs" ${1+"$@"} +if test "$use_bc" = "yes" ; then + echo "=== Racket BC enabled" + + mkdir -p bc + case "$dir" in + /*) + (cd bc && "$dir/bc/configure" ${1+"$@"}) + ;; + *) + (cd bc && "../$dir/bc/configure" ${1+"$@"}) + ;; + esac +fi + +if test "$use_bc" = "no" ; then + exec "$dir/cfg-cs" $enable_boothelp ${1+"$@"} else - exec "$dir/cfg-bc" ${1+"$@"} + exec "$dir/cfg-bc" $enable_boothelp ${1+"$@"} fi diff --git a/racket/src/cs/c/configure b/racket/src/cs/c/configure index ce38ec72f5..cbbfa5f2de 100755 --- a/racket/src/cs/c/configure +++ b/racket/src/cs/c/configure @@ -688,7 +688,6 @@ LDFLAGS CFLAGS CC MAKE_LOCAL_RACKET -CS_BOOTSTRAP_HELP MAIN_MAKE_TARGET MAIN_VARIANT CGC_CAP_INSTALLED @@ -3070,8 +3069,6 @@ fi GUI_COLLECTS_PATH="${COLLECTS_PATH}" GUI_CONFIG_PATH="${CONFIG_PATH}" -CS_BOOTSTRAP_HELP="no-3m" - ######################################## @@ -3104,7 +3101,6 @@ CS_BOOTSTRAP_HELP="no-3m" - ######################################## @@ -4936,7 +4932,7 @@ fi ############## Racket and Chez Scheme ################ -SCHEME_DIR=../../ChezScheme +SCHEME_DIR=${srcdir}/../../ChezScheme MAKE_BUILD_SCHEME=checkout if test "${enable_scheme}" != "" ; then @@ -5524,6 +5520,7 @@ do esac done + SCHEME_CONFIG_ARGS="--machine=${MACH} --disable-x11 ${disable_curses_arg} ${extra_scheme_config_args}" SCHEME_CROSS_CONFIG_ARGS="--machine=${TARGET_MACH} --disable-x11 ${disable_curses_arg} ${extra_scheme_config_args}" diff --git a/racket/src/cs/c/configure-parent.ac b/racket/src/cs/c/configure-parent.ac index c156de55ab..1ebb357193 100644 --- a/racket/src/cs/c/configure-parent.ac +++ b/racket/src/cs/c/configure-parent.ac @@ -1,9 +1,7 @@ - -################################################################# -# This configure script generates `cfg-cs`, which is used only # -# when building RacketCS without first building Racket. It # -# creates a "Makefile" that manages installation steps. # -################################################################# +############################################################ +# This configure script generates `cfg-cs`, which sets up # +# "Makefile" to drive a CS build by default. # +############################################################ AC_INIT([setup-go.rkt]) @@ -14,6 +12,7 @@ AC_DISABLE_OPTION_CHECKING m4_include(../ac/path_arg.m4) m4_include(../ac/sdk_arg.m4) +m4_include(../ac/boothelp_arg.m4) m4_include(../ac/sdk.m4) @@ -21,16 +20,17 @@ m4_include(../ac/path_pkgscope.m4) m4_include(../ac/path.m4) +m4_include(../ac/boothelp.m4) + +MAKE_LOCAL_RACKET=no-local-racket + MAIN_MAKE_TARGET=racketcs MAIN_VARIANT=3m -MAKE_GRACKET=no -LIBFINISH=echo -ICP=cp -RUN_RACKET_CGC="cs/c/racketcs" +RUN_RACKET="cs/c/racketcs" -AC_SUBST(ICP) -AC_SUBST(RUN_RACKET_CGC) +AC_SUBST(RUN_RACKET) +AC_SUBST(MAKE_LOCAL_RACKET) makefiles="Makefile" diff --git a/racket/src/cs/c/configure.ac b/racket/src/cs/c/configure.ac index 341b90505d..3536054cf3 100644 --- a/racket/src/cs/c/configure.ac +++ b/racket/src/cs/c/configure.ac @@ -422,7 +422,7 @@ fi ############## Racket and Chez Scheme ################ -SCHEME_DIR=../../ChezScheme +SCHEME_DIR=${srcdir}/../../ChezScheme MAKE_BUILD_SCHEME=checkout if test "${enable_scheme}" != "" ; then @@ -671,24 +671,7 @@ fi ############## final output ################ -# Pass certain configure args on to rktio -keep_configure_args= -fixup_prev= -eval "set x $ac_configure_args" -shift -for fixup_arg -do - case $fixup_arg in - # Strip away all feature choices - -enable* | --enable* | -disable* | --disable*) - ;; - *) - case $fixup_arg in - *\'*) fixup_arg=`echo "$fixup_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - keep_configure_args="$keep_configure_args '$fixup_arg'" ;; - esac -done +m4_include(../ac/rktio_keep.m4) SCHEME_CONFIG_ARGS="--machine=${MACH} --disable-x11 ${disable_curses_arg} ${extra_scheme_config_args}" SCHEME_CROSS_CONFIG_ARGS="--machine=${TARGET_MACH} --disable-x11 ${disable_curses_arg} ${extra_scheme_config_args}" diff --git a/racket/src/include/escheme.h b/racket/src/include/escheme.h new file mode 100644 index 0000000000..98f60f583f --- /dev/null +++ b/racket/src/include/escheme.h @@ -0,0 +1,33 @@ +/* This file should be included by Racket dynamically-loaded + extenstion files */ + +#ifndef E_SCHEME_H +#define E_SCHEME_H + +#define SCHEME_DIRECT_EMBEDDED 0 + +#include "scheme.h" + +#ifdef CODEFRAGMENT_DYNAMIC_LOAD +#pragma export on +#endif + +#ifdef __cplusplus +extern "C" +{ +#endif + +extern Scheme_Object *scheme_initialize(Scheme_Env *global_env); +extern Scheme_Object *scheme_reload(Scheme_Env *global_env); +extern Scheme_Object *scheme_module_name(void); + +#ifdef __cplusplus +} +#endif + +#ifdef CODEFRAGMENT_DYNAMIC_LOAD +#pragma export off +#endif + +#endif /* ! E_SCHEME_H */ + diff --git a/racket/src/include/ext.exp b/racket/src/include/ext.exp new file mode 100644 index 0000000000..dd51367204 --- /dev/null +++ b/racket/src/include/ext.exp @@ -0,0 +1,5 @@ +#! .. +scheme_initialize_internal +scheme_initialize +scheme_reload +scheme_module_name diff --git a/racket/src/include/mzconfig.h b/racket/src/include/mzconfig.h new file mode 100644 index 0000000000..b345c61c34 --- /dev/null +++ b/racket/src/include/mzconfig.h @@ -0,0 +1,105 @@ +/* mzconfig.h. Generated from mzconfig.h.in by configure. */ + +/* This file contains information that was gathered by the configure script. */ + +#ifndef __MZSCHEME_CONFIGURATION_INFO__ +#define __MZSCHEME_CONFIGURATION_INFO__ + +/* The size of a `int', as computed by sizeof. */ +#define SIZEOF_INT 4 + +/* The size of a `short', as computed by sizeof. */ +#define SIZEOF_SHORT 2 + +/* The size of a `long', as computed by sizeof. */ +#define SIZEOF_LONG 8 + +/* The size of a `long long', as computed by sizeof. */ +#define SIZEOF_LONG_LONG 8 + +/* The size of a `void *', as computed by sizeof. */ +#define SIZEOF_VOID_P 8 + +/* The size of a `bool' with , as computed by sizeof. */ +#define SIZEOF_BOOL 1 + +/* Whether `intptr_t' is available. */ +#define HAVE_INTPTR_T 1 + +/* Whether `uintptr_t' is available. */ +#define HAVE_UINTPTR_T 1 + +#ifdef HAVE_INTPTR_T +# include +#endif +#ifndef HAVE_INTPTR_T +typedef long intptr_t; +#endif +#ifndef HAVE_UINTPTR_T +typedef unsigned long uintptr_t; +#endif + +/* Endianness. */ +/* #undef SCHEME_BIG_ENDIAN */ + +/* Direction of stack growth: 1 = up, -1 = down, 0 = unknown. */ +#define STACK_DIRECTION -1 + +/* Whether __attribute__ ((noinline)) works. */ +#define MZ_USE_NOINLINE 1 + +/* Whether pthread_rwlock is available. */ +#define HAVE_PTHREAD_RWLOCK 1 + +/* When mmap() and mprotect() are available: */ +#define HAVE_MMAP_MPROTECT 1 + +/* To enable 2^16 page size instead of 2^14: */ +/* #undef MZ_USE_LARGE_PAGE_SIZE */ + +/* When __builtin_popcount() is available: */ +#define MZ_HAS_BUILTIN_POPCOUNT 1 + +/* When __builtin_clz() is available: */ +#define MZ_HAS_BUILTIN_CLZ 1 + +/* Enable futures: */ +#define MZ_USE_FUTURES 1 + +/* Enable places --- 3m only: */ +#ifdef MZ_PRECISE_GC +#define MZ_USE_PLACES 1 +#endif + +/* Enable FFI polling: */ +/* #undef MZ_USE_FFIPOLL */ + +/* Whether __sync_bool_compare_and_swap() works: */ +#define MZ_CAS_AVAILABLE 1 + +/* Configure use of pthreads for the user-thread timer. */ +#define USE_PTHREAD_INSTEAD_OF_ITIMER 1 + +/* Enable single-precision floats [as default]: */ +#define USE_SINGLE_FLOATS 1 +/* #undef USE_SINGLE_FLOATS_AS_DEFAULT */ + +/* To disable extflonums when they would otherwise work: */ +/* #undef MZ_NO_EXTFLONUMS */ + +/* Extflonums are specifically requested (so complain if not supported): */ +/* #undef MZ_INSIST_EXTFLONUMS */ + +/* Library subpath */ +/* #undef SPLS_SUFFIX */ + +/* Use Generations with the GC */ +#define USE_GC_GENS 1 + +/* For platforms like Linux, where context info may not be available: */ +/* #undef MZ_NO_UNWIND_SUPPORT */ + +/* Initialize the compiled directory path "compiled/bc": */ +/* #undef COMPILED_PATH_AS_BC */ + +#endif diff --git a/racket/src/include/mzscheme.exp b/racket/src/include/mzscheme.exp new file mode 100644 index 0000000000..0b4d4df049 --- /dev/null +++ b/racket/src/include/mzscheme.exp @@ -0,0 +1,592 @@ +#!.. +scheme_init_jmpup_buf +scheme_setjmpup_relative +scheme_longjmpup +scheme_reset_jmpup_buf +scheme_clear_escape +scheme_new_jmpupbuf_holder +scheme_current_config +scheme_extend_config +scheme_install_config +scheme_get_param +scheme_set_param +scheme_get_thread_param +scheme_set_thread_param +scheme_get_env +scheme_inherit_cells +scheme_current_break_cell +scheme_current_thread +scheme_fuel_counter +scheme_current_thread_ptr +scheme_fuel_counter_ptr +scheme_get_current_thread +scheme_start_atomic +scheme_end_atomic +scheme_end_atomic_no_swap +scheme_start_in_scheduler +scheme_end_in_scheduler +scheme_out_of_fuel +scheme_thread +scheme_thread_w_details +scheme_kill_thread +scheme_break_thread +scheme_break_main_thread +scheme_set_break_main_target +scheme_thread_block +scheme_thread_block_enable_break +scheme_swap_thread +scheme_making_progress +scheme_weak_suspend_thread +scheme_weak_resume_thread +scheme_block_until +scheme_block_until_enable_break +scheme_block_until_unless +scheme_wait_input_allowed +scheme_unless_ready +scheme_in_main_thread +scheme_cancel_sleep +scheme_start_sleeper_thread +scheme_end_sleeper_thread +scheme_notify_sleep_progress +scheme_make_thread_cell +scheme_thread_cell_get +scheme_thread_cell_set +scheme_tls_allocate +scheme_tls_set +scheme_tls_get +scheme_make_custodian +scheme_add_managed +scheme_custodian_check_available +scheme_custodian_is_available +scheme_remove_managed +scheme_close_managed +scheme_schedule_custodian_close +scheme_add_custodian_extractor +scheme_add_atexit_closer +scheme_add_atexit +scheme_add_evt +scheme_add_evt_through_sema +scheme_is_evt +scheme_sync +scheme_sync_enable_break +scheme_sync_timeout +scheme_make_evt_set +scheme_add_swap_callback +scheme_add_swap_out_callback +scheme_call_enable_break +scheme_close_should_force_port_closed +scheme_push_kill_action +scheme_pop_kill_action +scheme_set_can_break +scheme_push_break_enable +scheme_pop_break_enable +scheme_with_stack_freeze +scheme_frozen_run_some +scheme_is_in_frozen_stack +scheme_signal_error +scheme_raise_exn +scheme_warning +scheme_raise +scheme_log_level_p +scheme_log +scheme_log_message +scheme_log_abort +scheme_out_of_memory_abort +scheme_wrong_count +scheme_wrong_count_m +scheme_case_lambda_wrong_count +scheme_wrong_type +scheme_wrong_field_type +scheme_arg_mismatch +scheme_wrong_return_arity +scheme_unbound_global +scheme_dynamic_wind +scheme_make_type +scheme_get_type_name +scheme_eof +scheme_make_eof +scheme_null +scheme_make_null +scheme_true +scheme_make_true +scheme_false +scheme_make_false +scheme_void +scheme_make_void +scheme_undefined +scheme_tail_call_waiting +scheme_multiple_values +scheme_uchar_table +scheme_uchar_cases_table +scheme_uchar_cats_table +scheme_uchar_ups +scheme_uchar_downs +scheme_uchar_titles +scheme_uchar_folds +scheme_uchar_combining_classes +scheme_eval +scheme_eval_multi +scheme_eval_with_prompt +scheme_eval_multi_with_prompt +scheme_eval_compiled +scheme_eval_compiled_multi +_scheme_eval_compiled +_scheme_eval_compiled_multi +scheme_apply +scheme_apply_multi +scheme_apply_no_eb +scheme_apply_multi_no_eb +scheme_apply_to_list +scheme_apply_with_prompt +scheme_apply_multi_with_prompt +_scheme_apply_with_prompt +_scheme_apply_multi_with_prompt +scheme_eval_string +scheme_eval_string_multi +scheme_eval_string_all +scheme_eval_string_with_prompt +scheme_eval_string_multi_with_prompt +scheme_eval_string_all_with_prompt +scheme_eval_module_string +_scheme_apply_known_prim_closure +_scheme_apply_known_prim_closure_multi +_scheme_apply_prim_closure +_scheme_apply_prim_closure_multi +scheme_current_argument_stack +scheme_call_with_prompt +scheme_call_with_prompt_multi +_scheme_call_with_prompt +_scheme_call_with_prompt_multi +scheme_values +scheme_check_one_value +scheme_tail_apply +scheme_tail_apply_no_copy +scheme_tail_apply_to_list +scheme_tail_eval_expr +scheme_set_tail_buffer_size +scheme_force_value +scheme_force_one_value +scheme_set_cont_mark +scheme_push_continuation_frame +scheme_pop_continuation_frame +scheme_temp_dec_mark_depth +scheme_temp_inc_mark_depth +scheme_current_continuation_marks +scheme_extract_one_cc_mark +scheme_extract_one_cc_mark_to_tag +scheme_do_eval +scheme_eval_compiled_stx_string +scheme_load_compiled_stx_string +scheme_compiled_stx_symbol +scheme_eval_compiled_sized_string +scheme_eval_compiled_sized_string_with_magic +scheme_detach_multple_array +GC_malloc +GC_malloc_atomic +GC_malloc_stubborn +GC_malloc_uncollectable +scheme_malloc_code +scheme_free_code +scheme_malloc_gcable_code +scheme_malloc_eternal +scheme_end_stubborn_change +scheme_calloc +scheme_strdup +scheme_strdup_eternal +scheme_malloc_fail_ok +scheme_weak_reference +scheme_weak_reference_indirect +scheme_unweak_reference +scheme_add_finalizer +scheme_add_finalizer_once +scheme_subtract_finalizer +scheme_add_scheme_finalizer +scheme_add_scheme_finalizer_once +scheme_register_finalizer +scheme_remove_all_finalization +scheme_dont_gc_ptr +scheme_gc_ptr_ok +scheme_collect_garbage +GC_register_traversers +GC_resolve +GC_mark +GC_fixup +GC_fixup_self +scheme_malloc_immobile_box +scheme_free_immobile_box +scheme_make_bucket_table +scheme_add_to_table +scheme_change_in_table +scheme_lookup_in_table +scheme_bucket_from_table +scheme_bucket_table_equal +scheme_clone_bucket_table +scheme_make_hash_table +scheme_make_hash_table_equal +scheme_make_hash_table_eqv +scheme_hash_set +scheme_hash_get +scheme_eq_hash_get +scheme_hash_set_atomic +scheme_hash_get_atomic +scheme_hash_table_equal +scheme_is_hash_table_equal +scheme_is_hash_table_eqv +scheme_clone_hash_table +scheme_make_hash_tree +scheme_hash_tree_set +scheme_hash_tree_get +scheme_hash_tree_next +scheme_hash_tree_index +scheme_hash_tree_equal +scheme_is_hash_tree_equal +scheme_is_hash_tree_eqv +scheme_make_prim +scheme_make_noneternal_prim +scheme_make_prim_w_arity +scheme_make_folding_prim +scheme_make_immed_prim +scheme_make_noncm_prim +scheme_make_noneternal_prim_w_arity +scheme_make_prim_w_everything +scheme_make_prim_closure_w_arity +scheme_make_folding_prim_closure +scheme_make_closed_prim +scheme_make_closed_prim_w_arity +scheme_make_folding_closed_prim +scheme_make_closed_prim_w_everything +scheme_prim_is_method +scheme_make_pair +scheme_make_mutable_pair +scheme_make_raw_pair +scheme_make_byte_string +scheme_make_sized_byte_string +scheme_make_sized_offset_byte_string +scheme_make_immutable_sized_byte_string +scheme_make_byte_string_without_copying +scheme_alloc_byte_string +scheme_append_byte_string +scheme_make_utf8_string +scheme_make_sized_utf8_string +scheme_make_sized_offset_utf8_string +scheme_make_immutable_sized_utf8_string +scheme_make_locale_string +scheme_char_string_to_byte_string +scheme_byte_string_to_char_string +scheme_char_string_to_byte_string_locale +scheme_byte_string_to_char_string_locale +scheme_char_string_to_path +scheme_path_to_char_string +scheme_make_char_string +scheme_make_sized_char_string +scheme_make_sized_offset_char_string +scheme_make_immutable_sized_char_string +scheme_make_char_string_without_copying +scheme_alloc_char_string +scheme_append_char_string +scheme_string_recase +scheme_make_vector +scheme_make_integer_value +scheme_make_integer_value_from_unsigned +scheme_make_integer_value_from_long_long +scheme_make_integer_value_from_unsigned_long_long +scheme_make_integer_value_from_long_halves +scheme_make_integer_value_from_unsigned_long_halves +scheme_make_double +scheme_make_char +scheme_make_char_or_nul +scheme_make_sema +scheme_post_sema +scheme_post_sema_all +scheme_wait_sema +scheme_try_plain_sema +scheme_char_constants +scheme_make_channel +scheme_make_channel_put_evt +scheme_get_int_val +scheme_get_unsigned_int_val +scheme_get_long_long_val +scheme_get_unsigned_long_long_val +scheme_real_to_double +scheme_make_cptr +scheme_make_offset_cptr +scheme_make_external_cptr +scheme_make_offset_external_cptr +scheme_get_proc_name +scheme_utf8_decode +scheme_utf8_decode_as_prefix +scheme_utf8_decode_all +scheme_utf8_decode_prefix +scheme_utf8_decode_to_buffer +scheme_utf8_decode_to_buffer_len +scheme_utf8_decode_count +scheme_utf8_encode +scheme_utf8_encode_all +scheme_utf8_encode_to_buffer +scheme_utf8_encode_to_buffer_len +scheme_ucs4_to_utf16 +scheme_utf16_to_ucs4 +scheme_open_converter +scheme_close_converter +scheme_make_bignum +scheme_make_bignum_from_unsigned +scheme_make_bignum_from_long_long +scheme_make_bignum_from_unsigned_long_long +scheme_bignum_to_double +scheme_bignum_from_double +scheme_bignum_to_string +scheme_bignum_to_allocated_string +scheme_read_bignum +scheme_read_bignum_bytes +scheme_bignum_normalize +scheme_make_rational +scheme_rational_to_double +scheme_rational_from_double +scheme_rational_normalize +scheme_rational_numerator +scheme_rational_denominator +scheme_make_complex +scheme_complex_normalize +scheme_complex_real_part +scheme_complex_imaginary_part +scheme_is_exact +scheme_is_inexact +scheme_expand +scheme_compile +scheme_read +scheme_read_syntax +scheme_write +scheme_print +scheme_display +scheme_write_w_max +scheme_display_w_max +scheme_print_w_max +scheme_write_byte_string +scheme_write_char_string +scheme_put_byte_string +scheme_put_char_string +scheme_write_to_string +scheme_display_to_string +scheme_print_to_string +scheme_write_to_string_w_max +scheme_display_to_string_w_max +scheme_print_to_string_w_max +scheme_debug_print +scheme_flush_output +scheme_format +scheme_printf +scheme_format_utf8 +scheme_printf_utf8 +scheme_getc +scheme_get_byte +scheme_peekc +scheme_peek_byte +scheme_peekc_skip +scheme_peek_byte_skip +scheme_getc_special_ok +scheme_get_byte_special_ok +scheme_peekc_special_ok +scheme_peek_byte_special_ok_skip +scheme_peekc_special_ok_skip +scheme_ungetc +scheme_byte_ready +scheme_char_ready +scheme_peekc_is_ungetc +scheme_need_wakeup +scheme_get_byte_string +scheme_get_byte_string_unless +scheme_get_byte_string_special_ok_unless +scheme_progress_evt +scheme_peeked_read +scheme_get_char_string +scheme_get_bytes +scheme_get_ready_special +scheme_tell +scheme_output_tell +scheme_tell_line +scheme_tell_column +scheme_tell_all +scheme_count_lines +scheme_close_input_port +scheme_close_output_port +scheme_write_special +scheme_write_special_nonblock +scheme_make_write_evt +scheme_port_record +scheme_input_port_record +scheme_output_port_record +scheme_is_input_port +scheme_is_output_port +scheme_make_port_type +scheme_make_input_port +scheme_make_output_port +scheme_set_next_port_custodian +scheme_set_port_location_fun +scheme_set_port_count_lines_fun +scheme_progress_evt_via_get +scheme_peeked_read_via_get +scheme_write_evt_via_write +scheme_write_special_evt_via_write_special +scheme_open_input_file +scheme_open_output_file +scheme_open_input_output_file +scheme_open_output_file_with_mode +scheme_make_file_input_port +scheme_make_named_file_input_port +scheme_make_file_output_port +scheme_make_fd_input_port +scheme_make_fd_output_port +scheme_make_byte_string_input_port +scheme_make_sized_byte_string_input_port +scheme_make_byte_string_output_port +scheme_get_sized_byte_string_output +scheme_get_reset_sized_byte_string_output +scheme_pipe +scheme_pipe_with_limit +scheme_make_null_output_port +scheme_make_redirect_output_port +scheme_set_file_position +scheme_file_exists +scheme_directory_exists +scheme_expand_filename +scheme_expand_user_filename +scheme_expand_string_filename +scheme_os_getcwd +scheme_os_setcwd +scheme_getdrive +scheme_split_path +scheme_build_path +scheme_path_to_directory_path +scheme_path_to_complete_path +scheme_make_path +scheme_make_sized_path +scheme_make_sized_offset_path +scheme_make_sized_offset_kind_path +scheme_make_path_without_copying +scheme_alloc_fdset_array +scheme_init_fdset_array +scheme_get_fdset +scheme_fdzero +scheme_fdset +scheme_fdclr +scheme_fdisset +scheme_add_fd_handle +scheme_add_fd_eventmask +scheme_collapse_win_fd +scheme_security_check_file +scheme_security_check_file_link +scheme_security_check_network +scheme_get_host_address +scheme_free_host_address +scheme_host_address_strerror +scheme_getnameinfo +scheme_get_port_file_descriptor +scheme_get_port_fd +scheme_get_port_socket +scheme_socket_to_ports +scheme_set_type_printer +scheme_print_bytes +scheme_print_utf8 +scheme_print_string +scheme_read_byte_string +scheme_make_namespace +scheme_add_global +scheme_add_global_symbol +scheme_make_envunbox +scheme_lookup_global +scheme_global_bucket +scheme_global_keyword_bucket +scheme_module_bucket +scheme_builtin_value +scheme_set_global_bucket +scheme_install_macro +scheme_save_initial_module_set +scheme_primitive_module +scheme_finish_primitive_module +scheme_protect_primitive_provide +scheme_make_modidx +scheme_apply_for_syntax_in_env +scheme_dynamic_require +scheme_namespace_require +scheme_is_module_path +scheme_datum_to_kernel_stx +scheme_intern_symbol +scheme_intern_exact_symbol +scheme_intern_exact_char_symbol +scheme_make_symbol +scheme_make_exact_symbol +scheme_make_exact_char_symbol +scheme_symbol_name +scheme_symbol_name_and_size +scheme_symbol_val +scheme_intern_exact_keyword +scheme_intern_exact_char_keyword +scheme_make_struct_values +scheme_make_struct_names +scheme_make_struct_type +scheme_make_struct_type2 +scheme_make_struct_instance +scheme_is_struct_instance +scheme_struct_ref +scheme_struct_set +scheme_make_struct_type_property +scheme_make_struct_type_property_w_guard +scheme_struct_type_property_ref +scheme_chaperone_struct_type_property_ref +scheme_make_location +scheme_is_location +scheme_make_inspector +scheme_is_subinspector +scheme_eq +scheme_eqv +scheme_equal +scheme_chaperone_of +scheme_equal_hash_key +scheme_equal_hash_key2 +scheme_recur_equal_hash_key +scheme_recur_equal_hash_key2 +scheme_eqv_hash_key +scheme_eqv_hash_key2 +scheme_set_type_equality +scheme_recur_equal +scheme_build_list +scheme_build_list_offset +scheme_is_list +scheme_list_length +scheme_proper_list_length +scheme_alloc_list +scheme_map_1 +scheme_car +scheme_cdr +scheme_cadr +scheme_caddr +scheme_vector_to_list +scheme_list_to_vector +scheme_append +scheme_reverse +scheme_box +scheme_unbox +scheme_set_box +scheme_make_weak_box +scheme_make_ephemeron +scheme_ephemeron_value +scheme_ephemeron_key +scheme_load +scheme_load_extension +scheme_register_extension_global +scheme_get_seconds +scheme_get_milliseconds +scheme_get_inexact_milliseconds +scheme_get_process_milliseconds +scheme_get_thread_milliseconds +scheme_banner +scheme_version +scheme_check_proc_arity +scheme_check_proc_arity2 +scheme_make_provided_string +scheme_make_args_string +scheme_system_library_subpath +scheme_signal_received +scheme_signal_received_at +scheme_get_signal_handle +scheme_char_strlen diff --git a/racket/src/include/mzscheme3m.exp b/racket/src/include/mzscheme3m.exp new file mode 100644 index 0000000000..4375d1e4ff --- /dev/null +++ b/racket/src/include/mzscheme3m.exp @@ -0,0 +1,599 @@ +#!.. +scheme_init_jmpup_buf +scheme_setjmpup_relative +scheme_longjmpup +scheme_reset_jmpup_buf +scheme_clear_escape +scheme_new_jmpupbuf_holder +scheme_current_config +scheme_extend_config +scheme_install_config +scheme_get_param +scheme_set_param +scheme_get_thread_param +scheme_set_thread_param +scheme_get_env +scheme_inherit_cells +scheme_current_break_cell +scheme_current_thread +scheme_fuel_counter +scheme_current_thread_ptr +scheme_fuel_counter_ptr +scheme_get_current_thread +scheme_start_atomic +scheme_end_atomic +scheme_end_atomic_no_swap +scheme_start_in_scheduler +scheme_end_in_scheduler +scheme_out_of_fuel +scheme_thread +scheme_thread_w_details +scheme_kill_thread +scheme_break_thread +scheme_break_main_thread +scheme_set_break_main_target +scheme_thread_block +scheme_thread_block_enable_break +scheme_swap_thread +scheme_making_progress +scheme_weak_suspend_thread +scheme_weak_resume_thread +scheme_block_until +scheme_block_until_enable_break +scheme_block_until_unless +scheme_wait_input_allowed +scheme_unless_ready +scheme_in_main_thread +scheme_cancel_sleep +scheme_start_sleeper_thread +scheme_end_sleeper_thread +scheme_notify_sleep_progress +scheme_make_thread_cell +scheme_thread_cell_get +scheme_thread_cell_set +scheme_tls_allocate +scheme_tls_set +scheme_tls_get +scheme_make_custodian +scheme_add_managed +scheme_custodian_check_available +scheme_custodian_is_available +scheme_remove_managed +scheme_close_managed +scheme_schedule_custodian_close +scheme_add_custodian_extractor +scheme_add_atexit_closer +scheme_atexit +scheme_add_evt +scheme_add_evt_through_sema +scheme_is_evt +scheme_sync +scheme_sync_enable_break +scheme_sync_timeout +scheme_make_evt_set +scheme_add_swap_callback +scheme_add_swap_out_callback +scheme_call_enable_break +scheme_close_should_force_port_closed +scheme_push_kill_action +scheme_pop_kill_action +scheme_set_can_break +scheme_push_break_enable +scheme_pop_break_enable +scheme_with_stack_freeze +scheme_frozen_run_some +scheme_is_in_frozen_stack +scheme_signal_error +scheme_raise_exn +scheme_warning +scheme_raise +scheme_log_level_p +scheme_log +scheme_log_message +scheme_log_abort +scheme_out_of_memory_abort +scheme_wrong_count +scheme_wrong_count_m +scheme_case_lambda_wrong_count +scheme_wrong_type +scheme_wrong_field_type +scheme_arg_mismatch +scheme_wrong_return_arity +scheme_unbound_global +scheme_dynamic_wind +scheme_make_type +scheme_get_type_name +scheme_eof +scheme_make_eof +scheme_null +scheme_make_null +scheme_true +scheme_make_true +scheme_false +scheme_make_false +scheme_void +scheme_make_void +scheme_undefined +scheme_tail_call_waiting +scheme_multiple_values +scheme_uchar_table +scheme_uchar_cases_table +scheme_uchar_cats_table +scheme_uchar_ups +scheme_uchar_downs +scheme_uchar_titles +scheme_uchar_folds +scheme_uchar_combining_classes +scheme_eval +scheme_eval_multi +scheme_eval_with_prompt +scheme_eval_multi_with_prompt +scheme_eval_compiled +scheme_eval_compiled_multi +_scheme_eval_compiled +_scheme_eval_compiled_multi +scheme_apply +scheme_apply_multi +scheme_apply_no_eb +scheme_apply_multi_no_eb +scheme_apply_to_list +scheme_apply_with_prompt +scheme_apply_multi_with_prompt +_scheme_apply_with_prompt +_scheme_apply_multi_with_prompt +scheme_eval_string +scheme_eval_string_multi +scheme_eval_string_all +scheme_eval_string_with_prompt +scheme_eval_string_multi_with_prompt +scheme_eval_string_all_with_prompt +scheme_eval_module_string +_scheme_apply_known_prim_closure +_scheme_apply_known_prim_closure_multi +_scheme_apply_prim_closure +_scheme_apply_prim_closure_multi +scheme_current_argument_stack +scheme_call_with_prompt +scheme_call_with_prompt_multi +_scheme_call_with_prompt +_scheme_call_with_prompt_multi +scheme_values +scheme_check_one_value +scheme_tail_apply +scheme_tail_apply_no_copy +scheme_tail_apply_to_list +scheme_tail_eval_expr +scheme_set_tail_buffer_size +scheme_force_value +scheme_force_one_value +scheme_set_cont_mark +scheme_push_continuation_frame +scheme_pop_continuation_frame +scheme_temp_dec_mark_depth +scheme_temp_inc_mark_depth +scheme_current_continuation_marks +scheme_extract_one_cc_mark +scheme_extract_one_cc_mark_to_tag +scheme_do_eval +scheme_eval_compiled_stx_string +scheme_load_compiled_stx_string +scheme_compiled_stx_symbol +scheme_eval_compiled_sized_string +scheme_eval_compiled_sized_string_with_magic +scheme_detach_multple_array +GC_malloc +GC_malloc_atomic +GC_malloc_one_tagged +GC_malloc_atomic_uncollectable +scheme_malloc_uncollectable +GC_malloc_array_tagged +GC_malloc_allow_interior +GC_malloc_atomic_allow_interior +GC_malloc_tagged_allow_interior +scheme_malloc_code +scheme_free_code +scheme_malloc_gcable_code +scheme_malloc_eternal +scheme_end_stubborn_change +scheme_calloc +scheme_strdup +scheme_strdup_eternal +scheme_malloc_fail_ok +scheme_weak_reference +scheme_weak_reference_indirect +scheme_unweak_reference +scheme_add_finalizer +scheme_add_finalizer_once +scheme_subtract_finalizer +scheme_add_scheme_finalizer +scheme_add_scheme_finalizer_once +scheme_register_finalizer +scheme_remove_all_finalization +scheme_dont_gc_ptr +scheme_gc_ptr_ok +scheme_collect_garbage +GC_variable_stack +GC_register_traversers +GC_resolve +GC_mark +GC_fixup +GC_fixup_self +scheme_malloc_immobile_box +scheme_free_immobile_box +scheme_make_bucket_table +scheme_add_to_table +scheme_change_in_table +scheme_lookup_in_table +scheme_bucket_from_table +scheme_bucket_table_equal +scheme_clone_bucket_table +scheme_make_hash_table +scheme_make_hash_table_equal +scheme_make_hash_table_eqv +scheme_hash_set +scheme_hash_get +scheme_eq_hash_get +scheme_hash_set_atomic +scheme_hash_get_atomic +scheme_hash_table_equal +scheme_is_hash_table_equal +scheme_is_hash_table_eqv +scheme_clone_hash_table +scheme_make_hash_tree +scheme_hash_tree_set +scheme_hash_tree_get +scheme_hash_tree_next +scheme_hash_tree_index +scheme_hash_tree_equal +scheme_is_hash_tree_equal +scheme_is_hash_tree_eqv +scheme_make_prim +scheme_make_noneternal_prim +scheme_make_prim_w_arity +scheme_make_folding_prim +scheme_make_immed_prim +scheme_make_noncm_prim +scheme_make_noneternal_prim_w_arity +scheme_make_prim_w_everything +scheme_make_prim_closure_w_arity +scheme_make_folding_prim_closure +scheme_make_closed_prim +scheme_make_closed_prim_w_arity +scheme_make_folding_closed_prim +scheme_make_closed_prim_w_everything +scheme_prim_is_method +scheme_make_pair +scheme_make_mutable_pair +scheme_make_raw_pair +scheme_make_byte_string +scheme_make_sized_byte_string +scheme_make_sized_offset_byte_string +scheme_make_immutable_sized_byte_string +scheme_make_byte_string_without_copying +scheme_alloc_byte_string +scheme_append_byte_string +scheme_make_utf8_string +scheme_make_sized_utf8_string +scheme_make_sized_offset_utf8_string +scheme_make_immutable_sized_utf8_string +scheme_make_locale_string +scheme_char_string_to_byte_string +scheme_byte_string_to_char_string +scheme_char_string_to_byte_string_locale +scheme_byte_string_to_char_string_locale +scheme_char_string_to_path +scheme_path_to_char_string +scheme_make_char_string +scheme_make_sized_char_string +scheme_make_sized_offset_char_string +scheme_make_immutable_sized_char_string +scheme_make_char_string_without_copying +scheme_alloc_char_string +scheme_append_char_string +scheme_string_recase +scheme_make_vector +scheme_make_integer_value +scheme_make_integer_value_from_unsigned +scheme_make_integer_value_from_long_long +scheme_make_integer_value_from_unsigned_long_long +scheme_make_integer_value_from_long_halves +scheme_make_integer_value_from_unsigned_long_halves +scheme_make_double +scheme_make_char +scheme_make_char_or_nul +scheme_make_sema +scheme_post_sema +scheme_post_sema_all +scheme_wait_sema +scheme_try_plain_sema +scheme_char_constants +scheme_make_channel +scheme_make_channel_put_evt +scheme_get_int_val +scheme_get_unsigned_int_val +scheme_get_long_long_val +scheme_get_unsigned_long_long_val +scheme_real_to_double +scheme_make_cptr +scheme_make_offset_cptr +scheme_make_external_cptr +scheme_make_offset_external_cptr +scheme_get_proc_name +scheme_utf8_decode +scheme_utf8_decode_as_prefix +scheme_utf8_decode_all +scheme_utf8_decode_prefix +scheme_utf8_decode_to_buffer +scheme_utf8_decode_to_buffer_len +scheme_utf8_decode_count +scheme_utf8_encode +scheme_utf8_encode_all +scheme_utf8_encode_to_buffer +scheme_utf8_encode_to_buffer_len +scheme_ucs4_to_utf16 +scheme_utf16_to_ucs4 +scheme_open_converter +scheme_close_converter +scheme_make_bignum +scheme_make_bignum_from_unsigned +scheme_make_bignum_from_long_long +scheme_make_bignum_from_unsigned_long_long +scheme_bignum_to_double +scheme_bignum_from_double +scheme_bignum_to_string +scheme_bignum_to_allocated_string +scheme_read_bignum +scheme_read_bignum_bytes +scheme_bignum_normalize +scheme_make_rational +scheme_rational_to_double +scheme_rational_from_double +scheme_rational_normalize +scheme_rational_numerator +scheme_rational_denominator +scheme_make_complex +scheme_complex_normalize +scheme_complex_real_part +scheme_complex_imaginary_part +scheme_is_exact +scheme_is_inexact +scheme_expand +scheme_compile +scheme_read +scheme_read_syntax +scheme_write +scheme_print +scheme_display +scheme_write_w_max +scheme_display_w_max +scheme_print_w_max +scheme_write_byte_string +scheme_write_char_string +scheme_put_byte_string +scheme_put_char_string +scheme_write_to_string +scheme_display_to_string +scheme_print_to_string +scheme_write_to_string_w_max +scheme_display_to_string_w_max +scheme_print_to_string_w_max +scheme_debug_print +scheme_flush_output +scheme_format +scheme_printf +scheme_format_utf8 +scheme_printf_utf8 +scheme_getc +scheme_get_byte +scheme_peekc +scheme_peek_byte +scheme_peekc_skip +scheme_peek_byte_skip +scheme_getc_special_ok +scheme_get_byte_special_ok +scheme_peekc_special_ok +scheme_peek_byte_special_ok_skip +scheme_peekc_special_ok_skip +scheme_ungetc +scheme_byte_ready +scheme_char_ready +scheme_peekc_is_ungetc +scheme_need_wakeup +scheme_get_byte_string +scheme_get_byte_string_unless +scheme_get_byte_string_special_ok_unless +scheme_progress_evt +scheme_peeked_read +scheme_get_char_string +scheme_get_bytes +scheme_get_ready_special +scheme_tell +scheme_output_tell +scheme_tell_line +scheme_tell_column +scheme_tell_all +scheme_count_lines +scheme_close_input_port +scheme_close_output_port +scheme_write_special +scheme_write_special_nonblock +scheme_make_write_evt +scheme_port_record +scheme_input_port_record +scheme_output_port_record +scheme_is_input_port +scheme_is_output_port +scheme_make_port_type +scheme_make_input_port +scheme_make_output_port +scheme_set_next_port_custodian +scheme_set_port_location_fun +scheme_set_port_count_lines_fun +scheme_progress_evt_via_get +scheme_peeked_read_via_get +scheme_write_evt_via_write +scheme_write_special_evt_via_write_special +scheme_open_input_file +scheme_open_output_file +scheme_open_input_output_file +scheme_open_output_file_with_mode +scheme_make_file_input_port +scheme_make_named_file_input_port +scheme_make_file_output_port +scheme_make_fd_input_port +scheme_make_fd_output_port +scheme_make_byte_string_input_port +scheme_make_sized_byte_string_input_port +scheme_make_byte_string_output_port +scheme_get_sized_byte_string_output +scheme_get_reset_sized_byte_string_output +scheme_pipe +scheme_pipe_with_limit +scheme_make_null_output_port +scheme_make_redirect_output_port +scheme_set_file_position +scheme_file_exists +scheme_directory_exists +scheme_expand_filename +scheme_expand_user_filename +scheme_expand_string_filename +scheme_os_getcwd +scheme_os_setcwd +scheme_getdrive +scheme_split_path +scheme_build_path +scheme_path_to_directory_path +scheme_path_to_complete_path +scheme_make_path +scheme_make_sized_path +scheme_make_sized_offset_path +scheme_make_sized_offset_kind_path +scheme_make_path_without_copying +scheme_alloc_fdset_array +scheme_init_fdset_array +scheme_get_fdset +scheme_fdzero +scheme_fdset +scheme_fdclr +scheme_fdisset +scheme_add_fd_handle +scheme_add_fd_eventmask +scheme_collapse_win_fd +scheme_security_check_file +scheme_security_check_file_link +scheme_security_check_network +scheme_get_host_address +scheme_free_host_address +scheme_host_address_strerror +scheme_getnameinfo +scheme_get_port_file_descriptor +scheme_get_port_fd +scheme_get_port_socket +scheme_socket_to_ports +scheme_set_type_printer +scheme_print_bytes +scheme_print_utf8 +scheme_print_string +scheme_read_byte_string +scheme_make_namespace +scheme_add_global +scheme_add_global_symbol +scheme_make_envunbox +scheme_lookup_global +scheme_global_bucket +scheme_global_keyword_bucket +scheme_module_bucket +scheme_builtin_value +scheme_set_global_bucket +scheme_install_macro +scheme_save_initial_module_set +scheme_primitive_module +scheme_finish_primitive_module +scheme_protect_primitive_provide +scheme_make_modidx +scheme_apply_for_syntax_in_env +scheme_dynamic_require +scheme_namespace_require +scheme_is_module_path +scheme_datum_to_kernel_stx +scheme_intern_symbol +scheme_intern_exact_symbol +scheme_intern_exact_char_symbol +scheme_make_symbol +scheme_make_exact_symbol +scheme_make_exact_char_symbol +scheme_symbol_name +scheme_symbol_name_and_size +scheme_symbol_val +scheme_intern_exact_keyword +scheme_intern_exact_char_keyword +scheme_make_struct_values +scheme_make_struct_names +scheme_make_struct_type +scheme_make_struct_type2 +scheme_make_struct_instance +scheme_is_struct_instance +scheme_struct_ref +scheme_struct_set +scheme_make_struct_type_property +scheme_make_struct_type_property_w_guard +scheme_struct_type_property_ref +scheme_chaperone_struct_type_property_ref +scheme_make_location +scheme_is_location +scheme_make_inspector +scheme_is_subinspector +scheme_eq +scheme_eqv +scheme_equal +scheme_chaperone_of +scheme_hash_key +scheme_equal_hash_key +scheme_equal_hash_key2 +scheme_recur_equal_hash_key +scheme_recur_equal_hash_key2 +scheme_eqv_hash_key +scheme_eqv_hash_key2 +scheme_set_type_equality +scheme_recur_equal +scheme_build_list +scheme_build_list_offset +scheme_is_list +scheme_list_length +scheme_proper_list_length +scheme_alloc_list +scheme_map_1 +scheme_car +scheme_cdr +scheme_cadr +scheme_caddr +scheme_vector_to_list +scheme_list_to_vector +scheme_append +scheme_reverse +scheme_box +scheme_unbox +scheme_set_box +scheme_make_weak_box +scheme_make_ephemeron +scheme_ephemeron_value +scheme_ephemeron_key +scheme_load +scheme_load_extension +scheme_register_extension_global +scheme_get_seconds +scheme_get_milliseconds +scheme_get_inexact_milliseconds +scheme_get_process_milliseconds +scheme_get_thread_milliseconds +scheme_banner +scheme_version +scheme_check_proc_arity +scheme_check_proc_arity2 +scheme_make_provided_string +scheme_make_args_string +scheme_system_library_subpath +scheme_signal_received +scheme_signal_received_at +scheme_get_signal_handle +scheme_char_strlen diff --git a/racket/src/include/racket_version.h b/racket/src/include/racket_version.h new file mode 100644 index 0000000000..e4e5378d62 --- /dev/null +++ b/racket/src/include/racket_version.h @@ -0,0 +1,36 @@ + +/* The version string has one of the forms: + X.Y + X.Y.Z Z != 0 + X.Y.Z.W W != 0 + where each X, Y, Z, W is a non-negative exact integer, Y must not + exceed 99, and Z or W must not exceed 999. Y>=90 means that this is + working towards {X+1}.0, and X.Y (Z=0, W=0) is an alpha version for + {X+1}.0; Z>=900 means working towards X.{Y+1}, and X.Y.Z as an + alpha release. + + Note that the version number in the "base" package's "info.rkt" + needs to be updated separately. +*/ + +#define MZSCHEME_VERSION_X 7 +#define MZSCHEME_VERSION_Y 8 +#define MZSCHEME_VERSION_Z 0 +#define MZSCHEME_VERSION_W 6 + +/* A level of indirection makes `#` work as needed: */ +#define AS_a_STR_HELPER(x) #x +#define AS_a_STR(x) AS_a_STR_HELPER(x) + +#if MZSCHEME_VERSION_W != 0 +# define MZSCHEME_VERSION AS_a_STR(MZSCHEME_VERSION_X) "." AS_a_STR(MZSCHEME_VERSION_Y) "." AS_a_STR(MZSCHEME_VERSION_Z) "." AS_a_STR(MZSCHEME_VERSION_W) +#elif MZSCHEME_VERSION_Z != 0 +# define MZSCHEME_VERSION AS_a_STR(MZSCHEME_VERSION_X) "." AS_a_STR(MZSCHEME_VERSION_Y) "." AS_a_STR(MZSCHEME_VERSION_Z) +#else +# define MZSCHEME_VERSION AS_a_STR(MZSCHEME_VERSION_X) "." AS_a_STR(MZSCHEME_VERSION_Y) +#endif + +#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y) +#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W) + +#define MZSCHEME_VM "racket" diff --git a/racket/src/include/scheme.h b/racket/src/include/scheme.h new file mode 100644 index 0000000000..23f15aca36 --- /dev/null +++ b/racket/src/include/scheme.h @@ -0,0 +1,2134 @@ +#ifndef SCHEME_H +#define SCHEME_H + +/* The next line is used and set during installation: */ +#define INCLUDE_WITHOUT_PATHS + +/*========================================================================*/ +/* configuration */ +/*========================================================================*/ + +/* The configuration is not intended to be adjusted here. Instead, + modify sconfig.h. The code below simply draws a few more + configuration conclusions and a few extra macros based on those + settings. */ + +#ifdef INCLUDE_WITHOUT_PATHS +# include "sconfig.h" +#else +# include "../sconfig.h" +#endif + +#if defined(__MWERKS__) +# ifdef MZSCHEME_USES_NEAR_GLOBALS +# pragma far_data off +# endif +#endif + +#if SGC_STD_DEBUGGING +# ifndef USE_SENORA_GC +# define USE_SENORA_GC +# endif +# define USE_MEMORY_TRACING +#endif + +#ifdef MZ_PRECISE_GC +# define MUST_REGISTER_GLOBALS +# define MZTAG_REQUIRED +/* In case SGC is used to build PRECISE_GC: */ +# undef USE_SENORA_GC +#endif + +#ifdef USE_SENORA_GC +# define MUST_REGISTER_GLOBALS +#endif + +#ifdef USE_SINGLE_FLOATS +# define MZ_USE_SINGLE_FLOATS +#endif + +/* gcc defines __SSE2_MATH__ when SSE2 floating point is enabled: */ +#ifdef __SSE2_MATH__ +# define C_COMPILER_USES_SSE 1 +#endif + +#ifdef C_COMPILER_USES_SSE +# if defined(MZ_TRY_EXTFLONUMS) && !defined(MZ_NO_EXTFLONUMS) +# define MZ_LONG_DOUBLE +# ifdef ASM_DBLPREC_CONTROL_87 +# define ASM_EXTPREC_CONTROL_87 +# endif +# endif +# ifdef ASM_DBLPREC_CONTROL_87 +# undef ASM_DBLPREC_CONTROL_87 +# endif +# if defined(MZ_USE_JIT_I386) && !defined(MZ_NO_JIT_SSE) +# define MZ_USE_JIT_SSE +# endif +#endif + +#ifdef MZ_LONG_DOUBLE +# ifdef MZ_LONG_DOUBLE_API_IS_EXTERNAL +# define BYTES_RESERVED_FOR_LONG_DOUBLE 16 +typedef struct { + char bytes[BYTES_RESERVED_FOR_LONG_DOUBLE]; +} mz_long_double; +# else +typedef long double mz_long_double; +# endif +#else +# ifdef MZ_INSIST_EXTFLONUMS +# error "cannot support extflonums; you may need to adjust compiler options" +# endif +typedef double mz_long_double; +#endif + +#ifdef DONT_ITIMER +# undef USE_ITIMER +#endif + +#if defined(USE_ITIMER) || defined(USE_WIN32_THREAD_TIMER) || defined(USE_PTHREAD_THREAD_TIMER) +# define FUEL_AUTODECEREMENTS +#endif + +#ifdef SIZEOF_VOID_P +# if SIZEOF_VOID_P == 8 +# define SIXTY_FOUR_BIT_INTEGERS +# ifdef USE_LONG_LONG_FOR_BIGDIG + Do not specify USE_LONG_LONG_FOR_BIGDIG on a platform with + 64-bit integers +# endif +# endif +#endif + +#ifdef SIZEOF_LONG +# if SIZEOF_LONG == 8 +# define SIXTY_FOUR_BIT_LONGS +# endif +#endif + +#ifdef MZ_PRECISE_GC +# define MZ_HASH_KEY_EX short keyex; +# define MZ_OPT_HASH_KEY_EX /**/ +# define MZ_OPT_HASH_KEY(obj) (obj)->so.keyex +#else +# define MZ_HASH_KEY_EX /**/ +# define MZ_OPT_HASH_KEY_EX short keyex; +# define MZ_OPT_HASH_KEY(obj) (obj)->keyex +#endif + +#ifdef PALMOS_STUFF +# include +typedef long FILE; +# define _LINUX_TYPES_H /* Blocks types.h */ +#endif + +#ifndef SCHEME_DIRECT_EMBEDDED +# define SCHEME_DIRECT_EMBEDDED 1 +#endif + +#ifndef MSC_IZE +# define MSC_IZE(x) x +#endif +#ifndef M_MSC_IZE +# define M_MSC_IZE(x) x +#endif +#ifndef MSCBOR_IZE +# define MSCBOR_IZE(x) MSC_IZE(x) +#endif + +/* C99 allows an array in a struct to be declared + with [] to indicate that its actual size can be + any number. The old way was to declare the array + of size 1. For now, we support going back to the + old way. */ +#ifdef MZ_USE_OLD_ARRAY_STYLE +# define mzFLEX_ARRAY_DECL 1 +# define mzFLEX_ARRAY4_DECL 4 +# define mzFLEX_DELTA 1 +# define mzFLEX4_DELTA 4 +#else +# define mzFLEX_ARRAY_DECL /* empty */ +# define mzFLEX_ARRAY4_DECL /* empty */ +# define mzFLEX_DELTA 0 +# define mzFLEX4_DELTA 0 +#endif + +#ifdef MZ_XFORM +/* A non-GCing function will never trigger a garbage collection. + The xform tool checks this declaration, and it uses this hint + to avoid registering variables unnecessarily. */ +# define XFORM_NONGCING __xform_nongcing__ +/* A non-GCing, non-aliasing function is non-GCing, and it may take + arguments that are addresses of local variables, but it doesn't + leak those addresses; it only filles them in. The xform tool only + checks the non-GCing part of this declaration, but uses both + facets of the hint. */ +# define XFORM_NONGCING_NONALIASING __xform_nongcing_nonaliasing__ +#else +# define XFORM_NONGCING /* empty */ +# define XFORM_NONGCING_NONALIASING /* empty */ +#endif + +#ifdef MZ_XFORM +START_XFORM_SUSPEND; +#endif + +#include +#include +#include +#include +#include +#include + +#ifdef MZ_XFORM +END_XFORM_SUSPEND; +#endif + +#ifdef PALMOS_STUFF +typedef jmpbuf jmp_buf[1]; +#endif + +#define GC_MIGHT_USE_REGISTERED_STATICS + +#ifndef MZ_DONT_USE_JIT +# if defined(MZ_USE_JIT_PPC) || defined(MZ_USE_JIT_I386) || defined(MZ_USE_JIT_X86_64) || defined(MZ_USE_JIT_ARM) +# define MZ_USE_JIT +# endif +#endif + +/* Define _W64 for MSC if needed. */ +#if defined(_MSC_VER) && !defined(_W64) +# if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 +# define _W64 __w64 +# else +# define _W64 +# endif +#endif + +#ifdef MZ_PRECISE_GC +# ifndef MZ_XFORM +# define XFORM_SKIP_PROC /* empty */ +# define XFORM_ASSERT_NO_CONVERSION /* empty */ +# define XFORM_CAN_IGNORE /**/ +# endif +#else +# define XFORM_HIDE_EXPR(x) x +# define XFORM_START_SKIP /**/ +# define XFORM_END_SKIP /**/ +# define XFORM_START_SUSPEND /**/ +# define XFORM_END_SUSPEND /**/ +# define XFORM_SKIP_PROC /**/ +# define XFORM_ASSERT_NO_CONVERSION /**/ +# define XFORM_START_TRUST_ARITH /**/ +# define XFORM_END_TRUST_ARITH /**/ +# define XFORM_CAN_IGNORE /**/ +# define XFORM_TRUST_PLUS + +# define XFORM_TRUST_MINUS - +#endif + +/* PPC Linux plays a slimy trick: it defines strcpy() as a macro that + uses __extension__. This breaks the 3m xform. */ +#if defined(MZ_XFORM) && defined(strcpy) +START_XFORM_SKIP; +# ifdef __clang__ +# pragma clang diagnostic push +# pragma clang diagnostic ignored "-Wunused-function" +# endif +static inline void _mzstrcpy(char *a, const char *b) +{ + strcpy(a, b); +} +# ifdef __clang__ +# pragma clang diagnostic pop +# endif +END_XFORM_SKIP; +# undef strcpy +# define strcpy _mzstrcpy +#endif + +#ifdef __cplusplus +extern "C" +{ +#endif + +#if !defined(MZ_NORETURN) +# if !defined(MZ_PRECISE_RETURN_SPEC) +# define MZ_NORETURN +# elif defined(__GNUC__) || defined(__clang__) +# define MZ_NORETURN __attribute__((noreturn)) +# elif defined(_MSC_VER) +# define MZ_NORETURN __declspec(noreturn) +# else +# define MZ_NORETURN +# endif /* defined(__GNUC__) || defined(__clang__) */ +#endif /* !defined(MZ_NORETURN) */ + +#if !defined(MZ_UNREACHABLE) +# if (defined(__GNUC__) && (__GNUC__ > 4)) || defined(__clang__) +# define MZ_UNREACHABLE __builtin_unreachable() +# elif defined(_MSC_VER) +# define MZ_UNREACHABLE __assume(0) +# else +# define MZ_UNREACHABLE +# endif /* defined(__GNUC__) || defined(__clang__) */ +#endif /* !defined(MZ_UNREACHABLE) */ + +/* Allowed by all configurations, currently: */ +#define MZ_CAN_ACCESS_THREAD_LOCAL_DIRECTLY + +/*========================================================================*/ +/* basic Scheme values */ +/*========================================================================*/ + +typedef short Scheme_Type; + +typedef int mzshort; + +typedef unsigned int mzchar; +typedef int mzchar_int; /* includes EOF */ + +#ifdef INT64_AS_LONG_LONG +typedef _int64 mzlonglong; +typedef unsigned _int64 umzlonglong; +#else +# if defined(NO_LONG_LONG_TYPE) || defined(SIXTY_FOUR_BIT_INTEGERS) +typedef intptr_t mzlonglong; +typedef uintptr_t umzlonglong; +# else +typedef long long mzlonglong; +typedef unsigned long long umzlonglong; +# endif +#endif + +/* Racket values have the type `Scheme_Object *'. The Scheme_Object + structure declares just the header: a type tag and space for + hashing or extra flags; actual object types will extend this + structure. + + For example, Scheme_Simple_Object defines a few variants. The + important thing is that it starts with a nested Scheme_Object + record. + + The Scheme_Simple_Object struct is defined here, instead of in a + private header, so that macros can provide quick access. Of course, + don't access the fields of these structures directly; use the + macros instead. */ + +typedef struct Scheme_Object +{ + Scheme_Type type; /* Anything that starts with a type field + can be a Scheme_Object */ + + /* For precise GC, the keyex field is used for all object types to + store a hash key extension. The low bit is not used for this + purpose, though. For string, pair, vector, and box values in all + variants of Racket, the low bit is set to 1 to indicate that + the object is immutable. Thus, the keyex field is needed even in + non-precise GC mode, so such structures embed + Scheme_Inclhash_Object */ + + MZ_HASH_KEY_EX +} Scheme_Object; + + /* See note above on MZ_HASH_KEY_EX. To get the keyex field, + use MZ_OPT_HASH_KEY(iso), where iso is a pointer to a + Scheme_Inclhash_Object */ +typedef struct Scheme_Inclhash_Object +{ + Scheme_Object so; + MZ_OPT_HASH_KEY_EX +} Scheme_Inclhash_Object; + +typedef struct Scheme_Simple_Object +{ + Scheme_Inclhash_Object iso; + + union + { + struct { mzchar *string_val; intptr_t tag_val; } char_str_val; + struct { char *string_val; intptr_t tag_val; } byte_str_val; + struct { void *ptr1, *ptr2; } two_ptr_val; + struct { int int1; int int2; } two_int_val; + struct { void *ptr; int pint; } ptr_int_val; + struct { void *ptr; intptr_t pint; } ptr_long_val; + struct { struct Scheme_Object *car, *cdr; } pair_val; + struct { mzshort len; mzshort *vec; } svector_val; + struct { void *val; Scheme_Object *type; } cptr_val; + } u; +} Scheme_Simple_Object; + +typedef struct Scheme_Object *(*Scheme_Closure_Func)(struct Scheme_Object *); + +/* Scheme_Small_Object is used for several types of Racket values: */ +typedef struct { + Scheme_Inclhash_Object iso; + union { + mzchar char_val; + Scheme_Object *ptr_value; + intptr_t int_val; + Scheme_Object *ptr_val; + } u; +} Scheme_Small_Object; + +/* A floating-point number: */ +typedef struct { + Scheme_Object so; + double double_val; +} Scheme_Double; + +#ifdef MZ_LONG_DOUBLE +typedef struct { + Scheme_Object so; + mz_long_double long_double_val; +} Scheme_Long_Double; +#else +typedef struct { + Scheme_Object so; + const char *printed_form; +} Scheme_Long_Double; +#endif + +#ifdef MZ_USE_SINGLE_FLOATS +typedef struct { + Scheme_Object so; + float float_val; +} Scheme_Float; +#endif + +typedef struct Scheme_Symbol { + Scheme_Inclhash_Object iso; /* 1 in low bit of keyex indicates uninterned */ + intptr_t len; + char s[mzFLEX_ARRAY4_DECL]; +} Scheme_Symbol; + +typedef struct Scheme_Vector { + Scheme_Inclhash_Object iso; /* 1 in low bit of keyex indicates immutable */ + intptr_t size; + Scheme_Object *els[mzFLEX_ARRAY_DECL]; +} Scheme_Vector; + +# define SHARED_ALLOCATED 0x2 +# define SHARED_ALLOCATEDP(so) (MZ_OPT_HASH_KEY((Scheme_Inclhash_Object *)(so)) & SHARED_ALLOCATED) +# define SHARED_ALLOCATED_SET(so) (MZ_OPT_HASH_KEY((Scheme_Inclhash_Object *)(so)) |= SHARED_ALLOCATED) + +typedef struct Scheme_Double_Vector { + Scheme_Inclhash_Object iso; /* & 0x2 indicates allocated in the MASTERGC */ + intptr_t size; + double els[mzFLEX_ARRAY_DECL]; +} Scheme_Double_Vector; + +#ifdef MZ_LONG_DOUBLE +typedef struct Scheme_Long_Double_Vector { + Scheme_Inclhash_Object iso; /* & 0x2 indicates allocated in the MASTERGC */ + intptr_t size; + mz_long_double els[mzFLEX_ARRAY_DECL]; +} Scheme_Long_Double_Vector; +#endif + +typedef struct Scheme_Print_Params Scheme_Print_Params; +typedef void (*Scheme_Type_Printer)(Scheme_Object *v, int for_display, Scheme_Print_Params *pp); + +typedef int (*Scheme_Equal_Proc)(Scheme_Object *obj1, Scheme_Object *obj2, void *cycle_data); +typedef intptr_t (*Scheme_Primary_Hash_Proc)(Scheme_Object *obj, intptr_t base, void *cycle_data); +typedef intptr_t (*Scheme_Secondary_Hash_Proc)(Scheme_Object *obj, void *cycle_data); + +/* This file defines all the built-in types */ +#ifdef INCLUDE_WITHOUT_PATHS +# include "stypes.h" +#else +# include "../src/stypes.h" +#endif + +#define OBJ_TO_LONG(ptr) ((intptr_t)(ptr)) +#define LONG_TO_OBJ(l) ((Scheme_Object *)(void *)(intptr_t)(l)) + +/* Scheme Objects are always aligned on 2-byte boundaries, so */ +/* words of type Scheme_Object * will always have zero in the */ +/* least significant bit. Therefore, we can use this bit as a */ +/* tag to indicate that the `pointer' isn't really a pointer */ +/* but a 31-bit signed immediate integer. */ + +#define SCHEME_INTP(obj) (OBJ_TO_LONG(obj) & 0x1) + +#define SAME_PTR(a, b) ((a) == (b)) +#define NOT_SAME_PTR(a, b) ((a) != (b)) + +#define SAME_OBJ(a, b) SAME_PTR(a, b) +#define NOT_SAME_OBJ(a, b) NOT_SAME_PTR(a, b) + +#define SAME_TYPE(a, b) ((Scheme_Type)(a) == (Scheme_Type)(b)) +#define NOT_SAME_TYPE(a, b) ((Scheme_Type)(a) != (Scheme_Type)(b)) + +# define SCHEME_TYPE(obj) (SCHEME_INTP(obj)?(Scheme_Type)scheme_integer_type:((Scheme_Object *)(obj))->type) +# define _SCHEME_TYPE(obj) ((obj)->type) /* unsafe version */ + +/*========================================================================*/ +/* basic Scheme predicates */ +/*========================================================================*/ + +#define SCHEME_CHARP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_char_type) +/* SCHEME_INTP defined above */ +#define SCHEME_DBLP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_double_type) +#ifdef MZ_USE_SINGLE_FLOATS +# define SCHEME_FLTP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_float_type) +# define SCHEME_FLOATP(obj) (SCHEME_FLTP(obj) || SCHEME_DBLP(obj)) +#else +# define SCHEME_FLTP SCHEME_DBLP +# define SCHEME_FLOATP SCHEME_DBLP +#endif +#define SCHEME_BIGNUMP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_bignum_type) +#define SCHEME_RATIONALP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_rational_type) +#define SCHEME_COMPLEXP(obj) (!SCHEME_INTP(obj) && ((_SCHEME_TYPE(obj) == scheme_complex_type))) +#define SCHEME_EXACT_INTEGERP(obj) (SCHEME_INTP(obj) || (_SCHEME_TYPE(obj) == scheme_bignum_type)) +#define SCHEME_EXACT_REALP(obj) (SCHEME_INTP(obj) || (_SCHEME_TYPE(obj) == scheme_bignum_type) || (_SCHEME_TYPE(obj) == scheme_rational_type)) +#define SCHEME_REALP(obj) (SCHEME_INTP(obj) || ((_SCHEME_TYPE(obj) >= scheme_bignum_type) && (_SCHEME_TYPE(obj) < scheme_complex_type))) +#define SCHEME_NUMBERP(obj) (SCHEME_INTP(obj) || ((_SCHEME_TYPE(obj) >= scheme_bignum_type) && (_SCHEME_TYPE(obj) <= scheme_complex_type))) + +#define SCHEME_LONG_DBLP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_long_double_type) + +#define SCHEME_CHAR_STRINGP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_char_string_type) +#define SCHEME_MUTABLE_CHAR_STRINGP(obj) (SCHEME_CHAR_STRINGP(obj) && SCHEME_MUTABLEP(obj)) +#define SCHEME_IMMUTABLE_CHAR_STRINGP(obj) (SCHEME_CHAR_STRINGP(obj) && SCHEME_IMMUTABLEP(obj)) + +#define SCHEME_BYTE_STRINGP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_byte_string_type) +#define SCHEME_MUTABLE_BYTE_STRINGP(obj) (SCHEME_BYTE_STRINGP(obj) && SCHEME_MUTABLEP(obj)) +#define SCHEME_IMMUTABLE_BYTE_STRINGP(obj) (SCHEME_BYTE_STRINGP(obj) && SCHEME_IMMUTABLEP(obj)) + +#define SCHEME_PATHP(obj) SAME_TYPE(SCHEME_TYPE(obj), SCHEME_PLATFORM_PATH_KIND) +#define SCHEME_GENERAL_PATHP(obj) ((SCHEME_TYPE(obj) >= scheme_unix_path_type) && (SCHEME_TYPE(obj) <= scheme_windows_path_type)) + /* A path is guaranteed to have the same shape as a byte string */ + +#define SCHEME_PATH_STRINGP(x) (SCHEME_CHAR_STRINGP(x) || SCHEME_PATHP(x)) +#define SCHEME_PATH_STRING_STR "path or string" + +#define SCHEME_GENERAL_PATH_STRINGP(x) (SCHEME_CHAR_STRINGP(x) || SCHEME_GENERAL_PATHP(x)) +#define SCHEME_GENERAL_PATH_STRING_STR "path (for any platform) or string" + +#define SCHEME_SYMBOLP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_symbol_type) +#define SCHEME_KEYWORDP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_keyword_type) + +#define SCHEME_STRSYMP(obj) (SCHEME_CHAR_STRINGP(obj) || SCHEME_SYMBOLP(obj)) + +#define SCHEME_BOOLP(obj) (SAME_OBJ(obj, scheme_true) || SAME_OBJ(obj, scheme_false)) +#define SCHEME_FALSEP(obj) SAME_OBJ((obj), scheme_false) +#define SCHEME_TRUEP(obj) (!SCHEME_FALSEP(obj)) +#define SCHEME_EOFP(obj) SAME_OBJ((obj), scheme_eof) +#define SCHEME_VOIDP(obj) SAME_OBJ((obj), scheme_void) + +#define SCHEME_NULLP(obj) SAME_OBJ(obj, scheme_null) +#define SCHEME_PAIRP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_pair_type) +#define SCHEME_MPAIRP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_mutable_pair_type) +#define SCHEME_MUTABLE_PAIRP(obj) SCHEME_MPAIRP(obj) +#define SCHEME_LISTP(obj) scheme_is_list(obj) + +#define SCHEME_RPAIRP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_raw_pair_type) + +#define SCHEME_BOXP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_box_type) +#define SCHEME_MUTABLE_BOXP(obj) (SCHEME_BOXP(obj) && SCHEME_MUTABLEP(obj)) +#define SCHEME_IMMUTABLE_BOXP(obj) (SCHEME_BOXP(obj) && SCHEME_IMMUTABLEP(obj)) + +#define SCHEME_PROMPT_TAGP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_prompt_tag_type) +#define SCHEME_CONTINUATION_MARK_KEYP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_continuation_mark_key_type) + +#define SCHEME_BUCKTP(obj) SAME_TYPE(SCHEME_TYPE(obj),scheme_bucket_table_type) +#define SCHEME_HASHTP(obj) SAME_TYPE(SCHEME_TYPE(obj),scheme_hash_table_type) +#define SCHEME_HASHTRP(obj) ((SCHEME_TYPE(obj) >= scheme_hash_tree_type) && (SCHEME_TYPE(obj) <= scheme_hash_tree_indirection_type)) + +#define SCHEME_VECTORP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_vector_type) +#define SCHEME_MUTABLE_VECTORP(obj) (SCHEME_VECTORP(obj) && SCHEME_MUTABLEP(obj)) +#define SCHEME_IMMUTABLE_VECTORP(obj) (SCHEME_VECTORP(obj) && SCHEME_IMMUTABLEP(obj)) + +#define SCHEME_FLVECTORP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_flvector_type) +#define SCHEME_EXTFLVECTORP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_extflvector_type) +#define SCHEME_FXVECTORP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_fxvector_type) + +#define SCHEME_STRUCTP(obj) (SAME_TYPE(SCHEME_TYPE(obj), scheme_structure_type) || SAME_TYPE(SCHEME_TYPE(obj), scheme_proc_struct_type)) +#define SCHEME_STRUCT_TYPEP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_struct_type_type) + +#define SCHEME_INPORTP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_input_port_type) +#define SCHEME_OUTPORTP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_output_port_type) + +#define SCHEME_INPUT_PORTP(obj) scheme_is_input_port(obj) +#define SCHEME_OUTPUT_PORTP(obj) scheme_is_output_port(obj) + +#define SCHEME_THREADP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_thread_type) +#define SCHEME_CUSTODIANP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_custodian_type) +#define SCHEME_PLUMBERP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_plumber_type) +#define SCHEME_SEMAP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_sema_type) +#define SCHEME_CHANNELP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_channel_type) +#define SCHEME_CHANNEL_PUTP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_channel_put_type) + +#define SCHEME_CONFIGP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_config_type) +#define SCHEME_NAMESPACEP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_namespace_type) +#define SCHEME_WEAKP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_weak_box_type) + +#define SCHEME_STXP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_stx_type) + +#define SCHEME_CHAPERONEP(obj) (SAME_TYPE(SCHEME_TYPE(obj), scheme_chaperone_type) \ + || SAME_TYPE(SCHEME_TYPE(obj), scheme_proc_chaperone_type)) + +#define SCHEME_UDPP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_udp_type) +#define SCHEME_UDP_EVTP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_udp_evt_type) + +#define SCHEME_CPTRP(obj) (SAME_TYPE(SCHEME_TYPE(obj), scheme_cpointer_type)) + +#define SCHEME_MUTABLEP(obj) (!(MZ_OPT_HASH_KEY((Scheme_Inclhash_Object *)(obj)) & 0x1)) +#define SCHEME_IMMUTABLEP(obj) (MZ_OPT_HASH_KEY((Scheme_Inclhash_Object *)(obj)) & 0x1) + +#define GUARANTEE_TYPE(fname, argnum, typepred, typenam) \ + (typepred (argv [argnum]) \ + ? argv [argnum] \ + : (scheme_wrong_type (fname, typenam, argnum, argc, argv), argv [argnum])) + +#define GUARANTEE_BOOL(fname, argnum) GUARANTEE_TYPE (fname, argnum, SCHEME_BOOLP, "boolean") +#define GUARANTEE_CHAR(fname, argnum) GUARANTEE_TYPE (fname, argnum, SCHEME_CHARP, "character") +#define GUARANTEE_INTEGER(fname, argnum) GUARANTEE_TYPE (fname, argnum, SCHEME_INTP, "integer") +#define GUARANTEE_PAIR(fname, argnum) GUARANTEE_TYPE (fname, argnum, SCHEME_PAIRP, "pair") +#define GUARANTEE_PROCEDURE(fname, argnum) GUARANTEE_TYPE (fname, argnum, SCHEME_PROCP, "procedure") +#define GUARANTEE_CHAR_STRING(fname, argnum) GUARANTEE_TYPE (fname, argnum, SCHEME_CHAR_STRINGP, "string") +#define GUARANTEE_STRSYM(fname, argnum) GUARANTEE_TYPE (fname, argnum, SCHEME_STRSYMP, "string or symbol") +#define GUARANTEE_SYMBOL(fname, argnum) GUARANTEE_TYPE (fname, argnum, SCHEME_SYMBOLP, "symbol") + +#define SCHEME_UNIX_PATH_KIND scheme_unix_path_type +#define SCHEME_WINDOWS_PATH_KIND scheme_windows_path_type + +#ifdef DOS_FILE_SYSTEM +# define SCHEME_PLATFORM_PATH_KIND SCHEME_WINDOWS_PATH_KIND +#else +# define SCHEME_PLATFORM_PATH_KIND SCHEME_UNIX_PATH_KIND +#endif + +#define SCHEME_PATH_KIND(p) SCHEME_TYPE(p) + +/*========================================================================*/ +/* basic Scheme accessors */ +/*========================================================================*/ + +#define SCHEME_CHAR_VAL(obj) (((Scheme_Small_Object *)(obj))->u.char_val) +#define SCHEME_INT_VAL(obj) (OBJ_TO_LONG(obj)>>1) +#define SCHEME_DBL_VAL(obj) (((Scheme_Double *)(obj))->double_val) +#ifdef MZ_LONG_DOUBLE +#define SCHEME_LONG_DBL_VAL(obj) (((Scheme_Long_Double *)(obj))->long_double_val) +#endif +#ifdef MZ_USE_SINGLE_FLOATS +# define SCHEME_FLT_VAL(obj) (((Scheme_Float *)(obj))->float_val) +# define SCHEME_FLOAT_VAL(obj) (SCHEME_DBLP(obj) ? SCHEME_DBL_VAL(obj) : SCHEME_FLT_VAL(obj)) +#else +# define SCHEME_FLT_VAL(x) ((float)(SCHEME_DBL_VAL(x))) +# define SCHEME_FLOAT_VAL SCHEME_DBL_VAL +# define scheme_make_float(x) scheme_make_double((double)x) +#endif + +#define SCHEME_CHAR_STR_VAL(obj) (((Scheme_Simple_Object *)(obj))->u.char_str_val.string_val) +#define SCHEME_CHAR_STRTAG_VAL(obj) (((Scheme_Simple_Object *)(obj))->u.char_str_val.tag_val) +#define SCHEME_CHAR_STRLEN_VAL(obj) (((Scheme_Simple_Object *)(obj))->u.char_str_val.tag_val) +#define SCHEME_BYTE_STR_VAL(obj) (((Scheme_Simple_Object *)(obj))->u.byte_str_val.string_val) +#define SCHEME_BYTE_STRTAG_VAL(obj) (((Scheme_Simple_Object *)(obj))->u.byte_str_val.tag_val) +#define SCHEME_BYTE_STRLEN_VAL(obj) (((Scheme_Simple_Object *)(obj))->u.byte_str_val.tag_val) +#define SCHEME_PATH_VAL(obj) (((Scheme_Simple_Object *)(obj))->u.byte_str_val.string_val) +#define SCHEME_PATH_LEN(obj) (((Scheme_Simple_Object *)(obj))->u.byte_str_val.tag_val) +#define SCHEME_SYM_VAL(obj) (((Scheme_Symbol *)((Scheme_Simple_Object *)(obj)))->s) +#define SCHEME_SYM_LEN(obj) (((Scheme_Symbol *)((Scheme_Simple_Object *)(obj)))->len) +#define SCHEME_KEYWORD_VAL(obj) SCHEME_SYM_VAL(obj) +#define SCHEME_KEYWORD_LEN(obj) SCHEME_SYM_LEN(obj) + +#define SCHEME_SYMSTR_OFFSET(obj) ((uintptr_t)SCHEME_SYM_VAL(obj)-(uintptr_t)(obj)) + +/* return a `char *' pointing to the string or the symbol name */ +#define SCHEME_STRSYM_VAL(obj) (SCHEME_SYMBOLP(obj) ? SCHEME_SYM_VAL(obj) : SCHEME_CHAR_STR_VAL(obj)) + +#define SCHEME_BOX_VAL(obj) (((Scheme_Small_Object *)(obj))->u.ptr_val) + +#define SCHEME_CAR(obj) (((Scheme_Simple_Object *)(obj))->u.pair_val.car) +#define SCHEME_CDR(obj) (((Scheme_Simple_Object *)(obj))->u.pair_val.cdr) + +#define SCHEME_CADR(obj) (SCHEME_CAR (SCHEME_CDR (obj))) +#define SCHEME_CAAR(obj) (SCHEME_CAR (SCHEME_CAR (obj))) +#define SCHEME_CDDR(obj) (SCHEME_CDR (SCHEME_CDR (obj))) + +#define SCHEME_MCAR(obj) (((Scheme_Simple_Object *)(obj))->u.pair_val.car) +#define SCHEME_MCDR(obj) (((Scheme_Simple_Object *)(obj))->u.pair_val.cdr) + +#define SCHEME_VEC_SIZE(obj) (((Scheme_Vector *)(obj))->size) +#define SCHEME_VEC_ELS(obj) (((Scheme_Vector *)(obj))->els) +#define SCHEME_VEC_BASE(obj) SCHEME_VEC_ELS(obj) + +#define SCHEME_FLVEC_SIZE(obj) (((Scheme_Double_Vector *)(obj))->size) +#define SCHEME_FLVEC_ELS(obj) (((Scheme_Double_Vector *)(obj))->els) + +#ifdef MZ_LONG_DOUBLE +#define SCHEME_EXTFLVEC_SIZE(obj) (((Scheme_Long_Double_Vector *)(obj))->size) +#define SCHEME_EXTFLVEC_ELS(obj) (((Scheme_Long_Double_Vector *)(obj))->els) +#endif + +#define SCHEME_FXVEC_SIZE(obj) SCHEME_VEC_SIZE(obj) +#define SCHEME_FXVEC_ELS(obj) SCHEME_VEC_ELS(obj) + +#define SCHEME_ENVBOX_VAL(obj) (*((Scheme_Object **)(obj))) +#define SCHEME_WEAK_BOX_VAL(obj) SCHEME_BOX_VAL(obj) + +#define SCHEME_PTR_VAL(obj) (((Scheme_Small_Object *)(obj))->u.ptr_val) +#define SCHEME_PTR1_VAL(obj) (((Scheme_Simple_Object *)(obj))->u.two_ptr_val.ptr1) +#define SCHEME_PTR2_VAL(obj) (((Scheme_Simple_Object *)(obj))->u.two_ptr_val.ptr2) +#define SCHEME_IPTR_VAL(obj) (((Scheme_Simple_Object *)(obj))->u.ptr_int_val.ptr) +#define SCHEME_LPTR_VAL(obj) (((Scheme_Simple_Object *)(obj))->u.ptr_long_val.ptr) +#define SCHEME_INT1_VAL(obj) (((Scheme_Simple_Object *)(obj))->u.two_int_val.int1) +#define SCHEME_INT2_VAL(obj) (((Scheme_Simple_Object *)(obj))->u.two_int_val.int2) +#define SCHEME_PINT_VAL(obj) (((Scheme_Simple_Object *)(obj))->u.ptr_int_val.pint) +#define SCHEME_PLONG_VAL(obj) (((Scheme_Simple_Object *)(obj))->u.ptr_long_val.pint) + +typedef struct Scheme_Cptr +{ + Scheme_Inclhash_Object so; /* 0x1 => an external pointer (not GCable); 0x2 => has offset */ + void *val; + Scheme_Object *type; +} Scheme_Cptr; +typedef struct Scheme_Offset_Cptr +{ + Scheme_Cptr cptr; + intptr_t offset; +} Scheme_Offset_Cptr; + +#define SCHEME_CPTR_VAL(obj) (((Scheme_Cptr *)(obj))->val) +#define SCHEME_CPTR_TYPE(obj) (((Scheme_Cptr *)(obj))->type) +#define SCHEME_CPTR_OFFSET(obj) (SCHEME_CPTR_HAS_OFFSET(obj) ? ((Scheme_Offset_Cptr *)obj)->offset : 0) +#define SCHEME_CPTR_FLAGS(obj) MZ_OPT_HASH_KEY(&((Scheme_Cptr *)(obj))->so) +#define SCHEME_CPTR_HAS_OFFSET(obj) (SCHEME_CPTR_FLAGS(obj) & 0x2) + +#define SCHEME_SET_IMMUTABLE(obj) ((MZ_OPT_HASH_KEY((Scheme_Inclhash_Object *)(obj)) |= 0x1)) +#define SCHEME_SET_CHAR_STRING_IMMUTABLE(obj) SCHEME_SET_IMMUTABLE(obj) +#define SCHEME_SET_BYTE_STRING_IMMUTABLE(obj) SCHEME_SET_IMMUTABLE(obj) +#define SCHEME_SET_VECTOR_IMMUTABLE(obj) SCHEME_SET_IMMUTABLE(obj) +#define SCHEME_SET_BOX_IMMUTABLE(obj) SCHEME_SET_IMMUTABLE(obj) + +/*========================================================================*/ +/* fast basic Scheme constructor macros */ +/*========================================================================*/ + +#define scheme_make_integer(i) LONG_TO_OBJ ((((uintptr_t)OBJ_TO_LONG(i)) << 1) | 0x1) +#define scheme_make_character(ch) ((((mzchar)ch) < 256) ? scheme_char_constants[(unsigned char)(ch)] : scheme_make_char(ch)) +#define scheme_make_ascii_character(ch) scheme_char_constants[(unsigned char)(ch)] + +#define SCHEME_UCHAR_FIND_SHIFT 8 +#define SCHEME_UCHAR_FIND_HI_MASK 0x1FFF +#define SCHEME_UCHAR_FIND_LO_MASK 0xFF + +#define scheme_uchar_find(table, x) (table[(x >> SCHEME_UCHAR_FIND_SHIFT) & SCHEME_UCHAR_FIND_HI_MASK][x & SCHEME_UCHAR_FIND_LO_MASK]) + +#define SCHEME_ISSPACE_BIT 0x10 + +#define scheme_isblank(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x1) +#define scheme_issymbol(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x2) +#define scheme_ispunc(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x4) +#define scheme_iscontrol(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x8) +#define scheme_isspace(x) ((scheme_uchar_find(scheme_uchar_table, x)) & SCHEME_ISSPACE_BIT) +/* #define scheme_isSOMETHING(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x20) - not yet used */ +#define scheme_isdigit(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x40) +#define scheme_isalpha(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x80) +#define scheme_istitle(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x100) +#define scheme_isupper(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x200) +#define scheme_islower(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x400) +#define scheme_isgraphic(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x800) +#define scheme_iscaseignorable(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x1000) +#define scheme_isspecialcasing(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x2000) +#define scheme_needs_decompose(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x4000) +#define scheme_needs_maybe_compose(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x8000) + +#define scheme_iscased(x) ((scheme_uchar_find(scheme_uchar_table, x)) & 0x700) + +#define scheme_toupper(x) (x + scheme_uchar_ups[scheme_uchar_find(scheme_uchar_cases_table, x)]) +#define scheme_tolower(x) (x + scheme_uchar_downs[scheme_uchar_find(scheme_uchar_cases_table, x)]) +#define scheme_totitle(x) (x + scheme_uchar_titles[scheme_uchar_find(scheme_uchar_cases_table, x)]) +#define scheme_tofold(x) (x + scheme_uchar_folds[scheme_uchar_find(scheme_uchar_cases_table, x)]) +#define scheme_combining_class(x) (scheme_uchar_combining_classes[scheme_uchar_find(scheme_uchar_cases_table, x)]) + +#define scheme_general_category(x) ((scheme_uchar_find(scheme_uchar_cats_table, x)) & 0x1F) +/* Note: 3 bits available in the cats table */ + +/*========================================================================*/ +/* procedure values */ +/*========================================================================*/ + +/* Constants for flags in Scheme_Primitive_[Closed]_Proc. + Do not use them directly. */ +#define SCHEME_PRIM_OPT_MASK (1 | 2) +#define SCHEME_PRIM_IS_PRIMITIVE 4 +#define SCHEME_PRIM_IS_MULTI_RESULT 8 +#define SCHEME_PRIM_IS_CLOSURE 16 +#define SCHEME_PRIM_OTHER_TYPE_MASK (32 | 64 | 128 | 256) + +#define SCHEME_PRIM_OPT_INDEX_SIZE 7 +#define SCHEME_PRIM_OPT_INDEX_SHIFT 9 +#define SCHEME_PRIM_OPT_INDEX_MASK ((1 << SCHEME_PRIM_OPT_INDEX_SIZE) - 1) + +/* Values with SCHEME_PRIM_OPT_MASK, earlier implies later: */ +#define SCHEME_PRIM_OPT_FOLDING 3 +#define SCHEME_PRIM_OPT_IMMEDIATE 2 +#define SCHEME_PRIM_OPT_NONCM 1 + +/* Values with SCHEME_PRIM_OTHER_TYPE_MASK */ +#define SCHEME_PRIM_STRUCT_TYPE_INDEXLESS_GETTER (32 | 256) +#define SCHEME_PRIM_STRUCT_TYPE_CONSTR 128 +#define SCHEME_PRIM_STRUCT_TYPE_SIMPLE_CONSTR (32 | 64 | 128) +#define SCHEME_PRIM_STRUCT_TYPE_INDEXLESS_SETTER 256 +#define SCHEME_PRIM_STRUCT_TYPE_INDEXED_SETTER (128 | 256) +#define SCHEME_PRIM_STRUCT_TYPE_BROKEN_INDEXED_SETTER (32 | 128) +#define SCHEME_PRIM_TYPE_PARAMETER 64 +#define SCHEME_PRIM_TYPE_STRUCT_PROP_GETTER (64 | 128) +#define SCHEME_PRIM_STRUCT_TYPE_STRUCT_PROP_PRED (64 | 128 | 256) +#define SCHEME_PRIM_STRUCT_TYPE_INDEXED_GETTER 32 +#define SCHEME_PRIM_STRUCT_TYPE_PRED (32 | 64) + +#define SCHEME_PRIM_PROC_FLAGS(x) (((Scheme_Prim_Proc_Header *)x)->flags) + +typedef struct Scheme_Object *(Scheme_Prim)(int argc, Scheme_Object *argv[]); + +typedef struct Scheme_Object *(Scheme_Primitive_Closure_Proc)(int argc, struct Scheme_Object *argv[], Scheme_Object *p); + +#define SCHEME_MAX_ARGS 0x3FFFFFFE + +typedef struct { + Scheme_Object so; + unsigned short flags; +} Scheme_Prim_Proc_Header; + +typedef struct { + Scheme_Prim_Proc_Header pp; + Scheme_Primitive_Closure_Proc *prim_val; + const char *name; + mzshort mina; + /* If mina < 0; mina is negated case count minus one for a case-lambda + generated by mzc, where the primitive checks argument arity + itself, and mu.cases is available instead of mu.maxa. */ + union { + mzshort *cases; + mzshort maxa; /* > SCHEME_MAX_ARGS => any number of arguments */ + } mu; +} Scheme_Primitive_Proc; + +typedef struct { + Scheme_Primitive_Proc pp; + mzshort minr, maxr; + /* Never combined with a closure */ +} Scheme_Prim_W_Result_Arity; + +typedef struct Scheme_Primitive_Closure { + Scheme_Primitive_Proc p; + /* The rest is here only if SCHEME_PRIM_IS_CLOSURE + is set in p.pp.flags. */ +#ifdef MZ_PRECISE_GC + mzshort count; +#endif + Scheme_Object *val[mzFLEX_ARRAY_DECL]; +} Scheme_Primitive_Closure; + +#define SCHEME_PRIM_CLOSURE_ELS(p) ((Scheme_Primitive_Closure *)p)->val + +/* ------ Old-style primitive closures ------- */ + +typedef struct Scheme_Object *(Scheme_Closed_Prim)(void *d, int argc, struct Scheme_Object *argv[]); + +typedef struct { + Scheme_Prim_Proc_Header pp; + Scheme_Closed_Prim *prim_val; + void *data; + const char *name; + mzshort mina, maxa; /* mina == -2 => maxa is negated case count and + record is a Scheme_Closed_Case_Primitive_Proc */ +} Scheme_Closed_Primitive_Proc; + +typedef struct { + Scheme_Closed_Primitive_Proc p; + mzshort *cases; +} Scheme_Closed_Case_Primitive_Proc; + +typedef struct { + Scheme_Closed_Primitive_Proc p; + mzshort minr, maxr; +} Scheme_Closed_Prim_W_Result_Arity; + +/* ------------------------------------------------- */ +/* mzc closure glue + The following are used by mzc to implement closures. +*/ + +#define _scheme_fill_prim_closure(rec, cfunc, nm, amin, amax, flgs) \ + ((rec)->pp.so.type = scheme_prim_type, \ + (rec)->prim_val = cfunc, \ + (rec)->name = nm, \ + (rec)->mina = amin, \ + (rec)->mu.maxa = (amax == -1 ? SCHEME_MAX_ARGS + 1 : amax), \ + (rec)->pp.flags = flgs, \ + rec) + +#ifdef MZ_PRECISE_GC +# define _scheme_fill_prim_closure_post(rec, cfunc, nm, amin, amax, flgs, ln) \ + ((rec)->count = ln, \ + _scheme_fill_prim_closure(&(rec)->p, cfunc, nm, amin, amax, \ + flgs | SCHEME_PRIM_IS_CLOSURE)) +#else +# define _scheme_fill_prim_closure_post(rec, cfunc, nm, amin, amax, flgs, ln) \ + _scheme_fill_prim_closure(&(rec)->p, cfunc, nm, amin, amax, flgs) +#endif + +#define _scheme_fill_prim_case_closure(rec, cfunc, nm, ccount, cses, flgs) \ + ((rec)->pp.so.type = scheme_prim_type, \ + (rec)->prim_val = cfunc, \ + (rec)->name = nm, \ + (rec)->mina = -(ccount+1), \ + (rec)->pp.flags = flgs, \ + (rec)->mu.cases = cses, \ + rec) + +#ifdef MZ_PRECISE_GC +# define _scheme_fill_prim_case_closure_post(rec, cfunc, nm, ccount, cses, flgs, ln) \ + ((rec)->count = ln, \ + _scheme_fill_prim_case_closure(&((rec)->p), cfunc, nm, ccount, cses, \ + flgs | SCHEME_PRIM_IS_CLOSURE)) +#else +# define _scheme_fill_prim_case_closure_post(rec, cfunc, nm, ccount, cses, flgs, ln) \ + _scheme_fill_prim_case_closure(&((rec)->p), cfunc, nm, ccount, cses, flgs) +#endif + +/* ------------------------------------------------- */ + +#define SCHEME_PROCP(obj) (!SCHEME_INTP(obj) && ((_SCHEME_TYPE(obj) >= scheme_prim_type) && (_SCHEME_TYPE(obj) <= scheme_proc_chaperone_type))) +#define SCHEME_SYNTAXP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_primitive_syntax_type) +#define SCHEME_PRIMP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_prim_type) +#define SCHEME_CLSD_PRIMP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_closed_prim_type) +#define SCHEME_CONTP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_cont_type) +#define SCHEME_ECONTP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_escaping_cont_type) +#define SCHEME_CONT_MARK_SETP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_cont_mark_set_type) +#define SCHEME_PROC_STRUCTP(obj) SAME_TYPE(SCHEME_TYPE(obj), scheme_proc_struct_type) +#define SCHEME_CLOSUREP(obj) (SAME_TYPE(SCHEME_TYPE(obj), scheme_closure_type) || SAME_TYPE(SCHEME_TYPE(obj), scheme_case_closure_type)) + +#define SCHEME_PRIM(obj) (((Scheme_Primitive_Proc *)(obj))->prim_val) +#define SCHEME_CLSD_PRIM(obj) (((Scheme_Closed_Primitive_Proc *)(obj))->prim_val) +#define SCHEME_CLSD_PRIM_DATA(obj) (((Scheme_Closed_Primitive_Proc *)(obj))->data) +#define SCHEME_RAW_CLOS_FUNC(obj) ((Scheme_Closure_Func)SCHEME_CAR(obj)) +#define SCHEME_RAW_CLOS_DATA(obj) SCHEME_CDR(obj) + +/*========================================================================*/ +/* hash tables and environments */ +/*========================================================================*/ + +typedef struct Scheme_Hash_Table +{ + Scheme_Inclhash_Object iso; /* 0x1 flag => print as opaque (e.g., exports table); 0x2 => misc (e.g., top-level multi_scopes) */ + intptr_t size; /* power of 2 */ + intptr_t count; + Scheme_Object **keys; + Scheme_Object **vals; + void (*make_hash_indices)(void *v, intptr_t *h1, intptr_t *h2); + int (*compare)(void *v1, void *v2); + Scheme_Object *mutex; + intptr_t mcount; /* number of non-NULL keys, >= count (which is non-NULL vals) */ +} Scheme_Hash_Table; + +typedef struct Scheme_Hash_Tree Scheme_Hash_Tree; + +typedef struct Scheme_Bucket +{ + Scheme_Object so; + void *val; + char *key; +} Scheme_Bucket; + +typedef struct Scheme_Bucket_Table +{ + Scheme_Object so; + intptr_t size; /* power of 2 */ + intptr_t count; + Scheme_Bucket **buckets; + char weak; /* 1 => normal weak, 2 => late weak */ + char with_home; + void (*make_hash_indices)(void *v, intptr_t *h1, intptr_t *h2); + int (*compare)(void *v1, void *v2); + Scheme_Object *mutex; +} Scheme_Bucket_Table; + +/* Hash tablekey types, used with scheme_hash_table */ +enum { + SCHEME_hash_string, + SCHEME_hash_ptr, + SCHEME_hash_weak_ptr, + SCHEME_hash_late_weak_ptr +}; + +enum { + SCHEME_hashtr_eq, + SCHEME_hashtr_equal, + SCHEME_hashtr_eqv +}; + +typedef struct Scheme_Env Scheme_Env; + +#define SCHEME_VAR_BUCKET(obj) ((Scheme_Bucket *)(obj)) + +/*========================================================================*/ +/* setjmpup (continuation) support */ +/*========================================================================*/ + +#ifdef USE_MZ_SETJMP +# if defined(_WIN64) +# define USE_MZ_SETJMP_INDIRECT +typedef intptr_t mz_pre_jmp_buf[31]; +# else +typedef intptr_t mz_pre_jmp_buf[8]; +# endif +#else +# define mz_pre_jmp_buf jmp_buf +#endif + +#ifdef MZ_USE_JIT +typedef struct { + mz_pre_jmp_buf jb; + uintptr_t stack_frame; /* declared as `uintptr_t' to hide pointer from 3m xform */ +} mz_one_jit_jmp_buf; +typedef mz_one_jit_jmp_buf mz_jit_jmp_buf[1]; +#else +# define mz_jit_jmp_buf mz_pre_jmp_buf +#endif + +#ifdef MZ_PRECISE_GC +typedef struct { + XFORM_CAN_IGNORE mz_jit_jmp_buf jb; + intptr_t gcvs; /* declared as `intptr_t' to hide pointer from 3m xform */ + intptr_t gcvs_cnt; +} mz_jmp_buf; +#else +# define mz_jmp_buf mz_jit_jmp_buf +#endif + +/* Like setjmp & longjmp, but you can jmp to a deeper stack position */ +/* Initialize a Scheme_Jumpup_Buf record before using it */ +typedef struct Scheme_Jumpup_Buf { + void *stack_from, *stack_copy; + intptr_t stack_size, stack_max_size; + struct Scheme_Cont *cont; /* for sharing continuation tails */ + mz_jmp_buf buf; +#ifdef MZ_PRECISE_GC + void *gc_var_stack; + void *external_stack; +#endif +} Scheme_Jumpup_Buf; + +typedef struct Scheme_Jumpup_Buf_Holder { + Scheme_Type type; /* for precise GC only */ + Scheme_Jumpup_Buf buf; +} Scheme_Jumpup_Buf_Holder; + +typedef struct Scheme_Continuation_Jump_State { + struct Scheme_Object *jumping_to_continuation; + struct Scheme_Object *alt_full_continuation; + Scheme_Object *val; /* or **vals */ + mzshort num_vals; + char is_kill, is_escape, skip_dws; +} Scheme_Continuation_Jump_State; + +#ifdef USE_MZ_SETJMP_INDIRECT +/* Needed to avoid a direct reference to scheme_mz_setjmp, + which might be implemented in assembly and incompatible + with delayloading: */ +typedef int (*Scheme_Setjmp_Proc)(mz_pre_jmp_buf); +# ifndef MZ_XFORM +# define scheme_call_mz_setjmp(s) ((scheme_get_mz_setjmp())(s)) +# else +# define scheme_call_mz_setjmp(s) scheme_mz_setjmp_post_xform(s) +# endif +#else +# ifdef USE_MZ_SETJMP +# define scheme_call_mz_setjmp(s) scheme_mz_setjmp(s) +# endif +typedef int (*Scheme_Setjmp_Proc)(void*); +#endif + +/* A mark position is in odd number, so that it can be + viewed as a pointer (i.e., a fixnum): */ +#define MZ_MARK_POS_TYPE intptr_t +/* A mark "pointer" is an offset into the stack: */ +#define MZ_MARK_STACK_TYPE intptr_t + +typedef struct Scheme_Cont_Frame_Data { + MZ_MARK_POS_TYPE cont_mark_pos; + MZ_MARK_STACK_TYPE cont_mark_stack; + void *cache; +} Scheme_Cont_Frame_Data; + +/*========================================================================*/ +/* threads */ +/*========================================================================*/ + +#ifdef MZ_PRECISE_GC +# ifdef INCLUDE_WITHOUT_PATHS +# include "schgc2obj.h" +# else +# include "../gc2/gc2_obj.h" +# endif +#endif + +typedef void (Scheme_Close_Custodian_Client)(Scheme_Object *o, void *data); +typedef void (*Scheme_Exit_Closer_Func)(Scheme_Object *, Scheme_Close_Custodian_Client *, void *); +typedef Scheme_Object *(*Scheme_Custodian_Extractor)(Scheme_Object *o); + +#ifdef MZ_PRECISE_GC +typedef struct Scheme_Object Scheme_Custodian_Reference; +#else +typedef struct Scheme_Custodian *Scheme_Custodian_Reference; +#endif + +typedef struct Scheme_Custodian Scheme_Custodian; +typedef Scheme_Bucket_Table Scheme_Thread_Cell_Table; +typedef struct Scheme_Config Scheme_Config; +typedef struct Scheme_Plumber Scheme_Plumber; + +typedef int (*Scheme_Ready_Fun)(Scheme_Object *o); +typedef void (*Scheme_Needs_Wakeup_Fun)(Scheme_Object *, void *); +typedef Scheme_Object *(*Scheme_Sync_Sema_Fun)(Scheme_Object *, int *repost); +typedef int (*Scheme_Sync_Filter_Fun)(Scheme_Object *); + +/* The Scheme_Thread structure represents a Racket thread. */ + +typedef struct Scheme_Thread { + Scheme_Object so; + + struct Scheme_Thread *next; + struct Scheme_Thread *prev; + + struct Scheme_Thread_Set *t_set_parent; + Scheme_Object *t_set_next; + Scheme_Object *t_set_prev; + + mz_jmp_buf *error_buf; + Scheme_Continuation_Jump_State cjs; + struct Scheme_Meta_Continuation *decompose_mc; /* set during a jump */ + + Scheme_Thread_Cell_Table *cell_values; + Scheme_Config *init_config; + + Scheme_Object *init_break_cell; + int can_break_at_swap; + + Scheme_Object **runstack; + Scheme_Object **runstack_start; + intptr_t runstack_size; + struct Scheme_Saved_Stack *runstack_saved; + Scheme_Object **runstack_tmp_keep; + + Scheme_Object **spare_runstack; /* in case of bouncing, we keep a recently + released runstack; it's dropped on GC, though */ + intptr_t spare_runstack_size; + + struct Scheme_Thread **runstack_owner; + struct Scheme_Saved_Stack *runstack_swapped; + + MZ_MARK_POS_TYPE cont_mark_pos; /* depth of the continuation chain */ + MZ_MARK_STACK_TYPE cont_mark_stack; /* current mark stack position */ + struct Scheme_Cont_Mark **cont_mark_stack_segments; + intptr_t cont_mark_seg_count; + intptr_t cont_mark_stack_bottom; /* for restored delimited continuations */ + intptr_t cont_mark_pos_bottom; /* for splicing cont marks in meta continuations */ + + struct Scheme_Thread **cont_mark_stack_owner; + struct Scheme_Cont_Mark *cont_mark_stack_swapped; + + struct Scheme_Prompt *meta_prompt; /* a pseudo-prompt */ + + struct Scheme_Meta_Continuation *meta_continuation; + struct Scheme_Prompt *acting_barrier_prompt; + + intptr_t engine_weight; + + void *stack_start; /* This is the C stack base of the thread, which + corresponds to the starting stack address for + paging out the thread, and in 3m corresponds to + the starting stack address for GC marking. In non-3m, + it can be 0, which means that the deepest (non-main) + thread starting address should be used. This value will + change when a continuation is applied under a prompt, + and it will be changed on stack overflow. */ + void *stack_end; /* The end of the C stack, for determine stack overflow. + Currently, this is the same for all threads. */ + + Scheme_Jumpup_Buf jmpup_buf; /* For jumping back to this thread */ + + struct Scheme_Dynamic_Wind *dw; + int next_meta; /* amount to move forward in the meta-continuaiton chain, starting with dw */ + + int running; + Scheme_Object *suspended_box; /* contains pointer to thread when it's suspended */ + Scheme_Object *resumed_box; /* contains pointer to thread when it's resumed */ + Scheme_Object *dead_box; /* contains non-zero when the thread is dead */ + Scheme_Object *running_box; /* contains pointer to thread when it's running */ + Scheme_Object *sync_box; /* semaphore used for NACK events */ + + struct Scheme_Thread *gc_prep_chain; + + struct Scheme_Thread *nester, *nestee; + + struct future_t *current_ft; + + double sleep_end; /* blocker has starting sleep time */ + int block_descriptor; + Scheme_Object *blocker; /* semaphore or port */ + Scheme_Ready_Fun block_check; + Scheme_Needs_Wakeup_Fun block_needs_wakeup; + char ran_some; + char suspend_to_kill; + + struct Scheme_Thread *return_marks_to; + Scheme_Object *returned_marks; + + struct Scheme_Overflow *overflow; + + struct Scheme_Marshal_Tables *current_mt; + + struct Optimize_Info *constant_folding; /* compiler hack */ + Scheme_Object *reading_delayed; /* reader hack */ + + Scheme_Object *(*overflow_k)(void); + Scheme_Object *overflow_reply; + + /* content of tail_buffer is zeroed on GC, unless + runstack_tmp_keep is set to tail_buffer */ + Scheme_Object **tail_buffer; + int tail_buffer_size; + + /* values_buffer is used to avoid allocating for `values' + calls. When ku.multiple.array is not the same as + values_buffer, then it can be zeroed at GC points. */ + Scheme_Object **values_buffer; + int values_buffer_size; + + struct { /* used to be a union, but that confuses MZ_PRECISE_GC */ + struct { + Scheme_Object *wait_expr; + } eval; + struct { + Scheme_Object *tail_rator; + Scheme_Object **tail_rands; + intptr_t tail_num_rands; + } apply; + struct { + Scheme_Object **array; + intptr_t count; + } multiple; + struct { + void *p1, *p2, *p3, *p4, *p5; + intptr_t i1, i2, i3, i4; + } k; + } ku; + + /* To pass the current procedure from one chaperone + layer to the next: */ + Scheme_Object *self_for_proc_chaperone; + + short suspend_break; + short external_break; + + /* Racket client can use: */ + void (*on_kill)(struct Scheme_Thread *p); + void *kill_data; + + /* Racket use only: */ + void (*private_on_kill)(void *); + void *private_kill_data; + void **private_kill_next; /* array of three pointers */ + + void **user_tls; + int user_tls_size; + + /* save thread-specific GMP state: */ + intptr_t gmp_tls[6]; + void *gmp_tls_data; + + intptr_t accum_process_msec; + intptr_t current_start_process_msec; + + struct Scheme_Thread_Custodian_Hop *mr_hop; + Scheme_Custodian_Reference *mref; + Scheme_Object *extra_mrefs; /* More owning custodians */ + Scheme_Object *transitive_resumes; /* A hash table of running-boxes */ + + Scheme_Object *name; + + Scheme_Object *mbox_first; + Scheme_Object *mbox_last; + Scheme_Object *mbox_sema; + + long saved_errno; + + int futures_slow_path_tracing; + +#ifdef MZ_PRECISE_GC + struct GC_Thread_Info *gc_info; /* managed by the GC */ + void *place_channel_msg_in_flight; + void *place_channel_msg_chain_in_flight; +#endif + +} Scheme_Thread; + +#include "schthread.h" + +#if !SCHEME_DIRECT_EMBEDDED +# ifdef LINK_EXTENSIONS_BY_TABLE +# define scheme_current_thread (*scheme_current_thread_ptr) +# endif +#endif + +typedef void (*Scheme_Kill_Action_Func)(void *); + +#define ESCAPE_BLOCK(return_code) \ + thread = scheme_get_current_thread(); \ + savebuf = thread->error_buf; \ + thread->error_buf = &newbuf; \ + thread = NULL; \ + if (scheme_setjmp(newbuf)) \ + { \ + thread = scheme_get_current_thread(); \ + thread->error_buf = savebuf; \ + scheme_clear_escape(); \ + return return_code; \ + } + +# define BEGIN_ESCAPEABLE(func, data) \ + { mz_jmp_buf * volatile savebuf, newbuf; \ + Scheme_Thread *thread; \ + thread = scheme_get_current_thread(); \ + scheme_push_kill_action((Scheme_Kill_Action_Func)func, (void *)data); \ + savebuf = thread->error_buf; \ + thread->error_buf = &newbuf; \ + thread = NULL; \ + if (scheme_setjmp(newbuf)) { \ + scheme_pop_kill_action(); \ + thread = scheme_get_current_thread(); \ + if (!thread->cjs.skip_dws) { \ + func(data); \ + } \ + scheme_longjmp(*savebuf, 1); \ + } else { +# define END_ESCAPEABLE() \ + thread = scheme_get_current_thread(); \ + scheme_pop_kill_action(); \ + thread->error_buf = savebuf; \ + thread = NULL; } } + +typedef int (*Scheme_Frozen_Stack_Proc)(void *); + +/*========================================================================*/ +/* parameters */ +/*========================================================================*/ + +enum { + MZCONFIG_ENV, + MZCONFIG_INPUT_PORT, + MZCONFIG_OUTPUT_PORT, + MZCONFIG_ERROR_PORT, + + MZCONFIG_ERROR_DISPLAY_HANDLER, + MZCONFIG_ERROR_PRINT_VALUE_HANDLER, + + MZCONFIG_EXIT_HANDLER, + + MZCONFIG_INIT_EXN_HANDLER, + + MZCONFIG_PRINT_HANDLER, + MZCONFIG_PROMPT_READ_HANDLER, + MZCONFIG_READ_HANDLER, + MZCONFIG_READ_INPUT_PORT_HANDLER, + + MZCONFIG_CASE_SENS, + MZCONFIG_CAN_READ_PIPE_QUOTE, + + MZCONFIG_PRINT_GRAPH, + MZCONFIG_PRINT_STRUCT, + MZCONFIG_PRINT_BOX, + MZCONFIG_PRINT_VEC_SHORTHAND, + MZCONFIG_PRINT_HASH_TABLE, + MZCONFIG_PRINT_UNREADABLE, + MZCONFIG_PRINT_PAIR_CURLY, + MZCONFIG_PRINT_MPAIR_CURLY, + MZCONFIG_PRINT_SYNTAX_WIDTH, + MZCONFIG_PRINT_READER, + MZCONFIG_PRINT_LONG_BOOLEAN, + MZCONFIG_PRINT_AS_QQ, + + MZCONFIG_ERROR_PRINT_WIDTH, + MZCONFIG_ERROR_PRINT_CONTEXT_LENGTH, + + MZCONFIG_ERROR_ESCAPE_HANDLER, + + MZCONFIG_EXE_YIELD_HANDLER, + + MZCONFIG_ALLOW_SET_UNDEFINED, + MZCONFIG_COMPILE_MODULE_CONSTS, + MZCONFIG_USE_JIT, + MZCONFIG_DISALLOW_INLINE, + MZCONFIG_COMPILE_TARGET_MACHINE, + + MZCONFIG_CUSTODIAN, + MZCONFIG_INSPECTOR, + MZCONFIG_CODE_INSPECTOR, + MZCONFIG_PLUMBER, + + MZCONFIG_LOAD_DIRECTORY, + MZCONFIG_WRITE_DIRECTORY, + + MZCONFIG_PORT_PRINT_HANDLER, + + MZCONFIG_LOAD_EXTENSION_HANDLER, + + MZCONFIG_CURRENT_DIRECTORY, + MZCONFIG_CURRENT_ENV_VARS, + MZCONFIG_FORCE_DELETE_PERMS, + + MZCONFIG_CURRENT_USER_DIRECTORY, + + MZCONFIG_RANDOM_STATE, + + MZCONFIG_CURRENT_MODULE_SRC, + + MZCONFIG_ERROR_PRINT_SRCLOC, + + MZCONFIG_CMDLINE_ARGS, + + MZCONFIG_LOCALE, + + MZCONFIG_SECURITY_GUARD, + + MZCONFIG_PORT_COUNT_LINES, + + MZCONFIG_SCHEDULER_RANDOM_STATE, + + MZCONFIG_THREAD_SET, + MZCONFIG_THREAD_INIT_STACK_SIZE, + + MZCONFIG_SUBPROC_CUSTODIAN_MODE, + MZCONFIG_SUBPROC_GROUP_ENABLED, + + MZCONFIG_LOAD_DELAY_ENABLED, + MZCONFIG_DELAY_LOAD_INFO, + + MZCONFIG_LOGGER, + + __MZCONFIG_BUILTIN_COUNT__ +}; + +/*========================================================================*/ +/* ports */ +/*========================================================================*/ + +typedef struct Scheme_Input_Port Scheme_Input_Port; +typedef struct Scheme_Output_Port Scheme_Output_Port; +typedef struct Scheme_Port Scheme_Port; + +typedef intptr_t (*Scheme_Get_String_Fun)(Scheme_Input_Port *port, + char *buffer, intptr_t offset, intptr_t size, + int nonblock, Scheme_Object *unless); +typedef intptr_t (*Scheme_Peek_String_Fun)(Scheme_Input_Port *port, + char *buffer, intptr_t offset, intptr_t size, + Scheme_Object *skip, + int nonblock, Scheme_Object *unless); +typedef Scheme_Object *(*Scheme_Progress_Evt_Fun)(Scheme_Input_Port *port); +typedef int (*Scheme_Peeked_Read_Fun)(Scheme_Input_Port *port, + intptr_t amount, + Scheme_Object *unless_evt, + Scheme_Object *target_ch); +typedef int (*Scheme_In_Ready_Fun)(Scheme_Input_Port *port); +typedef void (*Scheme_Close_Input_Fun)(Scheme_Input_Port *port); +typedef void (*Scheme_Need_Wakeup_Input_Fun)(Scheme_Input_Port *, void *); + +typedef Scheme_Object *(*Scheme_Location_Fun)(Scheme_Port *); +typedef void (*Scheme_Count_Lines_Fun)(Scheme_Port *); +typedef int (*Scheme_Buffer_Mode_Fun)(Scheme_Port *, int m); + +typedef Scheme_Object *(*Scheme_Write_String_Evt_Fun)(Scheme_Output_Port *, + const char *str, intptr_t offset, intptr_t size); +typedef intptr_t (*Scheme_Write_String_Fun)(Scheme_Output_Port *, + const char *str, intptr_t offset, intptr_t size, + int rarely_block, int enable_break); +typedef int (*Scheme_Out_Ready_Fun)(Scheme_Output_Port *port); +typedef void (*Scheme_Close_Output_Fun)(Scheme_Output_Port *port); +typedef void (*Scheme_Need_Wakeup_Output_Fun)(Scheme_Output_Port *, void *); +typedef Scheme_Object *(*Scheme_Write_Special_Evt_Fun)(Scheme_Output_Port *, Scheme_Object *); +typedef int (*Scheme_Write_Special_Fun)(Scheme_Output_Port *, Scheme_Object *, + int nonblock); + +struct Scheme_Port +{ + Scheme_Object so; + char count_lines, was_cr; + intptr_t position, readpos, lineNumber, charsSinceNewline; + intptr_t column, oldColumn; /* column tracking with one tab/newline ungetc */ + int utf8state; + Scheme_Location_Fun location_fun; + Scheme_Count_Lines_Fun count_lines_fun; + Scheme_Buffer_Mode_Fun buffer_mode_fun; + Scheme_Object *position_redirect; /* for `file-position' */ +}; + +struct Scheme_Input_Port +{ + struct Scheme_Port p; + char slow; /* 0 => no line count, no ungotten, etc.: can call get_string_fun directly */ + char closed, pending_eof; + Scheme_Object *sub_type; + Scheme_Object *closed_evt; + Scheme_Custodian_Reference *mref; + void *port_data; + Scheme_Get_String_Fun get_string_fun; + Scheme_Peek_String_Fun peek_string_fun; + Scheme_Progress_Evt_Fun progress_evt_fun; + Scheme_Peeked_Read_Fun peeked_read_fun; + Scheme_In_Ready_Fun byte_ready_fun; + Scheme_Close_Input_Fun close_fun; + Scheme_Need_Wakeup_Input_Fun need_wakeup_fun; + Scheme_Object *read_handler; + Scheme_Object *name; + Scheme_Object *peeked_read, *peeked_write; + Scheme_Object *progress_evt, *input_lock, *input_giveup, *input_extras, *input_extras_ready; + unsigned char ungotten[24]; + int ungotten_count; + Scheme_Object *special, *ungotten_special; + Scheme_Object *unless, *unless_cache; + struct Scheme_Output_Port *output_half; +#ifdef WINDOWS_FILE_HANDLES + char *bufwidths; /* to track CRLF => LF conversions in the buffer */ +#endif +}; + +#define SCHEME_INPORT_VAL(i) (((Scheme_Input_Port *)i)->port_data) + +struct Scheme_Output_Port +{ + struct Scheme_Port p; + short closed; + Scheme_Object *sub_type; + Scheme_Object *closed_evt; + Scheme_Custodian_Reference *mref; + void *port_data; + Scheme_Write_String_Evt_Fun write_string_evt_fun; + Scheme_Write_String_Fun write_string_fun; + Scheme_Close_Output_Fun close_fun; + Scheme_Out_Ready_Fun ready_fun; + Scheme_Need_Wakeup_Output_Fun need_wakeup_fun; + Scheme_Write_Special_Evt_Fun write_special_evt_fun; + Scheme_Write_Special_Fun write_special_fun; + intptr_t pos; + Scheme_Object *name; + Scheme_Object *display_handler; + Scheme_Object *write_handler; + Scheme_Object *print_handler; + struct Scheme_Input_Port *input_half; +}; + +#define SCHEME_OUTPORT_VAL(o) (((Scheme_Output_Port *)o)->port_data) + +#define SCHEME_SPECIAL (-2) +#define SCHEME_UNLESS_READY (-3) + +/*========================================================================*/ +/* exceptions */ +/*========================================================================*/ + +/* This file includes the MZEXN constants */ +#ifdef INCLUDE_WITHOUT_PATHS +# include "schexn.h" +#else +# include "../src/schexn.h" +#endif + +#define SCHEME_LOG_FATAL 1 +#define SCHEME_LOG_ERROR 2 +#define SCHEME_LOG_WARNING 3 +#define SCHEME_LOG_INFO 4 +#define SCHEME_LOG_DEBUG 5 + +typedef struct Scheme_Logger Scheme_Logger; + +/*========================================================================*/ +/* security */ +/*========================================================================*/ + +#define SCHEME_GUARD_FILE_READ 0x1 +#define SCHEME_GUARD_FILE_WRITE 0x2 +#define SCHEME_GUARD_FILE_EXECUTE 0x4 +#define SCHEME_GUARD_FILE_DELETE 0x8 +#define SCHEME_GUARD_FILE_EXISTS 0x10 + +/*========================================================================*/ +/* evaluation */ +/*========================================================================*/ + +/* Exploit the fact that these should never be dereferenced: */ +#ifndef FIRST_TWO_BYTES_ARE_LEGAL_ADDRESSES +# define MZ_EVAL_WAITING_CONSTANT ((Scheme_Object *)0x2) +# define MZ_APPLY_WAITING_CONSTANT ((Scheme_Object *)0x4) +# define MZ_MULTIPLE_VALUES_CONSTANT ((Scheme_Object *)0x6) +#endif + +#ifdef MZ_EVAL_WAITING_CONSTANT +# define SCHEME_EVAL_WAITING MZ_EVAL_WAITING_CONSTANT +# define SCHEME_TAIL_CALL_WAITING MZ_APPLY_WAITING_CONSTANT +# define SCHEME_MULTIPLE_VALUES MZ_MULTIPLE_VALUES_CONSTANT +#else +# define SCHEME_TAIL_CALL_WAITING scheme_tail_call_waiting +# define SCHEME_EVAL_WAITING scheme_eval_waiting +# define SCHEME_MULTIPLE_VALUES scheme_multiple_values +#endif + +#define SCHEME_ASSERT(expr,msg) ((expr) ? 1 : (scheme_signal_error(msg), 0)) + +#ifdef MZ_CAN_ACCESS_THREAD_LOCAL_DIRECTLY +# define mzSCHEME_CURRENT_THREAD scheme_current_thread +#else +# define mzSCHEME_CURRENT_THREAD scheme_get_current_thread() +#endif + +#define scheme_eval_wait_expr (mzSCHEME_CURRENT_THREAD->ku.eval.wait_expr) +#define scheme_tail_rator (mzSCHEME_CURRENT_THREAD->ku.apply.tail_rator) +#define scheme_tail_num_rands (mzSCHEME_CURRENT_THREAD->ku.apply.tail_num_rands) +#define scheme_tail_rands (mzSCHEME_CURRENT_THREAD->ku.apply.tail_rands) +#define scheme_overflow_reply (mzSCHEME_CURRENT_THREAD->overflow_reply) + +#define scheme_error_buf *(mzSCHEME_CURRENT_THREAD->error_buf) +#define scheme_jumping_to_continuation (mzSCHEME_CURRENT_THREAD->cjs.jumping_to_continuation) + +#define scheme_multiple_count (mzSCHEME_CURRENT_THREAD->ku.multiple.count) +#define scheme_multiple_array (mzSCHEME_CURRENT_THREAD->ku.multiple.array) + +#define scheme_setjmpup(b, base, s) scheme_setjmpup_relative(b, base, s, NULL) + +#define scheme_do_eval_w_thread(r,n,e,f,p) scheme_do_eval(r,n,e,f) +#define scheme_apply_wp(r,n,a,p) scheme_apply(r,n,a) +#define scheme_apply_multi_wp(r,n,a,p) scheme_apply_multi(r,n,a) +#define scheme_apply_eb_wp(r,n,a,p) scheme_apply_eb(r,n,a) +#define scheme_apply_multi_eb_wp(r,n,a,p) scheme_apply_multi_eb(r,n,a) + +#define _scheme_apply(r,n,rs) scheme_do_eval(r,n,rs,1) +#define _scheme_apply_multi(r,n,rs) scheme_do_eval(r,n,rs,-1) +#define _scheme_apply_wp(r,n,rs,p) scheme_do_eval_w_thread(r,n,rs,1,p) +#define _scheme_apply_multi_wp(r,n,rs,p) scheme_do_eval_w_thread(r,n,rs,-1,p) +#define _scheme_tail_apply scheme_tail_apply +#define _scheme_tail_apply_wp scheme_tail_apply_wp + +#define _scheme_tail_eval scheme_tail_eval +#define _scheme_tail_eval_wp scheme_tail_eval_wp + +#define _scheme_direct_apply_primitive_multi(prim, argc, argv) \ + (((Scheme_Primitive_Proc *)prim)->prim_val(argc, argv, prim)) +#define _scheme_direct_apply_primitive(prim, argc, argv) \ + scheme_check_one_value(_scheme_direct_apply_primitive_multi(prim, argc, argv)) +#define _scheme_direct_apply_primitive_closure_multi(prim, argc, argv) \ + _scheme_direct_apply_primitive_multi(prim, argc, argv) +#define _scheme_direct_apply_primitive_closure(prim, argc, argv) \ + _scheme_direct_apply_primitive(prim, argc, argv) +#define _scheme_direct_apply_closed_primitive_multi(prim, argc, argv) \ + (((Scheme_Closed_Primitive_Proc *)prim)->prim_val(((Scheme_Closed_Primitive_Proc *)prim)->data, argc, argv)) +#define _scheme_direct_apply_closed_primitive(prim, argc, argv) \ + scheme_check_one_value(_scheme_direct_apply_closed_primitive_multi(prim, argc, argv)) + +#define _scheme_force_value(v) ((v == SCHEME_TAIL_CALL_WAITING) ? scheme_force_value(v) : v) + +#define scheme_tail_apply_buffer_wp(n, p) ((p)->tail_buffer) +#define scheme_tail_apply_buffer(n) \ +{ \ + Scheme_Thread *thread; \ + thread = scheme_get_current_thread(); \ + scheme_tail_apply_buffer_wp(n, thread);\ +} + +#define _scheme_tail_apply_no_copy_wp_tcw(f, n, args, p, tcw) (p->ku.apply.tail_rator = f, p->ku.apply.tail_rands = args, p->ku.apply.tail_num_rands = n, tcw) +#define _scheme_tail_apply_no_copy_wp(f, n, args, p) _scheme_tail_apply_no_copy_wp_tcw(f, n, args, p, SCHEME_TAIL_CALL_WAITING) +#define _scheme_tail_apply_no_copy(f, n, args) \ +{ \ + Scheme_Thread *thread; \ + thread = scheme_get_current_thread(); \ + _scheme_tail_apply_no_copy_wp(f, n, args, thread) \ +} + +#define scheme_thread_block_w_thread(t,p) scheme_thread_block(t) + +#if !SCHEME_DIRECT_EMBEDDED +# ifdef LINK_EXTENSIONS_BY_TABLE +# define scheme_fuel_counter (*scheme_fuel_counter_ptr) +# endif +#else +THREAD_LOCAL_DECL(MZ_EXTERN volatile int scheme_fuel_counter); +#endif + +#ifdef FUEL_AUTODECEREMENTS +# define DECREMENT_FUEL(f, p) (f) +#else +# define DECREMENT_FUEL(f, p) (f -= (p)) +#endif + +#define SCHEME_USE_FUEL(n) \ + { if (DECREMENT_FUEL(scheme_fuel_counter, n) <= 0) { scheme_out_of_fuel(); }} + +#if SCHEME_DIRECT_EMBEDDED +MZ_EXTERN Scheme_Object *scheme_eval_waiting; +#define scheme_tail_eval(obj) \ + (scheme_eval_wait_expr = obj, SCHEME_EVAL_WAITING) +#endif + +#define scheme_break_waiting(p) (p->external_break) + +#ifndef USE_MZ_SETJMP +# ifdef USE_UNDERSCORE_SETJMP +# define scheme_mz_longjmp(b, v) _longjmp(b, v) +# define scheme_call_mz_setjmp(b) _setjmp(b) +# else +# define scheme_mz_longjmp(b, v) longjmp(b, v) +# define scheme_call_mz_setjmp(b) setjmp(b) +# endif +#endif + +#ifdef MZ_USE_JIT +MZ_EXTERN MZ_NORETURN void scheme_jit_longjmp(mz_jit_jmp_buf b, int v); +MZ_EXTERN void scheme_jit_setjmp_prepare(mz_jit_jmp_buf b); +# define scheme_jit_setjmp(b) (scheme_jit_setjmp_prepare(b), scheme_call_mz_setjmp((b)->jb)) +#else +# define scheme_jit_longjmp(b, v) scheme_mz_longjmp(b, v) +# define scheme_jit_setjmp(b) scheme_call_mz_setjmp(b) +#endif + +#ifdef MZ_PRECISE_GC +/* Need to make sure that a __gc_var_stack__ is always available where + setjmp & longjmp are used. */ +# define scheme_longjmp(b, v) (((intptr_t *)(void*)((b).gcvs))[1] = (b).gcvs_cnt, \ + GC_variable_stack = (void **)(void*)(b).gcvs, \ + scheme_jit_longjmp((b).jb, v)) +# define scheme_setjmp(b) ((b).gcvs = (intptr_t)__gc_var_stack__, \ + (b).gcvs_cnt = XFORM_CURRENT_COUNT, \ + scheme_jit_setjmp((b).jb)) +# ifndef MZ_XFORM +# define XFORM_CURRENT_COUNT (intptr_t)(__gc_var_stack__[1]) +# endif +#else +# define scheme_longjmp(b, v) scheme_jit_longjmp(b, v) +# define scheme_setjmp(b) scheme_jit_setjmp(b) +#endif + +/*========================================================================*/ +/* memory management macros */ +/*========================================================================*/ + +/* Allocation */ +#define scheme_alloc_object() \ + ((Scheme_Object *) scheme_malloc_small_tagged(sizeof(Scheme_Simple_Object))) +#define scheme_alloc_small_object() \ + ((Scheme_Object *) scheme_malloc_small_tagged(sizeof(Scheme_Small_Object))) +#define scheme_alloc_stubborn_object() \ + ((Scheme_Object *) scheme_malloc_stubborn_tagged(sizeof(Scheme_Simple_Object))) +#define scheme_alloc_stubborn_small_object() \ + ((Scheme_Object *) scheme_malloc_stubborn_tagged(sizeof(Scheme_Small_Object))) +#define scheme_alloc_eternal_object() \ + ((Scheme_Object *) scheme_malloc_eternal_tagged(sizeof(Scheme_Simple_Object))) +#define scheme_alloc_eternal_small_object() \ + ((Scheme_Object *) scheme_malloc_eternal_tagged(sizeof(Scheme_Small_Object))) + +#ifdef SCHEME_NO_GC +void *scheme_malloc(size_t size); +# define scheme_malloc_atomic scheme_malloc +# define scheme_malloc_stubborn scheme_malloc +# define scheme_malloc_uncollectable scheme_malloc +#else +# define scheme_malloc GC_malloc +# define scheme_malloc_atomic GC_malloc_atomic +# ifdef MZ_PRECISE_GC +# define scheme_malloc_stubborn scheme_malloc +# else +# define scheme_malloc_stubborn GC_malloc_stubborn +# define scheme_malloc_uncollectable GC_malloc_uncollectable +# endif +#endif + +#ifdef USE_MEMORY_TRACING +# define USE_TAGGED_ALLOCATION +# define MEMORY_COUNTING_ON +#endif + +#ifdef MZ_PRECISE_GC +# ifndef GC2_EXTERN +# define GC2_EXTERN MZ_EXTERN +# endif +# ifdef INCLUDE_WITHOUT_PATHS +# if !SCHEME_DIRECT_EMBEDDED +# define GC2_JUST_MACROS_AND_TYPEDEFS +# endif +# include "schemegc2.h" +# else +# include "../gc2/gc2.h" +# endif +# define scheme_malloc_tagged GC_malloc_one_tagged +# define scheme_malloc_small_tagged(s) GC_malloc_one_small_tagged(gcWORDS_TO_BYTES(gcBYTES_TO_WORDS(s))) +# define scheme_malloc_small_dirty_tagged(s) GC_malloc_one_small_dirty_tagged(gcWORDS_TO_BYTES(gcBYTES_TO_WORDS(s))) +# define scheme_malloc_small_atomic_tagged(s) GC_malloc_small_atomic_tagged(gcWORDS_TO_BYTES(gcBYTES_TO_WORDS(s))) +# define scheme_malloc_array_tagged GC_malloc_array_tagged +# define scheme_malloc_atomic_tagged GC_malloc_atomic_tagged +# define scheme_malloc_stubborn_tagged GC_malloc_one_tagged +# define scheme_malloc_eternal_tagged GC_malloc_atomic_uncollectable +# define scheme_malloc_uncollectable_tagged >> error << +# define scheme_malloc_envunbox GC_malloc +# define scheme_malloc_weak GC_malloc_weak +# define scheme_malloc_weak_tagged GC_malloc_one_weak_tagged +# define scheme_malloc_allow_interior GC_malloc_allow_interior +# define scheme_malloc_atomic_allow_interior GC_malloc_atomic_allow_interior +#else +# ifdef USE_TAGGED_ALLOCATION +extern void *scheme_malloc_tagged(size_t); +# define scheme_malloc_array_tagged scheme_malloc +# define scheme_malloc_small_tagged scheme_malloc +extern void *scheme_malloc_atomic_tagged(size_t); +extern void *scheme_malloc_stubborn_tagged(size_t); +extern void *scheme_malloc_eternal_tagged(size_t); +extern void *scheme_malloc_uncollectable_tagged(size_t); +extern void *scheme_malloc_envunbox(size_t); +# else +# define scheme_malloc_tagged scheme_malloc +# define scheme_malloc_small_tagged scheme_malloc +# define scheme_malloc_array_tagged scheme_malloc +# define scheme_malloc_atomic_tagged scheme_malloc_atomic +# define scheme_malloc_stubborn_tagged scheme_malloc_stubborn +# define scheme_malloc_eternal_tagged scheme_malloc_eternal +# define scheme_malloc_uncollectable_tagged scheme_malloc_uncollectable +# define scheme_malloc_envunbox scheme_malloc +# endif +# define scheme_malloc_small_dirty_tagged scheme_malloc_small_tagged +# define scheme_malloc_allow_interior scheme_malloc +# define scheme_malloc_atomic_allow_interior scheme_malloc_atomic +# define scheme_malloc_small_atomic_tagged scheme_malloc_atomic_tagged +#endif + +#ifdef MZ_PRECISE_GC +# define MZ_GC_DECL_REG(size) void *__gc_var_stack__[size+2] = { (void *)0, (void *)size }; +# define MZ_GC_VAR_IN_REG(x, v) (__gc_var_stack__[x+2] = (void *)&(v)) +# define MZ_GC_ARRAY_VAR_IN_REG(x, v, l) (__gc_var_stack__[x+2] = (void *)0, \ + __gc_var_stack__[x+3] = (void *)&(v), \ + __gc_var_stack__[x+4] = (void *)l) +# define MZ_GC_NO_VAR_IN_REG(x) (__gc_var_stack__[x+2] = NULL) +# define MZ_GC_REG() (__gc_var_stack__[0] = GC_variable_stack, \ + GC_variable_stack = __gc_var_stack__) +# define MZ_GC_UNREG() (GC_variable_stack = (void **)__gc_var_stack__[0]) +#else +# define MZ_GC_DECL_REG(size) /* empty */ +# define MZ_GC_VAR_IN_REG(x, v) /* empty */ +# define MZ_GC_ARRAY_VAR_IN_REG(x, v, l) /* empty */ +# define MZ_GC_NO_VAR_IN_REG(x) /* empty */ +# define MZ_GC_REG() /* empty */ +# define MZ_GC_UNREG() /* empty */ +#endif + +#define SCHEME_GC_SHAPE_TERM 0 +#define SCHEME_GC_SHAPE_PTR_OFFSET 1 +#define SCHEME_GC_SHAPE_ADD_SIZE 2 + +/*========================================================================*/ +/* embedding configuration and hooks */ +/*========================================================================*/ + +#if SCHEME_DIRECT_EMBEDDED + +#if defined(_IBMR2) +MZ_EXTERN intptr_t scheme_stackbottom; +#endif + +MZ_EXTERN int scheme_defining_primitives; + +/* These flags must be set before Racket is started: */ +MZ_EXTERN int scheme_case_sensitive; /* Defaults to 0 */ +MZ_EXTERN int scheme_no_keywords; /* Defaults to 0 */ +MZ_EXTERN int scheme_allow_set_undefined; /* Defaults to 0 */ +MZ_EXTERN int scheme_square_brackets_are_parens; /* Defaults to 1 */ +MZ_EXTERN int scheme_curly_braces_are_parens; /* Defaults to 1 */ +MZ_EXTERN int scheme_hash_percent_syntax_only; /* Defaults to 0 */ +MZ_EXTERN int scheme_hash_percent_globals_only; /* Defaults to 0 */ +MZ_EXTERN int scheme_binary_mode_stdio; /* Windows-specific; Defaults to 0 */ +MZ_EXTERN int scheme_startup_use_jit; /* Defaults to 1 */ +MZ_EXTERN int scheme_startup_compile_machine_independent; /* Defaults to 0 */ +MZ_EXTERN int scheme_ignore_user_paths; /* Defaults to 0 */ +MZ_EXTERN int scheme_ignore_link_paths; /* Defaults to 0 */ + +MZ_EXTERN void scheme_set_case_sensitive(int); +MZ_EXTERN void scheme_set_allow_set_undefined(int); +MZ_EXTERN void scheme_set_binary_mode_stdio(int); +MZ_EXTERN void scheme_set_startup_use_jit(int); +MZ_EXTERN void scheme_set_startup_compile_machine_independent(int); +MZ_EXTERN void scheme_set_startup_load_on_demand(int); +MZ_EXTERN void scheme_set_ignore_user_paths(int); +MZ_EXTERN void scheme_set_ignore_link_paths(int); +MZ_EXTERN void scheme_set_cross_compile_mode(int); +MZ_EXTERN void scheme_set_logging(int syslog_level, int stderr_level); +MZ_EXTERN void scheme_set_logging_spec(Scheme_Object *syslog_level, Scheme_Object *stderr_level); +MZ_EXTERN void scheme_set_logging2(int syslog_level, int stderr_level, int stdout_level); +MZ_EXTERN void scheme_set_logging2_spec(Scheme_Object *syslog_level, Scheme_Object *stderr_level, Scheme_Object *stdout_level); + +MZ_EXTERN int scheme_get_allow_set_undefined(); + +MZ_EXTERN void scheme_set_compiled_file_check(int); +#define SCHEME_COMPILED_FILE_CHECK_MODIFY_SECONDS 0 +#define SCHEME_COMPILED_FILE_CHECK_EXISTS 1 + +#ifdef MZ_CAN_ACCESS_THREAD_LOCAL_DIRECTLY +THREAD_LOCAL_DECL(MZ_EXTERN Scheme_Thread *scheme_current_thread); +THREAD_LOCAL_DECL(MZ_EXTERN Scheme_Thread *scheme_first_thread); +#endif +XFORM_NONGCING MZ_EXTERN Scheme_Thread *scheme_get_current_thread(); +XFORM_NONGCING MZ_EXTERN intptr_t scheme_get_multiple_count(); +XFORM_NONGCING MZ_EXTERN Scheme_Object **scheme_get_multiple_array(); +XFORM_NONGCING MZ_EXTERN void scheme_set_current_thread_ran_some(); + +MZ_EXTERN void scheme_embedded_load(intptr_t len, const char *s, int predefined); +MZ_EXTERN void scheme_register_embedded_load(intptr_t len, const char *s); + +/* Set these global hooks (optionally): */ +typedef void (*Scheme_Exit_Proc)(int v); +MZ_EXTERN Scheme_Exit_Proc scheme_exit; +MZ_EXTERN void scheme_set_exit(Scheme_Exit_Proc p); +typedef void (*Scheme_At_Exit_Callback_Proc)(void); +typedef int (*Scheme_At_Exit_Proc)(Scheme_At_Exit_Callback_Proc); +MZ_EXTERN void scheme_set_atexit(Scheme_At_Exit_Proc p); +typedef void (*scheme_console_printf_t)(char *str, ...); +MZ_EXTERN scheme_console_printf_t scheme_console_printf; +MZ_EXTERN scheme_console_printf_t scheme_get_console_printf(); +MZ_EXTERN void scheme_set_console_printf(scheme_console_printf_t p); +typedef void (*scheme_console_output_t)(char *str, intptr_t len); +MZ_EXTERN scheme_console_output_t scheme_console_output; +MZ_EXTERN void scheme_set_console_output(scheme_console_output_t p); +MZ_EXTERN void scheme_ensure_console_ready(); +MZ_EXTERN void (*scheme_sleep)(float seconds, void *fds); +MZ_EXTERN void (*scheme_notify_multithread)(int on); +MZ_EXTERN void (*scheme_wakeup_on_input)(void *fds); +MZ_EXTERN int (*scheme_check_for_break)(void); +#ifdef MZ_PRECISE_GC +MZ_EXTERN void *(*scheme_get_external_stack_val)(void); +MZ_EXTERN void (*scheme_set_external_stack_val)(void *); +#endif +#ifdef USE_WIN32_THREADS +MZ_EXTERN void (*scheme_suspend_main_thread)(void); +int scheme_set_in_main_thread(void); +void scheme_restore_nonmain_thread(void); +#endif + +typedef Scheme_Object *(*Scheme_Stdio_Maker_Proc)(void); +MZ_EXTERN Scheme_Object *(*scheme_make_stdin)(void); +MZ_EXTERN Scheme_Object *(*scheme_make_stdout)(void); +MZ_EXTERN Scheme_Object *(*scheme_make_stderr)(void); + +MZ_EXTERN void scheme_set_stdio_makers(Scheme_Stdio_Maker_Proc in, + Scheme_Stdio_Maker_Proc out, + Scheme_Stdio_Maker_Proc err); + + +MZ_EXTERN void scheme_set_banner(char *s); +MZ_EXTERN Scheme_Object *scheme_set_exec_cmd(char *s); +MZ_EXTERN Scheme_Object *scheme_set_run_cmd(char *s); +MZ_EXTERN void scheme_set_collects_path(Scheme_Object *p); +MZ_EXTERN void scheme_set_config_path(Scheme_Object *p); +MZ_EXTERN void scheme_set_host_collects_path(Scheme_Object *p); +MZ_EXTERN void scheme_set_host_config_path(Scheme_Object *p); +MZ_EXTERN void scheme_set_original_dir(Scheme_Object *d); +MZ_EXTERN void scheme_set_addon_dir(Scheme_Object *p); +MZ_EXTERN void scheme_set_command_line_arguments(Scheme_Object *vec); +MZ_EXTERN void scheme_set_compiled_file_paths(Scheme_Object *list); +MZ_EXTERN void scheme_set_compiled_file_roots(Scheme_Object *list); +#ifdef DOS_FILE_SYSTEM +MZ_EXTERN void scheme_set_dll_path(wchar_t *s); +typedef void *(*scheme_dll_open_proc)(const char *name, int as_global); +typedef void *(*scheme_dll_find_object_proc)(void *h, const char *name); +typedef void (*scheme_dll_close_proc)(void *h); +MZ_EXTERN void scheme_set_dll_procs(scheme_dll_open_proc, + scheme_dll_find_object_proc, + scheme_dll_close_proc); +#endif + +MZ_EXTERN void scheme_init_collection_paths(Scheme_Env *global_env, Scheme_Object *extra_dirs); +MZ_EXTERN void scheme_init_collection_paths_post(Scheme_Env *global_env, Scheme_Object *extra_dirs, Scheme_Object *extra_post_dirs); +MZ_EXTERN void scheme_init_compiled_roots(Scheme_Env *global_env, const char *paths); + +MZ_EXTERN void scheme_seal_parameters(); + +/* Initialization */ +MZ_EXTERN Scheme_Env *scheme_basic_env(void); +MZ_EXTERN void scheme_reset_overflow(void); +MZ_EXTERN void scheme_free_all(void); + +#ifdef USE_MSVC_MD_LIBRARY +MZ_EXTERN void GC_pre_init(void); +#endif + +MZ_EXTERN void scheme_check_threads(void); +MZ_EXTERN void scheme_wake_up(void); +MZ_EXTERN int scheme_get_external_event_fd(void); + +/* GC registration: */ +MZ_EXTERN void scheme_set_stack_base(void *base, int no_auto_statics); +MZ_EXTERN void scheme_set_stack_bounds(void *base, void *deepest, int no_auto_statics); + +typedef void (*Scheme_Report_Out_Of_Memory_Proc)(void); +MZ_EXTERN void scheme_set_report_out_of_memory(Scheme_Report_Out_Of_Memory_Proc p); + +/* Stack-preparation start-up: */ +typedef int (*Scheme_Nested_Main)(void *data); +MZ_EXTERN int scheme_main_stack_setup(int no_auto_statics, Scheme_Nested_Main _main, void *data); + +/* More automatic start-up: */ +typedef int (*Scheme_Env_Main)(Scheme_Env *env, int argc, char **argv); +MZ_EXTERN int scheme_main_setup(int no_auto_statics, Scheme_Env_Main _main, int argc, char **argv); + +MZ_EXTERN void scheme_register_tls_space(void *tls_space, int _tls_index); + +MZ_EXTERN void scheme_register_static(void *ptr, intptr_t size); +#if defined(MUST_REGISTER_GLOBALS) || defined(GC_MIGHT_USE_REGISTERED_STATICS) +# define MZ_REGISTER_STATIC(x) scheme_register_static((void *)&x, sizeof(x)) +#else +# define MZ_REGISTER_STATIC(x) /* empty */ +#endif + +MZ_EXTERN void scheme_immediate_exit(int status); + +MZ_EXTERN int scheme_new_param(void); +MZ_EXTERN Scheme_Object *scheme_param_config(char *name, Scheme_Object *pos, + int argc, Scheme_Object **argv, + int arity, + Scheme_Prim *check, char *expected_type, + int isbool); +MZ_EXTERN Scheme_Object *scheme_param_config2(char *name, Scheme_Object *pos, + int argc, Scheme_Object **argv, + int arity, + Scheme_Prim *check, char *expected_contract, + int isbool); +MZ_EXTERN Scheme_Object *scheme_register_parameter(Scheme_Prim *function, char *name, int which); + +#endif /* SCHEME_DIRECT_EMBEDDED */ + +/*========================================================================*/ +/* OS signals */ +/*========================================================================*/ + +typedef void (*Scheme_Signal_Handler_Proc)(int); + +/*========================================================================*/ +/* addrinfo */ +/*========================================================================*/ + +#if defined(HAVE_GETADDRINFO) || defined(__MINGW32__) +# define mz_addrinfo addrinfo +#else +struct mz_addrinfo { + int ai_flags; + int ai_family; + int ai_socktype; + int ai_protocol; + size_t ai_addrlen; + struct sockaddr *ai_addr; + struct mz_addrinfo *ai_next; +}; +#endif + +/*========================================================================*/ +/* FFI functions */ +/*========================================================================*/ + +/* If Racket is being empbedded, then we just include the + prototypes. Otherwise, we may include a function-table definition + instead, plus macros that map the usual name to table lookups. */ + +#if SCHEME_DIRECT_EMBEDDED + +/* All functions & global constants prototyped here */ +#ifdef INCLUDE_WITHOUT_PATHS +# include "schemef.h" +#else +# include "../src/schemef.h" +#endif + +#else + +#ifdef LINK_EXTENSIONS_BY_TABLE +/* Constants and function prototypes as function pointers in a struct: */ +# ifdef INCLUDE_WITHOUT_PATHS +# include "schemex.h" +# else +# include "../src/schemex.h" +# endif + +extern Scheme_Extension_Table *scheme_extension_table; + +/* Macro mapping names to record access */ +# ifdef INCLUDE_WITHOUT_PATHS +# include "schemexm.h" +# else +# include "../src/schemexm.h" +# endif + +#else + +/* Not LINK_EXTENSIONS_BY_TABLE */ +# ifdef INCLUDE_WITHOUT_PATHS +# include "schemef.h" +# else +# include "../src/schemef.h" +# endif + +#endif + +#endif + +/*========================================================================*/ +/* misc flags */ +/*========================================================================*/ + +/* For use with scheme_symbol_name_and_size: */ +#define SCHEME_SNF_FOR_TS 0x1 +#define SCHEME_SNF_PIPE_QUOTE 0x2 +#define SCHEME_SNF_NO_PIPE_QUOTE 0x4 +#define SCHEME_SNF_NEED_CASE 0x8 +#define SCHEME_SNF_KEYWORD 0x10 +#define SCHEME_SNF_NO_KEYWORDS 0x20 + +/* For use with scheme_make_struct_values et al.: */ +#define SCHEME_STRUCT_NO_TYPE 0x01 +#define SCHEME_STRUCT_NO_CONSTR 0x02 +#define SCHEME_STRUCT_NO_PRED 0x04 +#define SCHEME_STRUCT_NO_GET 0x08 +#define SCHEME_STRUCT_NO_SET 0x10 +#define SCHEME_STRUCT_GEN_GET 0x20 +#define SCHEME_STRUCT_GEN_SET 0x40 +#define SCHEME_STRUCT_EXPTIME 0x80 +#define SCHEME_STRUCT_NO_MAKE_PREFIX 0x100 +#define SCHEME_STRUCT_NAMES_ARE_STRINGS 0x200 + +/*========================================================================*/ +/* file descriptors */ +/*========================================================================*/ + +# define MZ_GET_FDSET(p, n) scheme_get_fdset(p, n) +# define MZ_FD_ZERO(p) scheme_fdzero(p) +# define MZ_FD_SET(n, p) scheme_fdset(p, n) +# define MZ_FD_CLR(n, p) scheme_fdclr(p, n) +# define MZ_FD_ISSET(n, p) scheme_fdisset(p, n) + +/* For scheme_fd_to_semaphore(): */ +#define MZFD_CREATE_READ 1 +#define MZFD_CREATE_WRITE 2 +#define MZFD_CHECK_READ 3 +#define MZFD_CHECK_WRITE 4 +#define MZFD_REMOVE 5 + +/*========================================================================*/ + +#ifdef __cplusplus +} +#endif + +#if defined(__MWERKS__) +# ifdef MZSCHEME_USES_NEAR_GLOBALS +# pragma far_data reset +# endif +#endif + +#endif /* ! SCHEME_H */ + diff --git a/racket/src/include/schemef.h b/racket/src/include/schemef.h new file mode 100644 index 0000000000..3d524660a8 --- /dev/null +++ b/racket/src/include/schemef.h @@ -0,0 +1,1194 @@ +/* SKIP */ + +/* After modifying this file, `make exports' (you must have `racket' + in your path) to recreated derived files. */ + +/* Do no remove the SKIP tag above or the START tag below. */ + +/* Racket function prototypes */ +/* Macros generally shouldn't go in this file; it is used both to + prototype functions, and as a parsing source for + declaring scheme_extension_table */ + +/* The scheme_extension_table "parser" is picky; don't leave a space + between a function name and it's opening parameter parenthesis. */ + +/* After this START tag, all comments should start & end on same line */ + +/* START */ + +/*========================================================================*/ +/* setjmpup (continuations) */ +/*========================================================================*/ + +MZ_EXTERN void scheme_init_jmpup_buf(Scheme_Jumpup_Buf *b); +MZ_EXTERN int scheme_setjmpup_relative(Scheme_Jumpup_Buf *b, void *base, + void * volatile start, struct Scheme_Cont *cont); +MZ_EXTERN void scheme_longjmpup(Scheme_Jumpup_Buf *b); +MZ_EXTERN void scheme_reset_jmpup_buf(Scheme_Jumpup_Buf *b); + +#ifdef USE_MZ_SETJMP +MZ_EXTERN Scheme_Setjmp_Proc scheme_get_mz_setjmp(void); +MZ_EXTERN int scheme_mz_setjmp(mz_pre_jmp_buf b); +MZ_EXTERN void scheme_mz_longjmp(mz_pre_jmp_buf b, int v); +#endif + +MZ_EXTERN void scheme_clear_escape(void); + +MZ_EXTERN Scheme_Jumpup_Buf_Holder *scheme_new_jmpupbuf_holder(void); + +/*========================================================================*/ +/* parameters */ +/*========================================================================*/ + +MZ_EXTERN Scheme_Config *scheme_current_config(void); +MZ_EXTERN Scheme_Config *scheme_minimal_config(void); +MZ_EXTERN Scheme_Config *scheme_extend_config(Scheme_Config *c, int pos, Scheme_Object *init_val); +MZ_EXTERN void scheme_install_config(Scheme_Config *); + +MZ_EXTERN Scheme_Object *scheme_get_param(Scheme_Config *c, int pos); +MZ_EXTERN void scheme_set_param(Scheme_Config *c, int pos, Scheme_Object *o); + +MZ_EXTERN Scheme_Object *scheme_get_thread_param(Scheme_Config *c, Scheme_Thread_Cell_Table *cells, int pos); +MZ_EXTERN void scheme_set_thread_param(Scheme_Config *c, Scheme_Thread_Cell_Table *cells, int pos, Scheme_Object *o); + +MZ_EXTERN Scheme_Env *scheme_get_env(Scheme_Config *config); + +MZ_EXTERN Scheme_Thread_Cell_Table *scheme_empty_cell_table(); +MZ_EXTERN Scheme_Thread_Cell_Table *scheme_inherit_cells(Scheme_Thread_Cell_Table *cells); + +MZ_EXTERN Scheme_Object *scheme_current_break_cell(); + +/*========================================================================*/ +/* threads */ +/*========================================================================*/ + +#ifndef USE_THREAD_LOCAL +# ifndef LINK_EXTENSIONS_BY_TABLE +MZ_EXTERN Scheme_Thread *scheme_current_thread; +MZ_EXTERN volatile int scheme_fuel_counter; +# else +MZ_EXTERN Scheme_Thread **scheme_current_thread_ptr; +MZ_EXTERN volatile int *scheme_fuel_counter_ptr; +# endif +#endif + +MZ_EXTERN Scheme_Thread *scheme_get_current_thread(); + +MZ_EXTERN int scheme_is_atomic(void); +MZ_EXTERN void scheme_start_atomic(void); +MZ_EXTERN void scheme_end_atomic(void); +MZ_EXTERN void scheme_end_atomic_no_swap(void); +MZ_EXTERN void scheme_start_in_scheduler(void); +MZ_EXTERN void scheme_end_in_scheduler(void); +MZ_EXTERN void scheme_start_atomic_no_break(void); +MZ_EXTERN void scheme_end_atomic_can_break(void); + +MZ_EXTERN void scheme_out_of_fuel(void); + +MZ_EXTERN Scheme_Object *scheme_thread(Scheme_Object *thunk); +MZ_EXTERN Scheme_Object *scheme_thread_w_details(Scheme_Object *thunk, + Scheme_Config *init_config, + Scheme_Thread_Cell_Table *copy_from, + Scheme_Object *break_cell, + Scheme_Custodian *owning_custodian, + int suspend_to_kill); +MZ_EXTERN void scheme_kill_thread(Scheme_Thread *p); +MZ_EXTERN void scheme_break_thread(Scheme_Thread *p); +MZ_EXTERN void scheme_break_kind_thread(Scheme_Thread *p, int kind); +MZ_EXTERN void scheme_break_main_thread(); +MZ_EXTERN void scheme_break_main_thread_at(void *); +MZ_EXTERN void scheme_break_kind_main_thread_at(void *, int kind); +MZ_EXTERN void *scheme_get_main_thread_break_handle(); +MZ_EXTERN void scheme_set_break_main_target(Scheme_Thread *p); + +MZ_EXTERN void scheme_thread_block(float sleep_time); +MZ_EXTERN void scheme_thread_block_enable_break(float sleep_time, int enable); +MZ_EXTERN void scheme_swap_thread(Scheme_Thread *process); +MZ_EXTERN void scheme_making_progress(); + +MZ_EXTERN void scheme_weak_suspend_thread(Scheme_Thread *p); +MZ_EXTERN void scheme_weak_resume_thread(Scheme_Thread *p); + +MZ_EXTERN int scheme_block_until(Scheme_Ready_Fun f, Scheme_Needs_Wakeup_Fun, Scheme_Object *, float); +MZ_EXTERN int scheme_block_until_enable_break(Scheme_Ready_Fun f, Scheme_Needs_Wakeup_Fun, Scheme_Object *, + float, int enable); +MZ_EXTERN int scheme_block_until_unless(Scheme_Ready_Fun f, Scheme_Needs_Wakeup_Fun fdf, + Scheme_Object *data, float delay, + Scheme_Object *unless, + int enable_break); + +MZ_EXTERN void scheme_wait_input_allowed(Scheme_Input_Port *port, int nonblock); +XFORM_NONGCING MZ_EXTERN int scheme_unless_ready(Scheme_Object *unless); + +MZ_EXTERN int scheme_in_main_thread(void); + +MZ_EXTERN void scheme_cancel_sleep(void); + +MZ_EXTERN void scheme_start_sleeper_thread(void (*mzsleep)(float seconds, void *fds), float secs, void *fds, int hit_fd); +MZ_EXTERN void scheme_end_sleeper_thread(); +MZ_EXTERN void scheme_set_place_sleep(Scheme_Sleep_Proc slp); + +MZ_EXTERN void scheme_notify_sleep_progress(); + +MZ_EXTERN Scheme_Object *scheme_make_thread_cell(Scheme_Object *def_val, int inherited); +MZ_EXTERN Scheme_Object *scheme_thread_cell_get(Scheme_Object *cell, Scheme_Thread_Cell_Table *cells); +MZ_EXTERN void scheme_thread_cell_set(Scheme_Object *cell, Scheme_Thread_Cell_Table *cells, Scheme_Object *v); + +MZ_EXTERN int scheme_tls_allocate(); +MZ_EXTERN void scheme_tls_set(int pos, void *v); +MZ_EXTERN void *scheme_tls_get(int pos); + +MZ_EXTERN Scheme_Custodian *scheme_make_custodian(Scheme_Custodian *); +MZ_EXTERN Scheme_Custodian_Reference *scheme_add_managed(Scheme_Custodian *m, Scheme_Object *o, + Scheme_Close_Custodian_Client *f, void *data, + int strong); +MZ_EXTERN Scheme_Custodian_Reference *scheme_add_managed_close_on_exit(Scheme_Custodian *m, Scheme_Object *o, + Scheme_Close_Custodian_Client *f, void *data); + +MZ_EXTERN void scheme_custodian_check_available(Scheme_Custodian *m, const char *who, const char *what); +MZ_EXTERN int scheme_custodian_is_available(Scheme_Custodian *m); +MZ_EXTERN void scheme_remove_managed(Scheme_Custodian_Reference *m, Scheme_Object *o); +MZ_EXTERN void scheme_close_managed(Scheme_Custodian *m); +MZ_EXTERN void scheme_schedule_custodian_close(Scheme_Custodian *c); +MZ_EXTERN void scheme_add_custodian_extractor(Scheme_Type t, Scheme_Custodian_Extractor e); + +MZ_EXTERN int scheme_flush_managed(Scheme_Plumber *p, int catch_errors); +MZ_EXTERN Scheme_Object *scheme_add_flush(Scheme_Plumber *p, Scheme_Object *proc_or_port, int weak_flush); +MZ_EXTERN void scheme_remove_flush(Scheme_Object *h); + +MZ_EXTERN void scheme_add_atexit_closer(Scheme_Exit_Closer_Func f); +MZ_EXTERN int scheme_atexit(void (*func)(void)); + +MZ_EXTERN void scheme_add_evt(Scheme_Type type, + Scheme_Ready_Fun ready, + Scheme_Needs_Wakeup_Fun wakeup, + Scheme_Sync_Filter_Fun filter, + int can_redirect); +MZ_EXTERN void scheme_add_evt_through_sema(Scheme_Type type, + Scheme_Sync_Sema_Fun sema, + Scheme_Sync_Filter_Fun filter); +MZ_EXTERN int scheme_is_evt(Scheme_Object *o); +MZ_EXTERN Scheme_Object *scheme_sync(int argc, Scheme_Object *argv[]); +MZ_EXTERN Scheme_Object *scheme_sync_enable_break(int argc, Scheme_Object *argv[]); +MZ_EXTERN Scheme_Object *scheme_sync_timeout(int argc, Scheme_Object *argv[]); + +MZ_EXTERN Scheme_Object *scheme_make_evt_set(int argc, Scheme_Object **argv); + +MZ_EXTERN void scheme_add_swap_callback(Scheme_Closure_Func f, Scheme_Object *data); +MZ_EXTERN void scheme_add_swap_out_callback(Scheme_Closure_Func f, Scheme_Object *data); + +MZ_EXTERN Scheme_Object *scheme_call_enable_break(Scheme_Prim *prim, int argc, Scheme_Object *argv[]); +MZ_EXTERN int scheme_close_should_force_port_closed(); + +MZ_EXTERN void scheme_push_kill_action(Scheme_Kill_Action_Func f, void *d); +MZ_EXTERN void scheme_pop_kill_action(); + +MZ_EXTERN void scheme_set_can_break(int on); +MZ_EXTERN void scheme_push_break_enable(Scheme_Cont_Frame_Data *cframe, int on, int pre_check); +MZ_EXTERN void scheme_pop_break_enable(Scheme_Cont_Frame_Data *cframe, int post_check); + +MZ_EXTERN Scheme_Object *scheme_abort_continuation_no_dws(Scheme_Object *pt, Scheme_Object *v); +MZ_EXTERN Scheme_Object *scheme_call_with_composable_no_dws(Scheme_Object *proc, Scheme_Object *pt); + +MZ_EXTERN Scheme_On_Atomic_Timeout_Proc scheme_set_on_atomic_timeout(Scheme_On_Atomic_Timeout_Proc p, void *data); + +/*========================================================================*/ +/* error handling */ +/*========================================================================*/ + +MZ_EXTERN MZ_NORETURN void scheme_signal_error(const char *msg, ...); +MZ_EXTERN MZ_NORETURN void scheme_raise_exn(int exnid, ...); +MZ_EXTERN void scheme_warning(char *msg, ...); + +MZ_EXTERN void scheme_raise(Scheme_Object *exn); + +MZ_EXTERN int scheme_log_level_p(Scheme_Logger *logger, int level); +MZ_EXTERN int scheme_log_level_topic_p(Scheme_Logger *logger, int level, Scheme_Object *name); +MZ_EXTERN void scheme_log(Scheme_Logger *logger, int level, int flags, + const char *msg, ...); +MZ_EXTERN void scheme_log_w_data(Scheme_Logger *logger, int level, int flags, + Scheme_Object *data, + const char *msg, ...); +MZ_EXTERN void scheme_log_message(Scheme_Logger *logger, int level, char *buffer, intptr_t len, Scheme_Object *data); +MZ_EXTERN void scheme_log_name_message(Scheme_Logger *logger, int level, Scheme_Object *name, + char *buffer, intptr_t len, Scheme_Object *data); +MZ_EXTERN void scheme_log_name_pfx_message(Scheme_Logger *logger, int level, Scheme_Object *name, + char *buffer, intptr_t len, Scheme_Object *data, + int prefix_message); +MZ_EXTERN void scheme_log_abort(char *buffer); +MZ_EXTERN void scheme_log_warning(char *buffer); +MZ_EXTERN void scheme_glib_log_message(const char *log_domain, int log_level, const char *message, void *user_data); +MZ_EXTERN void *scheme_glib_log_message_test(char *str); +MZ_EXTERN void scheme_out_of_memory_abort(); + +MZ_EXTERN MZ_NORETURN void scheme_wrong_count(const char *name, int minc, int maxc, int argc, Scheme_Object **argv); +MZ_EXTERN MZ_NORETURN void scheme_wrong_count_m(const char *name, int minc, int maxc, int argc, Scheme_Object **argv, int is_method); +MZ_EXTERN MZ_NORETURN void scheme_case_lambda_wrong_count(const char *name, int argc, Scheme_Object **argv, int is_method, int count, ...); +MZ_EXTERN MZ_NORETURN void scheme_wrong_type(const char *name, const char *expected, int which, int argc, Scheme_Object **argv); +MZ_EXTERN MZ_NORETURN void scheme_wrong_contract(const char *name, const char *expected, int which, int argc, Scheme_Object **argv); +MZ_EXTERN MZ_NORETURN void scheme_wrong_field_type(Scheme_Object *c_name, const char *expected, Scheme_Object *o); +MZ_EXTERN MZ_NORETURN void scheme_wrong_field_contract(Scheme_Object *c_name, const char *expected, Scheme_Object *o); +MZ_EXTERN MZ_NORETURN void scheme_arg_mismatch(const char *name, const char *msg, Scheme_Object *o); +MZ_EXTERN MZ_NORETURN void scheme_contract_error(const char *name, const char *msg, ...); +MZ_EXTERN MZ_NORETURN void scheme_wrong_return_arity(const char *where, int expected, int got, Scheme_Object **argv, const char *context_detail, ...); +MZ_EXTERN MZ_NORETURN void scheme_unbound_global(Scheme_Bucket *b); + +MZ_EXTERN Scheme_Object *scheme_dynamic_wind(void (*pre)(void *), + Scheme_Object *(* volatile act)(void *), + void (* volatile post)(void *), + Scheme_Object *(*jmp_handler)(void *), + void * volatile data); + +/*========================================================================*/ +/* types */ +/*========================================================================*/ + +MZ_EXTERN Scheme_Type scheme_make_type(const char *name); + +MZ_EXTERN char *scheme_get_type_name(Scheme_Type type); +MZ_EXTERN char *scheme_get_type_name_or_null(Scheme_Type type); + +/*========================================================================*/ +/* constants */ +/*========================================================================*/ + +MZ_EXTERN Scheme_Object scheme_eof[1]; +XFORM_NONGCING MZ_EXTERN Scheme_Object *scheme_make_eof(void); +MZ_EXTERN Scheme_Object scheme_null[1]; +XFORM_NONGCING MZ_EXTERN Scheme_Object *scheme_make_null(void); +MZ_EXTERN Scheme_Object scheme_true[1]; +XFORM_NONGCING MZ_EXTERN Scheme_Object *scheme_make_true(void); +MZ_EXTERN Scheme_Object scheme_false[1]; +XFORM_NONGCING MZ_EXTERN Scheme_Object *scheme_make_false(void); +MZ_EXTERN Scheme_Object scheme_void[1]; +XFORM_NONGCING MZ_EXTERN Scheme_Object *scheme_make_void(void); +MZ_EXTERN Scheme_Object scheme_undefined[1]; +MZ_EXTERN Scheme_Object *scheme_tail_call_waiting; +MZ_EXTERN Scheme_Object *scheme_multiple_values; + +MZ_EXTERN unsigned short *scheme_uchar_table[]; +MZ_EXTERN unsigned char *scheme_uchar_cases_table[]; +MZ_EXTERN unsigned char *scheme_uchar_cats_table[]; +MZ_EXTERN int scheme_uchar_ups[]; +MZ_EXTERN int scheme_uchar_downs[]; +MZ_EXTERN int scheme_uchar_titles[]; +MZ_EXTERN int scheme_uchar_folds[]; +MZ_EXTERN unsigned char scheme_uchar_combining_classes[]; + +MZ_EXTERN void *scheme_on_demand_jit_code; + +/*========================================================================*/ +/* evaluation */ +/*========================================================================*/ + +MZ_EXTERN Scheme_Object *scheme_eval(Scheme_Object *obj, Scheme_Env *env); +MZ_EXTERN Scheme_Object *scheme_eval_multi(Scheme_Object *obj, Scheme_Env *env); +MZ_EXTERN Scheme_Object *scheme_eval_with_prompt(Scheme_Object *obj, Scheme_Env *env); +MZ_EXTERN Scheme_Object *scheme_eval_multi_with_prompt(Scheme_Object *obj, Scheme_Env *env); + +MZ_EXTERN Scheme_Object *scheme_eval_compiled(Scheme_Object *obj, Scheme_Env *env); +MZ_EXTERN Scheme_Object *scheme_eval_compiled_multi(Scheme_Object *obj, Scheme_Env *env); +MZ_EXTERN Scheme_Object *_scheme_eval_compiled(Scheme_Object *obj, Scheme_Env *env); +MZ_EXTERN Scheme_Object *_scheme_eval_compiled_multi(Scheme_Object *obj, Scheme_Env *env); + +MZ_EXTERN Scheme_Object *scheme_apply(Scheme_Object *rator, int num_rands, Scheme_Object **rands); +MZ_EXTERN Scheme_Object *scheme_apply_multi(Scheme_Object *rator, int num_rands, Scheme_Object **rands); +MZ_EXTERN Scheme_Object *scheme_apply_no_eb(Scheme_Object *rator, int num_rands, Scheme_Object **rands); +MZ_EXTERN Scheme_Object *scheme_apply_multi_no_eb(Scheme_Object *rator, int num_rands, Scheme_Object **rands); +MZ_EXTERN Scheme_Object *scheme_apply_to_list(Scheme_Object *rator, Scheme_Object *argss); +MZ_EXTERN Scheme_Object *scheme_apply_with_prompt(Scheme_Object *rator, int num_rands, Scheme_Object **rands); +MZ_EXTERN Scheme_Object *scheme_apply_multi_with_prompt(Scheme_Object *rator, int num_rands, Scheme_Object **rands); +MZ_EXTERN Scheme_Object *_scheme_apply_with_prompt(Scheme_Object *rator, int num_rands, Scheme_Object **rands); +MZ_EXTERN Scheme_Object *_scheme_apply_multi_with_prompt(Scheme_Object *rator, int num_rands, Scheme_Object **rands); +MZ_EXTERN Scheme_Object *scheme_eval_string(const char *str, Scheme_Env *env); +MZ_EXTERN Scheme_Object *scheme_eval_string_multi(const char *str, Scheme_Env *env); +MZ_EXTERN Scheme_Object *scheme_eval_string_all(const char *str, Scheme_Env *env, int all); +MZ_EXTERN Scheme_Object *scheme_eval_string_with_prompt(const char *str, Scheme_Env *env); +MZ_EXTERN Scheme_Object *scheme_eval_string_multi_with_prompt(const char *str, Scheme_Env *env); +MZ_EXTERN Scheme_Object *scheme_eval_string_all_with_prompt(const char *str, Scheme_Env *env, int all); +MZ_EXTERN Scheme_Object *scheme_eval_all_with_prompt(Scheme_Object *port, Scheme_Env *env, int all); +MZ_EXTERN Scheme_Object *scheme_eval_module_string(const char *str, Scheme_Env *env); + +MZ_EXTERN Scheme_Object *_scheme_apply_known_prim_closure(Scheme_Object *rator, int argc, + Scheme_Object **argv); +MZ_EXTERN Scheme_Object *_scheme_apply_known_prim_closure_multi(Scheme_Object *rator, int argc, + Scheme_Object **argv); +MZ_EXTERN Scheme_Object *_scheme_apply_prim_closure(Scheme_Object *rator, int argc, + Scheme_Object **argv); +MZ_EXTERN Scheme_Object *_scheme_apply_prim_closure_multi(Scheme_Object *rator, int argc, + Scheme_Object **argv); + +MZ_EXTERN Scheme_Object **scheme_current_argument_stack(); + +MZ_EXTERN Scheme_Object *scheme_call_with_prompt(Scheme_Closed_Prim f, void *data); +MZ_EXTERN Scheme_Object *scheme_call_with_prompt_multi(Scheme_Closed_Prim f, void *data); +MZ_EXTERN Scheme_Object *_scheme_call_with_prompt(Scheme_Closed_Prim f, void *data); +MZ_EXTERN Scheme_Object *_scheme_call_with_prompt_multi(Scheme_Closed_Prim f, void *data); + +MZ_EXTERN Scheme_Object *scheme_values(int c, Scheme_Object **v); + +MZ_EXTERN Scheme_Object *scheme_check_one_value(Scheme_Object *v); + +/* Tail calls - only use these when you're writing new functions/syntax */ +MZ_EXTERN Scheme_Object *scheme_tail_apply(Scheme_Object *f, int n, Scheme_Object **arg); +MZ_EXTERN Scheme_Object *scheme_tail_apply_no_copy(Scheme_Object *f, int n, Scheme_Object **arg); +MZ_EXTERN Scheme_Object *scheme_tail_apply_to_list(Scheme_Object *f, Scheme_Object *l); + +MZ_EXTERN Scheme_Object *scheme_tail_eval_expr(Scheme_Object *obj); + +MZ_EXTERN void scheme_set_tail_buffer_size(int s); +MZ_EXTERN Scheme_Object *scheme_force_value(Scheme_Object *); +MZ_EXTERN Scheme_Object *scheme_force_one_value(Scheme_Object *); + +XFORM_NONGCING MZ_EXTERN void scheme_ignore_result(Scheme_Object *); + +MZ_EXTERN MZ_MARK_STACK_TYPE scheme_set_cont_mark(Scheme_Object *key, Scheme_Object *val); +MZ_EXTERN void scheme_push_continuation_frame(Scheme_Cont_Frame_Data *); +MZ_EXTERN void scheme_pop_continuation_frame(Scheme_Cont_Frame_Data *); +MZ_EXTERN void scheme_temp_dec_mark_depth(); +MZ_EXTERN void scheme_temp_inc_mark_depth(); + +MZ_EXTERN Scheme_Object *scheme_current_continuation_marks(Scheme_Object *prompt_tag); +MZ_EXTERN Scheme_Object *scheme_extract_one_cc_mark(Scheme_Object *mark_set, + Scheme_Object *key); +MZ_EXTERN Scheme_Object *scheme_extract_one_cc_mark_to_tag(Scheme_Object *mark_set, + Scheme_Object *key, + Scheme_Object *prompt_tag); + +/* Internal */ +MZ_EXTERN Scheme_Object *scheme_do_eval(Scheme_Object *obj, int _num_rands, Scheme_Object **rands, int val); +MZ_EXTERN void scheme_detach_multple_array(Scheme_Object **a); + +/*========================================================================*/ +/* memory management */ +/*========================================================================*/ + +/* The core allocator functions depend on the GC. Macros in scheme.h */ +/* map to the apporpriate core allocation function. */ + +#ifndef SCHEME_NO_GC +# ifndef SCHEME_NO_GC_PROTO +MZ_EXTERN void *GC_malloc(size_t size_in_bytes); +MZ_EXTERN void *GC_malloc_atomic(size_t size_in_bytes); +# ifdef MZ_PRECISE_GC +MZ_EXTERN void *GC_malloc_one_tagged(size_t size_in_bytes); +MZ_EXTERN void *GC_malloc_atomic_uncollectable(size_t size_in_bytes); +MZ_EXTERN void *scheme_malloc_uncollectable(size_t size_in_bytes); +MZ_EXTERN void *GC_malloc_allow_interior(size_t size_in_bytes); +MZ_EXTERN void *GC_malloc_atomic_allow_interior(size_t size_in_bytes); +MZ_EXTERN void *GC_malloc_tagged_allow_interior(size_t size_in_bytes); +# else +MZ_EXTERN void *GC_malloc_stubborn(size_t size_in_bytes); +MZ_EXTERN void *GC_malloc_uncollectable(size_t size_in_bytes); +# endif +# endif +#endif + +MZ_EXTERN void *scheme_malloc_code(intptr_t size); +MZ_EXTERN void *scheme_malloc_permanent_code(intptr_t size); +MZ_EXTERN void scheme_free_code(void *p); +#ifndef MZ_PRECISE_GC +MZ_EXTERN void *scheme_malloc_gcable_code(intptr_t size); +#endif + + +MZ_EXTERN void *scheme_malloc_eternal(size_t n); +MZ_EXTERN void scheme_end_stubborn_change(void *p); + +MZ_EXTERN void *scheme_calloc(size_t num, size_t size); + +MZ_EXTERN char *scheme_strdup(const char *str); +MZ_EXTERN char *scheme_strdup_eternal(const char *str); + +MZ_EXTERN void *scheme_malloc_fail_ok(void *(*f)(size_t), size_t); + +#ifndef MZ_PRECISE_GC +MZ_EXTERN void scheme_late_weak_reference(void **p); +MZ_EXTERN void scheme_late_weak_reference_indirect(void **p, void *v); +MZ_EXTERN void scheme_weak_reference(void **p); +MZ_EXTERN void scheme_weak_reference_indirect(void **p, void *v); +MZ_EXTERN void scheme_unweak_reference(void **p); +#endif +MZ_EXTERN void scheme_add_finalizer(void *p, void (*f)(void *p, void *data), void *data); +MZ_EXTERN void scheme_add_finalizer_once(void *p, void (*f)(void *p, void *data), void *data); +MZ_EXTERN void scheme_subtract_finalizer(void *p, void (*f)(void *p, void *data), void *data); +MZ_EXTERN void scheme_add_scheme_finalizer(void *p, void (*f)(void *p, void *data), void *data); +MZ_EXTERN void scheme_add_scheme_finalizer_once(void *p, void (*f)(void *p, void *data), void *data); +MZ_EXTERN void scheme_register_finalizer(void *p, + void (*f)(void *p, void *data), void *data, + void (**oldf)(void *p, void *data), + void **olddata); +MZ_EXTERN void scheme_remove_all_finalization(void *p); + +MZ_EXTERN void scheme_dont_gc_ptr(void *p); +MZ_EXTERN void scheme_gc_ptr_ok(void *p); + +MZ_EXTERN void scheme_collect_garbage(void); +MZ_EXTERN void scheme_collect_garbage_minor(void); +MZ_EXTERN void scheme_enable_garbage_collection(int on); +MZ_EXTERN void scheme_incremental_garbage_collection(int on); + +#ifdef MZ_PRECISE_GC +# ifndef USE_THREAD_LOCAL +MZ_EXTERN void **GC_variable_stack; +# endif +MZ_EXTERN void GC_register_traversers(short tag, Size_Proc size, Mark_Proc mark, Fixup_Proc fixup, + int is_constant_size, int is_atomic); +MZ_EXTERN void *GC_resolve(void *p); +MZ_EXTERN void GC_mark(void *p); +MZ_EXTERN void GC_fixup(void *p); +MZ_EXTERN void *GC_fixup_self(void *p); +#endif + +MZ_EXTERN void **scheme_malloc_immobile_box(void *p); +MZ_EXTERN void scheme_free_immobile_box(void **b); + +MZ_EXTERN Scheme_Object *scheme_add_gc_callback(Scheme_Object *pre, Scheme_Object *post); +MZ_EXTERN void scheme_remove_gc_callback(Scheme_Object *key); + +MZ_EXTERN void scheme_register_type_gc_shape(Scheme_Type type, intptr_t *shape_str); + +/*========================================================================*/ +/* hash tables */ +/*========================================================================*/ + +MZ_EXTERN Scheme_Bucket_Table *scheme_make_bucket_table(intptr_t size_hint, int type); +MZ_EXTERN void scheme_add_to_table(Scheme_Bucket_Table *table, const char *key, void *val, int); +MZ_EXTERN void scheme_change_in_table(Scheme_Bucket_Table *table, const char *key, void *new_val); +MZ_EXTERN void *scheme_lookup_in_table(Scheme_Bucket_Table *table, const char *key); +MZ_EXTERN Scheme_Bucket *scheme_bucket_from_table(Scheme_Bucket_Table *table, const char *key); +MZ_EXTERN int scheme_bucket_table_equal(Scheme_Bucket_Table *t1, Scheme_Bucket_Table *t2); +MZ_EXTERN Scheme_Bucket_Table *scheme_clone_bucket_table(Scheme_Bucket_Table *bt); +MZ_EXTERN void scheme_clear_bucket_table(Scheme_Bucket_Table *bt); +XFORM_NONGCING_NONALIASING MZ_EXTERN int scheme_bucket_table_index(Scheme_Bucket_Table *hash, mzlonglong pos, Scheme_Object **_key, Scheme_Object **_val); +XFORM_NONGCING Scheme_Object *scheme_bucket_table_next(Scheme_Bucket_Table *hash, mzlonglong start); + +MZ_EXTERN Scheme_Hash_Table *scheme_make_hash_table(int type); +MZ_EXTERN Scheme_Hash_Table *scheme_make_hash_table_equal(); +MZ_EXTERN Scheme_Hash_Table *scheme_make_hash_table_eqv(); +MZ_EXTERN void scheme_hash_set(Scheme_Hash_Table *table, Scheme_Object *key, Scheme_Object *val); +MZ_EXTERN Scheme_Object *scheme_hash_get(Scheme_Hash_Table *table, Scheme_Object *key); +XFORM_NONGCING MZ_EXTERN Scheme_Object *scheme_eq_hash_get(Scheme_Hash_Table *table, Scheme_Object *key); +MZ_EXTERN void scheme_hash_set_atomic(Scheme_Hash_Table *table, Scheme_Object *key, Scheme_Object *val); +MZ_EXTERN Scheme_Object *scheme_hash_get_atomic(Scheme_Hash_Table *table, Scheme_Object *key); +MZ_EXTERN int scheme_hash_table_equal(Scheme_Hash_Table *t1, Scheme_Hash_Table *t2); +MZ_EXTERN int scheme_is_hash_table_equal(Scheme_Object *o); +MZ_EXTERN int scheme_is_hash_table_eqv(Scheme_Object *o); +MZ_EXTERN Scheme_Hash_Table *scheme_clone_hash_table(Scheme_Hash_Table *ht); +MZ_EXTERN void scheme_clear_hash_table(Scheme_Hash_Table *ht); +XFORM_NONGCING_NONALIASING MZ_EXTERN int scheme_hash_table_index(Scheme_Hash_Table *hash, mzlonglong pos, Scheme_Object **_key, Scheme_Object **_val); +XFORM_NONGCING MZ_EXTERN Scheme_Object *scheme_hash_table_next(Scheme_Hash_Table *hash, mzlonglong start); + +XFORM_NONGCING MZ_EXTERN Scheme_Hash_Tree *scheme_make_hash_tree(int kind); +MZ_EXTERN Scheme_Hash_Tree *scheme_hash_tree_set(Scheme_Hash_Tree *tree, Scheme_Object *key, Scheme_Object *val); +MZ_EXTERN Scheme_Object *scheme_hash_tree_get(Scheme_Hash_Tree *tree, Scheme_Object *key); +XFORM_NONGCING MZ_EXTERN Scheme_Object *scheme_eq_hash_tree_get(Scheme_Hash_Tree *tree, Scheme_Object *key); +XFORM_NONGCING MZ_EXTERN mzlonglong scheme_hash_tree_next(Scheme_Hash_Tree *tree, mzlonglong pos); +XFORM_NONGCING_NONALIASING MZ_EXTERN int scheme_hash_tree_index(Scheme_Hash_Tree *tree, mzlonglong pos, Scheme_Object **_key, Scheme_Object **_val); +MZ_EXTERN int scheme_hash_tree_equal(Scheme_Hash_Tree *t1, Scheme_Hash_Tree *t2); +MZ_EXTERN int scheme_is_hash_tree_equal(Scheme_Object *o); +MZ_EXTERN int scheme_is_hash_tree_eqv(Scheme_Object *o); + +/*========================================================================*/ +/* basic Scheme value constructors */ +/*========================================================================*/ + +MZ_EXTERN Scheme_Object *scheme_make_prim(Scheme_Prim *prim); +MZ_EXTERN Scheme_Object *scheme_make_noneternal_prim(Scheme_Prim *prim); +MZ_EXTERN Scheme_Object *scheme_make_prim_w_arity(Scheme_Prim *prim, const char *name, + mzshort mina, mzshort maxa); +MZ_EXTERN Scheme_Object *scheme_make_folding_prim(Scheme_Prim *prim, + const char *name, + mzshort mina, mzshort maxa, + short functional); +MZ_EXTERN Scheme_Object *scheme_make_immed_prim(Scheme_Prim *prim, + const char *name, + mzshort mina, mzshort maxa); +MZ_EXTERN Scheme_Object *scheme_make_noncm_prim(Scheme_Prim *prim, + const char *name, + mzshort mina, mzshort maxa); +MZ_EXTERN Scheme_Object *scheme_make_noneternal_prim_w_arity(Scheme_Prim *prim, + const char *name, + mzshort mina, mzshort maxa); +MZ_EXTERN Scheme_Object *scheme_make_prim_w_everything(Scheme_Prim *fun, int eternal, + const char *name, + mzshort mina, mzshort maxa, + int folding, + mzshort minr, mzshort maxr); + +MZ_EXTERN Scheme_Object *scheme_make_prim_closure_w_arity(Scheme_Primitive_Closure_Proc *prim, + int size, Scheme_Object **vals, + const char *name, + mzshort mina, mzshort maxa); +MZ_EXTERN Scheme_Object *scheme_make_folding_prim_closure(Scheme_Primitive_Closure_Proc *prim, + int size, Scheme_Object **vals, + const char *name, + mzshort mina, mzshort maxa, + short functional); + +MZ_EXTERN Scheme_Object *scheme_make_closed_prim(Scheme_Closed_Prim *prim, void *data); +MZ_EXTERN Scheme_Object *scheme_make_closed_prim_w_arity(Scheme_Closed_Prim *prim, + void *data, const char *name, + mzshort mina, mzshort maxa); +MZ_EXTERN Scheme_Object *scheme_make_folding_closed_prim(Scheme_Closed_Prim *prim, + void *data, const char *name, + mzshort mina, mzshort maxa, + short functional); +MZ_EXTERN Scheme_Object *scheme_make_closed_prim_w_everything(Scheme_Closed_Prim *fun, + void *data, + const char *name, + mzshort mina, mzshort maxa, + short folding, + mzshort minr, mzshort maxr); + +MZ_EXTERN void scheme_prim_is_method(Scheme_Object *o); + +MZ_EXTERN Scheme_Object *scheme_make_pair(Scheme_Object *car, Scheme_Object *cdr); +MZ_EXTERN Scheme_Object *scheme_make_mutable_pair(Scheme_Object *car, Scheme_Object *cdr); +MZ_EXTERN Scheme_Object *scheme_make_list_pair(Scheme_Object *car, Scheme_Object *cdr); + +MZ_EXTERN Scheme_Object *scheme_make_raw_pair(Scheme_Object *, Scheme_Object *); + +MZ_EXTERN Scheme_Object *scheme_make_byte_string(const char *chars); +MZ_EXTERN Scheme_Object *scheme_make_sized_byte_string(char *chars, intptr_t len, int copy); +MZ_EXTERN Scheme_Object *scheme_make_sized_offset_byte_string(char *chars, intptr_t d, intptr_t len, int copy); +MZ_EXTERN Scheme_Object *scheme_make_immutable_sized_byte_string(char *chars, intptr_t len, int copy); +MZ_EXTERN Scheme_Object *scheme_make_byte_string_without_copying(char *chars); +MZ_EXTERN Scheme_Object *scheme_alloc_byte_string(intptr_t size, char fill); +MZ_EXTERN Scheme_Object *scheme_append_byte_string(Scheme_Object *, Scheme_Object *); + +MZ_EXTERN Scheme_Object *scheme_make_utf8_string(const char *chars); +MZ_EXTERN Scheme_Object *scheme_make_sized_utf8_string(char *chars, intptr_t len); +MZ_EXTERN Scheme_Object *scheme_make_sized_offset_utf8_string(char *chars, intptr_t d, intptr_t len); +MZ_EXTERN Scheme_Object *scheme_make_immutable_sized_utf8_string(char *chars, intptr_t len); + +MZ_EXTERN Scheme_Object *scheme_make_locale_string(const char *chars); + +MZ_EXTERN Scheme_Object *scheme_char_string_to_byte_string(Scheme_Object *s); +MZ_EXTERN Scheme_Object *scheme_byte_string_to_char_string(Scheme_Object *s); +MZ_EXTERN Scheme_Object *scheme_char_string_to_byte_string_locale(Scheme_Object *s); +MZ_EXTERN Scheme_Object *scheme_byte_string_to_char_string_locale(Scheme_Object *s); +MZ_EXTERN Scheme_Object *scheme_char_string_to_path(Scheme_Object *p); +MZ_EXTERN Scheme_Object *scheme_path_to_char_string(Scheme_Object *p); + +MZ_EXTERN Scheme_Object *scheme_make_char_string(const mzchar *chars); +MZ_EXTERN Scheme_Object *scheme_make_sized_char_string(mzchar *chars, intptr_t len, int copy); +MZ_EXTERN Scheme_Object *scheme_make_sized_offset_char_string(mzchar *chars, intptr_t d, intptr_t len, int copy); +MZ_EXTERN Scheme_Object *scheme_make_immutable_sized_char_string(mzchar *chars, intptr_t len, int copy); +MZ_EXTERN Scheme_Object *scheme_make_char_string_without_copying(mzchar *chars); +MZ_EXTERN Scheme_Object *scheme_alloc_char_string(intptr_t size, mzchar fill); +MZ_EXTERN Scheme_Object *scheme_append_char_string(Scheme_Object *, Scheme_Object *); + +MZ_EXTERN mzchar *scheme_string_recase(mzchar *s, int d, int len, int mode, int inplace, int *_len); + +MZ_EXTERN Scheme_Object *scheme_make_vector(intptr_t size, Scheme_Object *fill); +MZ_EXTERN Scheme_Double_Vector *scheme_alloc_flvector(intptr_t size); +#ifdef MZ_LONG_DOUBLE +MZ_EXTERN Scheme_Long_Double_Vector *scheme_alloc_extflvector(intptr_t size); +#endif +MZ_EXTERN Scheme_Vector *scheme_alloc_fxvector(intptr_t size); +MZ_EXTERN Scheme_Object *scheme_make_integer_value(intptr_t i); +MZ_EXTERN Scheme_Object *scheme_make_integer_value_from_unsigned(uintptr_t i); +MZ_EXTERN Scheme_Object *scheme_make_integer_value_from_long_long(mzlonglong i); +MZ_EXTERN Scheme_Object *scheme_make_integer_value_from_unsigned_long_long(umzlonglong i); +MZ_EXTERN Scheme_Object *scheme_make_integer_value_from_long_halves(uintptr_t lowhalf, uintptr_t hihalf); +MZ_EXTERN Scheme_Object *scheme_make_integer_value_from_unsigned_long_halves(uintptr_t lowhalf, uintptr_t hihalf); +MZ_EXTERN Scheme_Object *scheme_make_double(double d); +#ifdef MZ_LONG_DOUBLE +MZ_EXTERN Scheme_Object *scheme_make_long_double(mz_long_double d); +#endif +#ifdef MZ_USE_SINGLE_FLOATS +MZ_EXTERN Scheme_Object *scheme_make_float(float f) ; +#endif +MZ_EXTERN Scheme_Object *scheme_make_char(mzchar ch); +MZ_EXTERN Scheme_Object *scheme_make_char_or_nul(mzchar ch); +MZ_EXTERN Scheme_Object *scheme_make_sema(intptr_t v); +MZ_EXTERN void scheme_post_sema(Scheme_Object *o); +MZ_EXTERN void scheme_post_sema_all(Scheme_Object *o); +MZ_EXTERN int scheme_wait_sema(Scheme_Object *o, int just_try); +XFORM_NONGCING MZ_EXTERN int scheme_try_plain_sema(Scheme_Object *o); +MZ_EXTERN Scheme_Object **scheme_char_constants; + +MZ_EXTERN Scheme_Object *scheme_make_channel(); +MZ_EXTERN Scheme_Object *scheme_make_channel_put_evt(Scheme_Object *ch, Scheme_Object *v); + +XFORM_NONGCING MZ_EXTERN int scheme_get_int_val(Scheme_Object *o, intptr_t *v); +XFORM_NONGCING MZ_EXTERN int scheme_get_unsigned_int_val(Scheme_Object *o, uintptr_t *v); +XFORM_NONGCING MZ_EXTERN int scheme_get_long_long_val(Scheme_Object *o, mzlonglong *v); +XFORM_NONGCING MZ_EXTERN int scheme_get_unsigned_long_long_val(Scheme_Object *o, umzlonglong *v); + +MZ_EXTERN double scheme_real_to_double(Scheme_Object *r); +#ifdef MZ_LONG_DOUBLE +MZ_EXTERN mz_long_double scheme_real_to_long_double(Scheme_Object *r); +#endif + +MZ_EXTERN Scheme_Object *scheme_make_cptr(void *cptr, Scheme_Object *typetag); +MZ_EXTERN Scheme_Object *scheme_make_offset_cptr(void *cptr, intptr_t offset, Scheme_Object *typetag); +MZ_EXTERN Scheme_Object *scheme_make_external_cptr(void *cptr, Scheme_Object *typetag); +MZ_EXTERN Scheme_Object *scheme_make_offset_external_cptr(void *cptr, intptr_t offset, Scheme_Object *typetag); + +MZ_EXTERN int scheme_is_cpointer(Scheme_Object *cp); + +MZ_EXTERN const char *scheme_get_proc_name(Scheme_Object *p, int *len, int for_error); + +/*========================================================================*/ +/* strings */ +/*========================================================================*/ + +MZ_EXTERN intptr_t scheme_utf8_decode(const unsigned char *s, intptr_t start, intptr_t end, + unsigned int *us, intptr_t dstart, intptr_t dend, + intptr_t *ipos, char utf16, int permissive); +MZ_EXTERN intptr_t scheme_utf8_decode_offset_prefix(const unsigned char *s, intptr_t start, intptr_t end, + unsigned int *us, intptr_t dstart, intptr_t dend, + intptr_t *ipos, char utf16, int permissive); +MZ_EXTERN intptr_t scheme_utf8_decode_as_prefix(const unsigned char *s, intptr_t start, intptr_t end, + unsigned int *us, intptr_t dstart, intptr_t dend, + intptr_t *ipos, char utf16, int permissive); +MZ_EXTERN intptr_t scheme_utf8_decode_all(const unsigned char *s, intptr_t len, unsigned int *us, + int permissive); +MZ_EXTERN intptr_t scheme_utf8_decode_prefix(const unsigned char *s, intptr_t len, unsigned int *us, + int permissive); +MZ_EXTERN mzchar *scheme_utf8_decode_to_buffer(const unsigned char *s, intptr_t len, + mzchar *buf, intptr_t blen); +MZ_EXTERN mzchar *scheme_utf8_decode_to_buffer_len(const unsigned char *s, intptr_t len, + mzchar *buf, intptr_t blen, intptr_t *rlen); +XFORM_NONGCING MZ_EXTERN intptr_t scheme_utf8_decode_count(const unsigned char *s, intptr_t start, intptr_t end, + int *_state, int might_continue, int permissive); + +MZ_EXTERN intptr_t scheme_utf8_encode(const unsigned int *us, intptr_t start, intptr_t end, + unsigned char *s, intptr_t dstart, + char utf16); +MZ_EXTERN intptr_t scheme_utf8_encode_all(const unsigned int *us, intptr_t len, unsigned char *s); + +MZ_EXTERN char *scheme_utf8_encode_to_buffer(const mzchar *s, intptr_t len, + char *buf, intptr_t blen); +MZ_EXTERN char *scheme_utf8_encode_to_buffer_len(const mzchar *s, intptr_t len, + char *buf, intptr_t blen, intptr_t *rlen); + +MZ_EXTERN unsigned short *scheme_ucs4_to_utf16(const mzchar *text, intptr_t start, intptr_t end, + unsigned short *buf, intptr_t bufsize, + intptr_t *ulen, intptr_t term_size); +MZ_EXTERN mzchar *scheme_utf16_to_ucs4(const unsigned short *text, intptr_t start, intptr_t end, + mzchar *buf, intptr_t bufsize, + intptr_t *ulen, intptr_t term_size); + +MZ_EXTERN Scheme_Object *scheme_open_converter(const char *from_e, const char *to_e); +MZ_EXTERN void scheme_close_converter(Scheme_Object *conv); + +MZ_EXTERN char *scheme_getenv(char *name); + +/*========================================================================*/ +/* bignums */ +/*========================================================================*/ + +MZ_EXTERN Scheme_Object *scheme_make_bignum(intptr_t v); +MZ_EXTERN Scheme_Object *scheme_make_bignum_from_unsigned(uintptr_t v); +MZ_EXTERN Scheme_Object *scheme_make_bignum_from_long_long(mzlonglong v); +MZ_EXTERN Scheme_Object *scheme_make_bignum_from_unsigned_long_long(umzlonglong v); +XFORM_NONGCING MZ_EXTERN double scheme_bignum_to_double(const Scheme_Object *n); +MZ_EXTERN Scheme_Object *scheme_bignum_from_double(double d); +#ifdef MZ_LONG_DOUBLE +XFORM_NONGCING MZ_EXTERN mz_long_double scheme_bignum_to_long_double(const Scheme_Object *n); +MZ_EXTERN Scheme_Object *scheme_bignum_from_long_double(mz_long_double d); +#endif +#ifdef MZ_USE_SINGLE_FLOATS +XFORM_NONGCING MZ_EXTERN float scheme_bignum_to_float(const Scheme_Object *n); +MZ_EXTERN Scheme_Object *scheme_bignum_from_float(float d); +#else +# define scheme_bignum_to_float scheme_bignum_to_double +# define scheme_bignum_from_float scheme_bignum_from_double +#endif +MZ_EXTERN char *scheme_bignum_to_string(const Scheme_Object *n, int radix); +MZ_EXTERN char *scheme_bignum_to_allocated_string(const Scheme_Object *n, int radix, int alloc); +MZ_EXTERN Scheme_Object *scheme_read_bignum(const mzchar *str, int offset, int radix); +MZ_EXTERN Scheme_Object *scheme_read_bignum_bytes(const char *str, int offset, int radix); +XFORM_NONGCING MZ_EXTERN Scheme_Object *scheme_bignum_normalize(const Scheme_Object *n); + +/*========================================================================*/ +/* rationals */ +/*========================================================================*/ + +MZ_EXTERN Scheme_Object *scheme_make_rational(const Scheme_Object *r, const Scheme_Object *d); +MZ_EXTERN double scheme_rational_to_double(const Scheme_Object *n); +MZ_EXTERN Scheme_Object *scheme_rational_from_double(double d); +#ifdef MZ_LONG_DOUBLE +MZ_EXTERN mz_long_double scheme_rational_to_long_double(const Scheme_Object *n); +MZ_EXTERN Scheme_Object *scheme_rational_from_long_double(mz_long_double d); +#endif +#ifdef MZ_USE_SINGLE_FLOATS +MZ_EXTERN float scheme_rational_to_float(const Scheme_Object *n); +MZ_EXTERN Scheme_Object *scheme_rational_from_float(float d); +#else +# define scheme_rational_to_float scheme_rational_to_double +# define scheme_rational_from_float scheme_rational_from_double +#endif +MZ_EXTERN Scheme_Object *scheme_rational_normalize(const Scheme_Object *n); +XFORM_NONGCING MZ_EXTERN Scheme_Object *scheme_rational_numerator(const Scheme_Object *n); +XFORM_NONGCING MZ_EXTERN Scheme_Object *scheme_rational_denominator(const Scheme_Object *n); + +/*========================================================================*/ +/* complexes */ +/*========================================================================*/ + +MZ_EXTERN Scheme_Object *scheme_make_complex(const Scheme_Object *r, const Scheme_Object *i); +MZ_EXTERN Scheme_Object *scheme_complex_normalize(const Scheme_Object *n); +XFORM_NONGCING MZ_EXTERN Scheme_Object *scheme_complex_real_part(const Scheme_Object *n); +XFORM_NONGCING MZ_EXTERN Scheme_Object *scheme_complex_imaginary_part(const Scheme_Object *n); + +/* Exact/inexact: */ +XFORM_NONGCING MZ_EXTERN int scheme_is_exact(const Scheme_Object *n); +XFORM_NONGCING MZ_EXTERN int scheme_is_inexact(const Scheme_Object *n); + +/*========================================================================*/ +/* macros, syntax, and compilation */ +/*========================================================================*/ + +MZ_EXTERN Scheme_Object *scheme_expand(Scheme_Object *form, Scheme_Env *env); + +MZ_EXTERN Scheme_Object *scheme_compile(Scheme_Object *form, Scheme_Env *env, int writeable); + +/*========================================================================*/ +/* ports */ +/*========================================================================*/ + +MZ_EXTERN Scheme_Object *scheme_read(Scheme_Object *port); +MZ_EXTERN Scheme_Object *scheme_read_syntax(Scheme_Object *port, Scheme_Object *stxsrc); +MZ_EXTERN void scheme_write(Scheme_Object *obj, Scheme_Object *port); +MZ_EXTERN void scheme_print(Scheme_Object *obj, Scheme_Object *port); +MZ_EXTERN void scheme_display(Scheme_Object *obj, Scheme_Object *port); +MZ_EXTERN void scheme_write_w_max(Scheme_Object *obj, Scheme_Object *port, intptr_t maxl); +MZ_EXTERN void scheme_display_w_max(Scheme_Object *obj, Scheme_Object *port, intptr_t maxl); +MZ_EXTERN void scheme_print_w_max(Scheme_Object *obj, Scheme_Object *port, intptr_t maxl); +MZ_EXTERN void scheme_write_byte_string(const char *str, intptr_t len, Scheme_Object *port); +MZ_EXTERN void scheme_write_char_string(const mzchar *str, intptr_t len, Scheme_Object *port); +MZ_EXTERN intptr_t scheme_put_byte_string(const char *who, Scheme_Object *port, + const char *str, intptr_t d, intptr_t len, + int rarely_block); +MZ_EXTERN intptr_t scheme_put_char_string(const char *who, Scheme_Object *port, + const mzchar *str, intptr_t d, intptr_t len); +MZ_EXTERN char *scheme_write_to_string(Scheme_Object *obj, intptr_t *len); +MZ_EXTERN char *scheme_display_to_string(Scheme_Object *obj, intptr_t *len); +MZ_EXTERN char *scheme_print_to_string(Scheme_Object *obj, intptr_t *len); +MZ_EXTERN char *scheme_write_to_string_w_max(Scheme_Object *obj, intptr_t *len, intptr_t maxl); +MZ_EXTERN char *scheme_display_to_string_w_max(Scheme_Object *obj, intptr_t *len, intptr_t maxl); +MZ_EXTERN char *scheme_print_to_string_w_max(Scheme_Object *obj, intptr_t *len, intptr_t maxl); +MZ_EXTERN void scheme_debug_print(Scheme_Object *obj); +MZ_EXTERN void scheme_flush_output(Scheme_Object *port); + +MZ_EXTERN char *scheme_format(mzchar *format, int flen, int argc, Scheme_Object **argv, intptr_t *rlen); +MZ_EXTERN void scheme_printf(mzchar *format, int flen, int argc, Scheme_Object **argv); +MZ_EXTERN char *scheme_format_utf8(char *format, int flen, int argc, Scheme_Object **argv, intptr_t *rlen); +MZ_EXTERN void scheme_printf_utf8(char *format, int flen, int argc, Scheme_Object **argv); + +MZ_EXTERN int scheme_getc(Scheme_Object *port); +MZ_EXTERN int scheme_get_byte(Scheme_Object *port); +MZ_EXTERN int scheme_peekc(Scheme_Object *port); +MZ_EXTERN int scheme_peek_byte(Scheme_Object *port); +MZ_EXTERN int scheme_peekc_skip(Scheme_Object *port, Scheme_Object *skip); +MZ_EXTERN int scheme_peek_byte_skip(Scheme_Object *port, Scheme_Object *skip, Scheme_Object *unless_evt); +MZ_EXTERN int scheme_getc_special_ok(Scheme_Object *port); +MZ_EXTERN int scheme_get_byte_special_ok(Scheme_Object *port); +MZ_EXTERN int scheme_peekc_special_ok(Scheme_Object *port); +MZ_EXTERN int scheme_peek_byte_special_ok_skip(Scheme_Object *port, Scheme_Object *skip, Scheme_Object *unless_evt); +MZ_EXTERN int scheme_peekc_special_ok_skip(Scheme_Object *port, Scheme_Object *skip); +MZ_EXTERN void scheme_ungetc(int ch, Scheme_Object *port); +MZ_EXTERN int scheme_byte_ready(Scheme_Object *port); +MZ_EXTERN int scheme_char_ready(Scheme_Object *port); +MZ_EXTERN int scheme_peekc_is_ungetc(Scheme_Object *port); +MZ_EXTERN void scheme_need_wakeup(Scheme_Object *port, void *fds); +MZ_EXTERN intptr_t scheme_get_byte_string(const char *who, + Scheme_Object *port, + char *buffer, intptr_t offset, intptr_t size, + int only_avail, + int peek, Scheme_Object *peek_skip); +MZ_EXTERN intptr_t scheme_get_byte_string_unless(const char *who, + Scheme_Object *port, + char *buffer, intptr_t offset, intptr_t size, + int only_avail, + int peek, Scheme_Object *peek_skip, + Scheme_Object *unless_evt); +MZ_EXTERN intptr_t scheme_get_byte_string_special_ok_unless(const char *who, + Scheme_Object *port, + char *buffer, intptr_t offset, intptr_t size, + int only_avail, + int peek, Scheme_Object *peek_skip, + Scheme_Object *unless_evt); +MZ_EXTERN Scheme_Object *scheme_progress_evt(Scheme_Object *port); +MZ_EXTERN int scheme_peeked_read(Scheme_Object *port, + intptr_t size, + Scheme_Object *unless_evt, + Scheme_Object *target_evt); +MZ_EXTERN intptr_t scheme_get_char_string(const char *who, + Scheme_Object *port, + mzchar *buffer, intptr_t offset, intptr_t size, + int peek, Scheme_Object *peek_skip); +MZ_EXTERN intptr_t scheme_get_bytes(Scheme_Object *port, intptr_t size, char *buffer, int offset); +MZ_EXTERN Scheme_Object *scheme_get_ready_special(Scheme_Object *port, Scheme_Object *stxsrc, int peek); +MZ_EXTERN intptr_t scheme_tell(Scheme_Object *port); +MZ_EXTERN intptr_t scheme_tell_can_redirect(Scheme_Object *port, int not_via_loc); +MZ_EXTERN intptr_t scheme_output_tell(Scheme_Object *port); +MZ_EXTERN intptr_t scheme_tell_line(Scheme_Object *port); +MZ_EXTERN intptr_t scheme_tell_column(Scheme_Object *port); +MZ_EXTERN void scheme_tell_all(Scheme_Object *port, intptr_t *line, intptr_t *col, intptr_t *pos); +MZ_EXTERN void scheme_set_port_location(int argc, Scheme_Object **argv); +MZ_EXTERN void scheme_count_lines(Scheme_Object *port); +MZ_EXTERN void scheme_close_input_port(Scheme_Object *port); +MZ_EXTERN void scheme_close_output_port(Scheme_Object *port); + +MZ_EXTERN Scheme_Object *scheme_write_special(int argc, Scheme_Object *argv[]); +MZ_EXTERN Scheme_Object *scheme_write_special_nonblock(int argc, Scheme_Object *argv[]); + +MZ_EXTERN Scheme_Object *scheme_make_write_evt(const char *who, Scheme_Object *port, + Scheme_Object *special, char *str, intptr_t start, intptr_t size); + +MZ_EXTERN Scheme_Port *scheme_port_record(Scheme_Object *port); +MZ_EXTERN Scheme_Input_Port *scheme_input_port_record(Scheme_Object *port); +MZ_EXTERN Scheme_Output_Port *scheme_output_port_record(Scheme_Object *port); +XFORM_NONGCING MZ_EXTERN int scheme_is_input_port(Scheme_Object *port); +XFORM_NONGCING MZ_EXTERN int scheme_is_output_port(Scheme_Object *port); + +MZ_EXTERN Scheme_Object *scheme_make_port_type(const char *name); +MZ_EXTERN Scheme_Input_Port *scheme_make_input_port(Scheme_Object *subtype, void *data, + Scheme_Object *name, + Scheme_Get_String_Fun get_byte_string_fun, + Scheme_Peek_String_Fun peek_string_fun, + Scheme_Progress_Evt_Fun progress_evt_fun, + Scheme_Peeked_Read_Fun peeked_read_fun, + Scheme_In_Ready_Fun byte_ready_fun, + Scheme_Close_Input_Fun close_fun, + Scheme_Need_Wakeup_Input_Fun need_wakeup_fun, + int must_close); +MZ_EXTERN Scheme_Output_Port *scheme_make_output_port(Scheme_Object *subtype, void *data, + Scheme_Object *name, + Scheme_Write_String_Evt_Fun write_byte_string_evt_fun, + Scheme_Write_String_Fun write_byte_string_fun, + Scheme_Out_Ready_Fun ready_fun, + Scheme_Close_Output_Fun close_fun, + Scheme_Need_Wakeup_Output_Fun need_wakeup_fun, + Scheme_Write_Special_Evt_Fun write_special_evt_fun, + Scheme_Write_Special_Fun write_special_fun, + int must_close); +MZ_EXTERN void scheme_set_next_port_custodian(Scheme_Custodian *c); + +MZ_EXTERN void scheme_set_port_location_fun(Scheme_Port *port, + Scheme_Location_Fun location_fun); +MZ_EXTERN void scheme_set_port_count_lines_fun(Scheme_Port *port, + Scheme_Count_Lines_Fun count_lines_fun); +MZ_EXTERN void scheme_port_count_lines(Scheme_Port *ip, const char *buffer, + intptr_t offset, intptr_t got); + +MZ_EXTERN Scheme_Object *scheme_progress_evt_via_get(Scheme_Input_Port *port); +MZ_EXTERN int scheme_peeked_read_via_get(Scheme_Input_Port *port, + intptr_t size, + Scheme_Object *unless_evt, + Scheme_Object *target_ch); +MZ_EXTERN Scheme_Object *scheme_write_evt_via_write(Scheme_Output_Port *port, + const char *str, intptr_t offset, intptr_t size); +MZ_EXTERN Scheme_Object *scheme_write_special_evt_via_write_special(Scheme_Output_Port *port, + Scheme_Object *special); + +MZ_EXTERN Scheme_Object *scheme_open_input_file(const char *name, const char *who); +MZ_EXTERN Scheme_Object *scheme_open_output_file(const char *name, const char *who); +MZ_EXTERN Scheme_Object *scheme_open_input_output_file(const char *name, const char *who, Scheme_Object **oport); +MZ_EXTERN Scheme_Object *scheme_open_output_file_with_mode(const char *name, const char *who, int text); + +MZ_EXTERN Scheme_Object *scheme_make_file_input_port(FILE *fp); +MZ_EXTERN Scheme_Object *scheme_make_named_file_input_port(FILE *fp, Scheme_Object *name); +MZ_EXTERN Scheme_Object *scheme_make_file_output_port(FILE *fp); + +MZ_EXTERN Scheme_Object *scheme_make_fd_input_port(int fd, Scheme_Object *name, int regfile, int win_textmode); +MZ_EXTERN Scheme_Object *scheme_make_fd_output_port(int fd, Scheme_Object *name, int regfile, int win_textmode, int read_too); + +MZ_EXTERN Scheme_Object *scheme_make_byte_string_input_port(const char *str); +MZ_EXTERN Scheme_Object *scheme_make_sized_byte_string_input_port(const char *str, intptr_t len); +MZ_EXTERN Scheme_Object *scheme_make_byte_string_output_port(); +MZ_EXTERN char *scheme_get_sized_byte_string_output(Scheme_Object *port, intptr_t *len); +MZ_EXTERN char *scheme_get_reset_sized_byte_string_output(Scheme_Object *port, intptr_t *len, int reset, intptr_t startpos, intptr_t endpos); + +MZ_EXTERN void scheme_pipe(Scheme_Object **read, Scheme_Object **write); +MZ_EXTERN void scheme_pipe_with_limit(Scheme_Object **write, Scheme_Object **read, int maxsize); + +MZ_EXTERN Scheme_Object *scheme_make_null_output_port(int can_write_special); +MZ_EXTERN Scheme_Object *scheme_make_redirect_output_port(Scheme_Object *port); + +MZ_EXTERN intptr_t scheme_set_file_position(Scheme_Object *port, intptr_t pos); + +MZ_EXTERN int scheme_file_exists(char *filename); +MZ_EXTERN int scheme_directory_exists(char *dirname); +MZ_EXTERN char *scheme_expand_filename(char* filename, int ilen, const char *errorin, int *ex, int guards); +MZ_EXTERN char *scheme_expand_user_filename(char* filename, int ilen, const char *errorin, int *ex, int guards); +MZ_EXTERN char *scheme_expand_string_filename(Scheme_Object *f, const char *errorin, int *ex, int guards); + +MZ_EXTERN char *scheme_os_getcwd(char *buf, size_t buflen, int *actlen, int noexn); +MZ_EXTERN int scheme_os_setcwd(char *buf, int noexn); +MZ_EXTERN char *scheme_getdrive(void); + +MZ_EXTERN Scheme_Object *scheme_split_path(const char *path, int len, Scheme_Object **base, int *isdir, int kind); +MZ_EXTERN Scheme_Object *scheme_build_path(int argc, Scheme_Object **argv); +MZ_EXTERN Scheme_Object *scheme_path_to_directory_path(Scheme_Object *p); +MZ_EXTERN Scheme_Object *scheme_path_to_complete_path(Scheme_Object *path, Scheme_Object *relto_path); +MZ_EXTERN Scheme_Object *scheme_simplify_path(int argc, Scheme_Object *argv[]); + +MZ_EXTERN Scheme_Object *scheme_make_path(const char *chars); +MZ_EXTERN Scheme_Object *scheme_make_sized_path(char *chars, intptr_t len, int copy); +MZ_EXTERN Scheme_Object *scheme_make_sized_offset_path(char *chars, intptr_t d, intptr_t len, int copy); +MZ_EXTERN Scheme_Object *scheme_make_sized_offset_kind_path(char *chars, intptr_t d, intptr_t len, int copy, int kind); +MZ_EXTERN Scheme_Object *scheme_make_path_without_copying(char *chars); + +MZ_EXTERN void *scheme_alloc_fdset_array(int count, int permanent); +MZ_EXTERN void *scheme_init_fdset_array(void *fdarray, int count); +MZ_EXTERN void *scheme_get_fdset(void *fdarray, int pos); +MZ_EXTERN void scheme_fdzero(void *fd); +MZ_EXTERN void scheme_fdset(void *fd, int pos); +MZ_EXTERN void scheme_fdclr(void *fd, int pos); +MZ_EXTERN int scheme_fdisset(void *fd, int pos); +MZ_EXTERN void scheme_add_fd_handle(void *h, void *fds, int repost); +MZ_EXTERN void scheme_add_fd_eventmask(void *fds, int mask); +MZ_EXTERN void scheme_collapse_win_fd(void *fds); + +MZ_EXTERN void scheme_set_wakeup_time(void *fds, double end_time); + +MZ_EXTERN void scheme_security_check_file(const char *who, const char *filename, int guards); +MZ_EXTERN void scheme_security_check_file_link(const char *who, const char *filename, const char *content); +MZ_EXTERN void scheme_security_check_network(const char *who, const char *host, int port, int client); + +MZ_EXTERN struct mz_addrinfo *scheme_get_host_address(const char *address, int id, int *err, + int family, int passive, int tcp); +MZ_EXTERN void scheme_free_host_address(struct mz_addrinfo *a); +MZ_EXTERN const char *scheme_host_address_strerror(int errnum); +MZ_EXTERN void scheme_getnameinfo(void *sa, int salen, + char *host, int hostlen, + char *serv, int servlen); + +MZ_EXTERN int scheme_get_port_file_descriptor(Scheme_Object *p, intptr_t *_fd); +MZ_EXTERN intptr_t scheme_get_port_fd(Scheme_Object *p); +MZ_EXTERN int scheme_get_port_socket(Scheme_Object *p, intptr_t *_s); +MZ_EXTERN void scheme_socket_to_ports(intptr_t s, const char *name, int takeover, + Scheme_Object **_inp, Scheme_Object **_outp); + +MZ_EXTERN Scheme_Object *scheme_fd_to_semaphore(intptr_t fd, int mode, int is_socket); + +MZ_EXTERN void scheme_set_type_printer(Scheme_Type stype, Scheme_Type_Printer printer); +MZ_EXTERN void scheme_print_bytes(Scheme_Print_Params *pp, const char *str, int offset, int len); +MZ_EXTERN void scheme_print_utf8(Scheme_Print_Params *pp, const char *str, int offset, int len); +MZ_EXTERN void scheme_print_string(Scheme_Print_Params *pp, const mzchar *str, int offset, int len); + +MZ_EXTERN Scheme_Object *scheme_read_byte_string(Scheme_Object *port); + +/*========================================================================*/ +/* namespace/environment */ +/*========================================================================*/ + +MZ_EXTERN Scheme_Object *scheme_make_namespace(int argc, Scheme_Object *argv[]); + +MZ_EXTERN void scheme_add_global(const char *name, Scheme_Object *val, Scheme_Env *env); +MZ_EXTERN void scheme_add_global_symbol(Scheme_Object *name, Scheme_Object *val, + Scheme_Env *env); + +MZ_EXTERN Scheme_Object *scheme_make_envunbox(Scheme_Object *value); + +MZ_EXTERN Scheme_Object *scheme_lookup_global(Scheme_Object *symbol, Scheme_Env *env); + +MZ_EXTERN Scheme_Bucket *scheme_global_bucket(Scheme_Object *symbol, Scheme_Env *env); +MZ_EXTERN Scheme_Bucket *scheme_module_bucket(Scheme_Object *mod, Scheme_Object *var, int pos, Scheme_Env *env); + +MZ_EXTERN Scheme_Object *scheme_builtin_value(const char *name); /* convenience */ + +MZ_EXTERN void scheme_set_global_bucket(char *proc, Scheme_Bucket *var, Scheme_Object *val, + int set_undef); + +MZ_EXTERN Scheme_Env *scheme_primitive_module(Scheme_Object *name, Scheme_Env *for_env); +MZ_EXTERN void scheme_finish_primitive_module(Scheme_Env *env); +MZ_EXTERN void scheme_set_primitive_module_phaseless(Scheme_Env *env, int phaseless); +MZ_EXTERN void scheme_protect_primitive_provide(Scheme_Env *env, Scheme_Object *name); + +MZ_EXTERN Scheme_Object *scheme_make_modidx(Scheme_Object *path, + Scheme_Object *base, + Scheme_Object *resolved); + +MZ_EXTERN Scheme_Object *scheme_dynamic_require(int argc, Scheme_Object *argv[]); +MZ_EXTERN Scheme_Object *scheme_dynamic_require_reader(int argc, Scheme_Object *argv[]); +MZ_EXTERN Scheme_Object *scheme_namespace_require(Scheme_Object *); + +MZ_EXTERN int scheme_is_module_path(Scheme_Object *); +MZ_EXTERN int scheme_is_module_path_index(Scheme_Object *); +MZ_EXTERN int scheme_is_resolved_module_path(Scheme_Object *); + +MZ_EXTERN Scheme_Object *scheme_datum_to_kernel_stx(Scheme_Object *e); + +MZ_EXTERN int scheme_module_is_declared(Scheme_Object *name, int try_load); + +/*========================================================================*/ +/* symbols */ +/*========================================================================*/ + +MZ_EXTERN Scheme_Object *scheme_intern_symbol(const char *name); +MZ_EXTERN Scheme_Object *scheme_intern_exact_symbol(const char *name, uintptr_t len); +MZ_EXTERN Scheme_Object *scheme_intern_exact_char_symbol(const mzchar *name, uintptr_t len); +MZ_EXTERN Scheme_Object *scheme_make_symbol(const char *name); /* Make uninterned */ +MZ_EXTERN Scheme_Object *scheme_make_exact_symbol(const char *name, uintptr_t len); /* Exact case */ +MZ_EXTERN Scheme_Object *scheme_make_exact_char_symbol(const mzchar *name, uintptr_t len); /* Exact case */ +MZ_EXTERN const char *scheme_symbol_name(Scheme_Object *sym); +MZ_EXTERN const char *scheme_symbol_name_and_size(Scheme_Object *sym, uintptr_t *l, int flags); +MZ_EXTERN char *scheme_symbol_val(Scheme_Object *sym); + +MZ_EXTERN Scheme_Object *scheme_intern_exact_keyword(const char *name, uintptr_t len); +MZ_EXTERN Scheme_Object *scheme_intern_exact_char_keyword(const mzchar *name, uintptr_t len); + +/*========================================================================*/ +/* structs */ +/*========================================================================*/ + +MZ_EXTERN Scheme_Object **scheme_make_struct_values(Scheme_Object *struct_type, + Scheme_Object **names, + int count, int flags); +MZ_EXTERN Scheme_Object **scheme_make_struct_names(Scheme_Object *base, + Scheme_Object *field_names, + int flags, int *count_out); +MZ_EXTERN Scheme_Object *scheme_make_struct_type(Scheme_Object *base, + Scheme_Object *parent, + Scheme_Object *inspector, + int num_fields, int num_uninit_fields, + Scheme_Object *uninit_val, + Scheme_Object *properties, + Scheme_Object *guard); +MZ_EXTERN Scheme_Object *scheme_make_struct_type2(Scheme_Object *base, + Scheme_Object *parent, + Scheme_Object *inspector, + int num_fields, int num_uninit_fields, + Scheme_Object *uninit_val, + Scheme_Object *proc_attr, + Scheme_Object *properties, + char *immutable_array, + Scheme_Object *guard); +MZ_EXTERN Scheme_Object *scheme_make_struct_instance(Scheme_Object *stype, + int argc, + Scheme_Object **argv); + +XFORM_NONGCING MZ_EXTERN int scheme_is_struct_instance(Scheme_Object *type, Scheme_Object *v); +MZ_EXTERN Scheme_Object *scheme_struct_ref(Scheme_Object *s, int pos); +MZ_EXTERN void scheme_struct_set(Scheme_Object *s, int pos, Scheme_Object *v); + +MZ_EXTERN Scheme_Object *scheme_make_struct_type_property(Scheme_Object *name); +MZ_EXTERN Scheme_Object *scheme_make_struct_type_property_w_guard(Scheme_Object *name, Scheme_Object *guard); +XFORM_NONGCING MZ_EXTERN Scheme_Object *scheme_struct_type_property_ref(Scheme_Object *prop, Scheme_Object *s); +MZ_EXTERN Scheme_Object *scheme_chaperone_struct_type_property_ref(Scheme_Object *prop, Scheme_Object *s); + +MZ_EXTERN Scheme_Object *scheme_make_location(Scheme_Object *src, + Scheme_Object *line, + Scheme_Object *col, + Scheme_Object *pos, + Scheme_Object *span); +MZ_EXTERN int scheme_is_location(Scheme_Object *o); + +MZ_EXTERN Scheme_Object *scheme_make_inspector(Scheme_Object *superior); +XFORM_NONGCING MZ_EXTERN int scheme_is_subinspector(Scheme_Object *i, Scheme_Object *sup); + +/*========================================================================*/ +/* utilities */ +/*========================================================================*/ + +XFORM_NONGCING MZ_EXTERN int scheme_eq(Scheme_Object *obj1, Scheme_Object *obj2); +XFORM_NONGCING MZ_EXTERN int scheme_eqv(Scheme_Object *obj1, Scheme_Object *obj2); +MZ_EXTERN int scheme_equal(Scheme_Object *obj1, Scheme_Object *obj2); +MZ_EXTERN int scheme_chaperone_of(Scheme_Object *obj1, Scheme_Object *obj2); +MZ_EXTERN int scheme_impersonator_of(Scheme_Object *obj1, Scheme_Object *obj2); + +#ifdef MZ_PRECISE_GC +XFORM_NONGCING MZ_EXTERN intptr_t scheme_hash_key(Scheme_Object *o); +#endif +MZ_EXTERN intptr_t scheme_equal_hash_key(Scheme_Object *o); +MZ_EXTERN intptr_t scheme_equal_hash_key2(Scheme_Object *o); +MZ_EXTERN intptr_t scheme_recur_equal_hash_key(Scheme_Object *o, void *cycle_data); +MZ_EXTERN intptr_t scheme_recur_equal_hash_key2(Scheme_Object *o, void *cycle_data); +XFORM_NONGCING MZ_EXTERN intptr_t scheme_eqv_hash_key(Scheme_Object *o); +XFORM_NONGCING MZ_EXTERN intptr_t scheme_eqv_hash_key2(Scheme_Object *o); + +MZ_EXTERN void scheme_set_type_equality(Scheme_Type type, + Scheme_Equal_Proc f, + Scheme_Primary_Hash_Proc hash1, + Scheme_Secondary_Hash_Proc hash2); +MZ_EXTERN int scheme_recur_equal(Scheme_Object *obj1, Scheme_Object *obj2, void *cycle_info); + +MZ_EXTERN Scheme_Object *scheme_build_list(int argc, Scheme_Object **argv); +MZ_EXTERN Scheme_Object *scheme_build_list_offset(int argc, Scheme_Object **argv, int delta); + +XFORM_NONGCING MZ_EXTERN int scheme_is_list(Scheme_Object *obj1); +XFORM_NONGCING MZ_EXTERN int scheme_list_length(Scheme_Object *list); +XFORM_NONGCING MZ_EXTERN int scheme_proper_list_length(Scheme_Object *list); + +MZ_EXTERN Scheme_Object *scheme_alloc_list(int size); +MZ_EXTERN Scheme_Object *scheme_map_1(Scheme_Object *(*f)(Scheme_Object*), Scheme_Object *l); + +MZ_EXTERN Scheme_Object *scheme_car(Scheme_Object *pair); +MZ_EXTERN Scheme_Object *scheme_cdr(Scheme_Object *pair); +MZ_EXTERN Scheme_Object *scheme_cadr(Scheme_Object *pair); +MZ_EXTERN Scheme_Object *scheme_caddr(Scheme_Object *pair); + +MZ_EXTERN Scheme_Object *scheme_vector_to_list(Scheme_Object *vec); +MZ_EXTERN Scheme_Object *scheme_list_to_vector(Scheme_Object *list); + +MZ_EXTERN Scheme_Object *scheme_append(Scheme_Object *lstx, Scheme_Object *lsty); +MZ_EXTERN Scheme_Object *scheme_reverse(Scheme_Object *l); + +MZ_EXTERN Scheme_Object *scheme_box(Scheme_Object *v); +MZ_EXTERN Scheme_Object *scheme_unbox(Scheme_Object *obj); +MZ_EXTERN void scheme_set_box(Scheme_Object *b, Scheme_Object *v); + +MZ_EXTERN Scheme_Object *scheme_make_weak_box(Scheme_Object *v); +MZ_EXTERN Scheme_Object *scheme_make_late_weak_box(Scheme_Object *v); + +MZ_EXTERN Scheme_Object *scheme_make_ephemeron(Scheme_Object *key, Scheme_Object *val); +MZ_EXTERN Scheme_Object *scheme_ephemeron_value(Scheme_Object *o); +MZ_EXTERN Scheme_Object *scheme_ephemeron_key(Scheme_Object *o); + +MZ_EXTERN Scheme_Object *scheme_make_late_will_executor(); + +MZ_EXTERN Scheme_Object *scheme_load(const char *file); +MZ_EXTERN Scheme_Object *scheme_load_extension(const char *filename, Scheme_Env *env); +MZ_EXTERN void scheme_register_extension_global(void *ptr, intptr_t size); + +MZ_EXTERN intptr_t scheme_get_seconds(void); +XFORM_NONGCING MZ_EXTERN uintptr_t scheme_get_milliseconds(void); +XFORM_NONGCING MZ_EXTERN double scheme_get_inexact_milliseconds(void); +XFORM_NONGCING MZ_EXTERN intptr_t scheme_get_process_milliseconds(void); +XFORM_NONGCING MZ_EXTERN intptr_t scheme_get_process_children_milliseconds(void); +XFORM_NONGCING MZ_EXTERN intptr_t scheme_get_thread_milliseconds(Scheme_Object *thrd); + +MZ_EXTERN char *scheme_banner(void); +MZ_EXTERN char *scheme_version(void); + +MZ_EXTERN int scheme_check_proc_arity(const char *where, int a, + int which, int argc, Scheme_Object **argv); +MZ_EXTERN int scheme_check_proc_arity2(const char *where, int a, + int which, int argc, Scheme_Object **argv, + int false_ok); + +MZ_EXTERN char *scheme_make_provided_string(Scheme_Object *o, int count, intptr_t *len); +MZ_EXTERN char *scheme_make_args_string(const char *s, int which, int argc, Scheme_Object **argv, intptr_t *len); +MZ_EXTERN char *scheme_make_arg_lines_string(const char *s, int which, int argc, Scheme_Object **argv, intptr_t *len); + +MZ_EXTERN const char *scheme_system_library_subpath(); + +MZ_EXTERN void scheme_signal_received(void); +MZ_EXTERN void scheme_signal_received_at(void *); +MZ_EXTERN void *scheme_get_signal_handle(); +MZ_EXTERN void scheme_wait_until_signal_received(void); + +MZ_EXTERN intptr_t scheme_char_strlen(const mzchar *s); + +MZ_EXTERN Scheme_Object *scheme_stx_extract_marks(Scheme_Object *stx); + +MZ_EXTERN int scheme_get_place_id(void); + +MZ_EXTERN Scheme_Hash_Table *scheme_get_place_table(void); +MZ_EXTERN void *scheme_register_process_global(const char *key, void *val); + +MZ_EXTERN Scheme_Object *scheme_malloc_key(void); +MZ_EXTERN void scheme_free_key(Scheme_Object *k); + +MZ_EXTERN void *scheme_jit_find_code_end(void *p); +MZ_EXTERN void scheme_jit_now(Scheme_Object *f); + +MZ_EXTERN void scheme_set_signal_handler(int sig_id, Scheme_Signal_Handler_Proc proc); diff --git a/racket/src/include/schemegc2.h b/racket/src/include/schemegc2.h new file mode 100644 index 0000000000..50de3453e6 --- /dev/null +++ b/racket/src/include/schemegc2.h @@ -0,0 +1,666 @@ +#ifndef __mzscheme_gc_2__ +#define __mzscheme_gc_2__ + +#ifndef GC2_JUST_MACROS +# ifdef INCLUDE_WITHOUT_PATHS +# include "schthread.h" +# else +# include "../include/schthread.h" +# endif +#endif + +# ifdef __GNUC__ +# define MAYBE_UNUSED __attribute__((unused)) +# else +# define MAYBE_UNUSED +# endif + +/***************************************************************************/ +/*** See README for a general overview of the interface architecture. ***/ +/***************************************************************************/ + +#ifndef GC2_JUST_MACROS + +struct NewGC; + +typedef int (*Size_Proc)(void *obj); +typedef int (*Size2_Proc)(void *obj, struct NewGC *); +typedef int (*Mark_Proc)(void *obj); +typedef int (*Mark2_Proc)(void *obj, struct NewGC *); +typedef int (*Fixup_Proc)(void *obj); +typedef int (*Fixup2_Proc)(void *obj, struct NewGC *); +typedef void (*GC_collect_start_callback_Proc)(void); +typedef void (*GC_collect_end_callback_Proc)(void); +typedef void (*GC_collect_inform_callback_Proc)(int master_gc, int major_gc, int inc_gc, + intptr_t pre_used, intptr_t post_used, + intptr_t pre_admin, intptr_t post_admin, + intptr_t post_child_places_used); +typedef uintptr_t (*GC_get_thread_stack_base_Proc)(void); +typedef void (*GC_Post_Propagate_Hook_Proc)(struct NewGC *); +typedef int (*GC_Treat_As_Incremental_Mark_Proc)(void *p); +/* + Types of the traversal procs (supplied by Racket); see overview in README + for information about traversals. The return value is the size of + the object in words. */ + +# ifdef GC2_JUST_MACROS_AND_TYPEDEFS +# define GC2_JUST_MACROS +# endif + +#endif + +#ifndef GC2_JUST_MACROS + +#include + +#ifndef GC2_EXTERN +# ifdef GC2_AS_EXPORT +# define GC2_EXTERN __declspec(dllexport) +# endif +# ifdef GC2_AS_IMPORT +# define GC2_EXTERN __declspec(dllimport) +# endif +# ifndef GC2_EXTERN +# define GC2_EXTERN extern +# endif +#endif + +# ifdef __cplusplus +extern "C" { +# endif + +/***************************************************************************/ +/* Administration */ +/***************************************************************************/ + +GC2_EXTERN void GC_set_get_thread_stack_base(uintptr_t (*)(void)); +/* + Sets callback called by GC to get the base for stack traversal in the current + thread (see README). The returned address must not be in the middle + of a variable-stack record. */ + +GC2_EXTERN void GC_set_stack_base(void *base); +GC2_EXTERN uintptr_t GC_get_stack_base(void); +/* + Called by Racket to set/get value used for stack base when + GC_get_thread_stack_base is null. This is mainly useful for getting + Racket started, before it has multiple threads. */ + +GC2_EXTERN void GC_add_roots(void *start, void *end); +/* + Called by Racket to install roots. The memory between + `start' (inclusive) and `end' (exclusive) contains pointers. */ + +GC2_EXTERN void GC_init_type_tags(int count, int pair, int mutable_pair, int weakbox, + int ephemeron, int weakarray, int custbox, + int phantom); +/* + Called by Racket to indicate the number of different type tags it + uses, starting from 0. `count' is always less than 256. The weakbox + argument is the value to be used for tagging weak box, the + ephemeron is the value to tagging an ephemeron, etc. (The GC has some + freedom in the layout of a weak box or ephemeron, so it performs weak + box traversals itself, but Racket gets to choose the tag.) */ + +GC2_EXTERN void GC_register_root_custodian(void *); +/* + Registers the root custodian. */ + +GC2_EXTERN void GC_register_new_thread(void *, void *); +/* + Indicates that a just-allocated point is for a thread + or place owned by a particular custodian. */ + +GC2_EXTERN void GC_register_thread(void *, void *); +/* + Indicates that a a thread or place is now owned by a + particular custodian. */ + +GC2_EXTERN GC_collect_start_callback_Proc GC_set_collect_start_callback(GC_collect_start_callback_Proc); +GC2_EXTERN GC_collect_end_callback_Proc GC_set_collect_end_callback(GC_collect_end_callback_Proc); +GC2_EXTERN void GC_set_collect_inform_callback(GC_collect_inform_callback_Proc); +GC2_EXTERN void GC_set_post_propagate_hook(GC_Post_Propagate_Hook_Proc); +GC2_EXTERN void GC_set_treat_as_incremental_mark(short tag, GC_Treat_As_Incremental_Mark_Proc); +/* + Sets callbacks called by GC before/after performing a collection. Used by + Racket to zero out some data and record collection times. The end + procedure should be called before finalizations are performed. */ + +typedef void (*GC_Out_Of_Memory_Proc)(void); +GC2_EXTERN GC_Out_Of_Memory_Proc GC_out_of_memory; +GC2_EXTERN GC_Out_Of_Memory_Proc GC_get_out_of_memory(void); +GC2_EXTERN void GC_set_out_of_memory(GC_Out_Of_Memory_Proc GC_out_of_memory); +/* + Called by GC when it can't satify a memory request. GC_out_of_memory() + might perform a longjmp. The get/set variant sets a thread-local procedure. */ + +GC2_EXTERN void (*GC_report_out_of_memory)(void); +/* + Called by GC when it has to give up, maybe due to running out of memory + during a collection. */ + +GC2_EXTERN void GC_dump(void); +/* + Dumps memory state info to stderr. */ + +GC2_EXTERN intptr_t GC_get_memory_use(void *c); +/* + Returns the number of currently-allocated bytes (specifically for + custodian c, as much as the GC's accounting makes possible). */ + +GC2_EXTERN intptr_t GC_get_memory_ever_used(); +/* + Returns the total number of allocated bytes, including + bytes that have since been reclaimed. */ + +GC2_EXTERN intptr_t GC_get_memory_max_allocated(); +/* + Returns the maximum number of bytes allocated at once, including + GC overhead but not including phantom bytes. */ + +GC2_EXTERN int GC_accouting_enabled(); +/* + Reports whether memory accounting is enabled. */ + +#define MZACCT_REQUIRE 0 +#define MZACCT_LIMIT 1 +GC2_EXTERN int GC_set_account_hook(int type, void *c1, uintptr_t b, void *c2); +/* + Set a memory-accounting property. Returns 0 for failure (i.e., not + supported). */ + +GC2_EXTERN uintptr_t GC_get_account_memory_limit(void *c1); +/* + Returns a memory accounting limit for c1 (or any ancestor), + or 0 if none is set. */ + +GC2_EXTERN void GC_set_accounting_custodian(void *c); +/* + Sets a custodian for checking memory limits for the next allocation. + This custodian should be cleared when allocation returns, but it + will be reset to NULL if a GC is triggered. */ + +GC2_EXTERN void GC_gcollect(void); +GC2_EXTERN void GC_gcollect_minor(void); +/* + Performs an immediate [full] collection. */ + +GC2_EXTERN void GC_enable_collection(int on); +/* + Performs an immediate (full) collection. */ + +GC2_EXTERN void GC_request_incremental_mode(void); +/* + Requests incremental mode; lasts until the next major collection. */ + +GC2_EXTERN void GC_set_incremental_mode(int on); +/* + Sets whether incremental mode is the default (1), always disabled (0), + or available on demand (-1). */ + +GC2_EXTERN void GC_free_all(void); +/* + Releases all memory, removes all signal handlers, etc. + This is mainly useful for unloading a DLL within an embedding + program tht will keep running. */ + +/***************************************************************************/ +/* Allocation */ +/***************************************************************************/ + +GC2_EXTERN void *GC_malloc(size_t size_in_bytes); +/* + Alloc an array of pointers, initially zeroed. */ + +GC2_EXTERN void *GC_malloc_one_tagged(size_t); +/* + Alloc a tagged item, initially zeroed. Racket sets the tag + before a collection. */ + +GC2_EXTERN void *GC_malloc_one_small_tagged(size_t); +/* + Like GC_malloc_one_tagged, but the size must be less than 1kb, + it must not be zero, and it must be a multiple of the word size. */ + +GC2_EXTERN void *GC_malloc_one_small_dirty_tagged(size_t); +/* + Like GC_malloc_one_small_tagged, but the memory is not + zeroed. The client must set all words in the allocated + object before a GC can occur. */ + +GC2_EXTERN void *GC_malloc_pair(void *car, void *cdr); +/* + Like GC_malloc_one_tagged, but even more streamlined. + The main potential advantage is that `car' and `cdr' don't + have to be retained by the callee in the case of a GC. */ + +GC2_EXTERN void *GC_malloc_atomic(size_t size_in_bytes); +/* + Alloc pointerless memory (not necessarily zeroed). */ + +#define GC_malloc_atomic_tagged GC_malloc_one_tagged +#define GC_malloc_small_atomic_tagged GC_malloc_one_small_dirty_tagged +/* + Alloc pointer-free tagged memory (not necessarily zeroed). + Racket sets the tag before a collection. */ + +GC2_EXTERN void *GC_malloc_atomic_uncollectable(size_t size_in_bytes); +/* + Like plain malloc: pointer-free, never collected. */ + +GC2_EXTERN void *GC_malloc_allow_interior(size_t size_in_bytes); +/* + Alloc an array of pointers (typically large), and recognize + pointers into the middle of the array, or just past the end of the + array. */ + +GC2_EXTERN void *GC_malloc_atomic_allow_interior(size_t size_in_bytes); +/* + Like GC_malloc_allow_interior(), but for an atomic object. */ + +GC2_EXTERN void *GC_malloc_tagged_allow_interior(size_t size_in_bytes); +/* + Like GC_malloc_allow_interior(), but for a tagged object. */ + +GC2_EXTERN void *GC_malloc_weak_array(size_t size_in_bytes, void *replace_val); +/* + Alloc an array of weak pointers, initially zeroed. When a value in + the array is collected, it's replaced by `replace-val'. The + presence of a pointer in the array doesn't keep the referenced + memory from being collected. See also README for information about + the structure of the array. */ + +GC2_EXTERN void GC_free(void *); +/* + Lets the collector optionally reverse an allocation immediately. + [Generally a no-op.] */ + +GC2_EXTERN void *GC_malloc_weak_box(void *p, void **secondary, int soffset, int is_late); +/* + Allocate a weak box. See README for details. */ + +GC2_EXTERN void *GC_malloc_ephemeron(void *p, void *p2); +/* + Allocate an ephemeron. See README for details. */ + +GC2_EXTERN void **GC_malloc_immobile_box(void *p); +GC2_EXTERN void GC_free_immobile_box(void **b); +/* + Allocate (or free) a non-GCed box containing a pointer to a GCed + value. The pointer is stored as the first longword of the box. */ + +GC2_EXTERN intptr_t GC_malloc_stays_put_threshold(); +/* + Returns a minimum size for which allocations generate + objects that never move, and where pointers are allowed + into the object's interior. */ + +GC2_EXTERN int GC_is_on_allocated_page(void *p); +/* + Returns 1 if p refers to a page of memory on which + the GC allocates objects (although p may or may not + be a valid pointer to the start of an alloctaed object). */ + +GC2_EXTERN int GC_allocate_phantom_bytes(void *pb, intptr_t); +/* + Returns 0 if allocation should fail due to a memory limit, + 1 otherwise. The representative `pb` determines who is charged. */ + +GC2_EXTERN intptr_t GC_max_nursery_object_size(); +/* + Returns a lower bound on the maximum size allowed for allocation + in the nursery. */ + +/***************************************************************************/ +/* Memory tracing */ +/***************************************************************************/ +GC2_EXTERN int GC_mtrace_new_id(void *f); +GC2_EXTERN int GC_mtrace_union_current_with(int newval); + +/***************************************************************************/ +/* Finalization */ +/***************************************************************************/ + +typedef void (*GC_finalization_proc)(void *p, void *data); +/* + Type of a finalization procedure. */ + +GC2_EXTERN void GC_set_finalizer(void *p, int tagged, int level, + GC_finalization_proc f, void *data, + GC_finalization_proc *oldf, void **olddata); +/* + See README for details. */ + +/***************************************************************************/ +/* Cooperative GC */ +/***************************************************************************/ + +THREAD_LOCAL_DECL(GC2_EXTERN void **GC_variable_stack); +/* + See the general overview in README. */ + +GC2_EXTERN void **GC_get_variable_stack(); +GC2_EXTERN void GC_set_variable_stack(void **p); + +GC2_EXTERN void GC_register_traversers(short tag, Size_Proc size, Mark_Proc mark, Fixup_Proc fixup, + int is_constant_size, int is_atomic); +GC2_EXTERN void GC_register_traversers2(short tag, Size2_Proc size, Mark2_Proc mark, Fixup2_Proc fixup, + int is_constant_size, int is_atomic); +/* + Registers a traversal procedure for a tag. Obviously, a traversal + procedure must be installed for each tag before a collection + happens where an instance of the tag as been allocated. If objects + using the tag are always of the same size, is_constant_size can be + non-zero, and `size' must return the right size given a null + pointer. If objects using the tag are atomic, is_atomic can be + non-zero. */ + +/* #define gcMARK(x) ... see below ... */ +/* #define gcMARK_TYPED(t, x) ... see below ... */ +/* #define gcMARK_TYPED_NOW(t, x) ... see below ... */ +/* #define gcFIXUP(x) ... see below ... */ +/* #define gcFIXUP_TYPED(t, x) ... see below ... */ +/* #define gcFIXUP_TYPED_NOW(t, x) ... see below ... */ +/* Macros that, given an l-value and optional type, marks the + referenced memory as live and updates the pointer as necessary + (i.e., if it's GCable memory that is moving). The `x' argument can + appear in the macro's output multiple times, and the output can be + a statement rather than a expression. + + The NOW versions force the mark or fixup to happen immediately. The + other forms can queue the mark or fixup to happen later. */ + +/* #define gcBYTES_TO_WORDS(x) ((x + 3) >> 2) */ +/* + Helpful macro for computing the return value in a traversal proc, + which must be in words. */ + +GC2_EXTERN void *GC_resolve(void *p); +GC2_EXTERN void *GC_resolve2(void *p, struct NewGC *gc); +/* + Can be called by a traversal proc to get the current address of a + object that might have been moved already. This is necessary, for + example, if the size or structure of an object depends on the + content of an object it references. For example, the size of a + class instance usually depends on a field count that is stored in + the class. In fixup mode, call this before fixing up. */ + +GC2_EXTERN void *GC_fixup_self(void *p); +/* + Can be called by a fixup proc to get the final address of the + pointer passed to the fixup proc. This is the identity function + only when objects are moved before fixup, but objects might + be moved after fixup. */ + +/* INTERNAL for the current implementation (used by macros): */ +GC2_EXTERN void GC_mark(void *p); +GC2_EXTERN void GC_fixup(void *p); +GC2_EXTERN void GC_mark2(void *p, struct NewGC *gc); +GC2_EXTERN void GC_fixup2(void *p, struct NewGC *gc); +/* + Used in the expansion of gcMARK and gcFIXUP. + + These procedures and variables are internal to the current + implementation, and are *not* part of the "official" interface. */ + +GC2_EXTERN int GC_is_marked2(const void *p, struct NewGC *gc); +/* + Reports whether p has been marked. */ + +GC2_EXTERN int GC_current_mode(struct NewGC *gc); +# define GC_CURRENT_MODE_MINOR 0 +# define GC_CURRENT_MODE_MAJOR 1 +# define GC_CURRENT_MODE_INCREMENTAL 2 +# define GC_CURRENT_MODE_INCREMENTAL_FINAL 3 +# define GC_CURRENT_MODE_BACKPOINTER_REMARK 4 +# define GC_CURRENT_MODE_ACCOUNTING 5 +/* + The mode during a mark or fixup function callback. + The GC_CURRENT_MODE_BACKPOINTER_REMARK mode corresponds + to re-traversing an old-generation object that was + formerly marked but has been mutated. */ + +GC2_EXTERN int GC_is_partial(struct NewGC *gc); +/* + Reports whether the current GC is a non-full collection + or accounting pass. GC_current_mode() is better. */ + +GC2_EXTERN int GC_started_incremental(struct NewGC *gc); +/* + Reports whether the current GC uses incremental collection. */ + +GC2_EXTERN void *GC_malloc_for_incremental(size_t amt); +/* + Use only when GC_started_incremental(); allocates + atomic memory that will be released at the end of the + next full collection, which ends the current + incremental pass. */ + +GC2_EXTERN void GC_mark_no_recur(struct NewGC *gc, int enable); +GC2_EXTERN void GC_retract_only_mark_stack_entry(void *pf, struct NewGC *gc); +/* + Used for very special collaboration with GC. */ + + +GC2_EXTERN void GC_mark_variable_stack(void **var_stack, + intptr_t delta, + void *limit, + void *stack_mem); +GC2_EXTERN void GC_fixup_variable_stack(void **var_stack, + intptr_t delta, + void *limit, + void *stack_mem); +GC2_EXTERN void GC_mark2_variable_stack(void **var_stack, + intptr_t delta, + void *limit, + void *stack_mem, + struct NewGC *gc); +GC2_EXTERN void GC_fixup2_variable_stack(void **var_stack, + intptr_t delta, + void *limit, + void *stack_mem, + struct NewGC *gc); +/* + Can be called by a mark or fixup traversal proc to traverse and + update a chunk of (atomically-allocated) memory containing an image + of the stack. + + The `var_stack' argument corresponds to the value of GC_var_stack + for the copied stack (see the overview at the top of this + file). The `var_stack' pointer refers to the address of the chain + in the original stack, not in the heap copy. The `delta' argument + specifies the difference heap_copy_address - stack_address (where + stack_address is the numerically lower bound for the copied stack + region, regardless of which direction the stack grows). The `limit' + argument corresponds to the value that would have been returned by + GC_get_thread_stack_base() at the time the stack was copied. + + The `stack_mem' argument indicates the start of the allocated memory + that contains `var_stack'. It is used for backtraces. */ + +GC2_EXTERN int GC_merely_accounting(); +/* + Can be called by a mark or fixup traversal proc to determine whether + the traversal is merely for accounting, in which case some marking + can be skipped if the corresponding data should be charged to a + different object. */ + +GC2_EXTERN void GC_write_barrier(void *p); +/* + Explicit write barrier to ensure that a write-barrier signal is not + triggered by a memory write. +*/ + +GC2_EXTERN void GC_switch_out_master_gc(); +/* + Makes the current GC the master GC. + Creates a new place specific GC and links it to the master GC. +*/ + +GC2_EXTERN struct NewGC *GC_get_current_instance(); +/* + Returns a representation of the current GC. +*/ + +GC2_EXTERN void GC_construct_child_gc(struct NewGC *parent_gc, intptr_t limit); +/* + Creates a new place-specific GC that is a child for memory-accounting + purposes of the give parent GC. If `limit' is not 0, set the maximum + amount of memory the new GC is supposed to use. +*/ + +GC2_EXTERN intptr_t GC_propagate_hierarchy_memory_use(); +/* + Notifies the parent GC (if any) of memory use by the current GC + and its children. The result is total memory use. */ + +GC2_EXTERN void GC_destruct_child_gc(); +/* + Destroys a place-specific GC once the place has finished. +*/ + +GC2_EXTERN void *GC_switch_to_master_gc(); +/* + Switches to the master GC. +*/ + +GC2_EXTERN void GC_switch_back_from_master(void *gc); +/* + Switches to back to gc from the master GC. +*/ + +GC2_EXTERN int GC_is_using_master(); +/* + Reports whether the master GC is in use after a non-master GC + has been created. +*/ + +GC2_EXTERN intptr_t GC_alloc_alignment(); +/* + Guaranteeed alignment for nusery pages. Returns a constant, and + can be called from any thread. +*/ + +GC2_EXTERN uintptr_t GC_make_jit_nursery_page(int count, uintptr_t *sz); +/* + Obtains nursery pages from the GC for thread local allocation; + resulting space is count times the allocation alignment. + The result is an uintptr_t because it's not a valid + pointer to a GCable object. The result becomes invalid (i.e. it's collected) + with the next GC. If non-NULL, the `sz' argument is filled + with the length of the allocation area after the result. +*/ + +GC2_EXTERN void GC_check_master_gc_request(); +/* + Checks to see if the master has requested a places major GC run + and executes a GC if requested +*/ + +GC2_EXTERN void GC_set_put_external_event_fd(void *fd); +/* + Sets the fd that can be passed to scheme_signal_received_at to wake up the place for GC +*/ + +GC2_EXTERN void GC_allow_master_gc_check(); +/* + Signals the GC after spawning a place that the places is sufficiently set up to participate + in master gc collections +*/ + +GC2_EXTERN void GC_create_message_allocator(); +/* + Saves off the gc->gen0 to gc->saved_allocator. + Captures all memory allocations until GC_finish_message_allocator i + is called so they can be sent to another place. +*/ + +GC2_EXTERN void *GC_finish_message_allocator(); +/* + Stops memory allocation capture. + Restores gc->saved_allocator to gc->gen0. + Returns a void* that represents the message memory captured. +*/ + +GC2_EXTERN void GC_adopt_message_allocator(void *msg_memory); +/* + Adopts the message memory captured by the sending place into + the current receiving place's gc +*/ + +GC2_EXTERN intptr_t GC_is_place(); +/* + Returns 1 if current GC is a place gc. + Otherwise returns 0; +*/ + +GC2_EXTERN int GC_message_small_objects_size(void *msg_memory, intptr_t up_to); +/* + Determines whether the message qualifies as short and whether the + total size of all objects allocated by the message allocator is less + than `up_to' + */ + +GC2_EXTERN intptr_t GC_message_allocator_size(void *msg_memory); +/* + Returns the total size of all memory pages allocated by the message allocator + */ + +GC2_EXTERN void GC_dispose_short_message_allocator(void *msg_memory); +/* + Disposes of small message allocators that were copied by the receiving place + */ + +GC2_EXTERN void GC_destroy_orphan_msg_memory(void *msg_memory); +/* + Used to destroys a message allocators that is still in the place channel queue when + the place channels finalizer is called. + */ + +GC2_EXTERN void GC_report_unsent_message_delta(intptr_t amt); +/* + Report message-in-flight size changes to the GC. This functionality is exposed, + rather than built into GC_finish_message_allocator(), GC_adpot_message_allocator(), + GC_dispose_short_message_allocator(), and GC_destroy_orphan_msg_memory(), so that + meesages to the master GC can be limited as long as the unsent message tracking + is within a factor of 2 or so. + */ + +GC2_EXTERN void GC_set_backpointer_object(void *p); +/* + Registers the current object for backpointers, which is used when backtrace + support is enabled. +*/ + +# ifdef __cplusplus +}; +# endif + +#endif + +/* Macros (implementation-specific): */ +#ifdef SIXTY_FOUR_BIT_INTEGERS +# define gcLOG_WORD_SIZE 3 +#else +# define gcLOG_WORD_SIZE 2 +#endif +#define gcMARK(x) GC_mark(&(x)) +#define gcMARK2(x, gc) GC_mark2(&(x), gc) +#define gcMARK_TYPED(t, x) gcMARK(&(x)) +#define gcMARK2_TYPED(t, x, gc) gcMARK2(&(x), gc) +#define gcMARK_TYPED_NOW(t, x) gcMARK(&(x)) +#define gcMARK2_TYPED_NOW(t, x, gc) gcMARK(&(x), gc) +#define gcFIXUP_TYPED_NOW(t, x) GC_fixup(&(x)) +#define gcFIXUP2_TYPED_NOW(t, x, gc) GC_fixup2(&(x), gc) +#define gcFIXUP_TYPED(t, x) gcFIXUP_TYPED_NOW(void*, x) +#define gcFIXUP2_TYPED(t, x, gc) gcFIXUP2_TYPED_NOW(void*, x, gc) +#define gcFIXUP(x) gcFIXUP_TYPED(void*, x) +#define gcFIXUP2(x, gc) gcFIXUP2_TYPED(void*, x, gc) +#define gcBYTES_TO_WORDS(x) ((x + (1 << gcLOG_WORD_SIZE) - 1) >> gcLOG_WORD_SIZE) +#define gcWORDS_TO_BYTES(x) (x << gcLOG_WORD_SIZE) + +#define GC_NO_SIZE_NEEDED_FROM_PROCS 1 + +#define GC_INTERIORABLES_NEVER_MOVE 1 + +#endif /* __mzscheme_gc_2__ */ diff --git a/racket/src/include/schemex.h b/racket/src/include/schemex.h new file mode 100644 index 0000000000..2f9a678dad --- /dev/null +++ b/racket/src/include/schemex.h @@ -0,0 +1,974 @@ +typedef struct { +/*========================================================================*/ +/* setjmpup (continuations) */ +/*========================================================================*/ +void (*scheme_init_jmpup_buf)(Scheme_Jumpup_Buf *b); +int (*scheme_setjmpup_relative)(Scheme_Jumpup_Buf *b, void *base, + void * volatile start, struct Scheme_Cont *cont); +void (*scheme_longjmpup)(Scheme_Jumpup_Buf *b); +void (*scheme_reset_jmpup_buf)(Scheme_Jumpup_Buf *b); +#ifdef USE_MZ_SETJMP +Scheme_Setjmp_Proc (*scheme_get_mz_setjmp)(void); +int (*scheme_mz_setjmp)(mz_pre_jmp_buf b); +void (*scheme_mz_longjmp)(mz_pre_jmp_buf b, int v); +#endif +void (*scheme_clear_escape)(void); +Scheme_Jumpup_Buf_Holder *(*scheme_new_jmpupbuf_holder)(void); +/*========================================================================*/ +/* parameters */ +/*========================================================================*/ +Scheme_Config *(*scheme_current_config)(void); +Scheme_Config *(*scheme_minimal_config)(void); +Scheme_Config *(*scheme_extend_config)(Scheme_Config *c, int pos, Scheme_Object *init_val); +void (*scheme_install_config)(Scheme_Config *); +Scheme_Object *(*scheme_get_param)(Scheme_Config *c, int pos); +void (*scheme_set_param)(Scheme_Config *c, int pos, Scheme_Object *o); +Scheme_Object *(*scheme_get_thread_param)(Scheme_Config *c, Scheme_Thread_Cell_Table *cells, int pos); +void (*scheme_set_thread_param)(Scheme_Config *c, Scheme_Thread_Cell_Table *cells, int pos, Scheme_Object *o); +Scheme_Env *(*scheme_get_env)(Scheme_Config *config); +Scheme_Thread_Cell_Table *(*scheme_empty_cell_table)(); +Scheme_Thread_Cell_Table *(*scheme_inherit_cells)(Scheme_Thread_Cell_Table *cells); +Scheme_Object *(*scheme_current_break_cell)(); +/*========================================================================*/ +/* threads */ +/*========================================================================*/ +#ifndef USE_THREAD_LOCAL +# ifndef LINK_EXTENSIONS_BY_TABLE +Scheme_Thread *scheme_current_thread; +volatile int scheme_fuel_counter; +# else +Scheme_Thread **scheme_current_thread_ptr; +volatile int *scheme_fuel_counter_ptr; +# endif +#endif +Scheme_Thread *(*scheme_get_current_thread)(); +int (*scheme_is_atomic)(void); +void (*scheme_start_atomic)(void); +void (*scheme_end_atomic)(void); +void (*scheme_end_atomic_no_swap)(void); +void (*scheme_start_in_scheduler)(void); +void (*scheme_end_in_scheduler)(void); +void (*scheme_start_atomic_no_break)(void); +void (*scheme_end_atomic_can_break)(void); +void (*scheme_out_of_fuel)(void); +Scheme_Object *(*scheme_thread)(Scheme_Object *thunk); +Scheme_Object *(*scheme_thread_w_details)(Scheme_Object *thunk, + Scheme_Config *init_config, + Scheme_Thread_Cell_Table *copy_from, + Scheme_Object *break_cell, + Scheme_Custodian *owning_custodian, + int suspend_to_kill); +void (*scheme_kill_thread)(Scheme_Thread *p); +void (*scheme_break_thread)(Scheme_Thread *p); +void (*scheme_break_kind_thread)(Scheme_Thread *p, int kind); +void (*scheme_break_main_thread)(); +void (*scheme_break_main_thread_at)(void *); +void (*scheme_break_kind_main_thread_at)(void *, int kind); +void *(*scheme_get_main_thread_break_handle)(); +void (*scheme_set_break_main_target)(Scheme_Thread *p); +void (*scheme_thread_block)(float sleep_time); +void (*scheme_thread_block_enable_break)(float sleep_time, int enable); +void (*scheme_swap_thread)(Scheme_Thread *process); +void (*scheme_making_progress)(); +void (*scheme_weak_suspend_thread)(Scheme_Thread *p); +void (*scheme_weak_resume_thread)(Scheme_Thread *p); +int (*scheme_block_until)(Scheme_Ready_Fun f, Scheme_Needs_Wakeup_Fun, Scheme_Object *, float); +int (*scheme_block_until_enable_break)(Scheme_Ready_Fun f, Scheme_Needs_Wakeup_Fun, Scheme_Object *, + float, int enable); +int (*scheme_block_until_unless)(Scheme_Ready_Fun f, Scheme_Needs_Wakeup_Fun fdf, + Scheme_Object *data, float delay, + Scheme_Object *unless, + int enable_break); +void (*scheme_wait_input_allowed)(Scheme_Input_Port *port, int nonblock); +int (*scheme_unless_ready)(Scheme_Object *unless); +int (*scheme_in_main_thread)(void); +void (*scheme_cancel_sleep)(void); +void (*scheme_start_sleeper_thread)(void (*mzsleep)(float seconds, void *fds), float secs, void *fds, int hit_fd); +void (*scheme_end_sleeper_thread)(); +void (*scheme_set_place_sleep)(Scheme_Sleep_Proc slp); +void (*scheme_notify_sleep_progress)(); +Scheme_Object *(*scheme_make_thread_cell)(Scheme_Object *def_val, int inherited); +Scheme_Object *(*scheme_thread_cell_get)(Scheme_Object *cell, Scheme_Thread_Cell_Table *cells); +void (*scheme_thread_cell_set)(Scheme_Object *cell, Scheme_Thread_Cell_Table *cells, Scheme_Object *v); +int (*scheme_tls_allocate)(); +void (*scheme_tls_set)(int pos, void *v); +void *(*scheme_tls_get)(int pos); +Scheme_Custodian *(*scheme_make_custodian)(Scheme_Custodian *); +Scheme_Custodian_Reference *(*scheme_add_managed)(Scheme_Custodian *m, Scheme_Object *o, + Scheme_Close_Custodian_Client *f, void *data, + int strong); +Scheme_Custodian_Reference *(*scheme_add_managed_close_on_exit)(Scheme_Custodian *m, Scheme_Object *o, + Scheme_Close_Custodian_Client *f, void *data); +void (*scheme_custodian_check_available)(Scheme_Custodian *m, const char *who, const char *what); +int (*scheme_custodian_is_available)(Scheme_Custodian *m); +void (*scheme_remove_managed)(Scheme_Custodian_Reference *m, Scheme_Object *o); +void (*scheme_close_managed)(Scheme_Custodian *m); +void (*scheme_schedule_custodian_close)(Scheme_Custodian *c); +void (*scheme_add_custodian_extractor)(Scheme_Type t, Scheme_Custodian_Extractor e); +int (*scheme_flush_managed)(Scheme_Plumber *p, int catch_errors); +Scheme_Object *(*scheme_add_flush)(Scheme_Plumber *p, Scheme_Object *proc_or_port, int weak_flush); +void (*scheme_remove_flush)(Scheme_Object *h); +void (*scheme_add_atexit_closer)(Scheme_Exit_Closer_Func f); +int (*scheme_atexit)(void (*func)(void)); +void (*scheme_add_evt)(Scheme_Type type, + Scheme_Ready_Fun ready, + Scheme_Needs_Wakeup_Fun wakeup, + Scheme_Sync_Filter_Fun filter, + int can_redirect); +void (*scheme_add_evt_through_sema)(Scheme_Type type, + Scheme_Sync_Sema_Fun sema, + Scheme_Sync_Filter_Fun filter); +int (*scheme_is_evt)(Scheme_Object *o); +Scheme_Object *(*scheme_sync)(int argc, Scheme_Object *argv[]); +Scheme_Object *(*scheme_sync_enable_break)(int argc, Scheme_Object *argv[]); +Scheme_Object *(*scheme_sync_timeout)(int argc, Scheme_Object *argv[]); +Scheme_Object *(*scheme_make_evt_set)(int argc, Scheme_Object **argv); +void (*scheme_add_swap_callback)(Scheme_Closure_Func f, Scheme_Object *data); +void (*scheme_add_swap_out_callback)(Scheme_Closure_Func f, Scheme_Object *data); +Scheme_Object *(*scheme_call_enable_break)(Scheme_Prim *prim, int argc, Scheme_Object *argv[]); +int (*scheme_close_should_force_port_closed)(); +void (*scheme_push_kill_action)(Scheme_Kill_Action_Func f, void *d); +void (*scheme_pop_kill_action)(); +void (*scheme_set_can_break)(int on); +void (*scheme_push_break_enable)(Scheme_Cont_Frame_Data *cframe, int on, int pre_check); +void (*scheme_pop_break_enable)(Scheme_Cont_Frame_Data *cframe, int post_check); +Scheme_Object *(*scheme_abort_continuation_no_dws)(Scheme_Object *pt, Scheme_Object *v); +Scheme_Object *(*scheme_call_with_composable_no_dws)(Scheme_Object *proc, Scheme_Object *pt); +Scheme_On_Atomic_Timeout_Proc (*scheme_set_on_atomic_timeout)(Scheme_On_Atomic_Timeout_Proc p, void *data); +/*========================================================================*/ +/* error handling */ +/*========================================================================*/ +void (*scheme_signal_error)(const char *msg, ...); +void (*scheme_raise_exn)(int exnid, ...); +void (*scheme_warning)(char *msg, ...); +void (*scheme_raise)(Scheme_Object *exn); +int (*scheme_log_level_p)(Scheme_Logger *logger, int level); +int (*scheme_log_level_topic_p)(Scheme_Logger *logger, int level, Scheme_Object *name); +void (*scheme_log)(Scheme_Logger *logger, int level, int flags, + const char *msg, ...); +void (*scheme_log_w_data)(Scheme_Logger *logger, int level, int flags, + Scheme_Object *data, + const char *msg, ...); +void (*scheme_log_message)(Scheme_Logger *logger, int level, char *buffer, intptr_t len, Scheme_Object *data); +void (*scheme_log_name_message)(Scheme_Logger *logger, int level, Scheme_Object *name, + char *buffer, intptr_t len, Scheme_Object *data); +void (*scheme_log_name_pfx_message)(Scheme_Logger *logger, int level, Scheme_Object *name, + char *buffer, intptr_t len, Scheme_Object *data, + int prefix_message); +void (*scheme_log_abort)(char *buffer); +void (*scheme_log_warning)(char *buffer); +void (*scheme_glib_log_message)(const char *log_domain, int log_level, const char *message, void *user_data); +void *(*scheme_glib_log_message_test)(char *str); +void (*scheme_out_of_memory_abort)(); +void (*scheme_wrong_count)(const char *name, int minc, int maxc, int argc, Scheme_Object **argv); +void (*scheme_wrong_count_m)(const char *name, int minc, int maxc, int argc, Scheme_Object **argv, int is_method); +void (*scheme_case_lambda_wrong_count)(const char *name, int argc, Scheme_Object **argv, int is_method, int count, ...); +void (*scheme_wrong_type)(const char *name, const char *expected, int which, int argc, Scheme_Object **argv); +void (*scheme_wrong_contract)(const char *name, const char *expected, int which, int argc, Scheme_Object **argv); +void (*scheme_wrong_field_type)(Scheme_Object *c_name, const char *expected, Scheme_Object *o); +void (*scheme_wrong_field_contract)(Scheme_Object *c_name, const char *expected, Scheme_Object *o); +void (*scheme_arg_mismatch)(const char *name, const char *msg, Scheme_Object *o); +void (*scheme_contract_error)(const char *name, const char *msg, ...); +void (*scheme_wrong_return_arity)(const char *where, int expected, int got, Scheme_Object **argv, const char *context_detail, ...); +void (*scheme_unbound_global)(Scheme_Bucket *b); +Scheme_Object *(*scheme_dynamic_wind)(void (*pre)(void *), + Scheme_Object *(* volatile act)(void *), + void (* volatile post)(void *), + Scheme_Object *(*jmp_handler)(void *), + void * volatile data); +/*========================================================================*/ +/* types */ +/*========================================================================*/ +Scheme_Type (*scheme_make_type)(const char *name); +char *(*scheme_get_type_name)(Scheme_Type type); +char *(*scheme_get_type_name_or_null)(Scheme_Type type); +/*========================================================================*/ +/* constants */ +/*========================================================================*/ +Scheme_Object *scheme_eof; +Scheme_Object *(*scheme_make_eof)(void); +Scheme_Object *scheme_null; +Scheme_Object *(*scheme_make_null)(void); +Scheme_Object *scheme_true; +Scheme_Object *(*scheme_make_true)(void); +Scheme_Object *scheme_false; +Scheme_Object *(*scheme_make_false)(void); +Scheme_Object *scheme_void; +Scheme_Object *(*scheme_make_void)(void); +Scheme_Object *scheme_undefined; +Scheme_Object *scheme_tail_call_waiting; +Scheme_Object *scheme_multiple_values; +unsigned short **scheme_uchar_table; +unsigned char **scheme_uchar_cases_table; +unsigned char **scheme_uchar_cats_table; +int *scheme_uchar_ups; +int *scheme_uchar_downs; +int *scheme_uchar_titles; +int *scheme_uchar_folds; +unsigned char *scheme_uchar_combining_classes; +void *scheme_on_demand_jit_code; +/*========================================================================*/ +/* evaluation */ +/*========================================================================*/ +Scheme_Object *(*scheme_eval)(Scheme_Object *obj, Scheme_Env *env); +Scheme_Object *(*scheme_eval_multi)(Scheme_Object *obj, Scheme_Env *env); +Scheme_Object *(*scheme_eval_with_prompt)(Scheme_Object *obj, Scheme_Env *env); +Scheme_Object *(*scheme_eval_multi_with_prompt)(Scheme_Object *obj, Scheme_Env *env); +Scheme_Object *(*scheme_eval_compiled)(Scheme_Object *obj, Scheme_Env *env); +Scheme_Object *(*scheme_eval_compiled_multi)(Scheme_Object *obj, Scheme_Env *env); +Scheme_Object *(*_scheme_eval_compiled)(Scheme_Object *obj, Scheme_Env *env); +Scheme_Object *(*_scheme_eval_compiled_multi)(Scheme_Object *obj, Scheme_Env *env); +Scheme_Object *(*scheme_apply)(Scheme_Object *rator, int num_rands, Scheme_Object **rands); +Scheme_Object *(*scheme_apply_multi)(Scheme_Object *rator, int num_rands, Scheme_Object **rands); +Scheme_Object *(*scheme_apply_no_eb)(Scheme_Object *rator, int num_rands, Scheme_Object **rands); +Scheme_Object *(*scheme_apply_multi_no_eb)(Scheme_Object *rator, int num_rands, Scheme_Object **rands); +Scheme_Object *(*scheme_apply_to_list)(Scheme_Object *rator, Scheme_Object *argss); +Scheme_Object *(*scheme_apply_with_prompt)(Scheme_Object *rator, int num_rands, Scheme_Object **rands); +Scheme_Object *(*scheme_apply_multi_with_prompt)(Scheme_Object *rator, int num_rands, Scheme_Object **rands); +Scheme_Object *(*_scheme_apply_with_prompt)(Scheme_Object *rator, int num_rands, Scheme_Object **rands); +Scheme_Object *(*_scheme_apply_multi_with_prompt)(Scheme_Object *rator, int num_rands, Scheme_Object **rands); +Scheme_Object *(*scheme_eval_string)(const char *str, Scheme_Env *env); +Scheme_Object *(*scheme_eval_string_multi)(const char *str, Scheme_Env *env); +Scheme_Object *(*scheme_eval_string_all)(const char *str, Scheme_Env *env, int all); +Scheme_Object *(*scheme_eval_string_with_prompt)(const char *str, Scheme_Env *env); +Scheme_Object *(*scheme_eval_string_multi_with_prompt)(const char *str, Scheme_Env *env); +Scheme_Object *(*scheme_eval_string_all_with_prompt)(const char *str, Scheme_Env *env, int all); +Scheme_Object *(*scheme_eval_all_with_prompt)(Scheme_Object *port, Scheme_Env *env, int all); +Scheme_Object *(*scheme_eval_module_string)(const char *str, Scheme_Env *env); +Scheme_Object *(*_scheme_apply_known_prim_closure)(Scheme_Object *rator, int argc, + Scheme_Object **argv); +Scheme_Object *(*_scheme_apply_known_prim_closure_multi)(Scheme_Object *rator, int argc, + Scheme_Object **argv); +Scheme_Object *(*_scheme_apply_prim_closure)(Scheme_Object *rator, int argc, + Scheme_Object **argv); +Scheme_Object *(*_scheme_apply_prim_closure_multi)(Scheme_Object *rator, int argc, + Scheme_Object **argv); +Scheme_Object **(*scheme_current_argument_stack)(); +Scheme_Object *(*scheme_call_with_prompt)(Scheme_Closed_Prim f, void *data); +Scheme_Object *(*scheme_call_with_prompt_multi)(Scheme_Closed_Prim f, void *data); +Scheme_Object *(*_scheme_call_with_prompt)(Scheme_Closed_Prim f, void *data); +Scheme_Object *(*_scheme_call_with_prompt_multi)(Scheme_Closed_Prim f, void *data); +Scheme_Object *(*scheme_values)(int c, Scheme_Object **v); +Scheme_Object *(*scheme_check_one_value)(Scheme_Object *v); +/* Tail calls - only use these when you're writing new functions/syntax */ +Scheme_Object *(*scheme_tail_apply)(Scheme_Object *f, int n, Scheme_Object **arg); +Scheme_Object *(*scheme_tail_apply_no_copy)(Scheme_Object *f, int n, Scheme_Object **arg); +Scheme_Object *(*scheme_tail_apply_to_list)(Scheme_Object *f, Scheme_Object *l); +Scheme_Object *(*scheme_tail_eval_expr)(Scheme_Object *obj); +void (*scheme_set_tail_buffer_size)(int s); +Scheme_Object *(*scheme_force_value)(Scheme_Object *); +Scheme_Object *(*scheme_force_one_value)(Scheme_Object *); +void (*scheme_ignore_result)(Scheme_Object *); +MZ_MARK_STACK_TYPE (*scheme_set_cont_mark)(Scheme_Object *key, Scheme_Object *val); +void (*scheme_push_continuation_frame)(Scheme_Cont_Frame_Data *); +void (*scheme_pop_continuation_frame)(Scheme_Cont_Frame_Data *); +void (*scheme_temp_dec_mark_depth)(); +void (*scheme_temp_inc_mark_depth)(); +Scheme_Object *(*scheme_current_continuation_marks)(Scheme_Object *prompt_tag); +Scheme_Object *(*scheme_extract_one_cc_mark)(Scheme_Object *mark_set, + Scheme_Object *key); +Scheme_Object *(*scheme_extract_one_cc_mark_to_tag)(Scheme_Object *mark_set, + Scheme_Object *key, + Scheme_Object *prompt_tag); +/* Internal */ +Scheme_Object *(*scheme_do_eval)(Scheme_Object *obj, int _num_rands, Scheme_Object **rands, int val); +void (*scheme_detach_multple_array)(Scheme_Object **a); +/*========================================================================*/ +/* memory management */ +/*========================================================================*/ +/* The core allocator functions depend on the GC. Macros in scheme.h */ +/* map to the apporpriate core allocation function. */ +#ifndef SCHEME_NO_GC +# ifndef SCHEME_NO_GC_PROTO +void *(*GC_malloc)(size_t size_in_bytes); +void *(*GC_malloc_atomic)(size_t size_in_bytes); +# ifdef MZ_PRECISE_GC +void *(*GC_malloc_one_tagged)(size_t size_in_bytes); +void *(*GC_malloc_atomic_uncollectable)(size_t size_in_bytes); +void *(*scheme_malloc_uncollectable)(size_t size_in_bytes); +void *(*GC_malloc_allow_interior)(size_t size_in_bytes); +void *(*GC_malloc_atomic_allow_interior)(size_t size_in_bytes); +void *(*GC_malloc_tagged_allow_interior)(size_t size_in_bytes); +# else +void *(*GC_malloc_stubborn)(size_t size_in_bytes); +void *(*GC_malloc_uncollectable)(size_t size_in_bytes); +# endif +# endif +#endif +void *(*scheme_malloc_code)(intptr_t size); +void *(*scheme_malloc_permanent_code)(intptr_t size); +void (*scheme_free_code)(void *p); +#ifndef MZ_PRECISE_GC +void *(*scheme_malloc_gcable_code)(intptr_t size); +#endif +void *(*scheme_malloc_eternal)(size_t n); +void (*scheme_end_stubborn_change)(void *p); +void *(*scheme_calloc)(size_t num, size_t size); +char *(*scheme_strdup)(const char *str); +char *(*scheme_strdup_eternal)(const char *str); +void *(*scheme_malloc_fail_ok)(void *(*f)(size_t), size_t); +#ifndef MZ_PRECISE_GC +void (*scheme_late_weak_reference)(void **p); +void (*scheme_late_weak_reference_indirect)(void **p, void *v); +void (*scheme_weak_reference)(void **p); +void (*scheme_weak_reference_indirect)(void **p, void *v); +void (*scheme_unweak_reference)(void **p); +#endif +void (*scheme_add_finalizer)(void *p, void (*f)(void *p, void *data), void *data); +void (*scheme_add_finalizer_once)(void *p, void (*f)(void *p, void *data), void *data); +void (*scheme_subtract_finalizer)(void *p, void (*f)(void *p, void *data), void *data); +void (*scheme_add_scheme_finalizer)(void *p, void (*f)(void *p, void *data), void *data); +void (*scheme_add_scheme_finalizer_once)(void *p, void (*f)(void *p, void *data), void *data); +void (*scheme_register_finalizer)(void *p, + void (*f)(void *p, void *data), void *data, + void (**oldf)(void *p, void *data), + void **olddata); +void (*scheme_remove_all_finalization)(void *p); +void (*scheme_dont_gc_ptr)(void *p); +void (*scheme_gc_ptr_ok)(void *p); +void (*scheme_collect_garbage)(void); +void (*scheme_collect_garbage_minor)(void); +void (*scheme_enable_garbage_collection)(int on); +void (*scheme_incremental_garbage_collection)(int on); +#ifdef MZ_PRECISE_GC +# ifndef USE_THREAD_LOCAL +void **GC_variable_stack; +# endif +void (*GC_register_traversers)(short tag, Size_Proc size, Mark_Proc mark, Fixup_Proc fixup, + int is_constant_size, int is_atomic); +void *(*GC_resolve)(void *p); +void (*GC_mark)(void *p); +void (*GC_fixup)(void *p); +void *(*GC_fixup_self)(void *p); +#endif +void **(*scheme_malloc_immobile_box)(void *p); +void (*scheme_free_immobile_box)(void **b); +Scheme_Object *(*scheme_add_gc_callback)(Scheme_Object *pre, Scheme_Object *post); +void (*scheme_remove_gc_callback)(Scheme_Object *key); +void (*scheme_register_type_gc_shape)(Scheme_Type type, intptr_t *shape_str); +/*========================================================================*/ +/* hash tables */ +/*========================================================================*/ +Scheme_Bucket_Table *(*scheme_make_bucket_table)(intptr_t size_hint, int type); +void (*scheme_add_to_table)(Scheme_Bucket_Table *table, const char *key, void *val, int); +void (*scheme_change_in_table)(Scheme_Bucket_Table *table, const char *key, void *new_val); +void *(*scheme_lookup_in_table)(Scheme_Bucket_Table *table, const char *key); +Scheme_Bucket *(*scheme_bucket_from_table)(Scheme_Bucket_Table *table, const char *key); +int (*scheme_bucket_table_equal)(Scheme_Bucket_Table *t1, Scheme_Bucket_Table *t2); +Scheme_Bucket_Table *(*scheme_clone_bucket_table)(Scheme_Bucket_Table *bt); +void (*scheme_clear_bucket_table)(Scheme_Bucket_Table *bt); +int (*scheme_bucket_table_index)(Scheme_Bucket_Table *hash, mzlonglong pos, Scheme_Object **_key, Scheme_Object **_val); +Scheme_Object *(*scheme_bucket_table_next)(Scheme_Bucket_Table *hash, mzlonglong start); +Scheme_Hash_Table *(*scheme_make_hash_table)(int type); +Scheme_Hash_Table *(*scheme_make_hash_table_equal)(); +Scheme_Hash_Table *(*scheme_make_hash_table_eqv)(); +void (*scheme_hash_set)(Scheme_Hash_Table *table, Scheme_Object *key, Scheme_Object *val); +Scheme_Object *(*scheme_hash_get)(Scheme_Hash_Table *table, Scheme_Object *key); +Scheme_Object *(*scheme_eq_hash_get)(Scheme_Hash_Table *table, Scheme_Object *key); +void (*scheme_hash_set_atomic)(Scheme_Hash_Table *table, Scheme_Object *key, Scheme_Object *val); +Scheme_Object *(*scheme_hash_get_atomic)(Scheme_Hash_Table *table, Scheme_Object *key); +int (*scheme_hash_table_equal)(Scheme_Hash_Table *t1, Scheme_Hash_Table *t2); +int (*scheme_is_hash_table_equal)(Scheme_Object *o); +int (*scheme_is_hash_table_eqv)(Scheme_Object *o); +Scheme_Hash_Table *(*scheme_clone_hash_table)(Scheme_Hash_Table *ht); +void (*scheme_clear_hash_table)(Scheme_Hash_Table *ht); +int (*scheme_hash_table_index)(Scheme_Hash_Table *hash, mzlonglong pos, Scheme_Object **_key, Scheme_Object **_val); +Scheme_Object *(*scheme_hash_table_next)(Scheme_Hash_Table *hash, mzlonglong start); +Scheme_Hash_Tree *(*scheme_make_hash_tree)(int kind); +Scheme_Hash_Tree *(*scheme_hash_tree_set)(Scheme_Hash_Tree *tree, Scheme_Object *key, Scheme_Object *val); +Scheme_Object *(*scheme_hash_tree_get)(Scheme_Hash_Tree *tree, Scheme_Object *key); +Scheme_Object *(*scheme_eq_hash_tree_get)(Scheme_Hash_Tree *tree, Scheme_Object *key); +mzlonglong (*scheme_hash_tree_next)(Scheme_Hash_Tree *tree, mzlonglong pos); +int (*scheme_hash_tree_index)(Scheme_Hash_Tree *tree, mzlonglong pos, Scheme_Object **_key, Scheme_Object **_val); +int (*scheme_hash_tree_equal)(Scheme_Hash_Tree *t1, Scheme_Hash_Tree *t2); +int (*scheme_is_hash_tree_equal)(Scheme_Object *o); +int (*scheme_is_hash_tree_eqv)(Scheme_Object *o); +/*========================================================================*/ +/* basic Scheme value constructors */ +/*========================================================================*/ +Scheme_Object *(*scheme_make_prim)(Scheme_Prim *prim); +Scheme_Object *(*scheme_make_noneternal_prim)(Scheme_Prim *prim); +Scheme_Object *(*scheme_make_prim_w_arity)(Scheme_Prim *prim, const char *name, + mzshort mina, mzshort maxa); +Scheme_Object *(*scheme_make_folding_prim)(Scheme_Prim *prim, + const char *name, + mzshort mina, mzshort maxa, + short functional); +Scheme_Object *(*scheme_make_immed_prim)(Scheme_Prim *prim, + const char *name, + mzshort mina, mzshort maxa); +Scheme_Object *(*scheme_make_noncm_prim)(Scheme_Prim *prim, + const char *name, + mzshort mina, mzshort maxa); +Scheme_Object *(*scheme_make_noneternal_prim_w_arity)(Scheme_Prim *prim, + const char *name, + mzshort mina, mzshort maxa); +Scheme_Object *(*scheme_make_prim_w_everything)(Scheme_Prim *fun, int eternal, + const char *name, + mzshort mina, mzshort maxa, + int folding, + mzshort minr, mzshort maxr); +Scheme_Object *(*scheme_make_prim_closure_w_arity)(Scheme_Primitive_Closure_Proc *prim, + int size, Scheme_Object **vals, + const char *name, + mzshort mina, mzshort maxa); +Scheme_Object *(*scheme_make_folding_prim_closure)(Scheme_Primitive_Closure_Proc *prim, + int size, Scheme_Object **vals, + const char *name, + mzshort mina, mzshort maxa, + short functional); +Scheme_Object *(*scheme_make_closed_prim)(Scheme_Closed_Prim *prim, void *data); +Scheme_Object *(*scheme_make_closed_prim_w_arity)(Scheme_Closed_Prim *prim, + void *data, const char *name, + mzshort mina, mzshort maxa); +Scheme_Object *(*scheme_make_folding_closed_prim)(Scheme_Closed_Prim *prim, + void *data, const char *name, + mzshort mina, mzshort maxa, + short functional); +Scheme_Object *(*scheme_make_closed_prim_w_everything)(Scheme_Closed_Prim *fun, + void *data, + const char *name, + mzshort mina, mzshort maxa, + short folding, + mzshort minr, mzshort maxr); +void (*scheme_prim_is_method)(Scheme_Object *o); +Scheme_Object *(*scheme_make_pair)(Scheme_Object *car, Scheme_Object *cdr); +Scheme_Object *(*scheme_make_mutable_pair)(Scheme_Object *car, Scheme_Object *cdr); +Scheme_Object *(*scheme_make_list_pair)(Scheme_Object *car, Scheme_Object *cdr); +Scheme_Object *(*scheme_make_raw_pair)(Scheme_Object *, Scheme_Object *); +Scheme_Object *(*scheme_make_byte_string)(const char *chars); +Scheme_Object *(*scheme_make_sized_byte_string)(char *chars, intptr_t len, int copy); +Scheme_Object *(*scheme_make_sized_offset_byte_string)(char *chars, intptr_t d, intptr_t len, int copy); +Scheme_Object *(*scheme_make_immutable_sized_byte_string)(char *chars, intptr_t len, int copy); +Scheme_Object *(*scheme_make_byte_string_without_copying)(char *chars); +Scheme_Object *(*scheme_alloc_byte_string)(intptr_t size, char fill); +Scheme_Object *(*scheme_append_byte_string)(Scheme_Object *, Scheme_Object *); +Scheme_Object *(*scheme_make_utf8_string)(const char *chars); +Scheme_Object *(*scheme_make_sized_utf8_string)(char *chars, intptr_t len); +Scheme_Object *(*scheme_make_sized_offset_utf8_string)(char *chars, intptr_t d, intptr_t len); +Scheme_Object *(*scheme_make_immutable_sized_utf8_string)(char *chars, intptr_t len); +Scheme_Object *(*scheme_make_locale_string)(const char *chars); +Scheme_Object *(*scheme_char_string_to_byte_string)(Scheme_Object *s); +Scheme_Object *(*scheme_byte_string_to_char_string)(Scheme_Object *s); +Scheme_Object *(*scheme_char_string_to_byte_string_locale)(Scheme_Object *s); +Scheme_Object *(*scheme_byte_string_to_char_string_locale)(Scheme_Object *s); +Scheme_Object *(*scheme_char_string_to_path)(Scheme_Object *p); +Scheme_Object *(*scheme_path_to_char_string)(Scheme_Object *p); +Scheme_Object *(*scheme_make_char_string)(const mzchar *chars); +Scheme_Object *(*scheme_make_sized_char_string)(mzchar *chars, intptr_t len, int copy); +Scheme_Object *(*scheme_make_sized_offset_char_string)(mzchar *chars, intptr_t d, intptr_t len, int copy); +Scheme_Object *(*scheme_make_immutable_sized_char_string)(mzchar *chars, intptr_t len, int copy); +Scheme_Object *(*scheme_make_char_string_without_copying)(mzchar *chars); +Scheme_Object *(*scheme_alloc_char_string)(intptr_t size, mzchar fill); +Scheme_Object *(*scheme_append_char_string)(Scheme_Object *, Scheme_Object *); +mzchar *(*scheme_string_recase)(mzchar *s, int d, int len, int mode, int inplace, int *_len); +Scheme_Object *(*scheme_make_vector)(intptr_t size, Scheme_Object *fill); +Scheme_Double_Vector *(*scheme_alloc_flvector)(intptr_t size); +#ifdef MZ_LONG_DOUBLE +Scheme_Long_Double_Vector *(*scheme_alloc_extflvector)(intptr_t size); +#endif +Scheme_Vector *(*scheme_alloc_fxvector)(intptr_t size); +Scheme_Object *(*scheme_make_integer_value)(intptr_t i); +Scheme_Object *(*scheme_make_integer_value_from_unsigned)(uintptr_t i); +Scheme_Object *(*scheme_make_integer_value_from_long_long)(mzlonglong i); +Scheme_Object *(*scheme_make_integer_value_from_unsigned_long_long)(umzlonglong i); +Scheme_Object *(*scheme_make_integer_value_from_long_halves)(uintptr_t lowhalf, uintptr_t hihalf); +Scheme_Object *(*scheme_make_integer_value_from_unsigned_long_halves)(uintptr_t lowhalf, uintptr_t hihalf); +Scheme_Object *(*scheme_make_double)(double d); +#ifdef MZ_LONG_DOUBLE +Scheme_Object *(*scheme_make_long_double)(mz_long_double d); +#endif +#ifdef MZ_USE_SINGLE_FLOATS +Scheme_Object *(*scheme_make_float)(float f) ; +#endif +Scheme_Object *(*scheme_make_char)(mzchar ch); +Scheme_Object *(*scheme_make_char_or_nul)(mzchar ch); +Scheme_Object *(*scheme_make_sema)(intptr_t v); +void (*scheme_post_sema)(Scheme_Object *o); +void (*scheme_post_sema_all)(Scheme_Object *o); +int (*scheme_wait_sema)(Scheme_Object *o, int just_try); +int (*scheme_try_plain_sema)(Scheme_Object *o); +Scheme_Object **scheme_char_constants; +Scheme_Object *(*scheme_make_channel)(); +Scheme_Object *(*scheme_make_channel_put_evt)(Scheme_Object *ch, Scheme_Object *v); +int (*scheme_get_int_val)(Scheme_Object *o, intptr_t *v); +int (*scheme_get_unsigned_int_val)(Scheme_Object *o, uintptr_t *v); +int (*scheme_get_long_long_val)(Scheme_Object *o, mzlonglong *v); +int (*scheme_get_unsigned_long_long_val)(Scheme_Object *o, umzlonglong *v); +double (*scheme_real_to_double)(Scheme_Object *r); +#ifdef MZ_LONG_DOUBLE +mz_long_double (*scheme_real_to_long_double)(Scheme_Object *r); +#endif +Scheme_Object *(*scheme_make_cptr)(void *cptr, Scheme_Object *typetag); +Scheme_Object *(*scheme_make_offset_cptr)(void *cptr, intptr_t offset, Scheme_Object *typetag); +Scheme_Object *(*scheme_make_external_cptr)(void *cptr, Scheme_Object *typetag); +Scheme_Object *(*scheme_make_offset_external_cptr)(void *cptr, intptr_t offset, Scheme_Object *typetag); +int (*scheme_is_cpointer)(Scheme_Object *cp); +const char *(*scheme_get_proc_name)(Scheme_Object *p, int *len, int for_error); +/*========================================================================*/ +/* strings */ +/*========================================================================*/ +intptr_t (*scheme_utf8_decode)(const unsigned char *s, intptr_t start, intptr_t end, + unsigned int *us, intptr_t dstart, intptr_t dend, + intptr_t *ipos, char utf16, int permissive); +intptr_t (*scheme_utf8_decode_offset_prefix)(const unsigned char *s, intptr_t start, intptr_t end, + unsigned int *us, intptr_t dstart, intptr_t dend, + intptr_t *ipos, char utf16, int permissive); +intptr_t (*scheme_utf8_decode_as_prefix)(const unsigned char *s, intptr_t start, intptr_t end, + unsigned int *us, intptr_t dstart, intptr_t dend, + intptr_t *ipos, char utf16, int permissive); +intptr_t (*scheme_utf8_decode_all)(const unsigned char *s, intptr_t len, unsigned int *us, + int permissive); +intptr_t (*scheme_utf8_decode_prefix)(const unsigned char *s, intptr_t len, unsigned int *us, + int permissive); +mzchar *(*scheme_utf8_decode_to_buffer)(const unsigned char *s, intptr_t len, + mzchar *buf, intptr_t blen); +mzchar *(*scheme_utf8_decode_to_buffer_len)(const unsigned char *s, intptr_t len, + mzchar *buf, intptr_t blen, intptr_t *rlen); +intptr_t (*scheme_utf8_decode_count)(const unsigned char *s, intptr_t start, intptr_t end, + int *_state, int might_continue, int permissive); +intptr_t (*scheme_utf8_encode)(const unsigned int *us, intptr_t start, intptr_t end, + unsigned char *s, intptr_t dstart, + char utf16); +intptr_t (*scheme_utf8_encode_all)(const unsigned int *us, intptr_t len, unsigned char *s); +char *(*scheme_utf8_encode_to_buffer)(const mzchar *s, intptr_t len, + char *buf, intptr_t blen); +char *(*scheme_utf8_encode_to_buffer_len)(const mzchar *s, intptr_t len, + char *buf, intptr_t blen, intptr_t *rlen); +unsigned short *(*scheme_ucs4_to_utf16)(const mzchar *text, intptr_t start, intptr_t end, + unsigned short *buf, intptr_t bufsize, + intptr_t *ulen, intptr_t term_size); +mzchar *(*scheme_utf16_to_ucs4)(const unsigned short *text, intptr_t start, intptr_t end, + mzchar *buf, intptr_t bufsize, + intptr_t *ulen, intptr_t term_size); +Scheme_Object *(*scheme_open_converter)(const char *from_e, const char *to_e); +void (*scheme_close_converter)(Scheme_Object *conv); +char *(*scheme_getenv)(char *name); +/*========================================================================*/ +/* bignums */ +/*========================================================================*/ +Scheme_Object *(*scheme_make_bignum)(intptr_t v); +Scheme_Object *(*scheme_make_bignum_from_unsigned)(uintptr_t v); +Scheme_Object *(*scheme_make_bignum_from_long_long)(mzlonglong v); +Scheme_Object *(*scheme_make_bignum_from_unsigned_long_long)(umzlonglong v); +double (*scheme_bignum_to_double)(const Scheme_Object *n); +Scheme_Object *(*scheme_bignum_from_double)(double d); +#ifdef MZ_LONG_DOUBLE +mz_long_double (*scheme_bignum_to_long_double)(const Scheme_Object *n); +Scheme_Object *(*scheme_bignum_from_long_double)(mz_long_double d); +#endif +#ifdef MZ_USE_SINGLE_FLOATS +float (*scheme_bignum_to_float)(const Scheme_Object *n); +Scheme_Object *(*scheme_bignum_from_float)(float d); +#else +# define scheme_bignum_to_float scheme_bignum_to_double +# define scheme_bignum_from_float scheme_bignum_from_double +#endif +char *(*scheme_bignum_to_string)(const Scheme_Object *n, int radix); +char *(*scheme_bignum_to_allocated_string)(const Scheme_Object *n, int radix, int alloc); +Scheme_Object *(*scheme_read_bignum)(const mzchar *str, int offset, int radix); +Scheme_Object *(*scheme_read_bignum_bytes)(const char *str, int offset, int radix); +Scheme_Object *(*scheme_bignum_normalize)(const Scheme_Object *n); +/*========================================================================*/ +/* rationals */ +/*========================================================================*/ +Scheme_Object *(*scheme_make_rational)(const Scheme_Object *r, const Scheme_Object *d); +double (*scheme_rational_to_double)(const Scheme_Object *n); +Scheme_Object *(*scheme_rational_from_double)(double d); +#ifdef MZ_LONG_DOUBLE +mz_long_double (*scheme_rational_to_long_double)(const Scheme_Object *n); +Scheme_Object *(*scheme_rational_from_long_double)(mz_long_double d); +#endif +#ifdef MZ_USE_SINGLE_FLOATS +float (*scheme_rational_to_float)(const Scheme_Object *n); +Scheme_Object *(*scheme_rational_from_float)(float d); +#else +# define scheme_rational_to_float scheme_rational_to_double +# define scheme_rational_from_float scheme_rational_from_double +#endif +Scheme_Object *(*scheme_rational_normalize)(const Scheme_Object *n); +Scheme_Object *(*scheme_rational_numerator)(const Scheme_Object *n); +Scheme_Object *(*scheme_rational_denominator)(const Scheme_Object *n); +/*========================================================================*/ +/* complexes */ +/*========================================================================*/ +Scheme_Object *(*scheme_make_complex)(const Scheme_Object *r, const Scheme_Object *i); +Scheme_Object *(*scheme_complex_normalize)(const Scheme_Object *n); +Scheme_Object *(*scheme_complex_real_part)(const Scheme_Object *n); +Scheme_Object *(*scheme_complex_imaginary_part)(const Scheme_Object *n); +/* Exact/inexact: */ +int (*scheme_is_exact)(const Scheme_Object *n); +int (*scheme_is_inexact)(const Scheme_Object *n); +/*========================================================================*/ +/* macros, syntax, and compilation */ +/*========================================================================*/ +Scheme_Object *(*scheme_expand)(Scheme_Object *form, Scheme_Env *env); +Scheme_Object *(*scheme_compile)(Scheme_Object *form, Scheme_Env *env, int writeable); +/*========================================================================*/ +/* ports */ +/*========================================================================*/ +Scheme_Object *(*scheme_read)(Scheme_Object *port); +Scheme_Object *(*scheme_read_syntax)(Scheme_Object *port, Scheme_Object *stxsrc); +void (*scheme_write)(Scheme_Object *obj, Scheme_Object *port); +void (*scheme_print)(Scheme_Object *obj, Scheme_Object *port); +void (*scheme_display)(Scheme_Object *obj, Scheme_Object *port); +void (*scheme_write_w_max)(Scheme_Object *obj, Scheme_Object *port, intptr_t maxl); +void (*scheme_display_w_max)(Scheme_Object *obj, Scheme_Object *port, intptr_t maxl); +void (*scheme_print_w_max)(Scheme_Object *obj, Scheme_Object *port, intptr_t maxl); +void (*scheme_write_byte_string)(const char *str, intptr_t len, Scheme_Object *port); +void (*scheme_write_char_string)(const mzchar *str, intptr_t len, Scheme_Object *port); +intptr_t (*scheme_put_byte_string)(const char *who, Scheme_Object *port, + const char *str, intptr_t d, intptr_t len, + int rarely_block); +intptr_t (*scheme_put_char_string)(const char *who, Scheme_Object *port, + const mzchar *str, intptr_t d, intptr_t len); +char *(*scheme_write_to_string)(Scheme_Object *obj, intptr_t *len); +char *(*scheme_display_to_string)(Scheme_Object *obj, intptr_t *len); +char *(*scheme_print_to_string)(Scheme_Object *obj, intptr_t *len); +char *(*scheme_write_to_string_w_max)(Scheme_Object *obj, intptr_t *len, intptr_t maxl); +char *(*scheme_display_to_string_w_max)(Scheme_Object *obj, intptr_t *len, intptr_t maxl); +char *(*scheme_print_to_string_w_max)(Scheme_Object *obj, intptr_t *len, intptr_t maxl); +void (*scheme_debug_print)(Scheme_Object *obj); +void (*scheme_flush_output)(Scheme_Object *port); +char *(*scheme_format)(mzchar *format, int flen, int argc, Scheme_Object **argv, intptr_t *rlen); +void (*scheme_printf)(mzchar *format, int flen, int argc, Scheme_Object **argv); +char *(*scheme_format_utf8)(char *format, int flen, int argc, Scheme_Object **argv, intptr_t *rlen); +void (*scheme_printf_utf8)(char *format, int flen, int argc, Scheme_Object **argv); +int (*scheme_getc)(Scheme_Object *port); +int (*scheme_get_byte)(Scheme_Object *port); +int (*scheme_peekc)(Scheme_Object *port); +int (*scheme_peek_byte)(Scheme_Object *port); +int (*scheme_peekc_skip)(Scheme_Object *port, Scheme_Object *skip); +int (*scheme_peek_byte_skip)(Scheme_Object *port, Scheme_Object *skip, Scheme_Object *unless_evt); +int (*scheme_getc_special_ok)(Scheme_Object *port); +int (*scheme_get_byte_special_ok)(Scheme_Object *port); +int (*scheme_peekc_special_ok)(Scheme_Object *port); +int (*scheme_peek_byte_special_ok_skip)(Scheme_Object *port, Scheme_Object *skip, Scheme_Object *unless_evt); +int (*scheme_peekc_special_ok_skip)(Scheme_Object *port, Scheme_Object *skip); +void (*scheme_ungetc)(int ch, Scheme_Object *port); +int (*scheme_byte_ready)(Scheme_Object *port); +int (*scheme_char_ready)(Scheme_Object *port); +int (*scheme_peekc_is_ungetc)(Scheme_Object *port); +void (*scheme_need_wakeup)(Scheme_Object *port, void *fds); +intptr_t (*scheme_get_byte_string)(const char *who, + Scheme_Object *port, + char *buffer, intptr_t offset, intptr_t size, + int only_avail, + int peek, Scheme_Object *peek_skip); +intptr_t (*scheme_get_byte_string_unless)(const char *who, + Scheme_Object *port, + char *buffer, intptr_t offset, intptr_t size, + int only_avail, + int peek, Scheme_Object *peek_skip, + Scheme_Object *unless_evt); +intptr_t (*scheme_get_byte_string_special_ok_unless)(const char *who, + Scheme_Object *port, + char *buffer, intptr_t offset, intptr_t size, + int only_avail, + int peek, Scheme_Object *peek_skip, + Scheme_Object *unless_evt); +Scheme_Object *(*scheme_progress_evt)(Scheme_Object *port); +int (*scheme_peeked_read)(Scheme_Object *port, + intptr_t size, + Scheme_Object *unless_evt, + Scheme_Object *target_evt); +intptr_t (*scheme_get_char_string)(const char *who, + Scheme_Object *port, + mzchar *buffer, intptr_t offset, intptr_t size, + int peek, Scheme_Object *peek_skip); +intptr_t (*scheme_get_bytes)(Scheme_Object *port, intptr_t size, char *buffer, int offset); +Scheme_Object *(*scheme_get_ready_special)(Scheme_Object *port, Scheme_Object *stxsrc, int peek); +intptr_t (*scheme_tell)(Scheme_Object *port); +intptr_t (*scheme_tell_can_redirect)(Scheme_Object *port, int not_via_loc); +intptr_t (*scheme_output_tell)(Scheme_Object *port); +intptr_t (*scheme_tell_line)(Scheme_Object *port); +intptr_t (*scheme_tell_column)(Scheme_Object *port); +void (*scheme_tell_all)(Scheme_Object *port, intptr_t *line, intptr_t *col, intptr_t *pos); +void (*scheme_set_port_location)(int argc, Scheme_Object **argv); +void (*scheme_count_lines)(Scheme_Object *port); +void (*scheme_close_input_port)(Scheme_Object *port); +void (*scheme_close_output_port)(Scheme_Object *port); +Scheme_Object *(*scheme_write_special)(int argc, Scheme_Object *argv[]); +Scheme_Object *(*scheme_write_special_nonblock)(int argc, Scheme_Object *argv[]); +Scheme_Object *(*scheme_make_write_evt)(const char *who, Scheme_Object *port, + Scheme_Object *special, char *str, intptr_t start, intptr_t size); +Scheme_Port *(*scheme_port_record)(Scheme_Object *port); +Scheme_Input_Port *(*scheme_input_port_record)(Scheme_Object *port); +Scheme_Output_Port *(*scheme_output_port_record)(Scheme_Object *port); +int (*scheme_is_input_port)(Scheme_Object *port); +int (*scheme_is_output_port)(Scheme_Object *port); +Scheme_Object *(*scheme_make_port_type)(const char *name); +Scheme_Input_Port *(*scheme_make_input_port)(Scheme_Object *subtype, void *data, + Scheme_Object *name, + Scheme_Get_String_Fun get_byte_string_fun, + Scheme_Peek_String_Fun peek_string_fun, + Scheme_Progress_Evt_Fun progress_evt_fun, + Scheme_Peeked_Read_Fun peeked_read_fun, + Scheme_In_Ready_Fun byte_ready_fun, + Scheme_Close_Input_Fun close_fun, + Scheme_Need_Wakeup_Input_Fun need_wakeup_fun, + int must_close); +Scheme_Output_Port *(*scheme_make_output_port)(Scheme_Object *subtype, void *data, + Scheme_Object *name, + Scheme_Write_String_Evt_Fun write_byte_string_evt_fun, + Scheme_Write_String_Fun write_byte_string_fun, + Scheme_Out_Ready_Fun ready_fun, + Scheme_Close_Output_Fun close_fun, + Scheme_Need_Wakeup_Output_Fun need_wakeup_fun, + Scheme_Write_Special_Evt_Fun write_special_evt_fun, + Scheme_Write_Special_Fun write_special_fun, + int must_close); +void (*scheme_set_next_port_custodian)(Scheme_Custodian *c); +void (*scheme_set_port_location_fun)(Scheme_Port *port, + Scheme_Location_Fun location_fun); +void (*scheme_set_port_count_lines_fun)(Scheme_Port *port, + Scheme_Count_Lines_Fun count_lines_fun); +void (*scheme_port_count_lines)(Scheme_Port *ip, const char *buffer, + intptr_t offset, intptr_t got); +Scheme_Object *(*scheme_progress_evt_via_get)(Scheme_Input_Port *port); +int (*scheme_peeked_read_via_get)(Scheme_Input_Port *port, + intptr_t size, + Scheme_Object *unless_evt, + Scheme_Object *target_ch); +Scheme_Object *(*scheme_write_evt_via_write)(Scheme_Output_Port *port, + const char *str, intptr_t offset, intptr_t size); +Scheme_Object *(*scheme_write_special_evt_via_write_special)(Scheme_Output_Port *port, + Scheme_Object *special); +Scheme_Object *(*scheme_open_input_file)(const char *name, const char *who); +Scheme_Object *(*scheme_open_output_file)(const char *name, const char *who); +Scheme_Object *(*scheme_open_input_output_file)(const char *name, const char *who, Scheme_Object **oport); +Scheme_Object *(*scheme_open_output_file_with_mode)(const char *name, const char *who, int text); +Scheme_Object *(*scheme_make_file_input_port)(FILE *fp); +Scheme_Object *(*scheme_make_named_file_input_port)(FILE *fp, Scheme_Object *name); +Scheme_Object *(*scheme_make_file_output_port)(FILE *fp); +Scheme_Object *(*scheme_make_fd_input_port)(int fd, Scheme_Object *name, int regfile, int win_textmode); +Scheme_Object *(*scheme_make_fd_output_port)(int fd, Scheme_Object *name, int regfile, int win_textmode, int read_too); +Scheme_Object *(*scheme_make_byte_string_input_port)(const char *str); +Scheme_Object *(*scheme_make_sized_byte_string_input_port)(const char *str, intptr_t len); +Scheme_Object *(*scheme_make_byte_string_output_port)(); +char *(*scheme_get_sized_byte_string_output)(Scheme_Object *port, intptr_t *len); +char *(*scheme_get_reset_sized_byte_string_output)(Scheme_Object *port, intptr_t *len, int reset, intptr_t startpos, intptr_t endpos); +void (*scheme_pipe)(Scheme_Object **read, Scheme_Object **write); +void (*scheme_pipe_with_limit)(Scheme_Object **write, Scheme_Object **read, int maxsize); +Scheme_Object *(*scheme_make_null_output_port)(int can_write_special); +Scheme_Object *(*scheme_make_redirect_output_port)(Scheme_Object *port); +intptr_t (*scheme_set_file_position)(Scheme_Object *port, intptr_t pos); +int (*scheme_file_exists)(char *filename); +int (*scheme_directory_exists)(char *dirname); +char *(*scheme_expand_filename)(char* filename, int ilen, const char *errorin, int *ex, int guards); +char *(*scheme_expand_user_filename)(char* filename, int ilen, const char *errorin, int *ex, int guards); +char *(*scheme_expand_string_filename)(Scheme_Object *f, const char *errorin, int *ex, int guards); +char *(*scheme_os_getcwd)(char *buf, size_t buflen, int *actlen, int noexn); +int (*scheme_os_setcwd)(char *buf, int noexn); +char *(*scheme_getdrive)(void); +Scheme_Object *(*scheme_split_path)(const char *path, int len, Scheme_Object **base, int *isdir, int kind); +Scheme_Object *(*scheme_build_path)(int argc, Scheme_Object **argv); +Scheme_Object *(*scheme_path_to_directory_path)(Scheme_Object *p); +Scheme_Object *(*scheme_path_to_complete_path)(Scheme_Object *path, Scheme_Object *relto_path); +Scheme_Object *(*scheme_simplify_path)(int argc, Scheme_Object *argv[]); +Scheme_Object *(*scheme_make_path)(const char *chars); +Scheme_Object *(*scheme_make_sized_path)(char *chars, intptr_t len, int copy); +Scheme_Object *(*scheme_make_sized_offset_path)(char *chars, intptr_t d, intptr_t len, int copy); +Scheme_Object *(*scheme_make_sized_offset_kind_path)(char *chars, intptr_t d, intptr_t len, int copy, int kind); +Scheme_Object *(*scheme_make_path_without_copying)(char *chars); +void *(*scheme_alloc_fdset_array)(int count, int permanent); +void *(*scheme_init_fdset_array)(void *fdarray, int count); +void *(*scheme_get_fdset)(void *fdarray, int pos); +void (*scheme_fdzero)(void *fd); +void (*scheme_fdset)(void *fd, int pos); +void (*scheme_fdclr)(void *fd, int pos); +int (*scheme_fdisset)(void *fd, int pos); +void (*scheme_add_fd_handle)(void *h, void *fds, int repost); +void (*scheme_add_fd_eventmask)(void *fds, int mask); +void (*scheme_collapse_win_fd)(void *fds); +void (*scheme_set_wakeup_time)(void *fds, double end_time); +void (*scheme_security_check_file)(const char *who, const char *filename, int guards); +void (*scheme_security_check_file_link)(const char *who, const char *filename, const char *content); +void (*scheme_security_check_network)(const char *who, const char *host, int port, int client); +struct mz_addrinfo *(*scheme_get_host_address)(const char *address, int id, int *err, + int family, int passive, int tcp); +void (*scheme_free_host_address)(struct mz_addrinfo *a); +const char *(*scheme_host_address_strerror)(int errnum); +void (*scheme_getnameinfo)(void *sa, int salen, + char *host, int hostlen, + char *serv, int servlen); +int (*scheme_get_port_file_descriptor)(Scheme_Object *p, intptr_t *_fd); +intptr_t (*scheme_get_port_fd)(Scheme_Object *p); +int (*scheme_get_port_socket)(Scheme_Object *p, intptr_t *_s); +void (*scheme_socket_to_ports)(intptr_t s, const char *name, int takeover, + Scheme_Object **_inp, Scheme_Object **_outp); +Scheme_Object *(*scheme_fd_to_semaphore)(intptr_t fd, int mode, int is_socket); +void (*scheme_set_type_printer)(Scheme_Type stype, Scheme_Type_Printer printer); +void (*scheme_print_bytes)(Scheme_Print_Params *pp, const char *str, int offset, int len); +void (*scheme_print_utf8)(Scheme_Print_Params *pp, const char *str, int offset, int len); +void (*scheme_print_string)(Scheme_Print_Params *pp, const mzchar *str, int offset, int len); +Scheme_Object *(*scheme_read_byte_string)(Scheme_Object *port); +/*========================================================================*/ +/* namespace/environment */ +/*========================================================================*/ +Scheme_Object *(*scheme_make_namespace)(int argc, Scheme_Object *argv[]); +void (*scheme_add_global)(const char *name, Scheme_Object *val, Scheme_Env *env); +void (*scheme_add_global_symbol)(Scheme_Object *name, Scheme_Object *val, + Scheme_Env *env); +Scheme_Object *(*scheme_make_envunbox)(Scheme_Object *value); +Scheme_Object *(*scheme_lookup_global)(Scheme_Object *symbol, Scheme_Env *env); +Scheme_Bucket *(*scheme_global_bucket)(Scheme_Object *symbol, Scheme_Env *env); +Scheme_Bucket *(*scheme_module_bucket)(Scheme_Object *mod, Scheme_Object *var, int pos, Scheme_Env *env); +Scheme_Object *(*scheme_builtin_value)(const char *name); /* convenience */ +void (*scheme_set_global_bucket)(char *proc, Scheme_Bucket *var, Scheme_Object *val, + int set_undef); +Scheme_Env *(*scheme_primitive_module)(Scheme_Object *name, Scheme_Env *for_env); +void (*scheme_finish_primitive_module)(Scheme_Env *env); +void (*scheme_set_primitive_module_phaseless)(Scheme_Env *env, int phaseless); +void (*scheme_protect_primitive_provide)(Scheme_Env *env, Scheme_Object *name); +Scheme_Object *(*scheme_make_modidx)(Scheme_Object *path, + Scheme_Object *base, + Scheme_Object *resolved); +Scheme_Object *(*scheme_dynamic_require)(int argc, Scheme_Object *argv[]); +Scheme_Object *(*scheme_dynamic_require_reader)(int argc, Scheme_Object *argv[]); +Scheme_Object *(*scheme_namespace_require)(Scheme_Object *); +int (*scheme_is_module_path)(Scheme_Object *); +int (*scheme_is_module_path_index)(Scheme_Object *); +int (*scheme_is_resolved_module_path)(Scheme_Object *); +Scheme_Object *(*scheme_datum_to_kernel_stx)(Scheme_Object *e); +int (*scheme_module_is_declared)(Scheme_Object *name, int try_load); +/*========================================================================*/ +/* symbols */ +/*========================================================================*/ +Scheme_Object *(*scheme_intern_symbol)(const char *name); +Scheme_Object *(*scheme_intern_exact_symbol)(const char *name, uintptr_t len); +Scheme_Object *(*scheme_intern_exact_char_symbol)(const mzchar *name, uintptr_t len); +Scheme_Object *(*scheme_make_symbol)(const char *name); /* Make uninterned */ +Scheme_Object *(*scheme_make_exact_symbol)(const char *name, uintptr_t len); /* Exact case */ +Scheme_Object *(*scheme_make_exact_char_symbol)(const mzchar *name, uintptr_t len); /* Exact case */ +const char *(*scheme_symbol_name)(Scheme_Object *sym); +const char *(*scheme_symbol_name_and_size)(Scheme_Object *sym, uintptr_t *l, int flags); +char *(*scheme_symbol_val)(Scheme_Object *sym); +Scheme_Object *(*scheme_intern_exact_keyword)(const char *name, uintptr_t len); +Scheme_Object *(*scheme_intern_exact_char_keyword)(const mzchar *name, uintptr_t len); +/*========================================================================*/ +/* structs */ +/*========================================================================*/ +Scheme_Object **(*scheme_make_struct_values)(Scheme_Object *struct_type, + Scheme_Object **names, + int count, int flags); +Scheme_Object **(*scheme_make_struct_names)(Scheme_Object *base, + Scheme_Object *field_names, + int flags, int *count_out); +Scheme_Object *(*scheme_make_struct_type)(Scheme_Object *base, + Scheme_Object *parent, + Scheme_Object *inspector, + int num_fields, int num_uninit_fields, + Scheme_Object *uninit_val, + Scheme_Object *properties, + Scheme_Object *guard); +Scheme_Object *(*scheme_make_struct_type2)(Scheme_Object *base, + Scheme_Object *parent, + Scheme_Object *inspector, + int num_fields, int num_uninit_fields, + Scheme_Object *uninit_val, + Scheme_Object *proc_attr, + Scheme_Object *properties, + char *immutable_array, + Scheme_Object *guard); +Scheme_Object *(*scheme_make_struct_instance)(Scheme_Object *stype, + int argc, + Scheme_Object **argv); +int (*scheme_is_struct_instance)(Scheme_Object *type, Scheme_Object *v); +Scheme_Object *(*scheme_struct_ref)(Scheme_Object *s, int pos); +void (*scheme_struct_set)(Scheme_Object *s, int pos, Scheme_Object *v); +Scheme_Object *(*scheme_make_struct_type_property)(Scheme_Object *name); +Scheme_Object *(*scheme_make_struct_type_property_w_guard)(Scheme_Object *name, Scheme_Object *guard); +Scheme_Object *(*scheme_struct_type_property_ref)(Scheme_Object *prop, Scheme_Object *s); +Scheme_Object *(*scheme_chaperone_struct_type_property_ref)(Scheme_Object *prop, Scheme_Object *s); +Scheme_Object *(*scheme_make_location)(Scheme_Object *src, + Scheme_Object *line, + Scheme_Object *col, + Scheme_Object *pos, + Scheme_Object *span); +int (*scheme_is_location)(Scheme_Object *o); +Scheme_Object *(*scheme_make_inspector)(Scheme_Object *superior); +int (*scheme_is_subinspector)(Scheme_Object *i, Scheme_Object *sup); +/*========================================================================*/ +/* utilities */ +/*========================================================================*/ +int (*scheme_eq)(Scheme_Object *obj1, Scheme_Object *obj2); +int (*scheme_eqv)(Scheme_Object *obj1, Scheme_Object *obj2); +int (*scheme_equal)(Scheme_Object *obj1, Scheme_Object *obj2); +int (*scheme_chaperone_of)(Scheme_Object *obj1, Scheme_Object *obj2); +int (*scheme_impersonator_of)(Scheme_Object *obj1, Scheme_Object *obj2); +#ifdef MZ_PRECISE_GC +intptr_t (*scheme_hash_key)(Scheme_Object *o); +#endif +intptr_t (*scheme_equal_hash_key)(Scheme_Object *o); +intptr_t (*scheme_equal_hash_key2)(Scheme_Object *o); +intptr_t (*scheme_recur_equal_hash_key)(Scheme_Object *o, void *cycle_data); +intptr_t (*scheme_recur_equal_hash_key2)(Scheme_Object *o, void *cycle_data); +intptr_t (*scheme_eqv_hash_key)(Scheme_Object *o); +intptr_t (*scheme_eqv_hash_key2)(Scheme_Object *o); +void (*scheme_set_type_equality)(Scheme_Type type, + Scheme_Equal_Proc f, + Scheme_Primary_Hash_Proc hash1, + Scheme_Secondary_Hash_Proc hash2); +int (*scheme_recur_equal)(Scheme_Object *obj1, Scheme_Object *obj2, void *cycle_info); +Scheme_Object *(*scheme_build_list)(int argc, Scheme_Object **argv); +Scheme_Object *(*scheme_build_list_offset)(int argc, Scheme_Object **argv, int delta); +int (*scheme_is_list)(Scheme_Object *obj1); +int (*scheme_list_length)(Scheme_Object *list); +int (*scheme_proper_list_length)(Scheme_Object *list); +Scheme_Object *(*scheme_alloc_list)(int size); +Scheme_Object *(*scheme_map_1)(Scheme_Object *(*f)(Scheme_Object*), Scheme_Object *l); +Scheme_Object *(*scheme_car)(Scheme_Object *pair); +Scheme_Object *(*scheme_cdr)(Scheme_Object *pair); +Scheme_Object *(*scheme_cadr)(Scheme_Object *pair); +Scheme_Object *(*scheme_caddr)(Scheme_Object *pair); +Scheme_Object *(*scheme_vector_to_list)(Scheme_Object *vec); +Scheme_Object *(*scheme_list_to_vector)(Scheme_Object *list); +Scheme_Object *(*scheme_append)(Scheme_Object *lstx, Scheme_Object *lsty); +Scheme_Object *(*scheme_reverse)(Scheme_Object *l); +Scheme_Object *(*scheme_box)(Scheme_Object *v); +Scheme_Object *(*scheme_unbox)(Scheme_Object *obj); +void (*scheme_set_box)(Scheme_Object *b, Scheme_Object *v); +Scheme_Object *(*scheme_make_weak_box)(Scheme_Object *v); +Scheme_Object *(*scheme_make_late_weak_box)(Scheme_Object *v); +Scheme_Object *(*scheme_make_ephemeron)(Scheme_Object *key, Scheme_Object *val); +Scheme_Object *(*scheme_ephemeron_value)(Scheme_Object *o); +Scheme_Object *(*scheme_ephemeron_key)(Scheme_Object *o); +Scheme_Object *(*scheme_make_late_will_executor)(); +Scheme_Object *(*scheme_load)(const char *file); +Scheme_Object *(*scheme_load_extension)(const char *filename, Scheme_Env *env); +void (*scheme_register_extension_global)(void *ptr, intptr_t size); +intptr_t (*scheme_get_seconds)(void); +uintptr_t (*scheme_get_milliseconds)(void); +double (*scheme_get_inexact_milliseconds)(void); +intptr_t (*scheme_get_process_milliseconds)(void); +intptr_t (*scheme_get_process_children_milliseconds)(void); +intptr_t (*scheme_get_thread_milliseconds)(Scheme_Object *thrd); +char *(*scheme_banner)(void); +char *(*scheme_version)(void); +int (*scheme_check_proc_arity)(const char *where, int a, + int which, int argc, Scheme_Object **argv); +int (*scheme_check_proc_arity2)(const char *where, int a, + int which, int argc, Scheme_Object **argv, + int false_ok); +char *(*scheme_make_provided_string)(Scheme_Object *o, int count, intptr_t *len); +char *(*scheme_make_args_string)(const char *s, int which, int argc, Scheme_Object **argv, intptr_t *len); +char *(*scheme_make_arg_lines_string)(const char *s, int which, int argc, Scheme_Object **argv, intptr_t *len); +const char *(*scheme_system_library_subpath)(); +void (*scheme_signal_received)(void); +void (*scheme_signal_received_at)(void *); +void *(*scheme_get_signal_handle)(); +void (*scheme_wait_until_signal_received)(void); +intptr_t (*scheme_char_strlen)(const mzchar *s); +Scheme_Object *(*scheme_stx_extract_marks)(Scheme_Object *stx); +int (*scheme_get_place_id)(void); +Scheme_Hash_Table *(*scheme_get_place_table)(void); +void *(*scheme_register_process_global)(const char *key, void *val); +Scheme_Object *(*scheme_malloc_key)(void); +void (*scheme_free_key)(Scheme_Object *k); +void *(*scheme_jit_find_code_end)(void *p); +void (*scheme_jit_now)(Scheme_Object *f); +void (*scheme_set_signal_handler)(int sig_id, Scheme_Signal_Handler_Proc proc); +#ifndef SCHEME_EX_INLINE +} Scheme_Extension_Table; +#endif diff --git a/racket/src/include/schemexm.h b/racket/src/include/schemexm.h new file mode 100644 index 0000000000..5bc0cfb244 --- /dev/null +++ b/racket/src/include/schemexm.h @@ -0,0 +1,730 @@ +#define scheme_init_jmpup_buf (scheme_extension_table->scheme_init_jmpup_buf) +#define scheme_setjmpup_relative (scheme_extension_table->scheme_setjmpup_relative) +#define scheme_longjmpup (scheme_extension_table->scheme_longjmpup) +#define scheme_reset_jmpup_buf (scheme_extension_table->scheme_reset_jmpup_buf) +#ifdef USE_MZ_SETJMP +#define scheme_get_mz_setjmp (scheme_extension_table->scheme_get_mz_setjmp) +#define scheme_mz_setjmp (scheme_extension_table->scheme_mz_setjmp) +#define scheme_mz_longjmp (scheme_extension_table->scheme_mz_longjmp) +#endif +#define scheme_clear_escape (scheme_extension_table->scheme_clear_escape) +#define scheme_new_jmpupbuf_holder (scheme_extension_table->scheme_new_jmpupbuf_holder) +#define scheme_current_config (scheme_extension_table->scheme_current_config) +#define scheme_minimal_config (scheme_extension_table->scheme_minimal_config) +#define scheme_extend_config (scheme_extension_table->scheme_extend_config) +#define scheme_install_config (scheme_extension_table->scheme_install_config) +#define scheme_get_param (scheme_extension_table->scheme_get_param) +#define scheme_set_param (scheme_extension_table->scheme_set_param) +#define scheme_get_thread_param (scheme_extension_table->scheme_get_thread_param) +#define scheme_set_thread_param (scheme_extension_table->scheme_set_thread_param) +#define scheme_get_env (scheme_extension_table->scheme_get_env) +#define scheme_empty_cell_table (scheme_extension_table->scheme_empty_cell_table) +#define scheme_inherit_cells (scheme_extension_table->scheme_inherit_cells) +#define scheme_current_break_cell (scheme_extension_table->scheme_current_break_cell) +#ifndef USE_THREAD_LOCAL +# ifndef LINK_EXTENSIONS_BY_TABLE +#define scheme_current_thread (scheme_extension_table->scheme_current_thread) +#define scheme_fuel_counter (scheme_extension_table->scheme_fuel_counter) +# else +#define scheme_current_thread_ptr (scheme_extension_table->scheme_current_thread_ptr) +#define scheme_fuel_counter_ptr (scheme_extension_table->scheme_fuel_counter_ptr) +# endif +#endif +#define scheme_get_current_thread (scheme_extension_table->scheme_get_current_thread) +#define scheme_is_atomic (scheme_extension_table->scheme_is_atomic) +#define scheme_start_atomic (scheme_extension_table->scheme_start_atomic) +#define scheme_end_atomic (scheme_extension_table->scheme_end_atomic) +#define scheme_end_atomic_no_swap (scheme_extension_table->scheme_end_atomic_no_swap) +#define scheme_start_in_scheduler (scheme_extension_table->scheme_start_in_scheduler) +#define scheme_end_in_scheduler (scheme_extension_table->scheme_end_in_scheduler) +#define scheme_start_atomic_no_break (scheme_extension_table->scheme_start_atomic_no_break) +#define scheme_end_atomic_can_break (scheme_extension_table->scheme_end_atomic_can_break) +#define scheme_out_of_fuel (scheme_extension_table->scheme_out_of_fuel) +#define scheme_thread (scheme_extension_table->scheme_thread) +#define scheme_thread_w_details (scheme_extension_table->scheme_thread_w_details) +#define scheme_kill_thread (scheme_extension_table->scheme_kill_thread) +#define scheme_break_thread (scheme_extension_table->scheme_break_thread) +#define scheme_break_kind_thread (scheme_extension_table->scheme_break_kind_thread) +#define scheme_break_main_thread (scheme_extension_table->scheme_break_main_thread) +#define scheme_break_main_thread_at (scheme_extension_table->scheme_break_main_thread_at) +#define scheme_break_kind_main_thread_at (scheme_extension_table->scheme_break_kind_main_thread_at) +#define scheme_get_main_thread_break_handle (scheme_extension_table->scheme_get_main_thread_break_handle) +#define scheme_set_break_main_target (scheme_extension_table->scheme_set_break_main_target) +#define scheme_thread_block (scheme_extension_table->scheme_thread_block) +#define scheme_thread_block_enable_break (scheme_extension_table->scheme_thread_block_enable_break) +#define scheme_swap_thread (scheme_extension_table->scheme_swap_thread) +#define scheme_making_progress (scheme_extension_table->scheme_making_progress) +#define scheme_weak_suspend_thread (scheme_extension_table->scheme_weak_suspend_thread) +#define scheme_weak_resume_thread (scheme_extension_table->scheme_weak_resume_thread) +#define scheme_block_until (scheme_extension_table->scheme_block_until) +#define scheme_block_until_enable_break (scheme_extension_table->scheme_block_until_enable_break) +#define scheme_block_until_unless (scheme_extension_table->scheme_block_until_unless) +#define scheme_wait_input_allowed (scheme_extension_table->scheme_wait_input_allowed) +#define scheme_unless_ready (scheme_extension_table->scheme_unless_ready) +#define scheme_in_main_thread (scheme_extension_table->scheme_in_main_thread) +#define scheme_cancel_sleep (scheme_extension_table->scheme_cancel_sleep) +#define scheme_start_sleeper_thread (scheme_extension_table->scheme_start_sleeper_thread) +#define scheme_end_sleeper_thread (scheme_extension_table->scheme_end_sleeper_thread) +#define scheme_set_place_sleep (scheme_extension_table->scheme_set_place_sleep) +#define scheme_notify_sleep_progress (scheme_extension_table->scheme_notify_sleep_progress) +#define scheme_make_thread_cell (scheme_extension_table->scheme_make_thread_cell) +#define scheme_thread_cell_get (scheme_extension_table->scheme_thread_cell_get) +#define scheme_thread_cell_set (scheme_extension_table->scheme_thread_cell_set) +#define scheme_tls_allocate (scheme_extension_table->scheme_tls_allocate) +#define scheme_tls_set (scheme_extension_table->scheme_tls_set) +#define scheme_tls_get (scheme_extension_table->scheme_tls_get) +#define scheme_make_custodian (scheme_extension_table->scheme_make_custodian) +#define scheme_add_managed (scheme_extension_table->scheme_add_managed) +#define scheme_add_managed_close_on_exit (scheme_extension_table->scheme_add_managed_close_on_exit) +#define scheme_custodian_check_available (scheme_extension_table->scheme_custodian_check_available) +#define scheme_custodian_is_available (scheme_extension_table->scheme_custodian_is_available) +#define scheme_remove_managed (scheme_extension_table->scheme_remove_managed) +#define scheme_close_managed (scheme_extension_table->scheme_close_managed) +#define scheme_schedule_custodian_close (scheme_extension_table->scheme_schedule_custodian_close) +#define scheme_add_custodian_extractor (scheme_extension_table->scheme_add_custodian_extractor) +#define scheme_flush_managed (scheme_extension_table->scheme_flush_managed) +#define scheme_add_flush (scheme_extension_table->scheme_add_flush) +#define scheme_remove_flush (scheme_extension_table->scheme_remove_flush) +#define scheme_add_atexit_closer (scheme_extension_table->scheme_add_atexit_closer) +#define scheme_atexit (scheme_extension_table->scheme_atexit) +#define scheme_add_evt (scheme_extension_table->scheme_add_evt) +#define scheme_add_evt_through_sema (scheme_extension_table->scheme_add_evt_through_sema) +#define scheme_is_evt (scheme_extension_table->scheme_is_evt) +#define scheme_sync (scheme_extension_table->scheme_sync) +#define scheme_sync_enable_break (scheme_extension_table->scheme_sync_enable_break) +#define scheme_sync_timeout (scheme_extension_table->scheme_sync_timeout) +#define scheme_make_evt_set (scheme_extension_table->scheme_make_evt_set) +#define scheme_add_swap_callback (scheme_extension_table->scheme_add_swap_callback) +#define scheme_add_swap_out_callback (scheme_extension_table->scheme_add_swap_out_callback) +#define scheme_call_enable_break (scheme_extension_table->scheme_call_enable_break) +#define scheme_close_should_force_port_closed (scheme_extension_table->scheme_close_should_force_port_closed) +#define scheme_push_kill_action (scheme_extension_table->scheme_push_kill_action) +#define scheme_pop_kill_action (scheme_extension_table->scheme_pop_kill_action) +#define scheme_set_can_break (scheme_extension_table->scheme_set_can_break) +#define scheme_push_break_enable (scheme_extension_table->scheme_push_break_enable) +#define scheme_pop_break_enable (scheme_extension_table->scheme_pop_break_enable) +#define scheme_abort_continuation_no_dws (scheme_extension_table->scheme_abort_continuation_no_dws) +#define scheme_call_with_composable_no_dws (scheme_extension_table->scheme_call_with_composable_no_dws) +#define scheme_set_on_atomic_timeout (scheme_extension_table->scheme_set_on_atomic_timeout) +#define scheme_signal_error (scheme_extension_table->scheme_signal_error) +#define scheme_raise_exn (scheme_extension_table->scheme_raise_exn) +#define scheme_warning (scheme_extension_table->scheme_warning) +#define scheme_raise (scheme_extension_table->scheme_raise) +#define scheme_log_level_p (scheme_extension_table->scheme_log_level_p) +#define scheme_log_level_topic_p (scheme_extension_table->scheme_log_level_topic_p) +#define scheme_log (scheme_extension_table->scheme_log) +#define scheme_log_w_data (scheme_extension_table->scheme_log_w_data) +#define scheme_log_message (scheme_extension_table->scheme_log_message) +#define scheme_log_name_message (scheme_extension_table->scheme_log_name_message) +#define scheme_log_name_pfx_message (scheme_extension_table->scheme_log_name_pfx_message) +#define scheme_log_abort (scheme_extension_table->scheme_log_abort) +#define scheme_log_warning (scheme_extension_table->scheme_log_warning) +#define scheme_glib_log_message (scheme_extension_table->scheme_glib_log_message) +#define scheme_glib_log_message_test (scheme_extension_table->scheme_glib_log_message_test) +#define scheme_out_of_memory_abort (scheme_extension_table->scheme_out_of_memory_abort) +#define scheme_wrong_count (scheme_extension_table->scheme_wrong_count) +#define scheme_wrong_count_m (scheme_extension_table->scheme_wrong_count_m) +#define scheme_case_lambda_wrong_count (scheme_extension_table->scheme_case_lambda_wrong_count) +#define scheme_wrong_type (scheme_extension_table->scheme_wrong_type) +#define scheme_wrong_contract (scheme_extension_table->scheme_wrong_contract) +#define scheme_wrong_field_type (scheme_extension_table->scheme_wrong_field_type) +#define scheme_wrong_field_contract (scheme_extension_table->scheme_wrong_field_contract) +#define scheme_arg_mismatch (scheme_extension_table->scheme_arg_mismatch) +#define scheme_contract_error (scheme_extension_table->scheme_contract_error) +#define scheme_wrong_return_arity (scheme_extension_table->scheme_wrong_return_arity) +#define scheme_unbound_global (scheme_extension_table->scheme_unbound_global) +#define scheme_dynamic_wind (scheme_extension_table->scheme_dynamic_wind) +#define scheme_make_type (scheme_extension_table->scheme_make_type) +#define scheme_get_type_name (scheme_extension_table->scheme_get_type_name) +#define scheme_get_type_name_or_null (scheme_extension_table->scheme_get_type_name_or_null) +#define scheme_eof (scheme_extension_table->scheme_eof) +#define scheme_make_eof (scheme_extension_table->scheme_make_eof) +#define scheme_null (scheme_extension_table->scheme_null) +#define scheme_make_null (scheme_extension_table->scheme_make_null) +#define scheme_true (scheme_extension_table->scheme_true) +#define scheme_make_true (scheme_extension_table->scheme_make_true) +#define scheme_false (scheme_extension_table->scheme_false) +#define scheme_make_false (scheme_extension_table->scheme_make_false) +#define scheme_void (scheme_extension_table->scheme_void) +#define scheme_make_void (scheme_extension_table->scheme_make_void) +#define scheme_undefined (scheme_extension_table->scheme_undefined) +#define scheme_tail_call_waiting (scheme_extension_table->scheme_tail_call_waiting) +#define scheme_multiple_values (scheme_extension_table->scheme_multiple_values) +#define scheme_uchar_table (scheme_extension_table->scheme_uchar_table) +#define scheme_uchar_cases_table (scheme_extension_table->scheme_uchar_cases_table) +#define scheme_uchar_cats_table (scheme_extension_table->scheme_uchar_cats_table) +#define scheme_uchar_ups (scheme_extension_table->scheme_uchar_ups) +#define scheme_uchar_downs (scheme_extension_table->scheme_uchar_downs) +#define scheme_uchar_titles (scheme_extension_table->scheme_uchar_titles) +#define scheme_uchar_folds (scheme_extension_table->scheme_uchar_folds) +#define scheme_uchar_combining_classes (scheme_extension_table->scheme_uchar_combining_classes) +#define scheme_on_demand_jit_code (scheme_extension_table->scheme_on_demand_jit_code) +#define scheme_eval (scheme_extension_table->scheme_eval) +#define scheme_eval_multi (scheme_extension_table->scheme_eval_multi) +#define scheme_eval_with_prompt (scheme_extension_table->scheme_eval_with_prompt) +#define scheme_eval_multi_with_prompt (scheme_extension_table->scheme_eval_multi_with_prompt) +#define scheme_eval_compiled (scheme_extension_table->scheme_eval_compiled) +#define scheme_eval_compiled_multi (scheme_extension_table->scheme_eval_compiled_multi) +#define _scheme_eval_compiled (scheme_extension_table->_scheme_eval_compiled) +#define _scheme_eval_compiled_multi (scheme_extension_table->_scheme_eval_compiled_multi) +#define scheme_apply (scheme_extension_table->scheme_apply) +#define scheme_apply_multi (scheme_extension_table->scheme_apply_multi) +#define scheme_apply_no_eb (scheme_extension_table->scheme_apply_no_eb) +#define scheme_apply_multi_no_eb (scheme_extension_table->scheme_apply_multi_no_eb) +#define scheme_apply_to_list (scheme_extension_table->scheme_apply_to_list) +#define scheme_apply_with_prompt (scheme_extension_table->scheme_apply_with_prompt) +#define scheme_apply_multi_with_prompt (scheme_extension_table->scheme_apply_multi_with_prompt) +#define _scheme_apply_with_prompt (scheme_extension_table->_scheme_apply_with_prompt) +#define _scheme_apply_multi_with_prompt (scheme_extension_table->_scheme_apply_multi_with_prompt) +#define scheme_eval_string (scheme_extension_table->scheme_eval_string) +#define scheme_eval_string_multi (scheme_extension_table->scheme_eval_string_multi) +#define scheme_eval_string_all (scheme_extension_table->scheme_eval_string_all) +#define scheme_eval_string_with_prompt (scheme_extension_table->scheme_eval_string_with_prompt) +#define scheme_eval_string_multi_with_prompt (scheme_extension_table->scheme_eval_string_multi_with_prompt) +#define scheme_eval_string_all_with_prompt (scheme_extension_table->scheme_eval_string_all_with_prompt) +#define scheme_eval_all_with_prompt (scheme_extension_table->scheme_eval_all_with_prompt) +#define scheme_eval_module_string (scheme_extension_table->scheme_eval_module_string) +#define _scheme_apply_known_prim_closure (scheme_extension_table->_scheme_apply_known_prim_closure) +#define _scheme_apply_known_prim_closure_multi (scheme_extension_table->_scheme_apply_known_prim_closure_multi) +#define _scheme_apply_prim_closure (scheme_extension_table->_scheme_apply_prim_closure) +#define _scheme_apply_prim_closure_multi (scheme_extension_table->_scheme_apply_prim_closure_multi) +#define scheme_current_argument_stack (scheme_extension_table->scheme_current_argument_stack) +#define scheme_call_with_prompt (scheme_extension_table->scheme_call_with_prompt) +#define scheme_call_with_prompt_multi (scheme_extension_table->scheme_call_with_prompt_multi) +#define _scheme_call_with_prompt (scheme_extension_table->_scheme_call_with_prompt) +#define _scheme_call_with_prompt_multi (scheme_extension_table->_scheme_call_with_prompt_multi) +#define scheme_values (scheme_extension_table->scheme_values) +#define scheme_check_one_value (scheme_extension_table->scheme_check_one_value) +#define scheme_tail_apply (scheme_extension_table->scheme_tail_apply) +#define scheme_tail_apply_no_copy (scheme_extension_table->scheme_tail_apply_no_copy) +#define scheme_tail_apply_to_list (scheme_extension_table->scheme_tail_apply_to_list) +#define scheme_tail_eval_expr (scheme_extension_table->scheme_tail_eval_expr) +#define scheme_set_tail_buffer_size (scheme_extension_table->scheme_set_tail_buffer_size) +#define scheme_force_value (scheme_extension_table->scheme_force_value) +#define scheme_force_one_value (scheme_extension_table->scheme_force_one_value) +#define scheme_ignore_result (scheme_extension_table->scheme_ignore_result) +#define scheme_set_cont_mark (scheme_extension_table->scheme_set_cont_mark) +#define scheme_push_continuation_frame (scheme_extension_table->scheme_push_continuation_frame) +#define scheme_pop_continuation_frame (scheme_extension_table->scheme_pop_continuation_frame) +#define scheme_temp_dec_mark_depth (scheme_extension_table->scheme_temp_dec_mark_depth) +#define scheme_temp_inc_mark_depth (scheme_extension_table->scheme_temp_inc_mark_depth) +#define scheme_current_continuation_marks (scheme_extension_table->scheme_current_continuation_marks) +#define scheme_extract_one_cc_mark (scheme_extension_table->scheme_extract_one_cc_mark) +#define scheme_extract_one_cc_mark_to_tag (scheme_extension_table->scheme_extract_one_cc_mark_to_tag) +#define scheme_do_eval (scheme_extension_table->scheme_do_eval) +#define scheme_detach_multple_array (scheme_extension_table->scheme_detach_multple_array) +#ifndef SCHEME_NO_GC +# ifndef SCHEME_NO_GC_PROTO +#define GC_malloc (scheme_extension_table->GC_malloc) +#define GC_malloc_atomic (scheme_extension_table->GC_malloc_atomic) +# ifdef MZ_PRECISE_GC +#define GC_malloc_one_tagged (scheme_extension_table->GC_malloc_one_tagged) +#define GC_malloc_atomic_uncollectable (scheme_extension_table->GC_malloc_atomic_uncollectable) +#define scheme_malloc_uncollectable (scheme_extension_table->scheme_malloc_uncollectable) +#define GC_malloc_allow_interior (scheme_extension_table->GC_malloc_allow_interior) +#define GC_malloc_atomic_allow_interior (scheme_extension_table->GC_malloc_atomic_allow_interior) +#define GC_malloc_tagged_allow_interior (scheme_extension_table->GC_malloc_tagged_allow_interior) +# else +#define GC_malloc_stubborn (scheme_extension_table->GC_malloc_stubborn) +#define GC_malloc_uncollectable (scheme_extension_table->GC_malloc_uncollectable) +# endif +# endif +#endif +#define scheme_malloc_code (scheme_extension_table->scheme_malloc_code) +#define scheme_malloc_permanent_code (scheme_extension_table->scheme_malloc_permanent_code) +#define scheme_free_code (scheme_extension_table->scheme_free_code) +#ifndef MZ_PRECISE_GC +#define scheme_malloc_gcable_code (scheme_extension_table->scheme_malloc_gcable_code) +#endif +#define scheme_malloc_eternal (scheme_extension_table->scheme_malloc_eternal) +#define scheme_end_stubborn_change (scheme_extension_table->scheme_end_stubborn_change) +#define scheme_calloc (scheme_extension_table->scheme_calloc) +#define scheme_strdup (scheme_extension_table->scheme_strdup) +#define scheme_strdup_eternal (scheme_extension_table->scheme_strdup_eternal) +#define scheme_malloc_fail_ok (scheme_extension_table->scheme_malloc_fail_ok) +#ifndef MZ_PRECISE_GC +#define scheme_late_weak_reference (scheme_extension_table->scheme_late_weak_reference) +#define scheme_late_weak_reference_indirect (scheme_extension_table->scheme_late_weak_reference_indirect) +#define scheme_weak_reference (scheme_extension_table->scheme_weak_reference) +#define scheme_weak_reference_indirect (scheme_extension_table->scheme_weak_reference_indirect) +#define scheme_unweak_reference (scheme_extension_table->scheme_unweak_reference) +#endif +#define scheme_add_finalizer (scheme_extension_table->scheme_add_finalizer) +#define scheme_add_finalizer_once (scheme_extension_table->scheme_add_finalizer_once) +#define scheme_subtract_finalizer (scheme_extension_table->scheme_subtract_finalizer) +#define scheme_add_scheme_finalizer (scheme_extension_table->scheme_add_scheme_finalizer) +#define scheme_add_scheme_finalizer_once (scheme_extension_table->scheme_add_scheme_finalizer_once) +#define scheme_register_finalizer (scheme_extension_table->scheme_register_finalizer) +#define scheme_remove_all_finalization (scheme_extension_table->scheme_remove_all_finalization) +#define scheme_dont_gc_ptr (scheme_extension_table->scheme_dont_gc_ptr) +#define scheme_gc_ptr_ok (scheme_extension_table->scheme_gc_ptr_ok) +#define scheme_collect_garbage (scheme_extension_table->scheme_collect_garbage) +#define scheme_collect_garbage_minor (scheme_extension_table->scheme_collect_garbage_minor) +#define scheme_enable_garbage_collection (scheme_extension_table->scheme_enable_garbage_collection) +#define scheme_incremental_garbage_collection (scheme_extension_table->scheme_incremental_garbage_collection) +#ifdef MZ_PRECISE_GC +# ifndef USE_THREAD_LOCAL +#define GC_variable_stack (scheme_extension_table->GC_variable_stack) +# endif +#define GC_register_traversers (scheme_extension_table->GC_register_traversers) +#define GC_resolve (scheme_extension_table->GC_resolve) +#define GC_mark (scheme_extension_table->GC_mark) +#define GC_fixup (scheme_extension_table->GC_fixup) +#define GC_fixup_self (scheme_extension_table->GC_fixup_self) +#endif +#define scheme_malloc_immobile_box (scheme_extension_table->scheme_malloc_immobile_box) +#define scheme_free_immobile_box (scheme_extension_table->scheme_free_immobile_box) +#define scheme_add_gc_callback (scheme_extension_table->scheme_add_gc_callback) +#define scheme_remove_gc_callback (scheme_extension_table->scheme_remove_gc_callback) +#define scheme_register_type_gc_shape (scheme_extension_table->scheme_register_type_gc_shape) +#define scheme_make_bucket_table (scheme_extension_table->scheme_make_bucket_table) +#define scheme_add_to_table (scheme_extension_table->scheme_add_to_table) +#define scheme_change_in_table (scheme_extension_table->scheme_change_in_table) +#define scheme_lookup_in_table (scheme_extension_table->scheme_lookup_in_table) +#define scheme_bucket_from_table (scheme_extension_table->scheme_bucket_from_table) +#define scheme_bucket_table_equal (scheme_extension_table->scheme_bucket_table_equal) +#define scheme_clone_bucket_table (scheme_extension_table->scheme_clone_bucket_table) +#define scheme_clear_bucket_table (scheme_extension_table->scheme_clear_bucket_table) +#define scheme_bucket_table_index (scheme_extension_table->scheme_bucket_table_index) +#define scheme_bucket_table_next (scheme_extension_table->scheme_bucket_table_next) +#define scheme_make_hash_table (scheme_extension_table->scheme_make_hash_table) +#define scheme_make_hash_table_equal (scheme_extension_table->scheme_make_hash_table_equal) +#define scheme_make_hash_table_eqv (scheme_extension_table->scheme_make_hash_table_eqv) +#define scheme_hash_set (scheme_extension_table->scheme_hash_set) +#define scheme_hash_get (scheme_extension_table->scheme_hash_get) +#define scheme_eq_hash_get (scheme_extension_table->scheme_eq_hash_get) +#define scheme_hash_set_atomic (scheme_extension_table->scheme_hash_set_atomic) +#define scheme_hash_get_atomic (scheme_extension_table->scheme_hash_get_atomic) +#define scheme_hash_table_equal (scheme_extension_table->scheme_hash_table_equal) +#define scheme_is_hash_table_equal (scheme_extension_table->scheme_is_hash_table_equal) +#define scheme_is_hash_table_eqv (scheme_extension_table->scheme_is_hash_table_eqv) +#define scheme_clone_hash_table (scheme_extension_table->scheme_clone_hash_table) +#define scheme_clear_hash_table (scheme_extension_table->scheme_clear_hash_table) +#define scheme_hash_table_index (scheme_extension_table->scheme_hash_table_index) +#define scheme_hash_table_next (scheme_extension_table->scheme_hash_table_next) +#define scheme_make_hash_tree (scheme_extension_table->scheme_make_hash_tree) +#define scheme_hash_tree_set (scheme_extension_table->scheme_hash_tree_set) +#define scheme_hash_tree_get (scheme_extension_table->scheme_hash_tree_get) +#define scheme_eq_hash_tree_get (scheme_extension_table->scheme_eq_hash_tree_get) +#define scheme_hash_tree_next (scheme_extension_table->scheme_hash_tree_next) +#define scheme_hash_tree_index (scheme_extension_table->scheme_hash_tree_index) +#define scheme_hash_tree_equal (scheme_extension_table->scheme_hash_tree_equal) +#define scheme_is_hash_tree_equal (scheme_extension_table->scheme_is_hash_tree_equal) +#define scheme_is_hash_tree_eqv (scheme_extension_table->scheme_is_hash_tree_eqv) +#define scheme_make_prim (scheme_extension_table->scheme_make_prim) +#define scheme_make_noneternal_prim (scheme_extension_table->scheme_make_noneternal_prim) +#define scheme_make_prim_w_arity (scheme_extension_table->scheme_make_prim_w_arity) +#define scheme_make_folding_prim (scheme_extension_table->scheme_make_folding_prim) +#define scheme_make_immed_prim (scheme_extension_table->scheme_make_immed_prim) +#define scheme_make_noncm_prim (scheme_extension_table->scheme_make_noncm_prim) +#define scheme_make_noneternal_prim_w_arity (scheme_extension_table->scheme_make_noneternal_prim_w_arity) +#define scheme_make_prim_w_everything (scheme_extension_table->scheme_make_prim_w_everything) +#define scheme_make_prim_closure_w_arity (scheme_extension_table->scheme_make_prim_closure_w_arity) +#define scheme_make_folding_prim_closure (scheme_extension_table->scheme_make_folding_prim_closure) +#define scheme_make_closed_prim (scheme_extension_table->scheme_make_closed_prim) +#define scheme_make_closed_prim_w_arity (scheme_extension_table->scheme_make_closed_prim_w_arity) +#define scheme_make_folding_closed_prim (scheme_extension_table->scheme_make_folding_closed_prim) +#define scheme_make_closed_prim_w_everything (scheme_extension_table->scheme_make_closed_prim_w_everything) +#define scheme_prim_is_method (scheme_extension_table->scheme_prim_is_method) +#define scheme_make_pair (scheme_extension_table->scheme_make_pair) +#define scheme_make_mutable_pair (scheme_extension_table->scheme_make_mutable_pair) +#define scheme_make_list_pair (scheme_extension_table->scheme_make_list_pair) +#define scheme_make_raw_pair (scheme_extension_table->scheme_make_raw_pair) +#define scheme_make_byte_string (scheme_extension_table->scheme_make_byte_string) +#define scheme_make_sized_byte_string (scheme_extension_table->scheme_make_sized_byte_string) +#define scheme_make_sized_offset_byte_string (scheme_extension_table->scheme_make_sized_offset_byte_string) +#define scheme_make_immutable_sized_byte_string (scheme_extension_table->scheme_make_immutable_sized_byte_string) +#define scheme_make_byte_string_without_copying (scheme_extension_table->scheme_make_byte_string_without_copying) +#define scheme_alloc_byte_string (scheme_extension_table->scheme_alloc_byte_string) +#define scheme_append_byte_string (scheme_extension_table->scheme_append_byte_string) +#define scheme_make_utf8_string (scheme_extension_table->scheme_make_utf8_string) +#define scheme_make_sized_utf8_string (scheme_extension_table->scheme_make_sized_utf8_string) +#define scheme_make_sized_offset_utf8_string (scheme_extension_table->scheme_make_sized_offset_utf8_string) +#define scheme_make_immutable_sized_utf8_string (scheme_extension_table->scheme_make_immutable_sized_utf8_string) +#define scheme_make_locale_string (scheme_extension_table->scheme_make_locale_string) +#define scheme_char_string_to_byte_string (scheme_extension_table->scheme_char_string_to_byte_string) +#define scheme_byte_string_to_char_string (scheme_extension_table->scheme_byte_string_to_char_string) +#define scheme_char_string_to_byte_string_locale (scheme_extension_table->scheme_char_string_to_byte_string_locale) +#define scheme_byte_string_to_char_string_locale (scheme_extension_table->scheme_byte_string_to_char_string_locale) +#define scheme_char_string_to_path (scheme_extension_table->scheme_char_string_to_path) +#define scheme_path_to_char_string (scheme_extension_table->scheme_path_to_char_string) +#define scheme_make_char_string (scheme_extension_table->scheme_make_char_string) +#define scheme_make_sized_char_string (scheme_extension_table->scheme_make_sized_char_string) +#define scheme_make_sized_offset_char_string (scheme_extension_table->scheme_make_sized_offset_char_string) +#define scheme_make_immutable_sized_char_string (scheme_extension_table->scheme_make_immutable_sized_char_string) +#define scheme_make_char_string_without_copying (scheme_extension_table->scheme_make_char_string_without_copying) +#define scheme_alloc_char_string (scheme_extension_table->scheme_alloc_char_string) +#define scheme_append_char_string (scheme_extension_table->scheme_append_char_string) +#define scheme_string_recase (scheme_extension_table->scheme_string_recase) +#define scheme_make_vector (scheme_extension_table->scheme_make_vector) +#define scheme_alloc_flvector (scheme_extension_table->scheme_alloc_flvector) +#ifdef MZ_LONG_DOUBLE +#define scheme_alloc_extflvector (scheme_extension_table->scheme_alloc_extflvector) +#endif +#define scheme_alloc_fxvector (scheme_extension_table->scheme_alloc_fxvector) +#define scheme_make_integer_value (scheme_extension_table->scheme_make_integer_value) +#define scheme_make_integer_value_from_unsigned (scheme_extension_table->scheme_make_integer_value_from_unsigned) +#define scheme_make_integer_value_from_long_long (scheme_extension_table->scheme_make_integer_value_from_long_long) +#define scheme_make_integer_value_from_unsigned_long_long (scheme_extension_table->scheme_make_integer_value_from_unsigned_long_long) +#define scheme_make_integer_value_from_long_halves (scheme_extension_table->scheme_make_integer_value_from_long_halves) +#define scheme_make_integer_value_from_unsigned_long_halves (scheme_extension_table->scheme_make_integer_value_from_unsigned_long_halves) +#define scheme_make_double (scheme_extension_table->scheme_make_double) +#ifdef MZ_LONG_DOUBLE +#define scheme_make_long_double (scheme_extension_table->scheme_make_long_double) +#endif +#ifdef MZ_USE_SINGLE_FLOATS +#define scheme_make_float (scheme_extension_table->scheme_make_float) +#endif +#define scheme_make_char (scheme_extension_table->scheme_make_char) +#define scheme_make_char_or_nul (scheme_extension_table->scheme_make_char_or_nul) +#define scheme_make_sema (scheme_extension_table->scheme_make_sema) +#define scheme_post_sema (scheme_extension_table->scheme_post_sema) +#define scheme_post_sema_all (scheme_extension_table->scheme_post_sema_all) +#define scheme_wait_sema (scheme_extension_table->scheme_wait_sema) +#define scheme_try_plain_sema (scheme_extension_table->scheme_try_plain_sema) +#define scheme_char_constants (scheme_extension_table->scheme_char_constants) +#define scheme_make_channel (scheme_extension_table->scheme_make_channel) +#define scheme_make_channel_put_evt (scheme_extension_table->scheme_make_channel_put_evt) +#define scheme_get_int_val (scheme_extension_table->scheme_get_int_val) +#define scheme_get_unsigned_int_val (scheme_extension_table->scheme_get_unsigned_int_val) +#define scheme_get_long_long_val (scheme_extension_table->scheme_get_long_long_val) +#define scheme_get_unsigned_long_long_val (scheme_extension_table->scheme_get_unsigned_long_long_val) +#define scheme_real_to_double (scheme_extension_table->scheme_real_to_double) +#ifdef MZ_LONG_DOUBLE +#define scheme_real_to_long_double (scheme_extension_table->scheme_real_to_long_double) +#endif +#define scheme_make_cptr (scheme_extension_table->scheme_make_cptr) +#define scheme_make_offset_cptr (scheme_extension_table->scheme_make_offset_cptr) +#define scheme_make_external_cptr (scheme_extension_table->scheme_make_external_cptr) +#define scheme_make_offset_external_cptr (scheme_extension_table->scheme_make_offset_external_cptr) +#define scheme_is_cpointer (scheme_extension_table->scheme_is_cpointer) +#define scheme_get_proc_name (scheme_extension_table->scheme_get_proc_name) +#define scheme_utf8_decode (scheme_extension_table->scheme_utf8_decode) +#define scheme_utf8_decode_offset_prefix (scheme_extension_table->scheme_utf8_decode_offset_prefix) +#define scheme_utf8_decode_as_prefix (scheme_extension_table->scheme_utf8_decode_as_prefix) +#define scheme_utf8_decode_all (scheme_extension_table->scheme_utf8_decode_all) +#define scheme_utf8_decode_prefix (scheme_extension_table->scheme_utf8_decode_prefix) +#define scheme_utf8_decode_to_buffer (scheme_extension_table->scheme_utf8_decode_to_buffer) +#define scheme_utf8_decode_to_buffer_len (scheme_extension_table->scheme_utf8_decode_to_buffer_len) +#define scheme_utf8_decode_count (scheme_extension_table->scheme_utf8_decode_count) +#define scheme_utf8_encode (scheme_extension_table->scheme_utf8_encode) +#define scheme_utf8_encode_all (scheme_extension_table->scheme_utf8_encode_all) +#define scheme_utf8_encode_to_buffer (scheme_extension_table->scheme_utf8_encode_to_buffer) +#define scheme_utf8_encode_to_buffer_len (scheme_extension_table->scheme_utf8_encode_to_buffer_len) +#define scheme_ucs4_to_utf16 (scheme_extension_table->scheme_ucs4_to_utf16) +#define scheme_utf16_to_ucs4 (scheme_extension_table->scheme_utf16_to_ucs4) +#define scheme_open_converter (scheme_extension_table->scheme_open_converter) +#define scheme_close_converter (scheme_extension_table->scheme_close_converter) +#define scheme_getenv (scheme_extension_table->scheme_getenv) +#define scheme_make_bignum (scheme_extension_table->scheme_make_bignum) +#define scheme_make_bignum_from_unsigned (scheme_extension_table->scheme_make_bignum_from_unsigned) +#define scheme_make_bignum_from_long_long (scheme_extension_table->scheme_make_bignum_from_long_long) +#define scheme_make_bignum_from_unsigned_long_long (scheme_extension_table->scheme_make_bignum_from_unsigned_long_long) +#define scheme_bignum_to_double (scheme_extension_table->scheme_bignum_to_double) +#define scheme_bignum_from_double (scheme_extension_table->scheme_bignum_from_double) +#ifdef MZ_LONG_DOUBLE +#define scheme_bignum_to_long_double (scheme_extension_table->scheme_bignum_to_long_double) +#define scheme_bignum_from_long_double (scheme_extension_table->scheme_bignum_from_long_double) +#endif +#ifdef MZ_USE_SINGLE_FLOATS +#define scheme_bignum_to_float (scheme_extension_table->scheme_bignum_to_float) +#define scheme_bignum_from_float (scheme_extension_table->scheme_bignum_from_float) +#else +# define scheme_bignum_to_float scheme_bignum_to_double +# define scheme_bignum_from_float scheme_bignum_from_double +#endif +#define scheme_bignum_to_string (scheme_extension_table->scheme_bignum_to_string) +#define scheme_bignum_to_allocated_string (scheme_extension_table->scheme_bignum_to_allocated_string) +#define scheme_read_bignum (scheme_extension_table->scheme_read_bignum) +#define scheme_read_bignum_bytes (scheme_extension_table->scheme_read_bignum_bytes) +#define scheme_bignum_normalize (scheme_extension_table->scheme_bignum_normalize) +#define scheme_make_rational (scheme_extension_table->scheme_make_rational) +#define scheme_rational_to_double (scheme_extension_table->scheme_rational_to_double) +#define scheme_rational_from_double (scheme_extension_table->scheme_rational_from_double) +#ifdef MZ_LONG_DOUBLE +#define scheme_rational_to_long_double (scheme_extension_table->scheme_rational_to_long_double) +#define scheme_rational_from_long_double (scheme_extension_table->scheme_rational_from_long_double) +#endif +#ifdef MZ_USE_SINGLE_FLOATS +#define scheme_rational_to_float (scheme_extension_table->scheme_rational_to_float) +#define scheme_rational_from_float (scheme_extension_table->scheme_rational_from_float) +#else +# define scheme_rational_to_float scheme_rational_to_double +# define scheme_rational_from_float scheme_rational_from_double +#endif +#define scheme_rational_normalize (scheme_extension_table->scheme_rational_normalize) +#define scheme_rational_numerator (scheme_extension_table->scheme_rational_numerator) +#define scheme_rational_denominator (scheme_extension_table->scheme_rational_denominator) +#define scheme_make_complex (scheme_extension_table->scheme_make_complex) +#define scheme_complex_normalize (scheme_extension_table->scheme_complex_normalize) +#define scheme_complex_real_part (scheme_extension_table->scheme_complex_real_part) +#define scheme_complex_imaginary_part (scheme_extension_table->scheme_complex_imaginary_part) +#define scheme_is_exact (scheme_extension_table->scheme_is_exact) +#define scheme_is_inexact (scheme_extension_table->scheme_is_inexact) +#define scheme_expand (scheme_extension_table->scheme_expand) +#define scheme_compile (scheme_extension_table->scheme_compile) +#define scheme_read (scheme_extension_table->scheme_read) +#define scheme_read_syntax (scheme_extension_table->scheme_read_syntax) +#define scheme_write (scheme_extension_table->scheme_write) +#define scheme_print (scheme_extension_table->scheme_print) +#define scheme_display (scheme_extension_table->scheme_display) +#define scheme_write_w_max (scheme_extension_table->scheme_write_w_max) +#define scheme_display_w_max (scheme_extension_table->scheme_display_w_max) +#define scheme_print_w_max (scheme_extension_table->scheme_print_w_max) +#define scheme_write_byte_string (scheme_extension_table->scheme_write_byte_string) +#define scheme_write_char_string (scheme_extension_table->scheme_write_char_string) +#define scheme_put_byte_string (scheme_extension_table->scheme_put_byte_string) +#define scheme_put_char_string (scheme_extension_table->scheme_put_char_string) +#define scheme_write_to_string (scheme_extension_table->scheme_write_to_string) +#define scheme_display_to_string (scheme_extension_table->scheme_display_to_string) +#define scheme_print_to_string (scheme_extension_table->scheme_print_to_string) +#define scheme_write_to_string_w_max (scheme_extension_table->scheme_write_to_string_w_max) +#define scheme_display_to_string_w_max (scheme_extension_table->scheme_display_to_string_w_max) +#define scheme_print_to_string_w_max (scheme_extension_table->scheme_print_to_string_w_max) +#define scheme_debug_print (scheme_extension_table->scheme_debug_print) +#define scheme_flush_output (scheme_extension_table->scheme_flush_output) +#define scheme_format (scheme_extension_table->scheme_format) +#define scheme_printf (scheme_extension_table->scheme_printf) +#define scheme_format_utf8 (scheme_extension_table->scheme_format_utf8) +#define scheme_printf_utf8 (scheme_extension_table->scheme_printf_utf8) +#define scheme_getc (scheme_extension_table->scheme_getc) +#define scheme_get_byte (scheme_extension_table->scheme_get_byte) +#define scheme_peekc (scheme_extension_table->scheme_peekc) +#define scheme_peek_byte (scheme_extension_table->scheme_peek_byte) +#define scheme_peekc_skip (scheme_extension_table->scheme_peekc_skip) +#define scheme_peek_byte_skip (scheme_extension_table->scheme_peek_byte_skip) +#define scheme_getc_special_ok (scheme_extension_table->scheme_getc_special_ok) +#define scheme_get_byte_special_ok (scheme_extension_table->scheme_get_byte_special_ok) +#define scheme_peekc_special_ok (scheme_extension_table->scheme_peekc_special_ok) +#define scheme_peek_byte_special_ok_skip (scheme_extension_table->scheme_peek_byte_special_ok_skip) +#define scheme_peekc_special_ok_skip (scheme_extension_table->scheme_peekc_special_ok_skip) +#define scheme_ungetc (scheme_extension_table->scheme_ungetc) +#define scheme_byte_ready (scheme_extension_table->scheme_byte_ready) +#define scheme_char_ready (scheme_extension_table->scheme_char_ready) +#define scheme_peekc_is_ungetc (scheme_extension_table->scheme_peekc_is_ungetc) +#define scheme_need_wakeup (scheme_extension_table->scheme_need_wakeup) +#define scheme_get_byte_string (scheme_extension_table->scheme_get_byte_string) +#define scheme_get_byte_string_unless (scheme_extension_table->scheme_get_byte_string_unless) +#define scheme_get_byte_string_special_ok_unless (scheme_extension_table->scheme_get_byte_string_special_ok_unless) +#define scheme_progress_evt (scheme_extension_table->scheme_progress_evt) +#define scheme_peeked_read (scheme_extension_table->scheme_peeked_read) +#define scheme_get_char_string (scheme_extension_table->scheme_get_char_string) +#define scheme_get_bytes (scheme_extension_table->scheme_get_bytes) +#define scheme_get_ready_special (scheme_extension_table->scheme_get_ready_special) +#define scheme_tell (scheme_extension_table->scheme_tell) +#define scheme_tell_can_redirect (scheme_extension_table->scheme_tell_can_redirect) +#define scheme_output_tell (scheme_extension_table->scheme_output_tell) +#define scheme_tell_line (scheme_extension_table->scheme_tell_line) +#define scheme_tell_column (scheme_extension_table->scheme_tell_column) +#define scheme_tell_all (scheme_extension_table->scheme_tell_all) +#define scheme_set_port_location (scheme_extension_table->scheme_set_port_location) +#define scheme_count_lines (scheme_extension_table->scheme_count_lines) +#define scheme_close_input_port (scheme_extension_table->scheme_close_input_port) +#define scheme_close_output_port (scheme_extension_table->scheme_close_output_port) +#define scheme_write_special (scheme_extension_table->scheme_write_special) +#define scheme_write_special_nonblock (scheme_extension_table->scheme_write_special_nonblock) +#define scheme_make_write_evt (scheme_extension_table->scheme_make_write_evt) +#define scheme_port_record (scheme_extension_table->scheme_port_record) +#define scheme_input_port_record (scheme_extension_table->scheme_input_port_record) +#define scheme_output_port_record (scheme_extension_table->scheme_output_port_record) +#define scheme_is_input_port (scheme_extension_table->scheme_is_input_port) +#define scheme_is_output_port (scheme_extension_table->scheme_is_output_port) +#define scheme_make_port_type (scheme_extension_table->scheme_make_port_type) +#define scheme_make_input_port (scheme_extension_table->scheme_make_input_port) +#define scheme_make_output_port (scheme_extension_table->scheme_make_output_port) +#define scheme_set_next_port_custodian (scheme_extension_table->scheme_set_next_port_custodian) +#define scheme_set_port_location_fun (scheme_extension_table->scheme_set_port_location_fun) +#define scheme_set_port_count_lines_fun (scheme_extension_table->scheme_set_port_count_lines_fun) +#define scheme_port_count_lines (scheme_extension_table->scheme_port_count_lines) +#define scheme_progress_evt_via_get (scheme_extension_table->scheme_progress_evt_via_get) +#define scheme_peeked_read_via_get (scheme_extension_table->scheme_peeked_read_via_get) +#define scheme_write_evt_via_write (scheme_extension_table->scheme_write_evt_via_write) +#define scheme_write_special_evt_via_write_special (scheme_extension_table->scheme_write_special_evt_via_write_special) +#define scheme_open_input_file (scheme_extension_table->scheme_open_input_file) +#define scheme_open_output_file (scheme_extension_table->scheme_open_output_file) +#define scheme_open_input_output_file (scheme_extension_table->scheme_open_input_output_file) +#define scheme_open_output_file_with_mode (scheme_extension_table->scheme_open_output_file_with_mode) +#define scheme_make_file_input_port (scheme_extension_table->scheme_make_file_input_port) +#define scheme_make_named_file_input_port (scheme_extension_table->scheme_make_named_file_input_port) +#define scheme_make_file_output_port (scheme_extension_table->scheme_make_file_output_port) +#define scheme_make_fd_input_port (scheme_extension_table->scheme_make_fd_input_port) +#define scheme_make_fd_output_port (scheme_extension_table->scheme_make_fd_output_port) +#define scheme_make_byte_string_input_port (scheme_extension_table->scheme_make_byte_string_input_port) +#define scheme_make_sized_byte_string_input_port (scheme_extension_table->scheme_make_sized_byte_string_input_port) +#define scheme_make_byte_string_output_port (scheme_extension_table->scheme_make_byte_string_output_port) +#define scheme_get_sized_byte_string_output (scheme_extension_table->scheme_get_sized_byte_string_output) +#define scheme_get_reset_sized_byte_string_output (scheme_extension_table->scheme_get_reset_sized_byte_string_output) +#define scheme_pipe (scheme_extension_table->scheme_pipe) +#define scheme_pipe_with_limit (scheme_extension_table->scheme_pipe_with_limit) +#define scheme_make_null_output_port (scheme_extension_table->scheme_make_null_output_port) +#define scheme_make_redirect_output_port (scheme_extension_table->scheme_make_redirect_output_port) +#define scheme_set_file_position (scheme_extension_table->scheme_set_file_position) +#define scheme_file_exists (scheme_extension_table->scheme_file_exists) +#define scheme_directory_exists (scheme_extension_table->scheme_directory_exists) +#define scheme_expand_filename (scheme_extension_table->scheme_expand_filename) +#define scheme_expand_user_filename (scheme_extension_table->scheme_expand_user_filename) +#define scheme_expand_string_filename (scheme_extension_table->scheme_expand_string_filename) +#define scheme_os_getcwd (scheme_extension_table->scheme_os_getcwd) +#define scheme_os_setcwd (scheme_extension_table->scheme_os_setcwd) +#define scheme_getdrive (scheme_extension_table->scheme_getdrive) +#define scheme_split_path (scheme_extension_table->scheme_split_path) +#define scheme_build_path (scheme_extension_table->scheme_build_path) +#define scheme_path_to_directory_path (scheme_extension_table->scheme_path_to_directory_path) +#define scheme_path_to_complete_path (scheme_extension_table->scheme_path_to_complete_path) +#define scheme_simplify_path (scheme_extension_table->scheme_simplify_path) +#define scheme_make_path (scheme_extension_table->scheme_make_path) +#define scheme_make_sized_path (scheme_extension_table->scheme_make_sized_path) +#define scheme_make_sized_offset_path (scheme_extension_table->scheme_make_sized_offset_path) +#define scheme_make_sized_offset_kind_path (scheme_extension_table->scheme_make_sized_offset_kind_path) +#define scheme_make_path_without_copying (scheme_extension_table->scheme_make_path_without_copying) +#define scheme_alloc_fdset_array (scheme_extension_table->scheme_alloc_fdset_array) +#define scheme_init_fdset_array (scheme_extension_table->scheme_init_fdset_array) +#define scheme_get_fdset (scheme_extension_table->scheme_get_fdset) +#define scheme_fdzero (scheme_extension_table->scheme_fdzero) +#define scheme_fdset (scheme_extension_table->scheme_fdset) +#define scheme_fdclr (scheme_extension_table->scheme_fdclr) +#define scheme_fdisset (scheme_extension_table->scheme_fdisset) +#define scheme_add_fd_handle (scheme_extension_table->scheme_add_fd_handle) +#define scheme_add_fd_eventmask (scheme_extension_table->scheme_add_fd_eventmask) +#define scheme_collapse_win_fd (scheme_extension_table->scheme_collapse_win_fd) +#define scheme_set_wakeup_time (scheme_extension_table->scheme_set_wakeup_time) +#define scheme_security_check_file (scheme_extension_table->scheme_security_check_file) +#define scheme_security_check_file_link (scheme_extension_table->scheme_security_check_file_link) +#define scheme_security_check_network (scheme_extension_table->scheme_security_check_network) +#define scheme_get_host_address (scheme_extension_table->scheme_get_host_address) +#define scheme_free_host_address (scheme_extension_table->scheme_free_host_address) +#define scheme_host_address_strerror (scheme_extension_table->scheme_host_address_strerror) +#define scheme_getnameinfo (scheme_extension_table->scheme_getnameinfo) +#define scheme_get_port_file_descriptor (scheme_extension_table->scheme_get_port_file_descriptor) +#define scheme_get_port_fd (scheme_extension_table->scheme_get_port_fd) +#define scheme_get_port_socket (scheme_extension_table->scheme_get_port_socket) +#define scheme_socket_to_ports (scheme_extension_table->scheme_socket_to_ports) +#define scheme_fd_to_semaphore (scheme_extension_table->scheme_fd_to_semaphore) +#define scheme_set_type_printer (scheme_extension_table->scheme_set_type_printer) +#define scheme_print_bytes (scheme_extension_table->scheme_print_bytes) +#define scheme_print_utf8 (scheme_extension_table->scheme_print_utf8) +#define scheme_print_string (scheme_extension_table->scheme_print_string) +#define scheme_read_byte_string (scheme_extension_table->scheme_read_byte_string) +#define scheme_make_namespace (scheme_extension_table->scheme_make_namespace) +#define scheme_add_global (scheme_extension_table->scheme_add_global) +#define scheme_add_global_symbol (scheme_extension_table->scheme_add_global_symbol) +#define scheme_make_envunbox (scheme_extension_table->scheme_make_envunbox) +#define scheme_lookup_global (scheme_extension_table->scheme_lookup_global) +#define scheme_global_bucket (scheme_extension_table->scheme_global_bucket) +#define scheme_module_bucket (scheme_extension_table->scheme_module_bucket) +#define scheme_builtin_value (scheme_extension_table->scheme_builtin_value) +#define scheme_set_global_bucket (scheme_extension_table->scheme_set_global_bucket) +#define scheme_primitive_module (scheme_extension_table->scheme_primitive_module) +#define scheme_finish_primitive_module (scheme_extension_table->scheme_finish_primitive_module) +#define scheme_set_primitive_module_phaseless (scheme_extension_table->scheme_set_primitive_module_phaseless) +#define scheme_protect_primitive_provide (scheme_extension_table->scheme_protect_primitive_provide) +#define scheme_make_modidx (scheme_extension_table->scheme_make_modidx) +#define scheme_dynamic_require (scheme_extension_table->scheme_dynamic_require) +#define scheme_dynamic_require_reader (scheme_extension_table->scheme_dynamic_require_reader) +#define scheme_namespace_require (scheme_extension_table->scheme_namespace_require) +#define scheme_is_module_path (scheme_extension_table->scheme_is_module_path) +#define scheme_is_module_path_index (scheme_extension_table->scheme_is_module_path_index) +#define scheme_is_resolved_module_path (scheme_extension_table->scheme_is_resolved_module_path) +#define scheme_datum_to_kernel_stx (scheme_extension_table->scheme_datum_to_kernel_stx) +#define scheme_module_is_declared (scheme_extension_table->scheme_module_is_declared) +#define scheme_intern_symbol (scheme_extension_table->scheme_intern_symbol) +#define scheme_intern_exact_symbol (scheme_extension_table->scheme_intern_exact_symbol) +#define scheme_intern_exact_char_symbol (scheme_extension_table->scheme_intern_exact_char_symbol) +#define scheme_make_symbol (scheme_extension_table->scheme_make_symbol) +#define scheme_make_exact_symbol (scheme_extension_table->scheme_make_exact_symbol) +#define scheme_make_exact_char_symbol (scheme_extension_table->scheme_make_exact_char_symbol) +#define scheme_symbol_name (scheme_extension_table->scheme_symbol_name) +#define scheme_symbol_name_and_size (scheme_extension_table->scheme_symbol_name_and_size) +#define scheme_symbol_val (scheme_extension_table->scheme_symbol_val) +#define scheme_intern_exact_keyword (scheme_extension_table->scheme_intern_exact_keyword) +#define scheme_intern_exact_char_keyword (scheme_extension_table->scheme_intern_exact_char_keyword) +#define scheme_make_struct_values (scheme_extension_table->scheme_make_struct_values) +#define scheme_make_struct_names (scheme_extension_table->scheme_make_struct_names) +#define scheme_make_struct_type (scheme_extension_table->scheme_make_struct_type) +#define scheme_make_struct_type2 (scheme_extension_table->scheme_make_struct_type2) +#define scheme_make_struct_instance (scheme_extension_table->scheme_make_struct_instance) +#define scheme_is_struct_instance (scheme_extension_table->scheme_is_struct_instance) +#define scheme_struct_ref (scheme_extension_table->scheme_struct_ref) +#define scheme_struct_set (scheme_extension_table->scheme_struct_set) +#define scheme_make_struct_type_property (scheme_extension_table->scheme_make_struct_type_property) +#define scheme_make_struct_type_property_w_guard (scheme_extension_table->scheme_make_struct_type_property_w_guard) +#define scheme_struct_type_property_ref (scheme_extension_table->scheme_struct_type_property_ref) +#define scheme_chaperone_struct_type_property_ref (scheme_extension_table->scheme_chaperone_struct_type_property_ref) +#define scheme_make_location (scheme_extension_table->scheme_make_location) +#define scheme_is_location (scheme_extension_table->scheme_is_location) +#define scheme_make_inspector (scheme_extension_table->scheme_make_inspector) +#define scheme_is_subinspector (scheme_extension_table->scheme_is_subinspector) +#define scheme_eq (scheme_extension_table->scheme_eq) +#define scheme_eqv (scheme_extension_table->scheme_eqv) +#define scheme_equal (scheme_extension_table->scheme_equal) +#define scheme_chaperone_of (scheme_extension_table->scheme_chaperone_of) +#define scheme_impersonator_of (scheme_extension_table->scheme_impersonator_of) +#ifdef MZ_PRECISE_GC +#define scheme_hash_key (scheme_extension_table->scheme_hash_key) +#endif +#define scheme_equal_hash_key (scheme_extension_table->scheme_equal_hash_key) +#define scheme_equal_hash_key2 (scheme_extension_table->scheme_equal_hash_key2) +#define scheme_recur_equal_hash_key (scheme_extension_table->scheme_recur_equal_hash_key) +#define scheme_recur_equal_hash_key2 (scheme_extension_table->scheme_recur_equal_hash_key2) +#define scheme_eqv_hash_key (scheme_extension_table->scheme_eqv_hash_key) +#define scheme_eqv_hash_key2 (scheme_extension_table->scheme_eqv_hash_key2) +#define scheme_set_type_equality (scheme_extension_table->scheme_set_type_equality) +#define scheme_recur_equal (scheme_extension_table->scheme_recur_equal) +#define scheme_build_list (scheme_extension_table->scheme_build_list) +#define scheme_build_list_offset (scheme_extension_table->scheme_build_list_offset) +#define scheme_is_list (scheme_extension_table->scheme_is_list) +#define scheme_list_length (scheme_extension_table->scheme_list_length) +#define scheme_proper_list_length (scheme_extension_table->scheme_proper_list_length) +#define scheme_alloc_list (scheme_extension_table->scheme_alloc_list) +#define scheme_map_1 (scheme_extension_table->scheme_map_1) +#define scheme_car (scheme_extension_table->scheme_car) +#define scheme_cdr (scheme_extension_table->scheme_cdr) +#define scheme_cadr (scheme_extension_table->scheme_cadr) +#define scheme_caddr (scheme_extension_table->scheme_caddr) +#define scheme_vector_to_list (scheme_extension_table->scheme_vector_to_list) +#define scheme_list_to_vector (scheme_extension_table->scheme_list_to_vector) +#define scheme_append (scheme_extension_table->scheme_append) +#define scheme_reverse (scheme_extension_table->scheme_reverse) +#define scheme_box (scheme_extension_table->scheme_box) +#define scheme_unbox (scheme_extension_table->scheme_unbox) +#define scheme_set_box (scheme_extension_table->scheme_set_box) +#define scheme_make_weak_box (scheme_extension_table->scheme_make_weak_box) +#define scheme_make_late_weak_box (scheme_extension_table->scheme_make_late_weak_box) +#define scheme_make_ephemeron (scheme_extension_table->scheme_make_ephemeron) +#define scheme_ephemeron_value (scheme_extension_table->scheme_ephemeron_value) +#define scheme_ephemeron_key (scheme_extension_table->scheme_ephemeron_key) +#define scheme_make_late_will_executor (scheme_extension_table->scheme_make_late_will_executor) +#define scheme_load (scheme_extension_table->scheme_load) +#define scheme_load_extension (scheme_extension_table->scheme_load_extension) +#define scheme_register_extension_global (scheme_extension_table->scheme_register_extension_global) +#define scheme_get_seconds (scheme_extension_table->scheme_get_seconds) +#define scheme_get_milliseconds (scheme_extension_table->scheme_get_milliseconds) +#define scheme_get_inexact_milliseconds (scheme_extension_table->scheme_get_inexact_milliseconds) +#define scheme_get_process_milliseconds (scheme_extension_table->scheme_get_process_milliseconds) +#define scheme_get_process_children_milliseconds (scheme_extension_table->scheme_get_process_children_milliseconds) +#define scheme_get_thread_milliseconds (scheme_extension_table->scheme_get_thread_milliseconds) +#define scheme_banner (scheme_extension_table->scheme_banner) +#define scheme_version (scheme_extension_table->scheme_version) +#define scheme_check_proc_arity (scheme_extension_table->scheme_check_proc_arity) +#define scheme_check_proc_arity2 (scheme_extension_table->scheme_check_proc_arity2) +#define scheme_make_provided_string (scheme_extension_table->scheme_make_provided_string) +#define scheme_make_args_string (scheme_extension_table->scheme_make_args_string) +#define scheme_make_arg_lines_string (scheme_extension_table->scheme_make_arg_lines_string) +#define scheme_system_library_subpath (scheme_extension_table->scheme_system_library_subpath) +#define scheme_signal_received (scheme_extension_table->scheme_signal_received) +#define scheme_signal_received_at (scheme_extension_table->scheme_signal_received_at) +#define scheme_get_signal_handle (scheme_extension_table->scheme_get_signal_handle) +#define scheme_wait_until_signal_received (scheme_extension_table->scheme_wait_until_signal_received) +#define scheme_char_strlen (scheme_extension_table->scheme_char_strlen) +#define scheme_stx_extract_marks (scheme_extension_table->scheme_stx_extract_marks) +#define scheme_get_place_id (scheme_extension_table->scheme_get_place_id) +#define scheme_get_place_table (scheme_extension_table->scheme_get_place_table) +#define scheme_register_process_global (scheme_extension_table->scheme_register_process_global) +#define scheme_malloc_key (scheme_extension_table->scheme_malloc_key) +#define scheme_free_key (scheme_extension_table->scheme_free_key) +#define scheme_jit_find_code_end (scheme_extension_table->scheme_jit_find_code_end) +#define scheme_jit_now (scheme_extension_table->scheme_jit_now) +#define scheme_set_signal_handler (scheme_extension_table->scheme_set_signal_handler) +#ifdef MZ_PRECISE_GC +#pragma GC_VARIABLE_STACK_THOUGH_TABLE +#endif diff --git a/racket/src/include/schexn.h b/racket/src/include/schexn.h new file mode 100644 index 0000000000..138a7160cb --- /dev/null +++ b/racket/src/include/schexn.h @@ -0,0 +1,136 @@ +/* This file was generated by makeexn */ +#ifndef _MZEXN_DEFINES +#define _MZEXN_DEFINES +enum { + MZEXN, + MZEXN_FAIL, + MZEXN_FAIL_CONTRACT, + MZEXN_FAIL_CONTRACT_ARITY, + MZEXN_FAIL_CONTRACT_DIVIDE_BY_ZERO, + MZEXN_FAIL_CONTRACT_NON_FIXNUM_RESULT, + MZEXN_FAIL_CONTRACT_CONTINUATION, + MZEXN_FAIL_CONTRACT_VARIABLE, + MZEXN_FAIL_READ, + MZEXN_FAIL_READ_EOF, + MZEXN_FAIL_READ_NON_CHAR, + MZEXN_FAIL_FILESYSTEM, + MZEXN_FAIL_FILESYSTEM_EXISTS, + MZEXN_FAIL_FILESYSTEM_VERSION, + MZEXN_FAIL_FILESYSTEM_ERRNO, + MZEXN_FAIL_NETWORK, + MZEXN_FAIL_NETWORK_ERRNO, + MZEXN_FAIL_OUT_OF_MEMORY, + MZEXN_FAIL_UNSUPPORTED, + MZEXN_FAIL_USER, + MZEXN_BREAK, + MZEXN_BREAK_HANG_UP, + MZEXN_BREAK_TERMINATE, + MZEXN_OTHER +}; +#endif + +#ifdef _MZEXN_TABLE + +#define MZEXN_MAXARGS 3 + +#ifdef GLOBAL_EXN_ARRAY +static exn_rec exn_table[] = { + { 2, NULL, NULL, 0, NULL, -1 }, + { 2, NULL, NULL, 0, NULL, 0 }, + { 2, NULL, NULL, 0, NULL, 1 }, + { 2, NULL, NULL, 0, NULL, 2 }, + { 2, NULL, NULL, 0, NULL, 2 }, + { 2, NULL, NULL, 0, NULL, 2 }, + { 2, NULL, NULL, 0, NULL, 2 }, + { 3, NULL, NULL, 0, NULL, 2 }, + { 3, NULL, NULL, 0, NULL, 1 }, + { 3, NULL, NULL, 0, NULL, 8 }, + { 3, NULL, NULL, 0, NULL, 8 }, + { 2, NULL, NULL, 0, NULL, 1 }, + { 2, NULL, NULL, 0, NULL, 11 }, + { 2, NULL, NULL, 0, NULL, 11 }, + { 3, NULL, NULL, 0, NULL, 11 }, + { 2, NULL, NULL, 0, NULL, 1 }, + { 3, NULL, NULL, 0, NULL, 15 }, + { 2, NULL, NULL, 0, NULL, 1 }, + { 2, NULL, NULL, 0, NULL, 1 }, + { 2, NULL, NULL, 0, NULL, 1 }, + { 3, NULL, NULL, 0, NULL, 0 }, + { 3, NULL, NULL, 0, NULL, 20 }, + { 3, NULL, NULL, 0, NULL, 20 } +}; +#else +static exn_rec *exn_table; +#endif + +#endif + +#ifdef _MZEXN_PRESETUP + +#ifndef GLOBAL_EXN_ARRAY + exn_table = (exn_rec *)scheme_malloc(sizeof(exn_rec) * MZEXN_OTHER); + exn_table[MZEXN].args = 2; + exn_table[MZEXN_FAIL].args = 2; + exn_table[MZEXN_FAIL_CONTRACT].args = 2; + exn_table[MZEXN_FAIL_CONTRACT_ARITY].args = 2; + exn_table[MZEXN_FAIL_CONTRACT_DIVIDE_BY_ZERO].args = 2; + exn_table[MZEXN_FAIL_CONTRACT_NON_FIXNUM_RESULT].args = 2; + exn_table[MZEXN_FAIL_CONTRACT_CONTINUATION].args = 2; + exn_table[MZEXN_FAIL_CONTRACT_VARIABLE].args = 3; + exn_table[MZEXN_FAIL_READ].args = 3; + exn_table[MZEXN_FAIL_READ_EOF].args = 3; + exn_table[MZEXN_FAIL_READ_NON_CHAR].args = 3; + exn_table[MZEXN_FAIL_FILESYSTEM].args = 2; + exn_table[MZEXN_FAIL_FILESYSTEM_EXISTS].args = 2; + exn_table[MZEXN_FAIL_FILESYSTEM_VERSION].args = 2; + exn_table[MZEXN_FAIL_FILESYSTEM_ERRNO].args = 3; + exn_table[MZEXN_FAIL_NETWORK].args = 2; + exn_table[MZEXN_FAIL_NETWORK_ERRNO].args = 3; + exn_table[MZEXN_FAIL_OUT_OF_MEMORY].args = 2; + exn_table[MZEXN_FAIL_UNSUPPORTED].args = 2; + exn_table[MZEXN_FAIL_USER].args = 2; + exn_table[MZEXN_BREAK].args = 3; + exn_table[MZEXN_BREAK_HANG_UP].args = 3; + exn_table[MZEXN_BREAK_TERMINATE].args = 3; +#endif + +#endif + +#ifdef _MZEXN_DECL_FIELDS + static const char *MZEXN_FIELDS[2] = { "message", "continuation-marks" }; + static const char *MZEXN_FAIL_CONTRACT_VARIABLE_FIELDS[1] = { "id" }; + static const char *MZEXN_FAIL_READ_FIELDS[1] = { "srclocs" }; + static const char *MZEXN_FAIL_FILESYSTEM_ERRNO_FIELDS[1] = { "errno" }; + static const char *MZEXN_FAIL_NETWORK_ERRNO_FIELDS[1] = { "errno" }; + static const char *MZEXN_BREAK_FIELDS[1] = { "continuation" }; +#endif + +#ifdef _MZEXN_DECL_PROPS +# define MZEXN_FAIL_READ_PROPS scheme_make_pair(scheme_make_pair(scheme_source_property, scheme_make_prim_w_arity(extract_read_locations, "extract_read_locations", 0, -1)), scheme_null) +#endif + +#ifdef _MZEXN_SETUP + SETUP_STRUCT(MZEXN, NULL, "exn", 2, MZEXN_FIELDS, scheme_null, scheme_make_prim_w_arity(exn_field_check, "exn_field_check" , 0, -1)) + SETUP_STRUCT(MZEXN_FAIL, EXN_PARENT(MZEXN), "exn:fail", 0, NULL, scheme_null, NULL) + SETUP_STRUCT(MZEXN_FAIL_CONTRACT, EXN_PARENT(MZEXN_FAIL), "exn:fail:contract", 0, NULL, scheme_null, NULL) + SETUP_STRUCT(MZEXN_FAIL_CONTRACT_ARITY, EXN_PARENT(MZEXN_FAIL_CONTRACT), "exn:fail:contract:arity", 0, NULL, scheme_null, NULL) + SETUP_STRUCT(MZEXN_FAIL_CONTRACT_DIVIDE_BY_ZERO, EXN_PARENT(MZEXN_FAIL_CONTRACT), "exn:fail:contract:divide-by-zero", 0, NULL, scheme_null, NULL) + SETUP_STRUCT(MZEXN_FAIL_CONTRACT_NON_FIXNUM_RESULT, EXN_PARENT(MZEXN_FAIL_CONTRACT), "exn:fail:contract:non-fixnum-result", 0, NULL, scheme_null, NULL) + SETUP_STRUCT(MZEXN_FAIL_CONTRACT_CONTINUATION, EXN_PARENT(MZEXN_FAIL_CONTRACT), "exn:fail:contract:continuation", 0, NULL, scheme_null, NULL) + SETUP_STRUCT(MZEXN_FAIL_CONTRACT_VARIABLE, EXN_PARENT(MZEXN_FAIL_CONTRACT), "exn:fail:contract:variable", 1, MZEXN_FAIL_CONTRACT_VARIABLE_FIELDS, scheme_null, scheme_make_prim_w_arity(variable_field_check, "variable_field_check" , 0, -1)) + SETUP_STRUCT(MZEXN_FAIL_READ, EXN_PARENT(MZEXN_FAIL), "exn:fail:read", 1, MZEXN_FAIL_READ_FIELDS, MZEXN_FAIL_READ_PROPS, scheme_make_prim_w_arity(read_field_check, "read_field_check" , 0, -1)) + SETUP_STRUCT(MZEXN_FAIL_READ_EOF, EXN_PARENT(MZEXN_FAIL_READ), "exn:fail:read:eof", 0, NULL, scheme_null, NULL) + SETUP_STRUCT(MZEXN_FAIL_READ_NON_CHAR, EXN_PARENT(MZEXN_FAIL_READ), "exn:fail:read:non-char", 0, NULL, scheme_null, NULL) + SETUP_STRUCT(MZEXN_FAIL_FILESYSTEM, EXN_PARENT(MZEXN_FAIL), "exn:fail:filesystem", 0, NULL, scheme_null, NULL) + SETUP_STRUCT(MZEXN_FAIL_FILESYSTEM_EXISTS, EXN_PARENT(MZEXN_FAIL_FILESYSTEM), "exn:fail:filesystem:exists", 0, NULL, scheme_null, NULL) + SETUP_STRUCT(MZEXN_FAIL_FILESYSTEM_VERSION, EXN_PARENT(MZEXN_FAIL_FILESYSTEM), "exn:fail:filesystem:version", 0, NULL, scheme_null, NULL) + SETUP_STRUCT(MZEXN_FAIL_FILESYSTEM_ERRNO, EXN_PARENT(MZEXN_FAIL_FILESYSTEM), "exn:fail:filesystem:errno", 1, MZEXN_FAIL_FILESYSTEM_ERRNO_FIELDS, scheme_null, scheme_make_prim_w_arity(errno_field_check, "errno_field_check" , 0, -1)) + SETUP_STRUCT(MZEXN_FAIL_NETWORK, EXN_PARENT(MZEXN_FAIL), "exn:fail:network", 0, NULL, scheme_null, NULL) + SETUP_STRUCT(MZEXN_FAIL_NETWORK_ERRNO, EXN_PARENT(MZEXN_FAIL_NETWORK), "exn:fail:network:errno", 1, MZEXN_FAIL_NETWORK_ERRNO_FIELDS, scheme_null, scheme_make_prim_w_arity(errno_field_check, "errno_field_check" , 0, -1)) + SETUP_STRUCT(MZEXN_FAIL_OUT_OF_MEMORY, EXN_PARENT(MZEXN_FAIL), "exn:fail:out-of-memory", 0, NULL, scheme_null, NULL) + SETUP_STRUCT(MZEXN_FAIL_UNSUPPORTED, EXN_PARENT(MZEXN_FAIL), "exn:fail:unsupported", 0, NULL, scheme_null, NULL) + SETUP_STRUCT(MZEXN_FAIL_USER, EXN_PARENT(MZEXN_FAIL), "exn:fail:user", 0, NULL, scheme_null, NULL) + SETUP_STRUCT(MZEXN_BREAK, EXN_PARENT(MZEXN), "exn:break", 1, MZEXN_BREAK_FIELDS, scheme_null, scheme_make_prim_w_arity(break_field_check, "break_field_check" , 0, -1)) + SETUP_STRUCT(MZEXN_BREAK_HANG_UP, EXN_PARENT(MZEXN_BREAK), "exn:break:hang-up", 0, NULL, scheme_null, NULL) + SETUP_STRUCT(MZEXN_BREAK_TERMINATE, EXN_PARENT(MZEXN_BREAK), "exn:break:terminate", 0, NULL, scheme_null, NULL) +#endif diff --git a/racket/src/include/schgc2obj.h b/racket/src/include/schgc2obj.h new file mode 100644 index 0000000000..9a28cf294f --- /dev/null +++ b/racket/src/include/schgc2obj.h @@ -0,0 +1,37 @@ +#ifndef GC2_OBJHEAD_H +#define GC2_OBJHEAD_H + +#if defined(MZ_PRECISE_GC) && !defined(USE_COMPACT_3M_GC) + +#if defined(_WIN32) || defined(__CYGWIN32__) || defined(MZ_USE_LARGE_PAGE_SIZE) +# define LOG_APAGE_SIZE 16 +#else +# define LOG_APAGE_SIZE 14 +#endif +typedef struct objhead { + /* the type and size of the object */ + uintptr_t type : 3; /* if `moved`, then non-0 means moved to gen 1/2 */ + /* these are the various mark bits we use */ + uintptr_t mark : 1; + uintptr_t btc_mark : 1; + /* these are used for compaction et al*/ + uintptr_t moved : 1; + uintptr_t dead : 1; + uintptr_t size : LOG_APAGE_SIZE; + /* leftover bits are used for hashing: */ + uintptr_t hash : ((8 * sizeof(intptr_t)) - (4+3+LOG_APAGE_SIZE) ); +} objhead; + +#define OBJHEAD_SIZE (sizeof(objhead)) +#define OBJPTR_TO_OBJHEAD(p) ((objhead *) (((char *)(p)) - OBJHEAD_SIZE)) +#define OBJHEAD_TO_OBJPTR(p) ((void *) (((char *)(p)) + OBJHEAD_SIZE)) + + +XFORM_NONGCING extern int GC_is_allocated(void *p); + +#define OBJHEAD_HAS_HASH_BITS +#define OBJHEAD_HASH_BITS(p) (OBJPTR_TO_OBJHEAD(p)->hash) + +#endif + +#endif diff --git a/racket/src/include/schthread.h b/racket/src/include/schthread.h new file mode 100644 index 0000000000..1a3009fd98 --- /dev/null +++ b/racket/src/include/schthread.h @@ -0,0 +1,769 @@ + +/* Implements thread-local variables, which are all combined into one + big table. + + When thread-local variables are not needed, this file doesn't + declare them. Instead, declarations marked with + THREAD_LOCAL_DECL() are used. + + When thread-local variables are needed, then THREAD_LOCAL_DECL() + expands to nothing, and this file defines each thread-local variable + as a field in one big record. The record is accessed through a single + thread-local variable or through pthread_getspecific(). + + Choose the names of thread-local variables carefully. The names are + globally visible, and macros to redirect uses of thread-local + variables can create trouble and poor error messages from the C + compiler if the same name is used for a local variable. */ + +#ifndef SCHEME_THREADLOCAL_H +#define SCHEME_THREADLOCAL_H + +#include "mzconfig.h" + +# ifdef __cplusplus +extern "C" { +# endif + +#if defined(MZ_USE_PLACES) || defined(MZ_USE_FUTURES) +# define USE_THREAD_LOCAL +# ifdef _WIN32 +# if defined(_WIN64) +# if defined(__MINGW32__) +# define THREAD_LOCAL /* empty */ +# define IMPLEMENT_THREAD_LOCAL_VIA_WIN_TLS +# else +# define THREAD_LOCAL __declspec(thread) +# define MZ_THREAD_EXTERN extern +# define IMPLEMENT_THREAD_LOCAL_VIA_OFFSET +# define IMPLEMENT_THREAD_LOCAL_EXTERNALLY_VIA_PROC +# endif +# else +# define THREAD_LOCAL /* empty */ +# define IMPLEMENT_THREAD_LOCAL_VIA_WIN_TLS +# endif +# elif (defined(__APPLE__) && defined(__MACH__)) || defined(GC2_PLACES_TESTING) +# define IMPLEMENT_THREAD_LOCAL_VIA_PTHREADS +# if defined(__x86_64__) || defined(__i386__) +# define INLINE_GETSPECIFIC_ASSEMBLY_CODE +# endif +# else +# define THREAD_LOCAL __thread +# endif +#else +# define THREAD_LOCAL /* empty */ +#endif + +/* Set up MZ_EXTERN for DLL build */ +#if (defined(__WIN32__) || defined(WIN32) || defined(_WIN32) || defined(__CYGWIN32__)) \ + && !defined(LINK_EXTENSIONS_BY_TABLE) \ + && !defined(SCHEME_EMBEDDED_NO_DLL) +# define MZ_DLLIMPORT __declspec(dllimport) +# define MZ_DLLEXPORT __declspec(dllexport) +# if (defined(__mzscheme_private__) || defined(__MINGW32_DELAY_LOAD__) \ + || defined(MZ_NO_LIBRACKET_DLL) \ + || (defined(__CYGWIN32__) && !defined(MZ_USES_SHARED_LIB))) +# define MZ_DLLSPEC __declspec(dllexport) +# else +# define MZ_DLLSPEC __declspec(dllimport) +# endif +# if (defined(__CYGWIN32__) && !defined(MZ_USES_SHARED_LIB)) || defined(MZ_PRECISE_GC) +# define MZGC_DLLIMPORT +# else +# define MZGC_DLLIMPORT MZ_DLLIMPORT +# endif +#else +# define MZ_DLLSPEC +# define MZ_DLLIMPORT +# define MZ_DLLEXPORT +# define MZGC_DLLIMPORT +#endif + +#define MZ_EXTERN extern MZ_DLLSPEC + +#ifndef MZ_THREAD_EXTERN +# define MZ_THREAD_EXTERN MZ_EXTERN +#endif + +MZ_EXTERN void scheme_init_os_thread(void); + +/* **************************************************************** */ +/* Declarations that we wish were elsewhere, but are needed here to */ +/* determine the size and type of some thread-local record fields. */ +/* **************************************************************** */ + +#define STACK_COPY_CACHE_SIZE 10 +#define BIGNUM_CACHE_SIZE 16 +#define STACK_CACHE_SIZE 32 +#define NUM_MORE_CONSTANT_STXES 24 + + /* The number of cached scope sets should be a power of 2: */ +#define NUM_RECENT_SCOPE_SETS 8 + +/* This structure must be 4 words: */ +typedef struct { + void *orig_return_address; + void *stack_frame; + struct Scheme_Object *cache; + void *orig_result; +} Stack_Cache_Elem; + +typedef intptr_t rxpos; + +struct gmp_tmp_stack +{ + void *end; + void *alloc_point; + struct gmp_tmp_stack *prev; +}; + +#ifndef MZ_PRECISE_GC +typedef intptr_t objhead; +#endif + +typedef void (*Scheme_Sleep_Proc)(float seconds, void *fds); + +typedef void (*Scheme_On_Atomic_Timeout_Proc)(void *data, int must_give_up); + +/* **************************************** */ + +#ifndef USE_THREAD_LOCAL + +# define THREAD_LOCAL_DECL(x) x + +#else + +/* **************************************** */ + +typedef struct Thread_Local_Variables { + int scheme_current_place_id_; + void **GC_variable_stack_; + struct NewGC *GC_instance_; + uintptr_t GC_gen0_alloc_page_ptr_; + uintptr_t GC_gen0_alloc_page_end_; + int GC_gen0_alloc_only_; + uintptr_t force_gc_for_place_accounting_; + uintptr_t scheme_os_thread_id_; + int scheme_starting_up_; + struct rktio_t *scheme_rktio_; + void *bignum_cache_[BIGNUM_CACHE_SIZE]; + int cache_count_; + struct Scheme_Hash_Table *toplevels_ht_; + struct Scheme_Hash_Table *locals_ht_[2]; + volatile int scheme_fuel_counter_; + uintptr_t scheme_stack_boundary_; + uintptr_t volatile scheme_jit_stack_boundary_; + volatile int scheme_future_need_gc_pause_; + int scheme_use_rtcall_; + int in_jit_critical_section_; + void *jit_buffer_cache_; + intptr_t jit_buffer_cache_size_; + int jit_buffer_cache_registered_; + int scheme_continuation_application_count_; + int scheme_cont_capture_count_; + int scheme_prompt_capture_count_; + struct Scheme_Prompt *available_prompt_; + struct Scheme_Prompt *available_cws_prompt_; + struct Scheme_Prompt *available_regular_prompt_; + struct Scheme_Dynamic_Wind *available_prompt_dw_; + struct Scheme_Meta_Continuation *available_prompt_mc_; + struct Scheme_Cont *offstack_cont_; + struct Scheme_Overflow *offstack_overflow_; + struct Scheme_Overflow_Jmp *scheme_overflow_jmp_; + void *scheme_overflow_stack_start_; + void **codetab_tree_; + int during_set_; + Stack_Cache_Elem stack_cache_stack_[STACK_CACHE_SIZE]; + intptr_t stack_cache_stack_pos_; + struct Scheme_Object **fixup_runstack_base_; + int fixup_already_in_place_; + void *retry_alloc_r1_; + double scheme_jit_save_fp_; + double scheme_jit_save_fp2_; +#ifdef MZ_LONG_DOUBLE + mz_long_double scheme_jit_save_extfp_; + mz_long_double scheme_jit_save_extfp2_; +#endif + struct Scheme_Bucket_Table *starts_table_; + struct mz_proc_thread *proc_thread_self_; + struct Scheme_Object *scheme_orig_stdout_port_; + struct Scheme_Object *scheme_orig_stderr_port_; + struct Scheme_Object *scheme_orig_stdin_port_; + struct rktio_ltps_t *scheme_semaphore_fd_set_; + struct Scheme_Object *fs_change_props_; + struct Scheme_Custodian *new_port_cust_; + char *read_string_byte_buffer_; + struct ITimer_Data *itimerdata_; + char *quick_buffer_; + char *quick_encode_buffer_; + char *quick_print_buffer_; + struct Scheme_Hash_Table *cache_ht_; + char *regstr_; + char *regparsestr_; + int regmatchmin_; + int regmatchmax_; + int regmaxbackposn_; + int regsavepos_; + struct Scheme_Hash_Table *regbackknown_; + struct Scheme_Hash_Table *regbackdepends_; + rxpos regparse_; + rxpos regparse_end_; + int regnpar_; + int regncounter_; + rxpos regcode_; + rxpos regcodesize_; + rxpos regcodemax_; + intptr_t regmaxlookback_; + const char *regerrorwho_; + Scheme_Object *regerrorproc_; + Scheme_Object *regerrorval_; + intptr_t rx_buffer_size_; + rxpos *startp_buffer_cache_; + rxpos *endp_buffer_cache_; + rxpos *maybep_buffer_cache_; + rxpos *match_stack_buffer_cache_; + uintptr_t scheme_os_thread_stack_base_; + struct Scheme_Object *scheme_system_idle_channel_; + struct Scheme_Object *system_idle_put_evt_; + void *stack_copy_cache_[STACK_COPY_CACHE_SIZE]; + intptr_t stack_copy_size_cache_[STACK_COPY_CACHE_SIZE]; + int scc_pos_; + struct Scheme_Instance *scheme_startup_instance_; + struct startup_instance_top_t *c_startup_instance_top_; + struct Scheme_Thread *scheme_current_thread_; + struct Scheme_Thread *scheme_main_thread_; + struct Scheme_Thread *scheme_first_thread_; + struct Scheme_Thread *gc_prep_thread_chain_; + struct Scheme_Thread_Set *scheme_thread_set_top_; + struct Scheme_Current_LWC *scheme_current_lwc_; + intptr_t process_time_at_swap_; + intptr_t process_time_skips_; + int num_running_threads_; + int swap_no_setjmp_; + int thread_swap_count_; + int scheme_did_gc_count_; + struct Scheme_Future_State *scheme_future_state_; + struct Scheme_Future_Thread_State *scheme_future_thread_state_; + void *jit_future_storage_[4]; + struct Scheme_Object **scheme_current_runstack_start_; + struct Scheme_Object **scheme_current_runstack_; + intptr_t scheme_current_cont_mark_stack_; + intptr_t scheme_current_cont_mark_pos_; + struct Scheme_Custodian *main_custodian_; + struct Scheme_Hash_Table *limited_custodians_; + struct Scheme_Plumber *initial_plumber_; + struct Scheme_Config *initial_config_; + struct Scheme_Thread *swap_target_; + struct Scheme_Object *scheduled_kills_; + struct Scheme_Hash_Table *late_will_executors_with_pending_; + int do_atomic_; + int missed_context_switch_; + int all_breaks_disabled_; + int have_activity_; + int scheme_active_but_sleeping_; + int thread_ended_with_activity_; + int scheme_no_stack_overflow_; + int needs_sleep_cancelled_; + double needs_sleep_time_end_; + int tls_pos_; + struct Scheme_Object *the_nested_exn_handler_; + struct Scheme_Object *cust_closers_; + struct Scheme_Object *thread_swap_callbacks_; + struct Scheme_Object *thread_swap_out_callbacks_; + struct Scheme_Object *recycle_cell_; + struct Scheme_Object *maybe_recycle_cell_; + int recycle_cc_count_; + void *gmp_mem_pool_; + uintptr_t max_total_allocation_; + uintptr_t current_total_allocation_; + struct gmp_tmp_stack gmp_tmp_xxx_; + struct gmp_tmp_stack *gmp_tmp_current_; + struct Scheme_Logger *scheme_main_logger_; + struct Scheme_Logger *scheme_gc_logger_; + struct Scheme_Logger *scheme_future_logger_; + struct Scheme_Logger *scheme_place_logger_; + int scheme_overflow_count_; + struct Scheme_Object *original_pwd_; + void *file_path_wc_buffer_; + intptr_t scheme_hash_request_count_; + intptr_t scheme_hash_iteration_count_; + struct Scheme_Bucket_Table *scheme_namespace_to_env_; + int special_is_ok_; + int scheme_force_port_closed_; + int fd_reserved_; + struct rktio_fd_t *the_fd_; + int scheme_num_read_syntax_objects_; + struct Scheme_Load_Delay *clear_bytes_chain_; + const char *failure_msg_for_read_; + void **dgc_array_; + int *dgc_count_; + int dgc_size_; + void (*save_oom_)(void); + int current_lifetime_; + int scheme_main_was_once_suspended_; + int buffer_init_size_; + uintptr_t scheme_total_gc_time_; + uintptr_t start_this_gc_time_; + uintptr_t end_this_gc_time_; + double start_this_gc_real_time_; + double end_this_gc_real_time_; + struct Scheme_Struct_Type *gc_info_prefab_; + struct Scheme_Struct_Type *place_event_prefab_; + volatile short delayed_break_ready_; + struct Scheme_Thread *main_break_target_thread_; + intptr_t scheme_code_page_total_; + intptr_t scheme_code_total_; + intptr_t scheme_code_count_; + intptr_t max_gc_pre_used_bytes_; + intptr_t max_code_page_total_; + int num_major_garbage_collections_; + int num_minor_garbage_collections_; + int locale_on_; + void *current_locale_name_ptr_; + char *cached_locale_encoding_name_; + struct rktio_converter_t *cached_locale_to_converter_; + struct rktio_converter_t *cached_locale_from_converter_; + int gensym_counter_; + struct Scheme_Object *dummy_input_port_; + struct Scheme_Object *dummy_output_port_; + struct Scheme_Hash_Table *opened_libs_; + struct mzrt_mutex *jit_lock_; + struct free_list_entry *free_list_; + int free_list_bucket_count_; + void *code_allocation_page_list_; + struct Scheme_Bucket_Table *prefab_table_; + struct Scheme_Hash_Table *place_local_symbol_table_; + struct Scheme_Hash_Table *place_local_keyword_table_; + struct Scheme_Hash_Table *place_local_parallel_symbol_table_; + struct Scheme_Bucket_Table *literal_string_table_; + struct Scheme_Bucket_Table *literal_number_table_; + struct FFI_Sync_Queue *ffi_sync_queue_; + struct Scheme_GC_Pre_Post_Callback_Desc *gc_prepost_callback_descs_; + struct Scheme_Hash_Table *place_local_misc_table_; + int place_evts_array_size_; + struct Evt **place_evts_; + struct Scheme_Place_Object *place_object_; + struct Scheme_Place *all_child_places_; + struct Scheme_Place_Bi_Channel_Link *place_channel_links_; + struct Scheme_Object **reusable_ifs_stack_; + struct Scheme_Object *group_member_cache_; + struct Scheme_Prefix *scheme_prefix_finalize_; + struct Scheme_Prefix *scheme_inc_prefix_finalize_; + struct Scheme_Hash_Table *loaded_extensions_; + struct Scheme_Hash_Table *fullpath_loaded_extensions_; + Scheme_Sleep_Proc scheme_place_sleep_; + struct Scheme_Object *thread_sleep_callback_; + int thread_sleep_callback_fd_; + struct GHBN_Thread_Data *ghbn_thread_data_; + Scheme_On_Atomic_Timeout_Proc on_atomic_timeout_; + void *on_atomic_timeout_data_; + int atomic_timeout_auto_suspend_; + int atomic_timeout_atomic_level_; + struct Scheme_Object *configuration_callback_cache_[2]; + struct FFI_Orig_Place_Call *cached_orig_place_todo_; + struct Scheme_Hash_Table *ffi_lock_ht_; + struct Scheme_Object *is_syntax_proc_; + struct Scheme_Object *expander_syntax_to_datum_proc_; + struct Scheme_Hash_Table *local_primitive_tables_; + struct Scheme_Object *current_linklet_native_lambdas_; +} Thread_Local_Variables; + +#if defined(IMPLEMENT_THREAD_LOCAL_VIA_PTHREADS) +/* Using Pthread getspecific() */ +# include +MZ_EXTERN pthread_key_t scheme_thread_local_key; +# if defined(__APPLE__) && defined(__MACH__) +# define PREFER_TO_CACHE_THREAD_LOCAL +MZ_EXTERN int scheme_thread_local_offset; +# endif +# ifndef INLINE_GETSPECIFIC_ASSEMBLY_CODE +# define scheme_get_thread_local_variables() ((Thread_Local_Variables *)pthread_getspecific(scheme_thread_local_key)) +# ifdef MZ_XFORM +XFORM_GC_VARIABLE_STACK_THROUGH_GETSPECIFIC; +# endif +# else +# ifdef MZ_XFORM +START_XFORM_SKIP; +# endif +static inline Thread_Local_Variables *scheme_get_thread_local_variables(void) __attribute__((used)); +static inline Thread_Local_Variables *scheme_get_thread_local_variables(void) { + Thread_Local_Variables *x = NULL; +# if defined(__APPLE__) && defined(__MACH__) +# if defined(__x86_64__) + asm("movq %%gs:0(%1,%2,8), %0" : "=r"(x) : "r"(scheme_thread_local_offset), "r"((int)scheme_thread_local_key)); +# else + asm("movl %%gs:0(%1,%2,4), %0" : "=r"(x) : "r"(scheme_thread_local_offset), "r"(scheme_thread_local_key)); +# endif +# elif defined(linux) +# if defined(__x86_64__) + asm( "mov %1, %%eax;" + "shl $0x4, %%rax;" + "mov %%fs:0x10, %%rdx;" + "mov 0x118(%%rax,%%rdx), %0;" + :"=r"(x) /* output */ + :"r"(scheme_thread_local_key) + :"%rax", "%rdx" /* clobbered register */ + ); +# else +# error scheme_get_thread_local_variables no defined on this platform +# endif +# else +# error scheme_get_thread_local_variables no defined on this platform +# endif + return x; +} +# ifdef MZ_XFORM +END_XFORM_SKIP; +XFORM_GC_VARIABLE_STACK_THROUGH_FUNCTION; +# endif +# endif +#elif defined(IMPLEMENT_THREAD_LOCAL_VIA_PROCEDURE) +/* Using external scheme_get_thread_local_variables() procedure */ +MZ_EXTERN Thread_Local_Variables *scheme_get_thread_local_variables(void); +# ifdef MZ_XFORM +XFORM_GC_VARIABLE_STACK_THROUGH_FUNCTION; +# endif +#elif defined(IMPLEMENT_THREAD_LOCAL_VIA_WIN_TLS) +# ifdef MZ_XFORM +START_XFORM_SKIP; +# endif +MZ_EXTERN Thread_Local_Variables *scheme_external_get_thread_local_variables(void); +# ifdef __mzscheme_private__ +/* In the Racket DLL, need thread-local to be fast: */ +MZ_EXTERN uintptr_t scheme_tls_delta; +# ifdef MZ_USE_WIN_TLS_VIA_DLL +MZ_EXTERN int scheme_tls_index; +# endif +static __inline Thread_Local_Variables **scheme_get_thread_local_variables_ptr(void) { +# ifdef __MINGW32__ + Thread_Local_Variables **x; +# ifdef _WIN64 + asm ( + "mov %%gs:(0x58), %%rax;" + "mov (%%rax), %%rax;" + "add %1, %%rax;" + "mov %%rax, %0;" + :"=r"(x) /* output */ + :"r"(scheme_tls_delta) + :"%rax" /* clobbered register */ + ); +# else + asm ( + "mov %%fs:(0x2C), %%eax;" + "mov (%%eax), %%eax;" + "add %1, %%eax;" + "mov %%eax, %0;" + :"=r"(x) /* output */ + :"r"(scheme_tls_delta) + :"%eax" /* clobbered register */ + ); +# endif + return x; +# else + __asm { mov eax, FS:[0x2C] +# ifdef MZ_USE_WIN_TLS_VIA_DLL + add eax, scheme_tls_index +# endif + mov eax, [eax] + add eax, scheme_tls_delta } + /* result is in eax */ +# endif +} +static __inline Thread_Local_Variables *scheme_get_thread_local_variables(void) { + return *scheme_get_thread_local_variables_ptr(); +} +# else +/* Outside the Racket DLL, slower thread-local is ok: */ +static __inline Thread_Local_Variables *scheme_get_thread_local_variables(void) { + return scheme_external_get_thread_local_variables(); +} +# endif +# ifdef MZ_XFORM +END_XFORM_SKIP; +XFORM_GC_VARIABLE_STACK_THROUGH_FUNCTION; +# endif +#else +/* Using `THREAD_LOCAL' variable: */ +# if defined(IMPLEMENT_THREAD_LOCAL_EXTERNALLY_VIA_PROC) && !defined(__mzscheme_private__) +# ifdef MZ_XFORM +START_XFORM_SKIP; +# endif +MZ_EXTERN Thread_Local_Variables *scheme_external_get_thread_local_variables(void); +static __inline Thread_Local_Variables *scheme_get_thread_local_variables(void) { + return scheme_external_get_thread_local_variables(); +} +# ifdef MZ_XFORM +END_XFORM_SKIP; +XFORM_GC_VARIABLE_STACK_THROUGH_FUNCTION; +# endif +# elif defined (IMPLEMENT_THREAD_LOCAL_VIA_OFFSET) +MZ_THREAD_EXTERN THREAD_LOCAL Thread_Local_Variables scheme_thread_locals_space; +extern int scheme_tls_delta; +# define scheme_get_thread_local_variables() ((Thread_Local_Variables *)((char *)&scheme_thread_locals_space + scheme_tls_delta)) +# ifdef MZ_XFORM +XFORM_GC_VARIABLE_STACK_THROUGH_DELTA; +# endif +# else +MZ_THREAD_EXTERN THREAD_LOCAL Thread_Local_Variables scheme_thread_locals; +# define scheme_get_thread_local_variables() (&scheme_thread_locals) +# ifdef MZ_XFORM +XFORM_GC_VARIABLE_STACK_THROUGH_THREAD_LOCAL; +# endif +# endif +#endif + +/* **************************************** */ + +#ifdef MZ_XFORM +# define XOA XFORM_OK_ASSIGN +#else +# define XOA /* empty */ +#endif + +#define scheme_current_place_id XOA (scheme_get_thread_local_variables()->scheme_current_place_id_) +#define GC_objhead_template XOA (scheme_get_thread_local_variables()->GC_objhead_template_) +#define GC_instance XOA (scheme_get_thread_local_variables()->GC_instance_) +#define GC_gen0_alloc_page_ptr XOA (scheme_get_thread_local_variables()->GC_gen0_alloc_page_ptr_) +#define GC_gen0_alloc_page_end XOA (scheme_get_thread_local_variables()->GC_gen0_alloc_page_end_) +#define GC_gen0_alloc_only XOA (scheme_get_thread_local_variables()->GC_gen0_alloc_only_) +#define GC_variable_stack XOA (scheme_get_thread_local_variables()->GC_variable_stack_) +#define force_gc_for_place_accounting XOA (scheme_get_thread_local_variables()->force_gc_for_place_accounting_) +#define scheme_os_thread_id XOA (scheme_get_thread_local_variables()->scheme_os_thread_id_) +#define scheme_starting_up XOA (scheme_get_thread_local_variables()->scheme_starting_up_) +#define scheme_rktio XOA (scheme_get_thread_local_variables()->scheme_rktio_) +#define bignum_cache XOA (scheme_get_thread_local_variables()->bignum_cache_) +#define cache_count XOA (scheme_get_thread_local_variables()->cache_count_) +#define toplevels_ht XOA (scheme_get_thread_local_variables()->toplevels_ht_) +#define locals_ht XOA (scheme_get_thread_local_variables()->locals_ht_) +#define scheme_fuel_counter XOA (scheme_get_thread_local_variables()->scheme_fuel_counter_) +#define scheme_stack_boundary XOA (scheme_get_thread_local_variables()->scheme_stack_boundary_) +#define scheme_jit_stack_boundary XOA (scheme_get_thread_local_variables()->scheme_jit_stack_boundary_) +#define scheme_future_need_gc_pause XOA (scheme_get_thread_local_variables()->scheme_future_need_gc_pause_) +#define scheme_use_rtcall XOA (scheme_get_thread_local_variables()->scheme_use_rtcall_) +#define in_jit_critical_section XOA (scheme_get_thread_local_variables()->in_jit_critical_section_) +#define jit_buffer_cache XOA (scheme_get_thread_local_variables()->jit_buffer_cache_) +#define jit_buffer_cache_size XOA (scheme_get_thread_local_variables()->jit_buffer_cache_size_) +#define jit_buffer_cache_registered XOA (scheme_get_thread_local_variables()->jit_buffer_cache_registered_) +#define scheme_continuation_application_count XOA (scheme_get_thread_local_variables()->scheme_continuation_application_count_) +#define scheme_cont_capture_count XOA (scheme_get_thread_local_variables()->scheme_cont_capture_count_) +#define scheme_prompt_capture_count XOA (scheme_get_thread_local_variables()->scheme_prompt_capture_count_) +#define available_prompt XOA (scheme_get_thread_local_variables()->available_prompt_) +#define available_cws_prompt XOA (scheme_get_thread_local_variables()->available_cws_prompt_) +#define available_regular_prompt XOA (scheme_get_thread_local_variables()->available_regular_prompt_) +#define available_prompt_dw XOA (scheme_get_thread_local_variables()->available_prompt_dw_) +#define available_prompt_mc XOA (scheme_get_thread_local_variables()->available_prompt_mc_) +#define offstack_cont XOA (scheme_get_thread_local_variables()->offstack_cont_) +#define offstack_overflow XOA (scheme_get_thread_local_variables()->offstack_overflow_) +#define scheme_overflow_jmp XOA (scheme_get_thread_local_variables()->scheme_overflow_jmp_) +#define scheme_overflow_stack_start XOA (scheme_get_thread_local_variables()->scheme_overflow_stack_start_) +#define codetab_tree XOA (scheme_get_thread_local_variables()->codetab_tree_) +#define during_set XOA (scheme_get_thread_local_variables()->during_set_) +#define thread_local_pointers XOA (scheme_get_thread_local_variables()->thread_local_pointers_) +#define stack_cache_stack XOA (scheme_get_thread_local_variables()->stack_cache_stack_) +#define stack_cache_stack_pos XOA (scheme_get_thread_local_variables()->stack_cache_stack_pos_) +#define fixup_runstack_base XOA (scheme_get_thread_local_variables()->fixup_runstack_base_) +#define fixup_already_in_place XOA (scheme_get_thread_local_variables()->fixup_already_in_place_) +#define retry_alloc_r1 XOA (scheme_get_thread_local_variables()->retry_alloc_r1_) +#define scheme_jit_save_fp XOA (scheme_get_thread_local_variables()->scheme_jit_save_fp_) +#define scheme_jit_save_fp2 XOA (scheme_get_thread_local_variables()->scheme_jit_save_fp2_) +#ifdef MZ_LONG_DOUBLE +#define scheme_jit_save_extfp XOA (scheme_get_thread_local_variables()->scheme_jit_save_extfp_) +#define scheme_jit_save_extfp2 XOA (scheme_get_thread_local_variables()->scheme_jit_save_extfp2_) +#endif +#define starts_table XOA (scheme_get_thread_local_variables()->starts_table_) +#define proc_thread_self XOA (scheme_get_thread_local_variables()->proc_thread_self_) +#define scheme_orig_stdout_port XOA (scheme_get_thread_local_variables()->scheme_orig_stdout_port_) +#define scheme_orig_stderr_port XOA (scheme_get_thread_local_variables()->scheme_orig_stderr_port_) +#define scheme_orig_stdin_port XOA (scheme_get_thread_local_variables()->scheme_orig_stdin_port_) +#define scheme_semaphore_fd_set XOA (scheme_get_thread_local_variables()->scheme_semaphore_fd_set_) +#define fs_change_props XOA (scheme_get_thread_local_variables()->fs_change_props_) +#define new_port_cust XOA (scheme_get_thread_local_variables()->new_port_cust_) +#define read_string_byte_buffer XOA (scheme_get_thread_local_variables()->read_string_byte_buffer_) +#define itimerdata XOA (scheme_get_thread_local_variables()->itimerdata_) +#define quick_buffer XOA (scheme_get_thread_local_variables()->quick_buffer_) +#define quick_encode_buffer XOA (scheme_get_thread_local_variables()->quick_encode_buffer_) +#define quick_print_buffer XOA (scheme_get_thread_local_variables()->quick_print_buffer_) +#define cache_ht XOA (scheme_get_thread_local_variables()->cache_ht_) +#define regstr XOA (scheme_get_thread_local_variables()->regstr_) +#define regparsestr XOA (scheme_get_thread_local_variables()->regparsestr_) +#define regmatchmin XOA (scheme_get_thread_local_variables()->regmatchmin_) +#define regmatchmax XOA (scheme_get_thread_local_variables()->regmatchmax_) +#define regmaxbackposn XOA (scheme_get_thread_local_variables()->regmaxbackposn_) +#define regsavepos XOA (scheme_get_thread_local_variables()->regsavepos_) +#define regbackknown XOA (scheme_get_thread_local_variables()->regbackknown_) +#define regbackdepends XOA (scheme_get_thread_local_variables()->regbackdepends_) +#define regparse XOA (scheme_get_thread_local_variables()->regparse_) +#define regparse_end XOA (scheme_get_thread_local_variables()->regparse_end_) +#define regnpar XOA (scheme_get_thread_local_variables()->regnpar_) +#define regncounter XOA (scheme_get_thread_local_variables()->regncounter_) +#define regcode XOA (scheme_get_thread_local_variables()->regcode_) +#define regcodesize XOA (scheme_get_thread_local_variables()->regcodesize_) +#define regcodemax XOA (scheme_get_thread_local_variables()->regcodemax_) +#define regmaxlookback XOA (scheme_get_thread_local_variables()->regmaxlookback_) +#define regerrorwho XOA (scheme_get_thread_local_variables()->regerrorwho_) +#define regerrorproc XOA (scheme_get_thread_local_variables()->regerrorproc_) +#define regerrorval XOA (scheme_get_thread_local_variables()->regerrorval_) +#define rx_buffer_size XOA (scheme_get_thread_local_variables()->rx_buffer_size_) +#define startp_buffer_cache XOA (scheme_get_thread_local_variables()->startp_buffer_cache_) +#define endp_buffer_cache XOA (scheme_get_thread_local_variables()->endp_buffer_cache_) +#define maybep_buffer_cache XOA (scheme_get_thread_local_variables()->maybep_buffer_cache_) +#define match_stack_buffer_cache XOA (scheme_get_thread_local_variables()->match_stack_buffer_cache_) +#define scheme_os_thread_stack_base XOA (scheme_get_thread_local_variables()->scheme_os_thread_stack_base_) +#define scheme_system_idle_channel XOA (scheme_get_thread_local_variables()->scheme_system_idle_channel_) +#define system_idle_put_evt XOA (scheme_get_thread_local_variables()->system_idle_put_evt_) +#define stack_copy_cache XOA (scheme_get_thread_local_variables()->stack_copy_cache_) +#define stack_copy_size_cache XOA (scheme_get_thread_local_variables()->stack_copy_size_cache_) +#define scc_pos XOA (scheme_get_thread_local_variables()->scc_pos_) +#define scheme_startup_instance XOA (scheme_get_thread_local_variables()->scheme_startup_instance_) +#define c_startup_instance_top XOA (scheme_get_thread_local_variables()->c_startup_instance_top_) +#define scheme_current_thread XOA (scheme_get_thread_local_variables()->scheme_current_thread_) +#define scheme_main_thread XOA (scheme_get_thread_local_variables()->scheme_main_thread_) +#define scheme_first_thread XOA (scheme_get_thread_local_variables()->scheme_first_thread_) +#define gc_prep_thread_chain XOA (scheme_get_thread_local_variables()->gc_prep_thread_chain_) +#define scheme_thread_set_top XOA (scheme_get_thread_local_variables()->scheme_thread_set_top_) +#define scheme_current_lwc XOA (scheme_get_thread_local_variables()->scheme_current_lwc_) +#define num_running_threads XOA (scheme_get_thread_local_variables()->num_running_threads_) +#define swap_no_setjmp XOA (scheme_get_thread_local_variables()->swap_no_setjmp_) +#define thread_swap_count XOA (scheme_get_thread_local_variables()->thread_swap_count_) +#define process_time_at_swap XOA (scheme_get_thread_local_variables()->process_time_at_swap_) +#define process_time_skips XOA (scheme_get_thread_local_variables()->process_time_skips_) +#define scheme_did_gc_count XOA (scheme_get_thread_local_variables()->scheme_did_gc_count_) +#define scheme_future_state XOA (scheme_get_thread_local_variables()->scheme_future_state_) +#define scheme_future_thread_state XOA (scheme_get_thread_local_variables()->scheme_future_thread_state_) +#define jit_future_storage XOA (scheme_get_thread_local_variables()->jit_future_storage_) +#define scheme_current_runstack_start XOA (scheme_get_thread_local_variables()->scheme_current_runstack_start_) +#define scheme_current_runstack XOA (scheme_get_thread_local_variables()->scheme_current_runstack_) +#define scheme_current_cont_mark_stack XOA (scheme_get_thread_local_variables()->scheme_current_cont_mark_stack_) +#define scheme_current_cont_mark_pos XOA (scheme_get_thread_local_variables()->scheme_current_cont_mark_pos_) +#define main_custodian XOA (scheme_get_thread_local_variables()->main_custodian_) +#define last_custodian XOA (scheme_get_thread_local_variables()->last_custodian_) +#define limited_custodians XOA (scheme_get_thread_local_variables()->limited_custodians_) +#define initial_plumber XOA (scheme_get_thread_local_variables()->initial_plumber_) +#define initial_config XOA (scheme_get_thread_local_variables()->initial_config_) +#define swap_target XOA (scheme_get_thread_local_variables()->swap_target_) +#define scheduled_kills XOA (scheme_get_thread_local_variables()->scheduled_kills_) +#define late_will_executors_with_pending XOA (scheme_get_thread_local_variables()->late_will_executors_with_pending_) +#define do_atomic XOA (scheme_get_thread_local_variables()->do_atomic_) +#define missed_context_switch XOA (scheme_get_thread_local_variables()->missed_context_switch_) +#define all_breaks_disabled XOA (scheme_get_thread_local_variables()->all_breaks_disabled_) +#define have_activity XOA (scheme_get_thread_local_variables()->have_activity_) +#define scheme_active_but_sleeping XOA (scheme_get_thread_local_variables()->scheme_active_but_sleeping_) +#define thread_ended_with_activity XOA (scheme_get_thread_local_variables()->thread_ended_with_activity_) +#define scheme_no_stack_overflow XOA (scheme_get_thread_local_variables()->scheme_no_stack_overflow_) +#define needs_sleep_cancelled XOA (scheme_get_thread_local_variables()->needs_sleep_cancelled_) +#define needs_sleep_time_end XOA (scheme_get_thread_local_variables()->needs_sleep_time_end_) +#define tls_pos XOA (scheme_get_thread_local_variables()->tls_pos_) +#define the_nested_exn_handler XOA (scheme_get_thread_local_variables()->the_nested_exn_handler_) +#define cust_closers XOA (scheme_get_thread_local_variables()->cust_closers_) +#define thread_swap_callbacks XOA (scheme_get_thread_local_variables()->thread_swap_callbacks_) +#define thread_swap_out_callbacks XOA (scheme_get_thread_local_variables()->thread_swap_out_callbacks_) +#define recycle_cell XOA (scheme_get_thread_local_variables()->recycle_cell_) +#define maybe_recycle_cell XOA (scheme_get_thread_local_variables()->maybe_recycle_cell_) +#define recycle_cc_count XOA (scheme_get_thread_local_variables()->recycle_cc_count_) +#define gmp_mem_pool XOA (scheme_get_thread_local_variables()->gmp_mem_pool_) +#define max_total_allocation XOA (scheme_get_thread_local_variables()->max_total_allocation_) +#define current_total_allocation XOA (scheme_get_thread_local_variables()->current_total_allocation_) +#define gmp_tmp_xxx XOA (scheme_get_thread_local_variables()->gmp_tmp_xxx_) +#define gmp_tmp_current XOA (scheme_get_thread_local_variables()->gmp_tmp_current_) +#define scheme_main_logger XOA (scheme_get_thread_local_variables()->scheme_main_logger_) +#define scheme_gc_logger XOA (scheme_get_thread_local_variables()->scheme_gc_logger_) +#define scheme_future_logger XOA (scheme_get_thread_local_variables()->scheme_future_logger_) +#define scheme_place_logger XOA (scheme_get_thread_local_variables()->scheme_place_logger_) +#define scheme_overflow_count XOA (scheme_get_thread_local_variables()->scheme_overflow_count_) +#define original_pwd XOA (scheme_get_thread_local_variables()->original_pwd_) +#define file_path_wc_buffer XOA (scheme_get_thread_local_variables()->file_path_wc_buffer_) +#define scheme_hash_request_count XOA (scheme_get_thread_local_variables()->scheme_hash_request_count_) +#define scheme_hash_iteration_count XOA (scheme_get_thread_local_variables()->scheme_hash_iteration_count_) +#define scheme_namespace_to_env XOA (scheme_get_thread_local_variables()->scheme_namespace_to_env_) +#define special_is_ok XOA (scheme_get_thread_local_variables()->special_is_ok_) +#define scheme_force_port_closed XOA (scheme_get_thread_local_variables()->scheme_force_port_closed_) +#define fd_reserved XOA (scheme_get_thread_local_variables()->fd_reserved_) +#define the_fd XOA (scheme_get_thread_local_variables()->the_fd_) +#define scheme_num_read_syntax_objects XOA (scheme_get_thread_local_variables()->scheme_num_read_syntax_objects_) +#define clear_bytes_chain XOA (scheme_get_thread_local_variables()->clear_bytes_chain_) +#define failure_msg_for_read XOA (scheme_get_thread_local_variables()->failure_msg_for_read_) +#define dgc_array XOA (scheme_get_thread_local_variables()->dgc_array_) +#define dgc_count XOA (scheme_get_thread_local_variables()->dgc_count_) +#define dgc_size XOA (scheme_get_thread_local_variables()->dgc_size_) +#define save_oom XOA (scheme_get_thread_local_variables()->save_oom_) +#define current_lifetime XOA (scheme_get_thread_local_variables()->current_lifetime_) +#define scheme_main_was_once_suspended XOA (scheme_get_thread_local_variables()->scheme_main_was_once_suspended_) +#define buffer_init_size XOA (scheme_get_thread_local_variables()->buffer_init_size_) +#define scheme_total_gc_time XOA (scheme_get_thread_local_variables()->scheme_total_gc_time_) +#define start_this_gc_time XOA (scheme_get_thread_local_variables()->start_this_gc_time_) +#define end_this_gc_time XOA (scheme_get_thread_local_variables()->end_this_gc_time_) +#define start_this_gc_real_time XOA (scheme_get_thread_local_variables()->start_this_gc_real_time_) +#define end_this_gc_real_time XOA (scheme_get_thread_local_variables()->end_this_gc_real_time_) +#define gc_info_prefab XOA (scheme_get_thread_local_variables()->gc_info_prefab_) +#define place_event_prefab XOA (scheme_get_thread_local_variables()->place_event_prefab_) +#define delayed_break_ready XOA (scheme_get_thread_local_variables()->delayed_break_ready_) +#define main_break_target_thread XOA (scheme_get_thread_local_variables()->main_break_target_thread_) +#define scheme_code_page_total XOA (scheme_get_thread_local_variables()->scheme_code_page_total_) +#define scheme_code_total XOA (scheme_get_thread_local_variables()->scheme_code_total_) +#define scheme_code_count XOA (scheme_get_thread_local_variables()->scheme_code_count_) +#define max_gc_pre_used_bytes XOA (scheme_get_thread_local_variables()->max_gc_pre_used_bytes_) +#define max_code_page_total XOA (scheme_get_thread_local_variables()->max_code_page_total_) +#define num_major_garbage_collections XOA (scheme_get_thread_local_variables()->num_major_garbage_collections_) +#define num_minor_garbage_collections XOA (scheme_get_thread_local_variables()->num_minor_garbage_collections_) +#define locale_on XOA (scheme_get_thread_local_variables()->locale_on_) +#define current_locale_name_ptr XOA (scheme_get_thread_local_variables()->current_locale_name_ptr_) +#define cached_locale_encoding_name XOA (scheme_get_thread_local_variables()->cached_locale_encoding_name_) +#define cached_locale_to_converter XOA (scheme_get_thread_local_variables()->cached_locale_to_converter_) +#define cached_locale_from_converter XOA (scheme_get_thread_local_variables()->cached_locale_from_converter_) +#define gensym_counter XOA (scheme_get_thread_local_variables()->gensym_counter_) +#define dummy_input_port XOA (scheme_get_thread_local_variables()->dummy_input_port_) +#define dummy_output_port XOA (scheme_get_thread_local_variables()->dummy_output_port_) +#define opened_libs XOA (scheme_get_thread_local_variables()->opened_libs_) +#define jit_lock XOA (scheme_get_thread_local_variables()->jit_lock_) +#define free_list XOA (scheme_get_thread_local_variables()->free_list_) +#define free_list_bucket_count XOA (scheme_get_thread_local_variables()->free_list_bucket_count_) +#define code_allocation_page_list XOA (scheme_get_thread_local_variables()->code_allocation_page_list_) +#define prefab_table XOA (scheme_get_thread_local_variables()->prefab_table_) +#define place_local_symbol_table XOA (scheme_get_thread_local_variables()->place_local_symbol_table_) +#define place_local_keyword_table XOA (scheme_get_thread_local_variables()->place_local_keyword_table_) +#define place_local_parallel_symbol_table XOA (scheme_get_thread_local_variables()->place_local_parallel_symbol_table_) +#define literal_string_table XOA (scheme_get_thread_local_variables()->literal_string_table_) +#define literal_number_table XOA (scheme_get_thread_local_variables()->literal_number_table_) +#define ffi_sync_queue XOA (scheme_get_thread_local_variables()->ffi_sync_queue_) +#define gc_prepost_callback_descs XOA (scheme_get_thread_local_variables()->gc_prepost_callback_descs_) +#define place_local_misc_table XOA (scheme_get_thread_local_variables()->place_local_misc_table_) +#define place_evts_array_size XOA (scheme_get_thread_local_variables()->place_evts_array_size_) +#define place_evts XOA (scheme_get_thread_local_variables()->place_evts_) +#define place_object XOA (scheme_get_thread_local_variables()->place_object_) +#define all_child_places XOA (scheme_get_thread_local_variables()->all_child_places_) +#define place_channel_links XOA (scheme_get_thread_local_variables()->place_channel_links_) +#define reusable_ifs_stack XOA (scheme_get_thread_local_variables()->reusable_ifs_stack_) +#define group_member_cache XOA (scheme_get_thread_local_variables()->group_member_cache_) +#define scheme_prefix_finalize XOA (scheme_get_thread_local_variables()->scheme_prefix_finalize_) +#define scheme_inc_prefix_finalize XOA (scheme_get_thread_local_variables()->scheme_inc_prefix_finalize_) +#define loaded_extensions XOA (scheme_get_thread_local_variables()->loaded_extensions_) +#define fullpath_loaded_extensions XOA (scheme_get_thread_local_variables()->fullpath_loaded_extensions_) +#define scheme_place_sleep XOA (scheme_get_thread_local_variables()->scheme_place_sleep_) +#define thread_sleep_callback XOA (scheme_get_thread_local_variables()->thread_sleep_callback_) +#define thread_sleep_callback_fd XOA (scheme_get_thread_local_variables()->thread_sleep_callback_fd_) +#define ghbn_thread_data XOA (scheme_get_thread_local_variables()->ghbn_thread_data_) +#define on_atomic_timeout XOA (scheme_get_thread_local_variables()->on_atomic_timeout_) +#define on_atomic_timeout_data XOA (scheme_get_thread_local_variables()->on_atomic_timeout_data_) +#define atomic_timeout_auto_suspend XOA (scheme_get_thread_local_variables()->atomic_timeout_auto_suspend_) +#define atomic_timeout_atomic_level XOA (scheme_get_thread_local_variables()->atomic_timeout_atomic_level_) +#define configuration_callback_cache XOA (scheme_get_thread_local_variables()->configuration_callback_cache_) +#define cached_orig_place_todo XOA (scheme_get_thread_local_variables()->cached_orig_place_todo_) +#define ffi_lock_ht XOA (scheme_get_thread_local_variables()->ffi_lock_ht_) +#define is_syntax_proc XOA (scheme_get_thread_local_variables()->is_syntax_proc_) +#define expander_syntax_to_datum_proc XOA (scheme_get_thread_local_variables()->expander_syntax_to_datum_proc_) +#define local_primitive_tables XOA (scheme_get_thread_local_variables()->local_primitive_tables_) +#define current_linklet_native_lambdas XOA (scheme_get_thread_local_variables()->current_linklet_native_lambdas_) + +/* **************************************** */ + +# define THREAD_LOCAL_DECL(x) /* empty */ + +#endif + +/* **************************************** */ + +# ifdef __cplusplus +} +# endif + +#endif diff --git a/racket/src/include/schvers.h b/racket/src/include/schvers.h new file mode 100644 index 0000000000..e4e5378d62 --- /dev/null +++ b/racket/src/include/schvers.h @@ -0,0 +1,36 @@ + +/* The version string has one of the forms: + X.Y + X.Y.Z Z != 0 + X.Y.Z.W W != 0 + where each X, Y, Z, W is a non-negative exact integer, Y must not + exceed 99, and Z or W must not exceed 999. Y>=90 means that this is + working towards {X+1}.0, and X.Y (Z=0, W=0) is an alpha version for + {X+1}.0; Z>=900 means working towards X.{Y+1}, and X.Y.Z as an + alpha release. + + Note that the version number in the "base" package's "info.rkt" + needs to be updated separately. +*/ + +#define MZSCHEME_VERSION_X 7 +#define MZSCHEME_VERSION_Y 8 +#define MZSCHEME_VERSION_Z 0 +#define MZSCHEME_VERSION_W 6 + +/* A level of indirection makes `#` work as needed: */ +#define AS_a_STR_HELPER(x) #x +#define AS_a_STR(x) AS_a_STR_HELPER(x) + +#if MZSCHEME_VERSION_W != 0 +# define MZSCHEME_VERSION AS_a_STR(MZSCHEME_VERSION_X) "." AS_a_STR(MZSCHEME_VERSION_Y) "." AS_a_STR(MZSCHEME_VERSION_Z) "." AS_a_STR(MZSCHEME_VERSION_W) +#elif MZSCHEME_VERSION_Z != 0 +# define MZSCHEME_VERSION AS_a_STR(MZSCHEME_VERSION_X) "." AS_a_STR(MZSCHEME_VERSION_Y) "." AS_a_STR(MZSCHEME_VERSION_Z) +#else +# define MZSCHEME_VERSION AS_a_STR(MZSCHEME_VERSION_X) "." AS_a_STR(MZSCHEME_VERSION_Y) +#endif + +#define MZSCHEME_VERSION_MAJOR ((MZSCHEME_VERSION_X * 100) + MZSCHEME_VERSION_Y) +#define MZSCHEME_VERSION_MINOR ((MZSCHEME_VERSION_Z * 1000) + MZSCHEME_VERSION_W) + +#define MZSCHEME_VM "racket" diff --git a/racket/src/include/sconfig.h b/racket/src/include/sconfig.h new file mode 100644 index 0000000000..e8936e9d79 --- /dev/null +++ b/racket/src/include/sconfig.h @@ -0,0 +1,1163 @@ +/* + Configuration for compiling Racket + + If you want to set all the flags externally (on the command line + with -D or some other compiler-dependent way), then define + FLAGS_ALREADY_SET, and this file will be ignored. + + The best flag settings are already provided for some auto-detected + architecture/system/compilers. Otherwise, the default settings + are generic Unix. Send other architecture/system/compiler-specific + info to "racket@racket-lang.org". +*/ + +#ifndef FLAGS_ALREADY_SET + +/******** (BEGIN KNOWN ARCHITECTURE/SYSTEM CONFIGURATIONS) ********/ + +/* First, use configure-generated information */ +/* (on Windows, this is done by a manual file which is in src/worksp) */ +#include "mzconfig.h" + + /************** SunOS/Solaris with gcc ****************/ + +#if defined(sun) + +# include "uconfig.h" + +# define USE_EXPLICT_FP_FORM_CHECK + +# include +# ifdef ECHRNG +/* Solaris */ +# if defined(__i386__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "i386-solaris" +# elif defined(__x86_64) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "x86_64-solaris" +# else +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "sparc-solaris" +# endif +# else +/* SunOS4 */ +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "sparc-sunos4" +# define NO_STRERROR_AVAILABLE +# define USE_ON_EXIT_FOR_ATEXIT +# endif + +# define PREFER_MMAP_LARGE_BLOCKS + +# define FMOD_CAN_RETURN_POS_ZERO + +# ifdef __i386__ +# define MZ_USE_JIT_I386 +# define MZ_JIT_USE_MPROTECT +# elif defined(__x86_64) +# define MZ_USE_JIT_X86_64 +# define MZ_JIT_USE_MPROTECT +# else +# define FLUSH_SPARC_REGISTER_WINDOWS +# endif + +# define FLAGS_ALREADY_SET + +#endif + + /************** RS6000/AIX with gcc or xlc ****************/ + +# if defined(_IBMR2) + +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "rs6k-aix" + +# include "uconfig.h" + +# define UNIX_LIMIT_STACK 33554944 + +# define FLAGS_ALREADY_SET + +#endif + + /************** Linux with gcc ****************/ + +#if defined(__linux__) + +# ifdef __ANDROID__ +# define SPLS_LINUX "android" +# else +# define SPLS_LINUX "linux" +# endif + +# if defined(__i386__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "i386-" SPLS_LINUX +# define REGISTER_POOR_MACHINE +# define MZ_TRY_EXTFLONUMS +# define ASM_DBLPREC_CONTROL_87 +# endif +# if defined(__powerpc__) && !defined(__powerpc64__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "ppc-" SPLS_LINUX +# endif +# if defined(__powerpc64__) +# if defined(__LITTLE_ENDIAN__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "ppc64le-" SPLS_LINUX +# else +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "ppc64-" SPLS_LINUX +# endif +# endif +# if defined(__mc68000__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "m68k-" SPLS_LINUX +# endif +# if defined(mips) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "mips-" SPLS_LINUX +# endif +# if defined(__alpha__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "alpha-" SPLS_LINUX +# endif +# if defined(__hppa__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "hppa-" SPLS_LINUX +# endif +# if defined(__sparc__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "sparc-" SPLS_LINUX +# define FLUSH_SPARC_REGISTER_WINDOWS +# endif +# if defined(__arm__) || defined(__thumb__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "arm-" SPLS_LINUX +# define FFI_CALLBACK_NEED_INT_CLEAR +# endif +# if defined(__aarch64__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "aarch64-" SPLS_LINUX +# endif +# if defined(__x86_64__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "x86_64-" SPLS_LINUX +# define REGISTER_POOR_MACHINE +# define ASM_DBLPREC_CONTROL_87 +# define MZ_TRY_EXTFLONUMS +# endif +# ifndef SCHEME_PLATFORM_LIBRARY_SUBPATH +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "unknown-" SPLS_LINUX +# endif + +# include "uconfig.h" +# ifndef __ELF__ +# undef UNIX_DYNAMIC_LOAD +# endif + +# define USE_IEEE_FP_PREDS +# define USE_EXPLICT_FP_FORM_CHECK + +# define LINUX_FIND_STACK_BASE + +# define FLAGS_ALREADY_SET + +#if defined(__i386__) +# define MZ_USE_JIT_I386 +# define MZ_JIT_USE_MPROTECT +# ifndef MZ_NO_UNWIND_SUPPORT +# define MZ_USE_DWARF_LIBUNWIND +# endif +#endif +#if defined(__x86_64__) +# define MZ_USE_JIT_X86_64 +# define MZ_JIT_USE_MPROTECT +# ifndef MZ_NO_UNWIND_SUPPORT +# define MZ_USE_DWARF_LIBUNWIND +# endif +#endif +#if defined(__powerpc__) && !defined(__powerpc64__) +# define MZ_USE_JIT_PPC +#endif +# if defined(__arm__) +# define MZ_USE_JIT_ARM +#endif + +#endif + + /********************* NetBSD ***********************/ + +#if defined(__NetBSD__) + +#if defined(__i386__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "i386-netbsd" +#elif defined(__powerpc__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "ppc-netbsd" +#elif defined(__x86_64__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "x86_64-netbsd" +#else +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "netbsd" +#endif + +# include "uconfig.h" + +#ifndef __ELF__ +# define UNDERSCORE_DYNLOAD_SYMBOL_PREFIX +#endif + +# define USE_IEEE_FP_PREDS + +#if defined(__alpha__) +# define USE_DIVIDE_MAKE_INFINITY +#endif + +#if defined(__i386__) +# define MZ_USE_JIT_I386 +# define MZ_JIT_USE_MPROTECT +#endif +#if defined(__powerpc__) +# define MZ_USE_JIT_PPC +#endif +#if defined(__x86_64__) +# define MZ_USE_JIT_X86_64 +# define MZ_JIT_USE_MPROTECT +#endif + +# define FLAGS_ALREADY_SET + +#endif + + /************** OpenBSD with gcc ****************/ + /* Thanks to Bengt Kleberg */ + +#if defined(__OpenBSD__) && !defined(__Bitrig__) + +# if defined(__x86_64__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "x86_64-openbsd" +# define IMPLEMENT_WRITE_XOR_EXECUTE_BY_SIGNAL_HANDLER +# elif defined(__i386__) || defined(i386) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "i386-openbsd" +# elif defined(__mips64__) +# if defined(__MIPSEL__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "mips64el-openbsd" +# else +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "mips64-openbsd" +# endif +# elif defined(__powerpc__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "ppc-openbsd" +# elif defined(__sparc64__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "sparc64-openbsd" +# elif defined(__arm__) || defined(__thumb__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "arm-openbsd" +# elif defined(__aarch64__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "aarch64-openbsd" +# elif defined(__hppa__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "hppa-openbsd" +# else +# error Unported platform. +# endif + +# include "uconfig.h" +# undef UNIX_FIND_STACK_BOUNDS +# define PTHREAD_STACKSEG_FIND_STACK_BOUNDS + +/* Default UNIX_STACK_MAXIMUM is too big for a non-root user. */ +# undef UNIX_STACK_MAXIMUM +# define UNIX_STACK_MAXIMUM 4194304 + +# define UNDERSCORE_DYNLOAD_SYMBOL_PREFIX + +# define USE_DLOPEN_GLOBAL_BY_DEFAULT + +# define USE_IEEE_FP_PREDS + +# define USE_MAP_ANON + +# if defined(__x86_64__) +# define MZ_USE_JIT_X86_64 +# define MZ_JIT_USE_MPROTECT +# define MZ_TRY_EXTFLONUMS +# elif defined(__i386__) +# define MZ_USE_JIT_I386 +# define MZ_JIT_USE_MPROTECT +# define MZ_TRY_EXTFLONUMS +# define REGISTER_POOR_MACHINE +# elif defined(__powerpc__) +# define MZ_USE_JIT_PPC +# elif defined(__sparc64__) +# define FLUSH_SPARC_REGISTER_WINDOWS +# define FMOD_CAN_RETURN_POS_ZERO +# elif defined(__arm__) +# define MZ_USE_JIT_ARM +# define FFI_CALLBACK_NEED_INT_CLEAR +# endif + +# define FLAGS_ALREADY_SET + +#endif + + /************** Bitrig with clang ****************/ +/* + Bitrig and OpenBSD are pretty similar in some aspects. If you are modifying + any of the next values, please test also the same changes on OpenBSD. +*/ + +#if defined(__Bitrig__) + +# if defined(__x86_64__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "x86_64-bitrig" +# elif defined(__arm__) || defined(__thumb__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "arm-bitrig" +# else +# error Unported platform. +# endif + +# include "uconfig.h" +# undef UNIX_FIND_STACK_BOUNDS +# define PTHREAD_STACKSEG_FIND_STACK_BOUNDS + +/* Default UNIX_STACK_MAXIMUM is too big for a non-root user. */ +# undef UNIX_STACK_MAXIMUM +# define UNIX_STACK_MAXIMUM 4194304 + +# define UNDERSCORE_DYNLOAD_SYMBOL_PREFIX + +# define USE_DLOPEN_GLOBAL_BY_DEFAULT + +# define USE_IEEE_FP_PREDS + +# define USE_MAP_ANON + +# if defined(__x86_64__) +# define MZ_USE_JIT_X86_64 +# define MZ_JIT_USE_MPROTECT +# define MZ_TRY_EXTFLONUMS +# elif defined(__arm__) +# define MZ_USE_JIT_ARM +# define FFI_CALLBACK_NEED_INT_CLEAR +# endif + +# define FLAGS_ALREADY_SET + +#endif + + /************** FreeBSD with clang/gcc ****************/ + +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + +# if defined(__i386__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "i386-freebsd" +# define REGISTER_POOR_MACHINE +# define MZ_USE_JIT_I386 +# define MZ_TRY_EXTFLONUMS +# if defined(__FreeBSD_kernel__) +# define ASM_DBLPREC_CONTROL_87 +# else +# define FREEBSD_CONTROL_387 +# endif +# elif defined(__amd64__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "amd64-freebsd" +# define REGISTER_POOR_MACHINE +# define MZ_USE_JIT_X86_64 +# define MZ_TRY_EXTFLONUMS +# if defined(__FreeBSD_kernel__) +# define ASM_DBLPREC_CONTROL_87 +# endif +# elif defined(__sparc64__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "sparc64-freebsd" +# define FLUSH_SPARC_REGISTER_WINDOWS +# elif defined(__arm__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "arm-freebsd" +# elif defined(__aarch64__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "aarch64-freebsd" +# elif defined(__powerpc__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "ppc-freebsd" +# define MZ_USE_JIT_PPC +# else +# error Unported platform. +# endif + +/* pthreads always enabled via `configure', and + initial pthread's stack size doesn't use rlimit: */ +# define ASSUME_FIXED_STACK_SIZE +# define FIXED_STACK_SIZE 1048576 + +# include "uconfig.h" + +# ifdef FREEBSD_VERSION_2x +# define UNDERSCORE_DYNLOAD_SYMBOL_PREFIX +# endif + +# define USE_UNDERSCORE_SETJMP + +# define USE_IEEE_FP_PREDS + +# define MZ_JIT_USE_MPROTECT + +# define FLAGS_ALREADY_SET + +#endif + + /************** SGI/IRIX with SGI cc ****************/ + +#if (defined(mips) || defined(__mips)) \ + && !(defined(ultrix) || defined(__ultrix) || defined(__linux__) || defined(__OpenBSD__)) + +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "mips-irix" + +# include "uconfig.h" + +# define BSTRING_INCLUDE + +# define DEFEAT_FP_COMP_OPTIMIZATION +# define FMOD_CAN_RETURN_NEG_ZERO + +# define FLAGS_ALREADY_SET + +#endif + + /************** Ultrix with gcc ****************/ + +#if defined(ultrix) || defined(__ultrix) + +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "mips-ultrix" + +# include "uconfig.h" +# undef UNIX_DYNAMIC_LOAD + +# define FLAGS_ALREADY_SET + +#endif + + /************** ALPHA/OSF1 with gcc ****************/ + +# if (defined(__alpha) || defined(__alpha__)) \ + && !defined(__linux__) && !defined(__NetBSD__) && !defined(__OpenBSD__) + +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "alpha-osf1" + +# include "uconfig.h" + +# define ALPHA_CONTROL_FP +# define USE_OSF_FP_PREDS +# define USE_DIVIDE_MAKE_INFINITY +# define ATAN2_DOESNT_WORK_WITH_INFINITIES + +# define FLAGS_ALREADY_SET + +#endif + + /************** HP/UX with cc or gcc ****************/ + +#if defined(__hpux) + +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "parisc-hpux" + +# include "uconfig.h" + +# define USE_DIVIDE_MAKE_INFINITY +# define USE_IEEE_FP_PREDS +# define USE_EXPLICT_FP_FORM_CHECK +# define ZERO_MINUS_ZERO_IS_POS_ZERO +# define LOG_ZERO_ISNT_NEG_INF + +# define FLAGS_ALREADY_SET + +#endif + + /************** x86/SCO Unix with gcc ****************/ + /* Contributed by Atanas Ivanov */ + +#if defined(_M_XENIX) && defined(_M_SYSV) + +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "sco-i386" + +# include "uconfig.h" +#ifndef __ELF__ +# undef UNIX_DYNAMIC_LOAD +#endif + +# define USE_SCO_IEEE_FP_PREDS +# define USE_EXPLICT_FP_FORM_CHECK + +# define REGISTER_POOR_MACHINE + +# define FLAGS_ALREADY_SET + +#endif + + /****************** Windows with MS Visual C ***************/ + /* See the "worksp" directory for more MSVC details. */ + +#if (defined(__BORLANDC__) \ + || ((defined(_MSC_VER) || defined(__MINGW32__)) \ + && (defined(__WIN32__) || defined(WIN32) || defined(_WIN32)))) + +# ifdef _WIN64 +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "win32\\x86_64" +# else +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "win32\\i386" +# endif + +# define SYSTEM_TYPE_NAME "windows" +# define DOS_FILE_SYSTEM + +# define USE_WINDOWS_EVENT_LOG +# define INIT_SYSLOG_LEVEL SCHEME_LOG_ERROR + +# define DO_STACK_CHECK +# define WINDOWS_FIND_STACK_BOUNDS + +# define USE_MZ_SETJMP + +# define WINDOWS_DYNAMIC_LOAD + +#ifdef _MSC_VER +# define USE_MSVC_FP_PREDS +# if _MSC_VER < 1300 +# define NAN_EQUALS_ANYTHING +# endif +# define INT64_AS_LONG_LONG +# define ATAN2_DOESNT_WORK_WITH_INFINITIES + /* With VC 7, ATAN2_DOESNT... wasn't needed, and + POW_HANDLES_INF_CORRECTLY worked, too. */ +# define SIN_COS_NEED_DEOPTIMIZE +# define AVOID_INT_TO_FLOAT_TRUNCATION +#endif +#ifdef __BORLANDC__ +# define NAN_EQUALS_ANYTHING +# define ATAN2_DOESNT_WORK_WITH_INFINITIES +# define ATAN2_DOESNT_WORK_WITH_NAN +# define SQRT_NAN_IS_WRONG +# define LOG_ZERO_ISNT_NEG_INF +# define TRIG_ZERO_NEEDS_SIGN_CHECK +# define NEED_TO_DEFINE_MATHERR +#endif +#ifdef __MINGW32__ +# define USE_IEEE_FP_PREDS +# define ATAN2_DOESNT_WORK_WITH_INFINITIES +#endif + +# define IO_INCLUDE +# define DONT_IGNORE_PIPE_SIGNAL + +# define WINDOWS_PROCESSES +# define WINDOWS_FILE_HANDLES +# ifndef MZ_USE_DETERMINSTIC_FUEL +# define USE_WIN32_THREAD_TIMER +# endif + +# define NO_SIGHUP_HANDLER + +#define PRINTF_INTPTR_SIZE_PREFIX "I" + +/* MS Visual C++ likes underscore prefixes */ +#if defined(_MSC_VER) +# define MSC_IZE(x) _ ## x +# define M_MSC_IZE(x) MSC_IZE(x) +# define DIRECT_INCLUDE +# else +# define M_MSC_IZE(x) x +#endif + +#if defined(__MINGW32__) +# define MSC_IZE(x) _ ## x +#endif + +#ifdef __BORLANDC__ +# define MSCBOR_IZE(x) _ ## x +# define DIR_INCLUDE +# define IGNORE_BY_BORLAND_CONTROL_87 +#endif + +#if defined(__MINGW32__) && defined(USE_DIRECT_LONG_DOUBLE) +/* Beware: different from the MSVC build when SSE-based floating-point + math is enabled in the C compiler. Sets the floating-point mode to + extended precision to support extflonums, and changing precision + may affect other libraries. */ +# define MZ_TRY_EXTFLONUMS +# define ASM_DBLPREC_CONTROL_87 +#else +# define MZ_LONG_DOUBLE +# define IGNORE_BY_MS_CONTROL_87 +# define MZ_NEED_SET_EXTFL_MODE +# define MZ_LONG_DOUBLE_API_IS_EXTERNAL +#endif + +# define REGISTER_POOR_MACHINE + +# define WINDOWS_UNICODE_SUPPORT +# define USE_ICONV_DLL +# define NO_MBTOWC_FUNCTIONS + +# ifdef _WIN64 +# define MZ_USE_JIT_X86_64 +# else +# define MZ_USE_JIT_I386 +# endif + +# define MZ_JIT_USE_WINDOWS_VIRTUAL_ALLOC + +# define FLAGS_ALREADY_SET + +#endif + + /******************** Windows with Cygwin ******************/ + /* See the "worksp" directory for more MSVC details. */ + +#if defined(__CYGWIN32__) + +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "i386-cygwin" + +# include "uconfig.h" + +# undef USE_ITIMER + +# define USE_MZ_CYGWIN_SETJMP +# define USE_MZ_SETJMP + +# define USE_CYGWIN_SO_SUFFIX + +# define USE_DIVIDE_MAKE_INFINITY + +# define DO_STACK_CHECK +# define WINDOWS_FIND_STACK_BOUNDS + +# define REGISTER_POOR_MACHINE + +# define MZ_USE_JIT_I386 + +# define FLAGS_ALREADY_SET + +#endif + + /************** Mac OS X ****************/ + +# if defined(OS_X) || defined(XONX) + +# if defined(XONX) +# define SPLS_MAC "darwin" +# elif TARGET_OS_IPHONE +# define SPLS_MAC "ios" +# else +# define SPLS_MAC "macosx" +# endif + +# if defined(__POWERPC__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "ppc-" SPLS_MAC +# elif defined(__arm__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "arm-" SPLS_MAC +# elif defined(__arm64__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "arm64-" SPLS_MAC +# elif defined(__x86_64__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "x86_64-" SPLS_MAC +# else +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "i386-" SPLS_MAC +# endif + +# include "uconfig.h" + +# define INIT_SYSLOG_LEVEL SCHEME_LOG_ERROR + +#ifndef XONX +# undef SYSTEM_TYPE_NAME +# define SYSTEM_TYPE_NAME "macosx" +#endif + +# ifndef MZ_USE_DETERMINSTIC_FUEL +# undef USE_ITIMER +# define USE_PTHREAD_THREAD_TIMER +# endif + +# define USE_MAP_ANON + +# define USE_IEEE_FP_PREDS +# define TRIG_ZERO_NEEDS_SIGN_CHECK + +# define USE_UNDERSCORE_SETJMP + +#ifndef XONX +# define MACOS_UNICODE_SUPPORT +#endif + +#ifndef OS_X +# define OS_X 1 +#endif + +#if defined(__arm__) +# define MZ_USE_JIT_ARM +#elif defined(__arm64__) +#elif defined(__POWERPC__) +# define MZ_USE_JIT_PPC +#else +# if defined(__x86_64__) +# define MZ_USE_JIT_X86_64 +# else +# define MZ_USE_JIT_I386 +# endif +# define ASM_DBLPREC_CONTROL_87 +# define MZ_TRY_EXTFLONUMS +#endif + +# define POW_HANDLES_CASES_CORRECTLY + +# define MZ_JIT_USE_MPROTECT + +# define FLAGS_ALREADY_SET + +#endif + + /************** Darwin x86 ****************/ + +# if defined(__APPLE__) && defined(__MACH__) && defined(__i386__) && !defined(OS_X) + +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "i386-darwin" + +# include "uconfig.h" + +# define USE_MAP_ANON + +# define USE_UNDERSCORE_SETJMP + +# define MZ_USE_JIT_I386 + +# define FLAGS_ALREADY_SET + +# endif + + /************ QNX *************/ + +#if defined(__QNX__) + +#if defined(__i386__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "i386-qnx" +#endif +# define ASSUME_FIXED_STACK_SIZE + +# include "uconfig.h" + +# define FIXED_STACK_SIZE 524288 + +# define FLAGS_ALREADY_SET + +#if defined(__i386__) +# define MZ_USE_JIT_I386 +# define MZ_JIT_USE_MPROTECT +#endif +#if defined(__x86_64__) +# define MZ_USE_JIT_X86_64 +# define MZ_JIT_USE_MPROTECT +# define MZ_USE_DWARF_LIBUNWIND +#endif + +#endif + + /************ Dragonfly *************/ + +#if defined(__DragonFly__) + +# if defined(__i386__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "i386-dragonfly" +# define REGISTER_POOR_MACHINE +# define MZ_USE_JIT_I386 +# define ASM_DBLPREC_CONTROL_87 +# define MZ_TRY_EXTFLONUMS +# elif defined(__amd64__) +# define SCHEME_PLATFORM_LIBRARY_SUBPATH "amd64-dragonfly" +# define REGISTER_POOR_MACHINE +# define MZ_USE_JIT_X86_64 +# define ASM_DBLPREC_CONTROL_87 +# define MZ_TRY_EXTFLONUMS +# else +# error Unported platform. +# endif + +/* pthreads always enabled via `configure', and + initial pthread's stack size doesn't use rlimit: */ +# define ASSUME_FIXED_STACK_SIZE +# define FIXED_STACK_SIZE 1048576 + +# include "uconfig.h" + +# define USE_UNDERSCORE_SETJMP + +# define USE_IEEE_FP_PREDS +# ifndef ASM_DBLPREC_CONTROL_87 +# define POW_HANDLES_INF_CORRECTLY +# endif + +# define MZ_JIT_USE_MPROTECT + +# define FLAGS_ALREADY_SET + +#endif + +/************** (END KNOWN ARCHITECTURE/SYSTEMS) ****************/ + + +/***** (BEGIN CONFIGURATION FLAG DESCRPTIONS AND DEFAULTS) ******/ + +#ifndef FLAGS_ALREADY_SET + +/* assume generic Unix: */ +#include "uconfig.h" + + /*********************/ + /* Operating System */ +/*********************/ + + /* SYSTEM_TYPE_NAME must be a string; this will be converted into + a symbol for the result of (system-type) */ + + /* SCHEME_PLATFORM_LIBRARY_SUBPATH must be a string; if it is + undefined, it is automatically generated into a file named + "schsys.h" into the same directory as .o files and #included + by string.c. This string is returned by (system-library-subpath) */ + + /*******************/ + /* Filesystem */ +/*******************/ + + /* UNIX_FILE_SYSTEM indicates that filenames are as in Unix, with + forward slash separators, ".." as the parent directory, "/" + as the root directory, and case-sensitivity */ + + /* DOS_FILE_SYSTEM indicates that filenames are as in DOS, with + slash or backward slash separators, ".." as the parent directory, + "X:\", "X:/", "\", or "/" as a root directory (for some letter X), + and case insensitivity */ + + /* USE_C_SYSLOG uses the C syslog library for logging. */ + + /* USE_WINDOWS_EVENT_LOG uses the Windows event log API for logging. */ + + /* INIT_SYSLOG_LEVEL sets the initial level for filtering messages + sent to syslog. It default to 0 (i.e., no events). */ + + /* USE_TRANSITIONAL_64_FILE_OPS uses lseek64, stat64, etc. for file + operations involving sizes (that can require 64-bit + arithmetic). */ + + /***********************/ + /* Ports */ +/***********************/ + +/* These are flags about the implementation of char-ready? for FILE*s + None of these flags are required, but char-ready? may return + spurious #ts if they are set up incorrectly. */ + + /* WINDOWS_FILE_HANDLES implements file access through the Windows + API (CreateFile(), ReadFile(), etc.) */ + + /***********************/ + /* Threads & Signals */ +/***********************/ + +/* These are flags about the implementation of system, process, etc. */ + + /* WINDOWS_PROCESSES uses Windows threads for various tasks. */ + + /* USE_ITIMER uses setitimer() to implement thread pre-emption (for + Racket-implemented threads). Define MZ_THREAD_QUANTUM_USEC to + set the base time in usec allocated to each thread. */ + + /* USE_WIN32_THREAD_TIMER uses a background Windows thread to implement + tread pre-emption. */ + + /* USE_PTHREAD_THREAD_TIMER uses a background pthread to implement + tread pre-emption. */ + + /* DONT_IGNORE_FPE_SIGNAL stops Racket from ignoring floating-point + exception signals. */ + + /* DONT_IGNORE_PIPE_SIGNAL stops Racket from ignoring SIGPIPE + signals. */ + + /* USE_UNDERSCORE_SETJMP uses _setjmp() instead of setjmp() to avoid + sigmal-mask work. */ + + /* FLUSH_SPARC_REGISTER_WINDOWS uses an assembly instruction for + flushing the Sparc register windows before copying the stack. */ + + /**********************/ + /* Inexact Arithmetic */ +/**********************/ + + /* FLOATING_POINT_IS_NOT_IEEE disables inexact->exact conversion via + parsing of IEEE-format bits. */ + + /* AVOID_INT_TO_FLOAT_TRUNCATION indicates that conversion from an + integer to a floating point type does not round-to-nearest when + precision is lost, even when the FP rounding mode is + round-to-nearest */ + + /* USE_SINGLE_FLOATS turns on support for single-precision + floating point numbers. Otherwise, floating point numbers + are always represented in double-precision. */ + + /* USE_SINGLE_FLOATS_AS_DEFAULT, when used with + USE_SINGLE_FLOATS, causes exact->inexact coercions to + use single-precision numbers as the result rather + than double-precision numbers. */ + + /* USE_INFINITY_FUNC uses infinity() to get the infinity + floating-point constant instead of using HUGE_VAL. */ + + /* USE_DIVIDE_MAKE_INFINITY creates +inf.0 by dvividing by zero + instead of using HUGE_VAL. */ + + /* USE_IEEE_FP_PREDS uses isinf() and isnan() to implement tests for + infinity and not-a-number. */ + + /* USE_OSF_FP_PREDS uses fp-class() and isnan() to implement tests for + infinity and not-a-number. */ + + /* USE_SCO_IEEE_FP_PREDS uses fpclass() and isnan() to implement tests for + infinity and not-a-number. */ + + /* USE_CARBON_FP_PREDS uses __isnand() and __isfinited() to implement tests + for infinity and not-a-number. */ + + /* USE_MSVC_FP_PREDS uses _fpclass() and _isnan() to implement tests + for infinity and not-a-number. */ + + /* DEFEAT_FP_COMP_OPTIMIZATION avoids a compiler optimization that + converts (a == a) to TRUE, even if `a' is floating-point. Used + only when USE_[SCO_]IEEE_FP_PREDS is not defined. */ + + /* C_COMPILER_USES_SSE indicates that the C compiler generates SSE2 + instructions for `double' arithmetic. This flag is turned on + automatically if __SSE2_MATH__ is defined (usually by gcc). */ + + /* MZ_LONG_DOUBLE enables extflonum support. */ + + /* MZ_TRY_EXTFLONUMS turns on MZ_LONG_DOUBLE if C_COMPILER_USES_SSE. */ + + /* ASM_DBLPREC_CONTROL_87 uses inline assembly to set Intel '387 + floating-point operations to double-precision instead of + extended-precision arithmetic. This definition is turned off if + C_COMPILER_USES_SSE, and ASM_EXTPREC_CONTROL_87 is turned on + instead if C_COMPILER_USES_SSE and MZ_LONG_DOUBLE. */ + + /* ASM_EXTPREC_CONTROL_87 uses inline assembly to set Intel '387 + floating-point operations to double-precision instead of + extended-precision arithmetic. */ + + /* MZ_NEED_SET_EXTFL_MODE causes JIT-generated extflonum instructions + to set the x87 control word to extended precision just before an + extflonum operation, and then set if back to double precision just + after. This is needed or Windows (where the default mode is double + precision, something about the x64 environment switches the mode + back if you try to change it permanently, and "longdouble.dll" + does the same switch for non-JITted operations). */ + + /* IGNORE_BY_BORLAND_CONTROL_87 turns off floating-point error for + Intel '387 with Borlad-style _control87. DONT_IGNORE_PIPE_SIGNAL + can be on or off. */ + + /* IGNORE_BY_MS_CONTROL_87 turns off floating-point error for Intel + '387 with Microsoft-style _control87. DONT_IGNORE_PIPE_SIGNAL can + be on or off. */ + + /* LINUX_CONTROL_387 controls the floating-point processor under i386 + Linux using __setfpucw(). libc 6.1 doesn't export __setfpucw() and + it doesn't matter; for Linux 2.0 and up, the default FP behavior + is the one we want. This flag might be needed for older versions + of Linux. */ + + /* FREEBSD_CONTROL_387 controls the floating-point processor under i386 + FreeBSD. As for Linux, this does not appear necessary anymore. */ + + /* APLHA_CONTROL_FP controls the floating-point processor for Alpha + OSF1 */ + + /* NAN_EQUALS_ANYTHING indicates that the compiler is broken and + equality comparisons with +nan.0 always return #t. Currently + used for MSVC++ */ + + /* ZERO_MINUS_ZERO_IS_POS_ZERO indicates that something (compiler? + machine? fp flags?) is broken so that 0.0 - 0.0 = 0.0 instead of + -0.0. This flag doesn't fix Racket completely, since (- 0.0) is + still 0.0, but at least it lets Racket read and print 0.0 and + -0.0 accurately. Currently used for HP/UX. */ + + /* NAN_LT_COMPARISON_WRONG indicates that +nan.0 is not handled correctly + by < or <=. Probably the compiler implements < as !>. */ + + /* USE_EXPLICT_FP_FORM_CHECK circumvents bugs in strtod() under Linux, + SunOS/Solaris, and HP/UX by explicit pre-checking the form of the + number and looking for values that are obviously +inf.0 or -inf.0 */ + + /* POW_HANDLES_CASES_CORRECTLY indicates that the pow() library procedure + handles all +/-inf.0, +/-0.0, or +nan.0 cases according to C99. This + might save time on redundant checking before Racket calls pow(). */ + + /* ATAN2_DOESNT_WORK_WITH_INFINITIES indicates that atan2(+/-inf, +/-inf) + is not the same as atan2(1, 1). */ + + /* ATAN2_DOESNT_WORK_WITH_NAN indicates that atan2(+nan.0, _) and + atan2(_, +nan.0) don't produce +nan.0. */ + + /* SQRT_NAN_IS_WRONG indicates that (sqrt +nan.0) must be forced to +nan.0 + (i.e., the C library function is bad). */ + + /* COMPUTE_NEG_INEXACT_TO_EXACT_AS_POS computes inexact->exact of some + negative inexact number x by computing the result for -x and negating + it. Use this if (inexact->exact -0.1) is wrong. */ + + /* TRIG_ZERO_NEEDS_SIGN_CHECK defines versions of tan, sin, atan, and + asin that preserve the sign of a zero argument. */ + + /* FMOD_CAN_RETURN_NEG_ZERO is fmod() on positive numbers can produce + a negative zero. */ + + /* FMOD_CAN_RETURN_POS_ZERO is fmod() on -0.0 can produce 0.0. */ + + /* LOG_ZERO_ISNT_NEG_INF defines a version of log that checks for an + inexact zero argument and return negative infinity. */ + + /* NEED_TO_DEFINE_MATHERR defines _matherr to quiet warnings from the + math library. */ + + /* SIN_COS_NEED_DEOPTIMIZE disables optimization for calls to sin() + and cos() (for MSVC) */ + + /****************************/ + /* Byte Order and long long */ +/****************************/ + + /* INT64_AS_LONG_LONG indicates that long long is not supported, but + _int64 is */ + + /* NO_LONG_LONG_TYPE indicates that long long is not supported */ + + /***********************/ + /* Stack Manipulations */ +/***********************/ + + /* DO_STACK_CHECK checks for stack overflow during execution. + Requires either UNIX_FIND_STACK_BOUNDS, USE_STACKAVAIL, + MACOS_FIND_STACK_BOUNDS, or ASSUME_FIXED_STACK_SIZE. */ + + /* UNIX_FIND_STACK_BOUNDS figures out the maximum stack position + on Unix systems, using getrlimit() and the GC_find_stack_base() + defined in the conservative garbage collector. But no more + than UNIX_STACK_MAXIMUM bytes, if defined, will be used. + USE_STACKAVIL uses stackavail() function for checking stack + overflow; works with Borland C++, maybe other compilers. + WINDOWS_FIND_STACK_BOUNDS figures out the maximum stack position + under Windows (uses GC_find_stack_base()) + MACOS_FIND_STACK_BOUNDS figures out the stack limit on the Mac. + LINUX_FIND_STACK_BASE figures out the stack base under Linux + by reading from /proc/self/maps and looking for "[stack]" + line. + ASSUME_FIXED_STACK_SIZE assumes that the main stack size is + always FIXED_STACK_SIZE. + PTHREAD_STACKSEG_FIND_STACK_BOUNDS finds stack bounds using + pthread_stackseg_np(). + Use only one of these if DO_STACK_CHECK is used, or none otherwise. */ + + /* FIXED_STACK_SIZE sets the stack size to when the + ASSUME_FIXED_STACK_SIZE stack-checking mode is on. */ + + /* STACK_SAFETY_MARGIN sets the number of bytes that should be + available on the stack for "safety" to . Used only if + DO_STACK_CHECK is used. STACK_SAFETY_MARGIN defaults to 50000 + for a 32-bit platform, twice as much for a 64-bit platform. */ + + /* UNIX_LIMIT_STACK limits stack usage to bytes. This may + be necessary to avoid GC-setup traversal over too much memory + (with GC flag HEURISTIC2?). */ + + /***********************/ + /* Dynamic Loading */ +/***********************/ + + /* UNIX_DYNAMIC_LOAD implements dynamic extensions under Unix + using dlopen(); you may have to add the -ldl flag in the LIBS + Makefile variable. The library doesn't exist under Linux without + ELF, so it won't work. If you get linker errors about dlopen(), etc., + this flag and the -ldl linker flag are the things to adjust. + SHL_DYNAMIC_LOAD implement HP/UX dynamic loading. + WINDOWS_DYNAMIC_LOAD implements dynamic extensions under Windows + (Thanks to Patrick Barta). + CODEFRAGMENT_DYNAMIC_LOAD implements dynamic extensions with + MacOS's Code Fragment Custodian (thanks to William Ng). + Use only one or none of these. */ + + /* UNDERSCORE_DYNLOAD_SYMBOL_PREFIX with UNIX_DYNAMIC_LOAD means that + an extra underscore ("_") must be placed in front of the name passed + to dlopen(). */ + + /* USE_DLOPEN_GLOBAL_BY_DEFAULT opens shared libraries in "global" + mode by default, instead of "local" mode. */ + + /* LINK_EXTENSIONS_BY_TABLE specifies that the Racket functions + used by an extension must be manually linked via a table of + function pointers. Windows dynamic linking uses this method. */ + + /* MZSCHEME_IS_CODEFRAGMENT exploits improved CFM linking when + Racket is itself a shared library instead of embedded in + an application */ + + /***********************/ + /* JIT */ +/***********************/ + + /* MZ_USE_JIT_I386 enables the JIT for x86 */ + + /* MZ_USE_JIT_X86_64 enables the JIT for x86_64 */ + + /* MZ_USE_JIT_PPC enables the JIT for PowerPC */ + + /* MZ_JIT_USE_MPROTECT uses mprotect on x86 platforms to make code + pages executable */ + + /* MZ_JIT_USE_WINDOWS_VIRTUAL_ALLOC uses VirtualAlloc to make + code pages executable. */ + + /*****************************/ + /* MacOS */ +/*****************************/ + + /* OS_X enables specific support for Mac OS, e.g. the location of the + prefs directory */ + + /***********************/ + /* Miscellaneous */ +/***********************/ + + /* USE_MAP_ANON indicates that mmap() should use BSD's MAP_ANON flag + rather than trying to open /dev/zero */ + + /* PREFER_MMAP_LARGE_BLOCKS indicates that mmap() should be called with + large block sizes as much as possible, because the actual allocated + size for small requests (on the order of the page size) is much + larger than the request. */ + + /* REGISTER_POOR_MACHINE guides a hand optimization that seems to + be work best one way for Sparc machines, and better the other + way for x86 machines. */ + + /* USE_LONG_LONG_FOR_BIGDIG indicates that `long long' is available + and 64 bits wide. (Don't use when `long' is 64 bits wide). */ + + /* MACOS_UNICODE_SUPPORT and WINDOWS_UNICODE_SUPPORT indicate that + platform-native functions should be used for string comparisons + in the default locale. */ + + /* USE_ICONV_DLL loads iconv.dll lazily for string conversion; no + headers necessary. */ + + /* NO_MBTOWC_FUNCTIONS indicates that locale-to-wchar conversion + functions are not available. */ + + /* NO_INLINE_KEYWORD indicates that the C compiler doesn't recognize + C's `inline' keyword. */ + + /* NO_USER_BREAK_HANDLER turns off handling of SIGINT, SIGTERM, and + SIGHUP in main.c */ + + /* NO_SIGTERM_HANDLER turns off handling of SIGTERM in main.c */ + + /* NO_SIGHUP_HANDLER turns off handling of SIGHUP in main.c */ + + /* NO_STRERROR_AVAILABLE means that strerror() is not available. */ + + /* USE_ON_EXIT_FOR_ATEXIT means that a SunOS4-style on_exit() + is available instead of atexit(). */ + + /* FFI_CALLBACK_NEED_INT_CLEAR indiates thet libffi callback results + that are smaller than an `int' should clear `int'-sized space + in the result area. */ + +#endif /* FLAGS_ALREADY_SET */ + +/****** (END CONFIGURATION FLAG DESCRPTIONS AND DEFAULTS) *******/ + +#endif /* FLAGS_ALREADY_SET */ diff --git a/racket/src/include/stypes.h b/racket/src/include/stypes.h new file mode 100644 index 0000000000..ad8fe49787 --- /dev/null +++ b/racket/src/include/stypes.h @@ -0,0 +1,301 @@ + +enum { + + /* Compiled bytecode elements: */ + scheme_toplevel_type, /* 0 */ + scheme_static_toplevel_type, /* 1 */ + scheme_local_type, /* 2 */ + scheme_local_unbox_type, /* 3 */ + scheme_application_type, /* 4 */ + scheme_application2_type, /* 5 */ + scheme_application3_type, /* 6 */ + scheme_sequence_type, /* 7 */ + scheme_branch_type, /* 8 */ + scheme_lambda_type, /* 9 */ + scheme_let_value_type, /* 10 */ + scheme_let_void_type, /* 11 */ + scheme_letrec_type, /* 12 */ + scheme_let_one_type, /* 13 */ + scheme_with_cont_mark_type, /* 14 */ + + scheme_define_values_type, /* 15 */ + scheme_set_bang_type, /* 16 */ + scheme_boxenv_type, /* 17 */ + scheme_begin0_sequence_type, /* 18 */ + scheme_varref_form_type, /* 19 */ + scheme_apply_values_type, /* 20 */ + scheme_with_immed_mark_type, /* 21 */ + scheme_case_lambda_sequence_type, /* 22 */ + scheme_inline_variant_type, /* 23 */ + + _scheme_values_types_, /* 24 */ + /* All following types are values at run time */ + + scheme_linklet_type, /* 25 */ + + /* Replacements for some of the above as the + compiler's intermediate representation for + optimization: */ + scheme_ir_local_type, /* 26 */ + scheme_ir_lambda_type, /* 27 */ + scheme_ir_let_value_type, /* 28 */ + scheme_ir_let_header_type, /* 29 */ + scheme_ir_toplevel_type, /* 30 */ + + scheme_quote_compilation_type, /* used while writing, only */ + + /* Generated in the compiler front-end, but + registered in the prefix table instead of + used directly as an "expression": */ + scheme_variable_type, /* 32 */ + + _scheme_ir_values_types_, /* 33 */ + /* All of the following are literal values from the + perspective of the compiler */ + + scheme_linklet_bundle_type, /* 34 */ + scheme_instance_type, /* 35 */ + + /* procedure types */ + scheme_prim_type, /* 36 */ + scheme_closed_prim_type, /* 37 */ + scheme_closure_type, /* 38 */ + scheme_case_closure_type, /* 39 */ + scheme_cont_type, /* 40 */ + scheme_escaping_cont_type, /* 41 */ + scheme_proc_struct_type, /* 42 */ + scheme_native_closure_type, /* 43 */ + scheme_proc_chaperone_type, /* 44 */ + + scheme_chaperone_type, /* 45 */ + + /* structure type (plus one above for procs) */ + scheme_structure_type, /* 46 */ + + /* number types (must be together) */ + scheme_integer_type, /* 47 */ + scheme_bignum_type, /* 48 */ + scheme_rational_type, /* 49 */ + scheme_float_type, /* 50 */ + scheme_double_type, /* 51 */ + scheme_complex_type, /* 52 */ + + /* other eqv?-able values (must be with numbers) */ + scheme_char_type, /* 53 */ + scheme_long_double_type, /* 54 */ + + /* other values */ + scheme_char_string_type, /* 55 */ + scheme_byte_string_type, /* 56 */ + scheme_unix_path_type, /* 57 */ + scheme_windows_path_type, /* 58 */ + scheme_symbol_type, /* 59 */ + scheme_keyword_type, /* 60 */ + scheme_null_type, /* 61 */ + scheme_pair_type, /* 62 */ + scheme_mutable_pair_type, /* 63 */ + scheme_vector_type, /* 64 */ + scheme_inspector_type, /* 65 */ + scheme_input_port_type, /* 66 */ + scheme_output_port_type, /* 67 */ + scheme_eof_type, /* 68 */ + scheme_true_type, /* 69 */ + scheme_false_type, /* 70 */ + scheme_void_type, /* 71 */ + scheme_primitive_syntax_type, /* 72 */ + scheme_macro_type, /* 73 */ + scheme_box_type, /* 74 */ + scheme_thread_type, /* 75 */ + scheme_cont_mark_set_type, /* 76 */ + scheme_sema_type, /* 77 */ + + /* hash table types (must be together for hash? + * implementation */ + scheme_hash_table_type, /* 78 */ + scheme_hash_tree_type, /* 79 */ + scheme_eq_hash_tree_type, /* 80 */ + scheme_eqv_hash_tree_type, /* 81 */ + scheme_hash_tree_subtree_type, /* 82 */ + scheme_hash_tree_collision_type, /* 83 */ + scheme_hash_tree_indirection_type, /* 84 */ + scheme_bucket_type, /* 85 */ + scheme_bucket_table_type, /* 86 */ + + scheme_cpointer_type, /* 87 */ + scheme_prefix_type, /* 88 */ + scheme_weak_box_type, /* 89 */ + scheme_ephemeron_type, /* 90 */ + scheme_struct_type_type, /* 91 */ + scheme_set_macro_type, /* 92 */ + scheme_listener_type, /* 93 */ + scheme_env_type, /* 94 */ + scheme_startup_env_type, /* 95 */ + scheme_config_type, /* 96 */ + scheme_stx_type, /* 97 */ + scheme_will_executor_type, /* 98 */ + scheme_custodian_type, /* 99 */ + scheme_random_state_type, /* 100 */ + scheme_regexp_type, /* 101 */ + scheme_subprocess_type, /* 102 */ + scheme_eval_waiting_type, /* 103 */ + scheme_tail_call_waiting_type, /* 104 */ + scheme_undefined_type, /* 105 */ + scheme_struct_property_type, /* 106 */ + scheme_chaperone_property_type, /* 107 */ + scheme_multiple_values_type, /* 108 */ + scheme_placeholder_type, /* 109 */ + scheme_table_placeholder_type, /* 110 */ + scheme_svector_type, /* 111 */ + scheme_resolve_prefix_type, /* 112 */ + scheme_security_guard_type, /* 113 */ + scheme_indent_type, /* 114 */ + scheme_udp_type, /* 115 */ + scheme_udp_evt_type, /* 116 */ + scheme_tcp_accept_evt_type, /* 117 */ + scheme_id_macro_type, /* 118 */ + scheme_evt_set_type, /* 119 */ + scheme_wrap_evt_type, /* 120 */ + scheme_handle_evt_type, /* 121 */ + scheme_replace_evt_type, /* 122 */ + scheme_active_replace_evt_type, /* 123 */ + scheme_nack_guard_evt_type, /* 124 */ + scheme_semaphore_repost_type, /* 125 */ + scheme_channel_type, /* 126 */ + scheme_channel_put_type, /* 127 */ + scheme_thread_resume_type, /* 128 */ + scheme_thread_suspend_type, /* 129 */ + scheme_thread_dead_type, /* 130 */ + scheme_poll_evt_type, /* 131 */ + scheme_nack_evt_type, /* 132 */ + scheme_thread_set_type, /* 133 */ + scheme_string_converter_type, /* 134 */ + scheme_alarm_type, /* 135 */ + scheme_thread_recv_evt_type, /* 136 */ + scheme_thread_cell_type, /* 137 */ + scheme_channel_syncer_type, /* 138 */ + scheme_write_evt_type, /* 139 */ + scheme_always_evt_type, /* 140 */ + scheme_never_evt_type, /* 141 */ + scheme_progress_evt_type, /* 142 */ + scheme_place_dead_type, /* 143 */ + scheme_already_comp_type, /* 144 */ + scheme_readtable_type, /* 145 */ + scheme_thread_cell_values_type, /* 146 */ + scheme_global_ref_type, /* 147 */ + scheme_cont_mark_chain_type, /* 148 */ + scheme_raw_pair_type, /* 149 */ + scheme_prompt_type, /* 150 */ + scheme_prompt_tag_type, /* 151 */ + scheme_continuation_mark_key_type, /* 152 */ + scheme_delay_syntax_type, /* 153 */ + scheme_cust_box_type, /* 154 */ + scheme_logger_type, /* 155 */ + scheme_log_reader_type, /* 156 */ + scheme_noninline_proc_type, /* 157 */ + scheme_future_type, /* 158 */ + scheme_flvector_type, /* 159 */ + scheme_extflvector_type, /* 160 */ + scheme_fxvector_type, /* 161 */ + scheme_place_type, /* 162 */ + scheme_place_object_type, /* 163 */ + scheme_place_async_channel_type, /* 164 */ + scheme_place_bi_channel_type, /* 165 */ + scheme_once_used_type, /* 166 */ + scheme_serialized_symbol_type, /* 167 */ + scheme_serialized_keyword_type, /* 168 */ + scheme_serialized_structure_type, /* 169 */ + scheme_fsemaphore_type, /* 170 */ + scheme_serialized_tcp_fd_type, /* 171 */ + scheme_serialized_file_fd_type, /* 172 */ + scheme_port_closed_evt_type, /* 173 */ + scheme_proc_shape_type, /* 174 */ + scheme_struct_prop_proc_shape_type, /* 175 */ + scheme_struct_proc_shape_type, /* 176 */ + scheme_phantom_bytes_type, /* 177 */ + scheme_environment_variables_type, /* 178 */ + scheme_filesystem_change_evt_type, /* 179 */ + scheme_ctype_type, /* 180 */ + scheme_plumber_type, /* 181 */ + scheme_plumber_handle_type, /* 182 */ + scheme_deferred_expr_type, /* 183 */ + scheme_unquoted_printing_string_type, /* 184 */ + scheme_will_be_lambda_type, /* 185 */ + scheme_thunk_for_continue_type, /* 186 */ + +#ifdef MZTAG_REQUIRED + _scheme_last_normal_type_, /* 187 */ + + /* The remaining tags exist for GC tracing (in non-conservative + mode), but they are not needed for run-time tag tests */ + + scheme_rt_weak_array, /* 188 */ + + scheme_rt_comp_env, /* 189 */ + scheme_rt_constant_binding, /* 190 */ + scheme_rt_resolve_info, /* 191 */ + scheme_rt_unresolve_info, /* 192 */ + scheme_rt_optimize_info, /* 193 */ + scheme_rt_cont_mark, /* 194 */ + scheme_rt_saved_stack, /* 195 */ + scheme_rt_reply_item, /* 196 */ + scheme_rt_ir_lambda_info, /* 197 */ + scheme_rt_overflow, /* 198 */ + scheme_rt_overflow_jmp, /* 199 */ + scheme_rt_meta_cont, /* 200 */ + scheme_rt_dyn_wind_cell, /* 201 */ + scheme_rt_dyn_wind_info, /* 202 */ + scheme_rt_dyn_wind, /* 203 */ + scheme_rt_dup_check, /* 204 */ + scheme_rt_thread_memory, /* 205 */ + scheme_rt_input_file, /* 206 */ + scheme_rt_input_fd, /* 207 */ + scheme_rt_oskit_console_input, /* 208 */ + scheme_rt_tested_input_file, /* 209 */ + scheme_rt_tested_output_file, /* 210 */ + scheme_rt_indexed_string, /* 211 */ + scheme_rt_output_file, /* 212 */ + scheme_rt_pipe, /* 213 */ + scheme_rt_system_child, /* 214 */ + scheme_rt_tcp, /* 215 */ + scheme_rt_write_data, /* 216 */ + scheme_rt_tcp_select_info, /* 217 */ + scheme_rt_param_data, /* 218 */ + scheme_rt_will, /* 219 */ + scheme_rt_finalization, /* 220 */ + scheme_rt_finalizations, /* 221 */ + scheme_rt_cpp_object, /* 222 */ + scheme_rt_cpp_array_object, /* 223 */ + scheme_rt_stack_object, /* 224 */ + scheme_thread_hop_type, /* 225 */ + scheme_rt_srcloc, /* 226 */ + scheme_rt_evt, /* 227 */ + scheme_rt_syncing, /* 228 */ + scheme_rt_comp_prefix, /* 229 */ + scheme_rt_user_input, /* 230 */ + scheme_rt_user_output, /* 231 */ + scheme_rt_compact_port, /* 232 */ + scheme_rt_read_special_dw, /* 233 */ + scheme_rt_regwork, /* 234 */ + scheme_rt_rx_lazy_string, /* 235 */ + scheme_rt_buf_holder, /* 236 */ + scheme_rt_parameterization, /* 237 */ + scheme_rt_print_params, /* 238 */ + scheme_rt_read_params, /* 239 */ + scheme_rt_native_code, /* 240 */ + scheme_rt_native_code_plus_case, /* 241 */ + scheme_rt_jitter_data, /* 242 */ + scheme_rt_module_exports, /* 243 */ + scheme_rt_delay_load_info, /* 244 */ + scheme_rt_marshal_info, /* 245 */ + scheme_rt_unmarshal_info, /* 246 */ + scheme_rt_runstack, /* 247 */ + scheme_rt_sfs_info, /* 248 */ + scheme_rt_validate_clearing, /* 249 */ + scheme_rt_lightweight_cont, /* 250 */ + scheme_rt_export_info, /* 251 */ + scheme_rt_cont_jmp, /* 252 */ + scheme_rt_letrec_check_frame, /* 253 */ +#endif + + _scheme_last_type_ +}; diff --git a/racket/src/include/uconfig.h b/racket/src/include/uconfig.h new file mode 100644 index 0000000000..42145bdc9d --- /dev/null +++ b/racket/src/include/uconfig.h @@ -0,0 +1,24 @@ + +/* Standard settings for Unix platforms. */ +/* Used by sconfig.h for known architectures. */ + +#define SYSTEM_TYPE_NAME "unix" +#define UNIX_FILE_SYSTEM + +#define USE_C_SYSLOG + +#define DO_STACK_CHECK +#ifndef ASSUME_FIXED_STACK_SIZE +# define UNIX_FIND_STACK_BOUNDS +#endif +#define UNIX_STACK_MAXIMUM 8388608 + +#define UNIX_DYNAMIC_LOAD + +#ifndef MZ_USE_DETERMINSTIC_FUEL +# if defined(MZ_USE_PLACES) || defined(USE_PTHREAD_INSTEAD_OF_ITIMER) +# define USE_PTHREAD_THREAD_TIMER +# else +# define USE_ITIMER +# endif +#endif