dnl
-dnl Copyright 2000, 2001, 2002, 2012-2019 Free Software Foundation, Inc.
+dnl Copyright 2000, 2001, 2002, 2012-2023 Free Software Foundation, Inc.
dnl
dnl This file is part of GNU lightning.
dnl
dnl License for more details.
dnl
-AC_PREREQ(2.64)
-AC_INIT([GNU lightning], 2.1.3, pcpa@gnu.org, lightning)
+AC_PREREQ([2.71])
+AC_INIT([GNU lightning],[2.2.2],[pcpa@gnu.org],[lightning])
AC_CONFIG_AUX_DIR([build-aux])
AC_CANONICAL_TARGET
AC_CONFIG_SRCDIR([Makefile.am])
fi ;;
*) ;;
esac ;;
+ aarch64)
+ case "$host_os" in
+ darwin*)
+ LIGHTNING_CFLAGS="$LIGHTNING_CFLAGS -DPACKED_STACK=1" ;;
+ *) ;;
+ esac ;;
*) ;;
esac
-AC_CHECK_FUNCS(mremap ffsl getopt_long_only isnan isinf,,)
+AC_CHECK_FUNCS(mmap mremap ffsl getopt_long_only isnan isinf,,)
AC_CHECK_HEADERS([getopt.h stdint.h],,,)
[Enable jit disassembler using binutils]),
[DISASSEMBLER=$enableval], [DISASSEMBLER=auto])
if test "x$DISASSEMBLER" != "xno"; then
- # FIXME need to check for libiberty first or will fail to link
+
AC_CHECK_LIB(iberty, htab_try_create, ,
[HAVE_IBERTY="no"])
AC_CHECK_LIB(bfd, bfd_init, ,
[HAVE_Z="no"])
AC_CHECK_LIB(opcodes, init_disassemble_info, ,
[HAVE_OPCODES="no"])
- if test "x$HAVE_IBERTY" = "xno" -o \
- "x$HAVE_BFD" = "xno" -o \
- "x$HAVE_Z" = "xno" -o \
- "x$HAVE_OPCODES" = "xno"; then
- if test "x$DISASSEMBLER" != "xauto"; then
- AC_MSG_ERROR([binutils not found, see http://www.gnu.org/software/binutils/])
- else
- AC_MSG_WARN([binutils not found, see http://www.gnu.org/software/binutils/])
- DISASSEMBLER="no"
- fi
+
+ if test "x$HAVE_IBERTY" = "xno"; then
+ if test "x$DISASSEMBLER" = "xyes"; then
+ AC_MSG_ERROR([libiberty not found])
+ else
+ AC_MSG_WARN([libiberty not found])
+ DISASSEMBLER="no"
+ fi
+ fi
+
+ if test "x$HAVE_BFD" = "xno"; then
+ if test "x$DISASSEMBLER" = "xyes"; then
+ AC_MSG_ERROR([binutils BFD not found, see http://www.gnu.org/software/binutils/])
+ else
+ AC_MSG_WARN([binutils BFD not found, see http://www.gnu.org/software/binutils/])
+ DISASSEMBLER="no"
+ fi
+ fi
+
+ if test "x$HAVE_Z" = "xno"; then
+ if test "x$DISASSEMBLER" = "xyes"; then
+ AC_MSG_ERROR([zlib not found, see https://zlib.net/])
+ else
+ AC_MSG_WARN([zlib not found, see https://zlib.net/])
+ DISASSEMBLER="no"
+ fi
fi
+
+ if test "x$HAVE_OPCODES" = "xno"; then
+ if test "x$DISASSEMBLER" = "xyes"; then
+ AC_MSG_ERROR([binutils opcodes not found, see https://www.gnu.org/software/binutils/])
+ else
+ AC_MSG_WARN([binutils opcodes not found, see https://www.gnu.org/software/binutils/])
+ DISASSEMBLER="no"
+ fi
+ fi
+
fi
AM_CONDITIONAL(with_disassembler, [test "x$DISASSEMBLER" != "xno"])
if test "x$DISASSEMBLER" != "xno"; then
LIGHTNING_CFLAGS="$LIGHTNING_CFLAGS -DDISASSEMBLER=1"
save_CFLAGS=$CFLAGS
- CFLAGS="$CFLAGS -I$PWD/include -D_GNU_SOURCE"
+ CFLAGS="$CFLAGS -D_GNU_SOURCE"
AC_COMPILE_IFELSE([AC_LANG_SOURCE(
- #include <lightning.h>
- #include <lightning/jit_private.h>
#include <dis-asm.h>
int main(int argc, char *argv[])
{
return 0;
}
)], [ac_cv_test_new_disassembler=no],,)
+ AC_COMPILE_IFELSE([AC_LANG_SOURCE(
+ #include <dis-asm.h>
+ int main(int argc, char *argv[])
+ {
+ struct disassemble_info dinfo;
+ INIT_DISASSEMBLE_INFO(dinfo, NULL, NULL, NULL);
+ return 0;
+ }
+ )], [ac_cv_test_new_disassemble_info=yes],[ac_cv_test_new_disassemble_info=no],)
CFLAGS="$save_CFLAGS"
if test "x$ac_cv_test_new_disassembler" != "xno"; then
LIGHTNING_CFLAGS="$LIGHTNING_CFLAGS -DBINUTILS_2_29=1"
fi
+ if test "x$ac_cv_test_new_disassemble_info" != "xno"; then
+ LIGHTNING_CFLAGS="$LIGHTNING_CFLAGS -DBINUTILS_2_38=1"
+ fi
fi
AC_ARG_ENABLE(devel-disassembler,
LIGHTNING_CFLAGS="$LIGHTNING_CFLAGS -DDEVEL_DISASSEMBLER=1"
fi
+# This option is only useful during development.
+AC_ARG_ENABLE(devel-get-jit-size,
+ AS_HELP_STRING([--enable-devel-get-jit-size],
+ [Devel mode to regenerate jit size information]),
+ [GET_JIT_SIZE=$enableval], [GET_JIT_SIZE=no])
+AM_CONDITIONAL(get_jit_size, [test $GET_JIT_SIZE = yes])
+
AC_ARG_ENABLE(assertions,
AS_HELP_STRING([--enable-assertions],
[Enable runtime code generation assertions]),
[DEBUG=$enableval], [DEBUG=auto])
-if test "x$DEBUG" = xyes; then
+
+# This option might be made default in the future
+# Currently it is only useful to ensure existing code will work
+# if PACKED_STACK is also defined.
+AC_ARG_ENABLE(devel-strong-type-checking,
+ AS_HELP_STRING([--enable-devel-strong-type-checking],
+ [Devel mode for strong type checking]),
+ [STRONG_TYPE_CHECKING=$enableval], [STRONG_TYPE_CHECKING=no])
+if test "x$DEBUG" = xyes -o x"$STRONG_TYPE_CHECKING" = xyes; then
LIGHTNING_CFLAGS="$LIGHTNING_CFLAGS -DDEBUG=1"
else
LIGHTNING_CFLAGS="$LIGHTNING_CFLAGS -DNDEBUG"
DEBUG=no
fi
+AM_CONDITIONAL(strong_type_checking, [test $STRONG_TYPE_CHECKING = yes])
-# This option is only useful during development.
-AC_ARG_ENABLE(devel-get-jit-size,
- AS_HELP_STRING([--enable-devel-get-jit-size],
- [Devel mode to regenerate jit size information]),
- [GET_JIT_SIZE=$enableval], [GET_JIT_SIZE=no])
-AM_CONDITIONAL(get_jit_size, [test $GET_JIT_SIZE = yes])
+AC_CHECK_LIB(dl, dlopen, [HAVE_LIBDL="yes"])
+AC_CHECK_LIB(dld, dlopen, [HAVE_LIBDLD="yes"])
-case "$host_os" in
- *bsd*|osf*) SHLIB="" ;;
- *hpux*) SHLIB="-ldld" ;;
- *) SHLIB="-ldl" ;;
-esac
+if test "x$HAVE_LIBDL" = xyes; then
+ SHLIB="-ldl";
+elif test "x$HAVE_LIBDLD" = xyes; then
+ SHLIB="-ldld";
+else
+ SHLIB="";
+fi
AC_SUBST(SHLIB)
cpu=
s390*) cpu=s390 ;;
alpha*) cpu=alpha ;;
riscv*) cpu=riscv ;;
+ loongarch*) cpu=loongarch ;;
*) ;;
esac
-AM_CONDITIONAL(cpu_arm, [test cpu-$cpu = cpu-arm])
-AM_CONDITIONAL(cpu_mips, [test cpu-$cpu = cpu-mips])
-AM_CONDITIONAL(cpu_ppc, [test cpu-$cpu = cpu-ppc])
-AM_CONDITIONAL(cpu_sparc, [test cpu-$cpu = cpu-sparc])
-AM_CONDITIONAL(cpu_x86, [test cpu-$cpu = cpu-x86])
-AM_CONDITIONAL(cpu_ia64, [test cpu-$cpu = cpu-ia64])
-AM_CONDITIONAL(cpu_hppa, [test cpu-$cpu = cpu-hppa])
-AM_CONDITIONAL(cpu_aarch64, [test cpu-$cpu = cpu-aarch64])
-AM_CONDITIONAL(cpu_s390, [test cpu-$cpu = cpu-s390])
-AM_CONDITIONAL(cpu_alpha, [test cpu-$cpu = cpu-alpha])
-AM_CONDITIONAL(cpu_riscv, [test cpu-$cpu = cpu-riscv])
+AM_CONDITIONAL(cpu_arm, [test cpu-$cpu = cpu-arm])
+AM_CONDITIONAL(cpu_mips, [test cpu-$cpu = cpu-mips])
+AM_CONDITIONAL(cpu_ppc, [test cpu-$cpu = cpu-ppc])
+AM_CONDITIONAL(cpu_sparc, [test cpu-$cpu = cpu-sparc])
+AM_CONDITIONAL(cpu_x86, [test cpu-$cpu = cpu-x86])
+AM_CONDITIONAL(cpu_ia64, [test cpu-$cpu = cpu-ia64])
+AM_CONDITIONAL(cpu_hppa, [test cpu-$cpu = cpu-hppa])
+AM_CONDITIONAL(cpu_aarch64, [test cpu-$cpu = cpu-aarch64])
+AM_CONDITIONAL(cpu_s390, [test cpu-$cpu = cpu-s390])
+AM_CONDITIONAL(cpu_alpha, [test cpu-$cpu = cpu-alpha])
+AM_CONDITIONAL(cpu_riscv, [test cpu-$cpu = cpu-riscv])
+AM_CONDITIONAL(cpu_loongarch, [test cpu-$cpu = cpu-loongarch])
# Test x87 if both, x87 and sse2 available
ac_cv_test_x86_x87=
ac_cv_test_arm_swf=
save_CFLAGS=$CFLAGS
-CFLAGS="$CFLAGS -I$PWD/include -D_GNU_SOURCE"
+CFLAGS="$CFLAGS -D_GNU_SOURCE"
if test x$cpu = x; then
AC_MSG_ERROR([cpu $target_cpu not supported])
elif test $cpu = x86; then
AC_RUN_IFELSE([AC_LANG_SOURCE([[
- #include <lightning.h>
int main(void) {
int ac, flags;
unsigned int eax, ebx, ecx, edx;
- if (__WORDSIZE == 64)
+ if (sizeof(long) == 8)
return 1;
__asm__ volatile ("pushfl;\n\t"
"popl %0;\n\t"
AC_SUBST(MAYBE_INCLUDE_STDINT_H, ["#include <stdint.h>"])
fi
-AC_OUTPUT([Makefile
+AC_CONFIG_FILES([Makefile
lightning.pc
gnulib-lib/Makefile
doc/Makefile
include/lightning.h
lib/Makefile
check/Makefile])
+AC_OUTPUT