$NetBSD: patch-ai,v 1.44 2022/06/11 10:27:04 bsiegert Exp $

1) Add shlib definitions for NetBSD 5; the build system must be
hard-coded per OS per version.  Not yet reported upstream.

2) Make this pkgsrc friendly.

3) Add support for FreeBSD 13.

4) Add blocklist(3) support.

--- makedefs.orig	2021-04-24 20:49:37.000000000 +0000
+++ makedefs
@@ -309,6 +309,15 @@ case "$SYSTEM.$RELEASE" in
 		: ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"}
 		: ${PLUGIN_LD="${CC} -shared"}
 		;;
+  FreeBSD.13*)	SYSTYPE=FREEBSD13
+		: ${CC=cc}
+		: ${SHLIB_SUFFIX=.so}
+		: ${SHLIB_CFLAGS=-fPIC}
+		: ${SHLIB_LD="${CC} -shared"' -Wl,-soname,${LIB}'}
+		: ${SHLIB_RPATH='-Wl,-rpath,${SHLIB_DIR}'}
+		: ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"}
+		: ${PLUGIN_LD="${CC} -shared"}
+		;;
  DragonFly.*)	SYSTYPE=DRAGONFLY
 		;;
   OpenBSD.2*)	SYSTYPE=OPENBSD2
@@ -337,25 +346,7 @@ case "$SYSTEM.$RELEASE" in
 		;;
   ekkoBSD.1*)	SYSTYPE=EKKOBSD1
 		;;
-   NetBSD.1*)	SYSTYPE=NETBSD1
-		;;
-   NetBSD.2*)	SYSTYPE=NETBSD2
-		;;
-   NetBSD.3*)	SYSTYPE=NETBSD3
-		;;
-   NetBSD.4*)	SYSTYPE=NETBSD4
-		;;
-   NetBSD.5*)	SYSTYPE=NETBSD5
-		;;
-   NetBSD.6*)	SYSTYPE=NETBSD6
-		: ${SHLIB_SUFFIX=.so}
-		: ${SHLIB_CFLAGS=-fPIC}
-		: ${SHLIB_LD="${CC-gcc} -shared"' -Wl,-soname,${LIB}'}
-		: ${SHLIB_RPATH='-Wl,-rpath,${SHLIB_DIR}'}
-		: ${SHLIB_ENV="LD_LIBRARY_PATH=`pwd`/lib"}
-		: ${PLUGIN_LD="${CC-gcc} -shared"}
-               ;;
-   NetBSD.7*)  SYSTYPE=NETBSD7
+   NetBSD*)	SYSTYPE=NETBSD
 		: ${SHLIB_SUFFIX=.so}
 		: ${SHLIB_CFLAGS=-fPIC}
 		: ${SHLIB_LD="${CC-gcc} -shared"' -Wl,-soname,${LIB}'}
@@ -434,13 +425,6 @@ case "$SYSTEM.$RELEASE" in
 		esac
 		;;
    ULTRIX.4*)	SYSTYPE=ULTRIX4
-		if [ -f /usr/local/lib/libdb.a ]; then
-		    SYSLIBS="$SYSLIBS -ldb"
-		    CCARGS="$CCARGS -DHAS_DB"
-		    if [ -d /usr/local/include/db ]; then
-			CCARGS="$CCARGS -I/usr/local/include/db"
-		    fi
-		fi
 		for l in syslog resolv; do
 		    if [ -f /usr/local/lib/lib$l.a ]; then
 			SYSLIBS="$SYSLIBS -l$l"
@@ -482,33 +466,8 @@ case "$SYSTEM.$RELEASE" in
 		esac;;
 		# Tested with RedHat 3.03 on 20020729.
     Linux.1*)	SYSTYPE=LINUX1
-		case "$CCARGS" in
-		 *-DNO_DB*) ;;
-		 *-DHAS_DB*) ;;
-		 *) SYSLIBS="-ldb";;
-		esac
 		;;
     Linux.2*)	SYSTYPE=LINUX2
-		case "$CCARGS" in
-		 *-DNO_DB*) ;;
-		 *-DHAS_DB*) ;;
-		 *) if [ -f /usr/include/db.h ]
-		    then
-			: we are all set
-		    elif [ -f /usr/include/db/db.h ]
-		    then
-			CCARGS="$CCARGS -I/usr/include/db"
-		    else
-			# No, we're not going to try db1 db2 db3 etc.
-			# On a properly installed system, Postfix builds
-			# by including <db.h> and by linking with -ldb
-			echo "No <db.h> include file found." 1>&2
-			echo "Install the appropriate db*-devel package first." 1>&2
-			exit 1
-		    fi
-		    SYSLIBS="-ldb"
-		    ;;
-		esac
 		for name in nsl resolv $GDBM_LIBS
 		do
 		    for lib in /usr/lib64 /lib64 /usr/lib /lib
