0

I installed Poco library on my Arch64 system using AUR. Sources were downloaded, compiled and the package succesfully installed. But now I need to patch the PKGBUILD so that I can compile 32-bit version of the library and install it next to the 64-bit version.

This is the original PKGBUILD:

# Maintainer: Robert Knauer 
# Contributor: Rodrigo Grumiche Silva 
# Contributor: nozog
# Contributor: davidhjelm
# Contributor: Ray Kohler 
# Contributor: Nathan Owe 

pkgname=poco
pkgver=1.4.6
pkgrel=1
pkgdesc="C++ class libraries for network-centric, portable applications, complete edition"
arch=('i686' 'x86_64')
url="http://www.pocoproject.org/"
license=('custom:boost')
depends=('unixodbc' 'libmysqlclient' 'openssl')
makedepends=('gcc' 'make' 'unixodbc' 'libmysqlclient' 'openssl' 'chrpath')
source=(
  "${pkgname}-${pkgver}-all.tar.gz"::"https://sourceforge.net/projects/${pkgname}/files/sources/${pkgname}-${pkgver}/${pkgname}-${pkgver}-all.tar.gz/download"
)
sha256sums=(
  'cf8229310f047e731cc6273a8df55e03b76f0ed7d5b5d251f99a0f80f6c2c763'
)

build()
{
  cd "${srcdir}/${pkgname}-${pkgver}-all"
  ./configure --prefix=/usr --no-samples --no-tests
  make ODBCLIBDIR="/usr/lib"
}

package()
{
  cd "${srcdir}/${pkgname}-${pkgver}-all"
  make ODBCLIBDIR="/usr/lib" DESTDIR="${pkgdir}" install
  install -Dm644 'LICENSE' "${pkgdir}/usr/share/licenses/${pkgname}/LICENSE"
  # remove rpath information from binaries
  chrpath -d "${pkgdir}/usr/bin/cpspc"
  chrpath -d "${pkgdir}/usr/bin/cpspcd"
  chrpath -d "${pkgdir}/usr/bin/f2cpspd"
  chrpath -d "${pkgdir}/usr/bin/f2cpsp"
  # remove debugging libraries
  rm "${pkgdir}/usr/lib/libPoco"*"d.so"*
}

The first thing I tried was to take a look at another lib32-* AUR package, but I failed even to add the -m32 flag.

1 Answer 1

1

You need to,

  1. Change package name to lib32-XX

  2. place a export CFLAGS="-m32" prior to make or ./configure (In this case would be the build() function

  3. And you need to alter the installation path, to /usr/lib32, in this case it "could" be all occurrence of ODBCLIBDIR="/usr/lib", worth a try

And examine the contents of pkg before install anything, see if it's right.

1
  • From some reason CFLAGS (and CXXFLAGS, CPPFLAGS, LDFLAGS) are ignored. I found a --cflags switch in configure script, but this adds -m32 only in compilation phase, not in the linker. -Wl,-m32 does not help.
    – Adam Trhon
    Feb 20, 2013 at 11:30

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .