Merge branch 'next' of https://github.com/aquynh/capstone into next
This commit is contained in:
commit
1d03727f22
33
Makefile
33
Makefile
|
@ -30,19 +30,13 @@ PREFIX ?= /usr
|
|||
DESTDIR ?=
|
||||
INCDIR = $(DESTDIR)$(PREFIX)/include
|
||||
|
||||
UNAME_M := $(shell uname -m)
|
||||
UNAME_S := $(shell uname -s)
|
||||
|
||||
LIBDIR = $(DESTDIR)$(PREFIX)/lib
|
||||
# on x86_64, we might have /usr/lib64 directory instead of /usr/lib
|
||||
ifeq ($(UNAME_M), x86_64)
|
||||
# ignore Mac OSX
|
||||
ifneq ($(UNAME_S), Darwin)
|
||||
ifneq (,$(wildcard $(DESTDIR)$(PREFIX)/lib64))
|
||||
LIBDIR = $(DESTDIR)$(PREFIX)/lib64
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
LIBDIRARCH ?= lib
|
||||
# Uncomment the below line to installs x86_64 libs to lib64/ directory.
|
||||
# Or better, pass 'LIBDIRARCH=lib64' to 'make install/uninstall' via 'make.sh'.
|
||||
#LIBDIRARCH ?= lib64
|
||||
LIBDIR = $(DESTDIR)$(PREFIX)/$(LIBDIRARCH)
|
||||
|
||||
ifneq ($(UNAME_S),Darwin)
|
||||
LDFLAGS += -shared
|
||||
|
@ -197,7 +191,7 @@ LIBOBJ += $(LIBOBJ_ARM) $(LIBOBJ_ARM64) $(LIBOBJ_MIPS) $(LIBOBJ_PPC) $(LIBOBJ_SP
|
|||
LIBOBJ += MCInst.o
|
||||
|
||||
|
||||
PKGCFCGDIR = $(LIBDATADIR)/pkgconfig
|
||||
PKGCFGDIR ?= $(LIBDATADIR)/pkgconfig
|
||||
API_MAJOR=$(shell echo `grep -e CS_API_MAJOR include/capstone.h | grep -v = | awk '{print $$3}'` | awk '{print $$1}')
|
||||
VERSION_EXT =
|
||||
|
||||
|
@ -207,18 +201,13 @@ EXT = dylib
|
|||
VERSION_EXT = $(API_MAJOR).$(EXT)
|
||||
LDFLAGS += -dynamiclib -install_name lib$(LIBNAME).$(VERSION_EXT) -current_version $(PKG_MAJOR).$(PKG_MINOR).$(PKG_EXTRA) -compatibility_version $(PKG_MAJOR).$(PKG_MINOR)
|
||||
AR_EXT = a
|
||||
# Homebrew wants to make sure its formula does not disable FORTIFY_SOURCE
|
||||
# However, this is not really necessary because 'USE_SYS_DYN_MEM=yes' by default
|
||||
ifneq ($(HOMEBREW_CAPSTONE),1)
|
||||
ifneq ($(USE_SYS_DYN_MEM),yes)
|
||||
# remove string check because OSX kernel complains about missing symbols
|
||||
CFLAGS += -D_FORTIFY_SOURCE=0
|
||||
endif
|
||||
# By default, suppose that Brew is installed & use Brew path for pkgconfig file
|
||||
PKGCFCGDIR = /usr/local/lib/pkgconfig
|
||||
# is Macport installed instead?
|
||||
ifneq (,$(wildcard /opt/local/bin/port))
|
||||
# then correct the path for pkgconfig file
|
||||
PKGCFCGDIR = /opt/local/lib/pkgconfig
|
||||
endif
|
||||
endif
|
||||
else
|
||||
# Cygwin?
|
||||
|
@ -303,13 +292,13 @@ endif
|
|||
$(INSTALL_DATA) lib$(LIBNAME).$(AR_EXT) $(LIBDIR)
|
||||
mkdir -p $(INCDIR)/$(LIBNAME)
|
||||
$(INSTALL_DATA) include/*.h $(INCDIR)/$(LIBNAME)
|
||||
mkdir -p $(PKGCFCGDIR)
|
||||
$(INSTALL_DATA) $(PKGCFGF) $(PKGCFCGDIR)/
|
||||
mkdir -p $(PKGCFGDIR)
|
||||
$(INSTALL_DATA) $(PKGCFGF) $(PKGCFGDIR)/
|
||||
|
||||
uninstall:
|
||||
rm -rf $(INCDIR)/$(LIBNAME)
|
||||
rm -f $(LIBDIR)/lib$(LIBNAME).*
|
||||
rm -f $(PKGCFCGDIR)/$(LIBNAME).pc
|
||||
rm -f $(PKGCFGDIR)/$(LIBNAME).pc
|
||||
|
||||
clean:
|
||||
rm -f $(LIBOBJ) lib$(LIBNAME).*
|
||||
|
|
66
make.sh
66
make.sh
|
@ -32,30 +32,76 @@ function build {
|
|||
}
|
||||
|
||||
function install {
|
||||
if [ ${CC}x != x ]; then
|
||||
${MAKE} CC=$CC install
|
||||
else
|
||||
${MAKE} install
|
||||
# Mac OSX needs to find the right directory for pkgconfig
|
||||
if [ "$(uname)" == "Darwin" ]; then
|
||||
# find the directory automatically, so we can support both Macport & Brew
|
||||
PKGCFGDIR="$(pkg-config --variable pc_path pkg-config | cut -d ':' -f 1)"
|
||||
if [ ${PKGCFGDIR}x != x ]; then
|
||||
if [ ${CC}x != x ]; then
|
||||
${MAKE} CC=$CC PKGCFGDIR=$PKGCFGDIR install
|
||||
else
|
||||
${MAKE} PKGCFGDIR=$PKGCFGDIR install
|
||||
fi
|
||||
else
|
||||
if [ ${CC}x != x ]; then
|
||||
${MAKE} CC=$CC install
|
||||
else
|
||||
${MAKE} install
|
||||
fi
|
||||
fi
|
||||
else # not OSX
|
||||
if test -d /usr/lib64; then
|
||||
if [ ${CC}x != x ]; then
|
||||
${MAKE} LIBDIRARCH=lib64 CC=$CC install
|
||||
else
|
||||
${MAKE} LIBDIRARCH=lib64 install
|
||||
fi
|
||||
else
|
||||
if [ ${CC}x != x ]; then
|
||||
${MAKE} CC=$CC install
|
||||
else
|
||||
${MAKE} install
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
function uninstall {
|
||||
# Mac OSX needs to find the right directory for pkgconfig
|
||||
if [ "$(uname)" == "Darwin" ]; then
|
||||
# find the directory automatically, so we can support both Macport & Brew
|
||||
PKGCFGDIR="$(pkg-config --variable pc_path pkg-config | cut -d ':' -f 1)"
|
||||
if [ ${PKGCFGDIR}x != x ]; then
|
||||
${MAKE} PKGCFGDIR=$PKGCFGDIR uninstall
|
||||
else
|
||||
${MAKE} uninstall
|
||||
fi
|
||||
else # not OSX
|
||||
if test -d /usr/lib64; then
|
||||
${MAKE} LIBDIRARCH=lib64 uninstall
|
||||
else
|
||||
${MAKE} uninstall
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
MAKE=make
|
||||
if [ "$(uname)" == "SunOS" ]; then
|
||||
export MAKE=gmake
|
||||
export INSTALL_BIN=ginstall
|
||||
export CC=gcc
|
||||
export MAKE=gmake
|
||||
export INSTALL_BIN=ginstall
|
||||
export CC=gcc
|
||||
fi
|
||||
|
||||
if [[ "$(uname)" == *BSD* ]]; then
|
||||
export MAKE=gmake
|
||||
export PREFIX=/usr/local
|
||||
export MAKE=gmake
|
||||
export PREFIX=/usr/local
|
||||
fi
|
||||
|
||||
case "$1" in
|
||||
"" ) build;;
|
||||
"default" ) build;;
|
||||
"install" ) install;;
|
||||
"uninstall" ) ${MAKE} uninstall;;
|
||||
"uninstall" ) uninstall;;
|
||||
"nix32" ) CFLAGS=-m32 LDFLAGS=-m32 build;;
|
||||
"cross-win32" ) CROSS=i686-w64-mingw32- build;;
|
||||
"cross-win64" ) CROSS=x86_64-w64-mingw32- build;;
|
||||
|
|
Loading…
Reference in New Issue