]> granicus.if.org Git - postgis/commitdiff
Commit new build system based upon PGXS. Due to the large number of changes, please...
authorMark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
Wed, 14 May 2008 17:10:19 +0000 (17:10 +0000)
committerMark Cave-Ayland <mark.cave-ayland@siriusit.co.uk>
Wed, 14 May 2008 17:10:19 +0000 (17:10 +0000)
git-svn-id: http://svn.osgeo.org/postgis/trunk@2774 b70326c6-7e19-0410-871a-916f4a2858ee

41 files changed:
HOWTO_RELEASE
Makefile.config.in [deleted file]
Version.config
autogen.sh
config.h.in [deleted file]
configure.in
loader/Makefile
loader/Makefile.pgsql2shp.in [new file with mode: 0644]
loader/Makefile.shp2pgsql [new file with mode: 0644]
loader/pgsql2shp.c
loader/shp2pgsql.c
lwgeom/Makefile
lwgeom/Makefile.in [new file with mode: 0644]
lwgeom/Makefile.shlib [deleted file]
lwgeom/liblwgeom.c
lwgeom/liblwgeom.h
lwgeom/long_xact.sql.in
lwgeom/lwgeom_btree.c
lwgeom/lwgeom_dump.c
lwgeom/lwgeom_estimate.c
lwgeom/lwgeom_functions_basic.c
lwgeom/lwgeom_geos_c.c
lwgeom/lwgeom_gist.c
lwgeom/lwgeom_inout.c
lwgeom/lwgeom_pg.c
lwgeom/lwgeom_pg.h
lwgeom/lwgeom_transform.c
lwgeom/lwpostgis.sql.in.c [moved from lwgeom/lwpostgis.sql.in with 88% similarity]
lwgeom/pgsql_compat.h
lwgeom/sqldefines.h
lwgeom/sqldefines.h.in [new file with mode: 0644]
lwgeom/sqlmm.sql.in
macros/ac_proj4_version.m4 [new file with mode: 0644]
postgis_config.h.in [new file with mode: 0644]
regress/Makefile.in [moved from regress/Makefile with 62% similarity]
regress/run_test
regress/sql-mm-circularstring_expected.in
regress/sql-mm-compoundcurve_expected.in
regress/sql-mm-curvepoly_expected.in
regress/sql-mm-multicurve_expected.in
regress/sql-mm-multisurface_expected.in

index d4ddda1d4c13ccb2038c6c47021b775049fe6461..bfbca8f6138abdec300ead0b24c2a9c516c5fe0c 100644 (file)
@@ -5,16 +5,16 @@ How to release
 Versioning Scheme
 -----------------
 
-Release version is composed by REL_MAJOR_VERSION, REL_MINOR_VERSION
-and REL_MICRO_VERSION components.
+Release version is composed by POSTGIS_MAJOR_VERSION, POSTGIS_MINOR_VERSION
+and POSTGIS_MICRO_VERSION components.
 
-By default only [REL_MICRO_VERSION] increments between releases.
+By default only [POSTGIS_MICRO_VERSION] increments between releases.
 
-[REL_MINOR_VERSION] is incremented (and MICRO set to 0) when minor
+[POSTGIS_MINOR_VERSION] is incremented (and MICRO set to 0) when minor
 additions have been introduced (one or two functions can be considered
 *micro* additions)
 
-[REL_MAJOR_VERSION] is incremented (and MICRO and MINOR set to 0) when
+[POSTGIS_MAJOR_VERSION] is incremented (and MICRO and MINOR set to 0) when
 a dump/reload of existing spatial databases is *REQUIRED* for things
 to work or rather *HIGHLY RECOMMENDED* to get new functionalities.
 
diff --git a/Makefile.config.in b/Makefile.config.in
deleted file mode 100644 (file)
index c052e09..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-#---------------------------------------------------------------
-# Configuration Directives
-#---------------------------------------------------------------
-
-#
-# We recommend that you install the Proj4 and GEOS libraries
-# referenced below to get the most use out of your PostGIS
-# database.
-
-#
-# Set USE_PROJ to 1 for Proj4 reprojection support (recommended)
-#
-# Reprojection allows you to transform coordinate systems
-# in the database with the Transform() function.
-#
-# Download from: http://www.remotesensing.org/proj
-#
-USE_PROJ=@USE_PROJ@
-PROJ_DIR=@PROJ_DIR@
-PROJ_LIBDIR=@PROJ_LIBDIR@
-
-#
-# Set USE_GEOS to 1 for GEOS spatial predicate and operator
-# support (recommended).
-# GEOS installation directory defaults to /usr/local,
-# set GEOS_DIR environment variable to change it.
-#
-# GEOS allows you to do exact topological tests, such as
-# Intersects() and Touches(), as well as geometry operations,
-# such as Buffer(), GeomUnion() and Difference().
-#
-# Download from: http://geos.refractions.net
-#
-# PostGIS >= 1.2.0 requires a CAPI GEOS (GEOS >= 2.2.0)
-#
-USE_GEOS=@USE_GEOS@
-GEOS_DIR=@GEOS_DIR@
-GEOS_LDFLAGS=@GEOS_LDFLAGS@
-GEOS_VERNUM=@GEOS_VERNUM@
-
-#
-# Set USE_JTS to 1 if you have libjts installed. 
-#
-USE_JTS=@USE_JTS@
-JTS_INCLUDES=@JTS_INCLUDES@
-JTS_LIBDIR=@JTS_LIBDIR@
-
-#
-# Set USE_STATS to 1 for new GiST statistics collection support
-# Note that this support requires additional columns in 
-# GEOMETRY_COLUMNS, so see the list archives for info or
-# install a fresh database using postgis.sql.
-# This option is useless for builds against PGSQL>=80 (stats
-# are always gathered in that case, and you don't need additional
-# columns in geometry_columns).
-#
-USE_STATS=1
-
-#
-# Set AUTOCACHE_BBOX to 0 if you want finer control over
-# bounding box computation and caching for your geometries.
-# If you do, bbox computattion strategies are listed in
-# the file lwgeom/BBOXCACHE_BEHAVIOURS, but don't expect
-# them to be easy nor consistent.
-#
-AUTOCACHE_BBOX=1
-
-#
-# Set USE_ICONV to 1 if you want the loader (shp2pgsql)
-# to support UTF-8 output.
-#
-USE_ICONV=@USE_ICONV@
-ICONV_LDFLAGS=@ICONV_LDFLAGS@
-
-#
-# PGSQL
-#
-PGCONFIG=@PGCONFIG@
-PGFEINCLUDES=@PGFEINCLUDES@
-PGBEINCLUDES=@PGBEINCLUDES@
-PGFELIBS=@PGFELIBS@
-PGBELIBS=@PGBELIBS@
-PORTNAME=@PORTNAME@
-
-#
-# Docbook
-#
-XSLBASE=@XSLBASE@
-XSLTPROC=@XSLTPROC@
-PDFXMLTEX=@PDFXMLTEX@
-DB2PDF=@DB2PDF@
-JW=@JW@
-DOC_RULE=@DOC_RULE@
-
-#
-# Compilers
-#
-CC=@CC@
-CXX=@CXX@
-ELF_SYSTEM=@ELF_SYS@
-
-#
-# Other programs
-#
-PERL=@PERL@
-FLEX=@FLEX@
-YACC=@YACC@
-LN_S=@LN_S@
-INSTALL=@INSTALL@ -c
-PWDREGRESS=@PWDREGRESS@
-INSTALL_DATA=$(INSTALL) -m 644
-INSTALL_BIN=$(INSTALL) -m 755
-INSTALL_LIB=$(INSTALL) -m 755
-INSTALL_SHLIB=$(INSTALL_LIB)
-
-#
-# PATHS
-#
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-bindir=@bindir@
-datadir=@datadir@
-mandir=@mandir@
-docdir=@docdir@
-libexecdir=@libexecdir@
-libdir=@libdir@
-LPATH=@LPATH@
-
-#
-# DLL 
-#
-DLSUFFIX=@DLSUFFIX@
-DLFLAGS=@DLFLAGS@
-# these are for win32 and cygwin platforms
-DLLTOOL=@DLLTOOL@
-DLLWRAP=@DLLWRAP@
-
-#
-# EXE
-#
-EXE=@EXE@
-
-#
-# HOST OS
-#
-HOST_OS=@HOST_OS@
-
-
-#---------------------------------------------------------------
-# END OF CONFIGURATION
-#---------------------------------------------------------------
-
-# Use JTS instead of GEOS if available
-ifeq ($(USE_JTS),1)
-       USE_GEOS=0
-endif
-
-#---------------------------------------------------------------
-# Test the version string and set the USE_VERSION macro
-# appropriately. eg:
-# 
-# pg_config --version => PostgreSQL 8.3.1
-#
-PG_VERSION_MAJOR=$(shell $(PGCONFIG) --version | cut -f2 -d' ' | cut -f1 -d.)
-PG_VERSION_MINOR=$(shell $(PGCONFIG) --version | cut -f2 -d' ' | cut -f2 -d.)
-USE_VERSION=$(PG_VERSION_MAJOR)$(PG_VERSION_MINOR)
-
index c26b6729b1c0b5e815d281ff09809a7eaf751ced..1cdf284ee89295b143e7ca2bbb3b82a1db006e73 100644 (file)
@@ -3,7 +3,7 @@
 
 # See HOWTO_RELEASE file in SVN for definitions of those three.
 
-REL_MAJOR_VERSION=1
-REL_MINOR_VERSION=3
-REL_MICRO_VERSION=4SVN
+POSTGIS_MAJOR_VERSION=1
+POSTGIS_MINOR_VERSION=4
+POSTGIS_MICRO_VERSION=0
 
index 4066e97c61f995e34135a145bac2db40173e3d2e..695524f85cfcd902e646f267c174276d0c1469eb 100755 (executable)
@@ -1,2 +1,3 @@
 #!/bin/sh
+aclocal -I macros
 autoconf
diff --git a/config.h.in b/config.h.in
deleted file mode 100644 (file)
index 7f78a65..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-#undef HAVE_ICONV_H
-#undef USE_GEOS
-#undef USE_JTS
index d76581595c9bf2fa8744c4d9727255d6e0bf8076..36fb15780bd60b08e7b6d443491d5ffb441ad616 100644 (file)
-AC_INIT(README.postgis)
-AC_CONFIG_HEADER(config.h)
-
-dnl AC_ARG_ENABLE(autoconf, [  --enable-autoconf       really use autoconf],
-dnl    AC_MSG_RESULT(Using autoconf),
-dnl    AC_MSG_ERROR([
-dnl  
-dnl  Autoconf-based configuration is not widely tested.
-dnl  If you want to use it anyway specify --enable-autoconf.
-dnl  ])
-dnl  )
+dnl
+dnl PostGIS build system
+dnl
+dnl Written by Mark Cave-Ayland
+dnl
+
+AC_INIT()
+AC_CONFIG_HEADERS([postgis_config.h])
 
 dnl
 dnl Compilers
 dnl
 AC_PROG_CC
+AC_PROG_CPP
 AC_PROG_CXX
-AC_PROG_LN_S
 
 
 dnl
-dnl iconv support (might fail in case of non-default iconv installation)
+dnl Version Information imported from Version.config 
 dnl
-AC_SUBST(USE_ICONV)
-AC_SUBST(ICONV_LDFLAGS)
-ICONV_LDFLAGS=
-USE_ICONV=1
-AC_ARG_WITH(iconv, 
-[  --without-iconv         disable unicode support],
-       if test "$with_iconv" = "no"; then
-               USE_ICONV=0
-       fi
-)
-
-if test "$USE_ICONV" = 1; then
-       AC_CHECK_LIB(iconv, iconv_open,
-               USE_ICONV=1
-               ICONV_LDFLAGS=-liconv
-               ,
-               AC_CHECK_LIB(iconv, libiconv_open,
-                       USE_ICONV=1
-                       ICONV_LDFLAGS=-liconv
-                       ,
-                       AC_CHECK_LIB(c, iconv_open,
-                               USE_ICONV=1
-                               ,
-                               USE_ICONV=0
-                       )
-               )
-       )
-fi
-
-AC_CHECK_HEADERS(iconv.h)
-
+POSTGIS_MAJOR_VERSION=`cat Version.config | grep POSTGIS_MAJOR_VERSION | sed 's/[[^=]]*=\([[0-9]]\)/\1/g'`
+POSTGIS_MINOR_VERSION=`cat Version.config | grep POSTGIS_MINOR_VERSION | sed 's/[[^=]]*=\([[0-9]]\)/\1/g'`
+POSTGIS_MICRO_VERSION=`cat Version.config | grep POSTGIS_MICRO_VERSION | sed 's/[[^=]]*=\([[0-9]]\)/\1/g'`
 
 
 dnl
-dnl host operating system
+dnl Detect the version of PostgreSQL installed on the system
 dnl
-AC_CANONICAL_HOST
 
-dnl
-dnl Search for pg_config and setup pgsql stuff
-dnl
-AC_SUBST(PGCONFIG)
-PGCONFIG=
-AC_ARG_WITH(pgsql, 
-[  --with-pgsql[[=ARG]]      build for a specific pgsql version
-                          [[ARG=path to pg_config]]],
-       if test "$with_pgsql" != "no" -a "$with_pgsql" != "yes"; then
-               if test ! -f "$with_pgsql"; then
-                       AC_MSG_ERROR([Invalid argument to --with-pgsql]);
-               fi
-               PGCONFIG="$with_pgsql"
-       fi
-)
-if test -z "$PGCONFIG"; then
+AC_ARG_WITH([pgconfig], [Specify the path to an alternative pg_config], [PGCONFIG="$withval"], [PGCONFIG=""])
+if test "x$PGCONFIG" = "x"; then
+       dnl PGCONFIG was not specified, so search within the current path
        AC_PATH_PROG([PGCONFIG], [pg_config])
-fi
-if test -z "$PGCONFIG"; then
-       AC_MSG_ERROR([PostgreSQL is required by PostGIS]);
-fi
-AC_SUBST(PGFEINCLUDES)
-AC_SUBST(PGBEINCLUDES)
-AC_SUBST(PGFELIBS)
-AC_SUBST(PGBELIBS)
-AC_SUBST(PGBIN)
-AC_SUBST(PGTEMPLATE)
-AC_SUBST(LPATH)
-PGFEINCLUDES="-I"`${PGCONFIG} --includedir`
-PGFELIBS="-L"`${PGCONFIG} --libdir`" -lpq " #(1)# `${PGCONFIG} --libs 2> /dev/null`
-#(1)#
-# We don't really want to link to more libs then required, see:
-# http://postgis.refractions.net/pipermail/postgis-devel/2006-May/002124.html
-PGBELIBS="-L"`${PGCONFIG} --libdir`" -lpostgres"
-PGBEINCLUDES="-I"`${PGCONFIG} --includedir-server`
-PGBIN=`${PGCONFIG} --bindir`
-
-dnl
-dnl MingW requires use of pwd -W to give proper Windows (not MingW) paths
-dnl for in-place regression tests
-dnl
-case $host_os in
-       *mingw*)
-               PWDREGRESS="pwd -W"
-               ;;
-       *)
-               PWDREGRESS="pwd"
-               ;;
-esac
-AC_SUBST(PWDREGRESS)
 
-dnl
-dnl Test for GEOS
-dnl
-
-AC_SUBST(USE_GEOS)
-AC_SUBST(GEOS_DIR)
-AC_SUBST(GEOS_LDFLAGS)
-AC_SUBST(GEOS_VERNUM)
-USE_GEOS=0
-GEOS_DIR=
-GEOS_LDFLAGS=
-GEOS_VERNUM=10
-
-AC_PATH_PROG([GEOSCONFIG], [geos-config])
-if test -n "$GEOSCONFIG"; then
-       USE_GEOS=1
-fi
-
-AC_ARG_WITH(geos, 
-[  --with-geos[[=ARG]]       enable spatial predicates and operators using GEOS
-                          [[ARG=path to geos-config]]],
-       if test "$with_geos" = "no"; then
-               USE_GEOS=0
+       dnl If we couldn't find pg_config, display an error
+       if test "x$PGCONFIG" = "x"; then
+               AC_MSG_ERROR([could not find pg_config within the current path. You may need to try re-running configure with a --with-pgconfig parameter.])
+       fi
+else
+       dnl PGCONFIG was specified; display a message to the user
+       if test "x$PGCONFIG" = "xyes"; then
+               AC_MSG_ERROR([you must specify a parameter to --with-pgconfig, e.g. --with-pgconfig=/path/to/pg_config])
        else
-               if test "$with_geos" != "yes"; then
-                       if test ! -f "$with_geos"; then
-                   AC_MSG_ERROR([Invalid argument to --with-geos]);
-                       else
-                               GEOSCONFIG="$with_geos"
-                               USE_GEOS=1
-                AC_MSG_RESULT([Using specified geos-config file: $GEOSCONFIG])
-                       fi
+               if test -f $PGCONFIG; then
+                       AC_MSG_RESULT([Using user-specified pg_config file: $PGCONFIG])
+               else
+                       AC_MSG_ERROR([the user-specified pg_config file $PGCONFIG does not exist])
                fi
        fi
-)
-
-if test $USE_GEOS -gt 0; then
+fi
 
-       GEOS_DIR=`$GEOSCONFIG --prefix`
-       GEOS_LDFLAGS=`$GEOSCONFIG --ldflags 2> /dev/null`
+dnl Extract the version information from pg_config
+dnl Note: we extract the major & minor separately, ensure they are numeric, and then combine to give
+dnl the final version. This is to guard against user error... 
+PGSQL_MAJOR_VERSION=`$PGCONFIG --version | sed 's/[[A-Za-z ]]*//' | cut -d. -f1 | sed 's/[[^0-9]]//g'` 
+PGSQL_MINOR_VERSION=`$PGCONFIG --version | sed 's/[[A-Za-z ]]*//' | cut -d. -f2 | sed 's/[[^0-9]]//g'` 
+POSTGIS_PGSQL_VERSION="$PGSQL_MAJOR_VERSION$PGSQL_MINOR_VERSION"
 
-       if test x"$GEOS_LDFLAGS" = "x"; then
-               # older geos-config versions did not
-               # support the --ldflags switch, we'll
-               # default to GEOS_DIR/lib in this case.
-               #
-               GEOS_LDFLAGS="-L${GEOS_DIR}/lib"
+dnl Ensure that we are using PostgreSQL >= 8.1
+if test ! "$PGSQL_MAJOR_VERSION" -ge 8; then
+       AC_MSG_ERROR([PostGIS requires PostgreSQL >= 8.1])
+else
+       if test "$PGSQL_MAJOR_VERSION" -eq 8; then
+               if test ! "$PGSQL_MINOR_VERSION" -ge 1; then
+                       AC_MSG_ERROR([PostGIS requires PostgreSQL >= 8.1])
+               fi      
        fi
+fi     
 
-       GEOS_MAJOR=`$GEOSCONFIG --version | cut -d. -f1`
-       GEOS_MINOR=`$GEOSCONFIG --version | cut -d. -f2`
-       GEOS_VERNUM=`expr $GEOS_MAJOR "*" 10`
-       GEOS_VERNUM=`expr $GEOS_VERNUM "+" $GEOS_MINOR`
+dnl Note: We don't need the server-side LDFLAGS or CPPFLAGS because we get these from PGXS 
 
-       # GEOS >= 3.0.0 always has CAPI, however only GEOS >= 2.2.0 has CAPI support
-       # so abort if CAPI support is not available.
-       if test $GEOS_VERNUM -lt 22; then
-               AC_MSG_ERROR([PostGIS version >= 1.2.0 requires GEOS version >= 2.2.0]) 
-       fi
+dnl Extract the linker and include flags for the frontend (for programs that use libpq)
+PGSQL_FE_LDFLAGS=-L`$PGCONFIG --libdir`
+PGSQL_FE_CPPFLAGS=-I`$PGCONFIG --includedir`
 
-fi
+AC_SUBST([PGSQL_FE_LDFLAGS])
+AC_SUBST([PGSQL_FE_CPPFLAGS])
 
-AC_SUBST(USE_PROJ)
-AC_SUBST(PROJ_DIR)
-AC_SUBST(PROJ_LIBDIR)
-USE_PROJ=0
-PROJ_DIR=
-PROJ_LIBDIR=
-AC_PATH_PROG([PROJ], [proj])
-if test -n "$PROJ"; then
-       USE_PROJ=1
-       PROJ_DIR=`dirname ${PROJ}`/..
-       owd=`pwd`; cd ${PROJ_DIR}; PROJ_DIR=`pwd`; cd $owd;
-fi
-AC_ARG_WITH(proj, 
-       [  --with-proj[[=DIR]]       enable reprojection support],
-       if test "$with_proj" = "no"; then
-               USE_PROJ=0
-       else
-               USE_PROJ=1
-               if test "$with_proj" != "yes"; then
-                       PROJ_DIR=$with_proj
-               fi
-       fi
-)
-if test $USE_PROJ -gt 0; then
-       if test ! -f $PROJ_DIR/include/projects.h; then
-               AC_MSG_ERROR([Can't find proj dir.]);
-       fi
-       PROJ_LIBDIR=${PROJ_DIR}/lib
-fi
 
-AC_ARG_WITH(proj-libdir,
-[  --with-proj-libdir=PATH path to PROJ4 libdir],
-[
-case "$with_proj_libdir" in
-       no|yes)
-               AC_MSG_ERROR([Invalid argument to --with-proj-libdir])
-               ;;
-       *)
-               PROJ_LIBDIR=${with_proj_libdir}
-               ;;
-esac
-], with_proj_libdir=no)
-
-AC_SUBST(USE_JTS)
-AC_SUBST(JTS_INCLUDES)
-AC_SUBST(JTS_LIBDIR)
-USE_JTS=0
-JTS_INCLUDES=
-JTS_INCLUDES=
-AC_ARG_WITH(jts, 
-[  --with-jts[[=ARG]]        use JTS for spatial predicates and operators
-                          [[ARG=path to jts-config]]],
-       if test "$with_jts" != "no"; then
-               USE_JTS=1
-               if test "$with_jts" != "yes"; then
-                       if test ! -f "$with_jts"; then
-       AC_MSG_ERROR([Invalid argument to --with-jts]);
-                       else
-                               JTSCONFIG=$with_jts
-                       fi
-               fi
-       fi
-)
-if test $USE_JTS -gt 0; then
-       if test -z "$JTSCONFIG"; then
-               AC_PATH_PROG([JTSCONFIG], [jts-config])
-               if test -z "$JTSCONFIG"; then
-                       AC_MSG_ERROR([Can't find jts-config]);
-               fi
-       fi
-       JTS_INCLUDES=`$JTSCONFIG --includedir`
-       JTS_LIBDIR=`$JTSCONFIG --libdir`
-fi
+dnl Ensure that we can parse libpq-fe.h
+CPPFLAGS_SAVE="$CPPFLAGS"
+CPPFLAGS="$PGSQL_FE_CPPFLAGS"
+AC_CHECK_HEADER([libpq-fe.h], [], [AC_MSG_ERROR([could not find libpq-fe.h])])
+CPPFLAGS="$CPPFLAGS_SAVE"
 
-dnl
-dnl Search flex and yacc
-dnl
-AC_SUBST(FLEX)
-AC_PATH_PROG([FLEX], [flex])
-if test -z "$FLEX"; then
-       AC_MSG_ERROR(Can't find 'flex');
-fi
+dnl Ensure we can link against libpq
+LIBS_SAVE="$LIBS"
+LIBS="$PGSQL_FE_LDFLAGS"
+AC_CHECK_LIB([pq], [PQserverVersion],
+       [],
+       [AC_MSG_ERROR([could not find libpq])],
+       [])
+LIBS="$LIBS_SAVE"
 
-AC_SUBST(DLLWRAP)
-AC_PATH_PROG([DLLWRAP], [dllwrap])
-AC_SUBST(DLLTOOL)
-AC_PATH_PROG([DLLTOOL], [dlltool])
+AC_DEFINE_UNQUOTED([POSTGIS_PGSQL_VERSION], [$POSTGIS_PGSQL_VERSION], [PostgreSQL server version])     
+AC_SUBST([POSTGIS_PGSQL_VERSION])
 
-dnl AC_SUBST(YACC)
-dnl AC_PATH_PROG([YACC], [yacc])
-AC_PROG_YACC
-if test -z "$YACC"; then
-       AC_MSG_ERROR(Can't find 'yacc');
-fi
 
 dnl
-dnl Find 'install'
+dnl Detect the version of GEOS installed on the system
 dnl
-dnl AC_PATH_PROG([INSTALL], [install])
-dnl if test -z "$INSTALL"; then
-dnl    AC_MSG_ERROR(Can't find 'install');
-dnl fi
-AC_SUBST(INSTALL)
-INSTALL=`pwd`"/install-sh"
 
-dnl
-dnl Search perl
-dnl
-AC_SUBST(PERL)
-AC_PATH_PROG([PERL], [perl])
-if test -z "$PERL"; then
-       AC_MSG_ERROR(Can't find 'perl');
-fi
+AC_ARG_WITH([geosconfig], [Specify the path to an alternative geos-config], [GEOSCONFIG="$withval"], [GEOSCONFIG=""])
+if test "x$GEOSCONFIG" = "x"; then
+       dnl GEOSCONFIG was not specified, so search within the current path
+       AC_PATH_PROG([GEOSCONFIG], [geos-config])
 
-AC_SUBST(docdir)
-docdir='${prefix}/share/doc'
-AC_ARG_WITH(docdir,
-[  --with-docdir=DIR       install the documentation in DIR [[PREFIX/share/doc]]],
-       if test "$with_docdir" = "yes"; then
-               AC_MSG_ERROR([option --with-docdir requires an argument])
+       dnl If we couldn't find geos-config, display an error
+       if test "x$GEOSCONFIG" = "x"; then
+               AC_MSG_ERROR([could not find geos-config within the current path. You may need to try re-running configure with a --with-geosconfig parameter.])
        fi
-       if test "$with_docdir" != "no"; then
-               docdir="$with_docdir"
+else
+       dnl GEOSCONFIG was specified; display a message to the user
+       if test "x$GEOSCONFIG" = "xyes"; then
+               AC_MSG_ERROR([you must specify a parameter to --with-geosconfig, e.g. --with-geosconfig=/path/to/geos-config])
+       else
+               if test -f $GEOSCONFIG; then
+                       AC_MSG_RESULT([Using user-specified geos-config file: $GEOSCONFIG])
+               else
+                       AC_MSG_ERROR([the user-specified geos-config file $GEOSCONFIG does not exist])
+               fi      
        fi
-)
+fi
 
-dnl
-dnl Find 'html/docbook.xsl'
-dnl
-AC_SUBST(XSLBASE)
-XSLBASE=
-AC_ARG_WITH(xsl,
-[  --with-xsl=DIR      Specify the DIR containing html/docbook.xsl stylesheet],
-       if test "$with_xsl" = yes; then
-               AC_MSG_ERROR([option --with-xsl requires an argument])
-       fi
-       if test "$with_xsl" != "no"; then
-               xsl="$with_xsl"
-       fi
-       ,
-       SEARCHPATH="
-               /usr/share/sgml/docbook/xsl-stylesheets 
-               /usr/share/xml/docbook/stylesheet/nwalsh
-               /usr/share/sgml/docbook/stylesheet/xsl/nwalsh
-               "
-       for p in ${SEARCHPATH}; do
-               if test -r "${p}"/html/docbook.xsl; then
-                       xsl="${p}"
-                       break
-               fi
-       done
-)
-XSLBASE="${xsl}"
+dnl Extract the version information from pg_config
+dnl Note: we extract the major & minor separately, ensure they are numeric, and then combine to give
+dnl the final version. This is to guard against user error... 
+GEOS_MAJOR_VERSION=`$GEOSCONFIG --version | cut -d. -f1 | sed 's/[[^0-9]]//g'`
+GEOS_MINOR_VERSION=`$GEOSCONFIG --version | cut -d. -f2 | sed 's/[[^0-9]]//g'`
+POSTGIS_GEOS_VERSION="$GEOS_MAJOR_VERSION$GEOS_MINOR_VERSION"
 
-dnl
-dnl Search for other binaries needed to build docs
-dnl
-AC_PATH_PROG([XSLTPROC], [xsltproc])
-AC_PATH_PROG([PDFXMLTEX], [pdfxmltex])
-AC_PATH_PROG([DB2PDF], [db2pdf])
-AC_PATH_PROG([JW], [jw])
-AC_SUBST(XSLTPROC)
-AC_SUBST(PDFXMLTEX)
-AC_SUBST(JW)
-
-DOC_RULE=requirements_not_met
-if test -n "${XSLBASE}"; then
-       if test -n "${XSLTPROC}"; then
-               DOC_RULE=html/postgis.html
-       else
-               if test -n "${JW}"; then
-                       DOC_RULE=jw
+dnl Ensure that we are using GEOS >= 2.2.0 (requires CAPI) 
+if test ! "$GEOS_MAJOR_VERSION" -ge 2; then
+       AC_MSG_ERROR([PostGIS requires GEOS >= 2.2])
+else
+       if test "$GEOS_MAJOR_VERSION" -eq 2; then
+               if test ! "$GEOS_MINOR_VERSION" -ge 2; then
+                       AC_MSG_ERROR([PostGIS requires GEOS >= 2.2])
                fi
        fi
-fi
-AC_SUBST(DOC_RULE)
+fi     
 
+dnl Extract the linker and include flags 
+GEOS_LDFLAGS=`$GEOSCONFIG --ldflags`
+GEOS_CPPFLAGS=-I`$GEOSCONFIG --includes`
 
-if test $USE_JTS -gt 0; then
-dnl    AC_MSG_RESULT([ GEOS disabled, using JTS.])
-       USE_GEOS=0
-        AC_DEFINE(USE_JTS)
-fi
+dnl Ensure that we can parse geos_c.h
+CPPFLAGS_SAVE="$CPPFLAGS"
+CPPFLAGS="$GEOS_CPPFLAGS"
+AC_CHECK_HEADER([geos_c.h], [], [AC_MSG_ERROR([could not find geos_c.h - you may need to specify the directory of a geos-config file using --with-geosconfig])])
+CPPFLAGS="$CPPFLAGS_SAVE"
 
-if test $USE_GEOS -gt 0; then
-        AC_DEFINE(USE_GEOS)
-fi
+dnl Ensure we can link against libgeos_c
+LIBS_SAVE="$LIBS"
+LIBS="$GEOS_LDFLAGS"
+AC_CHECK_LIB([geos_c], [initGEOS],
+       [],
+       [AC_MSG_ERROR([could not find libgeos_c - you may need to specify the directory of a geos-config file using --with-geosconfig])],
+       [])
+LIBS="$LIBS_SAVE"
 
-#
-# Extract PostgreSQL paths from pg_config
-##
-
-#
-# Prefix (pg_prefix)
-#
-pg_prefix=/usr/local/pgsql
-pg_eprefix=
-pg_docdir=
-pg_datadir=
-pg_mandir=
-pg_bindir="`${PGCONFIG} --bindir`"
-pg_pkglibdir="`${PGCONFIG} --pkglibdir`"
-for v in `${PGCONFIG} --configure`; do
-       strip=`echo $v | sed "s/'//g"`
-       var=`echo "$strip" | cut -d= -f1`
-       if test "$var" = "--prefix"; then
-               pg_prefix=`echo "$strip" | cut -d= -f2`
-       elif test "$var" = "--exec-prefix"; then
-               pg_eprefix=`echo "$strip" | cut -d= -f2`
-       elif test "$var" = "--docdir"; then
-               pg_docdir=`echo "$strip" | cut -d= -f2`
-       elif test "$var" = "--with-docdir"; then
-               pg_docdir=`echo "$strip" | cut -d= -f2`
-       elif test "$var" = "--datadir"; then
-               pg_datadir=`echo "$strip" | cut -d= -f2`
-       elif test "$var" = "--mandir"; then
-               pg_mandir=`echo "$strip" | cut -d= -f2`
-       elif test "$var" = "--with-template"; then
-               PGTEMPLATE=`echo "$strip" | cut -d= -f2`
-       fi
-done
-#
-# We set these defaults after scan of
-# pg_config --configure to safely expand pg_prefix
-# We need expansion for the 'postgresq' path component
-# addition below (default paths take from pg_config)
-#
-if test -z "$pg_eprefix"; then pg_eprefix=${pg_prefix}; fi
-if test -z "$pg_docdir"; then pg_docdir=${pg_prefix}'/doc'; fi
-if test -z "$pg_datadir"; then pg_datadir=${pg_prefix}'/share'; fi
-if test -z "$pg_mandir"; then pg_mandir=${pg_prefix}'/man'; fi
-
-# Use old layout by default
-use_new_layout=0
-
-if test "$prefix" != 'NONE'; then
-       use_new_layout=1
-fi
+AC_DEFINE_UNQUOTED([POSTGIS_GEOS_VERSION], [$POSTGIS_GEOS_VERSION], [GEOS library version])    
+AC_SUBST([POSTGIS_GEOS_VERSION])
 
-if test "${use_new_layout}" = "1"; then
-       LPATH=$libdir
-else
-
-       #
-       # Use old layout: everything under PGSQL paths
-       # Note: still allow override by user, this is
-       #       done checking each variable against its
-       #       default value, if it has a different
-       #       value do not use PGSQL versions
-       #
 
-       if test "$prefix" = 'NONE'; then
-               prefix=${pg_prefix}
-       fi
+dnl
+dnl Detect the version of PROJ.4 installed
+dnl
 
-       if test "$docdir" = '${prefix}/share/doc'; then
-               docdir=${pg_docdir}
-               #
-               # If docdir contains no 'pgsql' or 'postgres'
-               # add the suffix. This is derived from
-               # PGSQL_SRC/src/Makefile.global
-               #
-               if expr "${docdir}" : ".*/pgsql" > /dev/null ; then :; else
-               if expr "${docdir}" : ".*/postgres" > /dev/null ; then :; else
-                       docdir=${docdir}"/postgresql"
-               fi
+AC_ARG_WITH([projdir], [Specify the directory to an alternative PROJ installation], [PROJDIR="$withval"], [PROJDIR=""])
+if test ! "x$PROJDIR" = "x"; then
+       dnl Make sure that the directory exists 
+       if test "x$PROJDIR" = "xyes"; then
+               AC_MSG_ERROR([you must specifiy a parameter to --with-projdir, e.g. --with-projdir=/path/to])
+       else
+               if test -d "$PROJDIR"; then
+                       AC_MSG_RESULT([Using user-specified proj directory: $PROJDIR])
+
+                       dnl Add the include directory to PROJ_CPPFLAGS  
+                       PROJ_CPPFLAGS="-I$PROJDIR/include"      
+                       PROJ_LDFLAGS="-L$PROJDIR/lib"
+               else
+                       AC_MSG_ERROR([the --with-projdir directory "$PROJDIR" cannot be found]) 
                fi
-               # Add the "contrib" part
-               docdir=${docdir}"/contrib"
        fi
+fi
 
-       if test "$datadir" = '${prefix}/share'; then
-               datadir=${pg_datadir}
-               #
-               # If datadir contains no 'pgsql' or 'postgres'
-               # add the suffix. This is derived from
-               # PGSQL_SRC/src/Makefile.global
-               #
-               if expr "${datadir}" : ".*/pgsql" > /dev/null ; then :; else
-               if expr "${datadir}" : ".*/postgres" > /dev/null ; then :; else
-                       datadir=${datadir}"/postgresql"
-               fi
-               fi
-               # Add the "contrib" part
-               datadir=${datadir}"/contrib"
-       fi
+dnl Check that we can find the proj_api.h header file
+CPPFLAGS_SAVE="$CPPFLAGS"
+CPPFLAGS="$PROJ_CPPFLAGS"
+AC_CHECK_HEADER([proj_api.h], [], [AC_MSG_ERROR([could not find proj_api.h - you may need to specify the directory of a PROJ.4 installation using --with-projdir])])   
 
-       if test "$mandir" = '${prefix}/man'; then
-               mandir=${pg_mandir}
-       fi
+dnl Return the PROJ.4 version number
+AC_PROJ_VERSION([POSTGIS_PROJ_VERSION])
+AC_DEFINE_UNQUOTED([POSTGIS_PROJ_VERSION], [$POSTGIS_PROJ_VERSION], [PROJ library version])
+AC_SUBST([POSTGIS_PROJ_VERSION])
+CPPFLAGS="$CPPFLAGS_SAVE"
 
-       if test "$bindir" = '${exec_prefix}/bin'; then
-               bindir=${pg_bindir}
-       fi
+dnl Ensure we can link against libproj
+LIBS_SAVE="$LIBS"
+LIBS="$PROJ_LDFLAGS"
+AC_CHECK_LIB([proj], [pj_get_release],
+       [],
+       [AC_MSG_ERROR([could not find libproj - you may need to specify the directory of a PROJ.4 installation using --with-projdir])],
+       [])
+LIBS="$LIBS_SAVE"
 
-       if test "$libdir" = '${exec_prefix}/lib'; then
-               libdir=${pg_pkglibdir}
-               LPATH='\$$libdir'
-       else
-               LPATH=$libdir
-       fi
-fi
 
-# --with-template parsing is done in the single
-# pg_config --configure scan above
-AC_MSG_CHECKING([which template to use])
-template=$PGTEMPLATE
-
-case $host_os in
-     aix*) template=aix ;;
-    beos*) template=beos ;;
-    bsdi*) template=bsdi ;;
-  cygwin*) template=cygwin ;;
-  darwin*) template=darwin ;;
-    dgux*) template=dgux ;;
- freebsd*) template=freebsd ;;
-    hpux*) template=hpux ;;
-    irix*) template=irix ;;
- linux*|gnu*|k*bsd*-gnu)
-           template=linux ;;
-   mingw*) template=win32 ;;
-  netbsd*) template=netbsd ;;
-nextstep*) template=nextstep ;;
- openbsd*) template=openbsd ;;
-     osf*) template=osf ;;
-     qnx*) template=qnx4 ;;
-     sco*) template=sco ;;
- solaris*) template=solaris ;;
-   sunos*) template=sunos4 ;;
- sysv4.2*)
-        case $host_vendor in
-          univel) template=univel ;;
-        esac ;;
-   sysv4*) template=svr4 ;;
-   sysv5*) template=unixware ;;
-  ultrix*) template=ultrix4 ;;
-esac
-
-  if test x"$template" = x"" ; then
-    AC_MSG_ERROR([[
-*******************************************************************
-PostgreSQL has apparently not been ported to your platform yet.
-To try a manual configuration, look into the src/template directory
-for a similar platform and use the '--with-template=' option.
-
-Please also contact <pgsql-ports@postgresql.org> to see about
-rectifying this.  Include the above 'checking host system type...'
-line.
-*******************************************************************
-]])
-  fi
-
-AC_MSG_RESULT([$template])
-
-PORTNAME=$template
-AC_SUBST(PORTNAME)
-
-
-#
-# OS-specific settings
-#
-AC_SUBST(DLSUFFIX)
-AC_SUBST(DLFLAGS)
-AC_SUBST(EXE)
-AC_SUBST(HOST_OS)
-
-# host_os is defined by AC_CANONICAL_HOST
-HOST_OS=$host_os
-DLSUFFIX=.so
-DLFLAGS=-shared
-EXE=
-case $host_os in
-       *mingw*)
-               PGBEINCLUDES="$PGBEINCLUDES $PGBEINCLUDES/port/win32"
-               DLSUFFIX=.dll
-               DLFLAGS='${PGBELIBS}'
-               EXE=.exe
-               ;;
-       *darwin*)
-               DLFLAGS="-no-cpp-precomp -flat_namespace -undefined suppress -multiply_defined suppress"
-               ;;
-esac
-
-# Assume system is ELF if it predefines __ELF__ as 1,
-# otherwise believe host_os based default.
-case $host_os in
-    freebsd1*|freebsd2*) elf=no;;
-    freebsd3*|freebsd4*) elf=yes;;
-esac
-
-AC_EGREP_CPP(yes,
-[#if __ELF__
-  yes
-#endif
-],
-[ELF_SYS=true],
-[if test "X$elf" = "Xyes" ; then
-  ELF_SYS=true
-else
-  ELF_SYS=
-fi])
-AC_SUBST(ELF_SYS)
+dnl
+dnl Define version macros
+dnl
 
