Annotation of nono/configure.ac, revision 1.1.1.12

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.3   root       72: AC_LANG_POP([C])
                     73: AC_SUBST([WARNFLAGS_C])
                     74: 
                     75: # C++ コンパイラのワーニングオプション
                     76: # (AC_LANG は C++ のまま継続する)
1.1.1.10  root       77: AC_LANG([C++])
1.1.1.4   root       78: AC_DEFUN([ADD_CXX_WARN_IF],[
1.1.1.3   root       79:        AC_MSG_CHECKING([whether c++ accepts $1])
                     80:        old_CXXFLAGS="${CXXFLAGS}"
                     81:        CXXFLAGS="${CXXFLAGS} -Werror $1"
                     82:        AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [])],
                     83:                AC_MSG_RESULT([yes])
1.1.1.11  root       84:                eval `echo cxx_has$1=yes | sed -e 's/-/_/g'`
1.1.1.3   root       85:                WARNFLAGS_CXX="${WARNFLAGS_CXX} $1",
                     86:                AC_MSG_RESULT([no]))
                     87:        CXXFLAGS="${old_CXXFLAGS}"
                     88: ])
1.1.1.4   root       89: ADD_CXX_WARN_IF(-Wcast-qual)
                     90: ADD_CXX_WARN_IF(-Wextra-semi)
                     91: ADD_CXX_WARN_IF(-Winconsistent-missing-override)
                     92: ADD_CXX_WARN_IF(-Winconsistent-missing-destructor-override)
                     93: ADD_CXX_WARN_IF(-Wlogical-op)
                     94: ADD_CXX_WARN_IF(-Wmissing-prototypes)
                     95: ADD_CXX_WARN_IF(-Wmissing-variable-declarations)
1.1.1.11  root       96: # -Wshadow-local があればそっちを使う(gcc>=7)、なければ -Wshadow (clang)
                     97: ADD_CXX_WARN_IF(-Wshadow-local)
                     98: if test x"${cxx_has_Wshadow_local}" != xyes; then
                     99:        ADD_CXX_WARN_IF(-Wshadow)
                    100: fi
1.1.1.12! root      101: ADD_CXX_WARN_IF(-Wsuggest-override)
1.1.1.4   root      102: ADD_CXX_WARN_IF(-Wvla-extension)
1.1.1.3   root      103: AC_SUBST([WARNFLAGS_CXX])
1.1       root      104: 
                    105: # Checks for libraries.
                    106: 
                    107: # Checks for header files.
                    108: AC_CHECK_HEADERS([bsd/bsd.h])
1.1.1.10  root      109: AC_CHECK_HEADERS([bsd/stdio.h])
                    110: AC_CHECK_HEADERS([byteswap.h])
1.1       root      111: AC_CHECK_HEADERS([endian.h])
1.1.1.2   root      112: AC_CHECK_HEADERS([histedit.h])
1.1       root      113: AC_CHECK_HEADERS([kqueue/sys/event.h])
1.1.1.3   root      114: AC_CHECK_HEADERS([pthread_np.h])
1.1       root      115: AC_CHECK_HEADERS([sys/endian.h])
                    116: AC_CHECK_HEADERS([sys/event.h])
                    117: AC_CHECK_HEADERS([net/bpf.h])
                    118: AC_CHECK_HEADERS([net/if_tap.h])
                    119: AC_CHECK_HEADERS([linux/if_tun.h])
1.1.1.10  root      120: AC_CHECK_HEADERS([libkern/OSByteOrder.h])
                    121: AC_CHECK_HEADERS([machine/endian.h])
1.1       root      122: 
                    123: # Linux で <kqueue/sys/event.h> がなければここで停止したほうがいい
1.1.1.6   root      124: case "${host_os}" in
                    125:  linux*)
                    126:        if test "$ac_cv_header_kqueue_sys_event_h" != "yes"; then
                    127:                AC_MSG_ERROR([*** kqueue is not found.
1.1.1.7   root      128: *** If you use Ubuntu, sudo apt install libkqueue-dev])
1.1.1.6   root      129:        fi
                    130:        ;;
                    131: esac
