2
AC_INIT([SigScheme], [0.8.3], [sigscheme-ja@googlegroups.com], [sigscheme])
3
AC_CONFIG_SRCDIR([src/sigscheme.c])
4
AC_CONFIG_HEADERS([src/config.h])
5
AM_INIT_AUTOMAKE([1.10 dist-bzip2])
7
# Enable this iff asprintf(3) or another GNU extension is needed. This macro
8
# must be invoked immediately after initialization.
11
# --enable-maintainer-mode is requied to build svn repository version of
23
# Prefers GNU sed if found. GNU sed is required for generating
24
# test-c/collect.sh from svn repository version of SigScheme.
27
# These programs are only needed on make dist
28
AC_PATH_PROGS(RUBY, ruby18 ruby)
29
AC_PATH_PROGS(PERL, perl5 perl)
30
AC_PATH_PROG(ASCIIDOC, asciidoc)
32
AC_PATH_PROGS(MD5, md5 md5sum)
33
AC_PATH_PROGS(SHA1, sha1 sha1sum)
36
# Checks for libraries
42
# Checks for header files
46
AC_CHECK_HEADERS([stdint.h inttypes.h sys/inttypes.h sys/types.h \
47
limits.h malloc.h stddef.h stdlib.h string.h \
48
strings.h unistd.h assert.h])
51
# Checks for typedefs, structures, and compiler characteristics
54
# FIXME: depending on the internal variable name
55
AC_DEFUN([AX_LANG_WNOERROR], [ac_[]_AC_LANG_ABBREV[]_werror_flag=])
65
AX_C_ARITHMETIC_RSHIFT
69
#if test "x$ax_cv_c_data_aligned" = xno; then
70
# AC_MSG_ERROR([C data types are not aligned as we expected.])
72
AX_C_REFERENCEABLE_PASSED_VA_LIST
73
if test "x$ax_cv_c_referenceable_passed_va_list" = xno; then
74
# Temporary workaround: Assumes that va_list passed via an arg equals to
76
AC_DEFINE(HAVE_AUTOREFERRED_PASSED_VA_LIST, 1,
77
[Define to 1 if va_list is an array type.])
81
if test "x$ac_cv_c_bigendian" = xyes; then
83
elif test "x$ac_cv_c_bigendian" = xno; then
86
ax_c_endian=$ac_cv_c_bigendian
89
# a submacro of ax_create_stdint_h.m4
93
AC_TYPE_UNSIGNED_LONG_LONG_INT
95
AC_TYPE_LONG_DOUBLE_WIDER
111
AC_CHECK_SIZEOF(char)
112
AC_CHECK_SIZEOF(short)
114
AC_CHECK_SIZEOF(long)
115
AC_CHECK_SIZEOF(long long)
116
AC_CHECK_SIZEOF(float)
117
AC_CHECK_SIZEOF(double)
118
AC_CHECK_SIZEOF(long double)
119
AC_CHECK_SIZEOF(void *)
120
AC_CHECK_SIZEOF(size_t)
122
# Do not assume (sizeof(int32_t) == 4) and so on (i.e. do not (CHAR_BIT == 8)).
123
AC_CHECK_SIZEOF(int8_t)
124
AC_CHECK_SIZEOF(int16_t)
125
AC_CHECK_SIZEOF(int32_t)
126
AC_CHECK_SIZEOF(int64_t)
127
AC_CHECK_SIZEOF(intmax_t)
128
AC_CHECK_SIZEOF(intptr_t)
129
#AC_CHECK_SIZEOF(int_least8_t)
130
#AC_CHECK_SIZEOF(int_least16_t)
131
#AC_CHECK_SIZEOF(int_least32_t)
132
#AC_CHECK_SIZEOF(int_least64_t)
133
#AC_CHECK_SIZEOF(int_fast8_t)
134
#AC_CHECK_SIZEOF(int_fast16_t)
135
#AC_CHECK_SIZEOF(int_fast32_t)
136
#AC_CHECK_SIZEOF(int_fast64_t)
138
AC_CHECK_ALIGNOF(char)
139
AC_CHECK_ALIGNOF(short)
140
AC_CHECK_ALIGNOF(int)
141
AC_CHECK_ALIGNOF(long)
142
AC_CHECK_ALIGNOF(long long)
143
AC_CHECK_ALIGNOF(float)
144
AC_CHECK_ALIGNOF(double)
145
AC_CHECK_ALIGNOF(long double)
146
AC_CHECK_ALIGNOF(void *)
147
AC_CHECK_ALIGNOF(size_t)
149
AC_CHECK_ALIGNOF(int8_t)
150
AC_CHECK_ALIGNOF(int16_t)
151
AC_CHECK_ALIGNOF(int32_t)
152
AC_CHECK_ALIGNOF(int64_t)
153
AC_CHECK_ALIGNOF(intmax_t)
154
AC_CHECK_ALIGNOF(intptr_t)
155
#AC_CHECK_ALIGNOF(int_least8_t)
156
#AC_CHECK_ALIGNOF(int_least16_t)
157
#AC_CHECK_ALIGNOF(int_least32_t)
158
#AC_CHECK_ALIGNOF(int_least64_t)
159
#AC_CHECK_ALIGNOF(int_fast8_t)
160
#AC_CHECK_ALIGNOF(int_fast16_t)
161
#AC_CHECK_ALIGNOF(int_fast32_t)
162
#AC_CHECK_ALIGNOF(int_fast64_t)
174
if $CC --version >/dev/null 2>/dev/null; then
175
ax_prog_cc_version=`$CC --version | head -n 1`
177
ax_prog_cc_version="unknown"
180
AC_LANG_WERROR # Turn warning-only unknown options into error.
182
AX_CFLAGS_GCC_OPTION([-pedantic])
183
AX_CFLAGS_GCC_OPTION([-Wall])
184
AX_CFLAGS_GCC_OPTION([-Wchar-subscripts])
185
AX_CFLAGS_GCC_OPTION([-Wmissing-declarations])
186
AX_CFLAGS_GCC_OPTION([-Wredundant-decls])
187
AX_CFLAGS_GCC_OPTION([-Wmissing-prototypes])
188
AX_CFLAGS_GCC_OPTION([-Wnested-externs])
189
AX_CFLAGS_GCC_OPTION([-Wpointer-arith])
190
AX_CFLAGS_GCC_OPTION([-Wcast-align])
191
AX_CFLAGS_GCC_OPTION([-Wsign-compare])
193
# Suppress warnings about strings longer than ISO C 89 maximum length (509).
194
AX_CFLAGS_GCC_OPTION([-Wno-overlength-strings])
196
# Disable the problematic preprocessing on Mac OS X
197
AX_CFLAGS_GCC_OPTION([-no-cpp-precomp])
199
AX_LANG_WNOERROR # end AC_LANG_WERROR
202
# Checks for library functions
208
AC_CHECK_FUNCS([strtoll strtoimax \
210
fileno getcwd getpagesize])
212
AC_CHECK_FUNCS(posix_memalign,
214
# For posix_memalign(3). although this value is overridden by _GNU_SOURCE
215
# on glibc, keep this for other environments.
216
AC_DEFINE(_POSIX_C_SOURCE, 200112L)
218
AH_VERBATIM(_POSIX_C_SOURCE,
219
[/* Define to 200112L to enable posix_memalign(3). */
220
#if SCM_COMPILING_LIBSSCM
221
#undef _POSIX_C_SOURCE
224
AC_CHECK_FUNCS(memalign)
226
AC_CHECK_FUNCS(strdup,
228
# Overrides _POSIX_C_SOURCE
229
AC_DEFINE(_XOPEN_SOURCE, 500)
231
AH_VERBATIM(_XOPEN_SOURCE,
232
[/* Define to 500 to enable strdup(3). */
233
#if SCM_COMPILING_LIBSSCM
237
AC_CHECK_FUNCS(strcasecmp,
239
if test "x$ax_cv_lib_glibc" = xyes; then
240
AC_DEFINE(_BSD_SOURCE, 1)
244
AC_LIBOBJ(strcasecmp)
246
AH_VERBATIM(_BSD_SOURCE,
247
[/* Define to 1 if it is needed to enable strcasecmp(3). */
248
#if SCM_COMPILING_LIBSSCM
252
AX_CHECK_PAGE_ALIGNED_MALLOC
255
#####################
256
# Optional packages #
257
#####################
259
AC_ARG_WITH(master-pkg,
260
AS_HELP_STRING([--with-master-pkg@<:@=NAME@:>@],
261
[specify alternative package name for pkgdatadir.
262
@<:@default=sigscheme@:>@]))
264
case "${with_master_pkg:=no}" in
266
SSCM_MASTER_PKG="sigscheme"
269
SSCM_MASTER_PKG="${with_master_pkg}"
273
AC_SUBST(SSCM_MASTER_PKG)
274
AM_CONDITIONAL(WITH_MASTER_PKG, [test "x$with_master_pkg" != xno])
276
AC_ARG_WITH(libgcroots,
277
AS_HELP_STRING([--with-libgcroots@<:@=WHICH@:>@],
278
[use alternative libgcroots instead of
280
WHICH=(installed|tiny-subst)
281
@<:@default=installed@:>@]))
283
case "${with_libgcroots:=no}" in
285
# bundled libgcroots package
287
ac_configure_args="$ac_configure_args "
288
AC_CONFIG_SUBDIRS([libgcroots])
290
# Specify absolute directories to make being usable from superordinate
291
# packages such as uim.
292
GCROOTS_LIBS='$(sscm_abs_top_builddir)/libgcroots/libgcroots.la'
293
GCROOTS_CFLAGS='-I$(sscm_abs_top_srcdir)/libgcroots/include'
294
use_libgcroots="bundled one"
298
PKG_CHECK_MODULES(GCROOTS, [gcroots >= 0.1.4],
300
[AC_MSG_ERROR([installed libgcroots is not found.])])
301
use_libgcroots="installed one"
305
# use src/gcroots/gcroots.[hc]
306
with_libgcroots=tiny_subst
307
GCROOTS_CFLAGS='-I$(sscm_abs_top_srcdir)/src/gcroots'
308
use_libgcroots="tiny substitution in src/gcroots"
311
AC_MSG_ERROR([invalid argument for --with-libgcroots.])
315
AC_SUBST(GCROOTS_REQ)
316
AC_SUBST(GCROOTS_LIBS)
317
AC_SUBST(GCROOTS_CFLAGS)
318
AM_CONDITIONAL(USE_LIBGCROOTS, [test "x$with_libgcroots" != xtiny_subst])
319
AM_CONDITIONAL(USE_LIBGCROOTS_BUNDLED, [test "x$with_libgcroots" = xno])
320
AM_CONDITIONAL(USE_LIBGCROOTS_TINY_SUBST,
321
[test "x$with_libgcroots" = xtiny_subst])
324
########################################
325
# Configure features with dependencies #
326
########################################
328
# Init with default prefixes for shell var, AC_DEFINE, AM_CONDITIONAL
329
AX_FEATURE_CONFIGURATOR([use_], [SCM_USE_], [USE_])
332
# Acquire the feature configuration variables from user
335
# Pseudo feature as base dependency: Features that required to run current
336
# SigScheme implementation depends on this.
337
AX_FEATURE_VAR_Y(sigscheme, [pseudo feature for dependency resolution])
339
# Specify a set of default variable settings
340
AX_FEATURE_ARG_X(conf, [select base configuration of SigScheme.
341
CONF=(regular|full|small|r5rs|siod|dev|uim) @<:@regular@:>@],
342
[regular], [^(regular|full|small|r5rs|siod|dev|uim)$],
344
# multibyte char handlings
345
case "$enable_conf" in
354
use_default_encoding=singlebyte
360
use_strict_encoding_check=no
363
use_default_encoding=singlebyte
369
use_strict_encoding_check=no
374
case "$enable_conf" in
380
#use_const_list_literal=yes
381
use_const_vector_literal=yes
382
#use_strict_null_form=yes
383
use_strict_vector_form=yes
384
use_strict_argcheck=yes
385
use_strict_toplevel_definitions=yes
386
use_internal_definitions=yes
390
#use_const_list_literal=yes
391
use_const_vector_literal=yes
392
use_strict_null_form=no
393
use_strict_vector_form=yes
394
use_strict_argcheck=yes
395
use_strict_toplevel_definitions=yes
396
use_internal_definitions=yes
400
use_const_list_literal=no
401
use_const_vector_literal=no
402
use_strict_null_form=no
403
use_strict_vector_form=no
404
use_strict_argcheck=no
405
use_strict_toplevel_definitions=no
406
use_internal_definitions=no
411
case "$enable_conf" in
420
use_string_procedures=yes
436
use_string_procedures=yes
452
use_string_procedures=no
468
use_string_procedures=yes
478
# experimental features
479
case "$enable_conf" in
481
use_hygienic_macro=yes
484
use_hygienic_macro=no
489
case "$enable_conf" in
530
# SigScheme-specific extensions
531
case "$enable_conf" in
534
use_sscm_extensions=yes
535
use_sscm_format_extension=yes
537
use_compat_siod_bugs=no
538
use_eval_c_string=yes
542
use_sscm_extensions=no
543
use_sscm_format_extension=no
545
use_compat_siod_bugs=no
550
use_sscm_extensions=yes
551
use_sscm_format_extension=no
553
use_compat_siod_bugs=yes
554
use_eval_c_string=yes
558
use_sscm_extensions=yes
559
use_sscm_format_extension=yes
561
use_compat_siod_bugs=no
562
use_eval_c_string=yes
567
case "$enable_conf" in
569
use_r6rs_named_chars=yes
573
use_r6rs_named_chars=no
579
case "$enable_conf" in
583
use_warning_suppressor=yes
588
# If the variable is preexisting, it is used as default value. explicit
589
# --enable or --disable can override it.
591
# Storage configuration
592
AX_FEATURE_ARG_X(storage, [specify underlying storage implementation.
593
STORAGE=(compact|fatty) @<:@compact@:>@],
594
[compact], [^(compact|fatty)$])
595
AX_FEATURE_ARG_X(fixnum, [specify Scheme integer (fixnum) size.
596
FIXNUM=(long|int|int32_t|int64_t) @<:@long@:>@],
597
[long], [^(long|int|int32_t|int64_t)$])
598
AX_FEATURE_VAR_X(scmref, [specify scm_intref_t (don't touch)],
599
[intptr_t], [^(intptr_t|int32_t|int64_t)$])
600
AX_FEATURE_VAR_N(valuecons, [valuecons for efficient multiple values handling])
601
AX_FEATURE_VAR_N(dump, [storage dump (not implemented yet)])
603
# String configuration
604
#AX_FEATURE_VAR_N(const-width-string, [strings consist of constant-width characters (not implemented yet)])
605
AX_FEATURE_VAR_N(null-capable-string, [null character in a middle of a string (experimental)])
607
# Character encodings
608
AX_FEATURE_VAR_N(multibyte, [multibyte character encodings])
609
AX_FEATURE_ARG_X(default-encoding,
610
[specify default character encoding.
611
ENCODING=(utf8|singlebyte|euccn|eucjp|euckr|sjis) @<:@utf8@:>@],
613
[^(utf8|singlebyte|euccn|eucjp|euckr|sjis)$])
614
AX_FEATURE_ARG_Y(utf8, [UTF-8 character encoding])
615
AX_FEATURE_ARG_N(euccn, [EUC-CN character encoding])
616
AX_FEATURE_ARG_N(eucjp, [EUC-JP character encoding])
617
AX_FEATURE_ARG_N(euckr, [EUC-KR character encoding])
618
AX_FEATURE_ARG_N(sjis, [Shift_JIS character encoding])
619
AX_FEATURE_ARG_Y(strict-encoding-check, [all feasible encoding error checks])
621
# Other internal SigScheme features
622
AX_FEATURE_VAR_N(format, [intermediate format strings])
623
AX_FEATURE_VAR_N(raw-c-format, [internal format which takes raw C values from va_list])
626
AX_FEATURE_ARG_N(strict-r5rs, [strict R5RS conformance checks])
627
AX_FEATURE_ARG_N(const-list-literal, [immutable list literals])
628
AX_FEATURE_ARG_Y(const-vector-literal, [immutable vector literals])
629
AX_FEATURE_ARG_N(strict-null-form, [rejecting quote-less ()])
630
AX_FEATURE_ARG_Y(strict-vector-form, [rejecting quote-less vector literal])
631
AX_FEATURE_ARG_Y(strict-argcheck, [strict check for form arguments])
632
AX_FEATURE_ARG_Y(strict-toplevel-definitions, [strict check for R5RS top-level definitions])
633
AX_FEATURE_ARG_Y(internal-definitions, [R5RS internal definitions])
636
AX_FEATURE_ARG_Y(continuation, [R5RS continuation])
637
AX_FEATURE_ARG_Y(quasiquote, [R5RS quasiquotation])
638
AX_FEATURE_ARG_N(hygienic-macro, [R5RS hygienic macros (experimental)])
639
AX_FEATURE_ARG_Y(promise, [R5RS promises])
640
AX_FEATURE_VAR_N(number, [R5RS numbers])
641
AX_FEATURE_ARG_Y(int, [R5RS integer numbers])
642
AX_FEATURE_VAR_N(rational, [R5RS rational numbers (not implemented yet)])
643
AX_FEATURE_VAR_N(real, [R5RS real numbers (not implemented yet)])
644
AX_FEATURE_VAR_N(complex, [R5RS complex numbers (not implemented yet)])
645
AX_FEATURE_ARG_Y(numeric-io, [R5RS 'number->string' and 'string->number'])
646
AX_FEATURE_ARG_Y(char, [R5RS characters])
647
AX_FEATURE_ARG_Y(string, [primary procedures of R5RS strings])
648
AX_FEATURE_ARG_Y(string-procedures, [rest procedures of R5RS strings])
649
AX_FEATURE_ARG_Y(deep-cadrs, [all c@<:@ad@:>@+r procedures defined in R5RS])
650
AX_FEATURE_ARG_Y(vector, [R5RS vectors])
651
AX_FEATURE_ARG_Y(port, [R5RS ports])
652
AX_FEATURE_ARG_Y(reader, [R5RS 'read'])
653
AX_FEATURE_ARG_Y(writer, [R5RS 'write' and 'display'])
654
AX_FEATURE_ARG_Y(load, [R5RS 'load'])
657
AX_FEATURE_ARG_Y(srfi0, [SRFI-0 'cond-expand'])
658
AX_FEATURE_ARG_Y(srfi1, [SRFI-1 list library])
659
AX_FEATURE_ARG_Y(srfi2, [SRFI-2 'and-let*'])
660
AX_FEATURE_ARG_Y(srfi6, [SRFI-6 basic string ports])
661
AX_FEATURE_ARG_Y(srfi8, [SRFI-8 'receive'])
662
AX_FEATURE_ARG_Y(srfi9, [SRFI-9 defining record types])
663
AX_FEATURE_ARG_Y(srfi22, [SRFI-22 running scheme scripts on Unix (partial)])
664
AX_FEATURE_ARG_Y(srfi23, [SRFI-23 'error'])
665
AX_FEATURE_ARG_Y(srfi28, [SRFI-28 'format'])
666
AX_FEATURE_ARG_Y(srfi34, [SRFI-34 exception handling for programs])
667
AX_FEATURE_ARG_Y(srfi38, [SRFI-38 'write/ss' ('read/ss' is not provided)])
668
AX_FEATURE_ARG_Y(srfi43, [SRFI-43 vector library])
669
AX_FEATURE_ARG_Y(srfi48, [SRFI-48 'format' (superset of SRFI-28)])
670
AX_FEATURE_ARG_Y(srfi55, [SRFI-55 'require-extension'])
671
AX_FEATURE_ARG_Y(srfi60, [SRFI-60 integers as bits (partial)])
672
AX_FEATURE_ARG_Y(srfi69, [SRFI-69 basic hash tables])
673
AX_FEATURE_ARG_Y(srfi95, [SRFI-95 sorting and merging])
675
# R6RS features (preliminary)
676
AX_FEATURE_ARG_Y(r6rs-named-chars, [named characters of R6RS (preliminary)])
677
AX_FEATURE_ARG_Y(r6rs-chars, [R6RS characters (preliminary)])
679
# Common Scheme features
680
AX_FEATURE_VAR_N(syntax-case, ['syntax-case' (not implemented yet)])
681
AX_FEATURE_VAR_N(unhygienic-macro, [syntactic closure (not implemented yet)])
682
AX_FEATURE_ARG_Y(legacy-macro, ['define-macro' syntactic closure])
684
# SigScheme-specific features
685
AX_FEATURE_ARG_Y(sscm-extensions, [SigScheme-specific extensions])
686
AX_FEATURE_ARG_Y(sscm-format-extension, [SigScheme-specific 'format+'])
687
AX_FEATURE_ARG_N(compat-siod, [some SIOD compatible features])
688
AX_FEATURE_ARG_N(compat-siod-bugs, [emulating the buggy behaviors of SIOD])
689
AX_FEATURE_ARG_Y(eval-c-string, [eval_c_string() of libsscm])
690
AX_FEATURE_ARG_N(backtrace, [showing backtrace on error])
691
AX_FEATURE_ARG_Y(libsscm, [building libsscm])
692
AX_FEATURE_ARG_Y(shell, [the 'sscm' interactive shell])
694
# Developer-only debugging features
695
AX_FEATURE_ARG_N(debug, [debug mode])
696
AX_FEATURE_ARG_N(debug-port, [port debugging])
697
AX_FEATURE_ARG_N(debug-parser, [parser debugging])
698
AX_FEATURE_ARG_N(debug-macro, [macro and pattern matching debugging])
699
AX_FEATURE_ARG_N(debug-encoding, [encoding-related functions debugging])
700
AX_FEATURE_ARG_N(debug-backtrace-sep, [frame-separator on backtrace])
701
AX_FEATURE_ARG_N(debug-backtrace-val, [values printing on backtrace])
702
AX_FEATURE_ARG_N(soft-assert, [recovery from failed SCM_ASSERT()])
703
AX_FEATURE_ARG_N(accessor-assert, [type assertion on Scheme object accessors])
704
AX_FEATURE_ARG_Y(warning-suppressor, [suppressing compiler warnings])
707
# Resolve dependency of the features
710
# Resolve required dependencies
711
AX_FEATURE_RESOLVE_DEPENDENCIES([required], [
712
sigscheme: raw_c_format
713
backtrace: continuation port writer
715
debug_backtrace_val: debug backtrace raw_c_format
717
format: writer port string
719
srfi48: format srfi28
720
sscm_format_extension: format srfi48
724
syntax_case: unhygienic_macro
725
string_procedures: string_procedure
726
string_procedure: string char
728
writer: port raw_c_format
729
load: port reader string
730
sscm_extensions: load
731
eval_c_string: reader srfi6
732
srfi0: load srfi55 legacy_macro srfi1 srfi23
733
srfi1: continuation deep_cadrs load sscm_extensions srfi8 srfi23
735
srfi9: load vector srfi23
736
srfi34: continuation srfi23
738
srfi43: load vector srfi8 srfi23 sscm_extensions
739
srfi55: load sscm_extensions
741
srfi69: load int string vector srfi9 srfi23
743
r6rs_named_chars: char
744
r6rs_chars: char utf8 reader r6rs_named_chars
746
compat_siod: sscm_extensions srfi60 eval_c_string
747
compat_siod_bugs: compat_siod
748
strict_r5rs: strict_null_form strict_vector_form strict_argcheck internal_definitions strict_toplevel_definitions const_vector_literal
754
numeric_io: number_io
755
number_io: number string
757
fixnum_long: long_fixnum
758
fixnum_int: int_fixnum
759
fixnum_int32_t: 32bit_fixnum
760
fixnum_int64_t: 64bit_fixnum
761
scmref_intptr_t: intptr_scmref
762
scmref_int32_t: 32bit_scmref
763
scmref_int64_t: 64bit_scmref
765
multibyte: multibyte_char
767
eucjp: multibyte_char
768
euckr: multibyte_char
769
euccn: multibyte_char
771
default_encoding_utf8: utf8 utf8_as_default
772
default_encoding_singlebyte: singlebyte_as_default
773
default_encoding_euccn: euccn euccn_as_default
774
default_encoding_eucjp: eucjp eucjp_as_default
775
default_encoding_euckr: euckr euckr_as_default
776
default_encoding_sjis: sjis sjis_as_default
781
# Resolve recommended dependencies (not required)
782
AX_FEATURE_RESOLVE_DEPENDENCIES([recommended], [
783
conf_dev: warning_suppressor
784
storage_fatty: valuecons const_list_literal const_vector_literal
785
debug: accessor_assert strict_argcheck strict_encoding_check
790
# Resolve weak dependencies required if and only if available
791
dnl AX_FEATURE_RESOLVE_WEAK_DEPENDENCIES([
792
dnl strict_r5rs: const_list_literal
795
# Check conflicts between the features
796
AX_FEATURE_DETECT_CONFLICTS([
797
storage_fatty storage_compact
798
storage_compact valuecons
799
storage_compact const_list_literal
800
debug_no null_capable_string
801
strict_r5rs compat_siod_bugs
802
strict_r5rs strict_vector_form_no
803
strict_r5rs strict_null_form_no
804
strict_r5rs strict_toplevel_definitions_no
805
strict_r5rs internal_definitions_no
806
compat_siod_bugs strict_null_form
807
long_fixnum int_fixnum 32bit_fixnum 64bit_fixnum
808
intptr_scmref 32bit_scmref 64bit_scmref
809
singlebyte_as_default utf8_as_default eucjp_as_default euckr_as_default euccn_as_default sjis_as_default
814
# Define configured results
817
# Storage configuration
818
AX_FEATURE_DEFINE(storage_compact)
819
AX_FEATURE_DEFINE(storage_fatty)
820
AX_FEATURE_DEFINE(long_fixnum)
821
AX_FEATURE_DEFINE(int_fixnum)
822
AX_FEATURE_DEFINE(32bit_fixnum)
823
AX_FEATURE_DEFINE(64bit_fixnum)
824
AX_FEATURE_DEFINE(intptr_scmref)
825
AX_FEATURE_DEFINE(32bit_scmref)
826
AX_FEATURE_DEFINE(64bit_scmref)
827
AX_FEATURE_DEFINE(valuecons)
828
AX_FEATURE_DEFINE(dump)
830
# String configuration
831
#AX_FEATURE_DEFINE(const_width_string)
832
AX_FEATURE_DEFINE(null_capable_string)
834
# Character encodings
835
AX_FEATURE_DEFINE(multibyte_char)
836
AX_FEATURE_DEFINE(utf8)
837
AX_FEATURE_DEFINE(euccn)
838
AX_FEATURE_DEFINE(eucjp)
839
AX_FEATURE_DEFINE(euckr)
840
AX_FEATURE_DEFINE(sjis)
841
AX_FEATURE_DEFINE(utf8_as_default)
842
AX_FEATURE_DEFINE(singlebyte_as_default)
843
AX_FEATURE_DEFINE(euccn_as_default)
844
AX_FEATURE_DEFINE(eucjp_as_default)
845
AX_FEATURE_DEFINE(euckr_as_default)
846
AX_FEATURE_DEFINE(sjis_as_default)
847
AX_FEATURE_DEFINE(strict_encoding_check, SCM_STRICT_ENCODING_CHECK, STRICT_ENCODING_CHECK)
849
# Other internal SigScheme features
850
AX_FEATURE_DEFINE(format)
851
AX_FEATURE_DEFINE(raw_c_format)
854
AX_FEATURE_DEFINE(strict_r5rs, SCM_STRICT_R5RS, STRICT_R5RS)
855
AX_FEATURE_DEFINE(const_list_literal, SCM_CONST_LIST_LITERAL, CONST_LIST_LITERAL)
856
AX_FEATURE_DEFINE(const_vector_literal, SCM_CONST_VECTOR_LITERAL, CONST_VECTOR_LITERAL)
857
AX_FEATURE_DEFINE(strict_null_form, SCM_STRICT_NULL_FORM, STRICT_NULL_FORM)
858
AX_FEATURE_DEFINE(strict_vector_form, SCM_STRICT_VECTOR_FORM, STRICT_VECTOR_FORM)
859
AX_FEATURE_DEFINE(strict_argcheck, SCM_STRICT_ARGCHECK, STRICT_ARGCHECK)
860
AX_FEATURE_DEFINE(strict_toplevel_definitions, SCM_STRICT_TOPLEVEL_DEFINITIONS, STRICT_TOPLEVEL_DEFINITIONS)
861
AX_FEATURE_DEFINE(internal_definitions)
864
AX_FEATURE_DEFINE(continuation)
865
AX_FEATURE_DEFINE(quasiquote)
866
AX_FEATURE_DEFINE(hygienic_macro)
867
AX_FEATURE_DEFINE(promise)
868
AX_FEATURE_DEFINE(number)
869
AX_FEATURE_DEFINE(int)
870
AX_FEATURE_DEFINE(rational)
871
AX_FEATURE_DEFINE(real)
872
AX_FEATURE_DEFINE(complex)
873
AX_FEATURE_DEFINE(number_io)
874
AX_FEATURE_DEFINE(char)
875
AX_FEATURE_DEFINE(string)
876
AX_FEATURE_DEFINE(string_procedure)
877
AX_FEATURE_DEFINE(deep_cadrs)
878
AX_FEATURE_DEFINE(vector)
879
AX_FEATURE_DEFINE(port)
880
AX_FEATURE_DEFINE(reader)
881
AX_FEATURE_DEFINE(writer)
882
AX_FEATURE_DEFINE(load)
885
AX_FEATURE_DEFINE(srfi0)
886
AX_FEATURE_DEFINE(srfi1)
887
AX_FEATURE_DEFINE(srfi2)
888
AX_FEATURE_DEFINE(srfi6)
889
AX_FEATURE_DEFINE(srfi8)
890
AX_FEATURE_DEFINE(srfi9)
891
AX_FEATURE_DEFINE(srfi22)
892
AX_FEATURE_DEFINE(srfi23)
893
AX_FEATURE_DEFINE(srfi28)
894
AX_FEATURE_DEFINE(srfi34)
895
AX_FEATURE_DEFINE(srfi38)
896
AX_FEATURE_DEFINE(srfi43)
897
AX_FEATURE_DEFINE(srfi48)
898
AX_FEATURE_DEFINE(srfi55)
899
AX_FEATURE_DEFINE(srfi60)
900
AX_FEATURE_DEFINE(srfi69)
901
AX_FEATURE_DEFINE(srfi95)
903
# R6RS features (preliminary)
904
AX_FEATURE_DEFINE(r6rs_named_chars)
905
AX_FEATURE_DEFINE(r6rs_chars)
907
# Common Scheme features
908
AX_FEATURE_DEFINE(syntax_case)
909
AX_FEATURE_DEFINE(unhygienic_macro)
910
AX_FEATURE_DEFINE(legacy_macro)
912
# SigScheme-specific features
913
AX_FEATURE_DEFINE(sscm_extensions)
914
AX_FEATURE_DEFINE(sscm_format_extension)
915
AX_FEATURE_DEFINE(compat_siod, SCM_COMPAT_SIOD, COMPAT_SIOD)
916
AX_FEATURE_DEFINE(compat_siod_bugs, SCM_COMPAT_SIOD_BUGS, COMPAT_SIOD_BUGS)
917
AX_FEATURE_DEFINE(eval_c_string)
918
AX_FEATURE_DEFINE(backtrace)
919
AX_FEATURE_DEFINE(libsscm)
920
AX_FEATURE_DEFINE(shell)
922
# Developer-only debugging features
923
AX_FEATURE_DEFINE(debug, SCM_DEBUG, DEBUG)
924
AX_FEATURE_DEFINE(debug_port, SCM_DEBUG_PORT, DEBUG_PORT)
925
AX_FEATURE_DEFINE(debug_parser, SCM_DEBUG_PARSER, DEBUG_PARSER)
926
AX_FEATURE_DEFINE(debug_macro, SCM_DEBUG_MACRO, DEBUG_MACRO)
927
AX_FEATURE_DEFINE(debug_encoding, SCM_DEBUG_ENCODING, DEBUG_ENCODING)
928
AX_FEATURE_DEFINE(debug_backtrace_sep, SCM_DEBUG_BACKTRACE_SEP, DEBUG_BACKTRACE_SEP)
929
AX_FEATURE_DEFINE(debug_backtrace_val, SCM_DEBUG_BACKTRACE_VAL, DEBUG_BACKTRACE_VAL)
930
AX_FEATURE_DEFINE(soft_assert, SCM_SOFT_ASSERT, SOFT_ASSERT)
931
AX_FEATURE_DEFINE(accessor_assert, SCM_ACCESSOR_ASSERT, ACCESSOR_ASSERT)
932
AX_FEATURE_DEFINE(warning_suppressor)
934
AC_SUBST(use_storage)
936
AC_SUBST(use_multibyte_char)
937
AC_SUBST(use_default_encoding)
943
AC_SUBST(use_strict_r5rs)
944
AC_SUBST(use_const_list_literal)
945
AC_SUBST(use_const_vector_literal)
946
AC_SUBST(use_strict_null_form)
947
AC_SUBST(use_strict_vector_form)
948
AC_SUBST(use_strict_argcheck)
949
AC_SUBST(use_strict_toplevel_definitions)
950
AC_SUBST(use_internal_definitions)
951
AC_SUBST(use_continuation)
952
AC_SUBST(use_quasiquote)
953
AC_SUBST(use_hygienic_macro)
954
AC_SUBST(use_promise)
956
AC_SUBST(use_number_io)
959
AC_SUBST(use_string_procedure)
960
AC_SUBST(use_deep_cadrs)
983
AC_SUBST(use_r6rs_chars)
984
AC_SUBST(use_r6rs_named_chars)
985
AC_SUBST(use_legacy_macro)
986
AC_SUBST(use_sscm_extensions)
987
AC_SUBST(use_sscm_format_extension)
988
AC_SUBST(use_compat_siod)
989
AC_SUBST(use_compat_siod_bugs)
990
AC_SUBST(use_eval_c_string)
991
AC_SUBST(use_backtrace)
999
# Hardwired configurations
1002
AC_DEFINE(SCM_ENCODING_USE_WITH_SIGSCHEME, 1,
1003
[Define to 1 to adapt encoding.c to SigScheme.])
1004
AC_DEFINE(SCM_SCMPORT_USE_WITH_SIGSCHEME, 1,
1005
[Define to 1 to adapt scmport*.[hc] to SigScheme.])
1011
# Debugging-related flags
1012
if test "x$use_debug" = xyes; then
1013
if test "x$ac_cv_prog_cc_g" = xyes; then
1017
# Restricting the C dialect tends to cause system library disfunction such as
1018
# on glibc and Darwin libc. So this option is only specified at debugging
1021
# -std=gnu89 is required only for (old?) glibc. -std=c89 is sufficient for
1022
# other environments.
1023
AC_LANG_WERROR # Turn warning-only unknown options into error.
1024
if test "x$ax_cv_lib_glibc" = xyes; then
1025
AX_CFLAGS_GCC_OPTION([-std=gnu89])
1027
AX_CFLAGS_GCC_OPTION([-std=c89])
1029
AX_LANG_WNOERROR # end AC_LANG_WERROR
1031
CFLAGS="$CFLAGS -DNDEBUG"
1035
# System directories
1037
scmlibdir='${pkgdatadir}/lib'
1039
SSCM_DEFS='-DPKGDATADIR="\"$(pkgdatadir)\"" -DSCMLIBDIR="\"$(scmlibdir)\""'
1042
###############################
1043
# Output configuration result #
1044
###############################
1046
# This include guard is required to prevent being overridden by
1047
# system-installed config.h on a source that is compiled on
1048
# !SCM_COMPILING_LIBSSCM such as test-c/test-*.c.
1049
AH_TOP([#ifndef __SIGSCHEME_CONFIG_H
1050
#define __SIGSCHEME_CONFIG_H])
1052
# FIXME: temporary solution
1054
/* FIXME: temporary solution */
1055
#include "config-old.h"
1057
#endif /* __SIGSCHEME_CONFIG_H */])
1059
AC_CONFIG_FILES([sigscheme.pc
1067
include/sigscheme/Makefile
1071
test/run-singletest.sh
1079
SigScheme has been configured as follows:
1081
base config: $use_conf
1083
[Storage configuration]
1084
Storage impl: $use_storage
1085
Fixnum size: $use_fixnum
1086
getcontext: $ax_cv_func_getcontext
1087
libgcroots: $use_libgcroots
1089
[Multibyte character handlings]
1090
Multibyte chars: ${use_multibyte_char:-no}
1091
Default encoding: $use_default_encoding
1092
UTF-8 codec: $use_utf8
1093
EUC-CN codec: $use_euccn
1094
EUC-JP codec: $use_eucjp
1095
EUC-KR codec: $use_euckr
1096
Shift_JIS codec: $use_sjis
1099
Strict R5RS: $use_strict_r5rs
1100
Const list literal: $use_const_list_literal
1101
Const vector literal: $use_const_vector_literal
1102
Strict null form: $use_strict_null_form
1103
Strict vector form: $use_strict_vector_form
1104
Strict argcheck: $use_strict_argcheck
1105
Strict top-level defs: $use_strict_toplevel_definitions
1106
Internal definitions: $use_internal_definitions
1109
Continuation: $use_continuation
1110
Quasiquote: $use_quasiquote
1111
Hygienic macros: $use_hygienic_macro
1112
Promise: $use_promise
1114
Numeric I/O: ${use_number_io:-no}
1115
Charcters: $use_char
1116
Strings: $use_string
1117
String procedures: ${use_string_procedure:-no}
1118
Deep c[ad]+r procs: $use_deep_cadrs
1119
Vectors: $use_vector
1132
SRFI-22: $use_srfi22
1133
SRFI-23: $use_srfi23
1134
SRFI-28: $use_srfi28
1135
SRFI-34: $use_srfi34
1136
SRFI-38: $use_srfi38
1137
SRFI-43: $use_srfi43
1138
SRFI-48: $use_srfi48
1139
SRFI-55: $use_srfi55
1140
SRFI-60: $use_srfi60
1141
SRFI-69: $use_srfi69
1142
SRFI-95: $use_srfi95
1144
[R6RS features (preliminary)]
1145
R6RS characters: $use_r6rs_chars
1146
R6RS named chars: $use_r6rs_named_chars
1148
[SigScheme-specific extensions]
1149
define-macro: $use_legacy_macro
1150
SigScheme extensions: $use_sscm_extensions
1151
format+ procedure: $use_sscm_format_extension
1152
SIOD compatibilities: $use_compat_siod
1153
SIOD bugs emulation: $use_compat_siod_bugs
1154
eval_c_string(): $use_eval_c_string
1155
Backtrace: $use_backtrace
1156
Library: $use_libsscm
1157
Interactive shell: $use_shell
1159
[Developer-only debugging features]
1160
Debug: $use_debug]])
1162
if test "x$use_debug" = xyes; then
1164
[[Debug port: $use_debug
1165
Debug parser: $use_debug
1166
Debug macro: $use_debug
1167
Debug encoding: $use_debug
1168
Soft assert: $use_soft_assert
1169
Accessor assert: $use_accessor_assert
1170
Warning suppressor: $use_warning_suppressor]])
1174
[Build information (provide this on bug reports)]
1175
Package: $PACKAGE_STRING
1176
build (compile on): $ac_cv_build
1177
host (compile for): $ac_cv_host
1178
host data model: $ac_cv_data_model
1179
host align (C/S/I/L/P): ${ac_cv_alignof_char}/${ac_cv_alignof_short}/${ac_cv_alignof_int}/${ac_cv_alignof_long}/${ac_cv_alignof_void_p}
1180
host endian: $ax_c_endian
1181
host char unsigned: $ac_cv_c_char_unsigned
1182
host arithmetic rshift: $ax_cv_c_arithmetic_rshift
1183
host safe va_list ref: $ax_cv_c_referenceable_passed_va_list
1185
Compiler version: $ax_prog_cc_version