Introduce --with-system-zip configure flag to use system zip (minizip)

if available.
This commit is contained in:
Lars Wendler 2016-11-11 17:52:07 +01:00
parent b7cdf60b06
commit def3936a53
No known key found for this signature in database
GPG Key ID: 571DD2D0343C6039
9 changed files with 102 additions and 17 deletions

View File

@ -197,7 +197,11 @@
#include <string>
#ifdef UNZIP_SUPPORT
#include "unzip/unzip.h"
# ifdef SYSTEM_ZIP
# include <minizip/unzip.h>
# else
# include "unzip/unzip.h"
# endif
#endif
#include "snes9x.h"

View File

@ -196,12 +196,16 @@ snes9x_gtk_SOURCES += \
../server.cpp
endif
# Zip support is nonconfigurable.
snes9x_gtk_SOURCES += \
../loadzip.cpp \
../loadzip.cpp
if ! SYSTEM_ZIP
snes9x_gtk_SOURCES += \
../unzip/unzip.c \
../unzip/ioapi.c \
../unzip/zip.c
endif
UNZIPDEFINES=-DUNZIP_SUPPORT
if JMA

View File

@ -138,6 +138,12 @@ AC_ARG_WITH(zlib,
[],
[with_zlib=yes])
AC_ARG_WITH(system-zip,
[AS_HELP_STRING([--with(out)-system-zip],
[Use system zip])],
[],
[system_zip=check])
AC_ARG_WITH(screenshot,
[AS_HELP_STRING([--with(out)-screenshot],
[Screenshot support through libpng if available (default: with)])],
@ -313,6 +319,25 @@ if test yes = "$with_screenshot"; then
])
fi
SYSTEM_ZIP=0
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_ZIP)
else
AC_MSG_ERROR(--with-system-zip given but cannot find proper zlib)
fi
])
fi
if test yes = "$with_hq2x" ; then
HQ2X=yes
CFLAGS="$CFLAGS -DUSE_HQ2X"
@ -440,7 +465,7 @@ if test $ac_cv_my_sar_int8 = yes && \
CFLAGS="$CFLAGS -DRIGHTSHIFT_IS_SAR"
fi
CFLAGS="$CFLAGS -DUNZIP_SUPPORT -DSPC700_C -I. -I.. -I../unzip"
CFLAGS="$CFLAGS -DUNZIP_SUPPORT -DSPC700_C -I. -I.. $ZIP_CFLAGS"
CXXFLAGS="$CFLAGS"
@ -462,6 +487,7 @@ 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"])
AC_SUBST(NASM)
AC_SUBST(NASM_FLAGS)

View File

@ -192,7 +192,11 @@
#include <assert.h>
#include <ctype.h>
#ifdef SYSTEM_ZIP
#include <minizip/unzip.h>
#else
#include "unzip/unzip.h"
#endif
#include "snes9x.h"
#include "memmap.h"

View File

@ -193,7 +193,11 @@
#include <assert.h>
#ifdef UNZIP_SUPPORT
#include "unzip/unzip.h"
# ifdef SYSTEM_ZIP
# include <minizip/unzip.h>
# else
# include "unzip/unzip.h"
# endif
#endif
#ifdef JMA_SUPPORT

View File

@ -192,7 +192,11 @@
#include <string>
#ifdef UNZIP_SUPPORT
#include "unzip.h"
# ifdef SYSTEM_ZIP
# include <minizip/unzip.h>
# else
# include "unzip.h"
# endif
#endif
#include "snes9x.h"
#include "stream.h"

View File

@ -229,8 +229,11 @@ class fStream : public Stream
};
#ifdef UNZIP_SUPPORT
#include "unzip.h"
# ifdef SYSTEM_ZIP
# include <minizip/unzip.h>
# else
# include "unzip.h"
# endif
#define unz_BUFFSIZ 1024

View File

