--- nono/configure.ac 2026/04/29 17:05:47 1.1.1.18 +++ nono/configure.ac 2026/04/29 17:05:51 1.1.1.19 @@ -111,6 +111,8 @@ fi ADD_CXX_WARN_IF(-Wstring-conversion) ADD_CXX_WARN_IF(-Wsuggest-destructor-override) ADD_CXX_WARN_IF(-Wsuggest-override) +# gcc14 が C++14 に対しても C++20 のエラーを出そうとする。は?? +ADD_CXX_WARN_IF(-Wno-template-id-cdtor) ADD_CXX_WARN_IF(-Wtype-limits) ADD_CXX_WARN_IF(-Wvla-extension) AC_SUBST([WARNFLAGS_CXX]) @@ -184,6 +186,7 @@ AS_IF([test x"${enable_neon}" != x"no"], # Checks for libraries. # Checks for header files. +AC_CHECK_HEADERS([alsa/asoundlib.h]) AC_CHECK_HEADERS([bsd/bsd.h]) AC_CHECK_HEADERS([bsd/stdio.h]) AC_CHECK_HEADERS([byteswap.h]) @@ -191,6 +194,8 @@ AC_CHECK_HEADERS([endian.h]) AC_CHECK_HEADERS([kqueue/sys/event.h]) AC_CHECK_HEADERS([pthread_np.h]) AC_CHECK_HEADERS([sched.h]) +AC_CHECK_HEADERS([sndio.h]) +AC_CHECK_HEADERS([sys/audioio.h]) AC_CHECK_HEADERS([sys/cpuset.h]) AC_CHECK_HEADERS([sys/endian.h]) AC_CHECK_HEADERS([sys/event.h]) @@ -928,8 +933,10 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_HOSTNET_AFPACKET) AC_SUBST(HOSTNET_AFPACKET, yes) + netdriver_afpacket=yes ], [ AC_MSG_RESULT(no) + netdriver_afpacket=no ]) AC_MSG_CHECKING(for tap(4)) @@ -962,8 +969,10 @@ if test x"$ac_cv_header_net_bpf_h" = xye AC_MSG_RESULT([yes]) AC_DEFINE([HAVE_HOSTNET_BPF]) AC_SUBST([HOSTNET_BPF], [yes]) + netdriver_bpf=yes else AC_MSG_RESULT([no]) + netdriver_bpf=no fi # @@ -1089,6 +1098,72 @@ AS_IF([test "x$with_libslirp" != "xno"], AC_SUBST([HOSTNET_SLIRP], [no]) ]) +# ALSA +case "${host_os}" in + linux*) + default_alsa=yes + ;; + *) + default_alsa=no + ;; +esac +AC_ARG_WITH([alsa], + [AS_HELP_STRING([--with-alsa], + [enable ALSA support (default:yes on Linux, otherwise no)])], + [with_alsa=${withval}], + [with_alsa=${default_alsa}]) +sounddriver_alsa=no +if test x"${with_alsa}" = xyes; then + AC_CHECK_LIB(asound, snd_pcm_open, + [has_asound=yes], + [has_asound=no]) + if test x"${ac_cv_header_alsa_asoundlib_h}" = xyes -a \ + x"${ac_cv_lib_asound_snd_pcm_open}" = xyes; then + AC_DEFINE([HAVE_HOSTSOUND_ALSA]) + AC_SUBST([HOSTSOUND_ALSA], [yes]) + LIBS_SOUND="${LIBS_SOUND} -lasound" + sounddriver_alsa=yes + else + AC_MSG_ERROR([*** or libasound not found. +*** If you use Ubuntu, sudo apt install libasound2-dev. +*** Or specify --without-alsa (it disables hostsound-driver=alsa).]) + fi +fi + +# NetBSD audio +if test x"${ac_cv_header_sys_audioio_h}" = xyes; then + AC_MSG_CHECKING(for AUDIO_GETINFO) + AC_COMPILE_IFELSE([AC_LANG_PROGRAM([ + #include + #include + #include + ], [ + struct audio_info info; + AUDIO_INITINFO(&info); + ioctl(0, AUDIO_GETINFO, &info); + ])], [ + AC_MSG_RESULT([yes]) + AC_DEFINE([HAVE_HOSTSOUND_NETBSD]) + AC_SUBST([HOSTSOUND_NETBSD], [yes]) + sounddriver_netbsd=yes + ], [ + AC_MSG_RESULT([no]) + sounddriver_netbsd=no + ]) +fi + +# OpenBSD sndio +if test x"${ac_cv_header_sndio_h}" = xyes; then + AC_DEFINE([HAVE_HOSTSOUND_SNDIO]) + AC_SUBST([HOSTSOUND_SNDIO], [yes]) + LIBS_SOUND="${LIBS_SOUND} -lsndio" + sounddriver_sndio=yes +else + sounddriver_sndio=no +fi + +AC_SUBST([LIBS_SOUND], [${LIBS_SOUND}]) + # wxWidgets AC_ARG_WITH([gui], [AS_HELP_STRING([--without-gui], [disable GUI support])], @@ -1197,3 +1272,32 @@ fi AC_CONFIG_FILES([Makefile.cfg]) AC_CONFIG_HEADERS([config-nono.h]) AC_OUTPUT + +# サマリを表示 +echo "" +echo "Configuration summary:" +echo -n "HostNet supports: " +if test x"$netdriver_afpacket" = xyes; then + echo -n " afpacket" +fi +if test x"$netdriver_bpf" = xyes; then + echo -n " bpf" +fi +if test x"$has_libslirp" = xyes; then + echo -n " slirp" +fi +if test x"$netdriver_tap" = xyes; then + echo -n " tap" +fi +echo "" +echo -n "HostSound supports: " +if test x"$sounddriver_alsa" = xyes; then + echo -n " alsa" +fi +if test x"$sounddriver_netbsd" = xyes; then + echo -n " netbsd" +fi +if test x"$sounddriver_sndio" = xyes; then + echo -n " sndio" +fi +echo ""