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

Reply via email to