distorm: Powerful disassembler library for x86/AMD64. New package

This commit is contained in:
Alexey Pavlov
2016-05-17 14:45:13 +03:00
parent 5808ec3abd
commit 57f132e460
3 changed files with 99 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
--- distorm-3.3.0/setup.py.orig 2016-05-17 14:02:58.274320400 +0300
+++ distorm-3.3.0/setup.py 2016-05-17 14:03:39.420820400 +0300
@@ -177,7 +177,7 @@
# Setup the library
ext_modules = None
libraries = None
- if 'windows' in system:
+ if 'windows' in system and not 'GCC' in sys.version:
libraries = [(
'distorm3', dict(
package='distorm3',

View File

@@ -0,0 +1,42 @@
#
# diStorm3 (Linux Port)
#
LIB_NAME = libdistorm3
SHARED_EXT = .dll
STATIC_EXT = .a
IMPORT_EXT = ${SHARED_EXT}${STATIC_EXT}
TARGET = ${LIB_NAME}${SHARED_EXT}
STATICLIB = ${LIB_NAME}${STATIC_EXT}
IMPORTLIB = ${LIB_NAME}${IMPORT_EXT}
COBJS = ../../src/mnemonics.o ../../src/wstring.o ../../src/textdefs.o ../../src/prefix.o ../../src/operands.o ../../src/insts.o ../../src/instructions.o ../../src/distorm.o ../../src/decoder.o
CC = gcc
CFLAGS = -O2 -Wall -DSUPPORT_64BIT_OFFSET -DDISTORM_STATIC
WINDRES = windres
INSTALL_PREFIX = /usr/local
all: clib
clean:
/bin/rm -rf ../../src/*.o ${TARGET} ../../${STATICLIB} ../../${IMPORTLIB} ./../*.o
resource.o: resource.rc
$(WINDRES) --include-dir=. resource.rc $@
clib: ${COBJS}
${CC} ${CFLAGS} ${VERSION} ${COBJS} -shared -o ${TARGET} -Wl,--out-implib,${IMPORTLIB}
ar rs ${STATICLIB} ${COBJS}
install: ${TARGET}
mkdir ${DESTDIR}${INSTALL_PREFIX}
mkdir ${DESTDIR}${INSTALL_PREFIX}/bin
mkdir ${DESTDIR}${INSTALL_PREFIX}/lib
install -s ${TARGET} ${DESTDIR}${INSTALL_PREFIX}/bin
install -s ${IMPORTLIB} ${DESTDIR}${INSTALL_PREFIX}/lib
install -s ${STATICLIB} ${DESTDIR}${INSTALL_PREFIX}/lib
.c.o:
${CC} ${CFLAGS} ${VERSION} -c $< -o $@

View File

@@ -0,0 +1,46 @@
# Maintainer: Alexey Pavlov <alexpux@gmail.com>
_realname=distorm
pkgbase=mingw-w64-${_realname}
pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}"
pkgver=3.3.0
pkgrel=1
pkgdesc="Powerful disassembler library for x86/AMD64 (mingw-w64)"
arch=('any')
url="https://github.com/gdabah/distorm"
license=('GPL3')
#depends=("${MINGW_PACKAGE_PREFIX}-python2")
makedepends=("${MINGW_PACKAGE_PREFIX}-gcc")
optdepends=("${MINGW_PACKAGE_PREFIX}-python2")
options=('strip' 'staticlibs')
source=(${_realname}-${pkgver}.tar.gz::https://github.com/gdabah/distorm/archive/v${pkgver}.tar.gz
Makefile
001-detect-mingw-python.patch)
sha256sums=('887e12671aafcb198ba90fa9de5a81fc0a2e682f420618ef7ba6cc4e84c04438'
'a35882522a38d3ab685fd33dba746baf3704e6932e1c5707a8bd97e37ac51766'
'bbe2c5bc9a088f93017b0f730b9b8730e943855a89085863bc674b528b9f59bb')
prepare() {
cd ${_realname}-${pkgver}
patch -p1 -i ${srcdir}/001-detect-mingw-python.patch
cp -f ${srcdir}/Makefile make/win32/
}
build() {
cd ${_realname}-${pkgver}
make -C make/win32
}
package() {
cd ${_realname}-${pkgver}
make -C make/win32 DESTDIR="${pkgdir}" INSTALL_PREFIX=${MINGW_PREFIX} install
sed -e '1i#!/usr/bin/env python2' -i python/distorm3/sample.py
install -Dm 755 python/distorm3/sample.py "${pkgdir}${MINGW_PREFIX}/bin/disasm.py"
MSYS2_ARG_CONV_EXCL="--prefix=;--install-scripts=;--install-platlib=" \
${MINGW_PREFIX}/bin/python2 setup.py install --prefix=${MINGW_PREFIX#\/} --root="${pkgdir}" -O1
install -Dm 644 include/*.h -t "${pkgdir}${MINGW_PREFIX}/include"
install -Dm 644 COPYING "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}/LICENSE"
}