Only in bullet: bullet-double.pc diff -u bullet-orig/PKGBUILD bullet/PKGBUILD --- bullet-orig/PKGBUILD 2014-07-28 22:51:20.317401386 +0200 +++ bullet/PKGBUILD 2014-07-31 17:12:29.416492433 +0200 @@ -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 + #[[ -d build ]] && rm -rf build + mkdir -p build && cd build # generate CMake Makefile cmake .. \ @@ -39,27 +41,71 @@ # 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 } 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 + for so in *.so.${pkgver}; do + b=`basename ${so} .so.${pkgver}` + mv ${so} ${pkgdir}/usr/lib/${b}Double.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"