@ -2,6 +2,7 @@
@S9XNETPLAY@
@S9XZIP@
@S9XJMA@
@S9X_SYSTEM_ZIP@
# Fairly good and special-char-safe descriptor of the os being built on.
OS = `uname -s -r -m|sed \"s/ /-/g\"|tr \"[A-Z]\" \"[a-z]\"|tr \"/()\" \"___\"`
@ -19,7 +20,11 @@ OBJECTS += ../netplay.o ../server.o
endif
ifdef S9XZIP
OBJECTS += ../loadzip.o ../unzip/ioapi.o ../unzip/unzip.o
OBJECTS += ../loadzip.o
ifndef SYSTEM_ZIP
OBJECTS += ../unzip/ioapi.o ../unzip/unzip.o
INCLUDES = -I../unzip/
endif
endif
ifdef S9XJMA
@ -29,7 +34,7 @@ endif
CCC = @CXX@
CC = @CC@
GASM = @CXX@
INCLUDES = -I. -I.. -I../apu/ -I../apu/bapu -I../unzip/ -I../jma/ -I../filter/
INCLUDES += -I. -I.. -I../apu/ -I../apu/bapu -I../jma/ -I../filter/
CCFLAGS = @S9XFLGS@ @S9XDEFS@ $(DEFS)
CFLAGS = $(CCFLAGS)

View File

@ -201,16 +201,43 @@ AC_ARG_ENABLE([zip],
[enable ZIP support through zlib (default: yes)])],
[], [enable_zip="yes"])
S9X_SYSTEM_ZIP="#SYSTEM_ZIP=1"
AC_ARG_WITH([system-zip],
[AS_HELP_STRING([--with-system-zip],
[Use system zip (default: check)])],
[], [with_system_zip="check"])
if test "x$enable_zip" = "xyes"; then
if test "x$snes9x_cv_zlib" = "xyes"; then
S9XZIP="S9XZIP=1"
S9XDEFS="$S9XDEFS -DUNZIP_SUPPORT"
if test "x$enable_gzip" = "xno"; then
S9XLIBS="$S9XLIBS -lz"
fi
if test "x$with_system_zip" != "xno"; then
PKG_CHECK_MODULES(
SYSTEM_ZIP,
minizip,
S9XZIP="S9XZIP=1"
S9XDEFS="$S9XDEFS -DUNZIP_SUPPORT"
S9X_SYSTEM_ZIP="SYSTEM_ZIP=1"
S9XLIBS="$S9XLIBS $SYSTEM_ZIP_LIBS"
if test "x$enable_gzip" = "xno"; then
S9XLIBS="$S9XLIBS -lz"
fi
S9XDEFS="$S9XDEFS -DSYSTEM_ZIP",
if test "x${with_system_zip}" != "xcheck"; then
AC_MSG_ERROR([--with-system-zip requested but no proper zlib found.])
else
AC_MSG_WARN([zlib not found. Build without SYSTEM_ZIP support.])
fi
)
else
AC_MSG_WARN([zlib not found. Build without ZIP support.])
enable_zip="no"
if test "x$snes9x_cv_zlib" = "xyes"; then
S9XZIP="S9XZIP=1"
S9XDEFS="$S9XDEFS -DUNZIP_SUPPORT"
if test "x$enable_gzip" = "xno"; then
S9XLIBS="$S9XLIBS -lz"
fi
else
AC_MSG_WARN([zlib not found. Build without ZIP support.])
enable_zip="no"
fi
fi
fi
@ -427,9 +454,11 @@ S9XLIBS="$LIBS $S9XLIBS"
S9XFLGS="`echo \"$S9XFLGS\" | sed -e 's/ */ /g'`"
S9XDEFS="`echo \"$S9XDEFS\" | sed -e 's/ */ /g'`"
S9XLIBS="`echo \"$S9XLIBS\" | sed -e 's/ */ /g'`"
S9X_SYSTEM_ZIP="`echo \"$S9X_SYSTEM_ZIP\" | sed -e 's/ */ /g'`"
S9XFLGS="`echo \"$S9XFLGS\" | sed -e 's/^ *//'`"
S9XDEFS="`echo \"$S9XDEFS\" | sed -e 's/^ *//'`"
S9XLIBS="`echo \"$S9XLIBS\" | sed -e 's/^ *//'`"
S9X_SYSTEM_ZIP="`echo \"$S9X_SYSTEM_ZIP\" | sed -e 's/^ *//'`"
AC_SUBST(S9XFLGS)
AC_SUBST(S9XDEFS)
@ -439,6 +468,7 @@ AC_SUBST(S9XDEBUGGER)
AC_SUBST(S9XNETPLAY)
AC_SUBST(S9XZIP)
AC_SUBST(S9XJMA)
AC_SUBST(S9X_SYSTEM_ZIP)
rm config.info 2>/dev/null
@ -459,6 +489,7 @@ netplay support...... $enable_netplay
gamepad support...... $enable_gamepad
GZIP support......... $enable_gzip
ZIP support.......... $enable_zip
SYSTEM_ZIP........... $with_system_zip
JMA support.......... $enable_jma
debugger............. $enable_debugger