GTK+: Switch to Meson build system.

This commit is contained in:
Brandon Wright 2018-12-17 20:16:28 -06:00
parent 4aec72e5a7
commit 913e797914
17 changed files with 2052 additions and 3233 deletions

View File

@ -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

View File

@ -1,2 +0,0 @@
#!/bin/sh
autoreconf -i -f

View File

@ -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

View File

@ -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

11
gtk/data/meson.build Normal file
View File

@ -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')

View File

@ -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
]])

View File

@ -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], ...)

341
gtk/meson.build Normal file
View File

@ -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)

16
gtk/meson_options.txt Normal file
View File

@ -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')

View File

@ -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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

6
gtk/po/meson.build Normal file
View File

@ -0,0 +1,6 @@
i18n = import('i18n')
add_project_arguments('-DGETTEXT_PACKAGE="snes9x-gtk"',
language: ['c', 'cpp']
)
i18n.gettext(meson.project_name(), preset: 'glib')

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff