diff --git a/desmume/configure.ac b/desmume/configure.ac index a73b9f645..1451afde7 100644 --- a/desmume/configure.ac +++ b/desmume/configure.ac @@ -34,7 +34,17 @@ dnl - Check for zlib AC_CHECK_LIB(z, gzopen, [], [AC_MSG_ERROR([zlib was not found, we can't go further. Please install it or specify the location where it's installed.])]) dnl - Check for zziplib -AC_CHECK_LIB(zzip, zzip_open) +AC_CHECK_LIB(zzip, zzip_open, [ + LIBS="-lzzip $LIBS" + AC_DEFINE([HAVE_LIBZZIP]) + AC_MSG_CHECKING([[whether zzip use void * as second parameter]]) + AC_COMPILE_IFELSE(AC_LANG_PROGRAM([[#include ]], [[ + void * v; + zzip_read(NULL, v, 0);]]), + AC_MSG_RESULT(yes), + AC_DEFINE([ZZIP_OLD_READ]) + AC_MSG_RESULT(no)) +]) dnl - Check for SDL AC_PATH_PROGS(SDLCONFIG, [sdl-config sdl11-config]) diff --git a/desmume/src/ROMReader.cpp b/desmume/src/ROMReader.cpp index 96d4767ac..66b8d8900 100644 --- a/desmume/src/ROMReader.cpp +++ b/desmume/src/ROMReader.cpp @@ -227,6 +227,10 @@ int ZIPROMReaderSeek(void * file, int offset, int whence) int ZIPROMReaderRead(void * file, void * buffer, u32 size) { +#ifdef ZZIP_OLD_READ + return zzip_read((ZZIP_FILE*)file, (char *) buffer, size); +#else return zzip_read((ZZIP_FILE*)file, buffer, size); +#endif } #endif