Index: configure.in =================================================================== --- configure.in (revision 4662) +++ configure.in (working copy) @@ -322,10 +322,11 @@ AC_TRY_COMPILE([#include ],[ int test = LIBSPECTRUM_SUPPORTS_ZLIB_COMPRESSION; ], - AUTOLOAD_SNAPS=compressed; AC_MSG_RESULT(yes), - AUTOLOAD_SNAPS=uncompressed; AC_MSG_RESULT(no)) + AUTOLOAD_SNAPS=compressed; LIBSPEC_HAVE_ZLIB=yes; AC_MSG_RESULT(yes), + AUTOLOAD_SNAPS=uncompressed; LIBSPEC_HAVE_ZLIB=""; AC_MSG_RESULT(no)) CPPFLAGS="$ac_save_CPPFLAGS" AC_SUBST(AUTOLOAD_SNAPS) +AC_SUBST(LIBSPEC_HAVE_ZLIB) AC_LINK_FILES([ lib/"$AUTOLOAD_SNAPS"/disk_plus3.szx lib/"$AUTOLOAD_SNAPS"/tape_128.szx @@ -356,6 +357,30 @@ lib/tape_se.szx lib/tape_ts2068.szx]) +dnl Check if supplied libspectrum has support for bz2 compressed files +AC_MSG_CHECKING(whether libspectrum supports compressed bz2 files) +ac_save_CPPFLAGS="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $LIBSPEC_CFLAGS" +AC_TRY_COMPILE([#include ],[ + int test = LIBSPECTRUM_SUPPORTS_BZ2_COMPRESSION; +], + LIBSPEC_HAVE_BZ2=yes; AC_MSG_RESULT(yes), + LIBSPEC_HAVE_BZ2=""; AC_MSG_RESULT(no)) +CPPFLAGS="$ac_save_CPPFLAGS" +AC_SUBST(LIBSPEC_HAVE_BZ2) + +dnl Check if supplied libspectrum has support for wav files +AC_MSG_CHECKING(whether libspectrum supports compressed bz2 files) +ac_save_CPPFLAGS="$CPPFLAGS" +CPPFLAGS="$CPPFLAGS $LIBSPEC_CFLAGS" +AC_TRY_COMPILE([#include ],[ + int test = LIBSPECTRUM_SUPPORTS_AUDIOFILE; +], + LIBSPEC_HAVE_AUDIOFILE=yes; AC_MSG_RESULT(yes), + LIBSPEC_HAVE_AUDIOFILE=""; AC_MSG_RESULT(no)) +CPPFLAGS="$ac_save_CPPFLAGS" +AC_SUBST(LIBSPEC_HAVE_AUDIOFILE) + dnl Check if a version of libpng which supplies png_write_png is available AC_MSG_CHECKING(whether PNG support requested) AC_ARG_WITH(png, @@ -681,6 +706,29 @@ AC_SUBST(COMPAT_SUBDIR) AC_SUBST(COMPAT_OSNAME) +dnl Decide if desktop and mime files are installed +AC_ARG_ENABLE(desktop-integration, +AS_HELP_STRING([--enable-desktop-integration], [add menu entry and file associations]), +if test "$enableval" = yes; then desktopintegration=yes; else desktopintegration=no; fi, +desktdesktopintegration=no) +AC_MSG_CHECKING(whether to install desktop file) +AC_MSG_RESULT($desktopintegration) +AM_CONDITIONAL(DESKTOP_INTEGRATION, test "$desktopintegration" = yes) +AC_CHECK_PROGS(GTK_UPDATE_ICON_CACHE,gtk-update-icon-cache,true) + +dnl Where to install the desktop and mime files +AC_ARG_WITH(desktop-dir, +AS_HELP_STRING([--with-desktop-dir=DIR], [location of desktop files (default=datadir)]), +if test "$withval" = no; then desktopdir=no; else desktopdir=yes; fi, +desktopdir=no) +if test "$desktopdir" = yes; then + DESKTOP_DATADIR=$with_desktop_dir +else + DESKTOP_DATADIR="$datadir" +fi +AM_CONDITIONAL(DESKTOP_DATADIR, test "$desktopdir" == yes) +AC_SUBST(DESKTOP_DATADIR) + dnl Do we want the low memory compile? AC_MSG_CHECKING(whether low memory compile requested) AC_ARG_ENABLE(smallmem, @@ -723,6 +771,7 @@ compat/unix/Makefile \ compat/wii/Makefile \ compat/win32/Makefile \ +data/Makefile \ debugger/Makefile \ hacking/Makefile \ lib/Makefile \ Property changes on: data ___________________________________________________________________ Added: svn:ignore + Makefile Makefile.in fuse.desktop fuse.xml Index: data/fuse.desktop.in =================================================================== --- data/fuse.desktop.in (revision 0) +++ data/fuse.desktop.in (revision 0) @@ -0,0 +1,10 @@ +[Desktop Entry] +Version=1.0 +Type=Application +Categories=Game;Emulator;GNOME;GTK; +Name=Fuse Spectrum Emulator +Comment=Emulator of the 1980s ZX Spectrum home computer and its various clones +MimeType=@MIME_TYPES@ +Exec=fuse %f +Icon=fuse + Index: data/fuse.xml.in =================================================================== --- data/fuse.xml.in (revision 0) +++ data/fuse.xml.in (revision 0) @@ -0,0 +1,284 @@ + + + + ZX Spectrum audio + + + + + + + + ZX Spectrum cartridge + + + + + ZX Spectrum disk + + + + + + + + + ZX Spectrum disk + + + + + + + + ZX Spectrum harddisk + + + + + + + + ZX Spectrum disk + + + + + ZX Spectrum tape + + + + + ZX Spectrum microdrive + + + + + ZX Spectrum disk + + + + + ZX Spectrum snapshot + + + + + ZX Spectrum disk + + + + + ZX Spectrum disk + + + + + ZX Spectrum tape + + + + + + + + ZX Spectrum tape + + + + + + + + ZX Spectrum cartridge + + + + + ZX Spectrum action replay + + + + + + + + ZX Spectrum disk + + + + + + + + ZX Spectrum disk + + + + + + + + ZX Spectrum snapshot + + + + + ZX Spectrum snapshot + + + + + + ZX Spectrum snapshot + + + + + ZX Spectrum snapshot + + + + + ZX Spectrum tape + + + + + ZX Spectrum tape + + + + + ZX Spectrum snapshot + + + + + + + + + ZX Spectrum disk + + + + + + + + + ZX Spectrum tape + + + + + ZX Spectrum disk + + + + + + + + ZX Spectrum tape + + + + + + + + ZX Spectrum disk + + + + + + + + ZX Spectrum snapshot + + + + + ZX Spectrum snapshot + + + + + + + ##LIBSPECTRUM_HAVE_AUDIOFILE_BEGIN## + + ZX Spectrum audio + + + + + + + ##LIBSPECTRUM_HAVE_AUDIOFILE_END## + ##LIBSPECTRUM_HAVE_ZLIB_BEGIN## + + ZX Spectrum compressed + + + + + + + + + + + + + + + + + + + + + + ##LIBSPECTRUM_HAVE_AUDIOFILE_BEGIN## + + ##LIBSPECTRUM_HAVE_AUDIOFILE_END## + + + + ##LIBSPECTRUM_HAVE_ZLIB_END## + ##LIBSPECTRUM_HAVE_BZ2_BEGIN## + + ZX Spectrum compressed + + + + + + + + + + + + + + + + + + + + + + ##LIBSPECTRUM_HAVE_AUDIOFILE_BEGIN## + + ##LIBSPECTRUM_HAVE_AUDIOFILE_END## + + + + ##LIBSPECTRUM_HAVE_BZ2_END## + Index: data/Makefile.am =================================================================== --- data/Makefile.am (revision 0) +++ data/Makefile.am (revision 0) @@ -0,0 +1,116 @@ +## Process this file with automake to produce Makefile.in +## Copyright (c) 2011 Philip Kendall + +## $Id$ + +## 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., +## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +## +## Author contact information: +## +## E-mail: philip-fuse@shadowmagic.org.uk + +AUTOMAKE_OPTIONS = foreign + +if DESKTOP_INTEGRATION + +fusemimedir = $(DESKTOP_DATADIR)/mime/packages +fusemime_DATA = fuse.xml + +appdatadir = $(DESKTOP_DATADIR)/applications +appdata_DATA = fuse.desktop + +iconsdatadir = $(DESKTOP_DATADIR)/icons/hicolor +icons16dir = $(iconsdatadir)/16x16/apps +icons32dir = $(iconsdatadir)/32x32/apps +icons48dir = $(iconsdatadir)/48x48/apps +icons64dir = $(iconsdatadir)/64x64/apps +icons128dir = $(iconsdatadir)/128x128/apps +icons256dir = $(iconsdatadir)/256x256/apps + +dist_icons16_DATA = icons/16x16/fuse.png +dist_icons32_DATA = icons/32x32/fuse.png +dist_icons48_DATA = icons/48x48/fuse.png +dist_icons64_DATA = icons/64x64/fuse.png +dist_icons128_DATA = icons/128x128/fuse.png +dist_icons256_DATA = icons/256x256/fuse.png + +mimeicons16dir = $(iconsdatadir)/16x16/mimetypes +mimeicons32dir = $(iconsdatadir)/32x32/mimetypes +mimeicons48dir = $(iconsdatadir)/48x48/mimetypes +mimeicons64dir = $(iconsdatadir)/64x64/mimetypes +mimeicons128dir = $(iconsdatadir)/128x128/mimetypes +mimeicons256dir = $(iconsdatadir)/256x256/mimetypes + +dist_mimeicons16_DATA = icons/16x16/application-x-spectrum.png +dist_mimeicons32_DATA = icons/32x32/application-x-spectrum.png +dist_mimeicons48_DATA = icons/48x48/application-x-spectrum.png +dist_mimeicons64_DATA = icons/64x64/application-x-spectrum.png +dist_mimeicons128_DATA = icons/128x128/application-x-spectrum.png +dist_mimeicons256_DATA = icons/256x256/application-x-spectrum.png + +# Generate fuse.xml according to libspectrum capabilities +fuse.xml: fuse.xml.in + if test -z "$(LIBSPEC_HAVE_AUDIOFILE)"; then \ + mime_audiofile='/LIBSPECTRUM_HAVE_AUDIOFILE_BEGIN/,/LIBSPECTRUM_HAVE_AUDIOFILE_END/d'; \ + else \ + mime_audiofile='/LIBSPECTRUM_HAVE_AUDIOFILE/d'; \ + fi; \ + if test -z "$(LIBSPEC_HAVE_ZLIB)"; then \ + mime_zlib='/LIBSPECTRUM_HAVE_ZLIB_BEGIN/,/LIBSPECTRUM_HAVE_ZLIB_END/d'; \ + else \ + mime_zlib='/LIBSPECTRUM_HAVE_ZLIB/d'; \ + fi; \ + if test -z "$(LIBSPEC_HAVE_BZ2)"; then \ + mime_bz2='/LIBSPECTRUM_HAVE_BZ2_BEGIN/,/LIBSPECTRUM_HAVE_BZ2_END/d'; \ + else \ + mime_bz2='/LIBSPECTRUM_HAVE_BZ2/d'; \ + fi; \ + $(SED) -e "$$mime_audiofile" -e "$$mime_zlib" -e "$$mime_bz2" < fuse.xml.in > $@ + +# Generate fuse.desktop from fuse.xml to keep mime types list in sync +fuse.desktop: fuse.desktop.in $(srcdir)/fuse.xml + list=`$(SED) -e '/.*/\1;/' -e t -e d < $(srcdir)/fuse.xml | tr -d '\n'` && \ + $(SED) -e "s|@MIME_TYPES@|$$list|" < fuse.desktop.in > $@ + +update-database-cache: + if test -z "$(DESTDIR)"; then \ + update-desktop-database $(DESKTOP_DATADIR)/applications; \ + update-mime-database $(DESKTOP_DATADIR)/mime; \ + touch --no-create $(iconsdatadir); \ + $(GTK_UPDATE_ICON_CACHE) -t ${iconsdatadir}; \ + fi + +install-data-hook: update-database-cache + +uninstall-hook: update-database-cache + +validate: fuse.desktop + ( dfvalidate=`which desktop-file-validate`; \ + if test x$$dfvalidate != x && test -x $$dfvalidate; then \ + $$dfvalidate $< || ( echo "* $< INVALID *"; exit 1 ) \ + fi ) + +dist-hook: validate + +endif + +EXTRA_DIST = \ + fuse.desktop.in \ + fuse.xml.in + +CLEANFILES = \ + fuse.desktop \ + fuse.xml + Index: data/icons/48x48/fuse.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: data/icons/48x48/fuse.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: data/icons/48x48/application-x-spectrum.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: data/icons/48x48/application-x-spectrum.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: data/icons/32x32/fuse.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: data/icons/32x32/fuse.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: data/icons/32x32/application-x-spectrum.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: data/icons/32x32/application-x-spectrum.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: data/icons/256x256/fuse.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: data/icons/256x256/fuse.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: data/icons/256x256/application-x-spectrum.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: data/icons/256x256/application-x-spectrum.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: data/icons/16x16/fuse.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: data/icons/16x16/fuse.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: data/icons/16x16/application-x-spectrum.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: data/icons/16x16/application-x-spectrum.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: data/icons/64x64/fuse.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: data/icons/64x64/fuse.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: data/icons/64x64/application-x-spectrum.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: data/icons/64x64/application-x-spectrum.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: data/icons/128x128/fuse.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: data/icons/128x128/fuse.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: data/icons/128x128/application-x-spectrum.png =================================================================== Cannot display: file marked as a binary type. svn:mime-type = application/octet-stream Property changes on: data/icons/128x128/application-x-spectrum.png ___________________________________________________________________ Added: svn:mime-type + application/octet-stream Index: Makefile.am =================================================================== --- Makefile.am (revision 4662) +++ Makefile.am (working copy) @@ -26,6 +26,7 @@ bin_PROGRAMS = fuse SUBDIRS = @COMPAT_SUBDIR@ \ + data \ debugger \ hacking \ lib \ @@ -41,7 +42,8 @@ unittests \ z80 -DIST_SUBDIRS = debugger \ +DIST_SUBDIRS = data \ + debugger \ hacking \ lib \ machines \