Add --with-syszip configure flag to use system libzip+libz instead of shlr/zip

This commit is contained in:
pancake 2014-01-30 01:45:08 +01:00
parent 175643bedc
commit 5f14f7290b
8 changed files with 55 additions and 7 deletions

View File

@ -49,6 +49,9 @@ HAVE_LIB_GMP=@HAVE_LIB_GMP@
HAVE_LIB_SSL=@HAVE_OPENSSL@
HAVE_LIB_MAGIC=@HAVE_LIB_MAGIC@
USE_LIB_MAGIC=@USE_LIB_MAGIC@
USE_LIB_ZIP=@USE_LIB_ZIP@
LIBMAGIC=@LIBMAGIC@
LIBZIP=@LIBZIP@
SSL_CFLAGS=@SSL_CFLAGS@
SSL_LDFLAGS=@SSL_LDFLAGS@

22
configure vendored
View File

@ -20,6 +20,7 @@ trap control_c 2
CPARSE=0
DEBUGGER=1
USE_MAGIC=0
USE_ZIP=0
HAVE_EWF=1
WANT_OPENSSL=0
USE_RPATH=0
@ -159,6 +160,7 @@ Optional Features:
--enable-cparse build with cparse support
--disable-debugger disable native debugger features
--with-sysmagic force to use system's magic
--with-syszip force to use system's libzip and zlib
--without-ewf disable EWF dependency
--with-openssl build with openssl if possible
--with-rpath use rpath to build
@ -224,7 +226,7 @@ echo "LANGS: c"
echo "REQUIRED: libdl"
echo "OPTIONAL: libmagic"
echo "PKG-CONFIG: libewf openssl"
echo "FLAGS: --enable-cparse --disable-debugger --with-sysmagic --without-ewf --with-openssl --with-rpath --with-little-endian --with-big-endian --with-compiler=gcc --with-ostype=auto --without-pic --with-nonpic --with-libversion=xxx"
echo "FLAGS: --enable-cparse --disable-debugger --with-sysmagic --with-syszip --without-ewf --with-openssl --with-rpath --with-little-endian --with-big-endian --with-compiler=gcc --with-ostype=auto --without-pic --with-nonpic --with-libversion=xxx"
exit 0
;;
--cache-file)
@ -271,6 +273,7 @@ echo "FLAGS: --enable-cparse --disable-debugger --with-sysmagic --without-ew
"--enable-cparse") CPARSE="1"; ;;
"--disable-debugger") DEBUGGER="0"; ;;
"--with-sysmagic") USE_MAGIC="1"; ;;
"--with-syszip") USE_ZIP="1"; ;;
"--without-ewf") HAVE_EWF="0"; ;;
"--with-openssl") WANT_OPENSSL="1"; ;;
"--with-rpath") USE_RPATH="1"; ;;
@ -298,7 +301,7 @@ parse_options $1
shift
done
ENVWORDS="MANDIR INFODIR LIBDIR INCLUDEDIR LOCALSTATEDIR SYSCONFDIR DATADIR LIBEXECDIR SBINDIR BINDIR EPREFIX PREFIX SPREFIX TARGET HOST BUILD INSTALL INSTALL_LIB INSTALL_MAN INSTALL_PROGRAM INSTALL_PROGRAM_STRIP INSTALL_DIR INSTALL_SCRIPT INSTALL_DATA HOST_OS HOST_CPU BUILD_OS BUILD_CPU TARGET_OS TARGET_CPU PKGNAME VPATH VERSION CONTACT CONTACT_NAME CONTACT_MAIL CC CFLAGS CPPFLAGS LDFLAGS HAVE_LANG_C CPARSE DEBUGGER HAVE_LIB_DL DL_LIBS LIL_ENDIAN BIG_ENDIAN BYTEORDER HAVE_LIB_MAGIC USE_MAGIC USE_LIB_MAGIC LIBMAGIC HAVE_LIB_EWF EWF_CFLAGS EWF_LDFLAGS HAVE_PKGCFG_LIBEWF HAVE_EWF HAVE_LIB_GMP HAVE_GMP HAVE_LIB_SSL SSL_CFLAGS SSL_LDFLAGS HAVE_PKGCFG_OPENSSL HAVE_OPENSSL WANT_OPENSSL USE_RPATH HAVE_LILEND HAVE_BIGEND HAVE_LIB_LUA5_1 USERCC USEROSTYPE WITHPIC WITHNONPIC LIBVERSION"
ENVWORDS="MANDIR INFODIR LIBDIR INCLUDEDIR LOCALSTATEDIR SYSCONFDIR DATADIR LIBEXECDIR SBINDIR BINDIR EPREFIX PREFIX SPREFIX TARGET HOST BUILD INSTALL INSTALL_LIB INSTALL_MAN INSTALL_PROGRAM INSTALL_PROGRAM_STRIP INSTALL_DIR INSTALL_SCRIPT INSTALL_DATA HOST_OS HOST_CPU BUILD_OS BUILD_CPU TARGET_OS TARGET_CPU PKGNAME VPATH VERSION CONTACT CONTACT_NAME CONTACT_MAIL CC CFLAGS CPPFLAGS LDFLAGS HAVE_LANG_C CPARSE DEBUGGER HAVE_LIB_DL DL_LIBS LIL_ENDIAN BIG_ENDIAN BYTEORDER HAVE_LIB_MAGIC USE_MAGIC USE_LIB_MAGIC LIBMAGIC HAVE_LIB_Z HAVE_LIB_ZIP USE_ZIP USE_LIB_ZIP LIBZIP HAVE_LIB_EWF EWF_CFLAGS EWF_LDFLAGS HAVE_PKGCFG_LIBEWF HAVE_EWF HAVE_LIB_GMP HAVE_GMP HAVE_LIB_SSL SSL_CFLAGS SSL_LDFLAGS HAVE_PKGCFG_OPENSSL HAVE_OPENSSL WANT_OPENSSL USE_RPATH HAVE_LILEND HAVE_BIGEND HAVE_LIB_LUA5_1 USERCC USEROSTYPE WITHPIC WITHNONPIC LIBVERSION"
create_environ
@ -380,6 +383,19 @@ LIBMAGIC="-lmagic"
else
USE_LIB_MAGIC="0"
LIBMAGIC="-lr_magic"; fi
check_library HAVE_LIB_Z z 0
check_library HAVE_LIB_ZIP zip 0
if [ 11 = "$HAVE_LIB_Z$USE_ZIP" ]; then
if [ "$HAVE_LIB_ZIP" = "1" ]; then
USE_LIB_ZIP="1"
LIBZIP="-lz -lzip"
else
USE_LIB_ZIP="0"
LIBZIP="-lrz"; fi
else
USE_LIB_ZIP="0"
LIBZIP="-lrz"; fi
check_library HAVE_LIB_EWF ewf 0
printf 'checking pkg-config flags for libewf... '
tmp=`pkg-config --cflags libewf 2>/dev/null`
@ -496,7 +512,7 @@ done
do_remove
echo
echo "Final report:"
for A in PREFIX HAVE_LIB_EWF HAVE_LIB_GMP HAVE_OPENSSL VERSION USE_LIB_MAGIC DEBUGGER CC USERCC USEROSTYPE LIL_ENDIAN LIBVERSION ; do # REPORT
for A in PREFIX HAVE_LIB_EWF HAVE_LIB_GMP HAVE_OPENSSL VERSION USE_LIB_ZIP USE_LIB_MAGIC DEBUGGER CC USERCC USEROSTYPE LIL_ENDIAN LIBVERSION ; do # REPORT
eval VAL="\$${A}"
[ -z "${VAL}" ] && VAL="(null)"
echo " - ${A} = ${VAL}"

