Annotation of nono/configure.ac, revision 1.1.1.15

1.1       root        1: #
                      2: # nono
1.1.1.3   root        3: # Copyright (C) 2020 nono project
                      4: # Licensed under nono-license.txt
1.1       root        5: #
                      6: 
1.1.1.10  root        7: AC_PREREQ([2.71])
                      8: AC_INIT([nono],[0.0],[])
1.1       root        9: AC_CONFIG_SRCDIR(wx/wxapp.cpp)
1.1.1.6   root       10: AC_CONFIG_AUX_DIR([scripts])
1.1       root       11: 
                     12: # Checks for programs.
                     13: AC_PROG_CXX
                     14: AC_PROG_CC
1.1.1.3   root       15: AC_PROG_INSTALL
1.1       root       16: 
1.1.1.6   root       17: # OS
                     18: AC_CANONICAL_HOST
                     19: AC_SUBST([host_cpu])
                     20: 
1.1.1.4   root       21: # コンパイラをチェック。今のところ clang/gcc のみ。
                     22: # (autoconf がやってる gcc かどうかのチェックは clang を検出できず使えない)
                     23: AC_MSG_CHECKING(for compiler)
                     24: if test -n "`${CC} -v 2>&1 | grep clang`" ; then
                     25:        AC_MSG_RESULT([clang])
                     26:        COMPILER=CLANG
                     27: elif test -n "`${CC} -v 2>&1 | grep GCC`"; then
                     28:        AC_MSG_RESULT([gcc])
                     29:        COMPILER=GCC
                     30: else
                     31:        AC_MSG_RESULT([unknown])
                     32:        COMPILER=
                     33: fi
                     34: AC_SUBST([COMPILER])
                     35: 
1.1.1.3   root       36: # C++ のバージョンをチェック
                     37: CXX_STD=-std=c++14
                     38: AC_LANG_PUSH([C++])
                     39: AC_MSG_CHECKING(for ${CXX_STD})
1.1       root       40: old_CXXFLAGS="${CXXFLAGS}"
1.1.1.3   root       41: CXXFLAGS="${CXX_STD} ${CXXFLAGS}"
1.1       root       42: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])],
1.1.1.3   root       43:        AC_MSG_RESULT([yes]),
                     44:        AC_MSG_ERROR("*** C++ compiler '${CXX}' doesn't support ${CXX_STD}."))
1.1       root       45: CXXFLAGS="${old_CXXFLAGS}"
1.1.1.3   root       46: CXX="${CXX} ${CXX_STD}"
                     47: AC_LANG_POP([C++])
                     48: 
                     49: # C コンパイラのワーニングオプション
                     50: AC_LANG_PUSH([C])
1.1.1.4   root       51: AC_DEFUN([ADD_CC_WARN_IF],[
1.1.1.3   root       52:        AC_MSG_CHECKING([whether cc accepts $1])
                     53:        old_CFLAGS="${CFLAGS}"
                     54:        CFLAGS="${CFLAGS} -Werror $1"
                     55:        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])],
                     56:                AC_MSG_RESULT([yes])
1.1.1.11  root       57:                eval `echo cc_has$1=yes | sed -e 's/-/_/g'`
1.1.1.3   root       58:                WARNFLAGS_C="${WARNFLAGS_C} $1",
                     59:                AC_MSG_RESULT([no]))
                     60:        CFLAGS="${old_CFLAGS}"
                     61: ])
1.1.1.4   root       62: ADD_CC_WARN_IF(-Wcast-qual)
                     63: ADD_CC_WARN_IF(-Wextra-semi)
                     64: ADD_CC_WARN_IF(-Wlogical-op)
                     65: ADD_CC_WARN_IF(-Wmissing-prototypes)
                     66: ADD_CC_WARN_IF(-Wmissing-variable-declarations)
1.1.1.11  root       67: # -Wshadow-local があればそっちを使う(gcc>=7)、なければ -Wshadow (clang)
                     68: ADD_CC_WARN_IF(-Wshadow-local)
                     69: if test x"${cc_has_Wshadow_local}" != xyes; then
                     70:        ADD_CC_WARN_IF(-Wshadow)
                     71: fi
1.1.1.15! root       72: ADD_CC_WARN_IF(-Wstring-conversion)
        !            73: ADD_CC_WARN_IF(-Wtype-limits)
1.1.1.3   root       74: AC_LANG_POP([C])
                     75: AC_SUBST([WARNFLAGS_C])
                     76: 
                     77: # C++ コンパイラのワーニングオプション
                     78: # (AC_LANG は C++ のまま継続する)
1.1.1.10  root       79: AC_LANG([C++])
1.1.1.4   root       80: AC_DEFUN([ADD_CXX_WARN_IF],[
1.1.1.3   root       81:        AC_MSG_CHECKING([whether c++ accepts $1])
                     82:        old_CXXFLAGS="${CXXFLAGS}"
                     83:        CXXFLAGS="${CXXFLAGS} -Werror $1"
                     84:        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])],
                     85:                AC_MSG_RESULT([yes])
1.1.1.11  root       86:                eval `echo cxx_has$1=yes | sed -e 's/-/_/g'`
1.1.1.3   root       87:                WARNFLAGS_CXX="${WARNFLAGS_CXX} $1",
                     88:                AC_MSG_RESULT([no]))
                     89:        CXXFLAGS="${old_CXXFLAGS}"
                     90: ])
1.1.1.4   root       91: ADD_CXX_WARN_IF(-Wcast-qual)
                     92: ADD_CXX_WARN_IF(-Wextra-semi)
                     93: ADD_CXX_WARN_IF(-Winconsistent-missing-destructor-override)
1.1.1.15! root       94: ADD_CXX_WARN_IF(-Winconsistent-missing-override)
1.1.1.4   root       95: ADD_CXX_WARN_IF(-Wlogical-op)
                     96: ADD_CXX_WARN_IF(-Wmissing-prototypes)
                     97: ADD_CXX_WARN_IF(-Wmissing-variable-declarations)
1.1.1.11  root       98: # -Wshadow-local があればそっちを使う(gcc>=7)、なければ -Wshadow (clang)
                     99: ADD_CXX_WARN_IF(-Wshadow-local)
                    100: if test x"${cxx_has_Wshadow_local}" != xyes; then
                    101:        ADD_CXX_WARN_IF(-Wshadow)
                    102: fi
1.1.1.15! root      103: ADD_CXX_WARN_IF(-Wstring-conversion)
        !           104: ADD_CXX_WARN_IF(-Wsuggest-destructor-override)
