PKGNAME radare2
VERSION 0.9.8.git
CONTACT pancake ; pancake@nopcode.org

LANG_C!

ARG_ENABLE CPARSE cparse build with cparse support ;
ARG_DISABLE DEBUGGER debugger disable native debugger features ;

(( -ldl -dynamic ... ))
USE_DL

CHECK_ENDIAN
CHKLIB magic
ARG_WITH USE_MAGIC sysmagic force to use system's magic ;
IFAND HAVE_LIB_MAGIC USE_MAGIC {
	USE_LIB_MAGIC = 1 ;
	LIBMAGIC = -lmagic ;
}{
	USE_LIB_MAGIC = 0 ;
	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 ;
IF HAVE_PKGCFG_LIBEWF {
	HAVE_LIB_EWF = 1 ;
}{
	HAVE_LIB_EWF = 0 ;
}
IFNOT HAVE_EWF { HAVE_LIB_EWF = 0 ; }

(( TODO must deprecate 
CHKLIB gmp
ARG_WITHOUT HAVE_GMP gmp disable GMP dependency ;
IFNOT HAVE_GMP { HAVE_LIB_GMP = 0 ; }
))
HAVE_LIB_GMP = 0 ;
HAVE_GMP = 0 ;

CHKLIB ssl
PKGCFG SSL_CFLAGS SSL_LDFLAGS openssl
IFNOTNULL SSL_LDFLAGS {
	HAVE_OPENSSL = 1 ;
}
(( ARG_WITHOUT HAVE_OPENSSL ssl disable openssl dependency ; ))
ARG_WITH WANT_OPENSSL openssl build with openssl if possible ;
IFAND WANT_OPENSSL HAVE_OPENSSL {
	HAVE_OPENSSL = 1 ;
}{
	HAVE_OPENSSL = 0 ;
}
IFNULL SSL_LDFLAGS { 
	IFNOT HAVE_LIB_SSL {
		HAVE_OPENSSL = 0 ;
	}{
		SSL_LDFLAGS = -lssl ;
	}
}

ARG_WITH USE_RPATH rpath use rpath to build ;

ARG_WITH HAVE_LILEND little-endian force little endian ;
IF HAVE_LILEND { LIL_ENDIAN = 1 ; }
ARG_WITH HAVE_BIGEND big-endian force big endian ;
IF HAVE_BIGEND { LIL_ENDIAN = 0 ; }

CHKLIB lua5.1

(( rules for the compiler ))
ARG_WITH USERCC=gcc compiler Define compiler to use (see mk/) ;
ARG_WITH USEROSTYPE=auto ostype Choose OS type ( gnulinux windows darwin haiku ) ;

(( TODO: throw error if unknown ostype ))
(( TODO: handle BSD os as different ostype? ))
IFEQ USEROSTYPE auto ; {
	IFEQ HOST_OS linux ; {
		USEROSTYPE = gnulinux ;
	}{
	IFEQ HOST_OS gnu ; {
		(( GNU / HURD ))
		USEROSTYPE = gnulinux ;
		HAVE_LIB_DL = 1 ;
		DL_LIBS = -ldl ;
	}{
	IFEQ HOST_OS gnu/kfreebsd ; {
		USEROSTYPE = gnulinux ;
	}{
	IFEQ HOST_OS netbsd ; {
		USEROSTYPE = gnulinux ;
	}{
	IFEQ HOST_OS freebsd ; {
		USEROSTYPE = gnulinux ;
	}{
	IFEQ HOST_OS openbsd ; {
		USEROSTYPE = gnulinux ;
	}{
	IFEQ HOST_OS darwin ; {
		USEROSTYPE = darwin ;
	} } } } } } }
}

ARG_WITHOUT WITHPIC pic do not build libr as a program independent location ;
ARG_WITH WITHNONPIC nonpic build the library archives .a ;
(( this hack is required for openbsd ports ))
ARG_WITH LIBVERSION=xxx libversion specify different libversion ;

IFEQ LIBVERSION xxx ; {
	LIBVERSION = $VERSION ;
}

REPORT PREFIX HAVE_LIB_EWF HAVE_LIB_GMP HAVE_OPENSSL
	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? ))
SUBDIRS ./config-user.mk
	libr/include/r_userconf.h
	pkgcfg/r_io.pc
	pkgcfg/r_db.pc
	pkgcfg/r_magic.pc
	pkgcfg/r_asm.pc
	pkgcfg/r_bin.pc
	pkgcfg/r_anal.pc
	pkgcfg/r_hash.pc
	pkgcfg/r_cons.pc
	pkgcfg/r_diff.pc
	pkgcfg/r_core.pc
	pkgcfg/r_lang.pc
	pkgcfg/r_socket.pc
	pkgcfg/r_debug.pc
	pkgcfg/r_reg.pc
	pkgcfg/r_config.pc
	pkgcfg/r_flags.pc
	pkgcfg/r_syscall.pc
	pkgcfg/r_util.pc
	pkgcfg/r_search.pc
	pkgcfg/r_bp.pc
	pkgcfg/r_parse.pc
	pkgcfg/r_fs.pc
;