update code

This commit is contained in:
zhuchunyi 2019-11-06 19:04:02 +08:00
commit 988d6c966e
3 changed files with 199 additions and 0 deletions

View File

@ -0,0 +1,29 @@
From d36b7395e69c70a8d98f78f2bcb20a32bf9f3173 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Fri, 11 Jan 2019 13:48:11 +0000
Subject: [PATCH] Fix include path in pkg-config for Makefile too (#1339).
Commit 0a39b785d3 fixed the pkg-config include path when using cmake.
However it didn't fix it for the Makefile. This fixes the Makefile
path.
Signed-off-by: Richard W.M. Jones <rjones@redhat.com>
---
Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile b/Makefile
index 378f2fea..4a2c2d35 100644
--- a/Makefile
+++ b/Makefile
@@ -514,7 +514,7 @@ define generate-pkgcfg
echo 'Description: Capstone disassembly engine' >> $(PKGCFGF)
echo 'Version: $(PKG_VERSION)' >> $(PKGCFGF)
echo 'libdir=$(LIBDIR)' >> $(PKGCFGF)
- echo 'includedir=$(INCDIR)' >> $(PKGCFGF)
+ echo 'includedir=$(INCDIR)/capstone' >> $(PKGCFGF)
echo 'archive=$${libdir}/libcapstone.a' >> $(PKGCFGF)
echo 'Libs: -L$${libdir} -lcapstone' >> $(PKGCFGF)
echo 'Cflags: -I$${includedir}' >> $(PKGCFGF)
--
2.20.1

BIN
capstone-4.0.1.tar.gz Normal file

Binary file not shown.

170
capstone.spec Normal file
View File

@ -0,0 +1,170 @@
%bcond_with java
Name: capstone
Version: 4.0.1
Release: 2
Summary: A lightweight multi-platform, multi-architecture disassembly framework
License: BSD
URL: http://www.capstone-engine.org/
Source0: https://github.com/aquynh/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
Patch0: 0001-Fix-include-path-in-pkg-config-for-Makefile-too-1339.patch
%global with_python3 1
%global with_python2 1
BuildRequires: gcc git capstone
%if 0%{with java}
Buildrequires: jna java-devel
%endif
%if 0%{?with_python2}
BuildRequires: python2 python2-devel python2-setuptools
%endif
%if 0%{?with_python3}
BuildRequires: python%{python3_pkgversion} python%{python3_pkgversion}-devel python%{python3_pkgversion}-setuptools
%endif
%description
Capstone is a lightweight multi-platform, multi-architecture disassembly framework.It supports multi-architectures,
Multiple platforms. Clean & intuitive is the key principle in designing the API for Capstone. Capstone is thread-safe.
%package -n %{name}-devel
Summary: Development headers and libraries to build upon %{name}
Requires:%{name} = %{version}-%{release}
%description -n %{name}-devel
Development headers and libraries to build upon %{name}
%if 0%{?with_python2}
%package -n python2-capstone
Summary: Python bindings for %{name}
Requires: %{name} = %{version}-%{release}
Provides: %{name}-python = %{version}-%{release}
Provides: %{name}-python%{?_isa} = %{version}-%{release}
Obsoletes: %{name}-python < %{version}-%{release}
%{?python_provide:%python_provide python2-capstone}
%description -n python2-capstone
%{common_desc}
Python bindings for %{name}.
%endif
%if 0%{?with_python3}
%package -n python%{python3_pkgversion}-capstone
Requires: %{name} = %{version}-%{release}
Summary: Python3 bindings for %{name}
Provides: %{name}-python%{python3_pkgversion} = %{version}-%{release}
Provides: %{name}-python%{python3_pkgversion}%{?_isa} = %{version}-%{release}
Obsoletes: %{name}-python%{python3_pkgversion} < %{version}-%{release}
%{?python_provide:%python_provide python%{python3_pkgversion}-capstone}
%description -n python%{python3_pkgversion}-capstone
Python3 bindings for %{name}.
%endif
%if 0%{with java}
%package java
Summary: Java bindings for %{name}
Requires: %{name} = %{version}-%{release}
BuildArch: noarch
%description java
This package contains java bindings for %{name}.
%endif
%prep
%autosetup -n %{name}-%{version} -p1 -Sgit
%build
DESTDIR="%{buildroot}" V=1 CFLAGS="%{optflags}" \
LIBDIRARCH="%{_lib}" INCDIR="%{_includedir}" \
make PYTHON2=%{__python2} PYTHON3=%{__python3} %{?_smp_mflags}
sed -i 's;%{buildroot};;' capstone.pc
grep -v archive capstone.pc > capstone.pc.tmp
mv capstone.pc.tmp capstone.pc
pushd bindings/python
%py2_build
%if 0%{?with_python3}
%py3_build
%endif
popd
%if 0%{with java}
pushd bindings/java
%if 0%{?with_python3}
make PYTHON2=%{__python3} PYTHON3=%{__python3} CFLAGS="%{optflags}"
%else
make PYTHON2=%{__python2} PYTHON3=%{__python2} CFLAGS="%{optflags}"
%endif
popd
%endif
%install
DESTDIR=%{buildroot} LIBDIRARCH=%{_lib} \
INCDIR="%{_includedir}" make install
%delete_la_and_a
cp -a %{_libdir}/libcapstone.so.3 %{buildroot}%{_libdir}
pushd bindings/python
%if 0%{?with_python2}
%py2_install
%endif
%if 0%{?with_python3}
%py3_install
%endif
popd
%if 0%{with java}
install -D -p -m 0644 bindings/java/%{name}.jar %{buildroot}/%{_javadir}/%{name}.jar
%endif
%pre
%preun
%post -p /sbin/ldconfig
%postun -p /sbin/ldconfig
%files
%license LICENSE.TXT LICENSE_LLVM.TXT
%doc CREDITS.TXT ChangeLog README.md SPONSORS.TXT
%{_libdir}/*.so.*
%{_bindir}/cstool
%files devel
%{_includedir}/*
%{_libdir}/*.so
%{_libdir}/pkgconfig/*
%if 0%{?with_python2}
%files -n python2-capstone
%{python2_sitelib}/*egg-info
%{python2_sitelib}/%{name}
%endif
%if 0%{?with_python3}
%files -n python%{python3_pkgversion}-capstone
%{python3_sitelib}/*egg-info
%{python3_sitelib}/%{name}
%endif
%if 0%{with java}
%files java
%{_javadir}/
%endif
%changelog
* Mon Oct 28 2019 caomeng <caomeng5@huawei.com> - 4.0.1-2
- Type:NA
- ID:NA
- SUG:NA
- DESC:add bcondwith java
* Sat Oct 12 2019 openEuler Buildteam <buildteam@openeuler.org> - 4.0.1-1
- Package init