1.1.1.12  root      105: ADD_CXX_WARN_IF(-Wsuggest-override)
1.1.1.15! root      106: ADD_CXX_WARN_IF(-Wtype-limits)
1.1.1.4   root      107: ADD_CXX_WARN_IF(-Wvla-extension)
1.1.1.3   root      108: AC_SUBST([WARNFLAGS_CXX])
1.1       root      109: 
1.1.1.15! root      110: # コンパイラが AVX2 をサポートしているか。
1.1.1.14  root      111: AC_ARG_ENABLE([avx2],
                    112:        [AS_HELP_STRING([--disable-avx2], [disable avx2 support])],
                    113:        [],
                    114:        [enable_avx2=yes])
                    115: 
                    116: AS_IF([test x"${enable_avx2}" != x"no"], [
1.1.1.15! root      117:        AC_MSG_CHECKING(whether the compiler supports AVX2)
1.1.1.14  root      118:        if test x"${host_cpu}" = x"x86_64"; then
                    119:                if test x"${host_cpu}" = x"${build_cpu}"; then
                    120:                        old_CXXFLAGS="${CXXFLAGS}"
                    121:                        CXXFLAGS="${CXXFLAGS} -mavx2"
                    122:                        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    123:                                        #include <x86intrin.h>
                    124:                                ], [
                    125:                                        #if !defined(__AVX2__)
                    126:                                        #error __AVX2__ is not defined by the compiler.
                    127:                                        #endif
                    128:                                        __m256i v;
                    129:                                ])], [
                    130:                                        have_avx2=yes
                    131:                                ])
                    132:                        CXXFLAGS="${old_CXXFLAGS}"
                    133:                fi
                    134:        fi
                    135:        if test x"${have_avx2}" = x"yes"; then
                    136:                AC_MSG_RESULT([yes])
                    137:                AC_DEFINE([HAVE_AVX2])
                    138:                AC_SUBST(HOST_HAS_AVX2, yes)
                    139:        else
                    140:                AC_MSG_RESULT([no])
                    141:        fi
                    142: ], [
                    143: ])
                    144: 
1.1.1.15! root      145: # コンパイラが NEON をサポートしているか。
        !           146: AC_ARG_ENABLE([neon],
        !           147:        [AS_HELP_STRING([--disable-neon], [disable NEON support])],
        !           148:        [],
        !           149:        [enable_neon=yes])
        !           150: 
        !           151: AS_IF([test x"${enable_neon}" != x"no"], [
        !           152:        AC_MSG_CHECKING(whether the compiler supports NEON)
        !           153:        if test x"${host_cpu}" = x"aarch64"; then
        !           154:                if test x"${host_cpu}" = x"${build_cpu}"; then
        !           155:                        old_CXXFLAGS="${CXXFLAGS}"
        !           156:                        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
        !           157:                                #include <arm_neon.h>
        !           158:                        ], [
        !           159:                                uint8x16_t v;
        !           160:                        ])], [
        !           161:                                have_neon=yes
        !           162:                        ])
        !           163:                        CXXFLAGS="${old_CXXFLAGS}"
        !           164:                fi
        !           165:        fi
        !           166:        if test x"${have_neon}" = x"yes"; then
        !           167:                AC_MSG_RESULT([yes])
        !           168:                AC_DEFINE([HAVE_NEON])
        !           169:                AC_SUBST(HOST_HAS_NEON, yes)
        !           170:        else
        !           171:                AC_MSG_RESULT([no])
        !           172:        fi
        !           173: ], [
        !           174: ])
        !           175: 
1.1       root      176: # Checks for libraries.
                    177: 
                    178: # Checks for header files.
                    179: AC_CHECK_HEADERS([bsd/bsd.h])
1.1.1.10  root      180: AC_CHECK_HEADERS([bsd/stdio.h])
                    181: AC_CHECK_HEADERS([byteswap.h])
1.1       root      182: AC_CHECK_HEADERS([endian.h])
                    183: AC_CHECK_HEADERS([kqueue/sys/event.h])
1.1.1.3   root      184: AC_CHECK_HEADERS([pthread_np.h])
1.1.1.15! root      185: AC_CHECK_HEADERS([sched.h])
        !           186: AC_CHECK_HEADERS([sys/cpuset.h])
1.1       root      187: AC_CHECK_HEADERS([sys/endian.h])
                    188: AC_CHECK_HEADERS([sys/event.h])
                    189: AC_CHECK_HEADERS([net/bpf.h])
                    190: AC_CHECK_HEADERS([net/if_tap.h])
                    191: AC_CHECK_HEADERS([linux/if_tun.h])
1.1.1.10  root      192: AC_CHECK_HEADERS([libkern/OSByteOrder.h])
                    193: AC_CHECK_HEADERS([machine/endian.h])
1.1       root      194: 
                    195: # Linux で <kqueue/sys/event.h> がなければここで停止したほうがいい
1.1.1.6   root      196: case "${host_os}" in
                    197:  linux*)
                    198:        if test "$ac_cv_header_kqueue_sys_event_h" != "yes"; then
                    199:                AC_MSG_ERROR([*** kqueue is not found.
1.1.1.7   root      200: *** If you use Ubuntu, sudo apt install libkqueue-dev])
1.1.1.6   root      201:        fi
                    202:        ;;
                    203: esac
1.1       root      204: 
                    205: # Checks for typedefs, structures, and compiler characteristics.
                    206: AC_CHECK_HEADER_STDBOOL
                    207: #AC_C_INLINE
                    208: #AC_TYPE_INT16_T
                    209: #AC_TYPE_INT32_T
                    210: #AC_TYPE_INT64_T
                    211: #AC_TYPE_INT8_T
                    212: #AC_TYPE_SIZE_T
                    213: #AC_TYPE_UINT16_T
                    214: #AC_TYPE_UINT32_T
                    215: #AC_TYPE_UINT64_T
                    216: #AC_TYPE_UINT8_T
                    217: 
