mirror of https://github.com/snes9xgit/snes9x.git
GTK+: Switch to Meson build system.
This commit is contained in:
parent
4aec72e5a7
commit
913e797914
241
gtk/Makefile.am
241
gtk/Makefile.am
|
@ -1,241 +0,0 @@
|
|||
SUBDIRS = data po
|
||||
|
||||
bin_PROGRAMS = snes9x-gtk
|
||||
snes9x_gtk_LDADD =
|
||||
if DEBUG
|
||||
else
|
||||
snes9x_gtk_CXXFLAGS = -fno-exceptions -fno-rtti
|
||||
endif
|
||||
noinst_LIBRARIES =
|
||||
|
||||
AM_CPPFLAGS = -I../apu/bapu -I$(top_srcdir) -I.. -DDATADIR=\""$(snes9xdatadir)"\" -DSNES9XLOCALEDIR=\""$(snes9xlocaledir)"\"
|
||||
|
||||
CLEANFILES = \
|
||||
src/gtk_snes9x_ui.cpp \
|
||||
src/sourcify
|
||||
|
||||
snes9x_gtk_SOURCES = \
|
||||
src/gtk_sound_driver.h \
|
||||
../filter/2xsai.cpp \
|
||||
../filter/2xsai.h \
|
||||
../filter/epx.cpp \
|
||||
../filter/epx.h \
|
||||
src/filter_epx_unsafe.h \
|
||||
src/filter_epx_unsafe.cpp \
|
||||
src/gtk_binding.cpp \
|
||||
src/gtk_binding.h \
|
||||
src/gtk_cheat.cpp \
|
||||
src/gtk_cheat.h \
|
||||
src/gtk_config.cpp \
|
||||
src/gtk_config.h \
|
||||
src/gtk_control.cpp \
|
||||
src/gtk_control.h \
|
||||
src/gtk_display.cpp \
|
||||
src/gtk_display_driver_gtk.cpp \
|
||||
src/gtk_display_driver_gtk.h \
|
||||
src/gtk_display_driver.h \
|
||||
src/gtk_display.h \
|
||||
src/gtk_file.cpp \
|
||||
src/gtk_file.h \
|
||||
src/gtk_snes9x_ui.cpp \
|
||||
src/gtk_builder_window.cpp \
|
||||
src/gtk_builder_window.h \
|
||||
src/gtk_preferences.cpp \
|
||||
src/gtk_preferences.h \
|
||||
src/gtk_s9xcore.h \
|
||||
src/gtk_s9x.cpp \
|
||||
src/gtk_s9x.h \
|
||||
src/gtk_s9xwindow.cpp \
|
||||
src/gtk_s9xwindow.h \
|
||||
src/gtk_sound.cpp \
|
||||
src/gtk_sound.h \
|
||||
src/gtk_splash.cpp \
|
||||
../filter/snes_ntsc_config.h \
|
||||
../filter/snes_ntsc.h \
|
||||
../filter/snes_ntsc_impl.h \
|
||||
../filter/snes_ntsc.c \
|
||||
src/gtk_2_3_compat.h
|
||||
|
||||
if HQ2X
|
||||
snes9x_gtk_SOURCES += \
|
||||
../filter/hq2x.cpp \
|
||||
../filter/hq2x.h
|
||||
endif
|
||||
|
||||
if XBRZ
|
||||
snes9x_gtk_SOURCES += \
|
||||
src/filter_xbrz.cpp\
|
||||
src/filter_xbrz.h\
|
||||
../filter/xbrz.cpp \
|
||||
../filter/xbrz.h
|
||||
endif
|
||||
|
||||
if PORTAUDIO
|
||||
snes9x_gtk_SOURCES += \
|
||||
src/gtk_sound_driver_portaudio.cpp \
|
||||
src/gtk_sound_driver_portaudio.h
|
||||
endif
|
||||
|
||||
if PULSEAUDIO
|
||||
snes9x_gtk_SOURCES += \
|
||||
src/gtk_sound_driver_pulse.cpp \
|
||||
src/gtk_sound_driver_pulse.h
|
||||
endif
|
||||
|
||||
if OSS
|
||||
snes9x_gtk_SOURCES += \
|
||||
src/gtk_sound_driver_oss.h \
|
||||
src/gtk_sound_driver_oss.cpp
|
||||
endif
|
||||
|
||||
snes9x_gtk_SOURCES += \
|
||||
src/gtk_sound_driver_sdl.h \
|
||||
src/gtk_sound_driver_sdl.cpp
|
||||
|
||||
if ALSA
|
||||
snes9x_gtk_SOURCES += \
|
||||
src/gtk_sound_driver_alsa.h \
|
||||
src/gtk_sound_driver_alsa.cpp
|
||||
endif
|
||||
|
||||
snes9x_gtk_SOURCES += \
|
||||
../fxinst.cpp \
|
||||
../fxemu.cpp \
|
||||
../fxdbg.cpp
|
||||
|
||||
snes9x_gtk_SOURCES += \
|
||||
../c4.cpp \
|
||||
../c4emu.cpp
|
||||
|
||||
if WAYLAND
|
||||
snes9x_gtk_SOURCES += \
|
||||
src/gtk_wayland_egl_context.cpp
|
||||
endif
|
||||
|
||||
# APU
|
||||
snes9x_gtk_SOURCES += \
|
||||
../apu/apu.cpp
|
||||
|
||||
# Byuu's APU
|
||||
snes9x_gtk_SOURCES += \
|
||||
../apu/bapu/dsp/sdsp.cpp \
|
||||
../apu/bapu/smp/smp.cpp \
|
||||
../apu/bapu/smp/smp_state.cpp
|
||||
|
||||
# MSU1
|
||||
snes9x_gtk_SOURCES += \
|
||||
../msu1.cpp \
|
||||
../msu1.h
|
||||
|
||||
# DSP
|
||||
snes9x_gtk_SOURCES += \
|
||||
../dsp.cpp \
|
||||
../dsp1.cpp \
|
||||
../dsp2.cpp \
|
||||
../dsp3.cpp \
|
||||
../dsp4.cpp
|
||||
|
||||
# Base
|
||||
snes9x_gtk_SOURCES += \
|
||||
../spc7110.cpp \
|
||||
../obc1.cpp \
|
||||
../seta.cpp \
|
||||
../seta010.cpp \
|
||||
../seta011.cpp \
|
||||
../seta018.cpp \
|
||||
../controls.cpp \
|
||||
../crosshairs.cpp \
|
||||
../cpu.cpp \
|
||||
../sa1.cpp \
|
||||
../debug.cpp \
|
||||
../sdd1.cpp \
|
||||
../tile.cpp \
|
||||
../srtc.cpp \
|
||||
../gfx.cpp \
|
||||
../memmap.cpp \
|
||||
../clip.cpp \
|
||||
../ppu.cpp \
|
||||
../dma.cpp \
|
||||
../snes9x.cpp \
|
||||
../globals.cpp \
|
||||
../stream.cpp \
|
||||
../conffile.cpp \
|
||||
../bsx.cpp \
|
||||
../logger.cpp \
|
||||
../snapshot.cpp \
|
||||
../screenshot.cpp \
|
||||
../movie.cpp \
|
||||
../statemanager.cpp \
|
||||
../sha256.cpp \
|
||||
../bml.cpp
|
||||
|
||||
# ASMCPU Doesn't exist anymore.
|
||||
snes9x_gtk_SOURCES += \
|
||||
../cpuops.cpp \
|
||||
../cpuexec.cpp \
|
||||
../sa1cpu.cpp
|
||||
|
||||
snes9x_gtk_SOURCES += \
|
||||
../cheats.cpp \
|
||||
../cheats2.cpp
|
||||
|
||||
snes9x_gtk_SOURCES += ../sdd1emu.cpp
|
||||
|
||||
snes9x_gtk_SOURCES += \
|
||||
../netplay.cpp \
|
||||
../server.cpp
|
||||
|
||||
|
||||
# Zip support is nonconfigurable.
|
||||
snes9x_gtk_SOURCES += \
|
||||
../loadzip.cpp
|
||||
if ! SYSTEM_ZIP
|
||||
snes9x_gtk_SOURCES += \
|
||||
../unzip/unzip.c \
|
||||
../unzip/ioapi.c \
|
||||
../unzip/zip.c
|
||||
endif
|
||||
UNZIPDEFINES=-DUNZIP_SUPPORT
|
||||
|
||||
snes9x_gtk_LDADD += libjma.a
|
||||
noinst_LIBRARIES += libjma.a
|
||||
libjma_a_SOURCES = \
|
||||
../jma/s9x-jma.cpp \
|
||||
../jma/7zlzma.cpp \
|
||||
../jma/crc32.cpp \
|
||||
../jma/iiostrm.cpp \
|
||||
../jma/inbyte.cpp \
|
||||
../jma/jma.cpp \
|
||||
../jma/lzma.cpp \
|
||||
../jma/lzmadec.cpp \
|
||||
../jma/winout.cpp
|
||||
libjma_a_CPPFLAGS = -fexceptions
|
||||
|
||||
if OPENGL
|
||||
snes9x_gtk_SOURCES += \
|
||||
src/gtk_display_driver_opengl.cpp \
|
||||
src/gtk_display_driver_opengl.h \
|
||||
src/gtk_glx_context.cpp \
|
||||
../shaders/glsl.cpp \
|
||||
../shaders/shader_helpers.cpp \
|
||||
src/gtk_shader_parameters.cpp
|
||||
|
||||
endif
|
||||
|
||||
if XV
|
||||
snes9x_gtk_SOURCES += \
|
||||
src/gtk_display_driver_xv.cpp \
|
||||
src/gtk_display_driver_xv.h
|
||||
endif
|
||||
|
||||
snes9x_gtk_SOURCES += \
|
||||
src/gtk_netplay_dialog.cpp \
|
||||
src/gtk_netplay_dialog.h \
|
||||
src/gtk_netplay.cpp \
|
||||
src/gtk_netplay.h
|
||||
|
||||
src/sourcify: src/sourcify.c
|
||||
$(CC) src/sourcify.c -o src/sourcify
|
||||
|
||||
src/gtk_snes9x_ui.cpp: src/sourcify src/snes9x.ui
|
||||
src/sourcify src/snes9x.ui src/gtk_snes9x_ui.cpp snes9x_ui
|
|
@ -1,2 +0,0 @@
|
|||
#!/bin/sh
|
||||
autoreconf -i -f
|
514
gtk/configure.ac
514
gtk/configure.ac
|
@ -1,514 +0,0 @@
|
|||
AC_INIT([snes9x-gtk], 1.58)
|
||||
|
||||
AC_CONFIG_MACRO_DIR([macros])
|
||||
|
||||
if test -z "$CFLAGS"; then
|
||||
CFLAGS="-Os -pipe"
|
||||
fi
|
||||
if test -z "$CXXFLAGS"; then
|
||||
CXXFLAGS="$CFLAGS"
|
||||
fi
|
||||
|
||||
EXTRA_FLAGS="-Wall -W -Wno-unused-parameter"
|
||||
CFLAGS="$CFLAGS $EXTRA_FLAGS"
|
||||
CXXFLAGS="$CXXFLAGS $EXTRA_FLAGS"
|
||||
|
||||
AC_PROG_CC
|
||||
AC_PROG_CXX
|
||||
AC_PROG_RANLIB
|
||||
AC_LANG_CPLUSPLUS
|
||||
|
||||
AX_CXX_COMPILE_STDCXX([11], [noext], [optional])
|
||||
|
||||
AC_PROG_INSTALL
|
||||
AM_INIT_AUTOMAKE([foreign subdir-objects])
|
||||
|
||||
m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])])
|
||||
|
||||
AM_PROG_CC_C_O
|
||||
GETTEXT_PACKAGE=[snes9x-gtk]
|
||||
AC_SUBST(GETTEXT_PACKAGE)
|
||||
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, "$GETTEXT_PACKAGE")
|
||||
|
||||
AM_GNU_GETTEXT([external])
|
||||
AM_GNU_GETTEXT_VERSION([0.19.2])
|
||||
|
||||
snes9xlocaledir='${prefix}/share/locale'
|
||||
snes9xdatadir='${prefix}/share/snes9x'
|
||||
|
||||
AC_SUBST(snes9xlocaledir)
|
||||
AC_SUBST(snes9xdatadir)
|
||||
|
||||
AC_ARG_WITH(debug,
|
||||
[AS_HELP_STRING([--with(out)-debug],
|
||||
[Leave debug information in the final binary (default: without)])],
|
||||
[],
|
||||
[with_debug=no])
|
||||
|
||||
AC_ARG_WITH(opengl,
|
||||
[AS_HELP_STRING([--with(out)-opengl],
|
||||
[Use OpenGL for output (default: with)])],
|
||||
[],
|
||||
[with_opengl=yes])
|
||||
|
||||
AC_ARG_WITH(xv,
|
||||
[AS_HELP_STRING([--with(out)-xv],
|
||||
[Enable XVideo output on GTK (default: with)])],
|
||||
[],
|
||||
[with_xv=yes])
|
||||
|
||||
AC_ARG_WITH(portaudio,
|
||||
[AS_HELP_STRING([--with(out)-portaudio],
|
||||
[Enable PortAudio sound driver support (default: with)])],
|
||||
[],
|
||||
[with_portaudio=yes])
|
||||
|
||||
AC_ARG_WITH(oss,
|
||||
[AS_HELP_STRING([--with(out)-oss],
|
||||
[Enable OSS sound driver support (default: with)])],
|
||||
[],
|
||||
[with_oss=yes])
|
||||
|
||||
AC_ARG_WITH(alsa,
|
||||
[AS_HELP_STRING([--with(out)-alsa],
|
||||
[Enable ALSA sound driver support (default: with)])],
|
||||
[],
|
||||
[with_alsa=yes])
|
||||
|
||||
AC_ARG_WITH(pulseaudio,
|
||||
[AS_HELP_STRING([--with(out)-pulseaudio],
|
||||
[Enable PulseAudio sound driver support (default: with)])],
|
||||
[],
|
||||
[with_pulseaudio=yes])
|
||||
|
||||
AC_ARG_WITH(debugger,
|
||||
[AS_HELP_STRING([--with(out)-debugger],
|
||||
[Enable debugger (default: without)])],
|
||||
[],
|
||||
[with_debugger=no])
|
||||
|
||||
AC_ARG_WITH(hq2x,
|
||||
[AS_HELP_STRING([--with(out)-hq2x],
|
||||
[Enable support for the HQ2x family of filters (default: with)])],
|
||||
[],
|
||||
[with_hq2x=yes])
|
||||
|
||||
AC_ARG_WITH(xbrz,
|
||||
[AS_HELP_STRING([--with(out)-xbrz],
|
||||
[Enable support for the xBRZ filter (default: with)])],
|
||||
[],
|
||||
[with_xbrz=yes])
|
||||
|
||||
AC_ARG_WITH(zlib,
|
||||
[AS_HELP_STRING([--with(out)-zlib],
|
||||
[Support gzip decompression])],
|
||||
[],
|
||||
[with_zlib=yes])
|
||||
|
||||
AC_ARG_WITH(system-zip,
|
||||
[AS_HELP_STRING([--with(out)-system-zip],
|
||||
[Use system zip])],
|
||||
[],
|
||||
[with_system_zip=check])
|
||||
|
||||
AC_ARG_WITH(screenshot,
|
||||
[AS_HELP_STRING([--with(out)-screenshot],
|
||||
[Screenshot support through libpng if available (default: with)])],
|
||||
[],
|
||||
[with_screenshot=yes])
|
||||
|
||||
AC_ARG_WITH(gtk3,
|
||||
[AS_HELP_STRING([--with(out)-gtk3],
|
||||
[Build with GTK+ 3 if available (default: with)])],
|
||||
[],
|
||||
[with_gtk3=yes])
|
||||
|
||||
AC_ARG_WITH(wayland,
|
||||
[AS_HELP_STRING([--with(out)-wayland],
|
||||
[Build with Wayland support if available (default: with)])],
|
||||
[],
|
||||
[with_wayland=yes])
|
||||
|
||||
AC_ARG_WITH(gtk2,
|
||||
[AS_HELP_STRING([--with(out)-gtk2],
|
||||
[Build with GTK+ 3 if available (default: without)])],
|
||||
[],
|
||||
[with_gtk2=no])
|
||||
|
||||
AC_ARG_ENABLE(dangerous-hacks,
|
||||
[AS_HELP_STRING([--enable-dangerous-hacks],
|
||||
[Allow dangerous hacks to be enabled.])],
|
||||
[],
|
||||
[enable_dangerous_hacks=no])
|
||||
|
||||
if test yes = "$with_debug" ; then
|
||||
CFLAGS="$CFLAGS -g"
|
||||
else
|
||||
CFLAGS="$CFLAGS -fomit-frame-pointer"
|
||||
fi
|
||||
|
||||
LIBS="$LIBS -lX11 -ldl -lXext"
|
||||
OPENGL=no
|
||||
|
||||
if test yes = "$with_opengl" ; then
|
||||
OPENGL=yes
|
||||
fi
|
||||
|
||||
GTK3=no
|
||||
if test yes = "$with_gtk3" -a no = "$with_gtk2"; then
|
||||
GTK_VERSION="gtk+-3.0 >= 3.22"
|
||||
GTK3=yes
|
||||
else
|
||||
GTK_VERSION="gtk+-2.0 >= 2.16"
|
||||
fi
|
||||
|
||||
PKG_CHECK_MODULES([GTK], ["$GTK_VERSION"])
|
||||
PKG_CHECK_MODULES([GLIB], [glib-2.0 > 2.28 gthread-2.0 >= 2.6 gobject-2.0 >= 2.6])
|
||||
PKG_CHECK_MODULES([XRANDR], [xrandr])
|
||||
|
||||
if test yes = "$with_opengl" ; then
|
||||
PKG_CHECK_MODULES([EPOXY], [epoxy], [
|
||||
CFLAGS="$CFLAGS $EPOXY_CFLAGS -DUSE_OPENGL"
|
||||
LIBS="$LIBS $EPOXY_LIBS"
|
||||
], [
|
||||
echo "Couldn't find libepoxy. Disabling OpenGL."
|
||||
OPENGL=no
|
||||
])
|
||||
fi
|
||||
|
||||
WAYLAND=no
|
||||
if test yes = "$with_wayland"; then
|
||||
PKG_CHECK_MODULES([WAYLAND_EGL],[wayland-egl],[
|
||||
if test yes = "$GTK3" ; then
|
||||
CFLAGS="$CFLAGS -DUSE_WAYLAND $WAYLAND_EGL_CFLAGS"
|
||||
LIBS="$LIBS $WAYLAND_EGL_LIBS"
|
||||
WAYLAND=yes
|
||||
else
|
||||
echo "Found Wayland, but need GTK3 for support."
|
||||
fi
|
||||
],[
|
||||
echo "Not using Wayland-EGL."
|
||||
])
|
||||
fi
|
||||
|
||||
GTKJOY=no
|
||||
SDL_CFLAGS=""
|
||||
SDL_LIBS=""
|
||||
PKG_CHECK_MODULES([SDL],[sdl2],[
|
||||
GTKJOY=yes
|
||||
],[
|
||||
AC_CHECK_PROG(SDLCONFIGFOUND,[sdl2-config],yes,no)
|
||||
|
||||
if test yes = "$SDLCONFIGFOUND" ; then
|
||||
SDL_CFLAGS="`sdl2-config --cflags`"
|
||||
SDL_LIBS="`sdl2-config --libs`"
|
||||
GTKJOY=yes
|
||||
else
|
||||
echo "Cannot find SDL2."
|
||||
exit
|
||||
fi
|
||||
])
|
||||
|
||||
XV=no
|
||||
XV_CFLAGS=""
|
||||
XV_LIBS=""
|
||||
if test yes = "$with_xv" ; then
|
||||
PKG_CHECK_MODULES([XV],[xv],[
|
||||
XV=yes
|
||||
CFLAGS="$CFLAGS -DUSE_XV"
|
||||
],[
|
||||
echo "Cannot find libXv. Make sure the X11 development headers are installed."
|
||||
echo "--> Disabling Xv support"
|
||||
])
|
||||
fi
|
||||
|
||||
PORTAUDIO=no
|
||||
PORTAUDIO_CFLAGS=""
|
||||
PORTAUDIO_LIBS=""
|
||||
if test yes = "$with_portaudio" ; then
|
||||
PKG_CHECK_MODULES([PORTAUDIO], [portaudio-2.0 >= 10],[
|
||||
PORTAUDIO=yes
|
||||
CFLAGS="$CFLAGS -DUSE_PORTAUDIO"
|
||||
],[
|
||||
echo "Cannot find PortAudio."
|
||||
echo "--> Disabling PortAudio support"
|
||||
])
|
||||
fi
|
||||
|
||||
OSS=no
|
||||
if test yes = "$with_oss" ; then
|
||||
|
||||
AC_CHECK_HEADER(sys/soundcard.h, [
|
||||
CFLAGS="$CFLAGS -DUSE_OSS"
|
||||
OSS=yes
|
||||
],[
|
||||
echo "Cannot find OSS headers."
|
||||
echo "--> Disabling OSS support"
|
||||
])
|
||||
fi
|
||||
|
||||
ALSA=no
|
||||
ALSA_CFLAGS=""
|
||||
ALSA_LIBS=""
|
||||
if test yes = "$with_alsa" ; then
|
||||
|
||||
PKG_CHECK_MODULES([ALSA], [alsa],[
|
||||
ALSA=yes
|
||||
CFLAGS="$CFLAGS -DUSE_ALSA"
|
||||
],[
|
||||
echo "Cannot find ALSA development support."
|
||||
echo "--> Disabling ALSA"
|
||||
])
|
||||
fi
|
||||
|
||||
PULSEAUDIO=no
|
||||
PULSEAUDIO_CFLAGS=""
|
||||
PULSEAUDIO_LIBS=""
|
||||
if test yes = "$with_pulseaudio" ; then
|
||||
PKG_CHECK_MODULES([PULSEAUDIO], [libpulse-simple],[
|
||||
PULSEAUDIO=yes
|
||||
CFLAGS="$CFLAGS -DUSE_PULSEAUDIO"
|
||||
],[
|
||||
echo "Cannot find PulseAudio library."
|
||||
echo "--> Disabling PulseAudio"
|
||||
])
|
||||
fi
|
||||
|
||||
LIBPNG_CFLAGS=""
|
||||
LIBPNG_LIBS=""
|
||||
if test yes = "$with_screenshot"; then
|
||||
PKG_CHECK_MODULES([LIBPNG],[libpng],[
|
||||
CFLAGS="$CFLAGS -DHAVE_LIBPNG"
|
||||
],[
|
||||
echo "Cannot find libpng."
|
||||
echo "--> Disabling screenshot support."
|
||||
])
|
||||
fi
|
||||
|
||||
SYSTEM_ZIP=no
|
||||
SYSTEM_ZIP_CFLAGS=""
|
||||
SYSTEM_ZIP_LIBS=""
|
||||
ZIP_CFLAGS="-I../unzip"
|
||||
if test no != "$with_system_zip" && test yes = "$with_zlib" ; then
|
||||
PKG_CHECK_MODULES([SYSTEM_ZIP],[minizip],[
|
||||
ZIP_CFLAGS=""
|
||||
SYSTEM_ZIP=yes
|
||||
CFLAGS="$CFLAGS $SYSTEM_ZIP_CFLAGS -DSYSTEM_ZIP"
|
||||
LIBS="$LIBS $SYSTEM_ZIP_LIBS"
|
||||
],[
|
||||
if test check = "$with_system_zip"; then
|
||||
AC_MSG_WARN(Cannot find system minizip library)
|
||||
else
|
||||
AC_MSG_ERROR(--with-system-zip given but cannot find system minizip library)
|
||||
fi
|
||||
])
|
||||
fi
|
||||
|
||||
if test yes = "$with_hq2x" ; then
|
||||
HQ2X=yes
|
||||
CFLAGS="$CFLAGS -DUSE_HQ2X"
|
||||
else
|
||||
HQ2X=no
|
||||
fi
|
||||
|
||||
if test yes = "$with_xbrz" ; then
|
||||
XBRZ=yes
|
||||
CFLAGS="$CFLAGS -DUSE_XBRZ"
|
||||
else
|
||||
XBRZ=no
|
||||
fi
|
||||
|
||||
CFLAGS="$CFLAGS $GTK_CFLAGS $GLIB_CFLAGS $PORTAUDIO_CFLAGS $LIBPNG_CFLAGS $SDL_CFLAGS $XV_CFLAGS $XRANDR_CFLAGS $ALSA_CFLAGS $PULSEAUDIO_CFLAGS"
|
||||
LIBS="$LIBS $GTK_LIBS $GLIB_LIBS $PORTAUDIO_LIBS $LIBPNG_LIBS $SDL_LIBS $XV_LIBS $XRANDR_LIBS $ALSA_LIBS $PULSEAUDIO_LIBS"
|
||||
|
||||
CFLAGS="$CFLAGS -DPIXEL_FORMAT=RGB565"
|
||||
|
||||
if test yes = "$with_debugger"; then
|
||||
CFLAGS="$CFLAGS -DDEBUGGER"
|
||||
fi
|
||||
|
||||
CFLAGS="$CFLAGS -DNETPLAY_SUPPORT -DJMA_SUPPORT"
|
||||
|
||||
if test yes = "$with_zlib"; then
|
||||
AC_CHECK_HEADERS(zlib.h)
|
||||
AC_CHECK_LIB(z, gzread, [
|
||||
CFLAGS="$CFLAGS -DZLIB"
|
||||
LIBS="$LIBS -lz"
|
||||
], ,)
|
||||
fi
|
||||
|
||||
if test yes = "$enable_dangerous_hacks"; then
|
||||
CFLAGS="$CFLAGS -DALLOW_CPU_OVERCLOCK"
|
||||
fi
|
||||
|
||||
dnl Check for functions
|
||||
AC_CHECK_FUNC(mkstemp, [
|
||||
CFLAGS="$CFLAGS -DHAVE_MKSTEMP"
|
||||
])
|
||||
|
||||
dnl Check for headers
|
||||
|
||||
AC_CHECK_HEADER(strings.h, [
|
||||
CFLAGS="$CFLAGS -DHAVE_STRINGS_H"
|
||||
])
|
||||
|
||||
AC_CHECK_HEADER(sys/ioctl.h, [
|
||||
CFLAGS="$CFLAGS -DHAVE_SYS_IOCTL_H"
|
||||
])
|
||||
|
||||
AC_CHECK_HEADER(stdint.h, [
|
||||
CFLAGS="$CFLAGS -DHAVE_STDINT_H"
|
||||
])
|
||||
|
||||
|
||||
dnl Check SAR
|
||||
|
||||
AC_DEFUN([AC_MY_CHECK_SAR],
|
||||
[
|
||||
AC_MSG_CHECKING([if rightshift $1 is arithmetic])
|
||||
AC_CACHE_VAL(ac_cv_my_sar_$1,
|
||||
[
|
||||
AC_TRY_RUN([
|
||||
#include "../port.h"
|
||||
|
||||
int main(void){
|
||||
$1 i;
|
||||
|
||||
i=-1;
|
||||
i>>=1;
|
||||
return(i<0?0:1);
|
||||
}
|
||||
],ac_cv_my_sar_$1=yes,ac_cv_my_sar_$1=no,ac_cv_my_sar_%1=no)
|
||||
])
|
||||
|
||||
if test $ac_cv_my_sar_$1 = no; then
|
||||
AC_MSG_RESULT(no)
|
||||
else
|
||||
CFLAGS="$CFLAGS -DRIGHTSHIFT_$1_IS_SAR"
|
||||
AC_MSG_RESULT(yes)
|
||||
fi
|
||||
])
|
||||
|
||||
AC_MSG_CHECKING(if sizeof(void *) == sizeof(int))
|
||||
AC_TRY_RUN([
|
||||
int main()
|
||||
{
|
||||
return(!(sizeof(void *) == sizeof(int)));
|
||||
}
|
||||
], snes9x_ptr_is_int=yes)
|
||||
if test x$snes9x_ptr_is_int = xyes; then
|
||||
AC_MSG_RESULT(yes)
|
||||
else
|
||||
AC_MSG_RESULT(no)
|
||||
CFLAGS="$CFLAGS -DPTR_NOT_INT"
|
||||
fi
|
||||
|
||||
AC_MY_CHECK_SAR(int8)
|
||||
AC_MY_CHECK_SAR(int16)
|
||||
AC_MY_CHECK_SAR(int32)
|
||||
AC_MY_CHECK_SAR(int64)
|
||||
if test $ac_cv_my_sar_int8 = yes && \
|
||||
test $ac_cv_my_sar_int16 = yes && \
|
||||
test $ac_cv_my_sar_int32 = yes && \
|
||||
test $ac_cv_my_sar_int64 = yes ; then
|
||||
CFLAGS="$CFLAGS -DRIGHTSHIFT_IS_SAR"
|
||||
fi
|
||||
|
||||
CFLAGS="$CFLAGS -DUNZIP_SUPPORT -DSNES9X_GTK -I. -I.. $ZIP_CFLAGS"
|
||||
|
||||
CXXFLAGS="$CFLAGS"
|
||||
|
||||
AM_CONDITIONAL(OPENGL, [test yes = "$OPENGL"])
|
||||
AM_CONDITIONAL(XV, [test yes = "$XV"])
|
||||
AM_CONDITIONAL(PORTAUDIO, [test yes = "$PORTAUDIO"])
|
||||
AM_CONDITIONAL(OSS, [test yes = "$OSS"])
|
||||
AM_CONDITIONAL(DEBUG, [test yes = "$with_debug" ])
|
||||
AM_CONDITIONAL(ALSA, [test yes = "$ALSA"])
|
||||
AM_CONDITIONAL(PULSEAUDIO, [test yes = "$PULSEAUDIO"])
|
||||
AM_CONDITIONAL(HQ2X, [test yes = "$HQ2X"])
|
||||
AM_CONDITIONAL(XBRZ, [test yes = "$XBRZ"])
|
||||
AM_CONDITIONAL(SYSTEM_ZIP, [test yes = "$SYSTEM_ZIP"])
|
||||
AM_CONDITIONAL(WAYLAND, [test yes = "$WAYLAND"])
|
||||
|
||||
AC_OUTPUT(Makefile data/Makefile po/Makefile.in)
|
||||
|
||||
echo ""
|
||||
echo "Snes9x will build with support for the following:"
|
||||
echo ""
|
||||
|
||||
if test yes = "$GTK3" ; then
|
||||
echo " GTK+ 3.0"
|
||||
else
|
||||
echo " GTK+ 2.0"
|
||||
fi
|
||||
|
||||
if test yes = "$WAYLAND" ; then
|
||||
echo " Wayland"
|
||||
fi
|
||||
|
||||
if test yes = "$ALSA" ; then
|
||||
echo " ALSA"
|
||||
fi
|
||||
|
||||
if test yes = "$PULSEAUDIO" ; then
|
||||
echo " PulseAudio"
|
||||
fi
|
||||
|
||||
if test yes = "$OPENGL" ; then
|
||||
echo " OpenGL"
|
||||
else
|
||||
if test yes = "$with_opengl" ; then
|
||||
echo "!!! NOT able to use OpenGL support"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test yes = "$XV" ; then
|
||||
echo " XVideo"
|
||||
else
|
||||
if test yes = "$with_xv" ; then
|
||||
echo "!!! NOT able to use XVideo support"
|
||||
echo "--- Needs recent X11 libraries and headers"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test yes = "$XRANDR" ; then
|
||||
echo " XRandR"
|
||||
else
|
||||
if test yes = "$with_xrandr" ; then
|
||||
echo "!!! NOT able to use XRandR support"
|
||||
echo "--- Needs recent X11 libraries and headers"
|
||||
fi
|
||||
fi
|
||||
|
||||
if test yes = "$GTKJOY" ; then
|
||||
echo " Joysticks"
|
||||
else
|
||||
if test yes = "$with_joystick" ; then
|
||||
echo "!!! NOT able to use joystick support"
|
||||
echo "--- Needs SDL libraries and headers"
|
||||
fi
|
||||
fi
|
||||
|
||||
echo ""
|
||||
|
||||
if ! test yes = "$PORTAUDIO" ; then
|
||||
if ! test yes = "$OSS" ; then
|
||||
if ! test yes = "$SDL"; then
|
||||
if ! test yes = "$ALSA"; then
|
||||
echo "ERROR: No audio driver is selected or available. Snes9x will probably not build."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if ! test yes = "$HQ2X"; then
|
||||
echo "HQ2x filter compilation is disabled."
|
||||
fi
|
||||
|
||||
if ! test yes = "$XBRZ"; then
|
||||
echo "xBRZ filter compilation is disabled."
|
||||
fi
|
||||
|
||||
if test yes = "$enable_dangerous_hacks"; then
|
||||
echo "Dangerous hacks enabled."
|
||||
fi
|
|
@ -1,41 +0,0 @@
|
|||
desktopdir = $(datarootdir)/applications
|
||||
desktop_DATA = snes9x.desktop
|
||||
|
||||
icon16x16dir = $(datarootdir)/icons/hicolor/16x16/apps
|
||||
icon16x16_DATA = snes9x_16x16.png
|
||||
|
||||
icon24x24dir = $(datarootdir)/icons/hicolor/24x24/apps
|
||||
icon24x24_DATA = snes9x_24x24.png
|
||||
|
||||
icon32x32dir = $(datarootdir)/icons/hicolor/32x32/apps
|
||||
icon32x32_DATA = snes9x_32x32.png
|
||||
|
||||
icon64x64dir = $(datarootdir)/icons/hicolor/64x64/apps
|
||||
icon64x64_DATA = snes9x_64x64.png
|
||||
|
||||
icon128x128dir = $(datarootdir)/icons/hicolor/128x128/apps
|
||||
icon128x128_DATA = snes9x_128x128.png
|
||||
|
||||
icon256x256dir = $(datarootdir)/icons/hicolor/256x256/apps
|
||||
icon256x256_DATA = snes9x_256x256.png
|
||||
|
||||
#iconscalabledir = $(datarootdir)/icons/hicolor/scalable/apps
|
||||
#iconscalable_DATA = snes9x.svg
|
||||
|
||||
cheatsdir = $(datadir)/snes9x
|
||||
cheats_DATA = ../../data/cheats.bml
|
||||
|
||||
install-data-hook:
|
||||
mv -f $(DESTDIR)$(datarootdir)/icons/hicolor/16x16/apps/snes9x_16x16.png \
|
||||
$(DESTDIR)$(datarootdir)/icons/hicolor/16x16/apps/snes9x.png
|
||||
mv -f $(DESTDIR)$(datarootdir)/icons/hicolor/24x24/apps/snes9x_24x24.png \
|
||||
$(DESTDIR)$(datarootdir)/icons/hicolor/24x24/apps/snes9x.png
|
||||
mv -f $(DESTDIR)$(datarootdir)/icons/hicolor/32x32/apps/snes9x_32x32.png \
|
||||
$(DESTDIR)$(datarootdir)/icons/hicolor/32x32/apps/snes9x.png
|
||||
mv -f $(DESTDIR)$(datarootdir)/icons/hicolor/64x64/apps/snes9x_64x64.png \
|
||||
$(DESTDIR)$(datarootdir)/icons/hicolor/64x64/apps/snes9x.png
|
||||
mv -f $(DESTDIR)$(datarootdir)/icons/hicolor/128x128/apps/snes9x_128x128.png \
|
||||
$(DESTDIR)$(datarootdir)/icons/hicolor/128x128/apps/snes9x.png
|
||||
mv -f $(DESTDIR)$(datarootdir)/icons/hicolor/256x256/apps/snes9x_256x256.png \
|
||||
$(DESTDIR)$(datarootdir)/icons/hicolor/256x256/apps/snes9x.png
|
||||
touch -c $(DESTDIR)$(datarootdir)/icons/hicolor
|
|
@ -0,0 +1,11 @@
|
|||
datadir = join_paths(get_option('prefix'), get_option('datadir'))
|
||||
install_data('../../data/cheats.bml')
|
||||
install_data('snes9x.desktop', install_dir: join_paths(datadir, 'applications'))
|
||||
|
||||
hicolor = join_paths(datadir, 'icons', 'hicolor')
|
||||
install_data('snes9x_16x16.png', install_dir: hicolor, rename: '16x16/apps/snes9x.png')
|
||||
install_data('snes9x_24x24.png', install_dir: hicolor, rename: '24x24/apps/snes9x.png')
|
||||
install_data('snes9x_32x32.png', install_dir: hicolor, rename: '32x32/apps/snes9x.png')
|
||||
install_data('snes9x_64x64.png', install_dir: hicolor, rename: '64x64/apps/snes9x.png')
|
||||
install_data('snes9x_128x128.png', install_dir: hicolor, rename: '128x128/apps/snes9x.png')
|
||||
install_data('snes9x_256x256.png', install_dir: hicolor, rename: '256x256/apps/snes9x.png')
|
|
@ -1,562 +0,0 @@
|
|||
# ===========================================================================
|
||||
# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx.html
|
||||
# ===========================================================================
|
||||
#
|
||||
# SYNOPSIS
|
||||
#
|
||||
# AX_CXX_COMPILE_STDCXX(VERSION, [ext|noext], [mandatory|optional])
|
||||
#
|
||||
# DESCRIPTION
|
||||
#
|
||||
# Check for baseline language coverage in the compiler for the specified
|
||||
# version of the C++ standard. If necessary, add switches to CXX and
|
||||
# CXXCPP to enable support. VERSION may be '11' (for the C++11 standard)
|
||||
# or '14' (for the C++14 standard).
|
||||
#
|
||||
# The second argument, if specified, indicates whether you insist on an
|
||||
# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
|
||||
# -std=c++11). If neither is specified, you get whatever works, with
|
||||
# preference for an extended mode.
|
||||
#
|
||||
# The third argument, if specified 'mandatory' or if left unspecified,
|
||||
# indicates that baseline support for the specified C++ standard is
|
||||
# required and that the macro should error out if no mode with that
|
||||
# support is found. If specified 'optional', then configuration proceeds
|
||||
# regardless, after defining HAVE_CXX${VERSION} if and only if a
|
||||
# supporting mode is found.
|
||||
#
|
||||
# LICENSE
|
||||
#
|
||||
# Copyright (c) 2008 Benjamin Kosnik <bkoz@redhat.com>
|
||||
# Copyright (c) 2012 Zack Weinberg <zackw@panix.com>
|
||||
# Copyright (c) 2013 Roy Stogner <roystgnr@ices.utexas.edu>
|
||||
# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
|
||||
# Copyright (c) 2015 Paul Norman <penorman@mac.com>
|
||||
# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
|
||||
#
|
||||
# Copying and distribution of this file, with or without modification, are
|
||||
# permitted in any medium without royalty provided the copyright notice
|
||||
# and this notice are preserved. This file is offered as-is, without any
|
||||
# warranty.
|
||||
|
||||
#serial 4
|
||||
|
||||
dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
|
||||
dnl (serial version number 13).
|
||||
|
||||
AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
|
||||
m4_if([$1], [11], [],
|
||||
[$1], [14], [],
|
||||
[$1], [17], [m4_fatal([support for C++17 not yet implemented in AX_CXX_COMPILE_STDCXX])],
|
||||
[m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl
|
||||
m4_if([$2], [], [],
|
||||
[$2], [ext], [],
|
||||
[$2], [noext], [],
|
||||
[m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX])])dnl
|
||||
m4_if([$3], [], [ax_cxx_compile_cxx$1_required=true],
|
||||
[$3], [mandatory], [ax_cxx_compile_cxx$1_required=true],
|
||||
[$3], [optional], [ax_cxx_compile_cxx$1_required=false],
|
||||
[m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])])
|
||||
AC_LANG_PUSH([C++])dnl
|
||||
ac_success=no
|
||||
AC_CACHE_CHECK(whether $CXX supports C++$1 features by default,
|
||||
ax_cv_cxx_compile_cxx$1,
|
||||
[AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
|
||||
[ax_cv_cxx_compile_cxx$1=yes],
|
||||
[ax_cv_cxx_compile_cxx$1=no])])
|
||||
if test x$ax_cv_cxx_compile_cxx$1 = xyes; then
|
||||
ac_success=yes
|
||||
fi
|
||||
|
||||
m4_if([$2], [noext], [], [dnl
|
||||
if test x$ac_success = xno; then
|
||||
for switch in -std=gnu++$1 -std=gnu++0x; do
|
||||
cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
|
||||
AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
|
||||
$cachevar,
|
||||
[ac_save_CXX="$CXX"
|
||||
CXX="$CXX $switch"
|
||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
|
||||
[eval $cachevar=yes],
|
||||
[eval $cachevar=no])
|
||||
CXX="$ac_save_CXX"])
|
||||
if eval test x\$$cachevar = xyes; then
|
||||
CXX="$CXX $switch"
|
||||
if test -n "$CXXCPP" ; then
|
||||
CXXCPP="$CXXCPP $switch"
|
||||
fi
|
||||
ac_success=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi])
|
||||
|
||||
m4_if([$2], [ext], [], [dnl
|
||||
if test x$ac_success = xno; then
|
||||
dnl HP's aCC needs +std=c++11 according to:
|
||||
dnl http://h21007.www2.hp.com/portal/download/files/unprot/aCxx/PDF_Release_Notes/769149-001.pdf
|
||||
dnl Cray's crayCC needs "-h std=c++11"
|
||||
for switch in -std=c++$1 -std=c++0x +std=c++$1 "-h std=c++$1"; do
|
||||
cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx$1_$switch])
|
||||
AC_CACHE_CHECK(whether $CXX supports C++$1 features with $switch,
|
||||
$cachevar,
|
||||
[ac_save_CXX="$CXX"
|
||||
CXX="$CXX $switch"
|
||||
AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
|
||||
[eval $cachevar=yes],
|
||||
[eval $cachevar=no])
|
||||
CXX="$ac_save_CXX"])
|
||||
if eval test x\$$cachevar = xyes; then
|
||||
CXX="$CXX $switch"
|
||||
if test -n "$CXXCPP" ; then
|
||||
CXXCPP="$CXXCPP $switch"
|
||||
fi
|
||||
ac_success=yes
|
||||
break
|
||||
fi
|
||||
done
|
||||
fi])
|
||||
AC_LANG_POP([C++])
|
||||
if test x$ax_cxx_compile_cxx$1_required = xtrue; then
|
||||
if test x$ac_success = xno; then
|
||||
AC_MSG_ERROR([*** A compiler with support for C++$1 language features is required.])
|
||||
fi
|
||||
fi
|
||||
if test x$ac_success = xno; then
|
||||
HAVE_CXX$1=0
|
||||
AC_MSG_NOTICE([No compiler with C++$1 support was found])
|
||||
else
|
||||
HAVE_CXX$1=1
|
||||
AC_DEFINE(HAVE_CXX$1,1,
|
||||
[define if the compiler supports basic C++$1 syntax])
|
||||
fi
|
||||
AC_SUBST(HAVE_CXX$1)
|
||||
])
|
||||
|
||||
|
||||
dnl Test body for checking C++11 support
|
||||
|
||||
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11],
|
||||
_AX_CXX_COMPILE_STDCXX_testbody_new_in_11
|
||||
)
|
||||
|
||||
|
||||
dnl Test body for checking C++14 support
|
||||
|
||||
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14],
|
||||
_AX_CXX_COMPILE_STDCXX_testbody_new_in_11
|
||||
_AX_CXX_COMPILE_STDCXX_testbody_new_in_14
|
||||
)
|
||||
|
||||
|
||||
dnl Tests for new features in C++11
|
||||
|
||||
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[
|
||||
|
||||
// If the compiler admits that it is not ready for C++11, why torture it?
|
||||
// Hopefully, this will speed up the test.
|
||||
|
||||
#ifndef __cplusplus
|
||||
|
||||
#error "This is not a C++ compiler"
|
||||
|
||||
#elif __cplusplus < 201103L
|
||||
|
||||
#error "This is not a C++11 compiler"
|
||||
|
||||
#else
|
||||
|
||||
namespace cxx11
|
||||
{
|
||||
|
||||
namespace test_static_assert
|
||||
{
|
||||
|
||||
template <typename T>
|
||||
struct check
|
||||
{
|
||||
static_assert(sizeof(int) <= sizeof(T), "not big enough");
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
namespace test_final_override
|
||||
{
|
||||
|
||||
struct Base
|
||||
{
|
||||
virtual void f() {}
|
||||
};
|
||||
|
||||
struct Derived : public Base
|
||||
{
|
||||
virtual void f() override {}
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
namespace test_double_right_angle_brackets
|
||||
{
|
||||
|
||||
template < typename T >
|
||||
struct check {};
|
||||
|
||||
typedef check<void> single_type;
|
||||
typedef check<check<void>> double_type;
|
||||
typedef check<check<check<void>>> triple_type;
|
||||
typedef check<check<check<check<void>>>> quadruple_type;
|
||||
|
||||
}
|
||||
|
||||
namespace test_decltype
|
||||
{
|
||||
|
||||
int
|
||||
f()
|
||||
{
|
||||
int a = 1;
|
||||
decltype(a) b = 2;
|
||||
return a + b;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace test_type_deduction
|
||||
{
|
||||
|
||||
template < typename T1, typename T2 >
|
||||
struct is_same
|
||||
{
|
||||
static const bool value = false;
|
||||
};
|
||||
|
||||
template < typename T >
|
||||
struct is_same<T, T>
|
||||
{
|
||||
static const bool value = true;
|
||||
};
|
||||
|
||||
template < typename T1, typename T2 >
|
||||
auto
|
||||
add(T1 a1, T2 a2) -> decltype(a1 + a2)
|
||||
{
|
||||
return a1 + a2;
|
||||
}
|
||||
|
||||
int
|
||||
test(const int c, volatile int v)
|
||||
{
|
||||
static_assert(is_same<int, decltype(0)>::value == true, "");
|
||||
static_assert(is_same<int, decltype(c)>::value == false, "");
|
||||
static_assert(is_same<int, decltype(v)>::value == false, "");
|
||||
auto ac = c;
|
||||
auto av = v;
|
||||
auto sumi = ac + av + 'x';
|
||||
auto sumf = ac + av + 1.0;
|
||||
static_assert(is_same<int, decltype(ac)>::value == true, "");
|
||||
static_assert(is_same<int, decltype(av)>::value == true, "");
|
||||
static_assert(is_same<int, decltype(sumi)>::value == true, "");
|
||||
static_assert(is_same<int, decltype(sumf)>::value == false, "");
|
||||
static_assert(is_same<int, decltype(add(c, v))>::value == true, "");
|
||||
return (sumf > 0.0) ? sumi : add(c, v);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace test_noexcept
|
||||
{
|
||||
|
||||
int f() { return 0; }
|
||||
int g() noexcept { return 0; }
|
||||
|
||||
static_assert(noexcept(f()) == false, "");
|
||||
static_assert(noexcept(g()) == true, "");
|
||||
|
||||
}
|
||||
|
||||
namespace test_constexpr
|
||||
{
|
||||
|
||||
template < typename CharT >
|
||||
unsigned long constexpr
|
||||
strlen_c_r(const CharT *const s, const unsigned long acc) noexcept
|
||||
{
|
||||
return *s ? strlen_c_r(s + 1, acc + 1) : acc;
|
||||
}
|
||||
|
||||
template < typename CharT >
|
||||
unsigned long constexpr
|
||||
strlen_c(const CharT *const s) noexcept
|
||||
{
|
||||
return strlen_c_r(s, 0UL);
|
||||
}
|
||||
|
||||
static_assert(strlen_c("") == 0UL, "");
|
||||
static_assert(strlen_c("1") == 1UL, "");
|
||||
static_assert(strlen_c("example") == 7UL, "");
|
||||
static_assert(strlen_c("another\0example") == 7UL, "");
|
||||
|
||||
}
|
||||
|
||||
namespace test_rvalue_references
|
||||
{
|
||||
|
||||
template < int N >
|
||||
struct answer
|
||||
{
|
||||
static constexpr int value = N;
|
||||
};
|
||||
|
||||
answer<1> f(int&) { return answer<1>(); }
|
||||
answer<2> f(const int&) { return answer<2>(); }
|
||||
answer<3> f(int&&) { return answer<3>(); }
|
||||
|
||||
void
|
||||
test()
|
||||
{
|
||||
int i = 0;
|
||||
const int c = 0;
|
||||
static_assert(decltype(f(i))::value == 1, "");
|
||||
static_assert(decltype(f(c))::value == 2, "");
|
||||
static_assert(decltype(f(0))::value == 3, "");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace test_uniform_initialization
|
||||
{
|
||||
|
||||
struct test
|
||||
{
|
||||
static const int zero {};
|
||||
static const int one {1};
|
||||
};
|
||||
|
||||
static_assert(test::zero == 0, "");
|
||||
static_assert(test::one == 1, "");
|
||||
|
||||
}
|
||||
|
||||
namespace test_lambdas
|
||||
{
|
||||
|
||||
void
|
||||
test1()
|
||||
{
|
||||
auto lambda1 = [](){};
|
||||
auto lambda2 = lambda1;
|
||||
lambda1();
|
||||
lambda2();
|
||||
}
|
||||
|
||||
int
|
||||
test2()
|
||||
{
|
||||
auto a = [](int i, int j){ return i + j; }(1, 2);
|
||||
auto b = []() -> int { return '0'; }();
|
||||
auto c = [=](){ return a + b; }();
|
||||
auto d = [&](){ return c; }();
|
||||
auto e = [a, &b](int x) mutable {
|
||||
const auto identity = [](int y){ return y; };
|
||||
for (auto i = 0; i < a; ++i)
|
||||
a += b--;
|
||||
return x + identity(a + b);
|
||||
}(0);
|
||||
return a + b + c + d + e;
|
||||
}
|
||||
|
||||
int
|
||||
test3()
|
||||
{
|
||||
const auto nullary = [](){ return 0; };
|
||||
const auto unary = [](int x){ return x; };
|
||||
using nullary_t = decltype(nullary);
|
||||
using unary_t = decltype(unary);
|
||||
const auto higher1st = [](nullary_t f){ return f(); };
|
||||
const auto higher2nd = [unary](nullary_t f1){
|
||||
return [unary, f1](unary_t f2){ return f2(unary(f1())); };
|
||||
};
|
||||
return higher1st(nullary) + higher2nd(nullary)(unary);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace test_variadic_templates
|
||||
{
|
||||
|
||||
template <int...>
|
||||
struct sum;
|
||||
|
||||
template <int N0, int... N1toN>
|
||||
struct sum<N0, N1toN...>
|
||||
{
|
||||
static constexpr auto value = N0 + sum<N1toN...>::value;
|
||||
};
|
||||
|
||||
template <>
|
||||
struct sum<>
|
||||
{
|
||||
static constexpr auto value = 0;
|
||||
};
|
||||
|
||||
static_assert(sum<>::value == 0, "");
|
||||
static_assert(sum<1>::value == 1, "");
|
||||
static_assert(sum<23>::value == 23, "");
|
||||
static_assert(sum<1, 2>::value == 3, "");
|
||||
static_assert(sum<5, 5, 11>::value == 21, "");
|
||||
static_assert(sum<2, 3, 5, 7, 11, 13>::value == 41, "");
|
||||
|
||||
}
|
||||
|
||||
// http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae
|
||||
// Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function
|
||||
// because of this.
|
||||
namespace test_template_alias_sfinae
|
||||
{
|
||||
|
||||
struct foo {};
|
||||
|
||||
template<typename T>
|
||||
using member = typename T::member_type;
|
||||
|
||||
template<typename T>
|
||||
void func(...) {}
|
||||
|
||||
template<typename T>
|
||||
void func(member<T>*) {}
|
||||
|
||||
void test();
|
||||
|
||||
void test() { func<foo>(0); }
|
||||
|
||||
}
|
||||
|
||||
} // namespace cxx11
|
||||
|
||||
#endif // __cplusplus >= 201103L
|
||||
|
||||
]])
|
||||
|
||||
|
||||
dnl Tests for new features in C++14
|
||||
|
||||
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_14], [[
|
||||
|
||||
// If the compiler admits that it is not ready for C++14, why torture it?
|
||||
// Hopefully, this will speed up the test.
|
||||
|
||||
#ifndef __cplusplus
|
||||
|
||||
#error "This is not a C++ compiler"
|
||||
|
||||
#elif __cplusplus < 201402L
|
||||
|
||||
#error "This is not a C++14 compiler"
|
||||
|
||||
#else
|
||||
|
||||
namespace cxx14
|
||||
{
|
||||
|
||||
namespace test_polymorphic_lambdas
|
||||
{
|
||||
|
||||
int
|
||||
test()
|
||||
{
|
||||
const auto lambda = [](auto&&... args){
|
||||
const auto istiny = [](auto x){
|
||||
return (sizeof(x) == 1UL) ? 1 : 0;
|
||||
};
|
||||
const int aretiny[] = { istiny(args)... };
|
||||
return aretiny[0];
|
||||
};
|
||||
return lambda(1, 1L, 1.0f, '1');
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace test_binary_literals
|
||||
{
|
||||
|
||||
constexpr auto ivii = 0b0000000000101010;
|
||||
static_assert(ivii == 42, "wrong value");
|
||||
|
||||
}
|
||||
|
||||
namespace test_generalized_constexpr
|
||||
{
|
||||
|
||||
template < typename CharT >
|
||||
constexpr unsigned long
|
||||
strlen_c(const CharT *const s) noexcept
|
||||
{
|
||||
auto length = 0UL;
|
||||
for (auto p = s; *p; ++p)
|
||||
++length;
|
||||
return length;
|
||||
}
|
||||
|
||||
static_assert(strlen_c("") == 0UL, "");
|
||||
static_assert(strlen_c("x") == 1UL, "");
|
||||
static_assert(strlen_c("test") == 4UL, "");
|
||||
static_assert(strlen_c("another\0test") == 7UL, "");
|
||||
|
||||
}
|
||||
|
||||
namespace test_lambda_init_capture
|
||||
{
|
||||
|
||||
int
|
||||
test()
|
||||
{
|
||||
auto x = 0;
|
||||
const auto lambda1 = [a = x](int b){ return a + b; };
|
||||
const auto lambda2 = [a = lambda1(x)](){ return a; };
|
||||
return lambda2();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
namespace test_digit_seperators
|
||||
{
|
||||
|
||||
constexpr auto ten_million = 100'000'000;
|
||||
static_assert(ten_million == 100000000, "");
|
||||
|
||||
}
|
||||
|
||||
namespace test_return_type_deduction
|
||||
{
|
||||
|
||||
auto f(int& x) { return x; }
|
||||
decltype(auto) g(int& x) { return x; }
|
||||
|
||||
template < typename T1, typename T2 >
|
||||
struct is_same
|
||||
{
|
||||
static constexpr auto value = false;
|
||||
};
|
||||
|
||||
template < typename T >
|
||||
struct is_same<T, T>
|
||||
{
|
||||
static constexpr auto value = true;
|
||||
};
|
||||
|
||||
int
|
||||
test()
|
||||
{
|
||||
auto x = 0;
|
||||
static_assert(is_same<int, decltype(f(x))>::value, "");
|
||||
static_assert(is_same<int&, decltype(g(x))>::value, "");
|
||||
return x;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} // namespace cxx14
|
||||
|
||||
#endif // __cplusplus >= 201402L
|
||||
|
||||
]])
|
|
@ -1,212 +0,0 @@
|
|||
## intltool.m4 - Configure intltool for the target system. -*-Shell-script-*-
|
||||
## Copyright (C) 2001 Eazel, Inc.
|
||||
## Author: Maciej Stachowiak <mjs@noisehavoc.org>
|
||||
## Kenneth Christiansen <kenneth@gnu.org>
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or modify
|
||||
## it under the terms of the GNU General Public License as published by
|
||||
## the Free Software Foundation; either version 2 of the License, or
|
||||
## (at your option) any later version.
|
||||
##
|
||||
## This program is distributed in the hope that it will be useful, but
|
||||
## WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
## General Public License for more details.
|
||||
##
|
||||
## You should have received a copy of the GNU General Public License
|
||||
## along with this program; if not, write to the Free Software
|
||||
## Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
##
|
||||
## As a special exception to the GNU General Public License, if you
|
||||
## distribute this file as part of a program that contains a
|
||||
## configuration script generated by Autoconf, you may include it under
|
||||
## the same distribution terms that you use for the rest of that program.
|
||||
|
||||
dnl IT_PROG_INTLTOOL([MINIMUM-VERSION], [no-xml])
|
||||
# serial 42 IT_PROG_INTLTOOL
|
||||
AC_DEFUN([IT_PROG_INTLTOOL], [
|
||||
AC_PREREQ([2.50])dnl
|
||||
AC_REQUIRE([AM_NLS])dnl
|
||||
|
||||
case "$am__api_version" in
|
||||
1.[01234])
|
||||
AC_MSG_ERROR([Automake 1.5 or newer is required to use intltool])
|
||||
;;
|
||||
*)
|
||||
;;
|
||||
esac
|
||||
|
||||
INTLTOOL_REQUIRED_VERSION_AS_INT=`echo $1 | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
|
||||
INTLTOOL_APPLIED_VERSION=`intltool-update --version | head -1 | cut -d" " -f3`
|
||||
INTLTOOL_APPLIED_VERSION_AS_INT=`echo $INTLTOOL_APPLIED_VERSION | awk -F. '{ print $ 1 * 1000 + $ 2 * 100 + $ 3; }'`
|
||||
if test -n "$1"; then
|
||||
AC_MSG_CHECKING([for intltool >= $1])
|
||||
AC_MSG_RESULT([$INTLTOOL_APPLIED_VERSION found])
|
||||
test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge "$INTLTOOL_REQUIRED_VERSION_AS_INT" ||
|
||||
AC_MSG_ERROR([Your intltool is too old. You need intltool $1 or later.])
|
||||
fi
|
||||
|
||||
AC_PATH_PROG(INTLTOOL_UPDATE, [intltool-update])
|
||||
AC_PATH_PROG(INTLTOOL_MERGE, [intltool-merge])
|
||||
AC_PATH_PROG(INTLTOOL_EXTRACT, [intltool-extract])
|
||||
if test -z "$INTLTOOL_UPDATE" -o -z "$INTLTOOL_MERGE" -o -z "$INTLTOOL_EXTRACT"; then
|
||||
AC_MSG_ERROR([The intltool scripts were not found. Please install intltool.])
|
||||
fi
|
||||
|
||||
if test -z "$AM_DEFAULT_VERBOSITY"; then
|
||||
AM_DEFAULT_VERBOSITY=1
|
||||
fi
|
||||
AC_SUBST([AM_DEFAULT_VERBOSITY])
|
||||
|
||||
INTLTOOL_V_MERGE='$(INTLTOOL__v_MERGE_$(V))'
|
||||
INTLTOOL__v_MERGE_='$(INTLTOOL__v_MERGE_$(AM_DEFAULT_VERBOSITY))'
|
||||
INTLTOOL__v_MERGE_0='@echo " ITMRG " [$]@;'
|
||||
AC_SUBST(INTLTOOL_V_MERGE)
|
||||
AC_SUBST(INTLTOOL__v_MERGE_)
|
||||
AC_SUBST(INTLTOOL__v_MERGE_0)
|
||||
|
||||
INTLTOOL_V_MERGE_OPTIONS='$(intltool__v_merge_options_$(V))'
|
||||
intltool__v_merge_options_='$(intltool__v_merge_options_$(AM_DEFAULT_VERBOSITY))'
|
||||
intltool__v_merge_options_0='-q'
|
||||
AC_SUBST(INTLTOOL_V_MERGE_OPTIONS)
|
||||
AC_SUBST(intltool__v_merge_options_)
|
||||
AC_SUBST(intltool__v_merge_options_0)
|
||||
|
||||
INTLTOOL_DESKTOP_RULE='%.desktop: %.desktop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
|
||||
INTLTOOL_DIRECTORY_RULE='%.directory: %.directory.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
|
||||
INTLTOOL_KEYS_RULE='%.keys: %.keys.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -k -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
|
||||
INTLTOOL_PROP_RULE='%.prop: %.prop.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
|
||||
INTLTOOL_OAF_RULE='%.oaf: %.oaf.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -p $(top_srcdir)/po $< [$]@'
|
||||
INTLTOOL_PONG_RULE='%.pong: %.pong.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
|
||||
INTLTOOL_SERVER_RULE='%.server: %.server.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -o -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
|
||||
INTLTOOL_SHEET_RULE='%.sheet: %.sheet.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
|
||||
INTLTOOL_SOUNDLIST_RULE='%.soundlist: %.soundlist.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
|
||||
INTLTOOL_UI_RULE='%.ui: %.ui.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
|
||||
INTLTOOL_XML_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
|
||||
if test "$INTLTOOL_APPLIED_VERSION_AS_INT" -ge 5000; then
|
||||
INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u --no-translations $< [$]@'
|
||||
else
|
||||
INTLTOOL_XML_NOMERGE_RULE='%.xml: %.xml.in $(INTLTOOL_MERGE) ; $(INTLTOOL_V_MERGE)_it_tmp_dir=tmp.intltool.[$][$]RANDOM && mkdir [$][$]_it_tmp_dir && LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u [$][$]_it_tmp_dir $< [$]@ && rmdir [$][$]_it_tmp_dir'
|
||||
fi
|
||||
INTLTOOL_XAM_RULE='%.xam: %.xml.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
|
||||
INTLTOOL_KBD_RULE='%.kbd: %.kbd.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -m -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
|
||||
INTLTOOL_CAVES_RULE='%.caves: %.caves.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
|
||||
INTLTOOL_SCHEMAS_RULE='%.schemas: %.schemas.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -s -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
|
||||
INTLTOOL_THEME_RULE='%.theme: %.theme.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
|
||||
INTLTOOL_SERVICE_RULE='%.service: %.service.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -d -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
|
||||
INTLTOOL_POLICY_RULE='%.policy: %.policy.in $(INTLTOOL_MERGE) $(wildcard $(top_srcdir)/po/*.po) ; $(INTLTOOL_V_MERGE)LC_ALL=C $(INTLTOOL_MERGE) $(INTLTOOL_V_MERGE_OPTIONS) -x -u -c $(top_builddir)/po/.intltool-merge-cache $(top_srcdir)/po $< [$]@'
|
||||
|
||||
_IT_SUBST(INTLTOOL_DESKTOP_RULE)
|
||||
_IT_SUBST(INTLTOOL_DIRECTORY_RULE)
|
||||
_IT_SUBST(INTLTOOL_KEYS_RULE)
|
||||
_IT_SUBST(INTLTOOL_PROP_RULE)
|
||||
_IT_SUBST(INTLTOOL_OAF_RULE)
|
||||
_IT_SUBST(INTLTOOL_PONG_RULE)
|
||||
_IT_SUBST(INTLTOOL_SERVER_RULE)
|
||||
_IT_SUBST(INTLTOOL_SHEET_RULE)
|
||||
_IT_SUBST(INTLTOOL_SOUNDLIST_RULE)
|
||||
_IT_SUBST(INTLTOOL_UI_RULE)
|
||||
_IT_SUBST(INTLTOOL_XAM_RULE)
|
||||
_IT_SUBST(INTLTOOL_KBD_RULE)
|
||||
_IT_SUBST(INTLTOOL_XML_RULE)
|
||||
_IT_SUBST(INTLTOOL_XML_NOMERGE_RULE)
|
||||
_IT_SUBST(INTLTOOL_CAVES_RULE)
|
||||
_IT_SUBST(INTLTOOL_SCHEMAS_RULE)
|
||||
_IT_SUBST(INTLTOOL_THEME_RULE)
|
||||
_IT_SUBST(INTLTOOL_SERVICE_RULE)
|
||||
_IT_SUBST(INTLTOOL_POLICY_RULE)
|
||||
|
||||
# Check the gettext tools to make sure they are GNU
|
||||
AC_PATH_PROG(XGETTEXT, xgettext)
|
||||
AC_PATH_PROG(MSGMERGE, msgmerge)
|
||||
AC_PATH_PROG(MSGFMT, msgfmt)
|
||||
AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT)
|
||||
if test -z "$XGETTEXT" -o -z "$MSGMERGE" -o -z "$MSGFMT"; then
|
||||
AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
|
||||
fi
|
||||
xgversion="`$XGETTEXT --version|grep '(GNU ' 2> /dev/null`"
|
||||
mmversion="`$MSGMERGE --version|grep '(GNU ' 2> /dev/null`"
|
||||
mfversion="`$MSGFMT --version|grep '(GNU ' 2> /dev/null`"
|
||||
if test -z "$xgversion" -o -z "$mmversion" -o -z "$mfversion"; then
|
||||
AC_MSG_ERROR([GNU gettext tools not found; required for intltool])
|
||||
fi
|
||||
|
||||
AC_PATH_PROG(INTLTOOL_PERL, perl)
|
||||
if test -z "$INTLTOOL_PERL"; then
|
||||
AC_MSG_ERROR([perl not found])
|
||||
fi
|
||||
AC_MSG_CHECKING([for perl >= 5.8.1])
|
||||
$INTLTOOL_PERL -e "use 5.8.1;" > /dev/null 2>&1
|
||||
if test $? -ne 0; then
|
||||
AC_MSG_ERROR([perl 5.8.1 is required for intltool])
|
||||
else
|
||||
IT_PERL_VERSION=`$INTLTOOL_PERL -e "printf '%vd', $^V"`
|
||||
AC_MSG_RESULT([$IT_PERL_VERSION])
|
||||
fi
|
||||
if test "x$2" != "xno-xml"; then
|
||||
AC_MSG_CHECKING([for XML::Parser])
|
||||
if `$INTLTOOL_PERL -e "require XML::Parser" 2>/dev/null`; then
|
||||
AC_MSG_RESULT([ok])
|
||||
else
|
||||
AC_MSG_ERROR([XML::Parser perl module is required for intltool])
|
||||
fi
|
||||
fi
|
||||
|
||||
# Substitute ALL_LINGUAS so we can use it in po/Makefile
|
||||
AC_SUBST(ALL_LINGUAS)
|
||||
|
||||
IT_PO_SUBDIR([po])
|
||||
|
||||
])
|
||||
|
||||
|
||||
# IT_PO_SUBDIR(DIRNAME)
|
||||
# ---------------------
|
||||
# All po subdirs have to be declared with this macro; the subdir "po" is
|
||||
# declared by IT_PROG_INTLTOOL.
|
||||
#
|
||||
AC_DEFUN([IT_PO_SUBDIR],
|
||||
[AC_PREREQ([2.53])dnl We use ac_top_srcdir inside AC_CONFIG_COMMANDS.
|
||||
dnl
|
||||
dnl The following CONFIG_COMMANDS should be executed at the very end
|
||||
dnl of config.status.
|
||||
AC_CONFIG_COMMANDS_PRE([
|
||||
AC_CONFIG_COMMANDS([$1/stamp-it], [
|
||||
if [ ! grep "^# INTLTOOL_MAKEFILE$" "$1/Makefile.in" > /dev/null ]; then
|
||||
AC_MSG_ERROR([$1/Makefile.in.in was not created by intltoolize.])
|
||||
fi
|
||||
rm -f "$1/stamp-it" "$1/stamp-it.tmp" "$1/POTFILES" "$1/Makefile.tmp"
|
||||
>"$1/stamp-it.tmp"
|
||||
[sed '/^#/d
|
||||
s/^[[].*] *//
|
||||
/^[ ]*$/d
|
||||
'"s|^| $ac_top_srcdir/|" \
|
||||
"$srcdir/$1/POTFILES.in" | sed '$!s/$/ \\/' >"$1/POTFILES"
|
||||
]
|
||||
[sed '/^POTFILES =/,/[^\\]$/ {
|
||||
/^POTFILES =/!d
|
||||
r $1/POTFILES
|
||||
}
|
||||
' "$1/Makefile.in" >"$1/Makefile"]
|
||||
rm -f "$1/Makefile.tmp"
|
||||
mv "$1/stamp-it.tmp" "$1/stamp-it"
|
||||
])
|
||||
])dnl
|
||||
])
|
||||
|
||||
# _IT_SUBST(VARIABLE)
|
||||
# -------------------
|
||||
# Abstract macro to do either _AM_SUBST_NOTMAKE or AC_SUBST
|
||||
#
|
||||
AC_DEFUN([_IT_SUBST],
|
||||
[
|
||||
AC_SUBST([$1])
|
||||
m4_ifdef([_AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE([$1])])
|
||||
]
|
||||
)
|
||||
|
||||
# deprecated macros
|
||||
AU_ALIAS([AC_PROG_INTLTOOL], [IT_PROG_INTLTOOL])
|
||||
# A hint is needed for aclocal from Automake <= 1.9.4:
|
||||
# AC_DEFUN([AC_PROG_INTLTOOL], ...)
|
||||
|
|
@ -0,0 +1,341 @@
|
|||
project('snes9x-gtk', ['c', 'cpp'], version: '1.58', default_options: ['cpp_std=c++11'])
|
||||
|
||||
subdir('po')
|
||||
subdir('data')
|
||||
|
||||
args = [ '-DSNES9X_GTK', '-DUNZIP_SUPPORT', '-DNETPLAY_SUPPORT', '-DJMA_SUPPORT', '-Wall', '-W', '-Wno-unused-parameter' ]
|
||||
srcs = []
|
||||
deps = []
|
||||
includes = include_directories('../apu/bapu', '../', 'src')
|
||||
|
||||
prefix = get_option('prefix')
|
||||
localedir = join_paths(prefix, get_option('localedir'))
|
||||
datadir = join_paths(prefix, get_option('datadir'), 'snes9x')
|
||||
args += [ '-DDATADIR="' + datadir + '"', '-DSNES9XLOCALEDIR="' + localedir + '"' ]
|
||||
|
||||
glib_dep = dependency('glib-2.0', version: '> 2.28')
|
||||
gthread_dep = dependency('gthread-2.0', version: '>= 2.6')
|
||||
gobject_dep = dependency('gobject-2.0', version: '>= 2.6')
|
||||
sdl2_dep = dependency('sdl2')
|
||||
|
||||
deps += [ glib_dep, gthread_dep, gobject_dep, sdl2_dep ]
|
||||
|
||||
c_compiler = meson.get_compiler('c')
|
||||
|
||||
if get_option('gtk3') and not get_option('gtk2')
|
||||
message('Building with GTK+-3.0')
|
||||
gtk_dep = dependency('gtk+-3.0', version: '>= 3.22')
|
||||
gtk_ver = 3
|
||||
else
|
||||
message('Building with GTK+-2.0')
|
||||
gtk_dep = dependency('gtk+-2.0', version: '>= 2.16')
|
||||
gtk_ver = 2
|
||||
endif
|
||||
|
||||
deps += gtk_dep
|
||||
|
||||
x11_dep = c_compiler.find_library('X11')
|
||||
xext_dep = c_compiler.find_library('Xext')
|
||||
dl_dep = c_compiler.find_library('dl')
|
||||
deps += x11_dep
|
||||
deps += xext_dep
|
||||
deps += dl_dep
|
||||
|
||||
xrandr_dep = dependency('xrandr')
|
||||
deps += xrandr_dep
|
||||
|
||||
if get_option('opengl')
|
||||
opengl_dep = dependency('epoxy', required: false)
|
||||
|
||||
if opengl_dep.found()
|
||||
args += '-DUSE_OPENGL'
|
||||
srcs += [ 'src/gtk_display_driver_opengl.cpp',
|
||||
'src/gtk_display_driver_opengl.h',
|
||||
'src/gtk_glx_context.cpp',
|
||||
'src/gtk_glx_context.h',
|
||||
'../shaders/glsl.cpp',
|
||||
'../shaders/shader_helpers.cpp',
|
||||
'src/gtk_shader_parameters.cpp' ]
|
||||
deps += opengl_dep
|
||||
endif
|
||||
endif
|
||||
|
||||
if get_option('wayland') and gtk_ver == 3
|
||||
wayland_dep = dependency('wayland-egl', required: false)
|
||||
|
||||
if wayland_dep.found()
|
||||
args += '-DUSE_WAYLAND'
|
||||
srcs += [ 'src/gtk_wayland_egl_context.cpp', 'src/gtk_wayland_egl_context.h' ]
|
||||
deps += wayland_dep
|
||||
else
|
||||
message('Wayland not found. Disabling.')
|
||||
endif
|
||||
endif
|
||||
|
||||
if get_option('xv')
|
||||
xv_dep = dependency('xv', required: false)
|
||||
|
||||
if xv_dep.found()
|
||||
args += '-DUSE_XV'
|
||||
srcs += [ 'src/gtk_display_driver_xv.cpp', 'src/gtk_display_driver_xv.h' ]
|
||||
deps += xv_dep
|
||||
else
|
||||
message('XV not found. Disabling.')
|
||||
endif
|
||||
endif
|
||||
|
||||
if get_option('portaudio')
|
||||
portaudio_dep = dependency('portaudio-2.0', version: '>= 10', required: false)
|
||||
|
||||
if portaudio_dep.found()
|
||||
args += '-DUSE_PORTAUDIO'
|
||||
srcs += [ 'src/gtk_sound_driver_portaudio.cpp', 'src/gtk_sound_driver_portaudio.h' ]
|
||||
deps += portaudio_dep
|
||||
else
|
||||
message('PortAudio not found. Disabling.')
|
||||
endif
|
||||
endif
|
||||
|
||||
if get_option('oss')
|
||||
if c_compiler.has_header('sys/soundcard.h')
|
||||
args += '-DUSE_OSS'
|
||||
srcs += [ 'src/gtk_sound_driver_oss.cpp', 'src/gtk_sound_driver_oss.h' ]
|
||||
else
|
||||
message('OSS not found. Disabling.')
|
||||
endif
|
||||
endif
|
||||
|
||||
if get_option('alsa')
|
||||
alsa_dep = dependency('alsa', required: false)
|
||||
|
||||
if alsa_dep.found()
|
||||
args += '-DUSE_ALSA'
|
||||
srcs += [ 'src/gtk_sound_driver_alsa.cpp', 'src/gtk_sound_driver_alsa.h' ]
|
||||
deps += alsa_dep
|
||||
else
|
||||
message('Alsa not found. Disabling.')
|
||||
endif
|
||||
endif
|
||||
|
||||
if get_option('pulseaudio')
|
||||
pulseaudio_dep = dependency('libpulse', required: false)
|
||||
|
||||
if pulseaudio_dep.found()
|
||||
args += '-DUSE_PULSEAUDIO'
|
||||
srcs += [ 'src/gtk_sound_driver_pulse.cpp', 'src/gtk_sound_driver_pulse.h' ]
|
||||
deps += pulseaudio_dep
|
||||
else
|
||||
message('PulseAudio not found. Disabling.')
|
||||
endif
|
||||
endif
|
||||
|
||||
if get_option('screenshot')
|
||||
screenshot_dep = dependency('libpng', required: false)
|
||||
|
||||
if screenshot_dep.found()
|
||||
args += '-DHAVE_LIBPNG'
|
||||
deps += screenshot_dep
|
||||
else
|
||||
message('libpng not found. Disabling screenshot support.')
|
||||
endif
|
||||
endif
|
||||
|
||||
if get_option('system-zip')
|
||||
systemzip_dep = dependency('minizip', required: false)
|
||||
|
||||
if systemzip_dep.found()
|
||||
args += '-DSYSTEM_ZIP'
|
||||
deps += systemzip_dep
|
||||
else
|
||||
message('minizip not found. Using built-in minizip.')
|
||||
srcs += [ '../unzip/unzip.c', '../unzip/ioapi.c', '../unzip/zip.c' ]
|
||||
endif
|
||||
endif
|
||||
|
||||
if get_option('zlib')
|
||||
zlib_dep = dependency('zlib', required: false)
|
||||
|
||||
if zlib_dep.found()
|
||||
args += '-DZLIB'
|
||||
deps += zlib_dep
|
||||
else
|
||||
message('zlib not found. Disabling.')
|
||||
endif
|
||||
endif
|
||||
|
||||
if get_option('dangerous-hacks')
|
||||
args += '-DALLOW_CPU_OVERCLOCK'
|
||||
endif
|
||||
|
||||
if get_option('hq2x')
|
||||
args += '-DUSE_HQ2X'
|
||||
srcs += [ '../filter/hq2x.cpp', '../filter/hq2x.h' ]
|
||||
endif
|
||||
|
||||
if get_option('xbrz')
|
||||
args += '-DUSE_XBRZ'
|
||||
srcs += [ '../filter/xbrz.cpp', '../filter/xbrz.h', 'src/filter_xbrz.cpp', 'src/filter_xbrz.h' ]
|
||||
endif
|
||||
|
||||
if c_compiler.has_function('mkstemp')
|
||||
args += '-DHAVE_MKSTEMP'
|
||||
endif
|
||||
|
||||
if c_compiler.has_header('strings.h')
|
||||
args += '-DHAVE_STRINGS_H'
|
||||
endif
|
||||
|
||||
if c_compiler.has_header('stdint.h')
|
||||
args += '-DHAVE_STDINT_H'
|
||||
endif
|
||||
|
||||
results = c_compiler.run('int main(int argc, char **argv) { int i; i = -1; i >>= 1; return (i < 0 ? 0 : 1); }')
|
||||
|
||||
if results.returncode() == 0
|
||||
args += '-DRIGHTSHIFT_IS_SAR'
|
||||
endif
|
||||
|
||||
results = c_compiler.run('int main(int argc, char **argv) { return (!(sizeof(void *) == sizeof(int))); }')
|
||||
|
||||
if results.returncode() != 0
|
||||
args += '-DPTR_NOT_INT'
|
||||
endif
|
||||
|
||||
srcs += [
|
||||
'src/gtk_sound_driver.h',
|
||||
'../filter/2xsai.cpp',
|
||||
'../filter/2xsai.h',
|
||||
'../filter/epx.cpp',
|
||||
'../filter/epx.h',
|
||||
'src/filter_epx_unsafe.h',
|
||||
'src/filter_epx_unsafe.cpp',
|
||||
'src/gtk_binding.cpp',
|
||||
'src/gtk_binding.h',
|
||||
'src/gtk_cheat.cpp',
|
||||
'src/gtk_cheat.h',
|
||||
'src/gtk_config.cpp',
|
||||
'src/gtk_config.h',
|
||||
'src/gtk_control.cpp',
|
||||
'src/gtk_control.h',
|
||||
'src/gtk_display.cpp',
|
||||
'src/gtk_display_driver_gtk.cpp',
|
||||
'src/gtk_display_driver_gtk.h',
|
||||
'src/gtk_display_driver.h',
|
||||
'src/gtk_display.h',
|
||||
'src/gtk_file.cpp',
|
||||
'src/gtk_file.h',
|
||||
'src/gtk_builder_window.cpp',
|
||||
'src/gtk_builder_window.h',
|
||||
'src/gtk_preferences.cpp',
|
||||
'src/gtk_preferences.h',
|
||||
'src/gtk_s9xcore.h',
|
||||
'src/gtk_s9x.cpp',
|
||||
'src/gtk_s9x.h',
|
||||
'src/gtk_s9xwindow.cpp',
|
||||
'src/gtk_s9xwindow.h',
|
||||
'src/gtk_sound.cpp',
|
||||
'src/gtk_sound.h',
|
||||
'src/gtk_splash.cpp',
|
||||
'../filter/snes_ntsc_config.h',
|
||||
'../filter/snes_ntsc.h',
|
||||
'../filter/snes_ntsc_impl.h',
|
||||
'../filter/snes_ntsc.c',
|
||||
'src/gtk_2_3_compat.h',
|
||||
'src/gtk_sound_driver_sdl.h',
|
||||
'src/gtk_sound_driver_sdl.cpp',
|
||||
'../fxinst.cpp',
|
||||
'../fxemu.cpp',
|
||||
'../fxdbg.cpp',
|
||||
'../c4.cpp',
|
||||
'../c4emu.cpp',
|
||||
'../apu/apu.cpp',
|
||||
'../apu/bapu/dsp/sdsp.cpp',
|
||||
'../apu/bapu/smp/smp.cpp',
|
||||
'../apu/bapu/smp/smp_state.cpp',
|
||||
'../msu1.cpp',
|
||||
'../msu1.h',
|
||||
'../dsp.cpp',
|
||||
'../dsp1.cpp',
|
||||
'../dsp2.cpp',
|
||||
'../dsp3.cpp',
|
||||
'../dsp4.cpp',
|
||||
'../spc7110.cpp',
|
||||
'../obc1.cpp',
|
||||
'../seta.cpp',
|
||||
'../seta010.cpp',
|
||||
'../seta011.cpp',
|
||||
'../seta018.cpp',
|
||||
'../controls.cpp',
|
||||
'../crosshairs.cpp',
|
||||
'../cpu.cpp',
|
||||
'../sa1.cpp',
|
||||
'../debug.cpp',
|
||||
'../sdd1.cpp',
|
||||
'../tile.cpp',
|
||||
'../srtc.cpp',
|
||||
'../gfx.cpp',
|
||||
'../memmap.cpp',
|
||||
'../clip.cpp',
|
||||
'../ppu.cpp',
|
||||
'../dma.cpp',
|
||||
'../snes9x.cpp',
|
||||
'../globals.cpp',
|
||||
'../stream.cpp',
|
||||
'../conffile.cpp',
|
||||
'../bsx.cpp',
|
||||
'../logger.cpp',
|
||||
'../snapshot.cpp',
|
||||
'../screenshot.cpp',
|
||||
'../movie.cpp',
|
||||
'../statemanager.cpp',
|
||||
'../sha256.cpp',
|
||||
'../bml.cpp',
|
||||
'../cpuops.cpp',
|
||||
'../cpuexec.cpp',
|
||||
'../sa1cpu.cpp',
|
||||
'../cheats.cpp',
|
||||
'../cheats2.cpp',
|
||||
'../sdd1emu.cpp',
|
||||
'../netplay.cpp',
|
||||
'../server.cpp',
|
||||
'../loadzip.cpp',
|
||||
'src/gtk_netplay_dialog.cpp',
|
||||
'src/gtk_netplay_dialog.h',
|
||||
'src/gtk_netplay.cpp',
|
||||
'src/gtk_netplay.h'
|
||||
]
|
||||
|
||||
libjma_srcs = [
|
||||
'../jma/s9x-jma.cpp',
|
||||
'../jma/7zlzma.cpp',
|
||||
'../jma/crc32.cpp',
|
||||
'../jma/iiostrm.cpp',
|
||||
'../jma/inbyte.cpp',
|
||||
'../jma/jma.cpp',
|
||||
'../jma/lzma.cpp',
|
||||
'../jma/lzmadec.cpp',
|
||||
'../jma/winout.cpp'
|
||||
]
|
||||
|
||||
libjma = static_library('jma',
|
||||
libjma_srcs,
|
||||
c_args: args,
|
||||
cpp_args: [args, '-fexceptions'],
|
||||
include_directories: includes)
|
||||
|
||||
sourcify = executable('sourcify', 'src/sourcify.c')
|
||||
gtk_snes9x_ui_cpp = custom_target('sourcify',
|
||||
input: 'src/snes9x.ui',
|
||||
output: 'gtk_snes9x_ui.cpp',
|
||||
command: [ sourcify, '@INPUT@', '@OUTPUT@', 'snes9x_ui'])
|
||||
|
||||
snes9x_gtk = executable('snes9x-gtk',
|
||||
srcs,
|
||||
gtk_snes9x_ui_cpp,
|
||||
c_args: args,
|
||||
cpp_args: [args, '-fno-exceptions', '-fno-rtti'],
|
||||
dependencies: deps,
|
||||
include_directories: includes,
|
||||
link_with: libjma,
|
||||
install: true)
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
option('opengl', type: 'boolean', value: true, description: 'Build support for OpenGL')
|
||||
option('xv', type: 'boolean', value: true, description: 'Build support for XV')
|
||||
option('portaudio', type: 'boolean', value: true, description: 'Build PortAudio sound driver')
|
||||
option('oss', type: 'boolean', value: true, description: 'Build OSS sound driver')
|
||||
option('alsa', type: 'boolean', value: true, description: 'Build ALSA sound driver')
|
||||
option('pulseaudio', type: 'boolean', value: true, description: 'Build PulseAudio sound driver')
|
||||
option('debugger', type: 'boolean', value: true, description: 'Enable Snes9x Debugger')
|
||||
option('hq2x', type: 'boolean', value: true, description: 'Enable the HQ2x filters')
|
||||
option('xbrz', type: 'boolean', value: true, description: 'Enable the xBRZ filters')
|
||||
option('zlib', type: 'boolean', value: true, description: 'Enable gzip compression')
|
||||
option('system-zip', type: 'boolean', value: true, description: 'Build using system minizip library')
|
||||
option('screenshot', type: 'boolean', value: true, description: 'Enable screenshots')
|
||||
option('gtk3', type: 'boolean', value: true, description: 'Build with GTK+ 3.0 as the toolkit')
|
||||
option('wayland', type: 'boolean', value: true, description: 'Build support for Wayland')
|
||||
option('gtk2', type: 'boolean', value: false, description: 'Build with GTK+ 2.0 as the toolkit')
|
||||
option('dangerous-hacks', type: 'boolean', value: false, description: 'Allow dangerous hacks to be enabled')
|
|
@ -1,15 +0,0 @@
|
|||
DOMAIN = $(PACKAGE)
|
||||
|
||||
subdir = po
|
||||
top_builddir = ..
|
||||
XGETTEXT_OPTIONS = --keyword=_ --keyword=N_
|
||||
COPYRIGHT_HOLDER = Snes9x
|
||||
PACKAGE_GNU = no
|
||||
MSGID_BUGS_ADDRESS = none
|
||||
EXTRA_LOCALE_CATEGORIES =
|
||||
USE_MSGCTXT = no
|
||||
MSGMERGE_OPTIONS =
|
||||
MSGINIT_OPTIONS =
|
||||
MSGFMT_OPTS =
|
||||
PO_DEPENDS_ON_POT = yes
|
||||
DIST_DEPENDS_ON_UPDATE_PO = yes
|
558
gtk/po/es.po
558
gtk/po/es.po
File diff suppressed because it is too large
Load Diff
552
gtk/po/fr_FR.po
552
gtk/po/fr_FR.po
File diff suppressed because it is too large
Load Diff
558
gtk/po/ja.po
558
gtk/po/ja.po
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,6 @@
|
|||
i18n = import('i18n')
|
||||
add_project_arguments('-DGETTEXT_PACKAGE="snes9x-gtk"',
|
||||
language: ['c', 'cpp']
|
||||
)
|
||||
i18n.gettext(meson.project_name(), preset: 'glib')
|
||||
|
552
gtk/po/pt_BR.po
552
gtk/po/pt_BR.po
File diff suppressed because it is too large
Load Diff
552
gtk/po/ru.po
552
gtk/po/ru.po
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue