--- nono/configure.ac 2026/04/29 17:05:04 1.1.1.9 +++ nono/configure.ac 2026/04/29 17:05:11 1.1.1.11 @@ -4,8 +4,8 @@ # Licensed under nono-license.txt # -AC_PREREQ([2.69]) -AC_INIT([nono], [0.0], []) +AC_PREREQ([2.71]) +AC_INIT([nono],[0.0],[]) AC_CONFIG_SRCDIR(wx/wxapp.cpp) AC_CONFIG_AUX_DIR([scripts]) @@ -13,7 +13,6 @@ AC_CONFIG_AUX_DIR([scripts]) AC_PROG_CXX AC_PROG_CC AC_PROG_INSTALL -AC_C_BIGENDIAN # OS AC_CANONICAL_HOST @@ -55,6 +54,7 @@ AC_DEFUN([ADD_CC_WARN_IF],[ CFLAGS="${CFLAGS} -Werror $1" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])], AC_MSG_RESULT([yes]) + eval `echo cc_has$1=yes | sed -e 's/-/_/g'` WARNFLAGS_C="${WARNFLAGS_C} $1", AC_MSG_RESULT([no])) CFLAGS="${old_CFLAGS}" @@ -64,18 +64,24 @@ ADD_CC_WARN_IF(-Wextra-semi) ADD_CC_WARN_IF(-Wlogical-op) ADD_CC_WARN_IF(-Wmissing-prototypes) ADD_CC_WARN_IF(-Wmissing-variable-declarations) +# -Wshadow-local があればそっちを使う(gcc>=7)、なければ -Wshadow (clang) +ADD_CC_WARN_IF(-Wshadow-local) +if test x"${cc_has_Wshadow_local}" != xyes; then + ADD_CC_WARN_IF(-Wshadow) +fi AC_LANG_POP([C]) AC_SUBST([WARNFLAGS_C]) # C++ コンパイラのワーニングオプション # (AC_LANG は C++ のまま継続する) -AC_LANG_CPLUSPLUS +AC_LANG([C++]) AC_DEFUN([ADD_CXX_WARN_IF],[ AC_MSG_CHECKING([whether c++ accepts $1]) old_CXXFLAGS="${CXXFLAGS}" CXXFLAGS="${CXXFLAGS} -Werror $1" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])], AC_MSG_RESULT([yes]) + eval `echo cxx_has$1=yes | sed -e 's/-/_/g'` WARNFLAGS_CXX="${WARNFLAGS_CXX} $1", AC_MSG_RESULT([no])) CXXFLAGS="${old_CXXFLAGS}" @@ -87,6 +93,11 @@ ADD_CXX_WARN_IF(-Winconsistent-missing-d ADD_CXX_WARN_IF(-Wlogical-op) ADD_CXX_WARN_IF(-Wmissing-prototypes) ADD_CXX_WARN_IF(-Wmissing-variable-declarations) +# -Wshadow-local があればそっちを使う(gcc>=7)、なければ -Wshadow (clang) +ADD_CXX_WARN_IF(-Wshadow-local) +if test x"${cxx_has_Wshadow_local}" != xyes; then + ADD_CXX_WARN_IF(-Wshadow) +fi ADD_CXX_WARN_IF(-Wvla-extension) AC_SUBST([WARNFLAGS_CXX]) @@ -94,6 +105,8 @@ AC_SUBST([WARNFLAGS_CXX]) # Checks for header files. AC_CHECK_HEADERS([bsd/bsd.h]) +AC_CHECK_HEADERS([bsd/stdio.h]) +AC_CHECK_HEADERS([byteswap.h]) AC_CHECK_HEADERS([endian.h]) AC_CHECK_HEADERS([histedit.h]) AC_CHECK_HEADERS([kqueue/sys/event.h]) @@ -103,6 +116,8 @@ AC_CHECK_HEADERS([sys/event.h]) AC_CHECK_HEADERS([net/bpf.h]) AC_CHECK_HEADERS([net/if_tap.h]) AC_CHECK_HEADERS([linux/if_tun.h]) +AC_CHECK_HEADERS([libkern/OSByteOrder.h]) +AC_CHECK_HEADERS([machine/endian.h]) # Linux で がなければここで停止したほうがいい case "${host_os}" in @@ -128,64 +143,74 @@ AC_CHECK_HEADER_STDBOOL #AC_TYPE_UINT8_T AC_MSG_CHECKING(for __builtin_assume) -AC_TRY_COMPILE(, - [ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], + [[ __builtin_assume(1); - ], - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE___BUILTIN_ASSUME]), - AC_MSG_RESULT([no])) + ]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE___BUILTIN_ASSUME) + ], [ + AC_MSG_RESULT(no) + ]) AC_MSG_CHECKING(for __builtin_bswap16) -AC_TRY_COMPILE(, - [ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], + [[ return __builtin_bswap16(0); - ], - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE___BUILTIN_BSWAP16]), - AC_MSG_RESULT([no])) + ]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE___BUILTIN_BSWAP16) + ], [ + AC_MSG_RESULT(no) + ]) AC_MSG_CHECKING(for __builtin_bswap32) -AC_TRY_COMPILE(, - [ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], + [[ return __builtin_bswap32(0); - ], - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE___BUILTIN_BSWAP32]), - AC_MSG_RESULT([no])) + ]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE___BUILTIN_BSWAP32) + ], [ + AC_MSG_RESULT(no) + ]) AC_MSG_CHECKING(for __builtin_bswap64) -AC_TRY_COMPILE(, - [ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], + [[ return __builtin_bswap64(0); - ], - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE___BUILTIN_BSWAP64]), - AC_MSG_RESULT([no])) + ]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE___BUILTIN_BSWAP64) + ], [ + AC_MSG_RESULT(no) + ]) AC_MSG_CHECKING(for __builtin_expect) -AC_TRY_COMPILE(, - [ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ if (__builtin_expect(1, 1)) return 0; - ], - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE___BUILTIN_EXPECT]), - AC_MSG_RESULT([no])) + ]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE___BUILTIN_EXPECT) + ], [ + AC_MSG_RESULT(no) + ]) AC_MSG_CHECKING(for __builtin_unreachable) -AC_TRY_COMPILE(, - [ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[ __builtin_unreachable(); - ], - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE___BUILTIN_UNREACHABLE]), - AC_MSG_RESULT([no])) + ]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE___BUILTIN_UNREACHABLE) + ], [ + AC_MSG_RESULT(no) + ]) AC_MSG_CHECKING(for __attribute__((__fallthrough__))) old_CXXFLAGS="${CXXFLAGS}" CXXFLAGS="${CXXFLAGS} -Wall -Werror" -AC_COMPILE_IFELSE([AC_LANG_PROGRAM( - [], [ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], + [ extern int x; switch (x) { case 0: @@ -193,10 +218,12 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM( case 1: break; } - ])], - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE___ATTRIBUTE_FALLTHROUGH]), - AC_MSG_RESULT([no])) + ])], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE___ATTRIBUTE_FALLTHROUGH]) + ], [ + AC_MSG_RESULT([no]) + ]) CXXFLAGS="${old_CXXFLAGS}" dnl とりあえず __format__ までしか調べてないので、 @@ -208,11 +235,12 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [ extern int f(const char *f, ...) __attribute__((__format__(__printf__, 1, 2))); + ], [])], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE___ATTRIBUTE_FORMAT]) ], [ - ])], - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE___ATTRIBUTE_FORMAT]), - AC_MSG_RESULT([no])) + AC_MSG_RESULT([no]) + ]) CXXFLAGS="${old_CXXFLAGS}" AC_MSG_CHECKING(for __attribute__((no_sanitize))) @@ -222,124 +250,313 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM( [ __attribute__((no_sanitize("undefined"))) int func() { return 0; } + ], [])], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE___ATTRIBUTE_NO_SANITIZE]) ], [ - ])], - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE___ATTRIBUTE_NO_SANITIZE]), - AC_MSG_RESULT([no])) + AC_MSG_RESULT([no]) + ]) CXXFLAGS="${old_CXXFLAGS}" AC_MSG_CHECKING(for __attribute__((__packed__))) old_CXXFLAGS="${CXXFLAGS}" CXXFLAGS="${CXXFLAGS} -Werror" -AC_COMPILE_IFELSE([AC_LANG_PROGRAM( - [], [ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], + [ struct x { char a; int b; } __attribute__((__packed__)); - ])], - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE___ATTRIBUTE_PACKED]), - AC_MSG_RESULT([no])) + ])], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE___ATTRIBUTE_PACKED]) + ], [ + AC_MSG_RESULT([no]) + ]) CXXFLAGS="${old_CXXFLAGS}" AC_MSG_CHECKING(for __attribute__((__unused__))) old_CXXFLAGS="${CXXFLAGS}" CXXFLAGS="${CXXFLAGS} -Wunused-variable -Werror" -AC_COMPILE_IFELSE([AC_LANG_PROGRAM( - [], [ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], + [ int a __attribute__((__unused__)); - ])], - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE___ATTRIBUTE_UNUSED]), - AC_MSG_RESULT([no])) + ])], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE___ATTRIBUTE_UNUSED]) + ], [ + AC_MSG_RESULT([no]) + ]) CXXFLAGS="${old_CXXFLAGS}" # Checks for library functions. #AC_FUNC_MALLOC #AC_FUNC_MMAP -AC_MSG_CHECKING(for pthread_setname_np(name)) -AC_TRY_COMPILE( - [ +AC_MSG_CHECKING(for bswap16) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ + #if defined(HAVE_SYS_ENDIAN_H) + #include + #endif + ], [ + bswap16(0); + ])], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_BSWAP16]) + ], [ + AC_MSG_RESULT([no]) + ]) + +AC_MSG_CHECKING(for bswap32) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ + #if defined(HAVE_SYS_ENDIAN_H) + #include + #endif + ], [ + bswap32(0); + ])], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_BSWAP32]) + ], [ + AC_MSG_RESULT([no]) + ]) + +AC_MSG_CHECKING(for bswap64) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ + #if defined(HAVE_SYS_ENDIAN_H) + #include + #endif + ], [ + bswap64(0); + ])], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_BSWAP64]) + ], [ + AC_MSG_RESULT([no]) + ]) + +AC_MSG_CHECKING(for bswap_16) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ + #if defined(HAVE_BYTESWAP_H) + #include + #endif + ], [ + bswap_16(0); + ])], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_BSWAP_16]) + ], [ + AC_MSG_RESULT([no]) + ]) + +AC_MSG_CHECKING(for bswap_32) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ + #if defined(HAVE_BYTESWAP_H) + #include + #endif + ], [ + bswap_32(0); + ])], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_BSWAP_32]) + ], [ + AC_MSG_RESULT([no]) + ]) + +AC_MSG_CHECKING(for bswap_64) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ + #if defined(HAVE_BYTESWAP_H) + #include + #endif + ], [ + bswap_64(0); + ])], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_BSWAP_64]) + ], [ + AC_MSG_RESULT([no]) + ]) + +AC_MSG_CHECKING(for swap16) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ + #if defined(HAVE_SYS_ENDIAN_H) + #include + #endif + ], [ + swap16(0); + ])], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_SWAP16]) + ], [ + AC_MSG_RESULT([no]) + ]) + +AC_MSG_CHECKING(for swap32) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ + #if defined(HAVE_SYS_ENDIAN_H) + #include + #endif + ], [ + swap32(0); + ])], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_SWAP32]) + ], [ + AC_MSG_RESULT([no]) + ]) + +AC_MSG_CHECKING(for swap64) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ + #if defined(HAVE_SYS_ENDIAN_H) + #include + #endif + ], [ + swap64(0); + ])], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_SWAP64]) + ], [ + AC_MSG_RESULT([no]) + ]) + +AC_MSG_CHECKING(for htobe16) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ + #if defined(HAVE_ENDIAN_H) + #include + #endif + #if defined(HAVE_SYS_ENDIAN_H) + #include + #endif + #if defined(HAVE_MACHINE_ENDIAN_H) + #include + #endif + ], [ + htobe16(0); + ])], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_HTOBE16]) + ], [ + AC_MSG_RESULT([no]) + ]) + +AC_MSG_CHECKING(for pthread_getname_np) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #if defined(HAVE_PTHREAD_NP_H) #include #endif + ]], [[ + char name[32]; + pthread_getname_np(pthread_self(), name, sizeof(name)); + ]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_PTHREAD_GETNAME_NP) ], [ + AC_MSG_RESULT(no) + ]) + +AC_MSG_CHECKING(for pthread_get_name_np) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #include + #if defined(HAVE_PTHREAD_NP_H) + #include + #endif + ]], [[ + char name[32]; + pthread_get_name_np(pthread_self(), name, sizeof(name)); + ]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_PTHREAD_GET_NAME_NP) + ], [ + AC_MSG_RESULT(no) + ]) + +AC_MSG_CHECKING(for pthread_setname_np(name)) +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ + #include + #if defined(HAVE_PTHREAD_NP_H) + #include + #endif + ]], [[ pthread_setname_np(""); - ], - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE_PTHREAD_SETNAME_NP_name]), - AC_MSG_RESULT([no])) + ]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_name) + ], [ + AC_MSG_RESULT(no) + ]) AC_MSG_CHECKING(for pthread_setname_np(thread, name)) -AC_TRY_COMPILE( - [ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #if defined(HAVE_PTHREAD_NP_H) #include #endif - ], [ + ]], [[ pthread_setname_np(pthread_self(), ""); - ], - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE_PTHREAD_SETNAME_NP_th_name]), - AC_MSG_RESULT([no])) + ]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_th_name) + ], [ + AC_MSG_RESULT(no) + ]) AC_MSG_CHECKING(for pthread_setname_np(thread, name, arg)) -AC_TRY_COMPILE( - [ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #if defined(HAVE_PTHREAD_NP_H) #include #endif - ], [ + ]], [[ pthread_setname_np(pthread_self(), "", (void*)0); - ], - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE_PTHREAD_SETNAME_NP_th_name_arg]), - AC_MSG_RESULT([no])) + ]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_th_name_arg) + ], [ + AC_MSG_RESULT(no) + ]) AC_MSG_CHECKING(for pthread_set_name_np(thread, name)) -AC_TRY_COMPILE( - [ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include #if defined(HAVE_PTHREAD_NP_H) #include #endif - ], [ + ]], [[ pthread_set_name_np(pthread_self(), ""); - ], - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE_PTHREAD_SET_NAME_NP_th_name]), - AC_MSG_RESULT([no])) + ]])],[ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_PTHREAD_SET_NAME_NP_th_name) + ], [ + AC_MSG_RESULT(no) + ]) AC_MSG_CHECKING(for iconv const) -AC_TRY_COMPILE( - [ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include - ], [ + ]], [[ const char **a; iconv(0, a, 0, 0, 0); - ], - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE_ICONV_CONST]), - AC_MSG_RESULT([no])) + ]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_ICONV_CONST) + ], [ + AC_MSG_RESULT(no) + ]) # # Network # AC_MSG_CHECKING(for AF_PACKET) -AC_TRY_COMPILE( - [ +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ #include - ], [ + ]], [[ AF_PACKET; - ], - AC_MSG_RESULT([yes]) - AC_DEFINE([HAVE_HOSTNET_AFPACKET]) - AC_SUBST([HOSTNET_AFPACKET], [yes]), - AC_MSG_RESULT([no])) + ]])], [ + AC_MSG_RESULT(yes) + AC_DEFINE(HAVE_HOSTNET_AFPACKET) + AC_SUBST(HOSTNET_AFPACKET, yes) + ], [ + AC_MSG_RESULT(no) + ]) AC_MSG_CHECKING(for tap(4)) case "${host_os}" in @@ -390,9 +607,10 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM( #endif ], [ getprogname() - ])], + ])], [ # nothing to do on success - , [AC_MSG_ERROR([*** getprogname is not found. + ], [ + AC_MSG_ERROR([*** getprogname is not found. *** If you use Ubuntu, sudo apt install libbsd-dev]) ] ) @@ -414,53 +632,63 @@ AC_CHECK_LIB(z, gzclose, ) # wxWidgets -AC_MSG_CHECKING(for wx-config) -wxconfig_paths="${WX_CONFIG} wx-config-3.0 wx-config" -wxconfig="" -for c in ${wxconfig_paths}; do - ver=`$c --version 2>&1 | cut -f 1 -d .` - if test "$ver" = "3"; then - wxconfig=$c - break - fi -done -if test -z "$wxconfig"; then - AC_MSG_ERROR([*** wxWidgets-3.0 not found in ${wxconfig_paths} +AC_ARG_WITH([gui], + [AS_HELP_STRING([--without-gui], [disable GUI support])], + [], + [with_gui=yes]) + +AS_IF([test "x$with_gui" != xno], [ + AC_MSG_CHECKING(for wx-config) + wxconfig_paths="${WX_CONFIG} wx-config-3.0 wx-config" + wxconfig="" + for c in ${wxconfig_paths}; do + ver=`$c --version 2>&1 | cut -f 1 -d .` + if test "$ver" = "3"; then + wxconfig=$c + break + fi + done + if test -z "$wxconfig"; then + AC_MSG_ERROR([*** wxWidgets-3.0 not found in ${wxconfig_paths} *** If you use pkgsrc, install x11/wxGTK30. *** If you use Ubuntu, sudo apt install libwxgtk3.0-gtk3-dev]) -else - AC_MSG_RESULT([$wxconfig]) + else + AC_MSG_RESULT([$wxconfig]) - AC_MSG_CHECKING(for wxWidgets version) - wxversion=`$wxconfig --version` - AC_MSG_RESULT([$wxversion]) - - wxcppflags=`$wxconfig --cppflags` - wxlibs=`$wxconfig --libs` - - case "${host_os}" in - netbsd*) - # rpath。どうしたもんだかこれ - wxlibs=[`echo $wxlibs | sed -e 's/-L\([^ ]*\) /-L\1 -Wl,-R,\1 /'`] - ;; - - darwin*) - # XXX -framework AudioToolbox が指定されているとリンカがこけるorz - wxlibs=[`echo $wxlibs | sed -e 's/-framework AudioToolbox//'`] - ;; - esac - - AC_SUBST([WXWIDGETS_CPPFLAGS], [$wxcppflags]) - AC_SUBST([WXWIDGETS_LIBS], [$wxlibs]) -fi + AC_MSG_CHECKING(for wxWidgets version) + wxversion=`$wxconfig --version` + AC_MSG_RESULT([$wxversion]) + + wxcppflags=`$wxconfig --cppflags` + wxlibs=`$wxconfig --libs` + + case "${host_os}" in + netbsd*) + # rpath。どうしたもんだかこれ + wxlibs=[`echo $wxlibs | sed -e 's/-L\([^ ]*\) /-L\1 -Wl,-R,\1 /'`] + ;; + + darwin*) + # XXX -framework AudioToolbox が指定されているとリンカがこけるorz + wxlibs=[`echo $wxlibs | sed -e 's/-framework AudioToolbox//'`] + ;; + esac + + AC_SUBST([WITH_GUI], [yes]) + AC_SUBST([WXWIDGETS_CPPFLAGS], [$wxcppflags]) + AC_SUBST([WXWIDGETS_LIBS], [$wxlibs]) + fi -# gettext -AC_CHECK_TOOL([MSGFMT], [msgfmt], [:]) -if test $MSGFMT = [:]; then - AC_MSG_ERROR([*** msgfmt not found. + # gettext + AC_CHECK_TOOL([MSGFMT], [msgfmt], [:]) + if test $MSGFMT = [:]; then + AC_MSG_ERROR([*** msgfmt not found. *** If you use pkgsrc, install devel/gettext-tools. *** If you use Ubuntu, sudo apt install gettext]) -fi + fi +], [ + AC_SUBST([WITH_GUI], [no]) +]) AC_CONFIG_FILES([Makefile.cfg host/Makefile