+POSTGIS_VERSION="$POSTGIS_MAJOR_VERSION.$POSTGIS_MINOR_VERSION USE_GEOS=1 USE_PROJ=1 USE_STATS=1"
+POSTGIS_LIB_VERSION="$POSTGIS_MAJOR_VERSION.$POSTGIS_MINOR_VERSION.$POSTGIS_MICRO_VERSION"
+POSTGIS_BUILD_DATE=`date -u "+%Y-%m-%d %H:%M:%S"`
+POSTGIS_SCRIPTS_VERSION="$POSTGIS_LIB_VERSION"
 
+AC_DEFINE_UNQUOTED([POSTGIS_VERSION], ["$POSTGIS_VERSION"], [PostGIS version])
+AC_DEFINE_UNQUOTED([POSTGIS_LIB_VERSION], ["$POSTGIS_LIB_VERSION"], [PostGIS library version])
+AC_DEFINE_UNQUOTED([POSTGIS_BUILD_DATE], ["$POSTGIS_BUILD_DATE"], [PostGIS build date])
+AC_DEFINE_UNQUOTED([POSTGIS_SCRIPTS_VERSION], ["$POSTGIS_SCRIPTS_VERSION"], [PostGIS scripts version])
 
-AC_OUTPUT(Makefile.config)
+AC_SUBST([POSTGIS_VERSION])
+AC_SUBST([POSTGIS_LIB_VERSION])
+AC_SUBST([POSTGIS_BUILD_DATE])
+AC_SUBST([POSTGIS_SCRIPTS_VERSION])
 
-AC_MSG_RESULT([ ])
-AC_MSG_RESULT([ SUMMARY])
-AC_MSG_RESULT([ -------------------------------------------------------])
-AC_MSG_RESULT([ ])
-AC_MSG_RESULT([ HOST_OS: $host_os])
-AC_MSG_RESULT([ ])
-AC_MSG_RESULT([   PGSQL: $PGCONFIG])
 
-if test $USE_JTS -gt 0; then
-       AC_MSG_RESULT([     JTS: includedir=$JTS_INCLUDES libdir=$JTS_LIBDIR])
-fi
+dnl
+dnl Other parameters 
+dnl
 
-# GEOS CAPI information
-if test $USE_GEOS -gt 0; then
-       AC_MSG_RESULT([    GEOS: $GEOSCONFIG (with C-API)])
-    AC_MSG_RESULT([          (ldflags: $GEOS_LDFLAGS)])
-fi
+dnl Always enable BBOX caching by default
+AC_DEFINE_UNQUOTED([POSTGIS_AUTOCACHE_BBOX], [1], [Enable caching of bounding box within geometries])
 
-# PROJ.4 information
-if test $USE_PROJ -gt 0; then
-       AC_MSG_RESULT([    PROJ: prefix=$PROJ_DIR libdir=$PROJ_LIBDIR])
-fi
+dnl Always enable use of ANALYZE statistics by default
+AC_DEFINE_UNQUOTED([POSTGIS_USE_STATS], [1], [Enable use of ANALYZE statistics])
 
-AC_MSG_RESULT([   ICONV: $USE_ICONV $ICONV_LDFLAGS])
-dnl AC_MSG_RESULT([  FLEX:  path=$FLEX])
-dnl AC_MSG_RESULT([  YACC:  path=$YACC])
-
-AC_MSG_RESULT([  ])
-AC_MSG_RESULT([ PORTNAME: $PORTNAME])
-AC_MSG_RESULT([   PREFIX: $prefix])
-AC_MSG_RESULT([  EPREFIX: $exec_prefix])
-AC_MSG_RESULT([      DOC: $docdir])
-AC_MSG_RESULT([     DATA: $datadir])
-AC_MSG_RESULT([      MAN: $mandir])
-AC_MSG_RESULT([      BIN: $bindir])
-if test "$MODULE_INSTALLDIR" = "$LPATH"; then
-       AC_MSG_RESULT([      EXT: $libdir])
-else
-       AC_MSG_RESULT([      EXT: $libdir ($LPATH)])
-fi
 
-AC_MSG_RESULT([ -------------------------------------------------------])
-AC_MSG_RESULT([ ])
+CPPFLAGS="$PGSQL_CPPFLAGS $GEOS_CPPFLAGS $PROJ_CPPFLAGS"
+dnl AC_MSG_RESULT([CPPFLAGS: $CPPFLAGS])
+
+SHLIB_LINK="$PGSQL_LDFLAGS $GEOS_LDFLAGS $PROJ_LDFLAGS -lgeos_c -lproj"
+AC_SUBST([SHLIB_LINK])
+dnl AC_MSG_RESULT([SHLIB_LINK: $SHLIB_LINK])
+
+dnl Output the relevant files
+AC_OUTPUT([lwgeom/Makefile lwgeom/sqldefines.h loader/Makefile.pgsql2shp regress/Makefile])
 
index 39247c6d90f469a33bf8ff5c22aeed0d835386e3..3342638f380b7f704063713fabe7b7a8aa6c02a7 100644 (file)
@@ -1,44 +1,9 @@
-include ../Makefile.config
-
-# Version handling:
-include ../Version.config
-POSTGIS_VERSION = $(REL_MAJOR_VERSION).$(REL_MINOR_VERSION).$(REL_MICRO_VERSION)
-
 #
-# PostGIS Loader Makefile
+# PostGIS PGXS build system
 #
 
-OBJS = shpopen.o dbfopen.o getopt.o
-
-#---------------------------------------------------------------
-
-ifeq ($(USE_ICONV),1)
-       override CFLAGS += -DUSE_ICONV
-       override LDFLAGS += $(ICONV_LDFLAGS)
-endif
-
-override CFLAGS := -g -Wall -I.. $(CFLAGS) -DUSE_VERSION=$(USE_VERSION) -DPOSTGIS_VERSION='"$(POSTGIS_VERSION)"'
-
-all: shp2pgsql$(EXE) pgsql2shp$(EXE)
-
-pgsql2shp.o: pgsql2shp.c
-       $(CC) $(CFLAGS) $(PGFEINCLUDES) -c $<
-
-pgsql2shp$(EXE): $(OBJS) pgsql2shp.o PQunescapeBytea.o
-       $(CC) $(CFLAGS) $(OBJS) PQunescapeBytea.o pgsql2shp.o $(LDFLAGS) $(PGFELIBS) -o $@ 
-
-shp2pgsql$(EXE): $(OBJS) shp2pgsql.o
-       $(CC) $(CFLAGS) $(OBJS) shp2pgsql.o $(LDFLAGS) -o $@ 
-
-install: all
-       @mkdir -p $(DESTDIR)$(bindir)
-       $(INSTALL_BIN) pgsql2shp$(EXE) $(DESTDIR)$(bindir)/pgsql2shp$(EXE)
-       $(INSTALL_BIN) shp2pgsql$(EXE) $(DESTDIR)$(bindir)/shp2pgsql$(EXE)
-
-uninstall:
-       rm -f $(DESTDIR)$(bindir)/pgsql2shp$(EXE)
-       rm -f $(DESTDIR)$(bindir)/shp2pgsql$(EXE)
-
-clean:
-       rm -f $(OBJS) shp2pgsql.o pgsql2shp.o PQunescapeBytea.o shp2pgsql$(EXE) pgsql2shp$(EXE)
+all:
+%:
+       make -f Makefile.shp2pgsql $@
+       make -f Makefile.pgsql2shp $@
 
diff --git a/loader/Makefile.pgsql2shp.in b/loader/Makefile.pgsql2shp.in
new file mode 100644 (file)
index 0000000..26fd399
--- /dev/null
@@ -0,0 +1,22 @@
+#
+# PostGIS PGXS build system
+#
+PROGRAM=pgsql2shp
+
+# List of objects to build
+OBJS=  shpopen.o \
+       dbfopen.o \
+       getopt.o \
+       pgsql2shp.o \
+       PQunescapeBytea.o
+
+# Link against libpq
+PG_CPPFLAGS=@PGSQL_FE_CPPFLAGS@
+PG_LIBS=@PGSQL_FE_LDFLAGS@ -lpq
+
+
+# PGXS information
+PG_CONFIG = pg_config
+PGXS := $(shell $(PG_CONFIG) --pgxs)
+include $(PGXS)
+
diff --git a/loader/Makefile.shp2pgsql b/loader/Makefile.shp2pgsql
new file mode 100644 (file)
index 0000000..ee5f899
--- /dev/null
@@ -0,0 +1,16 @@
+#
+# PostGIS PGXS build system
+#
+PROGRAM=shp2pgsql
+
+# List of objects to build
+OBJS=  shpopen.o \
+       dbfopen.o \
+       getopt.o \
+       shp2pgsql.o
+
+# PGXS information
+PG_CONFIG = pg_config
+PGXS := $(shell $(PG_CONFIG) --pgxs)
+include $(PGXS)
+
index 3a0f61c4c43b06c20cf47b6c8485ae2c03a129d8..e9a784db314e7f1732490795396b56fd4257ee77 100644 (file)
@@ -21,6 +21,8 @@
 static char rcsid[] =
   "$Id$";
 
+#include "../postgis_config.h"
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
index 718d9278a7a23a1f4f7d3c98f8473b283b579b70..60ca24726bf5f8b3199987d51c8623be03ee85bd 100644 (file)
@@ -22,7 +22,7 @@
  *
  **********************************************************************/
 
-#include "../config.h"
+#include "../postgis_config.h"
 #include "shapefil.h"
 #include <stdio.h>
 #include <string.h>
index d6362f37912bcd2916f0e38cbca05139944eeb0c..65bc7d23f1b128a8240cb458d8a5ae939f50b223 100644 (file)
-# Configuration Directives
-include ../Makefile.config
-include ../Version.config
-
-#---------------------------------------------------------------
-# Default missing CXX variable to c++
-# 
-ifndef $(CXX) 
-       CXX = c++
-endif
-
-#---------------------------------------------------------------
-# Shared library parameters.
 #
-NAME=lwgeom
-SHLIB_LINK     = $(DLFLAGS) 
-
-#---------------------------------------------------------------
-# Postgis version and build date
-#---------------------------------------------------------------
-
-POSTGIS_VERSION = $(REL_MAJOR_VERSION).$(REL_MINOR_VERSION) USE_GEOS=$(USE_GEOS) USE_PROJ=$(USE_PROJ) USE_STATS=$(USE_STATS)
-POSTGIS_LIB_VERSION = $(REL_MAJOR_VERSION).$(REL_MINOR_VERSION).$(REL_MICRO_VERSION)
-POSTGIS_BUILD_DATE := $(shell date -u "+%Y-%m-%d %H:%M:%S")
-SCRIPTS_VERSION=$(POSTGIS_LIB_VERSION)
-
-SQL_FLAGS = -DUSE_VERSION=$(USE_VERSION)
-
-#---------------------------------------------------------------
-
-CSTAR_FLAGS = -Wall -g -O2 -fPIC -fexceptions
-
-override CFLAGS += -DUSE_VERSION=$(USE_VERSION)
-override CFLAGS += -DPOSTGIS_LIB_VERSION='"$(POSTGIS_LIB_VERSION)"'
-override CFLAGS += -DPOSTGIS_VERSION='"$(POSTGIS_VERSION)"'
-override CFLAGS += -DPOSTGIS_SCRIPTS_VERSION='"$(SCRIPTS_VERSION)"'
-override CFLAGS += -DPOSTGIS_BUILD_DATE='"$(POSTGIS_BUILD_DATE)"'
-
-JTS_OBJ=lwgeom_nojts.o
-ifeq ($(USE_GEOS),1)
-       CSTAR_FLAGS += -DUSE_GEOS
-       CSTAR_FLAGS += -DGEOS_VERNUM=$(GEOS_VERNUM)
-        SQL_FLAGS += -DUSE_GEOS -DGEOS_VERNUM=$(GEOS_VERNUM)
-       GEOS_RULES=
-       CSTAR_FLAGS += -I$(GEOS_DIR)/include 
-       GEOS_WRAPPER=
-       JTS_OBJ=lwgeom_geos_c.o
-       SHLIB_LINK += $(GEOS_LDFLAGS) -lgeos_c
-endif
-
-ifeq ($(USE_JTS),1)
-       CXXFLAGS += -I$(JTS_INCLUDES)
-       CSTAR_FLAGS += -DUSE_JTS
-        SQL_FLAGS += -DUSE_JTS
-       JTS_WRAPPER=lwgeom_jts_wrapper.o
-       JTS_OBJ=lwgeom_jts.o
-       SHLIB_LINK += -lgcj -ljts -lstdc++ -L$(JTS_LIBDIR) 
-endif
-
-ifeq ($(USE_PROJ),1)
-       override CFLAGS += -I$(PROJ_DIR)/include -DUSE_PROJ 
-       SHLIB_LINK += -L$(PROJ_LIBDIR) -lproj
-        SQL_FLAGS += -DUSE_PROJ
-endif
-
-override CFLAGS += $(PGBEINCLUDES) -DAUTOCACHE_BBOX=$(AUTOCACHE_BBOX) 
-
-# memory debug for gcc 2.91, 2.95, 3.0 and 3.1
-# for gcc >= 3.2.2 set GLIBCPP_FORCE_NEW at runtime instead
-#override CXXFLAGS += -D__USE_MALLOC
-
-#---------------------------------------------------------------
-# Add index selectivity to C flags
+# PostGIS PGXS build system
 #
-ifeq ($(USE_STATS),1)
-       override CFLAGS += -DUSE_STATS
-endif
-
-override CFLAGS += $(CSTAR_FLAGS)
-override CXXFLAGS += $(CSTAR_FLAGS)
-
-SA_OBJS=measures.o box2d.o ptarray.o lwgeom_api.o lwgeom.o lwpoint.o lwline.o lwpoly.o lwmpoint.o lwmline.o lwmpoly.o lwcollection.o $(GEOS_WRAPPER) $(JTS_WRAPPER) wktunparse.o lwgparse.o wktparse.tab.o lex.yy.o vsprintf.o
-
-OBJS=$(SA_OBJS) liblwgeom.o lwgeom_pg.o lwgeom_debug.o lwgeom_spheroid.o lwgeom_ogc.o lwgeom_functions_analytic.o $(JTS_OBJ) lwgeom_inout.o lwgeom_estimate.o lwgeom_functions_basic.o lwgeom_gist.o lwgeom_btree.o lwgeom_transform.o stringBuffer.o lwgeom_box.o lwgeom_box3d.o lwgeom_box2dfloat4.o lwgeom_chip.o lwgeom_svg.o lwgeom_gml.o lwgeom_kml.o lwgeom_geojson.o lwgeom_triggers.o lwgeom_dump.o lwgeom_functions_lrs.o long_xact.o lwcurve.o lwcompound.o lwcurvepoly.o lwmcurve.o lwmsurface.o lwgeom_sqlmm.o lwgeom_rtree.o
-
-#OTHERS=y.output lex.yy.c wktparse.tab.c wktparse.tab.h lwpostgis.sql
-OTHERS=y.output postgis_geos_version.h
-
-all: $(GEOS_RULES) ../lwpostgis.sql ../regress/lwpostgis.sql ../lwpostgis_upgrade.sql all-shared-lib 
-
-enable_shared=yes
-include Makefile.shlib
-
-MODULE_FILENAME = $(LPATH)/lib$(NAME)
-REGRESS_MODULE_FILENAME = $(shell $(PWDREGRESS))/$(shlib)
-
-#---------------------------------------------------------------
-# Makefile targets
-
-wktparse.tab.c: wktparse.y
-       $(YACC) -vd -p lwg_parse_yy wktparse.y
-       mv -f y.tab.c wktparse.tab.c
-       mv -f y.tab.h wktparse.tab.h
-
-
-lex.yy.c: wktparse.lex wktparse.tab.c
-       $(FLEX) -Plwg_parse_yy -i -f -o'lex.yy.c' wktparse.lex 
-
-lwgeom_jts_wrapper.o: lwgeom_jts_wrapper.cpp
-
-lwgeom_geos_c.o: lwgeom_geos_c.c profile.h
-
-lwgeom_jts.o: lwgeom_jts.c profile.h
-
-lwgeom_nojts.o: lwgeom_nojts.c
-
-lwgeom_functions_basic.o: lwgeom_functions_basic.c profile.h
-
-# Shared library stuff
-
-../lwpostgis_upgrade.sql: ../lwpostgis.sql ../utils/postgis_proc_upgrade.pl
-       $(PERL) ../utils/postgis_proc_upgrade.pl ../lwpostgis.sql > ../lwpostgis_upgrade.sql
-
-../lwpostgis.sql: lwpostgis.sql.in long_xact.sql.in sqlmm.sql.in sqldefines.h 
-       cpp -P -traditional-cpp $(SQL_FLAGS) $< | sed -e 's:@MODULE_FILENAME@:$(MODULE_FILENAME):g;s:@POSTGIS_VERSION@:$(POSTGIS_VERSION):g;s:@POSTGIS_SCRIPTS_VERSION@:$(SCRIPTS_VERSION):g;s/@POSTGIS_BUILD_DATE@/$(POSTGIS_BUILD_DATE)/g' | grep -v '^#' > $@
-
-../regress/lwpostgis.sql: lwpostgis.sql.in long_xact.sql.in sqlmm.sql.in sqldefines.h
-       cpp -P -traditional-cpp $(SQL_FLAGS) $< | sed -e 's#@MODULE_FILENAME@#$(MODULE_FILENAME)#g;s#@POSTGIS_VERSION@#$(POSTGIS_VERSION)#g;s#@POSTGIS_SCRIPTS_VERSION@#$(SCRIPTS_VERSION)#g;s/@POSTGIS_BUILD_DATE@/$(POSTGIS_BUILD_DATE)/g' | grep -v '^#' > $@
-
-install: all install-lib-shared install-lwgeom-scripts
-
-install-lwgeom-scripts:
-       @mkdir -p $(DESTDIR)$(datadir)
-       $(INSTALL_DATA) ../lwpostgis.sql $(DESTDIR)$(datadir)/lwpostgis.sql
-       $(INSTALL_DATA) ../lwpostgis_upgrade.sql $(DESTDIR)$(datadir)/lwpostgis_upgrade.sql
-       $(INSTALL_DATA) ../spatial_ref_sys.sql $(DESTDIR)$(datadir)/spatial_ref_sys.sql
-
-#----------------------------------------------------------
-
-detect_geos_version: 
-       sh ../geos_version.sh $(GEOS_DIR) > postgis_geos_version.h
-
-uninstall-lwgeom-scripts:
-       rm -f $(DESTDIR)$(datadir)/lwpostgis.sql
-       rm -f $(DESTDIR)$(datadir)/lwpostgis_upgrade.sql
-       rm -f $(DESTDIR)$(datadir)/spatial_ref_sys.sql
-
-uninstall: uninstall-lib uninstall-lwgeom-scripts
-
-clean-lwgeom-lib: clean-lib
-
-clean distclean: clean-lwgeom-lib
-       rm -f *.o *.so *.a ../lwpostgis.sql ../lwpostgis_upgrade.sql test $(OTHERS)
-
-maintainer-clean: clean
-       rm  -f lex.yy.c wktparse.tab.c wktparse.tab.h
-
-liblwgeom_sa.o: liblwgeom.c
-       $(CC) -DSTANDALONE -o $@ -c $<
-
-liblwgeom_sa.so: $(SA_OBJS) liblwgeom_sa.o 
-       $(CC) -shared -o $@ $^ 
-
-liblwgeom_sa.a: $(SA_OBJS) liblwgeom_sa.o 
-       $(AR) -rc $@ $^ 
-
-
-test: liblwgeom_sa.so liblwgeom_sa.a test.c
-       $(CC) -Wall -lm -g -o test test.c liblwgeom_sa.a 
+MODULE_big=lwpostgis
+
+
+# Files to be copied to the contrib/ directory
+DATA_built=lwpostgis.sql
+DATA=../spatial_ref_sys.sql
+
+# SQL objects (files requiring C pre-processing)
+SQL_OBJS=lwpostgis.sql.in
+
+# Standalone LWGEOM objects
+SA_OBJS=measures.o \
+       box2d.o \
+       ptarray.o \
+       lwgeom_api.o \
+       lwgeom.o \
+       lwpoint.o \
+       lwline.o \
+       lwpoly.o \
+       lwmpoint.o \
+       lwmline.o \
+       lwmpoly.o \
+       lwcollection.o \
+       lwgeom_geos_c.o \
+       wktunparse.o \
+       lwgparse.o \
+       wktparse.tab.o \
+       lex.yy.o \
+       vsprintf.o      
+
+# PostgreSQL objects
+PG_OBJS=liblwgeom.o \
+       lwgeom_pg.o \
+       lwgeom_debug.o \
+       lwgeom_spheroid.o \
+       lwgeom_ogc.o \
+       lwgeom_functions_analytic.o \
+       $(JTS_OBJ) \
+       lwgeom_inout.o \
+       lwgeom_estimate.o \
+       lwgeom_functions_basic.o \
+       lwgeom_gist.o \
+       lwgeom_btree.o \
+       lwgeom_transform.o \
+       stringBuffer.o \
+       lwgeom_box.o \
+       lwgeom_box3d.o \
+       lwgeom_box2dfloat4.o \
+       lwgeom_chip.o \
+       lwgeom_svg.o \
+       lwgeom_gml.o \
+       lwgeom_kml.o \
+       lwgeom_geojson.o \
+       lwgeom_triggers.o \
+       lwgeom_dump.o \
+       lwgeom_functions_lrs.o \
+       long_xact.o \
+       lwcurve.o \
+       lwcompound.o \
+       lwcurvepoly.o \
+       lwmcurve.o \
+       lwmsurface.o \
+       lwgeom_sqlmm.o \
+       lwgeom_rtree.o
+
+# Objects to build using PGXS
+OBJS=$(SA_OBJS) $(PG_OBJS)
+
+# Libraries to link into the module (proj, geos)
+SHLIB_LINK= -L/usr/lib  -lgeos_c -lproj
+
+# Extra files to remove during 'make clean'
+EXTRA_CLEAN=$(SQL_OBJS)
+
+# PGXS information
+PG_CONFIG = pg_config
+PGXS := $(shell $(PG_CONFIG) --pgxs)
+include $(PGXS)
+
+
+# Generate any .sql.in files from .sql.in.c files by running them through the C pre-processor 
+$(SQL_OBJS): %.in: %.in.c
+       $(CPP) -traditional-cpp $< | grep -v '^#' > $@
 