1.1       root      132: 
                    133: # Checks for typedefs, structures, and compiler characteristics.
                    134: AC_CHECK_HEADER_STDBOOL
                    135: #AC_C_INLINE
                    136: #AC_TYPE_INT16_T
                    137: #AC_TYPE_INT32_T
                    138: #AC_TYPE_INT64_T
                    139: #AC_TYPE_INT8_T
                    140: #AC_TYPE_SIZE_T
                    141: #AC_TYPE_UINT16_T
                    142: #AC_TYPE_UINT32_T
                    143: #AC_TYPE_UINT64_T
                    144: #AC_TYPE_UINT8_T
                    145: 
                    146: AC_MSG_CHECKING(for __builtin_assume)
1.1.1.10  root      147: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],
                    148:        [[
1.1       root      149:                __builtin_assume(1);
1.1.1.10  root      150:        ]])], [
                    151:                AC_MSG_RESULT(yes)
                    152:                AC_DEFINE(HAVE___BUILTIN_ASSUME)
                    153:        ], [
                    154:                AC_MSG_RESULT(no)
                    155:        ])
1.1       root      156: 
                    157: AC_MSG_CHECKING(for __builtin_bswap16)
1.1.1.10  root      158: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],
                    159:        [[
1.1       root      160:                return __builtin_bswap16(0);
1.1.1.10  root      161:        ]])], [
                    162:                AC_MSG_RESULT(yes)
                    163:                AC_DEFINE(HAVE___BUILTIN_BSWAP16)
                    164:        ], [
                    165:                AC_MSG_RESULT(no)
                    166:        ])
1.1       root      167: 
                    168: AC_MSG_CHECKING(for __builtin_bswap32)
1.1.1.10  root      169: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],
                    170:        [[
1.1       root      171:                return __builtin_bswap32(0);
1.1.1.10  root      172:        ]])], [
                    173:                AC_MSG_RESULT(yes)
                    174:                AC_DEFINE(HAVE___BUILTIN_BSWAP32)
                    175:        ], [
                    176:                AC_MSG_RESULT(no)
                    177:        ])
1.1       root      178: 
1.1.1.2   root      179: AC_MSG_CHECKING(for __builtin_bswap64)
1.1.1.10  root      180: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]],
                    181:        [[
1.1.1.2   root      182:                return __builtin_bswap64(0);
1.1.1.10  root      183:        ]])], [
                    184:                AC_MSG_RESULT(yes)
                    185:                AC_DEFINE(HAVE___BUILTIN_BSWAP64)
                    186:        ], [
                    187:                AC_MSG_RESULT(no)
                    188:        ])
1.1.1.2   root      189: 
1.1       root      190: AC_MSG_CHECKING(for __builtin_expect)
1.1.1.10  root      191: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
1.1       root      192:                if (__builtin_expect(1, 1)) return 0;
1.1.1.10  root      193:        ]])], [
                    194:                AC_MSG_RESULT(yes)
                    195:                AC_DEFINE(HAVE___BUILTIN_EXPECT)
                    196:        ], [
                    197:                AC_MSG_RESULT(no)
                    198:        ])
1.1       root      199: 
                    200: AC_MSG_CHECKING(for __builtin_unreachable)
1.1.1.10  root      201: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[
1.1       root      202:                __builtin_unreachable();
1.1.1.10  root      203:        ]])], [
                    204:                AC_MSG_RESULT(yes)
                    205:                AC_DEFINE(HAVE___BUILTIN_UNREACHABLE)
                    206:        ], [
                    207:                AC_MSG_RESULT(no)
                    208:        ])
1.1       root      209: 
                    210: AC_MSG_CHECKING(for __attribute__((__fallthrough__)))
                    211: old_CXXFLAGS="${CXXFLAGS}"
                    212: CXXFLAGS="${CXXFLAGS} -Wall -Werror"
1.1.1.10  root      213: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
                    214:        [
1.1       root      215:                extern int x;
                    216:                switch (x) {
                    217:                 case 0:
                    218:                        __attribute__((__fallthrough__));
                    219:                 case 1:
                    220:                        break;
                    221:                }
1.1.1.10  root      222:        ])], [
                    223:                AC_MSG_RESULT([yes])
                    224:                AC_DEFINE([HAVE___ATTRIBUTE_FALLTHROUGH])
                    225:        ], [
                    226:                AC_MSG_RESULT([no])
                    227:        ])