1.1.1.15! root      218: AC_MSG_CHECKING(for cpuset_t)
        !           219: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
        !           220:                #if defined(HAVE_SCHED_H)
        !           221:                #include <sched.h>
        !           222:                #endif
        !           223:                #if defined(HAVE_SYS_CPUSET_H)
        !           224:                #include <sys/cpuset.h>
        !           225:                #endif
        !           226:        ]], [[
        !           227:                cpuset_t set;
        !           228:        ]])], [
        !           229:                AC_MSG_RESULT(yes)
        !           230:                AC_DEFINE(HAVE_CPUSET_T)
        !           231:        ], [
        !           232:                AC_MSG_RESULT(no)
        !           233:        ])
        !           234: 
        !           235: AC_MSG_CHECKING(for cpuset_t *)
        !           236: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
        !           237:                #if defined(HAVE_SCHED_H)
        !           238:                #include <sched.h>
        !           239:                #endif
        !           240:                #if defined(HAVE_SYS_CPUSET_H)
        !           241:                #include <sys/cpuset.h>
        !           242:                #endif
        !           243:        ]], [[
        !           244:                cpuset_t *set;
        !           245:        ]])], [
        !           246:                AC_MSG_RESULT(yes)
        !           247:                AC_DEFINE(HAVE_CPUSET_T_P)
        !           248:        ], [
        !           249:                AC_MSG_RESULT(no)
        !           250:        ])
        !           251: 
        !           252: AC_MSG_CHECKING(for cpu_set_t)
        !           253: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
        !           254:                #include <sched.h>
        !           255:        ]], [[
        !           256:                cpu_set_t set;
        !           257:        ]])], [
        !           258:                AC_MSG_RESULT(yes)
        !           259:                AC_DEFINE(HAVE_CPU_SET_T)
        !           260:        ], [
        !           261:                AC_MSG_RESULT(no)
        !           262:        ])
        !           263: 
        !           264: 
        !           265: # __builtin
        !           266: 
1.1       root      267: AC_MSG_CHECKING(for __builtin_assume)
1.1.1.10  root      268: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],
                    269:        [[
1.1       root      270:                __builtin_assume(1);
1.1.1.10  root      271:        ]])], [
                    272:                AC_MSG_RESULT(yes)
                    273:                AC_DEFINE(HAVE___BUILTIN_ASSUME)
                    274:        ], [
                    275:                AC_MSG_RESULT(no)
                    276:        ])
1.1       root      277: 
1.1.1.15! root      278: AC_MSG_CHECKING(for __builtin_bitreverse8)
        !           279: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],
        !           280:        [[
        !           281:                return __builtin_bitreverse8(1);
        !           282:        ]])], [
        !           283:                AC_MSG_RESULT(yes)
        !           284:                AC_DEFINE(HAVE___BUILTIN_BITREVERSE8)
        !           285:        ], [
        !           286:                AC_MSG_RESULT(no)
        !           287:        ])
        !           288: 
1.1       root      289: AC_MSG_CHECKING(for __builtin_bswap16)
1.1.1.10  root      290: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],
                    291:        [[
1.1       root      292:                return __builtin_bswap16(0);
1.1.1.10  root      293:        ]])], [
                    294:                AC_MSG_RESULT(yes)
                    295:                AC_DEFINE(HAVE___BUILTIN_BSWAP16)
                    296:        ], [
                    297:                AC_MSG_RESULT(no)
                    298:        ])
1.1       root      299: 
                    300: AC_MSG_CHECKING(for __builtin_bswap32)
1.1.1.10  root      301: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],
                    302:        [[
1.1       root      303:                return __builtin_bswap32(0);
1.1.1.10  root      304:        ]])], [
                    305:                AC_MSG_RESULT(yes)
                    306:                AC_DEFINE(HAVE___BUILTIN_BSWAP32)
                    307:        ], [
                    308:                AC_MSG_RESULT(no)
                    309:        ])
1.1       root      310: 
1.1.1.2   root      311: AC_MSG_CHECKING(for __builtin_bswap64)
1.1.1.10  root      312: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],
                    313:        [[
1.1.1.2   root      314:                return __builtin_bswap64(0);
1.1.1.10  root      315:        ]])], [
                    316:                AC_MSG_RESULT(yes)
                    317:                AC_DEFINE(HAVE___BUILTIN_BSWAP64)
                    318:        ], [
                    319:                AC_MSG_RESULT(no)
                    320:        ])
1.1.1.2   root      321: 
1.1       root      322: AC_MSG_CHECKING(for __builtin_expect)
1.1.1.10  root      323: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
1.1       root      324:                if (__builtin_expect(1, 1)) return 0;
1.1.1.10  root      325:        ]])], [
                    326:                AC_MSG_RESULT(yes)
                    327:                AC_DEFINE(HAVE___BUILTIN_EXPECT)
                    328:        ], [
                    329:                AC_MSG_RESULT(no)
                    330:        ])
1.1       root      331: 
1.1.1.15! root      332: AC_MSG_CHECKING(for __builtin_rotateleft32)
        !           333: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],
        !           334:        [[
        !           335:                return __builtin_rotateleft32(1, 1);
        !           336:        ]])], [
        !           337:                AC_MSG_RESULT(yes)
        !           338:                AC_DEFINE(HAVE___BUILTIN_ROTATELEFT32)
        !           339:        ], [
        !           340:                AC_MSG_RESULT(no)
        !           341:        ])
        !           342: 
        !           343: AC_MSG_CHECKING(for __builtin_rotateright32)
        !           344: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],
        !           345:        [[
        !           346:                return __builtin_rotateright32(1, 1);
        !           347:        ]])], [
        !           348:                AC_MSG_RESULT(yes)
        !           349:                AC_DEFINE(HAVE___BUILTIN_ROTATERIGHT32)
        !           350:        ], [
        !           351:                AC_MSG_RESULT(no)
        !           352:        ])
        !           353: 
1.1       root      354: AC_MSG_CHECKING(for __builtin_unreachable)
1.1.1.10  root      355: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
1.1       root      356:                __builtin_unreachable();
1.1.1.10  root      357:        ]])], [
                    358:                AC_MSG_RESULT(yes)
                    359:                AC_DEFINE(HAVE___BUILTIN_UNREACHABLE)
                    360:        ], [
                    361:                AC_MSG_RESULT(no)
                    362:        ])
1.1       root      363: 
                    364: AC_MSG_CHECKING(for __attribute__((__fallthrough__)))
                    365: old_CXXFLAGS="${CXXFLAGS}"
                    366: CXXFLAGS="${CXXFLAGS} -Wall -Werror"
1.1.1.10  root      367: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
                    368:        [
1.1       root      369:                extern int x;
                    370:                switch (x) {
                    371:                 case 0:
                    372:                        __attribute__((__fallthrough__));
                    373:                 case 1:
                    374:                        break;
                    375:                }
1.1.1.10  root      376:        ])], [
                    377:                AC_MSG_RESULT([yes])
                    378:                AC_DEFINE([HAVE___ATTRIBUTE_FALLTHROUGH])
                    379:        ], [
                    380:                AC_MSG_RESULT([no])
                    381:        ])
