diff --git a/mingw-w64-distorm/001-detect-mingw-python.patch b/mingw-w64-distorm/001-detect-mingw-python.patch new file mode 100644 index 0000000000..85de50918d --- /dev/null +++ b/mingw-w64-distorm/001-detect-mingw-python.patch @@ -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', diff --git a/mingw-w64-distorm/Makefile b/mingw-w64-distorm/Makefile new file mode 100644 index 0000000000..15efc30d13 --- /dev/null +++ b/mingw-w64-distorm/Makefile @@ -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 $@ + diff --git a/mingw-w64-distorm/PKGBUILD b/mingw-w64-distorm/PKGBUILD new file mode 100644 index 0000000000..442fd6422f --- /dev/null +++ b/mingw-w64-distorm/PKGBUILD @@ -0,0 +1,46 @@ +# Maintainer: Alexey Pavlov + +_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" +}