1.1       root      228: CXXFLAGS="${old_CXXFLAGS}"
                    229: 
                    230: dnl とりあえず __format__ までしか調べてないので、
                    231: dnl その中の __printf__ とかまで調べる必要ができたら直すこと。
                    232: AC_MSG_CHECKING(for __attribute__((__format__)))
                    233: old_CXXFLAGS="${CXXFLAGS}"
                    234: CXXFLAGS="${CXXFLAGS} -Wall -Werror"
                    235: AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
                    236:        [
                    237:                extern int f(const char *f, ...)
                    238:                        __attribute__((__format__(__printf__, 1, 2)));
1.1.1.10  root      239:        ], [])], [
                    240:                AC_MSG_RESULT([yes])
                    241:                AC_DEFINE([HAVE___ATTRIBUTE_FORMAT])
1.1       root      242:        ], [
1.1.1.10  root      243:                AC_MSG_RESULT([no])
                    244:        ])
1.1       root      245: CXXFLAGS="${old_CXXFLAGS}"
                    246: 
                    247: AC_MSG_CHECKING(for __attribute__((no_sanitize)))
                    248: old_CXXFLAGS="${CXXFLAGS}"
                    249: CXXFLAGS="${CXXFLAGS} -Werror"
                    250: AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
                    251:        [
                    252:                __attribute__((no_sanitize("undefined")))
                    253:                int func() { return 0; }
1.1.1.10  root      254:        ], [])], [
                    255:                AC_MSG_RESULT([yes])
                    256:                AC_DEFINE([HAVE___ATTRIBUTE_NO_SANITIZE])
1.1       root      257:        ], [
1.1.1.10  root      258:                AC_MSG_RESULT([no])
                    259:        ])
1.1       root      260: CXXFLAGS="${old_CXXFLAGS}"
                    261: 
                    262: 
                    263: AC_MSG_CHECKING(for __attribute__((__packed__)))
                    264: old_CXXFLAGS="${CXXFLAGS}"
                    265: CXXFLAGS="${CXXFLAGS} -Werror"
1.1.1.10  root      266: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
                    267:        [
1.1       root      268:                struct x { char a; int b; } __attribute__((__packed__));
1.1.1.10  root      269:        ])], [
                    270:                AC_MSG_RESULT([yes])
                    271:                AC_DEFINE([HAVE___ATTRIBUTE_PACKED])
                    272:        ], [
                    273:                AC_MSG_RESULT([no])
                    274:        ])
1.1       root      275: CXXFLAGS="${old_CXXFLAGS}"
                    276: 
                    277: AC_MSG_CHECKING(for __attribute__((__unused__)))
                    278: old_CXXFLAGS="${CXXFLAGS}"
                    279: CXXFLAGS="${CXXFLAGS} -Wunused-variable -Werror"
1.1.1.10  root      280: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
                    281:        [
1.1       root      282:                int a __attribute__((__unused__));
1.1.1.10  root      283:        ])], [
                    284:                AC_MSG_RESULT([yes])
                    285:                AC_DEFINE([HAVE___ATTRIBUTE_UNUSED])
                    286:        ], [
                    287:                AC_MSG_RESULT([no])
                    288:        ])
1.1       root      289: CXXFLAGS="${old_CXXFLAGS}"
                    290: 
                    291: # Checks for library functions.
                    292: #AC_FUNC_MALLOC
                    293: #AC_FUNC_MMAP
                    294: 