-tsort:
-       lorder $(SA_OBJS) | tsort
diff --git a/lwgeom/Makefile.in b/lwgeom/Makefile.in
new file mode 100644 (file)
index 0000000..7a16c2e
--- /dev/null
@@ -0,0 +1,87 @@
+#
+# PostGIS PGXS build system
+#
+MODULE_big=lwpostgis
+
+
+# Files to be copied to the contrib/ directory
+DATA_built=lwpostgis.sql
+DATA=../spatial_ref_sys.sql
+
+# SQL objects (files requiring C pre-processing)
+SQL_OBJS=lwpostgis.sql.in
+
+# Standalone LWGEOM objects
+SA_OBJS=measures.o \
+       box2d.o \
+       ptarray.o \
+       lwgeom_api.o \
+       lwgeom.o \
+       lwpoint.o \
+       lwline.o \
+       lwpoly.o \
+       lwmpoint.o \
+       lwmline.o \
+       lwmpoly.o \
+       lwcollection.o \
+       lwgeom_geos_c.o \
+       wktunparse.o \
+       lwgparse.o \
+       wktparse.tab.o \
+       lex.yy.o \
+       vsprintf.o      
+
+# PostgreSQL objects
+PG_OBJS=liblwgeom.o \
+       lwgeom_pg.o \
+       lwgeom_debug.o \
+       lwgeom_spheroid.o \
+       lwgeom_ogc.o \
+       lwgeom_functions_analytic.o \
+       $(JTS_OBJ) \
+       lwgeom_inout.o \
+       lwgeom_estimate.o \
+       lwgeom_functions_basic.o \
+       lwgeom_gist.o \
+       lwgeom_btree.o \
+       lwgeom_transform.o \
+       stringBuffer.o \
+       lwgeom_box.o \
+       lwgeom_box3d.o \
+       lwgeom_box2dfloat4.o \
+       lwgeom_chip.o \
+       lwgeom_svg.o \
+       lwgeom_gml.o \
+       lwgeom_kml.o \
+       lwgeom_geojson.o \
+       lwgeom_triggers.o \
+       lwgeom_dump.o \
+       lwgeom_functions_lrs.o \
+       long_xact.o \
+       lwcurve.o \
+       lwcompound.o \
+       lwcurvepoly.o \
+       lwmcurve.o \
+       lwmsurface.o \
+       lwgeom_sqlmm.o \
+       lwgeom_rtree.o
+
+# Objects to build using PGXS
+OBJS=$(SA_OBJS) $(PG_OBJS)
+
+# Libraries to link into the module (proj, geos)
+SHLIB_LINK=@SHLIB_LINK@
+
+# Extra files to remove during 'make clean'
+EXTRA_CLEAN=$(SQL_OBJS)
+
+# PGXS information
+PG_CONFIG = pg_config
+PGXS := $(shell $(PG_CONFIG) --pgxs)
+include $(PGXS)
+
+
+# Generate any .sql.in files from .sql.in.c files by running them through the C pre-processor 
+$(SQL_OBJS): %.in: %.in.c
+       $(CPP) -traditional-cpp $< | grep -v '^#' > $@
+
diff --git a/lwgeom/Makefile.shlib b/lwgeom/Makefile.shlib
deleted file mode 100644 (file)
index f61ba7d..0000000
+++ /dev/null
@@ -1,417 +0,0 @@
-#-------------------------------------------------------------------------
-#
-# Makefile.shlib
-#    Common rules for building shared libraries
-#
-# Copyright (c) 1998, Regents of the University of California
-#
-# IDENTIFICATION
-#    $PostgreSQL: pgsql/src/Makefile.shlib,v 1.90 2004/11/20 21:13:04 tgl Exp $
-#
-#-------------------------------------------------------------------------
-
-# This file should be included by any Postgres module Makefile that
-# wants to build a shared library (if possible for the current
-# platform). A static library is also built from the same object
-# files. Only one library can be built per makefile.
-#
-# Before including this file, the module Makefile must define these
-# variables:
-#
-# NAME                  Name of library to build (no suffix nor "lib" prefix)
-# REL_MAJOR_VERSION      Major version number to use for shared library
-# REL_MINOR_VERSION      Minor version number to use for shared library
-# OBJS                  List of object files to include in library
-# SHLIB_LINK            If shared library relies on other libraries,
-#                       additional stuff to put in its link command
-# (If you want a patchlevel, include it in REL_MINOR_VERSION, e.g., "6.2".)
-#
-# Optional flags when building DLL's (only applicable to win32 and cygwin
-# platforms).
-# DLLTOOL_DEFFLAGS      Additional flags when creating the dll .def file
-# DLLTOOL_LIBFLAGS      Additional flags when creating the lib<module>.a file
-# DLLWRAP_FLAGS         Additional flags to dllwrap
-# DLL_DEFFILE           Use pre-existing .def file instead of auto-generating
-#                       one with all exports in it (win32 only).
-#
-# The module Makefile must also include
-# $(top_builddir)/src/Makefile.global before including this file.
-# (Makefile.global sets PORTNAME and other needed symbols.)
-#
-# This makefile provides the following (phony) targets:
-#
-# all-lib               build the static and shared (if applicable) libraries
-# install-lib           install the libraries into $(libdir)
-# uninstall-lib         remove the libraries from $(libdir)
-# clean-lib             delete the static and shared libraries from the build dir
-#
-# Since `all-lib' is the first rule in this file you probably want to
-# have the `all' target before including this file. In the most simple
-# case it would look like this:
-#
-#     all: all-lib
-#
-# Similarly, the install rule might look like
-#
-#     install: install-lib
-#
-# plus any additional things you want to install. Et cetera.
-#
-# Got that?  Look at src/interfaces/libpq/Makefile for an example.
-#
-# While the linker allows creation of most shared libraries,
-# -Bsymbolic requires resolution of all symbols, making the
-# compiler a better choice for shared library creation on ELF platforms.
-# With the linker, -Bsymbolic requires the crt1.o startup object file.
-# bjm 2001-02-10
-
-
-COMPILER = $(CC) $(CFLAGS)
-LINK.static = $(AR) $(AROPT)
-
-
-
-ifeq ($(enable_shared), yes)
-
-# Default shlib naming convention used by the majority of platforms
-shlib          = lib$(NAME)$(DLSUFFIX).$(REL_MAJOR_VERSION).$(REL_MINOR_VERSION)
-shlib_major    = lib$(NAME)$(DLSUFFIX).$(REL_MAJOR_VERSION)
-shlib_bare     = lib$(NAME)$(DLSUFFIX)
-
-# For each platform we support shared libraries on, set shlib to the
-# name of the library (if default above is not right), set
-# LINK.shared to the command to link the library,
-# and adjust SHLIB_LINK if necessary.
-
-# Try to keep the sections in some kind of order, folks...
-
-override CFLAGS += $(CFLAGS_SL)
-
-soname = lib$(NAME)$(DLSUFFIX).$(REL_MAJOR_VERSION)
-
-ifeq ($(PORTNAME), aix)
-  shlib                        = lib$(NAME)$(DLSUFFIX)
-#   SHLIB_LINK         += -lc
-endif
-
-ifeq ($(PORTNAME), darwin)
-  ifneq ($(REL_MAJOR_VERSION), 0)
-    version_link       := -compatibility_version $(REL_MAJOR_VERSION) -current_version $(REL_MAJOR_VERSION).$(REL_MINOR_VERSION)
-  endif
-  ifeq ($(DLTYPE), library)
-    # linkable library
-    DLSUFFIX           := .dylib
-    LINK.shared                = $(COMPILER) -dynamiclib -install_name $(libdir)/lib$(NAME).$(REL_MAJOR_VERSION)$(DLSUFFIX) $(version_link) -multiply_defined suppress
-  else
-    # loadable module (default case)
-    DLSUFFIX           := .so
-    LINK.shared                = $(COMPILER) -bundle
-  endif
-  shlib                        = lib$(NAME).$(REL_MAJOR_VERSION).$(REL_MINOR_VERSION)$(DLSUFFIX)
-  shlib_major          = lib$(NAME).$(REL_MAJOR_VERSION)$(DLSUFFIX)
-endif
-
-ifeq ($(PORTNAME), openbsd)
-  ifdef ELF_SYSTEM
-    LINK.shared                = $(COMPILER) -shared -Wl,-x,-soname,$(soname)
-    SHLIB_LINK         += -lc
-  else
-    LINK.shared                = $(LD) -x -Bshareable -Bforcearchive
-  endif
-endif
-
-ifeq ($(PORTNAME), bsdi)
-  ifeq ($(DLSUFFIX), .so)
-    LINK.shared                = $(COMPILER) -shared -Wl,-x,-soname,$(soname)
-    SHLIB_LINK         += -lc
-  endif
-  ifeq ($(DLSUFFIX), .o)
-    LINK.shared                = shlicc -O $(LDREL)
-  endif
-endif
-
-ifeq ($(PORTNAME), freebsd)
-  ifdef ELF_SYSTEM
-    shlib              = lib$(NAME)$(DLSUFFIX).$(REL_MAJOR_VERSION)
-    LINK.shared                = $(COMPILER) -shared -Wl,-x,-soname,$(soname)
-  else
-    shlib              = lib$(NAME)$(DLSUFFIX).$(REL_MAJOR_VERSION).$(REL_MINOR_VERSION)
-    LINK.shared                = $(LD) -x -Bshareable -Bforcearchive
-  endif
-endif
-
-ifeq ($(PORTNAME), netbsd)
-  ifdef ELF_SYSTEM
-    LINK.shared                = $(COMPILER) -shared -Wl,-x,-soname,$(soname)
-  else
-    LINK.shared                = $(LD) -x -Bshareable -Bforcearchive
-  endif
-endif
-
-ifeq ($(PORTNAME), hpux)
-  shlib                        = lib$(NAME)$(DLSUFFIX).$(REL_MAJOR_VERSION)
-  ifeq ($(GCC), yes)
-    SHLIB_LINK         += `$(CC) $(LDFLAGS) -print-libgcc-file-name`
-  endif
-  ifeq ($(with_gnu_ld), yes)
-    LINK.shared                = $(CC) $(LDFLAGS) -shared -Wl,-h -Wl,$(soname)
-  else
-    # can't use the CC-syntax rpath pattern here
-    rpath =
-    ifeq ($(enable_rpath), yes)
-      LINK.shared      = $(LD) +h $(soname) -b +b $(rpathdir)
-    else
-      LINK.shared      = $(LD) +h $(soname) -b
-    endif
-  endif
-endif
-
-ifeq ($(PORTNAME), irix)
-  shlib                        = lib$(NAME)$(DLSUFFIX).$(REL_MAJOR_VERSION)
-  LINK.shared          = $(COMPILER) -shared -Wl,-set_version,sgi$(REL_MAJOR_VERSION).$(REL_MINOR_VERSION)
-endif
-
-ifeq ($(PORTNAME), linux)
-  LINK.shared          = $(COMPILER) -shared -Wl,-soname,$(soname)
-endif
-
-ifeq ($(PORTNAME), solaris)
-  ifeq ($(GCC), yes)
-    LINK.shared                = $(CC) -shared
-  else
-    LINK.shared                = $(CC) -G
-  endif
-  ifeq ($(with_gnu_ld), yes)
-    LINK.shared                += -Wl,-soname,$(soname)
-  else
-    LINK.shared                += -h $(soname)
-  endif
-endif
-
-ifeq ($(PORTNAME), sunos4)
-  LINK.shared          = $(LD) -assert pure-text -Bdynamic
-endif
-ifeq ($(PORTNAME), osf)
-  LINK.shared          = $(LD) -shared -expect_unresolved '*'
-endif
-
-ifeq ($(PORTNAME), sco)
-  ifeq ($(GCC), yes)
-    LINK.shared                = $(CC) -shared
-  else
-    LINK.shared                = $(CC) -G
-    endif
-  LINK.shared          += -Wl,-z,text -Wl,-h,$(soname)
-endif
-
-ifeq ($(PORTNAME), svr4)
-  LINK.shared          = $(LD) -G
-endif
-
-ifeq ($(PORTNAME), univel)
-  LINK.shared          = $(LD) -G -z text
-endif
-
-ifeq ($(PORTNAME), unixware)
-  ifeq ($(GCC), yes)
-    LINK.shared                = $(CC) -shared
-  else
-    LINK.shared                = $(CC) -G
-  endif
-  LINK.shared          += -Wl,-z,text -Wl,-h,$(soname) 
-endif
-
-ifeq ($(PORTNAME), cygwin)
-  shlib                        = $(NAME)$(DLSUFFIX)
-  # needed for /contrib modules, not sure why
-  SHLIB_LINK           += $(LIBS)
-  haslibarule   = yes
-endif
-
-ifeq ($(PORTNAME), win32)
-  shlib                        = lib$(NAME)$(DLSUFFIX)
-  haslibarule   = yes
-endif
-
-ifeq ($(PORTNAME), beos)
-  shlib                        = lib$(NAME)$(DLSUFFIX)
-  LINK.shared          = $(LD) -nostart
-  SHLIB_LINK           += -ltermcap -lstdc++.r4 -lbind -lsocket -L/boot/develop/lib/x86
-endif
-
-SHLIB_LINK := $(filter -L%, $(LDFLAGS)) $(SHLIB_LINK)
-ifeq ($(enable_rpath), yes)
-SHLIB_LINK += $(rpath)
-endif
-
-endif # enable_shared
-
-
-
-##
-## BUILD
-##
-
-.PHONY: all-lib all-static-lib all-shared-lib
-
-all-lib: all-static-lib all-shared-lib
-
-all-static-lib: lib$(NAME).a
-
-all-shared-lib: $(shlib)
-
-ifndef LORDER
-MK_NO_LORDER := true
-endif
-
-ifndef haslibarule
-lib$(NAME).a: $(OBJS)
-ifdef MK_NO_LORDER
-       $(LINK.static) $@ $^
-else
-       $(LINK.static) $@ `$(LORDER) $^ | tsort`
-endif
-       $(RANLIB) $@
-endif #haslibarule
-
-ifeq ($(enable_shared), yes)
-
-ifneq ($(PORTNAME), win32)
-ifneq ($(PORTNAME), cygwin)
-ifneq ($(PORTNAME), beos)
-ifneq ($(PORTNAME), aix)
-
-# Normal case
-$(shlib): $(OBJS)
-       $(LINK.shared) $(LDFLAGS_SL) $(OBJS) $(SHLIB_LINK) -o $@
-# If we're using major and minor versions, then make a symlink to major-version-only.
-ifneq ($(shlib), $(shlib_major))
-       rm -f $(shlib_major)
-       $(LN_S) $(shlib) $(shlib_major)
-endif
-# Make sure we have a link to a name without any version numbers
-ifneq ($(shlib), $(shlib_bare))
-       rm -f $(shlib_bare)
-       $(LN_S) $(shlib) $(shlib_bare)
-endif
-
-else # PORTNAME == aix
-
-# AIX case
-$(shlib): lib$(NAME).a
-       $(MKLDEXPORT) lib$(NAME).a > lib$(NAME)$(EXPSUFF)
-       $(COMPILER) $(LDFLAGS_SL) -o $@ $< $(LDFLAGS) $(SHLIB_LINK) -Wl,-bI:$(top_builddir)/src/backend/$(POSTGRES_IMP) -Wl,-bE:lib$(NAME)$(EXPSUFF)
-       
-endif # PORTNAME == aix
-
-else # PORTNAME == beos
-
-# BEOS case
-$(shlib): $(OBJS)
-       ln -fs $(top_srcdir)/src/backend/postgres _APP_
-       $(CC) -Xlinker -soname=$@ $(LDFLAGS_SL) -o $@ _APP_ $(OBJS) $(SHLIB_LINK)
-
-endif # PORTNAME == beos
-
-else # PORTNAME == cygwin
-
-# Cygwin case
-$(shlib) lib$(NAME).a: $(OBJS)
-ifndef DLL_DEFFILE
-       $(DLLTOOL) --export-all $(DLLTOOL_DEFFLAGS) --output-def $(NAME).def $(OBJS)
-       $(DLLWRAP) $(LDFLAGS_SL) -o $(shlib) --dllname $(shlib) $(DLLWRAP_FLAGS) --def $(NAME).def $(OBJS) $(SHLIB_LINK)
-       $(DLLTOOL) --dllname $(shlib) $(DLLTOOL_LIBFLAGS) --def $(NAME).def --output-lib lib$(NAME).a
-else
-       $(DLLWRAP) $(LDFLAGS_SL) -o $(shlib) --dllname $(shlib) $(DLLWRAP_FLAGS) --def $(DLL_DEFFILE) $(OBJS) $(SHLIB_LINK)
-       $(DLLTOOL) --dllname $(shlib) $(DLLTOOL_LIBFLAGS) --def $(DLL_DEFFILE) --output-lib lib$(NAME).a
-endif
-
-endif # PORTNAME == cygwin
-
-else # PORTNAME == win32
-
-# win32 case
-$(shlib) lib$(NAME).a: $(OBJS)
-ifndef DLL_DEFFILE
-       $(DLLTOOL) --export-all $(DLLTOOL_DEFFLAGS) --output-def $(NAME).def $(OBJS)
-       $(DLLWRAP) $(LDFLAGS_SL) -o $(shlib) --dllname $(shlib) $(DLLWRAP_FLAGS) --def $(NAME).def $(OBJS) $(SHLIB_LINK)
-       $(DLLTOOL) --dllname $(shlib) $(DLLTOOL_LIBFLAGS) --def $(NAME).def --output-lib lib$(NAME).a
-else
-       $(DLLWRAP) $(LDFLAGS_SL) -o $(shlib) --dllname $(shlib) $(DLLWRAP_FLAGS) --def $(DLL_DEFFILE) $(OBJS) $(SHLIB_LINK)
-       $(DLLTOOL) --dllname $(shlib) $(DLLTOOL_LIBFLAGS) --def $(DLL_DEFFILE) --output-lib lib$(NAME).a
-endif
-
-endif # PORTNAME == win32
-
-endif # enable_shared
-
-
-##
-## INSTALL
-##
-
-.PHONY: install-lib install-lib-static install-lib-shared
-install-lib: install-lib-static install-lib-shared
-
-install-lib-static: lib$(NAME).a
-       $(INSTALL_STLIB) $< $(DESTDIR)$(libdir)/lib$(NAME).a
-ifeq ($(PORTNAME), darwin)
-       cd $(DESTDIR)$(libdir) && \
-       ranlib lib$(NAME).a
-endif
-
-ifeq ($(enable_shared), yes)
-install-lib-shared: $(shlib)
-       $(INSTALL_SHLIB) $< $(DESTDIR)$(libdir)/$(shlib)
-ifneq ($(PORTNAME), cygwin)
-ifneq ($(PORTNAME), win32)
-ifneq ($(shlib), $(shlib_major))
-       cd $(DESTDIR)$(libdir) && \
-       rm -f $(shlib_major) && \
-       $(LN_S) $(shlib) $(shlib_major)
-endif
-ifneq ($(shlib), $(shlib_bare))
-       cd $(DESTDIR)$(libdir) && \
-       rm -f $(shlib_bare) && \
-       $(LN_S) $(shlib) $(shlib_bare)
-endif
-endif # not win32
-endif # not cygwin
-endif # enable_shared
-
-
-##
-## UNINSTALL
-##
-
-.PHONY: uninstall-lib
-uninstall-lib:
-       rm -f $(DESTDIR)$(libdir)/lib$(NAME).a
-ifeq ($(enable_shared), yes)
-       rm -f $(DESTDIR)$(libdir)/$(shlib_bare) \
-         $(DESTDIR)$(libdir)/$(shlib_major) \
-         $(DESTDIR)$(libdir)/$(shlib)
-endif # enable_shared
-
-
-##
-## CLEAN
-##
-
-.PHONY: clean-lib
-clean-lib:
-       rm -f lib$(NAME).a
-ifeq ($(enable_shared), yes)
-       rm -f $(shlib_bare) $(shlib_major) $(shlib)
-ifdef EXPSUFF
-       rm -f lib$(NAME)$(EXPSUFF)
-endif
-endif
-ifeq ($(PORTNAME), cygwin)
-       rm -f $(NAME).dll $(NAME).def
-endif
-
-ifeq ($(PORTNAME), win32)
-       rm -f $(NAME).dll $(NAME).def
-endif
index ada3658c77316bb2a6e6baaec5a09fa0d08603a0..72c6973d5de6a52344190687a93f41f067266c94 100644 (file)
@@ -15,6 +15,8 @@
 #endif
 
 /* Global variables */
+#include "../postgis_config.h"
+
 #if DEFAULT_CONTEXT == CONTEXT_SA
 #include "liblwgeom.h"
 lwallocator lwalloc_var = default_allocator;
index 06c8a1135fd368a8b10724dc01dc836029515230..8d2b495aa42efd017c334e6645fcfe5d1e1d9043 100644 (file)
@@ -34,8 +34,10 @@ typedef void (*lwfreeor)(void* mem);
 typedef void (*lwreporter)(const char* fmt, ...);
 
 #ifndef C_H
+
 typedef unsigned int uint32;
 typedef int int32;
+
 #endif
 
 /*
index a6df7fde8bbd95844ce417e28dbba3a805db5f0a..e0b3f7eae0ab24301ccabc518b95027ece0a744f 100644 (file)
@@ -211,12 +211,12 @@ CREATEFUNCTION CheckAuth(text, text)
 
 CREATEFUNCTION CheckAuthTrigger()
        RETURNS trigger AS 
-       '@MODULE_FILENAME@', 'check_authorization'
+       'MODULE_PATHNAME', 'check_authorization'
        LANGUAGE C;
 
 CREATEFUNCTION GetTransactionID()
        RETURNS xid AS 
-       '@MODULE_FILENAME@', 'getTransactionID'
+       'MODULE_PATHNAME', 'getTransactionID'
        LANGUAGE C;
 
 
index 4fb6713e167a36d8256eb4b00591165e9ea77fce..33ef62cd613d6dfe0463394f65429280e5ab7200 100644 (file)
@@ -29,10 +29,10 @@ Datum lwgeom_cmp(PG_FUNCTION_ARGS);
 
 /* #define PGIS_DEBUG */
 
-#if USE_VERSION == 72
+#if POSTGIS_PGSQL_VERSION == 72
 #define BTREE_SRID_MISMATCH_SEVERITY NOTICE
 #else
-#if USE_VERSION < 80
+#if POSTGIS_PGSQL_VERSION < 80
 #define BTREE_SRID_MISMATCH_SEVERITY WARNING
 #else
 #define BTREE_SRID_MISMATCH_SEVERITY ERROR
index b4a0d673daab9a0bb95e1a1066e84d67b57261d6..c27d18795dcfac32766ac83a881d9361a10cc81b 100644 (file)
@@ -1,7 +1,9 @@
+#include "../postgis_config.h"
+
 /*
  * This only works for PGSQL > 72 
  */
-#if USE_VERSION > 72
+#if POSTGIS_PGSQL_VERSION > 72
 
 #include <math.h>
 #include <float.h>
@@ -307,4 +309,4 @@ Datum LWGEOM_dump_rings(PG_FUNCTION_ARGS)
 }
 
 
-#endif /* USE_VERSION > 72 */
+#endif /* POSTGIS_PGSQL_VERSION > 72 */
index 25de3f0148275dbf089901fa54701179e01a9e49..9aa2f298417ab3e02c6d546410615658f600a994 100644 (file)
@@ -29,7 +29,7 @@
 /*#define DEBUG_GEOMETRY_STATS 1*/
 
 
-#if USE_VERSION >= 80
+#if POSTGIS_PGSQL_VERSION >= 80
 
 #include "commands/vacuum.h"
 #include "utils/lsyscache.h"
@@ -82,7 +82,7 @@ typedef struct GEOM_STATS_T
 
 static float8 estimate_selectivity(BOX2DFLOAT4 *box, GEOM_STATS *geomstats);
 
-#endif /* USE_VERSION >= 80 */
+#endif /* POSTGIS_PGSQL_VERSION >= 80 */
 
 #define SHOW_DIGS_DOUBLE 15
 #define MAX_DIGS_DOUBLE (SHOW_DIGS_DOUBLE + 6 + 1 + 3 +1)
@@ -136,7 +136,7 @@ Datum estimate_lwhistogram2d(PG_FUNCTION_ARGS);
 Datum LWGEOM_gist_sel(PG_FUNCTION_ARGS);
 Datum LWGEOM_gist_joinsel(PG_FUNCTION_ARGS);
 Datum LWGEOM_estimated_extent(PG_FUNCTION_ARGS);
-#if USE_VERSION >= 80
+#if POSTGIS_PGSQL_VERSION >= 80
 Datum LWGEOM_analyze(PG_FUNCTION_ARGS);
 #endif
 
@@ -405,7 +405,7 @@ Datum build_lwhistogram2d(PG_FUNCTION_ARGS)
                PG_RETURN_NULL() ;
        }
 
-#if USE_VERSION >= 80
+#if POSTGIS_PGSQL_VERSION >= 80
        SPIportal = SPI_cursor_open(NULL, SPIplan, NULL, NULL, 1);
 #else
        SPIportal = SPI_cursor_open(NULL, SPIplan, NULL, NULL);
@@ -765,7 +765,7 @@ elog(NOTICE," search is in x: %i to %i   y: %i to %i",x_idx_min, x_idx_max, y_id
 }
 
 
-#if ! REALLY_DO_JOINSEL || USE_VERSION < 80
+#if ! REALLY_DO_JOINSEL || POSTGIS_PGSQL_VERSION < 80
 /*
  * JOIN selectivity in the GiST && operator
  * for all PG versions
@@ -780,7 +780,7 @@ Datum LWGEOM_gist_joinsel(PG_FUNCTION_ARGS)
        PG_RETURN_FLOAT8(DEFAULT_GEOMETRY_JOINSEL);
 }
 
-#else /* REALLY_DO_JOINSEL && USE_VERSION >= 80 */
+#else /* REALLY_DO_JOINSEL && POSTGIS_PGSQL_VERSION >= 80 */
 
 int calculate_column_intersection(BOX2DFLOAT4 *search_box, GEOM_STATS *geomstats1, GEOM_STATS *geomstats2);
 
@@ -817,7 +817,7 @@ calculate_column_intersection(BOX2DFLOAT4 *search_box, GEOM_STATS *geomstats1, G
 PG_FUNCTION_INFO_V1(LWGEOM_gist_joinsel);
 Datum LWGEOM_gist_joinsel(PG_FUNCTION_ARGS)
 {
-#if USE_VERSION < 81
+#if POSTGIS_PGSQL_VERSION < 81
        Query *root = (Query *) PG_GETARG_POINTER(0);
 #else
        PlannerInfo *root = (PlannerInfo *) PG_GETARG_POINTER(0);
@@ -881,7 +881,7 @@ Datum LWGEOM_gist_joinsel(PG_FUNCTION_ARGS)
 
        var1 = (Var *)arg1;
        var2 = (Var *)arg2;
-#if USE_VERSION < 81
+#if POSTGIS_PGSQL_VERSION < 81
        relid1 = getrelid(var1->varno, root->rtable);
        relid2 = getrelid(var2->varno, root->rtable);
 #else
@@ -1052,7 +1052,7 @@ Datum LWGEOM_gist_joinsel(PG_FUNCTION_ARGS)
 /**************************** FROM POSTGIS ****************/
 
 
-#if USE_VERSION < 80
+#if POSTGIS_PGSQL_VERSION < 80
 /*
  * get_restriction_var
  *             Examine the args of a restriction clause to see if it's of the
@@ -1139,7 +1139,7 @@ Datum LWGEOM_gist_sel(PG_FUNCTION_ARGS)
 
        double myest;
 
-#ifndef USE_STATS
+#ifndef POSTGIS_USE_STATS
        PG_RETURN_FLOAT8(DEFAULT_GEOMETRY_SEL);
 #endif
 
@@ -1432,7 +1432,7 @@ Datum LWGEOM_estimated_extent(PG_FUNCTION_ARGS)
        PG_RETURN_POINTER(box);
 }
 
-#else /* USE_VERSION >= 80 */
+#else /* POSTGIS_PGSQL_VERSION >= 80 */
 
 /*
  * This function returns an estimate of the selectivity
@@ -1693,7 +1693,7 @@ elog(NOTICE, " avg feat overlaps %f cells", avg_feat_cells);
 PG_FUNCTION_INFO_V1(LWGEOM_gist_sel);
 Datum LWGEOM_gist_sel(PG_FUNCTION_ARGS)
 {
-#if USE_VERSION < 81
+#if POSTGIS_PGSQL_VERSION < 81
        Query *root = (Query *) PG_GETARG_POINTER(0);
 #else
        PlannerInfo *root = (PlannerInfo *) PG_GETARG_POINTER(0);
@@ -1788,7 +1788,7 @@ Datum LWGEOM_gist_sel(PG_FUNCTION_ARGS)
         * Get pg_statistic row
         */
 
-#if USE_VERSION < 81
+#if POSTGIS_PGSQL_VERSION < 81
 /*     relid = getrelid(varRelid, root->rtable); */
        relid = getrelid(self->varno, root->rtable);
 #else
@@ -2626,7 +2626,7 @@ Datum LWGEOM_estimated_extent(PG_FUNCTION_ARGS)
 }
        
 
-#endif /* USE_VERSION >= 80 */
+#endif /* POSTGIS_PGSQL_VERSION >= 80 */
 
 
 /**********************************************************************
index cf660ef6636bf03a2ea233c08d2a14a5e24a02f0..a356a37b40ab19108fd84f1ad48a9fafd711dca4 100644 (file)
@@ -180,7 +180,7 @@ Datum postgis_uses_stats(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(postgis_autocache_bbox);
 Datum postgis_autocache_bbox(PG_FUNCTION_ARGS)
 {
-#ifdef AUTOCACHE_BBOX
+#ifdef POSTGIS_AUTOCACHE_BBOX
        PG_RETURN_BOOL(TRUE);
 #else
        PG_RETURN_BOOL(FALSE);
@@ -1858,13 +1858,13 @@ Datum LWGEOM_accum(PG_FUNCTION_ARGS)
        Datum datum;
        PG_LWGEOM *geom;
        ArrayType *result;
-#if USE_VERSION > 72
-# if USE_VERSION == 73
+#if POSTGIS_PGSQL_VERSION > 72
+# if POSTGIS_PGSQL_VERSION == 73
        Oid oid = getGeometryOID();
-# else  /* USE_VERSION > 73 */
+# else  /* POSTGIS_PGSQL_VERSION > 73 */
        Oid oid = get_fn_expr_argtype(fcinfo->flinfo, 1);
-# endif /* USE_VERSION > 73 */
-#endif /* USE_VERSION > 72 */
+# endif /* POSTGIS_PGSQL_VERSION > 73 */
+#endif /* POSTGIS_PGSQL_VERSION > 72 */
 
 
 #ifdef PGIS_DEBUG
@@ -1926,10 +1926,10 @@ Datum LWGEOM_accum(PG_FUNCTION_ARGS)
                SET_VARSIZE(result, nbytes);
                result->ndim = 1;
 
-#if USE_VERSION > 72
+#if POSTGIS_PGSQL_VERSION > 72
                result->elemtype = oid;
 #endif
-#if USE_VERSION > 81
+#if POSTGIS_PGSQL_VERSION > 81
                result->dataoffset = 0;
 #endif
                memcpy(ARR_DIMS(result), &nelems, sizeof(int));
index 440b4e00940bd2614895ee24ff89674781b141a1..9c2f374021042bca926ba071816e860368e7cf81 100644 (file)
@@ -1,9 +1,10 @@
+#include "../postgis_config.h"
+
 #include "postgres.h"
 #include "utils/array.h"
 #include "utils/builtins.h"
 #include "fmgr.h"
 
-
 #include "lwgeom_pg.h"
 #include "liblwgeom.h"
 #include "profile.h"
@@ -752,7 +753,7 @@ Datum convexhull(PG_FUNCTION_ARGS)
 
 }
 
