PKGNAME radare2 VERSION 2.7.0-git CONTACT pancake ; pancake@nopcode.org LANG_C! ARG_DISABLE DEBUGGER debugger disable native debugger features ; (( -ldl -dynamic ... )) USE_DL CHKPRG! PATCH patch CHKPRG GIT git 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 = '' ; } (( useful for static builds . see sys/static.sh )) ARG_DISABLE LOADLIBS loadlibs disable loading plugins ; ARG_WITHOUT HAVE_FORK fork disable fork ; ARG_WITH WITH_LIBR libr build libr.a and libr.dylib ; ARG_WITH WITH_CAPSTONE syscapstone force to use system-wide capstone ; PKGCFG CAPSTONE_CFLAGS CAPSTONE_LDFLAGS capstone IFAND WITH_CAPSTONE HAVE_PKGCFG_CAPSTONE { USE_CAPSTONE = 1 ; }{ USE_CAPSTONE = 0 ; } 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 = '' ; (( static linking to shlr/zip )) } }{ USE_LIB_ZIP = 0 ; LIBZIP = '' ; (( static linking to shlr/zip )) } ARG_WITHOUT WITH_GPL gpl do not build GPL code (grub, cxx, ... ) ; CHKDECL sys/personality.h ADDR_NO_RANDOMIZE (( TODO must deprecate CHKLIB gmp ARG_WITHOUT HAVE_GMP gmp disable GMP dependency ; IFNOT HAVE_GMP { HAVE_LIB_GMP = 0 ; } HAVE_GMP = 0 ; )) HAVE_LIB_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 ; (( 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 mingw32_nt-6.2 ; { USEROSTYPE = mingw32 ; }{ IFEQ HOST_OS mingw32_nt ; { USEROSTYPE = mingw32 ; }{ IFEQ HOST_OS linux ; { USEROSTYPE = gnulinux ; }{ IFEQ HOST_OS gnu ; { (( GNU / HURD )) USEROSTYPE = gnulinux ; HAVE_LIB_DL = 1 ; DL_LIBS = -ldl ; }{ IFEQ HOST_OS sunos ; { USEROSTYPE = solaris ; }{ IFEQ HOST_OS gnu/kfreebsd ; { USEROSTYPE = bsd ; }{ IFEQ HOST_OS netbsd ; { USEROSTYPE = bsd ; }{ IFEQ HOST_OS freebsd ; { USEROSTYPE = bsd ; }{ IFEQ HOST_OS openbsd ; { USEROSTYPE = bsd ; }{ IFEQ HOST_OS darwin ; { USEROSTYPE = darwin ; } } } } } } } } } } } (( this hack is required for openbsd ports )) ARG_WITH LIBVERSION=xxx libversion specify different libversion ; ARG_WITHOUT HAVE_JEMALLOC jemalloc build without jemalloc ; IFEQ LIBVERSION xxx ; { LIBVERSION = $VERSION ; } REPORT PREFIX HAVE_LIB_GMP HAVE_OPENSSL USE_CAPSTONE HAVE_FORK VERSION USE_LIB_ZIP USE_LIB_MAGIC DEBUGGER CC USERCC USEROSTYPE LIBVERSION BUILD HOST TARGET ; (( 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_magic.pc pkgcfg/r_asm.pc pkgcfg/r_bin.pc pkgcfg/r_anal.pc pkgcfg/r_hash.pc pkgcfg/r_cons.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_flag.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 pkgcfg/r_egg.pc pkgcfg/r_crypto.pc ;