1.1.1.10  root      295: AC_MSG_CHECKING(for bswap16)
                    296: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    297:                #if defined(HAVE_SYS_ENDIAN_H)
                    298:                #include <sys/endian.h>
                    299:                #endif
                    300:        ], [
                    301:                bswap16(0);
                    302:        ])], [
                    303:                AC_MSG_RESULT([yes])
                    304:                AC_DEFINE([HAVE_BSWAP16])
                    305:        ], [
                    306:                AC_MSG_RESULT([no])
                    307:        ])
                    308: 
                    309: AC_MSG_CHECKING(for bswap32)
                    310: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    311:                #if defined(HAVE_SYS_ENDIAN_H)
                    312:                #include <sys/endian.h>
                    313:                #endif
                    314:        ], [
                    315:                bswap32(0);
                    316:        ])], [
                    317:                AC_MSG_RESULT([yes])
                    318:                AC_DEFINE([HAVE_BSWAP32])
                    319:        ], [
                    320:                AC_MSG_RESULT([no])
                    321:        ])
                    322: 
                    323: AC_MSG_CHECKING(for bswap64)
                    324: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    325:                #if defined(HAVE_SYS_ENDIAN_H)
                    326:                #include <sys/endian.h>
                    327:                #endif
                    328:        ], [
                    329:                bswap64(0);
                    330:        ])], [
                    331:                AC_MSG_RESULT([yes])
                    332:                AC_DEFINE([HAVE_BSWAP64])
                    333:        ], [
                    334:                AC_MSG_RESULT([no])
                    335:        ])
                    336: 
                    337: AC_MSG_CHECKING(for bswap_16)
                    338: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    339:                #if defined(HAVE_BYTESWAP_H)
                    340:                #include <byteswap.h>
                    341:                #endif
                    342:        ], [
                    343:                bswap_16(0);
                    344:        ])], [
                    345:                AC_MSG_RESULT([yes])
                    346:                AC_DEFINE([HAVE_BSWAP_16])
                    347:        ], [
                    348:                AC_MSG_RESULT([no])
                    349:        ])
                    350: 
                    351: AC_MSG_CHECKING(for bswap_32)
                    352: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    353:                #if defined(HAVE_BYTESWAP_H)
                    354:                #include <byteswap.h>
                    355:                #endif
                    356:        ], [
                    357:                bswap_32(0);
                    358:        ])], [
                    359:                AC_MSG_RESULT([yes])
                    360:                AC_DEFINE([HAVE_BSWAP_32])
                    361:        ], [
                    362:                AC_MSG_RESULT([no])
                    363:        ])
                    364: 
                    365: AC_MSG_CHECKING(for bswap_64)
                    366: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    367:                #if defined(HAVE_BYTESWAP_H)
                    368:                #include <byteswap.h>
                    369:                #endif
                    370:        ], [
                    371:                bswap_64(0);
                    372:        ])], [
                    373:                AC_MSG_RESULT([yes])
                    374:                AC_DEFINE([HAVE_BSWAP_64])
                    375:        ], [
                    376:                AC_MSG_RESULT([no])
                    377:        ])
                    378: 
                    379: AC_MSG_CHECKING(for swap16)
                    380: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    381:                #if defined(HAVE_SYS_ENDIAN_H)
                    382:                #include <sys/endian.h>
                    383:                #endif
                    384:        ], [
                    385:                swap16(0);
                    386:        ])], [
                    387:                AC_MSG_RESULT([yes])
                    388:                AC_DEFINE([HAVE_SWAP16])
                    389:        ], [
                    390:                AC_MSG_RESULT([no])
                    391:        ])
                    392: 
                    393: AC_MSG_CHECKING(for swap32)
                    394: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    395:                #if defined(HAVE_SYS_ENDIAN_H)
                    396:                #include <sys/endian.h>
                    397:                #endif
                    398:        ], [
                    399:                swap32(0);
                    400:        ])], [
                    401:                AC_MSG_RESULT([yes])
                    402:                AC_DEFINE([HAVE_SWAP32])
                    403:        ], [
                    404:                AC_MSG_RESULT([no])
                    405:        ])
                    406: 
                    407: AC_MSG_CHECKING(for swap64)
                    408: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    409:                #if defined(HAVE_SYS_ENDIAN_H)
                    410:                #include <sys/endian.h>
                    411:                #endif
                    412:        ], [
                    413:                swap64(0);
                    414:        ])], [
                    415:                AC_MSG_RESULT([yes])
                    416:                AC_DEFINE([HAVE_SWAP64])
                    417:        ], [
                    418:                AC_MSG_RESULT([no])
                    419:        ])
                    420: 
                    421: AC_MSG_CHECKING(for htobe16)
                    422: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([
                    423:                #if defined(HAVE_ENDIAN_H)
                    424:                #include <endian.h>
                    425:                #endif
                    426:                #if defined(HAVE_SYS_ENDIAN_H)
                    427:                #include <sys/endian.h>
                    428:                #endif
                    429:                #if defined(HAVE_MACHINE_ENDIAN_H)
                    430:                #include <machine/endian.h>
                    431:                #endif
                    432:        ], [
                    433:                htobe16(0);
                    434:        ])], [
                    435:                AC_MSG_RESULT([yes])
                    436:                AC_DEFINE([HAVE_HTOBE16])
                    437:        ], [
                    438:                AC_MSG_RESULT([no])
                    439:        ])
                    440: 
                    441: AC_MSG_CHECKING(for pthread_getname_np)
                    442: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1.1.1.3   root      443:                #include <pthread.h>
                    444:                #if defined(HAVE_PTHREAD_NP_H)
                    445:                #include <pthread_np.h>
                    446:                #endif
