diff -uN bullet-orig/bullet-double.pc bullet/bullet-double.pc --- bullet-orig/bullet-double.pc 1970-01-01 01:00:00.000000000 +0100 +++ bullet/bullet-double.pc 2014-07-31 16:18:27.160334940 +0200 @@ -0,0 +1,11 @@ +prefix=/usr +exec_prefix=${prefix} +libdir=${exec_prefix}/lib +includedir=${prefix}/include + +Name: bullet +Description: Bullet Continuous Collision Detection and Physics Library, Double Precision +Requires: +Version: VERSION +Libs: -L${libdir} -lBulletDynamicsDouble -lBulletCollisionDouble -lLinearMathDouble -lBulletSoftBodyDouble +Cflags: -I${includedir}/bullet -DBT_USE_DOUBLE_PRECISION Common subdirectories: bullet-orig/pkg and bullet/pkg diff -uN bullet-orig/PKGBUILD bullet/PKGBUILD --- bullet-orig/PKGBUILD 2014-07-28 22:51:20.317401386 +0200 +++ bullet/PKGBUILD 2014-07-31 20:29:22.381391938 +0200 @@ -6,7 +6,7 @@ pkgname=('bullet' 'bullet-docs') _rev=2704 pkgver=2.82 -pkgrel=1 +pkgrel=2 pkgdesc="A 3D Collision Detection and Rigid Body Dynamics Library for games and animation" arch=('i686' 'x86_64') url="http://www.bulletphysics.com/Bullet/" @@ -14,16 +14,18 @@ depends=() makedepends=('cmake' 'doxygen' 'graphviz' 'ttf-dejavu' 'mesa') source=(http://bullet.googlecode.com/files/${pkgbase}-${pkgver}-r${_rev}.tgz - ${pkgbase}.pc) + ${pkgbase}.pc + ${pkgbase}-double.pc) md5sums=('70b3c8d202dee91a0854b4cbc88173e8' - 'd1da06deba3b08b884d2212f6838905c') + 'd1da06deba3b08b884d2212f6838905c' + '0942013f256e88fadf9535efe4b91e80') build() { - cd ${pkgbase}-${pkgver}-r${_rev} + cd ${srcdir}/${pkgbase}-${pkgver}-r${_rev} # get a clean build dir [[ -d build ]] && rm -rf build - mkdir build && cd build + mkdir -p build && cd build # generate CMake Makefile cmake .. \ @@ -39,8 +41,31 @@ # compile make + # Build double precision + + cd ${srcdir}/${pkgbase}-${pkgver}-r${_rev} + + # get a clean build dir + [[ -d build-double ]] && rm -rf build-double + mkdir -p build-double && cd build-double + + # generate CMake Makefile + cmake .. \ + -DCMAKE_INSTALL_PREFIX=/usr \ + -DBUILD_SHARED_LIBS=1 \ + -DBUILD_DEMOS=0 \ + -DBUILD_MULTITHREADING=1 \ + -DBUILD_EXTRAS=1 \ + -DINSTALL_LIBS=1 \ + -DINSTALL_EXTRA_LIBS=1 \ + -DUSE_DOUBLE_PRECISION=On \ + -DCMAKE_BUILD_TYPE=Release # set =Debug for debugging version + + # compile + make + # generate docs - cd .. + cd ${srcdir}/${pkgbase}-${pkgver}-r${_rev} sed -i 's/GENERATE_HTMLHELP.*//g' Doxyfile doxygen } @@ -48,18 +73,39 @@ package_bullet() { optdepends=('bullet-docs: documentation') - cd ${pkgbase}-${pkgver}-r${_rev}/build - # install it + cd ${pkgbase}-${pkgver}-r${_rev}/build make DESTDIR=${pkgdir} install + # manually handle pkgconfig file mkdir -p "${pkgdir}"/usr/lib/pkgconfig sed "s|VERSION|${pkgver}|g" ${srcdir}/bullet.pc > ${pkgdir}/usr/lib/pkgconfig/bullet.pc # install license install -Dm644 ../BulletLicense.txt ${pkgdir}/usr/share/licenses/${pkgbase}/LICENSE -} + + # install double + cd ${srcdir}/${pkgbase}-${pkgver}-r${_rev}/build-double + make DESTDIR=${srcdir}/double install + # remove shared files + rm -rf $${srcdir}/double/usr/{include,share} + cd ${srcdir}/double/usr/lib + for so in *.so; do + b=`basename ${so} .so` + mv ${so} ${pkgdir}/usr/lib/${b}Double.so + done + cd ${pkgdir}/usr/lib + for so in *Double.so; do + ln -s ${so} ${so}.${pkgver} + done + sed "s|LinearMath;BulletCollisions;BulletDynamics;BulletSoftBody|LinearMathDouble;BulletCollisionsDouble;BulletDynamicsDouble;BulletSoftBodyDouble|g" ${srcdir}/double/usr/lib/cmake/bullet/BulletConfig.cmake > ${pkgdir}/usr/lib/cmake/bullet/BulletDoubleConfig.cmake + + # manually handle pkgconfig file + mkdir -p "${pkgdir}"/usr/lib/pkgconfig + sed "s|VERSION|${pkgver}|g" ${srcdir}/bullet-double.pc > ${pkgdir}/usr/lib/pkgconfig/bullet-double.pc + + } package_bullet-docs() { pkgdesc="Documentation for bullet"