@@ -608,24 +567,6 @@ EOF
 		;;
      GNU.0*|GNU/kFreeBSD.[567]*)
 		SYSTYPE=GNU0
-		case "$CCARGS" in
-		 *-DNO_DB*) ;;
-		 *) if [ -f /usr/include/db.h ]
-		    then
-			: we are all set
-		    elif [ -f /usr/include/db/db.h ]
-		    then
-			CCARGS="$CCARGS -I/usr/include/db"
-		    else
-			# On a properly installed system, Postfix builds
-			# by including <db.h> and by linking with -ldb
-			echo "No <db.h> include file found." 1>&2
-			echo "Install the appropriate db*-devel package first." 1>&2
-			exit 1
-		    fi
-		    SYSLIBS="-ldb"
-		    ;;
-		esac
 		for name in nsl resolv
 		do
 		    for lib in /usr/lib64 /lib64 /usr/lib /lib
@@ -656,26 +597,14 @@ EOF
 HP-UX.A.09.*)	SYSTYPE=HPUX9
 		SYSLIBS=-ldbm
 		CCARGS="$CCARGS -DMISSING_USLEEP -DNO_SNPRINTF"
-		if [ -f /usr/lib/libdb.a ]; then
-		    CCARGS="$CCARGS -DHAS_DB"
-		    SYSLIBS="$SYSLIBS -ldb"
-		fi
 		;;
 HP-UX.B.10.*)	SYSTYPE=HPUX10
 		CCARGS="$CCARGS `nm /usr/lib/libc.a 2>/dev/null |
 		    (grep usleep >/dev/null || echo '-DMISSING_USLEEP')`"
 		CCARGS="$CCARGS -DNO_SNPRINTF"
-		if [ -f /usr/lib/libdb.a ]; then
-		    CCARGS="$CCARGS -DHAS_DB"
-		    SYSLIBS=-ldb
-		fi
 		;;
 HP-UX.B.11.*)	SYSTYPE=HPUX11
 		SYSLIBS=-lnsl
-		if [ -f /usr/lib/libdb.a ]; then
-		    CCARGS="$CCARGS -DHAS_DB"
-		    SYSLIBS="$SYSLIBS -ldb"
-		fi
 		;;
 ReliantUNIX-?.5.43) SYSTYPE=ReliantUnix543
 		RANLIB=echo
@@ -717,12 +646,12 @@ ReliantUNIX-?.5.43) SYSTYPE=ReliantUnix5
 		esac
 		: ${SHLIB_CFLAGS=-fPIC}
 		: ${SHLIB_SUFFIX=.dylib}
-		: ${SHLIB_LD='cc -shared -Wl,-flat_namespace -Wl,-undefined,dynamic_lookup -Wl,-install_name,@rpath/${LIB}'}
+		: ${SHLIB_LD='${CC} -shared -Wl,-flat_namespace -Wl,-undefined,dynamic_lookup -Wl,-install_name,@rpath/${LIB}'}
 		: ${SHLIB_RPATH='-Wl,-rpath,${SHLIB_DIR}'}
                 # In MacOS/X 10.11.x /bin/sh unsets DYLD_LIBRARY_PATH, so we
                 # have export it into postfix-install indirectly!
 		: ${SHLIB_ENV="DYLD_LIBRARY_PATH=`pwd`/lib SHLIB_ENV_VAR=DYLD_LIBRARY_PATH SHLIB_ENV_VAL=`pwd`/lib"}
-		: ${PLUGIN_LD='cc -shared -Wl,-flat_namespace -Wl,-undefined,dynamic_lookup'}
+		: ${PLUGIN_LD='${CC} -shared -Wl,-flat_namespace -Wl,-undefined,dynamic_lookup'}
 		;;
     dcosx.1*)	SYSTYPE=DCOSX1
 		RANLIB=echo
@@ -746,6 +675,21 @@ ReliantUNIX-?.5.43) SYSTYPE=ReliantUnix5
 esac
 
 #
+# Support for blocklist(3) or blacklist(3).
+#
+case "$CCARGS" in
+    *-DUSE_BLOCKLIST*)
+	if test -f /usr/include/blocklist.h; then
+	    CCARGS="$CCARGS -DHAVE_BLOCKLIST"
+	    SYSLIBS="$SYSLIBS -lblocklist"
+	elif test -f /usr/include/blacklist.h; then
+	    CCARGS="$CCARGS -DHAVE_BLACKLIST"
+	    SYSLIBS="$SYSLIBS -lblacklist"
+	fi
+	;;
+esac
+
+#
 # sigsetjmp()/siglongjmp() can be "better" than setjmp()/longjmp()
 # if used wisely (that is: almost never, just like signals).
 # Unfortunately some implementations have been buggy in the past.