1.1.1.10  root      447:        ]], [[
                    448:                char name[32];
                    449:                pthread_getname_np(pthread_self(), name, sizeof(name));
                    450:        ]])], [
                    451:                AC_MSG_RESULT(yes)
                    452:                AC_DEFINE(HAVE_PTHREAD_GETNAME_NP)
1.1.1.3   root      453:        ], [
1.1.1.10  root      454:                AC_MSG_RESULT(no)
                    455:        ])
                    456: 
                    457: AC_MSG_CHECKING(for pthread_get_name_np)
                    458: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
                    459:                #include <pthread.h>
                    460:                #if defined(HAVE_PTHREAD_NP_H)
                    461:                #include <pthread_np.h>
                    462:                #endif
                    463:        ]], [[
                    464:                char name[32];
                    465:                pthread_get_name_np(pthread_self(), name, sizeof(name));
                    466:        ]])], [
                    467:                AC_MSG_RESULT(yes)
                    468:                AC_DEFINE(HAVE_PTHREAD_GET_NAME_NP)
                    469:        ], [
                    470:                AC_MSG_RESULT(no)
                    471:        ])
                    472: 
                    473: AC_MSG_CHECKING(for pthread_setname_np(name))
                    474: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
                    475:                #include <pthread.h>
                    476:                #if defined(HAVE_PTHREAD_NP_H)
                    477:                #include <pthread_np.h>
                    478:                #endif
                    479:        ]], [[
1.1       root      480:                pthread_setname_np("");
1.1.1.10  root      481:        ]])], [
                    482:                AC_MSG_RESULT(yes)
                    483:                AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_name)
                    484:        ], [
                    485:                AC_MSG_RESULT(no)
                    486:        ])
1.1       root      487: 
                    488: AC_MSG_CHECKING(for pthread_setname_np(thread, name))
1.1.1.10  root      489: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1.1.1.3   root      490:                #include <pthread.h>
                    491:                #if defined(HAVE_PTHREAD_NP_H)
                    492:                #include <pthread_np.h>
                    493:                #endif
1.1.1.10  root      494:        ]], [[
1.1       root      495:                pthread_setname_np(pthread_self(), "");
1.1.1.10  root      496:        ]])], [
                    497:                AC_MSG_RESULT(yes)
                    498:                AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_th_name)
                    499:        ], [
                    500:                AC_MSG_RESULT(no)
                    501:        ])
1.1       root      502: 
                    503: AC_MSG_CHECKING(for pthread_setname_np(thread, name, arg))
1.1.1.10  root      504: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1.1.1.3   root      505:                #include <pthread.h>
                    506:                #if defined(HAVE_PTHREAD_NP_H)
                    507:                #include <pthread_np.h>
                    508:                #endif
1.1.1.10  root      509:        ]], [[
1.1       root      510:                pthread_setname_np(pthread_self(), "", (void*)0);
1.1.1.10  root      511:        ]])], [
                    512:                AC_MSG_RESULT(yes)
                    513:                AC_DEFINE(HAVE_PTHREAD_SETNAME_NP_th_name_arg)
                    514:        ], [
                    515:                AC_MSG_RESULT(no)
                    516:        ])
1.1.1.3   root      517: 
                    518: AC_MSG_CHECKING(for pthread_set_name_np(thread, name))
1.1.1.10  root      519: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1.1.1.3   root      520:                #include <pthread.h>
                    521:                #if defined(HAVE_PTHREAD_NP_H)
                    522:                #include <pthread_np.h>
                    523:                #endif
1.1.1.10  root      524:        ]], [[
1.1.1.3   root      525:                pthread_set_name_np(pthread_self(), "");
1.1.1.10  root      526:        ]])],[
                    527:                AC_MSG_RESULT(yes)
                    528:                AC_DEFINE(HAVE_PTHREAD_SET_NAME_NP_th_name)
                    529:        ], [
                    530:                AC_MSG_RESULT(no)
                    531:        ])
