Bug#915953: pg_buildext: support Makefile variables
Hi, On Sat, Dec 08, 2018 at 01:55:25PM +0100, Michael Banck wrote: > The attached patch adds an option -x (maybe not the best pick?) whose > $OPTARG are passed down to alle make calls - that works for me, but I > have not tested it extensively. I forgot to declare $MAKEVARS in case the option is not used, new patch attached. Michael diff --git a/pg_buildext b/pg_buildext index 9800495..0c6e6ed 100755 --- a/pg_buildext +++ b/pg_buildext @@ -24,10 +24,12 @@ die() { } VENVARGS="" -while getopts "c:i:o:s" opt ; do +MAKEVARS="" +while getopts "c:i:o:sx:" opt ; do case $opt in c|i|o) VENVARGS="$VENVARGS -$opt $OPTARG" ;; s) VENVARGS="$VENVARGS -$opt" ;; + x) MAKEVARS="$OPTARG" ;; *) exit 1 ;; esac done @@ -73,7 +75,7 @@ build() { mkdir -p $vtarget # if a Makefile was created by configure, use it, else the top level Makefile [ -f $vtarget/Makefile ] || makefile="-f $srcdir/Makefile" -make -C $vtarget ${makefile:-} ${cflags:+CFLAGS="$cflags"} PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 +make -C $vtarget ${makefile:-} ${cflags:+CFLAGS="$cflags"} PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 $MAKEVARS } install() { @@ -83,7 +85,7 @@ install() { mkdir -p $vtarget # if a Makefile was created by configure, use it, else the top level Makefile [ -f $vtarget/Makefile ] || makefile="-f $srcdir/Makefile" -make -C $vtarget ${makefile:-} install DESTDIR="$PWD/debian/$package" PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 +make -C $vtarget ${makefile:-} install DESTDIR="$PWD/debian/$package" PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 $MAKEVARS } clean() { @@ -91,7 +93,7 @@ clean() { # if a Makefile was created by configure, use it, else the top level Makefile [ -f $vtarget/Makefile ] || makefile="-f $srcdir/Makefile" -[ -d $vtarget ] && make -C $vtarget clean ${makefile:-} PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 +[ -d $vtarget ] && make -C $vtarget clean ${makefile:-} PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 $MAKEVARS rm -rf $vtarget } @@ -101,11 +103,11 @@ loop() { package=$(echo $target | sed -e "s:%v:$1:g") echo "# $1: make clean" -make -C "$srcdir" clean PG_CONFIG="$pgc" USE_PGXS=1 +make -C "$srcdir" clean PG_CONFIG="$pgc" USE_PGXS=1 $MAKEVARS echo "# $1: make" -make -C "$srcdir" PG_CONFIG="$pgc" USE_PGXS=1 +make -C "$srcdir" PG_CONFIG="$pgc" USE_PGXS=1 $MAKEVARS echo "# $1: make install" -make -C "$srcdir" install DESTDIR="$PWD/debian/$package" PG_CONFIG="$pgc" USE_PGXS=1 +make -C "$srcdir" install DESTDIR="$PWD/debian/$package" PG_CONFIG="$pgc" USE_PGXS=1 $MAKEVARS echo "### done $1 ###" } @@ -125,7 +127,7 @@ installcheck() { [ -f $vtarget/Makefile ] || makefile="-f $srcdir/Makefile" if ! pg_virtualenv $VENVARGS -v $1 \ make -C $vtarget ${makefile:-} installcheck \ - PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1; then + PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 $MAKEVARS; then if [ -r $vtarget/regression.diffs ]; then echo " $vtarget/regression.diffs " cat $vtarget/regression.diffs @@ -134,7 +136,7 @@ installcheck() { fi else if ! pg_virtualenv $VENVARGS -v $1 \ - make installcheck PG_CONFIG="$pgc" USE_PGXS=1; then + make installcheck PG_CONFIG="$pgc" USE_PGXS=1 $MAKEVARS; then if [ -r regression.diffs ]; then echo " regression.diffs " cat regression.diffs
Bug#915953: pg_buildext: support Makefile variables
Package: postgresql-server-dev-all Version: 197 Severity: wishlist Tags: patch Dear Maintainer, it would be nice if pg_buildext allowed to pass Makefile variables down to the make calls. The specific issue at hand for me was passing 'with_llvm=no' cause the extension I wanted to build currently has issues with it. AFAICT this is currently not possible via pg_buildext? The attached patch adds an option -x (maybe not the best pick?) whose $OPTARG are passed down to alle make calls - that works for me, but I have not tested it extensively. Michael diff --git a/pg_buildext b/pg_buildext index 9800495..66c4e37 100755 --- a/pg_buildext +++ b/pg_buildext @@ -24,10 +24,11 @@ die() { } VENVARGS="" -while getopts "c:i:o:s" opt ; do +while getopts "c:i:o:sx:" opt ; do case $opt in c|i|o) VENVARGS="$VENVARGS -$opt $OPTARG" ;; s) VENVARGS="$VENVARGS -$opt" ;; + x) MAKEVARS="$OPTARG" ;; *) exit 1 ;; esac done @@ -73,7 +74,7 @@ build() { mkdir -p $vtarget # if a Makefile was created by configure, use it, else the top level Makefile [ -f $vtarget/Makefile ] || makefile="-f $srcdir/Makefile" -make -C $vtarget ${makefile:-} ${cflags:+CFLAGS="$cflags"} PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 +make -C $vtarget ${makefile:-} ${cflags:+CFLAGS="$cflags"} PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 $MAKEVARS } install() { @@ -83,7 +84,7 @@ install() { mkdir -p $vtarget # if a Makefile was created by configure, use it, else the top level Makefile [ -f $vtarget/Makefile ] || makefile="-f $srcdir/Makefile" -make -C $vtarget ${makefile:-} install DESTDIR="$PWD/debian/$package" PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 +make -C $vtarget ${makefile:-} install DESTDIR="$PWD/debian/$package" PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 $MAKEVARS } clean() { @@ -91,7 +92,7 @@ clean() { # if a Makefile was created by configure, use it, else the top level Makefile [ -f $vtarget/Makefile ] || makefile="-f $srcdir/Makefile" -[ -d $vtarget ] && make -C $vtarget clean ${makefile:-} PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 +[ -d $vtarget ] && make -C $vtarget clean ${makefile:-} PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 $MAKEVARS rm -rf $vtarget } @@ -101,11 +102,11 @@ loop() { package=$(echo $target | sed -e "s:%v:$1:g") echo "# $1: make clean" -make -C "$srcdir" clean PG_CONFIG="$pgc" USE_PGXS=1 +make -C "$srcdir" clean PG_CONFIG="$pgc" USE_PGXS=1 $MAKEVARS echo "# $1: make" -make -C "$srcdir" PG_CONFIG="$pgc" USE_PGXS=1 +make -C "$srcdir" PG_CONFIG="$pgc" USE_PGXS=1 $MAKEVARS echo "# $1: make install" -make -C "$srcdir" install DESTDIR="$PWD/debian/$package" PG_CONFIG="$pgc" USE_PGXS=1 +make -C "$srcdir" install DESTDIR="$PWD/debian/$package" PG_CONFIG="$pgc" USE_PGXS=1 $MAKEVARS echo "### done $1 ###" } @@ -125,7 +126,7 @@ installcheck() { [ -f $vtarget/Makefile ] || makefile="-f $srcdir/Makefile" if ! pg_virtualenv $VENVARGS -v $1 \ make -C $vtarget ${makefile:-} installcheck \ - PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1; then + PG_CONFIG="$pgc" VPATH="$srcdir" USE_PGXS=1 $MAKEVARS; then if [ -r $vtarget/regression.diffs ]; then echo " $vtarget/regression.diffs " cat $vtarget/regression.diffs @@ -134,7 +135,7 @@ installcheck() { fi else if ! pg_virtualenv $VENVARGS -v $1 \ - make installcheck PG_CONFIG="$pgc" USE_PGXS=1; then + make installcheck PG_CONFIG="$pgc" USE_PGXS=1 $MAKEVARS; then if [ -r regression.diffs ]; then echo " regression.diffs " cat regression.diffs