1.1       root      382: CXXFLAGS="${old_CXXFLAGS}"
                    383: 
                    384: dnl とりあえず __format__ までしか調べてないので、
                    385: dnl その中の __printf__ とかまで調べる必要ができたら直すこと。
                    386: AC_MSG_CHECKING(for __attribute__((__format__)))
                    387: old_CXXFLAGS="${CXXFLAGS}"
                    388: CXXFLAGS="${CXXFLAGS} -Wall -Werror"
                    389: AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
                    390:        [
                    391:                extern int f(const char *f, ...)
                    392:                        __attribute__((__format__(__printf__, 1, 2)));
1.1.1.10  root      393:        ], [])], [
                    394:                AC_MSG_RESULT([yes])
                    395:                AC_DEFINE([HAVE___ATTRIBUTE_FORMAT])
1.1       root      396:        ], [
1.1.1.10  root      397:                AC_MSG_RESULT([no])
                    398:        ])
1.1       root      399: CXXFLAGS="${old_CXXFLAGS}"
                    400: 
                    401: AC_MSG_CHECKING(for __attribute__((no_sanitize)))
                    402: old_CXXFLAGS="${CXXFLAGS}"
                    403: CXXFLAGS="${CXXFLAGS} -Werror"
                    404: AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
                    405:        [
                    406:                __attribute__((no_sanitize("undefined")))
                    407:                int func() { return 0; }
1.1.1.10  root      408:        ], [])], [
                    409:                AC_MSG_RESULT([yes])
                    410:                AC_DEFINE([HAVE___ATTRIBUTE_NO_SANITIZE])
1.1       root      411:        ], [
1.1.1.10  root      412:                AC_MSG_RESULT([no])
                    413:        ])
1.1       root      414: CXXFLAGS="${old_CXXFLAGS}"
                    415: 
                    416: 
                    417: AC_MSG_CHECKING(for __attribute__((__packed__)))
                    418: old_CXXFLAGS="${CXXFLAGS}"
                    419: CXXFLAGS="${CXXFLAGS} -Werror"
1.1.1.10  root      420: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
                    421:        [
1.1       root      422:                struct x { char a; int b; } __attribute__((__packed__));
1.1.1.10  root      423:        ])], [
                    424:                AC_MSG_RESULT([yes])
                    425:                AC_DEFINE([HAVE___ATTRIBUTE_PACKED])
                    426:        ], [
                    427:                AC_MSG_RESULT([no])
                    428:        ])
1.1       root      429: CXXFLAGS="${old_CXXFLAGS}"
                    430: 
                    431: AC_MSG_CHECKING(for __attribute__((__unused__)))
                    432: old_CXXFLAGS="${CXXFLAGS}"
                    433: CXXFLAGS="${CXXFLAGS} -Wunused-variable -Werror"
1.1.1.10  root      434: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
                    435:        [
1.1       root      436:                int a __attribute__((__unused__));
1.1.1.10  root      437:        ])], [
                    438:                AC_MSG_RESULT([yes])
                    439:                AC_DEFINE([HAVE___ATTRIBUTE_UNUSED])
                    440:        ], [
                    441:                AC_MSG_RESULT([no])
                    442:        ])
1.1       root      443: CXXFLAGS="${old_CXXFLAGS}"
                    444: 
                    445: # Checks for library functions.
                    446: #AC_FUNC_MALLOC
                    447: #AC_FUNC_MMAP
                    448: 
1.1.1.10  root      449: AC_MSG_CHECKING(for bswap16)
                    450: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    451:                #if defined(HAVE_SYS_ENDIAN_H)
                    452:                #include <sys/endian.h>
                    453:                #endif
                    454:        ], [
                    455:                bswap16(0);
                    456:        ])], [
                    457:                AC_MSG_RESULT([yes])
                    458:                AC_DEFINE([HAVE_BSWAP16])
                    459:        ], [
                    460:                AC_MSG_RESULT([no])
                    461:        ])
                    462: 
                    463: AC_MSG_CHECKING(for bswap32)
                    464: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    465:                #if defined(HAVE_SYS_ENDIAN_H)
                    466:                #include <sys/endian.h>
                    467:                #endif
                    468:        ], [
                    469:                bswap32(0);
                    470:        ])], [
                    471:                AC_MSG_RESULT([yes])
                    472:                AC_DEFINE([HAVE_BSWAP32])
                    473:        ], [
                    474:                AC_MSG_RESULT([no])
                    475:        ])
                    476: 
                    477: AC_MSG_CHECKING(for bswap64)
                    478: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    479:                #if defined(HAVE_SYS_ENDIAN_H)
                    480:                #include <sys/endian.h>
                    481:                #endif
                    482:        ], [
                    483:                bswap64(0);
                    484:        ])], [
                    485:                AC_MSG_RESULT([yes])
                    486:                AC_DEFINE([HAVE_BSWAP64])
                    487:        ], [
                    488:                AC_MSG_RESULT([no])
                    489:        ])
                    490: 
                    491: AC_MSG_CHECKING(for bswap_16)
                    492: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    493:                #if defined(HAVE_BYTESWAP_H)
                    494:                #include <byteswap.h>
                    495:                #endif
                    496:        ], [
                    497:                bswap_16(0);
                    498:        ])], [
                    499:                AC_MSG_RESULT([yes])
                    500:                AC_DEFINE([HAVE_BSWAP_16])
                    501:        ], [
                    502:                AC_MSG_RESULT([no])
                    503:        ])
                    504: 
                    505: AC_MSG_CHECKING(for bswap_32)
                    506: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    507:                #if defined(HAVE_BYTESWAP_H)
                    508:                #include <byteswap.h>
                    509:                #endif
                    510:        ], [
                    511:                bswap_32(0);
                    512:        ])], [
                    513:                AC_MSG_RESULT([yes])
                    514:                AC_DEFINE([HAVE_BSWAP_32])
                    515:        ], [
                    516:                AC_MSG_RESULT([no])
                    517:        ])
                    518: 
                    519: AC_MSG_CHECKING(for bswap_64)
                    520: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    521:                #if defined(HAVE_BYTESWAP_H)
                    522:                #include <byteswap.h>
                    523:                #endif
                    524:        ], [
                    525:                bswap_64(0);
                    526:        ])], [
                    527:                AC_MSG_RESULT([yes])
                    528:                AC_DEFINE([HAVE_BSWAP_64])
                    529:        ], [
                    530:                AC_MSG_RESULT([no])
                    531:        ])
                    532: 
                    533: AC_MSG_CHECKING(for swap16)
                    534: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    535:                #if defined(HAVE_SYS_ENDIAN_H)
                    536:                #include <sys/endian.h>
                    537:                #endif
                    538:        ], [
                    539:                swap16(0);
                    540:        ])], [
                    541:                AC_MSG_RESULT([yes])
                    542:                AC_DEFINE([HAVE_SWAP16])
                    543:        ], [
                    544:                AC_MSG_RESULT([no])
                    545:        ])
                    546: 
                    547: AC_MSG_CHECKING(for swap32)
                    548: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    549:                #if defined(HAVE_SYS_ENDIAN_H)
                    550:                #include <sys/endian.h>
                    551:                #endif
                    552:        ], [
                    553:                swap32(0);
                    554:        ])], [
                    555:                AC_MSG_RESULT([yes])
                    556:                AC_DEFINE([HAVE_SWAP32])
                    557:        ], [
                    558:                AC_MSG_RESULT([no])
                    559:        ])
                    560: 
                    561: AC_MSG_CHECKING(for swap64)
                    562: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    563:                #if defined(HAVE_SYS_ENDIAN_H)
                    564:                #include <sys/endian.h>
                    565:                #endif
                    566:        ], [
                    567:                swap64(0);
                    568:        ])], [
                    569:                AC_MSG_RESULT([yes])
                    570:                AC_DEFINE([HAVE_SWAP64])
                    571:        ], [
                    572:                AC_MSG_RESULT([no])
                    573:        ])
                    574: 
                    575: AC_MSG_CHECKING(for htobe16)
                    576: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    577:                #if defined(HAVE_ENDIAN_H)
                    578:                #include <endian.h>
                    579:                #endif
                    580:                #if defined(HAVE_SYS_ENDIAN_H)
                    581:                #include <sys/endian.h>
                    582:                #endif
                    583:                #if defined(HAVE_MACHINE_ENDIAN_H)
                    584:                #include <machine/endian.h>
                    585:                #endif
                    586:        ], [
                    587:                htobe16(0);
                    588:        ])], [
                    589:                AC_MSG_RESULT([yes])
                    590:                AC_DEFINE([HAVE_HTOBE16])
                    591:        ], [
                    592:                AC_MSG_RESULT([no])
                    593:        ])
                    594: 
1.1.1.15! root      595: AC_MSG_CHECKING(for CPU_COUNT)
        !           596: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
        !           597:                #if defined(HAVE_SCHED_H)
        !           598:                #include <sched.h>
        !           599:                #endif
        !           600:                #if defined(HAVE_SYS_CPUSET_H)
        !           601:                #include <sys/cpuset.h>
        !           602:                #endif
        !           603:        ], [
        !           604:                #if defined(HAVE_CPUSET_T)
        !           605:                cpuset_t set;
        !           606:                #elif defined(HAVE_CPU_SET_T)
        !           607:                cpu_set_t set;
        !           608:                #endif
        !           609:                CPU_COUNT(&set);
        !           610:        ])], [
        !           611:                AC_MSG_RESULT([yes])
        !           612:                AC_DEFINE([HAVE_CPU_COUNT])
        !           613:        ], [
        !           614:                AC_MSG_RESULT([no])
        !           615:        ])
        !           616: 
        !           617: AC_MSG_CHECKING(for CPU_ISSET)
        !           618: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
        !           619:                #if defined(HAVE_SCHED_H)
        !           620:                #include <sched.h>
        !           621:                #endif
        !           622:                #if defined(HAVE_SYS_CPUSET_H)
        !           623:                #include <sys/cpuset.h>
        !           624:                #endif
        !           625:        ], [
        !           626:                #if defined(HAVE_CPUSET_T)
        !           627:                cpuset_t set;
        !           628:                #elif defined(HAVE_CPU_SET_T)
        !           629:                cpu_set_t set;
        !           630:                #endif
        !           631:                CPU_ISSET(0, &set);
        !           632:        ])], [
        !           633:                AC_MSG_RESULT([yes])
        !           634:                AC_DEFINE([HAVE_CPU_ISSET])
        !           635:        ], [
        !           636:                AC_MSG_RESULT([no])
        !           637:        ])
        !           638: 
        !           639: AC_MSG_CHECKING(for CPU_SET)
        !           640: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
        !           641:                #if defined(HAVE_SCHED_H)
        !           642:                #include <sched.h>
        !           643:                #endif
        !           644:                #if defined(HAVE_SYS_CPUSET_H)
        !           645:                #include <sys/cpuset.h>
        !           646:                #endif
        !           647:        ], [
        !           648:                #if defined(HAVE_CPUSET_T)
        !           649:                cpuset_t set;
        !           650:                #elif defined(HAVE_CPU_SET_T)
        !           651:                cpu_set_t set;
        !           652:                #endif
        !           653:                CPU_SET(0, &set);
        !           654:        ])], [
        !           655:                AC_MSG_RESULT([yes])
        !           656:                AC_DEFINE([HAVE_CPU_SET])
        !           657:        ], [
        !           658:                AC_MSG_RESULT([no])
        !           659:        ])
        !           660: 
        !           661: AC_MSG_CHECKING(for CPU_ZERO)
        !           662: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
        !           663:                #if defined(HAVE_SCHED_H)
        !           664:                #include <sched.h>
        !           665:                #endif
        !           666:                #if defined(HAVE_SYS_CPUSET_H)
        !           667:                #include <sys/cpuset.h>
        !           668:                #endif
        !           669:        ], [
        !           670:                #if defined(HAVE_CPUSET_T)
        !           671:                cpuset_t set;
        !           672:                #elif defined(HAVE_CPU_SET_T)
        !           673:                cpu_set_t set;
        !           674:                #endif
        !           675:                CPU_ZERO(&set);
        !           676:        ])], [
        !           677:                AC_MSG_RESULT([yes])
        !           678:                AC_DEFINE([HAVE_CPU_ZERO])
        !           679:        ], [
        !           680:                AC_MSG_RESULT([no])
        !           681:        ])
        !           682: 
        !           683: AC_MSG_CHECKING(for cpuset_create)
        !           684: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
        !           685:                #include <sched.h>
        !           686:        ], [
        !           687:                cpuset_create();
        !           688:        ])], [
        !           689:                AC_MSG_RESULT([yes])
        !           690:                AC_DEFINE([HAVE_CPUSET_CREATE])
        !           691:        ], [
        !           692:                AC_MSG_RESULT([no])
        !           693:        ])
        !           694: 
        !           695: AC_MSG_CHECKING(for cpuset_isset)
        !           696: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
        !           697:                #include <sched.h>
        !           698:        ], [
        !           699:                cpuset_isset(0, NULL);
        !           700:        ])], [
        !           701:                AC_MSG_RESULT([yes])
        !           702:                AC_DEFINE([HAVE_CPUSET_ISSET])
        !           703:        ], [
        !           704:                AC_MSG_RESULT([no])
        !           705:        ])
        !           706: 
        !           707: AC_MSG_CHECKING(for cpuset_set)
        !           708: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
        !           709:                #include <sched.h>
        !           710:        ], [
        !           711:                cpuset_set(0, NULL);
        !           712:        ])], [
        !           713:                AC_MSG_RESULT([yes])
        !           714:                AC_DEFINE([HAVE_CPUSET_SET])
        !           715:        ], [
        !           716:                AC_MSG_RESULT([no])
        !           717:        ])
        !           718: 
        !           719: AC_MSG_CHECKING(for cpuset_size)
        !           720: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
        !           721:                #include <sched.h>
        !           722:        ], [
        !           723:                cpuset_size(NULL);
        !           724:        ])], [
        !           725:                AC_MSG_RESULT([yes])
        !           726:                AC_DEFINE([HAVE_CPUSET_SIZE])
        !           727:        ], [
        !           728:                AC_MSG_RESULT([no])
        !           729:        ])
        !           730: 