1.1       root      532: 
1.1.1.6   root      533: AC_MSG_CHECKING(for iconv const)
1.1.1.10  root      534: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1.1.1.6   root      535:                #include <iconv.h>
1.1.1.10  root      536:        ]], [[
1.1.1.6   root      537:                const char **a;
                    538:                iconv(0, a, 0, 0, 0);
1.1.1.10  root      539:        ]])], [
                    540:                AC_MSG_RESULT(yes)
                    541:                AC_DEFINE(HAVE_ICONV_CONST)
                    542:        ], [
                    543:                AC_MSG_RESULT(no)
                    544:        ])
1.1.1.6   root      545: 
1.1.1.8   root      546: #
                    547: # Network
                    548: #
                    549: AC_MSG_CHECKING(for AF_PACKET)
1.1.1.10  root      550: AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
1.1.1.8   root      551:                #include <sys/socket.h>
1.1.1.10  root      552:        ]], [[
1.1.1.8   root      553:                AF_PACKET;
1.1.1.10  root      554:        ]])], [
                    555:                AC_MSG_RESULT(yes)
                    556:                AC_DEFINE(HAVE_HOSTNET_AFPACKET)
                    557:                AC_SUBST(HOSTNET_AFPACKET, yes)
                    558:        ], [
                    559:                AC_MSG_RESULT(no)
                    560:        ])
1.1.1.8   root      561: 
                    562: AC_MSG_CHECKING(for tap(4))
1.1.1.6   root      563: case "${host_os}" in
                    564:  linux*)
                    565:        if test x"$ac_cv_header_linux_if_tun_h" = xyes; then
1.1.1.8   root      566:                netdriver_tap=yes
1.1.1.6   root      567:        fi
                    568:        ;;
                    569:  openbsd*)
                    570:        # OpenBSD has no <net/if_tap.h> but supports tap(4).
1.1.1.8   root      571:        netdriver_tap=yes
1.1.1.6   root      572:        ;;
1.1.1.8   root      573:  *)
1.1.1.6   root      574:        if test x"$ac_cv_header_net_if_tap_h" = xyes; then
1.1.1.8   root      575:                netdriver_tap=yes
1.1.1.6   root      576:        fi
1.1.1.8   root      577:        ;;
                    578: esac
                    579: if test x"$netdriver_tap" = xyes; then
                    580:        AC_MSG_RESULT([yes])
                    581:        AC_DEFINE([HAVE_HOSTNET_TAP])
                    582:        AC_SUBST([HOSTNET_TAP], [yes])
                    583: else
                    584:        AC_MSG_RESULT([no])
                    585: fi
                    586: 
                    587: AC_MSG_CHECKING(for bpf(4))
                    588: if test x"$ac_cv_header_net_bpf_h" = xyes; then
                    589:        AC_MSG_RESULT([yes])
                    590:        AC_DEFINE([HAVE_HOSTNET_BPF])
                    591:        AC_SUBST([HOSTNET_BPF], [yes])
                    592: else
                    593:        AC_MSG_RESULT([no])
1.1       root      594: fi
                    595: 
                    596: # libbsd on Linux
1.1.1.5   root      597: AC_CHECK_LIB(c, getprogname, ,)
1.1       root      598: AC_CHECK_LIB(bsd, getprogname,
1.1.1.6   root      599:        LIBS="${LIBS} -lbsd"
                    600: )
1.1.1.5   root      601: # なければ停止する
                    602: AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
                    603:        [
                    604:                #include <stdlib.h>
                    605:                #include "confdefs.h"
                    606:                #if defined(HAVE_BSD_BSD_H)
                    607:                #include <bsd/bsd.h>
                    608:                #endif
                    609:        ], [
                    610:                getprogname()
1.1.1.10  root      611:        ])], [
1.1.1.5   root      612:        # nothing to do on success
1.1.1.10  root      613:        ], [
                    614:                AC_MSG_ERROR([*** getprogname is not found.
1.1.1.7   root      615: *** If you use Ubuntu, sudo apt install libbsd-dev])
1.1.1.5   root      616:        ]
                    617: )
1.1       root      618: 
1.1.1.2   root      619: # libedit (editline)
                    620: if test x"$ac_cv_header_histedit_h" = xyes; then
