For other differences, remember that makepkg uses fakeroot to build and in a user-terminal that is not used at all afaik.
]]>In other packages i've found that there are some environmental differences between a user-terminal and makepkg build() .
Could you be a bit more specific here? I'm having exactly the same problem now: makepkg returns make errors, while make called by hand runs fine. Interesting is that the g++ call which fails in one case and runs in the other is identical for both cases! So there must be some defaults which aren't given over as flags explicitly and differ from each other...
]]>The errors suggest that build() misses some header files , there appear 2 types :
undefined reference to `QString::free(QString::Data*)'
/home/sound/aur/maintain/bpmdj/bpmdj/src/signals.cpp:146: undefined reference to `fftw_malloc'
]]>and here's the defines file:
http://pastebin.com/5nQcZK0M
cp $srcdir/defines.arch defines
Got it!
As for the directory, yes, I'm in the right one. The source tarball is one of those that dumps it's contents into the current working directory.
]]>This should be changed:
cp ../defines.arch defines
to
cp $srcdir/defines.arch defines
Also, are you sure you are in the right directory? It is usual to:
cd "$srcdir"/$pkgname-$pkgver
I'm writing a PKGBUILD for a program called bpmdj.
Everything compiles fine when I do configuration and make by hand,
but when using makepkg, compilation fails.
I've read through the docs, but perhaps I missed something. Are
there some manner of differences in the environment that I should be
aware of?
Any suggestions would be welcome, the PKGBUILD is below.
Thanks.
pkgname=bpmdj
pkgver=4.2
pkgrel=1
pkgdesc="DJ tool and sophisticated song analyzer"
arch=('i686' 'x86_64')
url="http://bpmdj.yellowcouch.org/index.html"
license=('GPL')
depends=('fftw' 'qt' 'boost' 'mplayer' 'alsa-lib' 'jack')
source=(ftp://bpmdj.yellowcouch.org/bpmdj/$pkgname-v$pkgver-pl3.tar.bz2
defines.arch)
md5sums=('e2590f2c6b2bd6074438faab9ca547e1'
'0b968feaf39beb0302f8b95e7ade6a59')
build() {
cd "$srcdir"
cp ../defines.arch defines
if [ "$CARCH" == x86_64 ]; then
sed -i 's/32$/64/' defines
fi
make
}
package() {
cp -t "$pkgdir/usr/bin" bpmdj bpmplay bpmdj-raw
}