1.1.1.14  root      731: AC_MSG_CHECKING(for statfs)
                    732: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    733:                #include <sys/statfs.h>
                    734:        ], [
                    735:                struct statfs buf;
                    736:                statfs("", &buf);
                    737:        ])], [
                    738:                AC_MSG_RESULT([yes])
                    739:                AC_DEFINE([HAVE_STATFS])
                    740:                have_statxxfs=statfs
                    741:        ], [
                    742:                AC_MSG_RESULT([no])
                    743:        ])
                    744: 
                    745: AC_MSG_CHECKING(for statvfs)
                    746: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    747:                #include <sys/statvfs.h>
                    748:        ], [
                    749:                struct statvfs buf;
                    750:                statvfs("", &buf);
                    751:        ])], [
                    752:                AC_MSG_RESULT([yes])
                    753:                AC_DEFINE([HAVE_STATVFS])
                    754:                have_statxxfs=statvfs
                    755:        ], [
                    756:                AC_MSG_RESULT([no])
                    757:        ])
                    758: 
                    759: if test -z "${have_statxxfs}"; then
                    760:        AC_MSG_FAILURE([*** No statfs() nor statvfs() found])
                    761: fi
                    762: 
                    763: AC_CHECK_MEMBER([struct stat.st_mtimespec], [
                    764:                AC_DEFINE([HAVE_STAT_ST_TIMESPEC])
                    765:        ], [], [
                    766:                #include <sys/stat.h>
                    767:        ])
                    768: 
                    769: AC_MSG_CHECKING(for timegm)
                    770: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    771:                #include <time.h>
                    772:        ], [
                    773:                timegm(NULL);
                    774:        ])], [
                    775:                AC_MSG_RESULT([yes])
                    776:        ], [
                    777:                AC_MSG_RESULT([no])
                    778:                AC_MSG_FAILURE([*** No timegm() found])
                    779:        ])
                    780: 
1.1.1.10  root      781: AC_MSG_CHECKING(for pthread_getname_np)
                    782: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1.1.1.3   root      783:                #include <pthread.h>
                    784:                #if defined(HAVE_PTHREAD_NP_H)
                    785:                #include <pthread_np.h>
                    786:                #endif
1.1.1.10  root      787:        ]], [[
                    788:                char name[32];
                    789:                pthread_getname_np(pthread_self(), name, sizeof(name));
                    790:        ]])], [
                    791:                AC_MSG_RESULT(yes)
                    792:                AC_DEFINE(HAVE_PTHREAD_GETNAME_NP)
1.1.1.3   root      793:        ], [
1.1.1.10  root      794:                AC_MSG_RESULT(no)
                    795:        ])
                    796: 
                    797: AC_MSG_CHECKING(for pthread_get_name_np)
                    798: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
                    799:                #include <pthread.h>
                    800:                #if defined(HAVE_PTHREAD_NP_H)
                    801:                #include <pthread_np.h>
                    802:                #endif
                    803:        ]], [[
                    804:                char name[32];
                    805:                pthread_get_name_np(pthread_self(), name, sizeof(name));
                    806:        ]])], [
                    807:                AC_MSG_RESULT(yes)
                    808:                AC_DEFINE(HAVE_PTHREAD_GET_NAME_NP)
                    809:        ], [
                    810:                AC_MSG_RESULT(no)
                    811:        ])
                    812: 
                    813: AC_MSG_CHECKING(for pthread_setname_np(name))
                    814: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
                    815:                #include <pthread.h>
                    816:                #if defined(HAVE_PTHREAD_NP_H)
                    817:                #include <pthread_np.h>
                    818:                #endif
                    819:        ]], [[
1.1       root      820:                pthread_setname_np("");
1.1.1.10  root      821:        ]])], [
                    822:                AC_MSG_RESULT(yes)
                    823:                AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_name)
                    824:        ], [
                    825:                AC_MSG_RESULT(no)
                    826:        ])
1.1       root      827: 
                    828: AC_MSG_CHECKING(for pthread_setname_np(thread, name))
1.1.1.10  root      829: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1.1.1.3   root      830:                #include <pthread.h>
                    831:                #if defined(HAVE_PTHREAD_NP_H)
                    832:                #include <pthread_np.h>
                    833:                #endif
1.1.1.10  root      834:        ]], [[
1.1       root      835:                pthread_setname_np(pthread_self(), "");
1.1.1.10  root      836:        ]])], [
                    837:                AC_MSG_RESULT(yes)
                    838:                AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_th_name)
                    839:        ], [
                    840:                AC_MSG_RESULT(no)
                    841:        ])
1.1       root      842: 
                    843: AC_MSG_CHECKING(for pthread_setname_np(thread, name, arg))
1.1.1.10  root      844: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1.1.1.3   root      845:                #include <pthread.h>
                    846:                #if defined(HAVE_PTHREAD_NP_H)
                    847:                #include <pthread_np.h>
                    848:                #endif
1.1.1.10  root      849:        ]], [[
1.1       root      850:                pthread_setname_np(pthread_self(), "", (void*)0);
1.1.1.10  root      851:        ]])], [
                    852:                AC_MSG_RESULT(yes)
                    853:                AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_th_name_arg)
                    854:        ], [
                    855:                AC_MSG_RESULT(no)
                    856:        ])
1.1.1.3   root      857: 
                    858: AC_MSG_CHECKING(for pthread_set_name_np(thread, name))
1.1.1.10  root      859: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1.1.1.3   root      860:                #include <pthread.h>
                    861:                #if defined(HAVE_PTHREAD_NP_H)
                    862:                #include <pthread_np.h>
                    863:                #endif
1.1.1.10  root      864:        ]], [[
1.1.1.3   root      865:                pthread_set_name_np(pthread_self(), "");
1.1.1.10  root      866:        ]])],[
                    867:                AC_MSG_RESULT(yes)
                    868:                AC_DEFINE(HAVE_PTHREAD_SET_NAME_NP_th_name)
                    869:        ], [
                    870:                AC_MSG_RESULT(no)
                    871:        ])
1.1       root      872: 
1.1.1.15! root      873: AC_MSG_CHECKING(for pthread_setaffinity_np)
        !           874: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
        !           875:                #include <pthread.h>
        !           876:                #if defined(HAVE_PTHREAD_NP_H)
        !           877:                #include <pthread_np.h>
        !           878:                #endif
        !           879:        ]], [[
        !           880:                pthread_setaffinity_np(pthread_self(), 0, NULL);
        !           881:        ]])], [
        !           882:                AC_MSG_RESULT(yes)
        !           883:                AC_DEFINE(HAVE_PTHREAD_SETAFFINITY_NP)
        !           884:        ], [
        !           885:                AC_MSG_RESULT(no)
        !           886:        ])
        !           887: 
        !           888: 
1.1.1.8   root      889: #
                    890: # Network
                    891: #
                    892: AC_MSG_CHECKING(for AF_PACKET)
1.1.1.10  root      893: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1.1.1.8   root      894:                #include <sys/socket.h>
1.1.1.10  root      895:        ]], [[
1.1.1.8   root      896:                AF_PACKET;
1.1.1.10  root      897:        ]])], [
                    898:                AC_MSG_RESULT(yes)
                    899:                AC_DEFINE(HAVE_HOSTNET_AFPACKET)
                    900:                AC_SUBST(HOSTNET_AFPACKET, yes)
                    901:        ], [
                    902:                AC_MSG_RESULT(no)
                    903:        ])
1.1.1.8   root      904: 
                    905: AC_MSG_CHECKING(for tap(4))
1.1.1.6   root      906: case "${host_os}" in
                    907:  linux*)
                    908:        if test x"$ac_cv_header_linux_if_tun_h" = xyes; then
1.1.1.8   root      909:                netdriver_tap=yes
1.1.1.6   root      910:        fi
                    911:        ;;
                    912:  openbsd*)
                    913:        # OpenBSD has no <net/if_tap.h> but supports tap(4).
1.1.1.8   root      914:        netdriver_tap=yes
1.1.1.6   root      915:        ;;
1.1.1.8   root      916:  *)
1.1.1.6   root      917:        if test x"$ac_cv_header_net_if_tap_h" = xyes; then
1.1.1.8   root      918:                netdriver_tap=yes
1.1.1.6   root      919:        fi
1.1.1.8   root      920:        ;;
                    921: esac
                    922: if test x"$netdriver_tap" = xyes; then
                    923:        AC_MSG_RESULT([yes])
                    924:        AC_DEFINE([HAVE_HOSTNET_TAP])
                    925:        AC_SUBST([HOSTNET_TAP], [yes])
                    926: else
                    927:        AC_MSG_RESULT([no])
                    928: fi
                    929: 
                    930: AC_MSG_CHECKING(for bpf(4))
                    931: if test x"$ac_cv_header_net_bpf_h" = xyes; then
                    932:        AC_MSG_RESULT([yes])
                    933:        AC_DEFINE([HAVE_HOSTNET_BPF])
                    934:        AC_SUBST([HOSTNET_BPF], [yes])
                    935: else
                    936:        AC_MSG_RESULT([no])
1.1       root      937: fi
                    938: 
1.1.1.14  root      939: #
                    940: # Other libraries
                    941: #
                    942: 
                    943: # CHECK_LIB($1=name, $2=libs, $3=include, $4=src)
                    944: AC_DEFUN([CHECK_LIB], [
                    945:        AC_MSG_CHECKING([for $1])
                    946:        for path in ${PATHS}; do
                    947:                old_CPPFLAGS=${CPPFLAGS}
                    948:                old_LIBS=${LIBS}
                    949:                case ${path} in
                    950:                 none)
                    951:                        LIBS="${LIBS} $2"
                    952:                        ;;
                    953:                 *)
                    954:                        CPPFLAGS="${CPPFLAGS} -I${path}/include"
                    955:                        LIBS="${LIBS} -L${path}/lib $2"
                    956:                        ;;
                    957:                esac
                    958:                AC_LINK_IFELSE([AC_LANG_PROGRAM([$3], [$4])], [
                    959:                        has_$1=yes
                    960:                        break
                    961:                ], [
                    962:                        has_$1=no
                    963:                ])
                    964:                CPPFLAGS=${old_CPPFLAGS}
                    965:                LIBS=${old_LIBS}
                    966:        done
                    967:        if test x"${has_$1}" = x"yes"; then
                    968:                AC_MSG_RESULT([yes])
                    969:        else
                    970:                AC_MSG_RESULT([no])
                    971:        fi
                    972: ])
                    973: 
                    974: PATHS="none /usr/pkg /usr/local"
                    975: 
1.1       root      976: # libbsd on Linux
1.1.1.5   root      977: AC_CHECK_LIB(c, getprogname, ,)
1.1       root      978: AC_CHECK_LIB(bsd, getprogname,
1.1.1.6   root      979:        LIBS="${LIBS} -lbsd"
                    980: )
1.1.1.5   root      981: # なければ停止する
                    982: AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
                    983:        [
                    984:                #include <stdlib.h>
                    985:                #include "confdefs.h"
                    986:                #if defined(HAVE_BSD_BSD_H)
                    987:                #include <bsd/bsd.h>
                    988:                #endif
                    989:        ], [
                    990:                getprogname()
1.1.1.10  root      991:        ])], [
1.1.1.5   root      992:        # nothing to do on success
1.1.1.10  root      993:        ], [
                    994:                AC_MSG_ERROR([*** getprogname is not found.
1.1.1.7   root      995: *** If you use Ubuntu, sudo apt install libbsd-dev])
1.1.1.5   root      996:        ]
                    997: )
1.1       root      998: 
                    999: # libkqueue on Linux
                   1000: AC_CHECK_LIB(kqueue, kqueue,
1.1.1.6   root     1001:        LIBS="${LIBS} -lkqueue"
                   1002: )