1.1.1.6   root      621:        LIBS="${LIBS} -ledit -ltermcap"
1.1.1.2   root      622: fi
                    623: 
1.1       root      624: # libkqueue on Linux
                    625: AC_CHECK_LIB(kqueue, kqueue,
1.1.1.6   root      626:        LIBS="${LIBS} -lkqueue"
                    627: )
1.1       root      628: 
1.1.1.5   root      629: AC_CHECK_LIB(z, gzclose,
1.1.1.6   root      630:        LIBS="${LIBS} -lz",
1.1.1.5   root      631:        [AC_MSG_ERROR([*** zlib is not found.
1.1.1.7   root      632: *** If use use Ubuntu, sudo apt install zlib1g-dev])]
1.1.1.5   root      633: )
                    634: 
1.1       root      635: # wxWidgets
1.1.1.10  root      636: AC_ARG_WITH([gui],
                    637:        [AS_HELP_STRING([--without-gui], [disable GUI support])],
                    638:        [],
                    639:        [with_gui=yes])
                    640: 
                    641: AS_IF([test "x$with_gui" != xno], [
                    642:        AC_MSG_CHECKING(for wx-config)
                    643:        wxconfig_paths="${WX_CONFIG} wx-config-3.0 wx-config"
                    644:        wxconfig=""
                    645:        for c in ${wxconfig_paths}; do
                    646:                ver=`$c --version 2>&1 | cut -f 1 -d .`
                    647:                if test "$ver" = "3"; then
                    648:                        wxconfig=$c
                    649:                        break
                    650:                fi
                    651:        done
                    652:        if test -z "$wxconfig"; then
                    653:                AC_MSG_ERROR([*** wxWidgets-3.0 not found in ${wxconfig_paths}
1.1.1.7   root      654: *** If you use pkgsrc, install x11/wxGTK30.
                    655: *** If you use Ubuntu, sudo apt install libwxgtk3.0-gtk3-dev])
1.1.1.10  root      656:        else
                    657:                AC_MSG_RESULT([$wxconfig])
1.1       root      658: 
1.1.1.10  root      659:                AC_MSG_CHECKING(for wxWidgets version)
                    660:                wxversion=`$wxconfig --version`
                    661:                AC_MSG_RESULT([$wxversion])
                    662: 
                    663:                wxcppflags=`$wxconfig --cppflags`
                    664:                wxlibs=`$wxconfig --libs`
                    665: 
                    666:                case "${host_os}" in
                    667:                 netbsd*)
                    668:                        # rpath。どうしたもんだかこれ
                    669:                        wxlibs=[`echo $wxlibs | sed -e 's/-L\([^ ]*\) /-L\1 -Wl,-R,\1 /'`]
                    670:                        ;;
                    671: 
                    672:                 darwin*)
                    673:                        # XXX -framework AudioToolbox が指定されているとリンカがこけるorz
                    674:                        wxlibs=[`echo $wxlibs | sed -e 's/-framework AudioToolbox//'`]
                    675:                        ;;
                    676:                esac
                    677: 
                    678:                AC_SUBST([WITH_GUI], [yes])
                    679:                AC_SUBST([WXWIDGETS_CPPFLAGS], [$wxcppflags])
                    680:                AC_SUBST([WXWIDGETS_LIBS], [$wxlibs])
                    681:        fi
1.1       root      682: 
1.1.1.10  root      683:        # gettext
                    684:        AC_CHECK_TOOL([MSGFMT], [msgfmt], [:])
                    685:        if test $MSGFMT = [:]; then
                    686:                AC_MSG_ERROR([*** msgfmt not found.
1.1.1.7   root      687: *** If you use pkgsrc, install devel/gettext-tools.
                    688: *** If you use Ubuntu, sudo apt install gettext])
1.1.1.10  root      689:        fi
                    690: ], [
                    691:        AC_SUBST([WITH_GUI], [no])
                    692: ])
1.1.1.5   root      693: 
1.1       root      694: AC_CONFIG_FILES([Makefile.cfg
                    695:        host/Makefile
                    696:        wx/Makefile
                    697:        util/viewcgrom/Makefile
                    698: ])
1.1.1.2   root      699: AC_CONFIG_HEADERS([config-nono.h])
1.1       root      700: AC_OUTPUT

unix.superglobalmegacorp.com

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