View File

@ -21,6 +21,22 @@ IFAND HAVE_LIB_MAGIC USE_MAGIC {
LIBMAGIC = -lr_magic ;
}
CHKLIB z
CHKLIB zip
ARG_WITH USE_ZIP syszip force to use system's libzip and zlib ;
IFAND HAVE_LIB_Z USE_ZIP {
IF HAVE_LIB_ZIP {
USE_LIB_ZIP = 1 ;
LIBZIP = -lz -lzip ;
}{
USE_LIB_ZIP = 0 ;
LIBZIP = -lrz ; (( static linking to shlr/zip ))
}
}{
USE_LIB_ZIP = 0 ;
LIBZIP = -lrz ; (( static linking to shlr/zip ))
}
CHKLIB ewf
PKGCFG EWF_CFLAGS EWF_LDFLAGS libewf
ARG_WITHOUT HAVE_EWF ewf disable EWF dependency ;
@ -111,7 +127,7 @@ IFEQ LIBVERSION xxx ; {
}
REPORT PREFIX HAVE_LIB_EWF HAVE_LIB_GMP HAVE_OPENSSL
VERSION USE_LIB_MAGIC DEBUGGER CC USERCC
VERSION USE_LIB_ZIP USE_LIB_MAGIC DEBUGGER CC USERCC
USEROSTYPE LIL_ENDIAN LIBVERSION ;
(( TODO: Add the rest of .pc files here.. add a rule for acr? ))

View File

@ -1,4 +1,4 @@
/* radare - LGPL - Copyright 2009-2013 - pancake */
/* radare - LGPL - Copyright 2009-2014 - pancake */
#include "r_core.h"

View File

@ -10,7 +10,11 @@ CFLAGS+=-Wall -DCORELIB
include ../socket/deps.mk
#include ../../shlr/zip/deps.mk
ifeq ($(USE_LIB_ZIP),1)
LINK+=$(LIBZIP)
else
LINK+=$(SHLR)/zip/librz.a
endif
#LINK+=$(SHLR)/zip/zlib/*.o
#LINK+=$(SHLR)/zip/zip/*.o

View File

@ -1,4 +1,4 @@
/* radare - LGPL - Copyright 2013 - pancake */
/* radare - LGPL - Copyright 2013-2014 - pancake */
#include "r_util.h"
#include "r_types.h"
@ -41,7 +41,6 @@ R_API char *r_parse_c_string(const char *code) {
}
R_API int r_parse_is_c_file (const char *file) {
const char *ext = r_str_lchr (file, '.');
if (ext) {
ext = ext+1;

View File

@ -2,6 +2,11 @@ include ../../config-user.mk
include ../../libr/config.mk
include ../../mk/${COMPILER}.mk
ifeq ($(USE_LIB_ZIP),1)
all:
rm -f librz.a
else
all: librz.a
LIBAR=librz.a
@ -18,3 +23,4 @@ clean:
${MAKE} -C zlib clean
${MAKE} -C zip clean
rm -f *.a *.${EXT_SO}
endif

View File

@ -1,4 +1,8 @@
#LDFLAGS+=${STOP}/zip/librz.a
#LINK+=${STOP}/zip/zip/*.o
#LINK+=${STOP}/zip/zlib/*.o
ifeq ($(USE_LIB_ZIP),1)
LINK=$(LIBZIP)
else
LINK+=../../shlr/zip/librz.a
endif