1.1       root     1003: 
1.1.1.5   root     1004: AC_CHECK_LIB(z, gzclose,
1.1.1.6   root     1005:        LIBS="${LIBS} -lz",
1.1.1.5   root     1006:        [AC_MSG_ERROR([*** zlib is not found.
1.1.1.7   root     1007: *** If use use Ubuntu, sudo apt install zlib1g-dev])]
1.1.1.5   root     1008: )
                   1009: 
1.1       root     1010: # wxWidgets
1.1.1.10  root     1011: AC_ARG_WITH([gui],
                   1012:        [AS_HELP_STRING([--without-gui], [disable GUI support])],
                   1013:        [],
                   1014:        [with_gui=yes])
                   1015: 
                   1016: AS_IF([test "x$with_gui" != xno], [
                   1017:        AC_MSG_CHECKING(for wx-config)
1.1.1.14  root     1018:        wxconfig_paths="${WX_CONFIG} wx-config-3.2 wx-config-3.0 wx-config"
1.1.1.10  root     1019:        wxconfig=""
                   1020:        for c in ${wxconfig_paths}; do
                   1021:                ver=`$c --version 2>&1 | cut -f 1 -d .`
                   1022:                if test "$ver" = "3"; then
                   1023:                        wxconfig=$c
                   1024:                        break
                   1025:                fi
                   1026:        done
                   1027:        if test -z "$wxconfig"; then
1.1.1.14  root     1028:                AC_MSG_ERROR([*** wxWidgets-3.2 nor -3.0 not found in ${wxconfig_paths}
                   1029: *** If you use pkgsrc, install x11/wxGTK32.
1.1.1.7   root     1030: *** If you use Ubuntu, sudo apt install libwxgtk3.0-gtk3-dev])
1.1.1.10  root     1031:        else
                   1032:                AC_MSG_RESULT([$wxconfig])
1.1       root     1033: 
1.1.1.10  root     1034:                AC_MSG_CHECKING(for wxWidgets version)
                   1035:                wxversion=`$wxconfig --version`
                   1036:                AC_MSG_RESULT([$wxversion])
1.1.1.14  root     1037:                wxmajorminor=`echo $wxversion | awk -F . '{print $1 $2}'`
                   1038:                AC_SUBST([WX_MAJORMINOR], [${wxmajorminor}])
1.1.1.10  root     1039: 
                   1040:                wxcppflags=`$wxconfig --cppflags`
                   1041:                wxlibs=`$wxconfig --libs`
                   1042: 
                   1043:                case "${host_os}" in
                   1044:                 netbsd*)
                   1045:                        # rpath。どうしたもんだかこれ
                   1046:                        wxlibs=[`echo $wxlibs | sed -e 's/-L\([^ ]*\) /-L\1 -Wl,-R,\1 /'`]
                   1047:                        ;;
                   1048: 
                   1049:                 darwin*)
                   1050:                        # XXX -framework AudioToolbox が指定されているとリンカがこけるorz
                   1051:                        wxlibs=[`echo $wxlibs | sed -e 's/-framework AudioToolbox//'`]
                   1052:                        ;;
                   1053:                esac
                   1054: 
                   1055:                AC_SUBST([WITH_GUI], [yes])
                   1056:                AC_SUBST([WXWIDGETS_CPPFLAGS], [$wxcppflags])
                   1057:                AC_SUBST([WXWIDGETS_LIBS], [$wxlibs])
                   1058:        fi
1.1       root     1059: 
1.1.1.10  root     1060:        # gettext
                   1061:        AC_CHECK_TOOL([MSGFMT], [msgfmt], [:])
                   1062:        if test $MSGFMT = [:]; then
                   1063:                AC_MSG_ERROR([*** msgfmt not found.
1.1.1.7   root     1064: *** If you use pkgsrc, install devel/gettext-tools.
                   1065: *** If you use Ubuntu, sudo apt install gettext])
1.1.1.10  root     1066:        fi
                   1067: ], [
                   1068:        AC_SUBST([WITH_GUI], [no])
                   1069: ])
1.1.1.5   root     1070: 
1.1.1.14  root     1071: # nono 本体のチェックはここまで。
                   1072: nono_CPPFLAGS=${CPPFLAGS}
                   1073: nono_LIBS=${LIBS}
                   1074: AC_SUBST([NONO_CPPFLAGS], [${nono_CPPFLAGS}])
                   1075: AC_SUBST([NONO_LIBS], [${nono_LIBS}])
                   1076: 
                   1077: # iconv は util/ でのみ必要。
                   1078: CPPFLAGS=
                   1079: LIBS=
1.1.1.15! root     1080: CHECK_LIB([libiconv], [-liconv], [
1.1.1.14  root     1081:        #include <iconv.h>
                   1082: ], [
                   1083:        iconv_open("", "");
                   1084: ])
                   1085: 
1.1.1.15! root     1086: if test x"${has_libiconv}" = x"yes"; then
1.1.1.14  root     1087:        AC_MSG_CHECKING(whether iconv needs const)
                   1088:        old_CPPFLAGS="${CPPFLAGS}"
                   1089:        CPPFLAGS="${CPPFLAGS} -Werror"
                   1090:        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
                   1091:                        #include <iconv.h>
                   1092:                ]], [[
                   1093:                        const char **a;
                   1094:                        iconv(0, a, 0, 0, 0);
                   1095:                ]])], [
                   1096:                        AC_MSG_RESULT(yes)
                   1097:                        AC_DEFINE(HAVE_ICONV_CONST)
                   1098:                ], [
                   1099:                        AC_MSG_RESULT(no)
                   1100:                ])
                   1101:        CPPFLAGS="${old_CPPFLAGS}"
                   1102: fi
                   1103: 
                   1104: iconv_CPPFLAGS=${CPPFLAGS}
                   1105: iconv_LIBS=${LIBS}
                   1106: AC_SUBST([ICONV_CPPFLAGS], [${iconv_CPPFLAGS}])
                   1107: AC_SUBST([ICONV_LIBS], [${iconv_LIBS}])
                   1108: 
1.1       root     1109: AC_CONFIG_FILES([Makefile.cfg
                   1110:        host/Makefile
                   1111:        wx/Makefile
1.1.1.14  root     1112:        util/mkcgrom/Makefile
1.1.1.15! root     1113:        util/ttfext/Makefile
1.1       root     1114:        util/viewcgrom/Makefile
                   1115: ])
1.1.1.2   root     1116: AC_CONFIG_HEADERS([config-nono.h])
1.1       root     1117: AC_OUTPUT

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.