-#if GEOS_VERNUM >= 30 
+#if POSTGIS_GEOS_VERSION >= 30 
 
 PG_FUNCTION_INFO_V1(topologypreservesimplify);
 Datum topologypreservesimplify(PG_FUNCTION_ARGS)
index c32d016e55e4e96fc93574ba81ccd2cb060bf057..7397ee6cf703a70dc1639be62b6db9699b80f4e4 100644 (file)
@@ -4,16 +4,19 @@
 #include <stdio.h>
 #include <errno.h>
 
+#include "../postgis_config.h"
+
 #include "postgres.h"
 #include "access/gist.h"
 #include "access/itup.h"
-#if USE_VERSION > 80
+#if POSTGIS_PGSQL_VERSION > 80
 #include "access/skey.h"
 #endif
 #include "fmgr.h"
 #include "utils/elog.h"
 
 #include "liblwgeom.h"
+
 #include "lwgeom_pg.h"
 #include "stringBuffer.h"
 
@@ -542,7 +545,7 @@ Datum LWGEOM_gist_compress(PG_FUNCTION_ARGS)
                        if (in != (PG_LWGEOM*)DatumGetPointer(entry->key))
                                pfree(in);  /* PG_FREE_IF_COPY */
 
-#if USE_VERSION >= 82
+#if POSTGIS_PGSQL_VERSION >= 82
                        gistentryinit(*retval, PointerGetDatum(rr),
                                entry->rel, entry->page,
                                entry->offset,
@@ -562,7 +565,7 @@ Datum LWGEOM_gist_compress(PG_FUNCTION_ARGS)
                elog(NOTICE,"GIST: LWGEOM_gist_compress got a NULL key");
 #endif
 
-#if USE_VERSION >= 82
+#if POSTGIS_PGSQL_VERSION >= 82
                        gistentryinit(*retval, (Datum) 0, entry->rel,
                                entry->page, entry->offset, FALSE);
 #else
@@ -807,7 +810,7 @@ Datum LWGEOM_gist_decompress(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_gist_union);
 Datum LWGEOM_gist_union(PG_FUNCTION_ARGS)
 {
-#if USE_VERSION < 80
+#if POSTGIS_PGSQL_VERSION < 80
        bytea *entryvec = (bytea *) PG_GETARG_POINTER(0);
 #else
        GistEntryVector *entryvec = (GistEntryVector *) PG_GETARG_POINTER(0);
@@ -822,7 +825,7 @@ Datum LWGEOM_gist_union(PG_FUNCTION_ARGS)
        elog(NOTICE,"GIST: LWGEOM_gist_union called\n");
 #endif
 
-#if USE_VERSION < 80
+#if POSTGIS_PGSQL_VERSION < 80
        numranges = (VARSIZE(entryvec) - VARHDRSZ) / sizeof(GISTENTRY);
        cur = (BOX2DFLOAT4 *) DatumGetPointer(((GISTENTRY *) VARDATA(entryvec))[0].key);
 #else
@@ -837,7 +840,7 @@ Datum LWGEOM_gist_union(PG_FUNCTION_ARGS)
 
        for (i = 1; i < numranges; i++)
        {
-#if USE_VERSION < 80
+#if POSTGIS_PGSQL_VERSION < 80
                cur = (BOX2DFLOAT4*) DatumGetPointer(((GISTENTRY *) VARDATA(entryvec))[i].key);
 #else
                cur = (BOX2DFLOAT4*) DatumGetPointer(entryvec->vector[i].key);
@@ -1030,7 +1033,7 @@ Datum LWGEOM_gist_same(PG_FUNCTION_ARGS)
 PG_FUNCTION_INFO_V1(LWGEOM_gist_picksplit);
 Datum LWGEOM_gist_picksplit(PG_FUNCTION_ARGS)
 {
-#if USE_VERSION < 80
+#if POSTGIS_PGSQL_VERSION < 80
        bytea *entryvec = (bytea *) PG_GETARG_POINTER(0);
 #else
        GistEntryVector *entryvec = (GistEntryVector *) PG_GETARG_POINTER(0);
@@ -1053,7 +1056,7 @@ Datum LWGEOM_gist_picksplit(PG_FUNCTION_ARGS)
 
        posL = posR = posB = posT = 0;
 
-#if USE_VERSION < 80
+#if POSTGIS_PGSQL_VERSION < 80
        maxoff = ((VARSIZE(entryvec) - VARHDRSZ) / sizeof(GISTENTRY)) - 1;
        cur = (BOX2DFLOAT4*) DatumGetPointer(((GISTENTRY *) VARDATA(entryvec))[FirstOffsetNumber].key);
 #else
@@ -1071,7 +1074,7 @@ elog(NOTICE,"   cur is: <%.16g %.16g,%.16g %.16g>", cur->xmin, cur->ymin, cur->x
        /* find MBR */
        for (i = OffsetNumberNext(FirstOffsetNumber); i <= maxoff; i = OffsetNumberNext(i))
        {
-#if USE_VERSION < 80
+#if POSTGIS_PGSQL_VERSION < 80
                cur = (BOX2DFLOAT4*) DatumGetPointer(((GISTENTRY *) VARDATA(entryvec))[i].key);
 #else
                cur = (BOX2DFLOAT4 *) DatumGetPointer(entryvec->vector[i].key);
@@ -1111,7 +1114,7 @@ elog(NOTICE,"   pageunion is: <%.16g %.16g,%.16g %.16g>", pageunion.xmin, pageun
 #ifdef PGIS_DEBUG_GIST6
 elog(NOTICE," AllIsEqual!");
 #endif
-#if USE_VERSION < 80
+#if POSTGIS_PGSQL_VERSION < 80
                cur = (BOX2DFLOAT4*) DatumGetPointer(((GISTENTRY *) VARDATA(entryvec))[OffsetNumberNext(FirstOffsetNumber)].key);
 #else
                cur = (BOX2DFLOAT4*) DatumGetPointer(entryvec->vector[OffsetNumberNext(FirstOffsetNumber)].key);
@@ -1167,7 +1170,7 @@ elog(NOTICE," AllIsEqual!");
 
        for (i = FirstOffsetNumber; i <= maxoff; i = OffsetNumberNext(i))
        {
-#if USE_VERSION < 80
+#if POSTGIS_PGSQL_VERSION < 80
                cur = (BOX2DFLOAT4*) DatumGetPointer(((GISTENTRY *) VARDATA(entryvec))[i].key);
 #else
                cur = (BOX2DFLOAT4*) DatumGetPointer(entryvec->vector[i].key);
@@ -1196,7 +1199,7 @@ elog(NOTICE,"   unionB is: <%.16g %.16g,%.16g %.16g>", unionB->xmin, unionB->ymi
                KBsort *arr = (KBsort*)palloc( sizeof(KBsort) * maxoff );
                posL = posR = posB = posT = 0;
                for (i = FirstOffsetNumber; i <= maxoff; i = OffsetNumberNext(i)) {
-#if USE_VERSION < 80
+#if POSTGIS_PGSQL_VERSION < 80
                        arr[i-1].key = (BOX2DFLOAT4*) DatumGetPointer(((GISTENTRY *) VARDATA(entryvec))[i].key);
 #else
                        arr[i-1].key = (BOX2DFLOAT4*) DatumGetPointer(entryvec->vector[i].key);
index 8294d94ee5d0b0f5769392dcf178a79e5f661461..36a613d346c3fd6c59c18089208ec6fa06bb0916 100644 (file)
@@ -1,3 +1,5 @@
+#include "../postgis_config.h"
+
 #include "postgres.h"
 
 #include <math.h>
@@ -13,7 +15,7 @@
 
 #include "fmgr.h"
 #include "utils/elog.h"
-#if USE_VERSION > 73
+#if POSTGIS_PGSQL_VERSION > 73
 # include "lib/stringinfo.h" /* for binary input */
 #endif
 
@@ -37,7 +39,7 @@ Datum LWGEOM_to_text(PG_FUNCTION_ARGS);
 Datum LWGEOM_to_bytea(PG_FUNCTION_ARGS);
 Datum LWGEOM_from_bytea(PG_FUNCTION_ARGS);
 Datum parse_WKT_lwgeom(PG_FUNCTION_ARGS);
-#if USE_VERSION > 73
+#if POSTGIS_PGSQL_VERSION > 73
 Datum LWGEOM_recv(PG_FUNCTION_ARGS);
 Datum LWGEOM_send(PG_FUNCTION_ARGS);
 #endif
@@ -404,7 +406,7 @@ Datum LWGEOM_addBBOX(PG_FUNCTION_ARGS)
 char
 is_worth_caching_pglwgeom_bbox(const PG_LWGEOM *in)
 {
-#if ! AUTOCACHE_BBOX
+#if ! POSTGIS_AUTOCACHE_BBOX
        return false;
 #endif
        if ( TYPE_GETTYPE(in->type) == POINTTYPE ) return false;
@@ -414,7 +416,7 @@ is_worth_caching_pglwgeom_bbox(const PG_LWGEOM *in)
 char
 is_worth_caching_serialized_bbox(const uchar *in)
 {
-#if ! AUTOCACHE_BBOX
+#if ! POSTGIS_AUTOCACHE_BBOX
        return false;
 #endif
        if ( TYPE_GETTYPE((uchar)in[0]) == POINTTYPE ) return false;
@@ -424,7 +426,7 @@ is_worth_caching_serialized_bbox(const uchar *in)
 char
 is_worth_caching_lwgeom_bbox(const LWGEOM *in)
 {
-#if ! AUTOCACHE_BBOX
+#if ! POSTGIS_AUTOCACHE_BBOX
        return false;
 #endif
        if ( TYPE_GETTYPE(in->type) == POINTTYPE ) return false;
@@ -537,7 +539,7 @@ Datum parse_WKT_lwgeom(PG_FUNCTION_ARGS)
 }
 
 
-#if USE_VERSION > 73
+#if POSTGIS_PGSQL_VERSION > 73
 /*
  * This function must advance the StringInfo.cursor pointer
  * and leave it at the end of StringInfo.buf. If it fails
@@ -604,7 +606,7 @@ Datum LWGEOM_send(PG_FUNCTION_ARGS)
 }
 
 
-#endif /* USE_VERSION > 73 */
+#endif /* POSTGIS_PGSQL_VERSION > 73 */
 
 PG_FUNCTION_INFO_V1(LWGEOM_to_bytea);
 Datum LWGEOM_to_bytea(PG_FUNCTION_ARGS)
index 67cd6b0fc32cfc523f8df1f14691ad51f6bb525e..57ab589766f252f25bdf3c1a61a2147f8461d1ea 100644 (file)
@@ -1,3 +1,5 @@
+#include "../postgis_config.h"
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <stdarg.h>
@@ -114,7 +116,7 @@ pglwgeom_serialize(LWGEOM *in)
        size_t size;
        PG_LWGEOM *result;
 
-#if AUTOCACHE_BBOX
+#if POSTGIS_AUTOCACHE_BBOX
        if ( ! in->bbox && is_worth_caching_lwgeom_bbox(in) )
        {
                lwgeom_addBBOX(in);
index 51bc58db32f940eb1039c0eacbf4652947e179eb..43237b1497bccc59a604215f3afd7d1b2b8d6bea 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef _LWGEOM_PG_H
 #define _LWGEOM_PG_H 1
 
+#include "../postgis_config.h"
 #include "postgres.h"
 #include "utils/geo_decls.h"
 #include "fmgr.h"
@@ -11,7 +12,7 @@
 #define PG_NARGS() (fcinfo->nargs)
 #endif
 
-#if USE_VERSION < 82 
+#if POSTGIS_PGSQL_VERSION < 82 
 #define ARR_OVERHEAD_NONULLS(x) ARR_OVERHEAD((x))
 #endif
 
index 7c966b8a10c9ab9160a709e82893b79dbb283383..dd4654cf0f7812a321f20d3b74d37eeebccb7f19 100644 (file)
@@ -28,8 +28,8 @@ Datum transform(PG_FUNCTION_ARGS);
 Datum transform_geom(PG_FUNCTION_ARGS);
 Datum postgis_proj_version(PG_FUNCTION_ARGS);
 
-/* if USE_PROJECTION undefined, we get a do-nothing transform() function */
-#ifndef USE_PROJ
+/* if POSTGIS_PROJ_VERSION undefined, we get a do-nothing transform() function */
+#ifndef POSTGIS_PROJ_VERSION 
 
 PG_FUNCTION_INFO_V1(transform);
 Datum transform(PG_FUNCTION_ARGS)
@@ -53,7 +53,7 @@ Datum postgis_proj_version(PG_FUNCTION_ARGS)
        PG_RETURN_NULL();
 }
 
-#else /* defined USE_PROJ  */
+#else /* defined POSTGIS_PROJ_VERSION  */
 
 #include "projects.h"
 #include "utils/memutils.h"
@@ -122,13 +122,13 @@ typedef struct struct_PJHashEntry
 
 
 /* PJ Hash API */
-#if USE_VERSION == 72
+#if POSTGIS_PGSQL_VERSION == 72
 long mcxt_ptr_hash(void *key, int keysize);
 #endif
-#if USE_VERSION == 73
+#if POSTGIS_PGSQL_VERSION == 73
 uint32 mcxt_ptr_hash(void *key, int keysize);
 #endif
-#if USE_VERSION > 73
+#if POSTGIS_PGSQL_VERSION > 73
 uint32 mcxt_ptr_hash(const void *key, Size keysize);
 #endif
 
@@ -159,7 +159,7 @@ static void PROJ4SRSCacheCheck(MemoryContext context);
 
 
 /* Memory context definition must match the current version of PostgreSQL */
-#if USE_VERSION == 72
+#if POSTGIS_PGSQL_VERSION == 72
 static MemoryContextMethods PROJ4SRSCacheContextMethods = {
        NULL,
        NULL,
@@ -174,7 +174,7 @@ static MemoryContextMethods PROJ4SRSCacheContextMethods = {
 };
 #endif
 
-#if USE_VERSION == 73 || USE_VERSION == 74
+#if POSTGIS_PGSQL_VERSION == 73 || POSTGIS_PGSQL_VERSION == 74
 static MemoryContextMethods PROJ4SRSCacheContextMethods = {
        NULL,
        NULL,
@@ -190,7 +190,7 @@ static MemoryContextMethods PROJ4SRSCacheContextMethods = {
 };
 #endif
  
-#if USE_VERSION >= 80
+#if POSTGIS_PGSQL_VERSION >= 80
 static MemoryContextMethods PROJ4SRSCacheContextMethods = {
        NULL,
        NULL,
@@ -291,13 +291,13 @@ PROJ4SRSCacheCheck(MemoryContext context)
  * has changed over the years....
  */
 
-#if USE_VERSION == 72
+#if POSTGIS_PGSQL_VERSION == 72
 long mcxt_ptr_hash(void *key, int keysize)
 #endif
-#if USE_VERSION == 73
+#if POSTGIS_PGSQL_VERSION == 73
 uint32 mcxt_ptr_hash(void *key, int keysize)
 #endif
-#if USE_VERSION > 73
+#if POSTGIS_PGSQL_VERSION > 73
 uint32 mcxt_ptr_hash(const void *key, Size keysize)
 #endif
 {
@@ -582,7 +582,7 @@ void DeleteFromPROJ4SRSCache(PROJ4PortalCache *PROJ4Cache, int srid)
  */
 void SetPROJ4LibPath()
 {
-#if USE_VERSION >= 80
+#if POSTGIS_PGSQL_VERSION >= 80
        char *path;
        const char **proj_lib_path;
 
similarity index 88%
rename from lwgeom/lwpostgis.sql.in
rename to lwgeom/lwpostgis.sql.in.c
index 9ace8d05f68f08d8cef032c3806a59b2f188ee56..6ecaea6b7abaeca66a6e02dc1ffea1400dfb6589 100644 (file)
@@ -1,6 +1,6 @@
 -- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 -- 
--- $Id$
+-- $Id: lwpostgis.sql.in 2772 2008-04-24 01:04:52Z pramsey $
 --
 -- PostGIS - Spatial Types for PostgreSQL
 -- http://postgis.refractions.net
@@ -27,7 +27,7 @@ BEGIN;
 --  HISTOGRAM2D TYPE (lwhistogram2d)
 -------------------------------------------------------------------
 
-#if USE_VERSION < 73
+#if POSTGIS_PGSQL_VERSION < 73
 # define HISTOGRAM_IN_REP opaque
 # define HISTOGRAM_OUT_REP opaque
 #else
@@ -38,25 +38,25 @@ BEGIN;
 -- Deprecation in 1.2.3
 CREATEFUNCTION histogram2d_in(HISTOGRAM_OUT_REP)
        RETURNS HISTOGRAM_IN_REP
-       AS '@MODULE_FILENAME@', 'lwhistogram2d_in'
+       AS 'MODULE_PATHNAME', 'lwhistogram2d_in'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_histogram2d_in(HISTOGRAM_OUT_REP)
        RETURNS HISTOGRAM_IN_REP
-       AS '@MODULE_FILENAME@', 'lwhistogram2d_in'
+       AS 'MODULE_PATHNAME', 'lwhistogram2d_in'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION histogram2d_out(HISTOGRAM_IN_REP)
        RETURNS HISTOGRAM_OUT_REP
-       AS '@MODULE_FILENAME@', 'lwhistogram2d_out'
+       AS 'MODULE_PATHNAME', 'lwhistogram2d_out'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_histogram2d_out(HISTOGRAM_IN_REP)
        RETURNS HISTOGRAM_OUT_REP
-       AS '@MODULE_FILENAME@', 'lwhistogram2d_out'
+       AS 'MODULE_PATHNAME', 'lwhistogram2d_out'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 CREATE TYPE histogram2d (
@@ -71,7 +71,7 @@ CREATE TYPE histogram2d (
 --  SPHEROID TYPE
 -------------------------------------------------------------------
 
-#if USE_VERSION < 73
+#if POSTGIS_PGSQL_VERSION < 73
 # define SPHEROID_IN_REP opaque
 # define SPHEROID_OUT_REP opaque
 #else
@@ -82,25 +82,25 @@ CREATE TYPE histogram2d (
 -- Deprecation in 1.2.3
 CREATEFUNCTION spheroid_in(SPHEROID_OUT_REP)
        RETURNS SPHEROID_IN_REP
-       AS '@MODULE_FILENAME@','ellipsoid_in'
+       AS 'MODULE_PATHNAME','ellipsoid_in'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_spheroid_in(SPHEROID_OUT_REP)
        RETURNS SPHEROID_IN_REP
-       AS '@MODULE_FILENAME@','ellipsoid_in'
+       AS 'MODULE_PATHNAME','ellipsoid_in'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION spheroid_out(SPHEROID_IN_REP)
        RETURNS SPHEROID_OUT_REP
-       AS '@MODULE_FILENAME@','ellipsoid_out'
+       AS 'MODULE_PATHNAME','ellipsoid_out'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_spheroid_out(SPHEROID_IN_REP)
        RETURNS SPHEROID_OUT_REP
-       AS '@MODULE_FILENAME@','ellipsoid_out'
+       AS 'MODULE_PATHNAME','ellipsoid_out'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 CREATE TYPE spheroid (
@@ -114,7 +114,7 @@ CREATE TYPE spheroid (
 --  GEOMETRY TYPE (lwgeom)
 -------------------------------------------------------------------
 
-#if USE_VERSION < 73
+#if POSTGIS_PGSQL_VERSION < 73
 # define GEOMETRY_IN_REP opaque
 # define GEOMETRY_OUT_REP opaque
 #else
@@ -125,64 +125,64 @@ CREATE TYPE spheroid (
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_in(GEOMETRY_OUT_REP)
         RETURNS geometry
-        AS '@MODULE_FILENAME@','LWGEOM_in'
+        AS 'MODULE_PATHNAME','LWGEOM_in'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_in(GEOMETRY_OUT_REP)
         RETURNS geometry
-        AS '@MODULE_FILENAME@','LWGEOM_in'
+        AS 'MODULE_PATHNAME','LWGEOM_in'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_out(GEOMETRY_IN_REP)
         RETURNS cstring
-        AS '@MODULE_FILENAME@','LWGEOM_out'
+        AS 'MODULE_PATHNAME','LWGEOM_out'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_out(GEOMETRY_IN_REP)
         RETURNS cstring
-        AS '@MODULE_FILENAME@','LWGEOM_out'
+        AS 'MODULE_PATHNAME','LWGEOM_out'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
-#if USE_VERSION >= 80
+#if POSTGIS_PGSQL_VERSION >= 80
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_analyze(internal)
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_analyze'
+       AS 'MODULE_PATHNAME', 'LWGEOM_analyze'
        LANGUAGE 'C' _VOLATILE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_analyze(internal)
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_analyze'
+       AS 'MODULE_PATHNAME', 'LWGEOM_analyze'
        LANGUAGE 'C' _VOLATILE_STRICT; -- WITH (isstrict);
 #endif
 
-#if USE_VERSION > 73
+#if POSTGIS_PGSQL_VERSION > 73
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_recv(internal)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOM_recv'
+       AS 'MODULE_PATHNAME','LWGEOM_recv'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_recv(internal)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOM_recv'
+       AS 'MODULE_PATHNAME','LWGEOM_recv'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_send(geometry)
        RETURNS bytea
-       AS '@MODULE_FILENAME@','LWGEOM_send'
+       AS 'MODULE_PATHNAME','LWGEOM_send'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_send(geometry)
        RETURNS bytea
-       AS '@MODULE_FILENAME@','LWGEOM_send'
+       AS 'MODULE_PATHNAME','LWGEOM_send'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 #endif
 
@@ -190,12 +190,12 @@ CREATE TYPE geometry (
         internallength = variable,
         input = ST_geometry_in,
         output = ST_geometry_out,
-#if USE_VERSION > 73
+#if POSTGIS_PGSQL_VERSION > 73
        send = ST_geometry_send,
        receive = ST_geometry_recv,
 #endif
        delimiter = ':',
-#if USE_VERSION >= 80
+#if POSTGIS_PGSQL_VERSION >= 80
        analyze = ST_geometry_analyze,
 #endif 
         storage = main
@@ -209,13 +209,13 @@ CREATE TYPE geometry (
 -- Deprecation in 1.2.3
 CREATE OR REPLACE FUNCTION Affine(geometry,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_affine'
+       AS 'MODULE_PATHNAME', 'LWGEOM_affine'
        LANGUAGE 'C' _IMMUTABLE_STRICT; 
 
 -- Availability: 1.2.2
 CREATE OR REPLACE FUNCTION ST_Affine(geometry,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8,float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_affine'
+       AS 'MODULE_PATHNAME', 'LWGEOM_affine'
        LANGUAGE 'C' _IMMUTABLE_STRICT; 
 
 -- Availability: 1.1.2
@@ -352,20 +352,20 @@ CREATEFUNCTION ST_transscale(geometry,float8,float8,float8,float8)
 -- Deprecation in 1.2.3
 CREATEFUNCTION shift_longitude(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_longitude_shift'
+       AS 'MODULE_PATHNAME', 'LWGEOM_longitude_shift'
        LANGUAGE 'C' _IMMUTABLE_STRICT; 
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_shift_longitude(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_longitude_shift'
+       AS 'MODULE_PATHNAME', 'LWGEOM_longitude_shift'
        LANGUAGE 'C' _IMMUTABLE_STRICT; 
 
 -------------------------------------------------------------------
 --  BOX3D TYPE
 -------------------------------------------------------------------
 
-#if USE_VERSION < 73
+#if POSTGIS_PGSQL_VERSION < 73
 # define BOX3D_IN_REP opaque
 # define BOX3D_OUT_REP opaque
 #else
@@ -376,25 +376,25 @@ CREATEFUNCTION ST_shift_longitude(geometry)
 -- Deprecation in 1.2.3
 CREATEFUNCTION box3d_in(BOX3D_OUT_REP)
        RETURNS BOX3D_IN_REP
-       AS '@MODULE_FILENAME@', 'BOX3D_in'
+       AS 'MODULE_PATHNAME', 'BOX3D_in'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION box3d_out(BOX3D_IN_REP)
        RETURNS BOX3D_OUT_REP
-       AS '@MODULE_FILENAME@', 'BOX3D_out'
+       AS 'MODULE_PATHNAME', 'BOX3D_out'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box3d_in(BOX3D_OUT_REP)
        RETURNS BOX3D_IN_REP
-       AS '@MODULE_FILENAME@', 'BOX3D_in'
+       AS 'MODULE_PATHNAME', 'BOX3D_in'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box3d_out(BOX3D_IN_REP)
        RETURNS BOX3D_OUT_REP
-       AS '@MODULE_FILENAME@', 'BOX3D_out'
+       AS 'MODULE_PATHNAME', 'BOX3D_out'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 CREATE TYPE box3d (
@@ -407,80 +407,80 @@ CREATE TYPE box3d (
 -- Deprecation in 1.2.3
 CREATEFUNCTION xmin(box3d)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','BOX3D_xmin'
+       AS 'MODULE_PATHNAME','BOX3D_xmin'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_XMin(box3d)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','BOX3D_xmin'
+       AS 'MODULE_PATHNAME','BOX3D_xmin'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION ymin(box3d)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','BOX3D_ymin'
+       AS 'MODULE_PATHNAME','BOX3D_ymin'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_YMin(box3d)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','BOX3D_ymin'
+       AS 'MODULE_PATHNAME','BOX3D_ymin'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION zmin(box3d)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','BOX3D_zmin'
+       AS 'MODULE_PATHNAME','BOX3D_zmin'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_ZMin(box3d)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','BOX3D_zmin'
+       AS 'MODULE_PATHNAME','BOX3D_zmin'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION xmax(box3d)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','BOX3D_xmax'
+       AS 'MODULE_PATHNAME','BOX3D_xmax'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_XMax(box3d)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','BOX3D_xmax'
+       AS 'MODULE_PATHNAME','BOX3D_xmax'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION ymax(box3d)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','BOX3D_ymax'
+       AS 'MODULE_PATHNAME','BOX3D_ymax'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_YMax(box3d)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','BOX3D_ymax'
+       AS 'MODULE_PATHNAME','BOX3D_ymax'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION zmax(box3d)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','BOX3D_zmax'
+       AS 'MODULE_PATHNAME','BOX3D_zmax'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_ZMax(box3d)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','BOX3D_zmax'
+       AS 'MODULE_PATHNAME','BOX3D_zmax'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -------------------------------------------------------------------
 --  CHIP TYPE
 -------------------------------------------------------------------
 
-#if USE_VERSION < 73
+#if POSTGIS_PGSQL_VERSION < 73
 # define CHIP_IN_REP opaque
 # define CHIP_OUT_REP opaque
 #else
@@ -491,25 +491,25 @@ CREATEFUNCTION ST_ZMax(box3d)
 -- Deprecation in 1.2.3
 CREATEFUNCTION chip_in(CHIP_OUT_REP)
        RETURNS CHIP_IN_REP
-       AS '@MODULE_FILENAME@','CHIP_in'
+       AS 'MODULE_PATHNAME','CHIP_in'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
         
 -- Availability: 1.2.2
 CREATEFUNCTION ST_chip_in(CHIP_OUT_REP)
        RETURNS CHIP_IN_REP
-       AS '@MODULE_FILENAME@','CHIP_in'
+       AS 'MODULE_PATHNAME','CHIP_in'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION chip_out(CHIP_IN_REP)
        RETURNS CHIP_OUT_REP
-       AS '@MODULE_FILENAME@','CHIP_out'
+       AS 'MODULE_PATHNAME','CHIP_out'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_chip_out(CHIP_IN_REP)
        RETURNS CHIP_OUT_REP
-       AS '@MODULE_FILENAME@','CHIP_out'
+       AS 'MODULE_PATHNAME','CHIP_out'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 CREATE TYPE chip (
@@ -525,7 +525,7 @@ CREATE TYPE chip (
 -----------------------------------------------------------------------
 
 
-#if USE_VERSION < 73
+#if POSTGIS_PGSQL_VERSION < 73
 # define BOX2D_IN_REP opaque
 # define BOX2D_OUT_REP opaque
 #else
@@ -536,25 +536,25 @@ CREATE TYPE chip (
 -- Deprecation in 1.2.3
 CREATEFUNCTION box2d_in(BOX2D_OUT_REP)
         RETURNS box2d
-        AS '@MODULE_FILENAME@','BOX2DFLOAT4_in'
+        AS 'MODULE_PATHNAME','BOX2DFLOAT4_in'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box2d_in(BOX2D_OUT_REP)
         RETURNS box2d
-        AS '@MODULE_FILENAME@','BOX2DFLOAT4_in'
+        AS 'MODULE_PATHNAME','BOX2DFLOAT4_in'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION box2d_out(BOX2D_IN_REP)
         RETURNS cstring
-        AS '@MODULE_FILENAME@','BOX2DFLOAT4_out'
+        AS 'MODULE_PATHNAME','BOX2DFLOAT4_out'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box2d_out(BOX2D_IN_REP)
         RETURNS cstring
-        AS '@MODULE_FILENAME@','BOX2DFLOAT4_out'
+        AS 'MODULE_PATHNAME','BOX2DFLOAT4_out'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 CREATE TYPE box2d (
@@ -569,109 +569,109 @@ CREATE TYPE box2d (
 -- Deprecation in 1.2.3
 CREATEFUNCTION box2d_overleft(box2d, box2d) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'BOX2D_overleft'
+       AS 'MODULE_PATHNAME', 'BOX2D_overleft'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box2d_overleft(box2d, box2d) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'BOX2D_overleft'
+       AS 'MODULE_PATHNAME', 'BOX2D_overleft'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION box2d_overright(box2d, box2d) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'BOX2D_overright' 
+       AS 'MODULE_PATHNAME', 'BOX2D_overright' 
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box2d_overright(box2d, box2d) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'BOX2D_overright' 
+       AS 'MODULE_PATHNAME', 'BOX2D_overright' 
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION box2d_left(box2d, box2d) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'BOX2D_left' 
+       AS 'MODULE_PATHNAME', 'BOX2D_left' 
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box2d_left(box2d, box2d) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'BOX2D_left' 
+       AS 'MODULE_PATHNAME', 'BOX2D_left' 
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION box2d_right(box2d, box2d) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'BOX2D_right' 
+       AS 'MODULE_PATHNAME', 'BOX2D_right' 
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box2d_right(box2d, box2d) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'BOX2D_right' 
+       AS 'MODULE_PATHNAME', 'BOX2D_right' 
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION box2d_contain(box2d, box2d) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'BOX2D_contain'
+       AS 'MODULE_PATHNAME', 'BOX2D_contain'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box2d_contain(box2d, box2d) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'BOX2D_contain'
+       AS 'MODULE_PATHNAME', 'BOX2D_contain'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION box2d_contained(box2d, box2d) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'BOX2D_contained'
+       AS 'MODULE_PATHNAME', 'BOX2D_contained'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box2d_contained(box2d, box2d) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'BOX2D_contained'
+       AS 'MODULE_PATHNAME', 'BOX2D_contained'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION box2d_overlap(box2d, box2d) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'BOX2D_overlap'
+       AS 'MODULE_PATHNAME', 'BOX2D_overlap'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box2d_overlap(box2d, box2d) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'BOX2D_overlap'
+       AS 'MODULE_PATHNAME', 'BOX2D_overlap'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION box2d_same(box2d, box2d) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'BOX2D_same'
+       AS 'MODULE_PATHNAME', 'BOX2D_same'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box2d_same(box2d, box2d) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'BOX2D_same'
+       AS 'MODULE_PATHNAME', 'BOX2D_same'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION box2d_intersects(box2d, box2d) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'BOX2D_intersects'
+       AS 'MODULE_PATHNAME', 'BOX2D_intersects'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box2d_intersects(box2d, box2d) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'BOX2D_intersects'
+       AS 'MODULE_PATHNAME', 'BOX2D_intersects'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 
@@ -684,73 +684,73 @@ CREATEFUNCTION ST_box2d_intersects(box2d, box2d)
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_lt(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'lwgeom_lt'
+       AS 'MODULE_PATHNAME', 'lwgeom_lt'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_lt(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'lwgeom_lt'
+       AS 'MODULE_PATHNAME', 'lwgeom_lt'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_le(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'lwgeom_le'
+       AS 'MODULE_PATHNAME', 'lwgeom_le'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_le(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'lwgeom_le'
+       AS 'MODULE_PATHNAME', 'lwgeom_le'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_gt(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'lwgeom_gt'
+       AS 'MODULE_PATHNAME', 'lwgeom_gt'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_gt(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'lwgeom_gt'
+       AS 'MODULE_PATHNAME', 'lwgeom_gt'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_ge(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'lwgeom_ge'
+       AS 'MODULE_PATHNAME', 'lwgeom_ge'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_ge(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'lwgeom_ge'
+       AS 'MODULE_PATHNAME', 'lwgeom_ge'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_eq(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'lwgeom_eq'
+       AS 'MODULE_PATHNAME', 'lwgeom_eq'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_eq(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'lwgeom_eq'
+       AS 'MODULE_PATHNAME', 'lwgeom_eq'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_cmp(geometry, geometry) 
        RETURNS integer
-       AS '@MODULE_FILENAME@', 'lwgeom_cmp'
+       AS 'MODULE_PATHNAME', 'lwgeom_cmp'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_cmp(geometry, geometry) 
        RETURNS integer
-       AS '@MODULE_FILENAME@', 'lwgeom_cmp'
+       AS 'MODULE_PATHNAME', 'lwgeom_cmp'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 --
@@ -786,7 +786,7 @@ CREATE OPERATOR > (
    RESTRICT = contsel, JOIN = contjoinsel
 );
 
-#if USE_VERSION >= 74
+#if POSTGIS_PGSQL_VERSION >= 74
 
 CREATE OPERATOR CLASS btree_geometry_ops
        DEFAULT FOR TYPE geometry USING btree AS
@@ -804,191 +804,191 @@ CREATE OPERATOR CLASS btree_geometry_ops
 -- GiST indexes
 -------------------------------------------------------------------
 -- Deprecation in 1.2.3
-#if USE_VERSION < 73
+#if POSTGIS_PGSQL_VERSION < 73
 CREATEFUNCTION postgis_gist_sel(opaque, oid,  opaque, int4)
 #else
 CREATEFUNCTION postgis_gist_sel (internal, oid, internal, int4)
 #endif
        RETURNS float8
-       AS '@MODULE_FILENAME@', 'LWGEOM_gist_sel'
+       AS 'MODULE_PATHNAME', 'LWGEOM_gist_sel'
        LANGUAGE 'C';
 
 -- Availability: 1.2.2
-#if USE_VERSION < 73
+#if POSTGIS_PGSQL_VERSION < 73
 CREATEFUNCTION ST_postgis_gist_sel(opaque, oid,  opaque, int4)
 #else
 CREATEFUNCTION ST_postgis_gist_sel (internal, oid, internal, int4)
 #endif
        RETURNS float8
-       AS '@MODULE_FILENAME@', 'LWGEOM_gist_sel'
+       AS 'MODULE_PATHNAME', 'LWGEOM_gist_sel'
        LANGUAGE 'C';
 
 -- Deprecation in 1.2.3
-#if USE_VERSION == 72
+#if POSTGIS_PGSQL_VERSION == 72
 CREATEFUNCTION postgis_gist_joinsel(opaque, oid,  opaque)
-#elif USE_VERSION == 73
+#elif POSTGIS_PGSQL_VERSION == 73
 CREATEFUNCTION postgis_gist_joinsel(internal, oid,  internal)
 #else
 CREATEFUNCTION postgis_gist_joinsel(internal, oid, internal, smallint)
 #endif
        RETURNS float8
-       AS '@MODULE_FILENAME@', 'LWGEOM_gist_joinsel'
+       AS 'MODULE_PATHNAME', 'LWGEOM_gist_joinsel'
        LANGUAGE 'C';
 
 -- Availability: 1.2.2
-#if USE_VERSION == 72
+#if POSTGIS_PGSQL_VERSION == 72
 CREATEFUNCTION ST_postgis_gist_joinsel(opaque, oid,  opaque)
-#elif USE_VERSION == 73
+#elif POSTGIS_PGSQL_VERSION == 73
 CREATEFUNCTION ST_postgis_gist_joinsel(internal, oid,  internal)
 #else
 CREATEFUNCTION ST_postgis_gist_joinsel(internal, oid, internal, smallint)
 #endif
        RETURNS float8
-       AS '@MODULE_FILENAME@', 'LWGEOM_gist_joinsel'
+       AS 'MODULE_PATHNAME', 'LWGEOM_gist_joinsel'
        LANGUAGE 'C';
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_overleft(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_overleft'
+       AS 'MODULE_PATHNAME', 'LWGEOM_overleft'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_overleft(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_overleft'
+       AS 'MODULE_PATHNAME', 'LWGEOM_overleft'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_overright(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_overright'
+       AS 'MODULE_PATHNAME', 'LWGEOM_overright'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_overright(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_overright'
+       AS 'MODULE_PATHNAME', 'LWGEOM_overright'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_overabove(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_overabove'
+       AS 'MODULE_PATHNAME', 'LWGEOM_overabove'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_overabove(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_overabove'
+       AS 'MODULE_PATHNAME', 'LWGEOM_overabove'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_overbelow(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_overbelow'
+       AS 'MODULE_PATHNAME', 'LWGEOM_overbelow'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_overbelow(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_overbelow'
+       AS 'MODULE_PATHNAME', 'LWGEOM_overbelow'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_left(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_left'
+       AS 'MODULE_PATHNAME', 'LWGEOM_left'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_left(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_left'
+       AS 'MODULE_PATHNAME', 'LWGEOM_left'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_right(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_right'
+       AS 'MODULE_PATHNAME', 'LWGEOM_right'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_right(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_right'
+       AS 'MODULE_PATHNAME', 'LWGEOM_right'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_above(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_above'
+       AS 'MODULE_PATHNAME', 'LWGEOM_above'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_above(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_above'
+       AS 'MODULE_PATHNAME', 'LWGEOM_above'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_below(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_below'
+       AS 'MODULE_PATHNAME', 'LWGEOM_below'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_below(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_below'
+       AS 'MODULE_PATHNAME', 'LWGEOM_below'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_contain(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_contain'
+       AS 'MODULE_PATHNAME', 'LWGEOM_contain'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_contain(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_contain'
+       AS 'MODULE_PATHNAME', 'LWGEOM_contain'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_contained(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_contained'
+       AS 'MODULE_PATHNAME', 'LWGEOM_contained'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_contained(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_contained'
+       AS 'MODULE_PATHNAME', 'LWGEOM_contained'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_overlap(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_overlap'
+       AS 'MODULE_PATHNAME', 'LWGEOM_overlap'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry_overlap(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_overlap'
+       AS 'MODULE_PATHNAME', 'LWGEOM_overlap'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry_same(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_same'
+       AS 'MODULE_PATHNAME', 'LWGEOM_same'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 --Availability: 1.2.2
 CREATEFUNCTION ST_geometry_same(geometry, geometry) 
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_same'
+       AS 'MODULE_PATHNAME', 'LWGEOM_same'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- GEOMETRY operators
@@ -1067,7 +1067,7 @@ CREATE OPERATOR ~ (
 
 -- gist support functions
 
-#if USE_VERSION < 73
+#if POSTGIS_PGSQL_VERSION < 73
 #define OPAQUE_TYPE opaque
 #else
 #define OPAQUE_TYPE internal
@@ -1075,44 +1075,44 @@ CREATE OPERATOR ~ (
 
 CREATEFUNCTION LWGEOM_gist_consistent(OPAQUE_TYPE,geometry,int4) 
        RETURNS bool 
-       AS '@MODULE_FILENAME@' ,'LWGEOM_gist_consistent'
+       AS 'MODULE_PATHNAME' ,'LWGEOM_gist_consistent'
        LANGUAGE 'C';
 
 CREATEFUNCTION LWGEOM_gist_compress(OPAQUE_TYPE) 
        RETURNS OPAQUE_TYPE 
-       AS '@MODULE_FILENAME@','LWGEOM_gist_compress'
+       AS 'MODULE_PATHNAME','LWGEOM_gist_compress'
        LANGUAGE 'C';
 
 CREATEFUNCTION LWGEOM_gist_penalty(OPAQUE_TYPE,OPAQUE_TYPE,OPAQUE_TYPE) 
        RETURNS OPAQUE_TYPE 
-       AS '@MODULE_FILENAME@' ,'LWGEOM_gist_penalty'
+       AS 'MODULE_PATHNAME' ,'LWGEOM_gist_penalty'
        LANGUAGE 'C';
 
 CREATEFUNCTION LWGEOM_gist_picksplit(OPAQUE_TYPE, OPAQUE_TYPE) 
        RETURNS OPAQUE_TYPE 
-       AS '@MODULE_FILENAME@' ,'LWGEOM_gist_picksplit'
+       AS 'MODULE_PATHNAME' ,'LWGEOM_gist_picksplit'
        LANGUAGE 'C';
 
 CREATEFUNCTION LWGEOM_gist_union(bytea, OPAQUE_TYPE) 
        RETURNS OPAQUE_TYPE 
-       AS '@MODULE_FILENAME@' ,'LWGEOM_gist_union'
+       AS 'MODULE_PATHNAME' ,'LWGEOM_gist_union'
        LANGUAGE 'C';
 
 CREATEFUNCTION LWGEOM_gist_same(box2d, box2d, OPAQUE_TYPE) 
        RETURNS OPAQUE_TYPE 
-       AS '@MODULE_FILENAME@' ,'LWGEOM_gist_same'
+       AS 'MODULE_PATHNAME' ,'LWGEOM_gist_same'
        LANGUAGE 'C';
 
 CREATEFUNCTION LWGEOM_gist_decompress(OPAQUE_TYPE) 
        RETURNS OPAQUE_TYPE
-       AS '@MODULE_FILENAME@' ,'LWGEOM_gist_decompress'
+       AS 'MODULE_PATHNAME' ,'LWGEOM_gist_decompress'
        LANGUAGE 'C';
 
 -------------------------------------------
 -- GIST opclass index binding entries.
 -------------------------------------------
 
-#if USE_VERSION == 72
+#if POSTGIS_PGSQL_VERSION == 72
 
 --
 -- Create opclass index binding entries for PG72
@@ -1351,49 +1351,49 @@ UPDATE pg_opclass
 -- Deprecation in 1.2.3
 CREATEFUNCTION addBBOX(geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOM_addBBOX'
+       AS 'MODULE_PATHNAME','LWGEOM_addBBOX'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_addBBOX(geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOM_addBBOX'
+       AS 'MODULE_PATHNAME','LWGEOM_addBBOX'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION dropBBOX(geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOM_dropBBOX'
+       AS 'MODULE_PATHNAME','LWGEOM_dropBBOX'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_dropBBOX(geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOM_dropBBOX'
+       AS 'MODULE_PATHNAME','LWGEOM_dropBBOX'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
        
 -- Deprecation in 1.2.3
 CREATEFUNCTION getSRID(geometry) 
        RETURNS int4
-       AS '@MODULE_FILENAME@','LWGEOM_getSRID'
+       AS 'MODULE_PATHNAME','LWGEOM_getSRID'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION getSRID(geometry) 
        RETURNS int4
-       AS '@MODULE_FILENAME@','LWGEOM_getSRID'
+       AS 'MODULE_PATHNAME','LWGEOM_getSRID'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION getBBOX(geometry)
         RETURNS box2d
-        AS '@MODULE_FILENAME@','LWGEOM_to_BOX2DFLOAT4'
+        AS 'MODULE_PATHNAME','LWGEOM_to_BOX2DFLOAT4'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION getBBOX(geometry)
         RETURNS box2d
-        AS '@MODULE_FILENAME@','LWGEOM_to_BOX2DFLOAT4'
+        AS 'MODULE_PATHNAME','LWGEOM_to_BOX2DFLOAT4'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -------------------------------------------
@@ -1403,91 +1403,91 @@ CREATEFUNCTION getBBOX(geometry)
 -- Deprecation in 1.2.3
 CREATEFUNCTION srid(chip)
        RETURNS int4
-       AS '@MODULE_FILENAME@','CHIP_getSRID'
+       AS 'MODULE_PATHNAME','CHIP_getSRID'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_srid(chip)
        RETURNS int4
-       AS '@MODULE_FILENAME@','CHIP_getSRID'
+       AS 'MODULE_PATHNAME','CHIP_getSRID'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION height(chip)
        RETURNS int4
-       AS '@MODULE_FILENAME@','CHIP_getHeight'
+       AS 'MODULE_PATHNAME','CHIP_getHeight'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_height(chip)
        RETURNS int4
-       AS '@MODULE_FILENAME@','CHIP_getHeight'
+       AS 'MODULE_PATHNAME','CHIP_getHeight'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION factor(chip)
        RETURNS FLOAT4
-       AS '@MODULE_FILENAME@','CHIP_getFactor'
+       AS 'MODULE_PATHNAME','CHIP_getFactor'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_factor(chip)
        RETURNS FLOAT4
-       AS '@MODULE_FILENAME@','CHIP_getFactor'
+       AS 'MODULE_PATHNAME','CHIP_getFactor'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION width(chip)
        RETURNS int4
-       AS '@MODULE_FILENAME@','CHIP_getWidth'
+       AS 'MODULE_PATHNAME','CHIP_getWidth'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_width(chip)
        RETURNS int4
-       AS '@MODULE_FILENAME@','CHIP_getWidth'
+       AS 'MODULE_PATHNAME','CHIP_getWidth'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION datatype(chip)
        RETURNS int4
-       AS '@MODULE_FILENAME@','CHIP_getDatatype'
+       AS 'MODULE_PATHNAME','CHIP_getDatatype'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_datatype(chip)
        RETURNS int4
-       AS '@MODULE_FILENAME@','CHIP_getDatatype'
+       AS 'MODULE_PATHNAME','CHIP_getDatatype'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION compression(chip)
        RETURNS int4
-       AS '@MODULE_FILENAME@','CHIP_getCompression'
+       AS 'MODULE_PATHNAME','CHIP_getCompression'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_compression(chip)
        RETURNS int4
-       AS '@MODULE_FILENAME@','CHIP_getCompression'
+       AS 'MODULE_PATHNAME','CHIP_getCompression'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION setSRID(chip,int4)
        RETURNS chip
-       AS '@MODULE_FILENAME@','CHIP_setSRID'
+       AS 'MODULE_PATHNAME','CHIP_setSRID'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION setFactor(chip,float4)
        RETURNS chip
-       AS '@MODULE_FILENAME@','CHIP_setFactor'
+       AS 'MODULE_PATHNAME','CHIP_setFactor'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_setFactor(chip,float4)
        RETURNS chip
-       AS '@MODULE_FILENAME@','CHIP_setFactor'
+       AS 'MODULE_PATHNAME','CHIP_setFactor'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 ------------------------------------------------------------------------
@@ -1497,49 +1497,49 @@ CREATEFUNCTION ST_setFactor(chip,float4)
 -- Deprecation in 1.2.3
 CREATEFUNCTION mem_size(geometry)
        RETURNS int4
-       AS '@MODULE_FILENAME@', 'LWGEOM_mem_size'
+       AS 'MODULE_PATHNAME', 'LWGEOM_mem_size'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_mem_size(geometry)
        RETURNS int4
-       AS '@MODULE_FILENAME@', 'LWGEOM_mem_size'
+       AS 'MODULE_PATHNAME', 'LWGEOM_mem_size'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION summary(geometry)
        RETURNS text
-       AS '@MODULE_FILENAME@', 'LWGEOM_summary'
+       AS 'MODULE_PATHNAME', 'LWGEOM_summary'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_summary(geometry)
        RETURNS text
-       AS '@MODULE_FILENAME@', 'LWGEOM_summary'
+       AS 'MODULE_PATHNAME', 'LWGEOM_summary'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION npoints(geometry)
        RETURNS int4
-       AS '@MODULE_FILENAME@', 'LWGEOM_npoints'
+       AS 'MODULE_PATHNAME', 'LWGEOM_npoints'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_npoints(geometry)
        RETURNS int4
-       AS '@MODULE_FILENAME@', 'LWGEOM_npoints'
+       AS 'MODULE_PATHNAME', 'LWGEOM_npoints'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION nrings(geometry)
        RETURNS int4
-       AS '@MODULE_FILENAME@', 'LWGEOM_nrings'
+       AS 'MODULE_PATHNAME', 'LWGEOM_nrings'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_nrings(geometry)
        RETURNS int4
-       AS '@MODULE_FILENAME@', 'LWGEOM_nrings'
+       AS 'MODULE_PATHNAME', 'LWGEOM_nrings'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 ------------------------------------------------------------------------
@@ -1551,36 +1551,36 @@ CREATEFUNCTION ST_nrings(geometry)
 -- Deprecation in 1.2.3
 CREATEFUNCTION length3d(geometry)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@', 'LWGEOM_length_linestring'
+       AS 'MODULE_PATHNAME', 'LWGEOM_length_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_length3d(geometry)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@', 'LWGEOM_length_linestring'
+       AS 'MODULE_PATHNAME', 'LWGEOM_length_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION length2d(geometry)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@', 'LWGEOM_length2d_linestring'
+       AS 'MODULE_PATHNAME', 'LWGEOM_length2d_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_length2d(geometry)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@', 'LWGEOM_length2d_linestring'
+       AS 'MODULE_PATHNAME', 'LWGEOM_length2d_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 CREATEFUNCTION length(geometry)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@', 'LWGEOM_length_linestring'
+       AS 'MODULE_PATHNAME', 'LWGEOM_length_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- PostGIS equivalent function: length2d(geometry)
 CREATEFUNCTION ST_Length(geometry)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@', 'LWGEOM_length2d_linestring'
+       AS 'MODULE_PATHNAME', 'LWGEOM_length2d_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- this is a fake (for back-compatibility)
@@ -1588,37 +1588,37 @@ CREATEFUNCTION ST_Length(geometry)
 -- Deprecation in 1.2.3
 CREATEFUNCTION length3d_spheroid(geometry, spheroid)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','LWGEOM_length_ellipsoid_linestring'
+       AS 'MODULE_PATHNAME','LWGEOM_length_ellipsoid_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_length3d_spheroid(geometry, spheroid)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','LWGEOM_length_ellipsoid_linestring'
+       AS 'MODULE_PATHNAME','LWGEOM_length_ellipsoid_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION length_spheroid(geometry, spheroid)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','LWGEOM_length_ellipsoid_linestring'
+       AS 'MODULE_PATHNAME','LWGEOM_length_ellipsoid_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_length_spheroid(geometry, spheroid)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','LWGEOM_length_ellipsoid_linestring'
+       AS 'MODULE_PATHNAME','LWGEOM_length_ellipsoid_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION length2d_spheroid(geometry, spheroid)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','LWGEOM_length2d_ellipsoid_linestring'
+       AS 'MODULE_PATHNAME','LWGEOM_length2d_ellipsoid_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_length2d_spheroid(geometry, spheroid)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','LWGEOM_length2d_ellipsoid_linestring'
+       AS 'MODULE_PATHNAME','LWGEOM_length2d_ellipsoid_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- this is a fake (for back-compatibility)
@@ -1626,37 +1626,37 @@ CREATEFUNCTION ST_length2d_spheroid(geometry, spheroid)
 -- Deprecation in 1.2.3
 CREATEFUNCTION perimeter3d(geometry)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@', 'LWGEOM_perimeter_poly'
+       AS 'MODULE_PATHNAME', 'LWGEOM_perimeter_poly'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_perimeter3d(geometry)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@', 'LWGEOM_perimeter_poly'
+       AS 'MODULE_PATHNAME', 'LWGEOM_perimeter_poly'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION perimeter2d(geometry)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@', 'LWGEOM_perimeter2d_poly'
+       AS 'MODULE_PATHNAME', 'LWGEOM_perimeter2d_poly'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_perimeter2d(geometry)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@', 'LWGEOM_perimeter2d_poly'
+       AS 'MODULE_PATHNAME', 'LWGEOM_perimeter2d_poly'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION perimeter(geometry)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@', 'LWGEOM_perimeter_poly'
+       AS 'MODULE_PATHNAME', 'LWGEOM_perimeter_poly'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- PostGIS equivalent function: perimeter2d(geometry)
 CREATEFUNCTION ST_Perimeter(geometry)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@', 'LWGEOM_perimeter2d_poly'
+       AS 'MODULE_PATHNAME', 'LWGEOM_perimeter2d_poly'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- this is an alias for 'area(geometry)'
@@ -1664,99 +1664,99 @@ CREATEFUNCTION ST_Perimeter(geometry)
 -- Deprecation in 1.2.3
 CREATEFUNCTION area2d(geometry)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@', 'LWGEOM_area_polygon'
+       AS 'MODULE_PATHNAME', 'LWGEOM_area_polygon'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_area2d(geometry)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@', 'LWGEOM_area_polygon'
+       AS 'MODULE_PATHNAME', 'LWGEOM_area_polygon'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION area(geometry)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','LWGEOM_area_polygon'
+       AS 'MODULE_PATHNAME','LWGEOM_area_polygon'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- PostGIS equivalent function: area(geometry)
 CREATEFUNCTION ST_Area(geometry)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','LWGEOM_area_polygon'
+       AS 'MODULE_PATHNAME','LWGEOM_area_polygon'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION distance_spheroid(geometry,geometry,spheroid)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','LWGEOM_distance_ellipsoid_point'
+       AS 'MODULE_PATHNAME','LWGEOM_distance_ellipsoid_point'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_distance_spheroid(geometry,geometry,spheroid)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','LWGEOM_distance_ellipsoid_point'
+       AS 'MODULE_PATHNAME','LWGEOM_distance_ellipsoid_point'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION distance_sphere(geometry,geometry)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','LWGEOM_distance_sphere'
+       AS 'MODULE_PATHNAME','LWGEOM_distance_sphere'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_distance_sphere(geometry,geometry)
        RETURNS FLOAT8
-       AS '@MODULE_FILENAME@','LWGEOM_distance_sphere'
+       AS 'MODULE_PATHNAME','LWGEOM_distance_sphere'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Minimum distance. 2d only.
 -- Deprecation in 1.2.3
 CREATEFUNCTION distance(geometry,geometry)
        RETURNS float8
-       AS '@MODULE_FILENAME@', 'LWGEOM_mindistance2d'
+       AS 'MODULE_PATHNAME', 'LWGEOM_mindistance2d'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: distance(geometry,geometry)
 CREATEFUNCTION ST_Distance(geometry,geometry)
     RETURNS float8
-    AS '@MODULE_FILENAME@', 'LWGEOM_mindistance2d'
+    AS 'MODULE_PATHNAME', 'LWGEOM_mindistance2d'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Maximum distance between linestrings. 2d only. Very bogus.
 -- Deprecation in 1.2.3
 CREATEFUNCTION max_distance(geometry,geometry)
        RETURNS float8
-       AS '@MODULE_FILENAME@', 'LWGEOM_maxdistance2d_linestring'
+       AS 'MODULE_PATHNAME', 'LWGEOM_maxdistance2d_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_max_distance(geometry,geometry)
        RETURNS float8
-       AS '@MODULE_FILENAME@', 'LWGEOM_maxdistance2d_linestring'
+       AS 'MODULE_PATHNAME', 'LWGEOM_maxdistance2d_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION point_inside_circle(geometry,float8,float8,float8)
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_inside_circle_point'
+       AS 'MODULE_PATHNAME', 'LWGEOM_inside_circle_point'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_point_inside_circle(geometry,float8,float8,float8)
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_inside_circle_point'
+       AS 'MODULE_PATHNAME', 'LWGEOM_inside_circle_point'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION azimuth(geometry,geometry)
        RETURNS float8
-       AS '@MODULE_FILENAME@', 'LWGEOM_azimuth'
+       AS 'MODULE_PATHNAME', 'LWGEOM_azimuth'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_azimuth(geometry,geometry)
        RETURNS float8
-       AS '@MODULE_FILENAME@', 'LWGEOM_azimuth'
+       AS 'MODULE_PATHNAME', 'LWGEOM_azimuth'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 ------------------------------------------------------------------------
@@ -1766,110 +1766,110 @@ CREATEFUNCTION ST_azimuth(geometry,geometry)
 -- Deprecation in 1.2.3
 CREATEFUNCTION force_2d(geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_force_2d'
+       AS 'MODULE_PATHNAME', 'LWGEOM_force_2d'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_force_2d(geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_force_2d'
+       AS 'MODULE_PATHNAME', 'LWGEOM_force_2d'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION force_3dz(geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_force_3dz'
+       AS 'MODULE_PATHNAME', 'LWGEOM_force_3dz'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_force_3dz(geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_force_3dz'
+       AS 'MODULE_PATHNAME', 'LWGEOM_force_3dz'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- an alias for force_3dz
 -- Deprecation in 1.2.3
 CREATEFUNCTION force_3d(geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_force_3dz'
+       AS 'MODULE_PATHNAME', 'LWGEOM_force_3dz'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_force_3d(geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_force_3dz'
+       AS 'MODULE_PATHNAME', 'LWGEOM_force_3dz'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION force_3dm(geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_force_3dm'
+       AS 'MODULE_PATHNAME', 'LWGEOM_force_3dm'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_force_3dm(geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_force_3dm'
+       AS 'MODULE_PATHNAME', 'LWGEOM_force_3dm'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION force_4d(geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_force_4d'
+       AS 'MODULE_PATHNAME', 'LWGEOM_force_4d'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_force_4d(geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_force_4d'
+       AS 'MODULE_PATHNAME', 'LWGEOM_force_4d'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION force_collection(geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_force_collection'
+       AS 'MODULE_PATHNAME', 'LWGEOM_force_collection'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_force_collection(geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_force_collection'
+       AS 'MODULE_PATHNAME', 'LWGEOM_force_collection'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION multi(geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_force_multi'
+       AS 'MODULE_PATHNAME', 'LWGEOM_force_multi'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_multi(geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_force_multi'
+       AS 'MODULE_PATHNAME', 'LWGEOM_force_multi'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION collector(geometry, geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_collect'
+       AS 'MODULE_PATHNAME', 'LWGEOM_collect'
        LANGUAGE 'C' _IMMUTABLE;
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_collector(geometry, geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_collect'
+       AS 'MODULE_PATHNAME', 'LWGEOM_collect'
        LANGUAGE 'C' _IMMUTABLE;
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION collect(geometry, geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_collect'
+       AS 'MODULE_PATHNAME', 'LWGEOM_collect'
        LANGUAGE 'C' _IMMUTABLE;
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_collect(geometry, geometry) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_collect'
+       AS 'MODULE_PATHNAME', 'LWGEOM_collect'
        LANGUAGE 'C' _IMMUTABLE;
 
 -- Deprecation in 1.2.3
@@ -1889,13 +1889,13 @@ CREATE AGGREGATE ST_memcollect(
 -- Deprecation in 1.2.3
 CREATEFUNCTION geom_accum (geometry[],geometry)
        RETURNS geometry[]
-       AS '@MODULE_FILENAME@', 'LWGEOM_accum'
+       AS 'MODULE_PATHNAME', 'LWGEOM_accum'
        LANGUAGE 'C' _IMMUTABLE;
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geom_accum (geometry[],geometry)
        RETURNS geometry[]
-       AS '@MODULE_FILENAME@', 'LWGEOM_accum'
+       AS 'MODULE_PATHNAME', 'LWGEOM_accum'
        LANGUAGE 'C' _IMMUTABLE;
 
 -- Deprecation in 1.2.3
@@ -1915,13 +1915,13 @@ CREATE AGGREGATE ST_accum (
 -- Deprecation in 1.2.3
 CREATEFUNCTION collect_garray (geometry[])
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_collect_garray'
+       AS 'MODULE_PATHNAME', 'LWGEOM_collect_garray'
        LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_collect_garray (geometry[])
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_collect_garray'
+       AS 'MODULE_PATHNAME', 'LWGEOM_collect_garray'
        LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 -- Deprecation in 1.2.3
@@ -1944,217 +1944,217 @@ CREATE AGGREGATE ST_collect (
 -- Deprecation in 1.2.3
 CREATEFUNCTION expand(box3d,float8)
        RETURNS box3d
-       AS '@MODULE_FILENAME@', 'BOX3D_expand'
+       AS 'MODULE_PATHNAME', 'BOX3D_expand'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_Expand(box3d,float8)
        RETURNS box3d
-       AS '@MODULE_FILENAME@', 'BOX3D_expand'
+       AS 'MODULE_PATHNAME', 'BOX3D_expand'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION expand(box2d,float8)
        RETURNS box2d
-       AS '@MODULE_FILENAME@', 'BOX2DFLOAT4_expand'
+       AS 'MODULE_PATHNAME', 'BOX2DFLOAT4_expand'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_expand(box2d,float8)
        RETURNS box2d
-       AS '@MODULE_FILENAME@', 'BOX2DFLOAT4_expand'
+       AS 'MODULE_PATHNAME', 'BOX2DFLOAT4_expand'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION expand(geometry,float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_expand'
+       AS 'MODULE_PATHNAME', 'LWGEOM_expand'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_expand(geometry,float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_expand'
+       AS 'MODULE_PATHNAME', 'LWGEOM_expand'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION envelope(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_envelope'
+       AS 'MODULE_PATHNAME', 'LWGEOM_envelope'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- PostGIS equivalent function: envelope(geometry)
 CREATEFUNCTION ST_Envelope(geometry)
         RETURNS geometry
-        AS '@MODULE_FILENAME@', 'LWGEOM_envelope'
+        AS 'MODULE_PATHNAME', 'LWGEOM_envelope'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION reverse(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_reverse'
+       AS 'MODULE_PATHNAME', 'LWGEOM_reverse'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_Reverse(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_reverse'
+       AS 'MODULE_PATHNAME', 'LWGEOM_reverse'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION ForceRHR(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_forceRHR_poly'
+       AS 'MODULE_PATHNAME', 'LWGEOM_forceRHR_poly'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_ForceRHR(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_forceRHR_poly'
+       AS 'MODULE_PATHNAME', 'LWGEOM_forceRHR_poly'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION noop(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_noop'
+       AS 'MODULE_PATHNAME', 'LWGEOM_noop'
        LANGUAGE 'C' _VOLATILE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_noop(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_noop'
+       AS 'MODULE_PATHNAME', 'LWGEOM_noop'
        LANGUAGE 'C' _VOLATILE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION zmflag(geometry)
        RETURNS smallint
-       AS '@MODULE_FILENAME@', 'LWGEOM_zmflag'
+       AS 'MODULE_PATHNAME', 'LWGEOM_zmflag'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_zmflag(geometry)
        RETURNS smallint
-       AS '@MODULE_FILENAME@', 'LWGEOM_zmflag'
+       AS 'MODULE_PATHNAME', 'LWGEOM_zmflag'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION hasBBOX(geometry)
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_hasBBOX'
+       AS 'MODULE_PATHNAME', 'LWGEOM_hasBBOX'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availabitily: 1.2.2
 CREATEFUNCTION ST_HasBBOX(geometry)
        RETURNS bool
-       AS '@MODULE_FILENAME@', 'LWGEOM_hasBBOX'
+       AS 'MODULE_PATHNAME', 'LWGEOM_hasBBOX'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION ndims(geometry)
        RETURNS smallint
-       AS '@MODULE_FILENAME@', 'LWGEOM_ndims'
+       AS 'MODULE_PATHNAME', 'LWGEOM_ndims'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_NDims(geometry)
        RETURNS smallint
-       AS '@MODULE_FILENAME@', 'LWGEOM_ndims'
+       AS 'MODULE_PATHNAME', 'LWGEOM_ndims'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION AsEWKT(geometry)
        RETURNS TEXT
-       AS '@MODULE_FILENAME@','LWGEOM_asEWKT'
+       AS 'MODULE_PATHNAME','LWGEOM_asEWKT'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_AsEWKT(geometry)
        RETURNS TEXT
-       AS '@MODULE_FILENAME@','LWGEOM_asEWKT'
+       AS 'MODULE_PATHNAME','LWGEOM_asEWKT'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION AsEWKB(geometry)
        RETURNS BYTEA
-       AS '@MODULE_FILENAME@','WKBFromLWGEOM'
+       AS 'MODULE_PATHNAME','WKBFromLWGEOM'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_AsEWKB(geometry)
        RETURNS BYTEA
-       AS '@MODULE_FILENAME@','WKBFromLWGEOM'
+       AS 'MODULE_PATHNAME','WKBFromLWGEOM'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION AsHEXEWKB(geometry)
        RETURNS TEXT
-       AS '@MODULE_FILENAME@','LWGEOM_asHEXEWKB'
+       AS 'MODULE_PATHNAME','LWGEOM_asHEXEWKB'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_AsHEXEWKB(geometry)
        RETURNS TEXT
-       AS '@MODULE_FILENAME@','LWGEOM_asHEXEWKB'
+       AS 'MODULE_PATHNAME','LWGEOM_asHEXEWKB'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION AsHEXEWKB(geometry, text)
        RETURNS TEXT
-       AS '@MODULE_FILENAME@','LWGEOM_asHEXEWKB'
+       AS 'MODULE_PATHNAME','LWGEOM_asHEXEWKB'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_AsHEXEWKB(geometry, text)
        RETURNS TEXT
-       AS '@MODULE_FILENAME@','LWGEOM_asHEXEWKB'
+       AS 'MODULE_PATHNAME','LWGEOM_asHEXEWKB'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION AsEWKB(geometry,text)
        RETURNS bytea
-       AS '@MODULE_FILENAME@','WKBFromLWGEOM'
+       AS 'MODULE_PATHNAME','WKBFromLWGEOM'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_AsEWKB(geometry,text)
        RETURNS bytea
-       AS '@MODULE_FILENAME@','WKBFromLWGEOM'
+       AS 'MODULE_PATHNAME','WKBFromLWGEOM'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION GeomFromEWKB(bytea)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOMFromWKB'
+       AS 'MODULE_PATHNAME','LWGEOMFromWKB'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_GeomFromEWKB(bytea)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOMFromWKB'
+       AS 'MODULE_PATHNAME','LWGEOMFromWKB'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION GeomFromEWKT(text)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','parse_WKT_lwgeom'
+       AS 'MODULE_PATHNAME','parse_WKT_lwgeom'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_GeomFromEWKT(text)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','parse_WKT_lwgeom'
+       AS 'MODULE_PATHNAME','parse_WKT_lwgeom'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION cache_bbox()
         RETURNS trigger
-        AS '@MODULE_FILENAME@'
+        AS 'MODULE_PATHNAME'
         LANGUAGE 'C';
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_Cache_BBox()
        RETURNS trigger
-       AS '@MODULE_FILENAME@','cache_bbox'
+       AS 'MODULE_PATHNAME','cache_bbox'
        LANGUAGE 'C';
 
 ------------------------------------------------------------------------
@@ -2164,157 +2164,157 @@ CREATEFUNCTION ST_Cache_BBox()
 -- Deprecation in 1.2.3
 CREATEFUNCTION MakePoint(float8, float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makepoint'
+       AS 'MODULE_PATHNAME', 'LWGEOM_makepoint'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_MakePoint(float8, float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makepoint'
+       AS 'MODULE_PATHNAME', 'LWGEOM_makepoint'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION MakePoint(float8, float8, float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makepoint'
+       AS 'MODULE_PATHNAME', 'LWGEOM_makepoint'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_MakePoint(float8, float8, float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makepoint'
+       AS 'MODULE_PATHNAME', 'LWGEOM_makepoint'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION MakePoint(float8, float8, float8, float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makepoint'
+       AS 'MODULE_PATHNAME', 'LWGEOM_makepoint'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_MakePoint(float8, float8, float8, float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makepoint'
+       AS 'MODULE_PATHNAME', 'LWGEOM_makepoint'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION MakePointM(float8, float8, float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makepoint3dm'
+       AS 'MODULE_PATHNAME', 'LWGEOM_makepoint3dm'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION MakePointM(float8, float8, float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makepoint3dm'
+       AS 'MODULE_PATHNAME', 'LWGEOM_makepoint3dm'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION MakeBox2d(geometry, geometry)
        RETURNS box2d
-       AS '@MODULE_FILENAME@', 'BOX2DFLOAT4_construct'
+       AS 'MODULE_PATHNAME', 'BOX2DFLOAT4_construct'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_MakeBox2d(geometry, geometry)
        RETURNS box2d
-       AS '@MODULE_FILENAME@', 'BOX2DFLOAT4_construct'
+       AS 'MODULE_PATHNAME', 'BOX2DFLOAT4_construct'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION MakeBox3d(geometry, geometry)
        RETURNS box3d
-       AS '@MODULE_FILENAME@', 'BOX3D_construct'
+       AS 'MODULE_PATHNAME', 'BOX3D_construct'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_MakeBox3d(geometry, geometry)
        RETURNS box3d
-       AS '@MODULE_FILENAME@', 'BOX3D_construct'
+       AS 'MODULE_PATHNAME', 'BOX3D_construct'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION makeline_garray (geometry[])
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makeline_garray'
+       AS 'MODULE_PATHNAME', 'LWGEOM_makeline_garray'
        LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_MakeLine_GArray (geometry[])
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makeline_garray'
+       AS 'MODULE_PATHNAME', 'LWGEOM_makeline_garray'
        LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION LineFromMultiPoint(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_line_from_mpoint'
+       AS 'MODULE_PATHNAME', 'LWGEOM_line_from_mpoint'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_LineFromMultiPoint(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_line_from_mpoint'
+       AS 'MODULE_PATHNAME', 'LWGEOM_line_from_mpoint'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION MakeLine(geometry, geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makeline'
+       AS 'MODULE_PATHNAME', 'LWGEOM_makeline'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_MakeLine(geometry, geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makeline'
+       AS 'MODULE_PATHNAME', 'LWGEOM_makeline'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION AddPoint(geometry, geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_addpoint'
+       AS 'MODULE_PATHNAME', 'LWGEOM_addpoint'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_AddPoint(geometry, geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_addpoint'
+       AS 'MODULE_PATHNAME', 'LWGEOM_addpoint'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION AddPoint(geometry, geometry, integer)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_addpoint'
+       AS 'MODULE_PATHNAME', 'LWGEOM_addpoint'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_AddPoint(geometry, geometry, integer)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_addpoint'
+       AS 'MODULE_PATHNAME', 'LWGEOM_addpoint'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION RemovePoint(geometry, integer)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_removepoint'
+       AS 'MODULE_PATHNAME', 'LWGEOM_removepoint'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_RemovePoint(geometry, integer)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_removepoint'
+       AS 'MODULE_PATHNAME', 'LWGEOM_removepoint'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION SetPoint(geometry, integer, geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_setpoint_linestring'
+       AS 'MODULE_PATHNAME', 'LWGEOM_setpoint_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_SetPoint(geometry, integer, geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_setpoint_linestring'
+       AS 'MODULE_PATHNAME', 'LWGEOM_setpoint_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
@@ -2336,61 +2336,61 @@ CREATE AGGREGATE ST_MakeLine (
 -- Deprecation in 1.2.3
 CREATEFUNCTION MakePolygon(geometry, geometry[])
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makepoly'
+       AS 'MODULE_PATHNAME', 'LWGEOM_makepoly'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_MakePolygon(geometry, geometry[])
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makepoly'
+       AS 'MODULE_PATHNAME', 'LWGEOM_makepoly'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION MakePolygon(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makepoly'
+       AS 'MODULE_PATHNAME', 'LWGEOM_makepoly'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_MakePolygon(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makepoly'
+       AS 'MODULE_PATHNAME', 'LWGEOM_makepoly'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION BuildArea(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_buildarea'
+       AS 'MODULE_PATHNAME', 'LWGEOM_buildarea'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_BuildArea(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_buildarea'
+       AS 'MODULE_PATHNAME', 'LWGEOM_buildarea'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION Polygonize_GArray (geometry[])
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'polygonize_garray'
+       AS 'MODULE_PATHNAME', 'polygonize_garray'
        LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_Polygonize_GArray (geometry[])
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'polygonize_garray'
+       AS 'MODULE_PATHNAME', 'polygonize_garray'
        LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION LineMerge(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'linemerge'
+       AS 'MODULE_PATHNAME', 'linemerge'
        LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_LineMerge(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'linemerge'
+       AS 'MODULE_PATHNAME', 'linemerge'
        LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 -- Deprecation in 1.2.3
@@ -2409,32 +2409,32 @@ CREATE AGGREGATE ST_Polygonize (
        finalfunc = ST_polygonize_garray
        );
 
-#if USE_VERSION > 72
+#if POSTGIS_PGSQL_VERSION > 72
 
 CREATE TYPE geometry_dump AS (path integer[], geom geometry);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION Dump(geometry)
        RETURNS SETOF geometry_dump
-       AS '@MODULE_FILENAME@', 'LWGEOM_dump'
+       AS 'MODULE_PATHNAME', 'LWGEOM_dump'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_Dump(geometry)
        RETURNS SETOF geometry_dump
-       AS '@MODULE_FILENAME@', 'LWGEOM_dump'
+       AS 'MODULE_PATHNAME', 'LWGEOM_dump'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION DumpRings(geometry)
        RETURNS SETOF geometry_dump
-       AS '@MODULE_FILENAME@', 'LWGEOM_dump_rings'
+       AS 'MODULE_PATHNAME', 'LWGEOM_dump_rings'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_DumpRings(geometry)
        RETURNS SETOF geometry_dump
-       AS '@MODULE_FILENAME@', 'LWGEOM_dump_rings'
+       AS 'MODULE_PATHNAME', 'LWGEOM_dump_rings'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 #endif
@@ -2448,13 +2448,13 @@ CREATEFUNCTION ST_DumpRings(geometry)
 -- Deprecation in 1.2.3
 CREATEFUNCTION combine_bbox(box2d,geometry)
        RETURNS box2d
-       AS '@MODULE_FILENAME@', 'BOX2DFLOAT4_combine'
+       AS 'MODULE_PATHNAME', 'BOX2DFLOAT4_combine'
        LANGUAGE 'C' _IMMUTABLE;
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_Combine_BBox(box2d,geometry)
        RETURNS box2d
-       AS '@MODULE_FILENAME@', 'BOX2DFLOAT4_combine'
+       AS 'MODULE_PATHNAME', 'BOX2DFLOAT4_combine'
        LANGUAGE 'C' _IMMUTABLE;
 
 -- Deprecation in 1.2.3
@@ -2474,13 +2474,13 @@ CREATE AGGREGATE ST_Extent(
 -- Deprecation in 1.2.3
 CREATEFUNCTION combine_bbox(box3d,geometry)
        RETURNS box3d
-       AS '@MODULE_FILENAME@', 'BOX3D_combine'
+       AS 'MODULE_PATHNAME', 'BOX3D_combine'
        LANGUAGE 'C' _IMMUTABLE;
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_Combine_BBox(box3d,geometry)
        RETURNS box3d
-       AS '@MODULE_FILENAME@', 'BOX3D_combine'
+       AS 'MODULE_PATHNAME', 'BOX3D_combine'
        LANGUAGE 'C' _IMMUTABLE;
 
 -- Deprecation in 1.2.3
@@ -2507,13 +2507,13 @@ CREATE AGGREGATE ST_Extent3d(
 -- Deprecation in 1.2.3
 CREATEFUNCTION create_histogram2d(box2d,int)
        RETURNS histogram2d
-       AS '@MODULE_FILENAME@','create_lwhistogram2d'
+       AS 'MODULE_PATHNAME','create_lwhistogram2d'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_create_histogram2d(box2d,int)
        RETURNS histogram2d
-       AS '@MODULE_FILENAME@','create_lwhistogram2d'
+       AS 'MODULE_PATHNAME','create_lwhistogram2d'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -----------------------------------------------------------------------
@@ -2522,16 +2522,16 @@ CREATEFUNCTION ST_create_histogram2d(box2d,int)
 -- Deprecation in 1.2.3
 CREATEFUNCTION build_histogram2d (histogram2d,text,text)
        RETURNS histogram2d
-       AS '@MODULE_FILENAME@','build_lwhistogram2d'
+       AS 'MODULE_PATHNAME','build_lwhistogram2d'
        LANGUAGE 'C' _STABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_build_histogram2d (histogram2d,text,text)
        RETURNS histogram2d
-       AS '@MODULE_FILENAME@','build_lwhistogram2d'
+       AS 'MODULE_PATHNAME','build_lwhistogram2d'
        LANGUAGE 'C' _STABLE_STRICT; -- WITH (isstrict);
 
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
 -----------------------------------------------------------------------
 -- BUILD_HISTOGRAM2D(<histogram2d>,<schema>,<tablename>,<columnname>)
 -----------------------------------------------------------------------
@@ -2568,13 +2568,13 @@ LANGUAGE 'plpgsql' _STABLE_STRICT; -- WITH (isstrict);
 -- Deprecation in 1.2.3
 CREATEFUNCTION explode_histogram2d (histogram2d,text)
        RETURNS histogram2d
-       AS '@MODULE_FILENAME@','explode_lwhistogram2d'
+       AS 'MODULE_PATHNAME','explode_lwhistogram2d'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_explode_histogram2d (histogram2d,text)
        RETURNS histogram2d
-       AS '@MODULE_FILENAME@','explode_lwhistogram2d'
+       AS 'MODULE_PATHNAME','explode_lwhistogram2d'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -----------------------------------------------------------------------
@@ -2583,13 +2583,13 @@ CREATEFUNCTION ST_explode_histogram2d (histogram2d,text)
 -- Deprecation in 1.2.3
 CREATEFUNCTION estimate_histogram2d(histogram2d,box2d)
        RETURNS float8
-       AS '@MODULE_FILENAME@','estimate_lwhistogram2d'
+       AS 'MODULE_PATHNAME','estimate_lwhistogram2d'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_estimate_histogram2d(histogram2d,box2d)
        RETURNS float8
-       AS '@MODULE_FILENAME@','estimate_lwhistogram2d'
+       AS 'MODULE_PATHNAME','estimate_lwhistogram2d'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -----------------------------------------------------------------------
@@ -2597,12 +2597,12 @@ CREATEFUNCTION ST_estimate_histogram2d(histogram2d,box2d)
 -----------------------------------------------------------------------
 -- Deprecation in 1.2.3
 CREATEFUNCTION estimated_extent(text,text,text) RETURNS box2d AS
-       '@MODULE_FILENAME@', 'LWGEOM_estimated_extent'
+       'MODULE_PATHNAME', 'LWGEOM_estimated_extent'
        LANGUAGE 'C' _IMMUTABLE_STRICT _SECURITY_DEFINER;
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_estimated_extent(text,text,text) RETURNS box2d AS
-       '@MODULE_FILENAME@', 'LWGEOM_estimated_extent'
+       'MODULE_PATHNAME', 'LWGEOM_estimated_extent'
        LANGUAGE 'C' _IMMUTABLE_STRICT _SECURITY_DEFINER;
 
 -----------------------------------------------------------------------
@@ -2610,12 +2610,12 @@ CREATEFUNCTION ST_estimated_extent(text,text,text) RETURNS box2d AS
 -----------------------------------------------------------------------
 -- Deprecation in 1.2.3
 CREATEFUNCTION estimated_extent(text,text) RETURNS box2d AS
-       '@MODULE_FILENAME@', 'LWGEOM_estimated_extent'
+       'MODULE_PATHNAME', 'LWGEOM_estimated_extent'
        LANGUAGE 'C' _IMMUTABLE_STRICT _SECURITY_DEFINER; 
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_estimated_extent(text,text) RETURNS box2d AS
-       '@MODULE_FILENAME@', 'LWGEOM_estimated_extent'
+       'MODULE_PATHNAME', 'LWGEOM_estimated_extent'
        LANGUAGE 'C' _IMMUTABLE_STRICT _SECURITY_DEFINER; 
 
 -----------------------------------------------------------------------
@@ -2713,7 +2713,7 @@ CREATE TABLE geometry_columns (
        coord_dimension integer not null,
        srid integer not null,
        type varchar(30) not null,
-#if USE_VERSION < 80
+#if POSTGIS_PGSQL_VERSION < 80
        attrelid oid,
        varattnum int,
        stats histogram2d,
@@ -2765,12 +2765,12 @@ DECLARE
        result text;
        linked integer;
        deleted integer;
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
        foundschema integer;
 #endif
 BEGIN
 
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
        -- Since 7.3 schema support has been added.
        -- Previous postgis versions used to put the database name in
        -- the schema column. This needs to be fixed, so we try to 
@@ -2812,7 +2812,7 @@ BEGIN
        GET DIAGNOSTICS foundschema = ROW_COUNT;
 #endif
 
-#if USE_VERSION >= 80
+#if POSTGIS_PGSQL_VERSION >= 80
        -- no linkage to system table needed
        return ''fixed:''||foundschema::text;
 #endif
@@ -2823,14 +2823,14 @@ BEGIN
                SELECT gc.oid as gcrec,
                        a.attrelid as attrelid, a.attnum as attnum
                 FROM geometry_columns gc, pg_class c,
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                pg_namespace n, pg_attribute a
 #else
                pg_attribute a
 #endif
                 WHERE ( gc.attrelid IS NULL OR gc.attrelid != a.attrelid 
                        OR gc.varattnum IS NULL OR gc.varattnum != a.attnum)
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                 AND n.nspname = gc.f_table_schema::name
                 AND c.relnamespace = n.oid
 #endif
@@ -2852,7 +2852,7 @@ BEGIN
        GET DIAGNOSTICS deleted = ROW_COUNT;
 
        result = 
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                ''fixed:'' || foundschema::text ||
 #endif
                '' linked:'' || linked::text || 
@@ -2888,7 +2888,7 @@ BEGIN
 
        SELECT count(*) INTO probed
                FROM pg_class c, pg_attribute a, pg_type t, 
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                        pg_namespace n,
                        pg_constraint sridcheck, pg_constraint typecheck
 #else
@@ -2898,13 +2898,13 @@ BEGIN
                WHERE t.typname = ''geometry''
                AND a.atttypid = t.oid
                AND a.attrelid = c.oid
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                AND c.relnamespace = n.oid
                AND sridcheck.connamespace = n.oid
                AND typecheck.connamespace = n.oid
 #endif
 
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                AND sridcheck.conrelid = c.oid
                AND sridcheck.consrc LIKE ''(srid(''||a.attname||'') = %)''
                AND typecheck.conrelid = c.oid
@@ -2921,7 +2921,7 @@ BEGIN
 
        INSERT INTO geometry_columns SELECT
                ''''::varchar as f_table_catalogue,
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                n.nspname::varchar as f_table_schema,
 #else
                ''''::varchar as f_table_schema,
@@ -2929,7 +2929,7 @@ BEGIN
                c.relname::varchar as f_table_name,
                a.attname::varchar as f_geometry_column,
                2 as coord_dimension,
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                trim(both  '' =)'' from substr(sridcheck.consrc,
                        strpos(sridcheck.consrc, ''='')))::integer as srid,
                trim(both '' =)'''''' from substr(typecheck.consrc, 
@@ -2947,13 +2947,13 @@ BEGIN
                        ))::varchar as type
 #endif
 
-#if USE_VERSION < 80
+#if POSTGIS_PGSQL_VERSION < 80
                , a.attrelid,
                a.attnum as varattnum,
                null::histogram2d as stats
 #endif
                FROM pg_class c, pg_attribute a, pg_type t, 
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                        pg_namespace n,
                        pg_constraint sridcheck, pg_constraint typecheck
 #else
@@ -2962,7 +2962,7 @@ BEGIN
                WHERE t.typname = ''geometry''
                AND a.atttypid = t.oid
                AND a.attrelid = c.oid
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                AND c.relnamespace = n.oid
                AND sridcheck.connamespace = n.oid
                AND typecheck.connamespace = n.oid
@@ -2982,7 +2982,7 @@ BEGIN
                 AND NOT EXISTS (
                         SELECT oid FROM geometry_columns gc
                         WHERE c.relname::varchar = gc.f_table_name
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                         AND n.nspname::varchar = gc.f_table_schema
 #endif
                         AND a.attname::varchar = gc.f_geometry_column
@@ -3034,7 +3034,7 @@ DECLARE
        new_srid alias for $5;
        new_type alias for $6;
        new_dim alias for $7;
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
        rec RECORD;
        schema_ok bool;
        real_schema name;
@@ -3093,7 +3093,7 @@ BEGIN
                return ''fail'';
        END IF;
 
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
        IF ( schema_name != '''' ) THEN
                schema_ok = ''f'';
                FOR rec IN SELECT nspname FROM pg_namespace WHERE text(nspname) = schema_name LOOP
@@ -3116,7 +3116,7 @@ BEGIN
        -- Add geometry column
 
        EXECUTE ''ALTER TABLE '' ||
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                quote_ident(real_schema) || ''.'' || quote_ident(table_name)
 #else
                quote_ident(table_name)
@@ -3130,7 +3130,7 @@ BEGIN
        EXECUTE ''DELETE FROM geometry_columns WHERE
                f_table_catalog = '' || quote_literal('''') || 
                '' AND f_table_schema = '' ||
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                quote_literal(real_schema) || 
 #else
                quote_literal('''') || 
@@ -3143,7 +3143,7 @@ BEGIN
 
        EXECUTE ''INSERT INTO geometry_columns VALUES ('' ||
                quote_literal('''') || '','' ||
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                quote_literal(real_schema) || '','' ||
 #else
                quote_literal('''') || '','' ||
@@ -3156,7 +3156,7 @@ BEGIN
        -- Add table checks
 
        EXECUTE ''ALTER TABLE '' || 
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                quote_ident(real_schema) || ''.'' || quote_ident(table_name)
 #else
                quote_ident(table_name)
@@ -3167,7 +3167,7 @@ BEGIN
                '') = '' || new_srid::text || '')'' ;
 
        EXECUTE ''ALTER TABLE '' || 
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                quote_ident(real_schema) || ''.'' || quote_ident(table_name)
 #else
                quote_ident(table_name)
@@ -3179,7 +3179,7 @@ BEGIN
 
        IF (not(new_type = ''GEOMETRY'')) THEN
                EXECUTE ''ALTER TABLE '' || 
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                quote_ident(real_schema) || ''.'' || quote_ident(table_name)
 #else
                quote_ident(table_name)
@@ -3193,7 +3193,7 @@ BEGIN
        END IF;
 
        return 
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                real_schema || ''.'' || 
 #endif
                table_name || ''.'' || column_name ||
@@ -3266,7 +3266,7 @@ DECLARE
 BEGIN
 
 
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
        -- Find, check or fix schema_name
        IF ( schema_name != '''' ) THEN
                okay = ''f'';
@@ -3304,7 +3304,7 @@ BEGIN
                quote_literal(table_name)  || '' and f_geometry_column = '' ||
                quote_literal(column_name);
        
-#if USE_VERSION < 73
+#if POSTGIS_PGSQL_VERSION < 73
        -- Remove not-null constraint to table column 
        EXECUTE ''update pg_attribute set attnotnull = false from pg_class where pg_attribute.attrelid = pg_class.oid and pg_class.relname = '' || quote_literal(table_name) ||'' and pg_attribute.attname = '' || quote_literal(column_name);
        -- update the given table/column so that it it all NULLS
@@ -3389,7 +3389,7 @@ DECLARE
 
 BEGIN
 
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
        IF ( schema_name = '''' ) THEN
                SELECT current_schema() into real_schema;
        ELSE
@@ -3399,7 +3399,7 @@ BEGIN
 
        -- Remove refs from geometry_columns table
        EXECUTE ''DELETE FROM geometry_columns WHERE '' ||
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                ''f_table_schema = '' || quote_literal(real_schema) ||
                '' AND '' ||
 #endif
@@ -3407,13 +3407,13 @@ BEGIN
        
        -- Remove table 
        EXECUTE ''DROP TABLE ''
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                || quote_ident(real_schema) || ''.'' ||
 #endif 
                quote_ident(table_name);
 
        RETURN
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                real_schema || ''.'' ||
 #endif 
                table_name ||'' dropped.'';
@@ -3473,7 +3473,7 @@ DECLARE
 BEGIN
 
 
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
        -- Find, check or fix schema_name
        IF ( schema_name != '''' ) THEN
                okay = ''f'';
@@ -3513,7 +3513,7 @@ BEGIN
        cname = ''enforce_srid_''  || column_name;
 
        -- Drop enforce_srid constraint
-#if USE_VERSION < 73
+#if POSTGIS_PGSQL_VERSION < 73
        EXECUTE ''ALTER TABLE '' || quote_ident(table_name) ||
 #else
        EXECUTE ''ALTER TABLE '' || quote_ident(real_schema) ||
@@ -3522,7 +3522,7 @@ BEGIN
                '' DROP constraint '' || quote_ident(cname);
 
        -- Update geometries SRID
-#if USE_VERSION < 73
+#if POSTGIS_PGSQL_VERSION < 73
        EXECUTE ''UPDATE '' || quote_ident(table_name) ||
 #else
        EXECUTE ''UPDATE '' || quote_ident(real_schema) ||
@@ -3533,7 +3533,7 @@ BEGIN
                '', '' || new_srid::text || '')'';
 
        -- Reset enforce_srid constraint
-#if USE_VERSION < 73
+#if POSTGIS_PGSQL_VERSION < 73
        EXECUTE ''ALTER TABLE '' || quote_ident(table_name) ||
 #else
        EXECUTE ''ALTER TABLE '' || quote_ident(real_schema) ||
@@ -3592,7 +3592,7 @@ LANGUAGE 'plpgsql' _VOLATILE_STRICT; -- WITH (isstrict);
 -- It is defined also for PG>=75 for back-compatibility
 --
 -----------------------------------------------------------------------
-#if USE_VERSION >= 80
+#if POSTGIS_PGSQL_VERSION >= 80
 CREATEFUNCTION update_geometry_stats() RETURNS text
 AS ' SELECT ''update_geometry_stats() has been obsoleted. Statistics are automatically built running the ANALYZE command''::text' LANGUAGE 'sql';
 #else
@@ -3606,7 +3606,7 @@ DECLARE
 BEGIN
 
        UPDATE geometry_columns SET
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                stats = (build_histogram2d(create_histogram2d(
                        find_extent(f_table_schema, f_table_name, f_geometry_column), 40), f_table_schema, f_table_name, f_geometry_column))
                FROM pg_class c, pg_attribute a, pg_namespace n
@@ -3645,7 +3645,7 @@ LANGUAGE 'plpgsql' _VOLATILE_STRICT;
 -- It is defined also for PG>=75 for back-compatibility
 --
 -----------------------------------------------------------------------
-#if USE_VERSION >= 80
+#if POSTGIS_PGSQL_VERSION >= 80
 CREATEFUNCTION update_geometry_stats(varchar,varchar) RETURNS text
 AS 'SELECT update_geometry_stats();' LANGUAGE 'sql' ;
 #else
@@ -3660,7 +3660,7 @@ DECLARE
 BEGIN
 
        EXECUTE ''UPDATE geometry_columns SET
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
                        stats = (build_histogram2d(create_histogram2d(
                                find_extent(f_table_schema,
                                        f_table_name,
@@ -3753,18 +3753,18 @@ LANGUAGE 'plpgsql' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 CREATEFUNCTION transform_geometry(geometry,text,text,int)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','transform_geom'
+       AS 'MODULE_PATHNAME','transform_geom'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 CREATEFUNCTION transform(geometry,integer)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','transform'
+       AS 'MODULE_PATHNAME','transform'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: transform(geometry,integer)
 CREATEFUNCTION ST_Transform(geometry,integer)
     RETURNS geometry
-    AS '@MODULE_FILENAME@','transform'
+    AS 'MODULE_PATHNAME','transform'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 
@@ -3773,11 +3773,11 @@ CREATEFUNCTION ST_Transform(geometry,integer)
 -----------------------------------------------------------------------
 
 CREATEFUNCTION postgis_version() RETURNS text
-       AS '@MODULE_FILENAME@'
+       AS 'MODULE_PATHNAME'
        LANGUAGE 'C' _IMMUTABLE;
 
 CREATEFUNCTION postgis_proj_version() RETURNS text
-       AS '@MODULE_FILENAME@'
+       AS 'MODULE_PATHNAME'
        LANGUAGE 'C' _IMMUTABLE;
 
 --
@@ -3787,36 +3787,36 @@ CREATEFUNCTION postgis_proj_version() RETURNS text
 -- Do not modify this w/out also changing postgis_proc_upgrade.pl
 --
 CREATEFUNCTION postgis_scripts_installed() RETURNS text
-        AS 'SELECT ''@POSTGIS_SCRIPTS_VERSION@''::text AS version'
+        AS _POSTGIS_SQL_SELECT_POSTGIS_VERSION
         LANGUAGE 'sql' _IMMUTABLE;
 
 CREATEFUNCTION postgis_lib_version() RETURNS text
-       AS '@MODULE_FILENAME@'
+       AS 'MODULE_PATHNAME'
        LANGUAGE 'C' _IMMUTABLE; -- a new lib will require a new session
 
 -- NOTE: starting at 1.1.0 this is the same of postgis_lib_version()
 CREATEFUNCTION postgis_scripts_released() RETURNS text
-       AS '@MODULE_FILENAME@'
+       AS 'MODULE_PATHNAME'
        LANGUAGE 'C' _IMMUTABLE;
 
 CREATEFUNCTION postgis_uses_stats() RETURNS bool
-       AS '@MODULE_FILENAME@'
+       AS 'MODULE_PATHNAME'
        LANGUAGE 'C' _IMMUTABLE;
 
 CREATEFUNCTION postgis_geos_version() RETURNS text
-       AS '@MODULE_FILENAME@'
+       AS 'MODULE_PATHNAME'
        LANGUAGE 'C' _IMMUTABLE;
 
 CREATEFUNCTION postgis_jts_version() RETURNS text
-       AS '@MODULE_FILENAME@'
+       AS 'MODULE_PATHNAME'
        LANGUAGE 'C' _IMMUTABLE;
 
 CREATEFUNCTION postgis_scripts_build_date() RETURNS text
-        AS 'SELECT ''@POSTGIS_BUILD_DATE@''::text AS version'
+        AS _POSTGIS_SQL_SELECT_POSTGIS_BUILD_DATE
         LANGUAGE 'sql' _IMMUTABLE;
 
 CREATEFUNCTION postgis_lib_build_date() RETURNS text
-       AS '@MODULE_FILENAME@'
+       AS 'MODULE_PATHNAME'
        LANGUAGE 'C' _IMMUTABLE;
 
 
@@ -3878,85 +3878,85 @@ LANGUAGE 'plpgsql' _IMMUTABLE;
 -- Deprecation in 1.2.3
 CREATEFUNCTION box2d(geometry)
         RETURNS box2d
-        AS '@MODULE_FILENAME@','LWGEOM_to_BOX2DFLOAT4'
+        AS 'MODULE_PATHNAME','LWGEOM_to_BOX2DFLOAT4'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box2d(geometry)
         RETURNS box2d
-        AS '@MODULE_FILENAME@','LWGEOM_to_BOX2DFLOAT4'
+        AS 'MODULE_PATHNAME','LWGEOM_to_BOX2DFLOAT4'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION box3d(geometry)
         RETURNS box3d
-        AS '@MODULE_FILENAME@','LWGEOM_to_BOX3D'
+        AS 'MODULE_PATHNAME','LWGEOM_to_BOX3D'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box3d(geometry)
         RETURNS box3d
-        AS '@MODULE_FILENAME@','LWGEOM_to_BOX3D'
+        AS 'MODULE_PATHNAME','LWGEOM_to_BOX3D'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION box(geometry)
         RETURNS box
-        AS '@MODULE_FILENAME@','LWGEOM_to_BOX'
+        AS 'MODULE_PATHNAME','LWGEOM_to_BOX'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box(geometry)
         RETURNS box
-        AS '@MODULE_FILENAME@','LWGEOM_to_BOX'
+        AS 'MODULE_PATHNAME','LWGEOM_to_BOX'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION box2d(box3d)
         RETURNS box2d
-        AS '@MODULE_FILENAME@','BOX3D_to_BOX2DFLOAT4'
+        AS 'MODULE_PATHNAME','BOX3D_to_BOX2DFLOAT4'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box2d(box3d)
         RETURNS box2d
-        AS '@MODULE_FILENAME@','BOX3D_to_BOX2DFLOAT4'
+        AS 'MODULE_PATHNAME','BOX3D_to_BOX2DFLOAT4'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION box3d(box2d)
         RETURNS box3d
-        AS '@MODULE_FILENAME@','BOX2DFLOAT4_to_BOX3D'
+        AS 'MODULE_PATHNAME','BOX2DFLOAT4_to_BOX3D'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box3d(box2d)
         RETURNS box3d
-        AS '@MODULE_FILENAME@','BOX2DFLOAT4_to_BOX3D'
+        AS 'MODULE_PATHNAME','BOX2DFLOAT4_to_BOX3D'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION box(box3d)
         RETURNS box
-        AS '@MODULE_FILENAME@','BOX3D_to_BOX'
+        AS 'MODULE_PATHNAME','BOX3D_to_BOX'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_box(box3d)
         RETURNS box
-        AS '@MODULE_FILENAME@','BOX3D_to_BOX'
+        AS 'MODULE_PATHNAME','BOX3D_to_BOX'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION text(geometry)
         RETURNS text
-        AS '@MODULE_FILENAME@','LWGEOM_to_text'
+        AS 'MODULE_PATHNAME','LWGEOM_to_text'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_text(geometry)
         RETURNS text
-        AS '@MODULE_FILENAME@','LWGEOM_to_text'
+        AS 'MODULE_PATHNAME','LWGEOM_to_text'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- this is kept for backward-compatibility
@@ -3969,89 +3969,89 @@ CREATEFUNCTION box3dtobox(box3d)
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry(box2d)
         RETURNS geometry
-        AS '@MODULE_FILENAME@','BOX2DFLOAT4_to_LWGEOM'
+        AS 'MODULE_PATHNAME','BOX2DFLOAT4_to_LWGEOM'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry(box2d)
         RETURNS geometry
-        AS '@MODULE_FILENAME@','BOX2DFLOAT4_to_LWGEOM'
+        AS 'MODULE_PATHNAME','BOX2DFLOAT4_to_LWGEOM'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry(box3d)
         RETURNS geometry
-        AS '@MODULE_FILENAME@','BOX3D_to_LWGEOM'
+        AS 'MODULE_PATHNAME','BOX3D_to_LWGEOM'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry(box3d)
         RETURNS geometry
-        AS '@MODULE_FILENAME@','BOX3D_to_LWGEOM'
+        AS 'MODULE_PATHNAME','BOX3D_to_LWGEOM'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry(text)
         RETURNS geometry
-        AS '@MODULE_FILENAME@','parse_WKT_lwgeom'
+        AS 'MODULE_PATHNAME','parse_WKT_lwgeom'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry(text)
         RETURNS geometry
-        AS '@MODULE_FILENAME@','parse_WKT_lwgeom'
+        AS 'MODULE_PATHNAME','parse_WKT_lwgeom'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry(chip)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','CHIP_to_LWGEOM'
+       AS 'MODULE_PATHNAME','CHIP_to_LWGEOM'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry(chip)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','CHIP_to_LWGEOM'
+       AS 'MODULE_PATHNAME','CHIP_to_LWGEOM'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION geometry(bytea)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOM_from_bytea'
+       AS 'MODULE_PATHNAME','LWGEOM_from_bytea'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_geometry(bytea)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOM_from_bytea'
+       AS 'MODULE_PATHNAME','LWGEOM_from_bytea'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION bytea(geometry)
        RETURNS bytea
-       AS '@MODULE_FILENAME@','LWGEOM_to_bytea'
+       AS 'MODULE_PATHNAME','LWGEOM_to_bytea'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_bytea(geometry)
        RETURNS bytea
-       AS '@MODULE_FILENAME@','LWGEOM_to_bytea'
+       AS 'MODULE_PATHNAME','LWGEOM_to_bytea'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION text(bool)
        RETURNS text
-       AS '@MODULE_FILENAME@','BOOL_to_text'
+       AS 'MODULE_PATHNAME','BOOL_to_text'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_text(bool)
        RETURNS text
-       AS '@MODULE_FILENAME@','BOOL_to_text'
+       AS 'MODULE_PATHNAME','BOOL_to_text'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- 7.3+ explicit casting definitions
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
 CREATE CAST (geometry AS box2d) WITH FUNCTION ST_box2d(geometry) AS IMPLICIT;
 CREATE CAST (geometry AS box3d) WITH FUNCTION ST_box3d(geometry) AS IMPLICIT;
 CREATE CAST (geometry AS box) WITH FUNCTION ST_box(geometry) AS IMPLICIT;
@@ -4075,26 +4075,26 @@ CREATE CAST (geometry AS bytea) WITH FUNCTION ST_bytea(geometry) AS IMPLICIT;
 -- Deprecation in 1.2.3
 CREATEFUNCTION Simplify(geometry, float8)
    RETURNS geometry
-   AS '@MODULE_FILENAME@', 'LWGEOM_simplify2d'
+   AS 'MODULE_PATHNAME', 'LWGEOM_simplify2d'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_Simplify(geometry, float8)
    RETURNS geometry
-   AS '@MODULE_FILENAME@', 'LWGEOM_simplify2d'
+   AS 'MODULE_PATHNAME', 'LWGEOM_simplify2d'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- SnapToGrid(input, xoff, yoff, xsize, ysize)
 -- Deprecation in 1.2.3
 CREATEFUNCTION SnapToGrid(geometry, float8, float8, float8, float8)
    RETURNS geometry
-   AS '@MODULE_FILENAME@', 'LWGEOM_snaptogrid'
+   AS 'MODULE_PATHNAME', 'LWGEOM_snaptogrid'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_SnapToGrid(geometry, float8, float8, float8, float8)
    RETURNS geometry
-   AS '@MODULE_FILENAME@', 'LWGEOM_snaptogrid'
+   AS 'MODULE_PATHNAME', 'LWGEOM_snaptogrid'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- SnapToGrid(input, xsize, ysize) # offsets=0
@@ -4127,25 +4127,25 @@ CREATEFUNCTION ST_SnapToGrid(geometry, float8)
 -- Deprecation in 1.2.3
 CREATEFUNCTION SnapToGrid(geometry, geometry, float8, float8, float8, float8)
    RETURNS geometry
-   AS '@MODULE_FILENAME@', 'LWGEOM_snaptogrid_pointoff'
+   AS 'MODULE_PATHNAME', 'LWGEOM_snaptogrid_pointoff'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_SnapToGrid(geometry, geometry, float8, float8, float8, float8)
    RETURNS geometry
-   AS '@MODULE_FILENAME@', 'LWGEOM_snaptogrid_pointoff'
+   AS 'MODULE_PATHNAME', 'LWGEOM_snaptogrid_pointoff'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION Segmentize(geometry, float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_segmentize2d'
+       AS 'MODULE_PATHNAME', 'LWGEOM_segmentize2d'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_Segmentize(geometry, float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_segmentize2d'
+       AS 'MODULE_PATHNAME', 'LWGEOM_segmentize2d'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 ---------------------------------------------------------------
@@ -4155,49 +4155,49 @@ CREATEFUNCTION ST_Segmentize(geometry, float8)
 -- Deprecation in 1.2.3
 CREATEFUNCTION line_interpolate_point(geometry, float8)
    RETURNS geometry
-   AS '@MODULE_FILENAME@', 'LWGEOM_line_interpolate_point'
+   AS 'MODULE_PATHNAME', 'LWGEOM_line_interpolate_point'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_line_interpolate_point(geometry, float8)
    RETURNS geometry
-   AS '@MODULE_FILENAME@', 'LWGEOM_line_interpolate_point'
+   AS 'MODULE_PATHNAME', 'LWGEOM_line_interpolate_point'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION line_substring(geometry, float8, float8)
    RETURNS geometry
-   AS '@MODULE_FILENAME@', 'LWGEOM_line_substring'
+   AS 'MODULE_PATHNAME', 'LWGEOM_line_substring'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_line_substring(geometry, float8, float8)
    RETURNS geometry
-   AS '@MODULE_FILENAME@', 'LWGEOM_line_substring'
+   AS 'MODULE_PATHNAME', 'LWGEOM_line_substring'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION line_locate_point(geometry, geometry)
    RETURNS float8
-   AS '@MODULE_FILENAME@', 'LWGEOM_line_locate_point'
+   AS 'MODULE_PATHNAME', 'LWGEOM_line_locate_point'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_line_locate_point(geometry, geometry)
    RETURNS float8
-   AS '@MODULE_FILENAME@', 'LWGEOM_line_locate_point'
+   AS 'MODULE_PATHNAME', 'LWGEOM_line_locate_point'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION locate_between_measures(geometry, float8, float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_locate_between_m'
+       AS 'MODULE_PATHNAME', 'LWGEOM_locate_between_m'
        LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_locate_between_measures(geometry, float8, float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_locate_between_m'
+       AS 'MODULE_PATHNAME', 'LWGEOM_locate_between_m'
        LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 -- Deprecation in 1.2.3
@@ -4219,118 +4219,118 @@ CREATEFUNCTION ST_locate_along_measure(geometry, float8)
 -- Deprecation in 1.2.3
 CREATEFUNCTION intersection(geometry,geometry)
    RETURNS geometry
-   AS '@MODULE_FILENAME@','intersection'
+   AS 'MODULE_PATHNAME','intersection'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: intersection(geometry,geometry)
 CREATEFUNCTION ST_Intersection(geometry,geometry)
     RETURNS geometry
-    AS '@MODULE_FILENAME@','intersection'
+    AS 'MODULE_PATHNAME','intersection'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION buffer(geometry,float8)
    RETURNS geometry
-   AS '@MODULE_FILENAME@','buffer'
+   AS 'MODULE_PATHNAME','buffer'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: buffer(geometry,float8)
 CREATEFUNCTION ST_Buffer(geometry,float8)
     RETURNS geometry
-    AS '@MODULE_FILENAME@','buffer'
+    AS 'MODULE_PATHNAME','buffer'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION buffer(geometry,float8,integer)
    RETURNS geometry
-   AS '@MODULE_FILENAME@','buffer'
+   AS 'MODULE_PATHNAME','buffer'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_buffer(geometry,float8,integer)
    RETURNS geometry
-   AS '@MODULE_FILENAME@','buffer'
+   AS 'MODULE_PATHNAME','buffer'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
    
 -- Deprecation in 1.2.3
 CREATEFUNCTION convexhull(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','convexhull'
+       AS 'MODULE_PATHNAME','convexhull'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: convexhull(geometry)
 CREATEFUNCTION ST_ConvexHull(geometry)
     RETURNS geometry
-    AS '@MODULE_FILENAME@','convexhull'
+    AS 'MODULE_PATHNAME','convexhull'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
-#if GEOS_VERNUM >= 30
+#if POSTGIS_GEOS_VERSION >= 30
 -- Requires GEOS >= 3.0.0
 -- Availability: 1.3.3
 CREATEFUNCTION ST_SimplifyPreserveTopology(geometry, float8)
     RETURNS geometry
-    AS '@MODULE_FILENAME@','topologypreservesimplify'
+    AS 'MODULE_PATHNAME','topologypreservesimplify'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 #endif
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION difference(geometry,geometry)
        RETURNS geometry
-        AS '@MODULE_FILENAME@','difference'
+        AS 'MODULE_PATHNAME','difference'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: difference(geometry,geometry)
 CREATEFUNCTION ST_Difference(geometry,geometry)
     RETURNS geometry
-    AS '@MODULE_FILENAME@','difference'
+    AS 'MODULE_PATHNAME','difference'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION boundary(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','boundary'
+       AS 'MODULE_PATHNAME','boundary'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: boundary(geometry)
 CREATEFUNCTION ST_Boundary(geometry)
         RETURNS geometry
-        AS '@MODULE_FILENAME@','boundary'
+        AS 'MODULE_PATHNAME','boundary'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION symdifference(geometry,geometry)
         RETURNS geometry
-        AS '@MODULE_FILENAME@','symdifference'
+        AS 'MODULE_PATHNAME','symdifference'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: symdifference(geometry,geometry)
 CREATEFUNCTION ST_SymDifference(geometry,geometry)
     RETURNS geometry
-    AS '@MODULE_FILENAME@','symdifference'
+    AS 'MODULE_PATHNAME','symdifference'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION symmetricdifference(geometry,geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','symdifference'
+       AS 'MODULE_PATHNAME','symdifference'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_symmetricdifference(geometry,geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','symdifference'
+       AS 'MODULE_PATHNAME','symdifference'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION GeomUnion(geometry,geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','geomunion'
+       AS 'MODULE_PATHNAME','geomunion'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: GeomUnion(geometry,geometry)
 CREATEFUNCTION ST_Union(geometry,geometry)
     RETURNS geometry
-    AS '@MODULE_FILENAME@','geomunion'
+    AS 'MODULE_PATHNAME','geomunion'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
@@ -4350,13 +4350,13 @@ CREATE AGGREGATE ST_MemUnion (
 -- Deprecation in 1.2.3
 CREATEFUNCTION unite_garray (geometry[])
        RETURNS geometry
-        AS '@MODULE_FILENAME@'
+        AS 'MODULE_PATHNAME'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable); 
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_unite_garray (geometry[])
        RETURNS geometry
-       AS '@MODULE_FILENAME@','unite_garray'
+       AS 'MODULE_PATHNAME','unite_garray'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable); 
 
 -- Deprecation in 1.2.3
@@ -4378,49 +4378,49 @@ CREATE AGGREGATE ST_Union (
 -- Deprecation in 1.2.3
 CREATEFUNCTION relate(geometry,geometry)
    RETURNS text
-   AS '@MODULE_FILENAME@','relate_full'
+   AS 'MODULE_PATHNAME','relate_full'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_relate(geometry,geometry)
    RETURNS text
-   AS '@MODULE_FILENAME@','relate_full'
+   AS 'MODULE_PATHNAME','relate_full'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION relate(geometry,geometry,text)
    RETURNS boolean
-   AS '@MODULE_FILENAME@','relate_pattern'
+   AS 'MODULE_PATHNAME','relate_pattern'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: relate(geometry,geometry,text)
 CREATEFUNCTION ST_Relate(geometry,geometry,text)
     RETURNS boolean
-    AS '@MODULE_FILENAME@','relate_pattern'
+    AS 'MODULE_PATHNAME','relate_pattern'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION disjoint(geometry,geometry)
    RETURNS boolean
-   AS '@MODULE_FILENAME@'
+   AS 'MODULE_PATHNAME'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
    
 -- PostGIS equivalent function: disjoint(geometry,geometry)
 CREATEFUNCTION ST_Disjoint(geometry,geometry)
     RETURNS boolean
-    AS '@MODULE_FILENAME@','disjoint'
+    AS 'MODULE_PATHNAME','disjoint'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION touches(geometry,geometry)
    RETURNS boolean
-   AS '@MODULE_FILENAME@'
+   AS 'MODULE_PATHNAME'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: touches(geometry,geometry)
 CREATEFUNCTION _ST_Touches(geometry,geometry)
     RETURNS boolean
-    AS '@MODULE_FILENAME@','touches'
+    AS 'MODULE_PATHNAME','touches'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
@@ -4439,13 +4439,13 @@ CREATEFUNCTION ST_DWithin(geometry, geometry, float8)
 -- Deprecation in 1.2.3
 CREATEFUNCTION intersects(geometry,geometry)
    RETURNS boolean
-   AS '@MODULE_FILENAME@'
+   AS 'MODULE_PATHNAME'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: intersects(geometry,geometry)
 CREATEFUNCTION _ST_Intersects(geometry,geometry)
     RETURNS boolean
-    AS '@MODULE_FILENAME@','intersects'
+    AS 'MODULE_PATHNAME','intersects'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
@@ -4457,13 +4457,13 @@ CREATEFUNCTION ST_Intersects(geometry,geometry)
 -- Deprecation in 1.2.3
 CREATEFUNCTION crosses(geometry,geometry)
    RETURNS boolean
-   AS '@MODULE_FILENAME@'
+   AS 'MODULE_PATHNAME'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: crosses(geometry,geometry)
 CREATEFUNCTION _ST_Crosses(geometry,geometry)
     RETURNS boolean
-    AS '@MODULE_FILENAME@','crosses'
+    AS 'MODULE_PATHNAME','crosses'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
@@ -4476,13 +4476,13 @@ CREATEFUNCTION ST_Crosses(geometry,geometry)
 -- Deprecation in 1.2.3
 CREATEFUNCTION within(geometry,geometry)
    RETURNS boolean
-   AS '@MODULE_FILENAME@'
+   AS 'MODULE_PATHNAME'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: within(geometry,geometry)
 CREATEFUNCTION _ST_Within(geometry,geometry)
     RETURNS boolean
-    AS '@MODULE_FILENAME@','within'
+    AS 'MODULE_PATHNAME','within'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
@@ -4495,13 +4495,13 @@ CREATEFUNCTION ST_Within(geometry,geometry)
 -- Deprecation in 1.2.3
 CREATEFUNCTION Contains(geometry,geometry)
    RETURNS boolean
-   AS '@MODULE_FILENAME@'
+   AS 'MODULE_PATHNAME'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: contains(geometry,geometry)
 CREATEFUNCTION _ST_Contains(geometry,geometry)
     RETURNS boolean
-    AS '@MODULE_FILENAME@','contains'
+    AS 'MODULE_PATHNAME','contains'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
@@ -4511,11 +4511,11 @@ CREATEFUNCTION ST_Contains(geometry,geometry)
     AS 'SELECT $1 && $2 AND _ST_Contains($1,$2)'
     LANGUAGE 'SQL' _IMMUTABLE; -- WITH (iscachable);
 
-#if GEOS_VERNUM >= 30
+#if POSTGIS_GEOS_VERSION >= 30
 -- Availability: 1.2.2
 CREATEFUNCTION _ST_CoveredBy(geometry,geometry)
    RETURNS boolean
-   AS '@MODULE_FILENAME@', 'coveredby'
+   AS 'MODULE_PATHNAME', 'coveredby'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
@@ -4527,7 +4527,7 @@ CREATEFUNCTION ST_CoveredBy(geometry,geometry)
 -- Availability: 1.2.2
 CREATEFUNCTION _ST_Covers(geometry,geometry)
    RETURNS boolean
-   AS '@MODULE_FILENAME@', 'covers'
+   AS 'MODULE_PATHNAME', 'covers'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
@@ -4541,13 +4541,13 @@ CREATEFUNCTION ST_Covers(geometry,geometry)
 -- Deprecation in 1.2.3
 CREATEFUNCTION overlaps(geometry,geometry)
    RETURNS boolean
-   AS '@MODULE_FILENAME@'
+   AS 'MODULE_PATHNAME'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: overlaps(geometry,geometry)
 CREATEFUNCTION _ST_Overlaps(geometry,geometry)
     RETURNS boolean
-    AS '@MODULE_FILENAME@','overlaps'
+    AS 'MODULE_PATHNAME','overlaps'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
@@ -4560,86 +4560,86 @@ CREATEFUNCTION ST_Overlaps(geometry,geometry)
 -- Deprecation in 1.2.3
 CREATEFUNCTION IsValid(geometry)
    RETURNS boolean
-   AS '@MODULE_FILENAME@', 'isvalid'
+   AS 'MODULE_PATHNAME', 'isvalid'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: IsValid(geometry)
 -- TODO: change null returns to true
 CREATEFUNCTION ST_IsValid(geometry)
     RETURNS boolean
-    AS '@MODULE_FILENAME@', 'isvalid'
+    AS 'MODULE_PATHNAME', 'isvalid'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION GEOSnoop(geometry)
    RETURNS geometry
-   AS '@MODULE_FILENAME@', 'GEOSnoop'
+   AS 'MODULE_PATHNAME', 'GEOSnoop'
    LANGUAGE 'C' _VOLATILE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION JTSnoop(geometry)
    RETURNS geometry
-   AS '@MODULE_FILENAME@', 'JTSnoop'
+   AS 'MODULE_PATHNAME', 'JTSnoop'
    LANGUAGE 'C' _VOLATILE_STRICT; -- WITH (isstrict,iscachable);
 
 -- This is also available w/out GEOS 
 CREATEFUNCTION Centroid(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@'
+       AS 'MODULE_PATHNAME'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: Centroid(geometry)
 CREATEFUNCTION ST_Centroid(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'centroid'
+       AS 'MODULE_PATHNAME', 'centroid'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION IsRing(geometry)
        RETURNS boolean
-       AS '@MODULE_FILENAME@'
+       AS 'MODULE_PATHNAME'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: IsRing(geometry)
 CREATEFUNCTION ST_IsRing(geometry)
        RETURNS boolean
-       AS '@MODULE_FILENAME@', 'isring'
+       AS 'MODULE_PATHNAME', 'isring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION PointOnSurface(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@'
+       AS 'MODULE_PATHNAME'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: PointOnSurface(geometry)
 CREATEFUNCTION ST_PointOnSurface(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'pointonsurface'
+       AS 'MODULE_PATHNAME', 'pointonsurface'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION IsSimple(geometry)
        RETURNS boolean
-       AS '@MODULE_FILENAME@', 'issimple'
+       AS 'MODULE_PATHNAME', 'issimple'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: IsSimple(geometry)     
 CREATEFUNCTION ST_IsSimple(geometry)
         RETURNS boolean
-        AS '@MODULE_FILENAME@', 'issimple'
+        AS 'MODULE_PATHNAME', 'issimple'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION Equals(geometry,geometry)
        RETURNS boolean
-       AS '@MODULE_FILENAME@','geomequals'
+       AS 'MODULE_PATHNAME','geomequals'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: Equals(geometry,geometry)
 CREATEFUNCTION ST_Equals(geometry,geometry)
     RETURNS boolean
-    AS '@MODULE_FILENAME@','geomequals'
+    AS 'MODULE_PATHNAME','geomequals'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -----------------------------------------------------------------------
@@ -4647,12 +4647,12 @@ CREATEFUNCTION ST_Equals(geometry,geometry)
 -- requires GEOS 3.1.0-CAPI-1.5.0 or better
 -----------------------------------------------------------------------
 
-#if GEOS_VERNUM >= 31
+#if POSTGIS_GEOS_VERSION >= 31
 
 -- Availability: 1.4.0
 CREATEFUNCTION _ST_ContainsPrepared(geometry,geometry,integer)
     RETURNS boolean
-    AS '@MODULE_FILENAME@','containsPrepared'
+    AS 'MODULE_PATHNAME','containsPrepared'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.4.0
@@ -4665,7 +4665,7 @@ CREATEFUNCTION ST_Contains(geometry,geometry,integer)
 -- Availability: 1.4.0
 CREATEFUNCTION _ST_ContainsProperlyPrepared(geometry,geometry,integer)
     RETURNS boolean
-    AS '@MODULE_FILENAME@','containsProperlyPrepared'
+    AS 'MODULE_PATHNAME','containsProperlyPrepared'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.4.0
@@ -4685,7 +4685,7 @@ CREATE OR REPLACE FUNCTION ST_ContainsProperly(geometry,geometry)
 -- Availability: 1.4.0
 CREATEFUNCTION _ST_CoversPrepared(geometry,geometry,integer)
     RETURNS boolean
-    AS '@MODULE_FILENAME@','coversPrepared'
+    AS 'MODULE_PATHNAME','coversPrepared'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
        
 -- Availability: 1.4.0
@@ -4698,7 +4698,7 @@ CREATEFUNCTION ST_Covers(geometry,geometry,integer)
 -- Availability: 1.4.0
 CREATEFUNCTION _ST_IntersectsPrepared(geometry,geometry,integer)
     RETURNS boolean
-    AS '@MODULE_FILENAME@','intersectsPrepared'
+    AS 'MODULE_PATHNAME','intersectsPrepared'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
        
 -- Availability: 1.4.0
@@ -4716,37 +4716,37 @@ CREATEFUNCTION ST_Intersects(geometry,geometry,integer)
 -- Deprecation in 1.2.3
 CREATEFUNCTION AsSVG(geometry,int4,int4)
        RETURNS TEXT
-       AS '@MODULE_FILENAME@','assvg_geometry'
+       AS 'MODULE_PATHNAME','assvg_geometry'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_AsSVG(geometry,int4,int4)
        RETURNS TEXT
-       AS '@MODULE_FILENAME@','assvg_geometry'
+       AS 'MODULE_PATHNAME','assvg_geometry'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION AsSVG(geometry,int4)
        RETURNS TEXT
-       AS '@MODULE_FILENAME@','assvg_geometry'
+       AS 'MODULE_PATHNAME','assvg_geometry'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_AsSVG(geometry,int4)
        RETURNS TEXT
-       AS '@MODULE_FILENAME@','assvg_geometry'
+       AS 'MODULE_PATHNAME','assvg_geometry'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION AsSVG(geometry)
        RETURNS TEXT
-       AS '@MODULE_FILENAME@','assvg_geometry'
+       AS 'MODULE_PATHNAME','assvg_geometry'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_AsSVG(geometry)
        RETURNS TEXT
-       AS '@MODULE_FILENAME@','assvg_geometry'
+       AS 'MODULE_PATHNAME','assvg_geometry'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -----------------------------------------------------------------------
@@ -4755,7 +4755,7 @@ CREATEFUNCTION ST_AsSVG(geometry)
 -- _ST_AsGML(version, geom, precision)
 CREATEFUNCTION _ST_AsGML(int4, geometry, int4)
        RETURNS TEXT
-       AS '@MODULE_FILENAME@','LWGEOM_asGML'
+       AS 'MODULE_PATHNAME','LWGEOM_asGML'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- AsGML(geom, precision) / version=2
@@ -4804,10 +4804,9 @@ CREATEFUNCTION ST_AsGML(int4, geometry, int4)
 -- _ST_AsKML(version, geom, precision)
 CREATEFUNCTION _ST_AsKML(int4, geometry, int4)
        RETURNS TEXT
-       AS '@MODULE_FILENAME@','LWGEOM_asKML'
+       AS 'MODULE_PATHNAME','LWGEOM_asKML'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
-#ifdef USE_PROJ
 -- AsKML(geom, precision) / version=2
 -- Deprecation in 1.2.3
 CREATEFUNCTION AsKML(geometry, int4)
@@ -4854,7 +4853,6 @@ CREATEFUNCTION ST_AsKML(int4, geometry, int4)
        RETURNS TEXT
        AS 'SELECT _ST_AsKML($1, transform($2,4326), $3)' 
        LANGUAGE 'SQL' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
-#endif
 
 -----------------------------------------------------------------------
 -- GEOJSON OUTPUT
@@ -4863,7 +4861,7 @@ CREATEFUNCTION ST_AsKML(int4, geometry, int4)
 -- _ST_AsGeoJson(version, geom, precision, options)
 CREATEFUNCTION _ST_AsGeoJson(int4, geometry, int4, int4)
         RETURNS TEXT
-        AS '@MODULE_FILENAME@','LWGEOM_asGeoJson'
+        AS 'MODULE_PATHNAME','LWGEOM_asGeoJson'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- ST_AsGeoJson(geom, precision) / version=1 options=0
@@ -4910,103 +4908,103 @@ CREATEFUNCTION ST_AsGeoJson(int4, geometry, int4, int4)
 -- Deprecation in 1.2.3
 CREATEFUNCTION NumPoints(geometry)
        RETURNS int4
-       AS '@MODULE_FILENAME@', 'LWGEOM_numpoints_linestring'
+       AS 'MODULE_PATHNAME', 'LWGEOM_numpoints_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- PostGIS equivalent function: NumPoints(geometry)
 CREATEFUNCTION ST_NumPoints(geometry)
        RETURNS int4
-       AS '@MODULE_FILENAME@', 'LWGEOM_numpoints_linestring'
+       AS 'MODULE_PATHNAME', 'LWGEOM_numpoints_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION NumGeometries(geometry)
        RETURNS int4
-       AS '@MODULE_FILENAME@', 'LWGEOM_numgeometries_collection'
+       AS 'MODULE_PATHNAME', 'LWGEOM_numgeometries_collection'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- PostGIS equivalent function: NumGeometries(geometry)
 CREATEFUNCTION ST_NumGeometries(geometry)
        RETURNS int4
-       AS '@MODULE_FILENAME@', 'LWGEOM_numgeometries_collection'
+       AS 'MODULE_PATHNAME', 'LWGEOM_numgeometries_collection'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION GeometryN(geometry,integer)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_geometryn_collection'
+       AS 'MODULE_PATHNAME', 'LWGEOM_geometryn_collection'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- PostGIS equivalent function: GeometryN(geometry)
 CREATEFUNCTION ST_GeometryN(geometry,integer)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_geometryn_collection'
+       AS 'MODULE_PATHNAME', 'LWGEOM_geometryn_collection'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION Dimension(geometry)
        RETURNS int4
-       AS '@MODULE_FILENAME@', 'LWGEOM_dimension'
+       AS 'MODULE_PATHNAME', 'LWGEOM_dimension'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- PostGIS equivalent function: Dimension(geometry)
 CREATEFUNCTION ST_Dimension(geometry)
     RETURNS int4
-    AS '@MODULE_FILENAME@', 'LWGEOM_dimension'
+    AS 'MODULE_PATHNAME', 'LWGEOM_dimension'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION ExteriorRing(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOM_exteriorring_polygon'
+       AS 'MODULE_PATHNAME','LWGEOM_exteriorring_polygon'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- PostGIS equivalent function: ExteriorRing(geometry)
 CREATEFUNCTION ST_ExteriorRing(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOM_exteriorring_polygon'
+       AS 'MODULE_PATHNAME','LWGEOM_exteriorring_polygon'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION NumInteriorRings(geometry)
        RETURNS integer
-       AS '@MODULE_FILENAME@','LWGEOM_numinteriorrings_polygon'
+       AS 'MODULE_PATHNAME','LWGEOM_numinteriorrings_polygon'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- PostGIS equivalent function: NumInteriorRings(geometry)
 CREATEFUNCTION ST_NumInteriorRings(geometry)
        RETURNS integer
-       AS '@MODULE_FILENAME@','LWGEOM_numinteriorrings_polygon'
+       AS 'MODULE_PATHNAME','LWGEOM_numinteriorrings_polygon'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION NumInteriorRing(geometry)
        RETURNS integer
-       AS '@MODULE_FILENAME@','LWGEOM_numinteriorrings_polygon'
+       AS 'MODULE_PATHNAME','LWGEOM_numinteriorrings_polygon'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_NumInteriorRing(geometry)
        RETURNS integer
-       AS '@MODULE_FILENAME@','LWGEOM_numinteriorrings_polygon'
+       AS 'MODULE_PATHNAME','LWGEOM_numinteriorrings_polygon'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION InteriorRingN(geometry,integer)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOM_interiorringn_polygon'
+       AS 'MODULE_PATHNAME','LWGEOM_interiorringn_polygon'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- PostGIS equivalent function: InteriorRingN(geometry)
 CREATEFUNCTION ST_InteriorRingN(geometry,integer)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOM_interiorringn_polygon'
+       AS 'MODULE_PATHNAME','LWGEOM_interiorringn_polygon'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION GeometryType(geometry)
        RETURNS text
-       AS '@MODULE_FILENAME@', 'LWGEOM_getTYPE'
+       AS 'MODULE_PATHNAME', 'LWGEOM_getTYPE'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Not quite equivalent to GeometryType
@@ -5039,199 +5037,199 @@ CREATEFUNCTION ST_GeometryType(geometry)
 -- Deprecation in 1.2.3
 CREATEFUNCTION PointN(geometry,integer)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOM_pointn_linestring'
+       AS 'MODULE_PATHNAME','LWGEOM_pointn_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- PostGIS equivalent function: PointN(geometry,integer)
 CREATEFUNCTION ST_PointN(geometry,integer)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOM_pointn_linestring'
+       AS 'MODULE_PATHNAME','LWGEOM_pointn_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION X(geometry)
        RETURNS float8
-       AS '@MODULE_FILENAME@','LWGEOM_x_point'
+       AS 'MODULE_PATHNAME','LWGEOM_x_point'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- PostGIS equivalent function: X(geometry)
 CREATEFUNCTION ST_X(geometry)
        RETURNS float8
-       AS '@MODULE_FILENAME@','LWGEOM_x_point'
+       AS 'MODULE_PATHNAME','LWGEOM_x_point'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION Y(geometry)
        RETURNS float8
-       AS '@MODULE_FILENAME@','LWGEOM_y_point'
+       AS 'MODULE_PATHNAME','LWGEOM_y_point'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
         
 -- PostGIS equivalent function: Y(geometry)
 CREATEFUNCTION ST_Y(geometry)
        RETURNS float8
-       AS '@MODULE_FILENAME@','LWGEOM_y_point'
+       AS 'MODULE_PATHNAME','LWGEOM_y_point'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION Z(geometry)
        RETURNS float8
-       AS '@MODULE_FILENAME@','LWGEOM_z_point'
+       AS 'MODULE_PATHNAME','LWGEOM_z_point'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- PostGIS equivalent function: Z(geometry)
 CREATEFUNCTION SE_Z(geometry)
        RETURNS float8
-       AS '@MODULE_FILENAME@','LWGEOM_z_point'
+       AS 'MODULE_PATHNAME','LWGEOM_z_point'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_Z(geometry)
        RETURNS float8
-       AS '@MODULE_FILENAME@','LWGEOM_z_point'
+       AS 'MODULE_PATHNAME','LWGEOM_z_point'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION M(geometry)
        RETURNS float8
-       AS '@MODULE_FILENAME@','LWGEOM_m_point'
+       AS 'MODULE_PATHNAME','LWGEOM_m_point'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_M(geometry)
        RETURNS float8
-       AS '@MODULE_FILENAME@','LWGEOM_m_point'
+       AS 'MODULE_PATHNAME','LWGEOM_m_point'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION StartPoint(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_startpoint_linestring'
+       AS 'MODULE_PATHNAME', 'LWGEOM_startpoint_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- PostGIS equivalent function: StartPoint(geometry))
 CREATEFUNCTION ST_StartPoint(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_startpoint_linestring'
+       AS 'MODULE_PATHNAME', 'LWGEOM_startpoint_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION EndPoint(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_endpoint_linestring'
+       AS 'MODULE_PATHNAME', 'LWGEOM_endpoint_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- PostGIS equivalent function: EndPoint(geometry))
 CREATEFUNCTION ST_EndPoint(geometry)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_endpoint_linestring'
+       AS 'MODULE_PATHNAME', 'LWGEOM_endpoint_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION IsClosed(geometry)
        RETURNS boolean
-       AS '@MODULE_FILENAME@', 'LWGEOM_isclosed_linestring'
+       AS 'MODULE_PATHNAME', 'LWGEOM_isclosed_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- PostGIS equivalent function: IsClosed(geometry)
 CREATEFUNCTION ST_IsClosed(geometry)
        RETURNS boolean
-       AS '@MODULE_FILENAME@', 'LWGEOM_isclosed_linestring'
+       AS 'MODULE_PATHNAME', 'LWGEOM_isclosed_linestring'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION IsEmpty(geometry)
        RETURNS boolean
-       AS '@MODULE_FILENAME@', 'LWGEOM_isempty'
+       AS 'MODULE_PATHNAME', 'LWGEOM_isempty'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- PostGIS equivalent function: IsEmpty(geometry)
 CREATEFUNCTION ST_IsEmpty(geometry)
     RETURNS boolean
-    AS '@MODULE_FILENAME@', 'LWGEOM_isempty'
+    AS 'MODULE_PATHNAME', 'LWGEOM_isempty'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION SRID(geometry) 
        RETURNS int4
-       AS '@MODULE_FILENAME@','LWGEOM_getSRID'
+       AS 'MODULE_PATHNAME','LWGEOM_getSRID'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: getSRID(geometry)
 CREATEFUNCTION ST_SRID(geometry) 
     RETURNS int4
-    AS '@MODULE_FILENAME@','LWGEOM_getSRID'
+    AS 'MODULE_PATHNAME','LWGEOM_getSRID'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION SetSRID(geometry,int4) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOM_setSRID'
+       AS 'MODULE_PATHNAME','LWGEOM_setSRID'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);  
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_SetSRID(geometry,int4) 
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOM_setSRID'
+       AS 'MODULE_PATHNAME','LWGEOM_setSRID'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);  
        
 -- Deprecation in 1.2.3
 CREATEFUNCTION AsBinary(geometry)
        RETURNS bytea
-       AS '@MODULE_FILENAME@','LWGEOM_asBinary'
+       AS 'MODULE_PATHNAME','LWGEOM_asBinary'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: AsBinary(geometry)
 CREATEFUNCTION ST_AsBinary(geometry)
     RETURNS bytea
-    AS '@MODULE_FILENAME@','LWGEOM_asBinary'
+    AS 'MODULE_PATHNAME','LWGEOM_asBinary'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION AsBinary(geometry,text)
        RETURNS bytea
-       AS '@MODULE_FILENAME@','LWGEOM_asBinary'
+       AS 'MODULE_PATHNAME','LWGEOM_asBinary'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_AsBinary(geometry,text)
        RETURNS bytea
-       AS '@MODULE_FILENAME@','LWGEOM_asBinary'
+       AS 'MODULE_PATHNAME','LWGEOM_asBinary'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION AsText(geometry)
        RETURNS TEXT
-       AS '@MODULE_FILENAME@','LWGEOM_asText'
+       AS 'MODULE_PATHNAME','LWGEOM_asText'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- PostGIS equivalent function: AsText(geometry)
 CREATEFUNCTION ST_AsText(geometry)
     RETURNS TEXT
-    AS '@MODULE_FILENAME@','LWGEOM_asText'
+    AS 'MODULE_PATHNAME','LWGEOM_asText'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION GeometryFromText(text)
         RETURNS geometry
-        AS '@MODULE_FILENAME@','LWGEOM_from_text'
+        AS 'MODULE_PATHNAME','LWGEOM_from_text'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_GeometryFromText(text)
         RETURNS geometry
-        AS '@MODULE_FILENAME@','LWGEOM_from_text'
+        AS 'MODULE_PATHNAME','LWGEOM_from_text'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
 CREATEFUNCTION GeometryFromText(text, int4)
         RETURNS geometry
-        AS '@MODULE_FILENAME@','LWGEOM_from_text'
+        AS 'MODULE_PATHNAME','LWGEOM_from_text'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_GeometryFromText(text, int4)
         RETURNS geometry
-        AS '@MODULE_FILENAME@','LWGEOM_from_text'
+        AS 'MODULE_PATHNAME','LWGEOM_from_text'
         LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
@@ -5658,13 +5656,13 @@ CREATEFUNCTION ST_GeomCollFromText(text)
 -- Deprecation in 1.2.3
 CREATEFUNCTION GeomFromWKB(bytea)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOM_from_WKB'
+       AS 'MODULE_PATHNAME','LWGEOM_from_WKB'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Availability: 1.2.2
 CREATEFUNCTION ST_GeomFromWKB(bytea)
        RETURNS geometry
-       AS '@MODULE_FILENAME@','LWGEOM_from_WKB'
+       AS 'MODULE_PATHNAME','LWGEOM_from_WKB'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -- Deprecation in 1.2.3
@@ -6312,7 +6310,7 @@ LANGUAGE 'plpgsql' _IMMUTABLE_STRICT;
 -- the given number of segments per quarter circle.
 CREATEFUNCTION ST_CurveToLine(geometry, integer)
    RETURNS geometry
-   AS '@MODULE_FILENAME@', 'LWGEOM_curve_segmentize'
+   AS 'MODULE_PATHNAME', 'LWGEOM_curve_segmentize'
    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 --
 -- SQL-MM
@@ -6328,12 +6326,12 @@ CREATEFUNCTION ST_CurveToLine(geometry)
 
 CREATEFUNCTION ST_HasArc(geometry)
        RETURNS boolean
-       AS '@MODULE_FILENAME@', 'LWGEOM_has_arc'
+       AS 'MODULE_PATHNAME', 'LWGEOM_has_arc'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 CREATEFUNCTION ST_LineToCurve(geometry)
         RETURNS geometry
-        AS '@MODULE_FILENAME@', 'LWGEOM_line_desegmentize'
+        AS 'MODULE_PATHNAME', 'LWGEOM_line_desegmentize'
         LANGUAGE 'C' _IMMUTABLE_STRICT; 
 ---------------------------------------------------------------
 -- END
index 6c3ebe53eb434be2e7c8b0b2906c551c77d095ad..a849d75e8681733e3e4ed1311e18fe2e57f246d6 100644 (file)
@@ -1,11 +1,11 @@
 #ifndef _PGSQL_COMPAT_H
 
-#if USE_VERSION < 73
+#if POSTGIS_PGSQL_VERSION < 73
 #define WARNING NOTICE
 #endif
 
 /* PostgreSQL < 8.3 uses VARATT_SIZEP rather than SET_VARSIZE for varlena types */
-#if USE_VERSION < 83
+#if POSTGIS_PGSQL_VERSION < 83
 #define SET_VARSIZE(var, size)   VARATT_SIZEP(var) = size
 #endif
 
index d0104d1179928f2cc026b449f7cb8c44f0f91f71..de967a8e576f97266ef77f4b86bf2de2a9ff69d8 100644 (file)
@@ -1,9 +1,25 @@
 #ifndef _LWPGIS_DEFINES
 #define _LWPGIS_DEFINES
 
+/*
+ * Define just the version numbers; otherwise we get some strange substitutions in lwpostgis.sql.in
+ */
+#define POSTGIS_PGSQL_VERSION 83
+#define POSTGIS_GEOS_VERSION 30
+#define POSTGIS_PROJ_VERSION 46
+
+/*
+ * Define the build date and the version number
+ * (these substitiutions are done with extra quotes sinces CPP
+ * won't substitute within apostrophes)
+ */
+#define _POSTGIS_SQL_SELECT_POSTGIS_VERSION 'SELECT ''1.4 USE_GEOS=1 USE_PROJ=1 USE_STATS=1''::text AS version'
+#define _POSTGIS_SQL_SELECT_POSTGIS_BUILD_DATE 'SELECT ''2008-05-14 08:59:43''::text AS version'
+
+
 #define CREATEFUNCTION CREATE OR REPLACE FUNCTION
 
-#if USE_VERSION > 72
+#if POSTGIS_PGSQL_VERSION > 72
 # define _IMMUTABLE_STRICT IMMUTABLE STRICT
 # define _IMMUTABLE IMMUTABLE
 # define _STABLE_STRICT STABLE STRICT
@@ -23,7 +39,7 @@
 # define _SECURITY_DEFINER 
 #endif 
 
-#if USE_VERSION >= 73
+#if POSTGIS_PGSQL_VERSION >= 73
 # define HAS_SCHEMAS 1
 #endif
 
diff --git a/lwgeom/sqldefines.h.in b/lwgeom/sqldefines.h.in
new file mode 100644 (file)
index 0000000..73fc34f
--- /dev/null
@@ -0,0 +1,46 @@
+#ifndef _LWPGIS_DEFINES
+#define _LWPGIS_DEFINES
+
+/*
+ * Define just the version numbers; otherwise we get some strange substitutions in lwpostgis.sql.in
+ */
+#define POSTGIS_PGSQL_VERSION @POSTGIS_PGSQL_VERSION@
+#define POSTGIS_GEOS_VERSION @POSTGIS_GEOS_VERSION@
+#define POSTGIS_PROJ_VERSION @POSTGIS_PROJ_VERSION@
+
+/*
+ * Define the build date and the version number
+ * (these substitiutions are done with extra quotes sinces CPP
+ * won't substitute within apostrophes)
+ */
+#define _POSTGIS_SQL_SELECT_POSTGIS_VERSION 'SELECT ''@POSTGIS_VERSION@''::text AS version'
+#define _POSTGIS_SQL_SELECT_POSTGIS_BUILD_DATE 'SELECT ''@POSTGIS_BUILD_DATE@''::text AS version'
+
+
+#define CREATEFUNCTION CREATE OR REPLACE FUNCTION
+
+#if POSTGIS_PGSQL_VERSION > 72
+# define _IMMUTABLE_STRICT IMMUTABLE STRICT
+# define _IMMUTABLE IMMUTABLE
+# define _STABLE_STRICT STABLE STRICT
+# define _STABLE STABLE
+# define _VOLATILE_STRICT VOLATILE STRICT
+# define _VOLATILE VOLATILE
+# define _STRICT STRICT
+# define _SECURITY_DEFINER SECURITY DEFINER
+#else 
+# define _IMMUTABLE_STRICT  with(iscachable,isstrict)
+# define _IMMUTABLE with(iscachable)
+# define _STABLE_STRICT with(isstrict)
+# define _STABLE 
+# define _VOLATILE_STRICT with(isstrict)
+# define _VOLATILE 
+# define _STRICT with(isstrict)
+# define _SECURITY_DEFINER 
+#endif 
+
+#if POSTGIS_PGSQL_VERSION >= 73
+# define HAS_SCHEMAS 1
+#endif
+
+#endif /* _LWPGIS_DEFINES */
index fda42e4bdc905b5de498b922680ec9c9917adc7f..536c8fd1580867463793e677b6be2e4c03ec4df8 100644 (file)
@@ -118,7 +118,7 @@ CREATEFUNCTION ST_WKBToSQL(bytea)
 -- TODO: SE_AsShape(geometry)
 --CREATEFUNCTION SE_AsShape(geometry)
 --    RETURNS bytea
---    AS '@MODULE_FILENAME@','LWGEOM_AsShape'
+--    AS 'MODULE_PATHNAME','LWGEOM_AsShape'
 --    LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict,iscachable);
 
 -------------------------------------------------------------------------------
@@ -128,7 +128,7 @@ CREATEFUNCTION ST_WKBToSQL(bytea)
 -- PostGIS equivalent function: ndims(geometry)
 CREATEFUNCTION ST_CoordDim(geometry)
     RETURNS smallint
-    AS '@MODULE_FILENAME@', 'LWGEOM_ndims'
+    AS 'MODULE_PATHNAME', 'LWGEOM_ndims'
     LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- ST_Dimension(geometry) - already defined.
@@ -193,19 +193,19 @@ CREATEFUNCTION SE_IsMeasured(geometry)
 -- PostGIS equivalent function: makePoint(float8,float8)
 CREATEFUNCTION ST_Point(float8, float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_makepoint'
+       AS 'MODULE_PATHNAME', 'LWGEOM_makepoint'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (iscachable,isstrict);
 
 -- PostGIS equivalent function: Z(geometry)
 CREATEFUNCTION SE_Z(geometry)
        RETURNS float8
-       AS '@MODULE_FILENAME@','LWGEOM_z_point'
+       AS 'MODULE_PATHNAME','LWGEOM_z_point'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -- PostGIS equivalent function: M(geometry)
 CREATEFUNCTION SE_M(geometry)
        RETURNS float8
-       AS '@MODULE_FILENAME@','LWGEOM_m_point'
+       AS 'MODULE_PATHNAME','LWGEOM_m_point'
        LANGUAGE 'C' _IMMUTABLE_STRICT; -- WITH (isstrict);
 
 -------------------------------------------------------------------------------
@@ -321,7 +321,7 @@ CREATEFUNCTION SE_LocateAlong(geometry, float8)
 -- PostGIS equivalent function: locate_between_measures(geometry, float8, float8)
 CREATEFUNCTION SE_LocateBetween(geometry, float8, float8)
        RETURNS geometry
-       AS '@MODULE_FILENAME@', 'LWGEOM_locate_between_m'
+       AS 'MODULE_PATHNAME', 'LWGEOM_locate_between_m'
        LANGUAGE 'C' _IMMUTABLE_STRICT;
 
 
diff --git a/macros/ac_proj4_version.m4 b/macros/ac_proj4_version.m4
new file mode 100644 (file)
index 0000000..50f8f7c
--- /dev/null
@@ -0,0 +1,32 @@
+dnl
+dnl Return the PROJ.4 version number
+dnl
+dnl Written by Mark Cave-Ayland
+dnl
+
+AC_DEFUN([AC_PROJ_VERSION], [
+       AC_RUN_IFELSE(
+               [AC_LANG_PROGRAM([
+               #ifdef HAVE_STDINT_H
+                       #include <stdio.h>
+               #endif
+               #include "proj_api.h"
+       ], 
+       [
+               FILE *fp; 
+
+               fp = fopen("conftest.out", "w"); 
+               fprintf(fp, "%d\n", PJ_VERSION); 
+               fclose(fp)])
+       ],
+        [
+               dnl The program ran successfully, so return the version number in the form MAJORMINOR
+               $1=`cat conftest.out | sed 's/\([[0-9]]\)\([[0-9]]\)\([[0-9]]\)/\1\2/'`
+       ],
+        [
+               dnl The program failed so return an empty variable
+               $1=""
+       ]
+        )
+])
+
diff --git a/postgis_config.h.in b/postgis_config.h.in
new file mode 100644 (file)
index 0000000..2e9547a
--- /dev/null
@@ -0,0 +1,67 @@
+/* postgis_config.h.in.  Generated from configure.in by autoheader.  */
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#undef HAVE_INTTYPES_H
+
+/* Define to 1 if you have the `geos_c' library (-lgeos_c). */
+#undef HAVE_LIBGEOS_C
+
+/* Define to 1 if you have the `pq' library (-lpq). */
+#undef HAVE_LIBPQ
+
+/* Define to 1 if you have the `proj' library (-lproj). */
+#undef HAVE_LIBPROJ
+
+/* Define to 1 if you have the <memory.h> header file. */
+#undef HAVE_MEMORY_H
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#undef HAVE_STDINT_H
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#undef HAVE_STDLIB_H
+
+/* Define to 1 if you have the <strings.h> header file. */
+#undef HAVE_STRINGS_H
+
+/* Define to 1 if you have the <string.h> header file. */
+#undef HAVE_STRING_H
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#undef HAVE_SYS_STAT_H
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#undef HAVE_SYS_TYPES_H
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#undef HAVE_UNISTD_H
+
+/* Enable caching of bounding box within geometries */
+#undef POSTGIS_AUTOCACHE_BBOX
+
+/* PostGIS build date */
+#undef POSTGIS_BUILD_DATE
+
+/* GEOS library version */
+#undef POSTGIS_GEOS_VERSION
+
+/* PostGIS library version */
+#undef POSTGIS_LIB_VERSION
+
+/* PostgreSQL server version */
+#undef POSTGIS_PGSQL_VERSION
+
+/* PROJ library version */
+#undef POSTGIS_PROJ_VERSION
+
+/* PostGIS scripts version */
+#undef POSTGIS_SCRIPTS_VERSION
+
+/* Enable use of ANALYZE statistics */
+#undef POSTGIS_USE_STATS
+
+/* PostGIS version */
+#undef POSTGIS_VERSION
+
+/* Define to 1 if you have the ANSI C header files. */
+#undef STDC_HEADERS
similarity index 62%
rename from regress/Makefile
rename to regress/Makefile.in
index 78ed873844130f8a872c4e8762bd2b7adde1494d..4c5aff14b5a1267361588ae46a82dd9756531d49 100644 (file)
@@ -1,6 +1,8 @@
 TMPDIR?=/tmp
 
-include ../Makefile.config
+POSTGIS_PGSQL_VERSION=@POSTGIS_PGSQL_VERSION@
+POSTGIS_GEOS_VERSION=@POSTGIS_GEOS_VERSION@
+POSTGIS_PROJ_VERSION=@POSTGIS_PROJ_VERSION@
 
 TESTS = \
        loader/Point \
@@ -36,7 +38,12 @@ TESTS = \
        sql-mm-general \
        sql-mm-multicurve \
        sql-mm-multisurface \
-       geojson
+       geojson \
+       regress_ogc \
+       regress_bdpoly \
+       regress_proj \
+       kml
+
 
 PREPROC = \
        sql-mm-circularstring_expected \
@@ -46,42 +53,29 @@ PREPROC = \
        sql-mm-multisurface_expected
 
 
-# GEOS tests only if GEOS is available
-ifeq ($(USE_GEOS),1)
-       TESTS += regress_ogc regress_bdpoly 
-
 # Covers/CoveredBy only if GEOS >= 3.0
-ifeq ($(shell expr $(GEOS_VERNUM) ">=" 30),1)
+ifeq ($(shell expr $(POSTGIS_GEOS_VERSION) ">=" 30),1)
        TESTS += regress_ogc_cover 
 
 # PreparedGeometry only if GEOS >= 3.1
-ifeq ($(shell expr $(GEOS_VERNUM) ">=" 31),1)
+ifeq ($(shell expr $(POSTGIS_GEOS_VERSION) ">=" 31),1)
        TESTS += regress_ogc_prep
 
 endif
 endif
-endif
 
-ifeq ($(USE_PROJ),1)
-       TESTS += regress_proj kml
-endif
 
 all: test 
 
-test check: lwpostgis.sql ../lwgeom/liblwgeom.so ../loader/pgsql2shp ../loader/shp2pgsql $(PREPROC)
-       @USE_VERSION="$(USE_VERSION)" ./run_test $(TESTS)
-
-lwpostgis.sql: ../lwgeom/lwpostgis.sql.in 
-       $(MAKE) -C ../lwgeom ../regress/lwpostgis.sql
+test check: ../lwgeom/liblwgeom.so ../loader/pgsql2shp ../loader/shp2pgsql $(PREPROC)
+       cp ../lwgeom/lwpostgis.sql .
+       @USE_VERSION="$(POSTGIS_PGSQL_VERSION)" ./run_test $(TESTS)
 
 ../lwgeom/liblwgeom.so:
-       $(MAKE) -C ../lwgeom all-shared-lib
-
-../loader/pgsql2shp:
-       $(MAKE) -C ../loader pgsql2shp
+       $(MAKE) -C ../lwgeom
 
-../loader/shp2pgsql:
-       $(MAKE) -C ../loader shp2pgsql
+../loader/pgsql2shp ../loader/shp2pgsql:
+       $(MAKE) -C ../loader
 
 $(PREPROC):
        cpp -P -traditional-cpp $@.in | grep -v "^$$" > $@
index 791efffc53f84a4525595f0fda314f56b6bdbb4a..a324b6449e09897451225ac0a368d507bc7eeff0 100755 (executable)
@@ -130,7 +130,7 @@ run_simple_test ()
                > "${OUTFILE}"
        rm ${TMPFILE}
 
-       if diff "${_expected}" "${OUTFILE}" > ${DIFFILE}; then
+       if diff -c "${_expected}" "${OUTFILE}" > ${DIFFILE}; then
                #SUCCESS=`expr $SUCCESS + 1`
                rm "${OUTFILE}" "${DIFFILE}" # we don't need these anymore
                return 0
index d3c05696339407dc3578263202dad2025602ee56..766f90ec37af88a85b742f18961cdf6a441e340d 100644 (file)
@@ -1,4 +1,4 @@
-#include "../config.h"
+#include "../postgis_config.h"
 ndims01|4
 geometrytype01|CIRCULARSTRING
 ndims02|3
index 48b9d4a7ac1f98355755361314e2916cc3583902..6cc32f9430fd3a7d9893c419493e48a472f98111 100644 (file)
@@ -1,4 +1,4 @@
-#include "../config.h"
+#include "../postgis_config.h"
 ndims01|4
 geometrytype01|COMPOUNDCURVE
 ndims02|3
index 15c22a12ef43e6bce1de13ae7846964035aa0a23..259861d3659ddb5f2e26e5b1954d0654919b7e91 100644 (file)
@@ -1,4 +1,4 @@
-#include "../config.h"
+#include "../postgis_config.h"
 ndims01|4
 geometrytype01|CURVEPOLYGON
 ndims02|3
index 205f3792a5078f19d1f730f8c0684319ec926bcb..b6d5ee2bee1dbb5ccab476d1c6450cab9e0cf869 100644 (file)
@@ -1,4 +1,4 @@
-#include "../config.h"
+#include "../postgis_config.h"
 ndims01|4
 geometrytype01|MULTICURVE
 ndims02|3
index 28e34a3d2c0b1aff9eb6fdcb094677ff2f790da2..0173081ad6f0058dedea969ca6c224d34f7d3da7 100644 (file)
@@ -1,4 +1,4 @@
-#include "../config.h"
+#include "../postgis_config.h"
 ndims01|4
 geometrytype01|MULTISURFACE
 ndims02|3