summaryrefslogtreecommitdiff
path: root/databases/postgresql80/Makefile.common
diff options
context:
space:
mode:
authorjlam <jlam>2005-08-05 19:43:44 +0000
committerjlam <jlam>2005-08-05 19:43:44 +0000
commit53c7dbd6a2345f9594fc3dc5d0f14e2ecd652e08 (patch)
tree63eec019bfb4aeb95776bd987fe6d34dc836ea8c /databases/postgresql80/Makefile.common
parent350dbde1f1427bcd96ce1d18d573d665bed2f088 (diff)
downloadpkgsrc-53c7dbd6a2345f9594fc3dc5d0f14e2ecd652e08.tar.gz
Several changes to the postgresql80-* packages:
* Become maintainer for the postgresql80-* packages (ok'd by recht) * Libtoolize postgresql80 build so that the shared libraries and loadable shared modules are built using libtool. This should make PostgreSQL 8.0.x in pkgsrc build correctly on more pkgsrc-supported platforms. This is accomplished with the Makefile.libtool file which replaces the Makefile.shlib file in the PostgreSQL distribution. * Add libltdl modifications from the postgresql74-* packages so that this can work on Interix (untested). * Fix some mismatches between static function declarations and their subsesquent definitions in the src/timezone module. Fixes provided by Georg Schwarz. * Convert PGSQL_USE_HIER into the PKG_OPTION "pgsql-hier-query", and teach both postgresql80-client and postgresql80-server to use it. * Use BUILDLINK_TRANSFORM's "rm" action to remove unwanted compiler flags. * Remove zlib/buildlink3.mk from postgresql80-client/buildlink3.mk as zlib is only used by the pg_dump client. * Convert some files in files/* into patches that can be fed back to the PostgreSQL team. * Install data and documentation files into share/postgresql instead of share/postgresql80 -- it's only possible to install one PostgreSQL version at a time in pkgsrc, and the new paths more closely match the rest of the installation paths. * Add more mirrors to the MASTER_SITES list, and add a new variable POSTGRESQL_MIRRORS_SORT that has the same syntax as MASTER_SORT that can help people pick a nearby mirror. * Nuke references to libpgtcl which is no longer distributed as part of a standard PostgreSQL installation as of version 8.0. * Provide better documentation for Makefile.custom. * Avoid linking in the pthread library in the correct way on NetBSD by setting DLOPEN_REQUIRE_PTHREADS=no. Also, provide better documentation on why we can't enable thread-safety in the PostgreSQL libraries on NetBSD (at least for now). * Preliminary support for installing postgresql80-* into a separate subdirectory under ${LOCALBASE} so possibly allow for multiple installations of PostgreSQL on the same machine. Note that THIS DOES NOT WORK YET. * Update the hierarchical-queries patch to "8.0.3-0.5.5" which fixes a bug which was crashing the backend when PRIOR was used in the target list. The _level_ column is no longer automatically added to target list. This makes it possible to use hierarchical queries as IN subqueries. To get _level_ back you just have to explicitly mention it in target list. Bump the following PKGREVISIONs: postgresql80-client -> 2 postgresql80-server -> 2 postgresql80 -> 1
Diffstat (limited to 'databases/postgresql80/Makefile.common')
-rw-r--r--databases/postgresql80/Makefile.common113
1 files changed, 66 insertions, 47 deletions
diff --git a/databases/postgresql80/Makefile.common b/databases/postgresql80/Makefile.common
index e560b7e71e6..9dadcd10996 100644
--- a/databases/postgresql80/Makefile.common
+++ b/databases/postgresql80/Makefile.common
@@ -1,4 +1,4 @@
-# $NetBSD: Makefile.common,v 1.5 2005/05/22 20:07:46 jlam Exp $
+# $NetBSD: Makefile.common,v 1.6 2005/08/05 19:43:44 jlam Exp $
#
# This Makefile fragment is included by all PostgreSQL packages built from
# the main sources of the PostgreSQL distribution except jdbc-postgresql.
@@ -9,22 +9,17 @@
# <lang>-postgresql client-side interface to PostgreSQL
# postgresql-<lang> server-side module for PostgreSQL backend
-DISTNAME?= postgresql-${DIST_VERS}
-CATEGORIES+= databases
-MASTER_SITES?= \
- ftp://ftp.de.postgresql.org/mirror/postgresql/source/v${DIST_VERS}/ \
- ftp://gd.tuwien.ac.at/db/www.postgresql.org/pub/source/v${DIST_VERS}/ \
- ftp://ftp.sunsite.auc.dk/mirrors/postgresql/source/v${DIST_VERS}/ \
- ftp://ftp.jaist.ac.jp/pub/dbms/postgres95/source/v${DIST_VERS}/ \
- http://www.postgresql.org/ftpsite/source/v${DIST_VERS}/ \
- ftp://ftp.postgresql.org/pub/source/v${DIST_VERS}/
+.include "../postgresql80/Makefile.mirrors"
-EXTRACT_SUFX= .tar.bz2
+DISTNAME?= postgresql-${DIST_VERS}
+CATEGORIES+= databases
+MASTER_SITES?= ${POSTGRESQL_MIRRORS:=source/v${DIST_VERS}/}
+EXTRACT_SUFX= .tar.bz2
-MAINTAINER?= recht@NetBSD.org
-HOMEPAGE?= http://www.postgresql.org/
+MAINTAINER?= jlam@NetBSD.org
+HOMEPAGE?= http://www.postgresql.org/
-CONFLICTS+= postgresql-[0-9]* postgresql73-* postgresql74-*
+CONFLICTS+= postgresql-[0-9]* postgresql73-* postgresql74-*
DISTINFO_FILE?= ${.CURDIR}/../postgresql80/distinfo
COMMON_FILESDIR?= ${.CURDIR}/../postgresql80/files
@@ -36,10 +31,11 @@ PATCHDIR?= ${.CURDIR}/../postgresql80/patches
# BASE_VERS pkgsrc-mangled version number (convert pl -> .)
#
# Note: Do not forget jdbc-postgresql when updating version
+#
DIST_VERS?= 8.0.3
BASE_VERS?= ${DIST_VERS}
-BUILDLINK_DEPENDS.postgresql80-client?= postgresql80-client>=${BASE_VERS}
+BUILDLINK_DEPENDS.postgresql80-client+= postgresql80-client>=${BASE_VERS}
GNU_CONFIGURE= yes
BUILD_USES_MSGFMT= yes
@@ -48,71 +44,94 @@ PKG_SYSCONFSUBDIR= postgresql
# in 7.4.x/8.0.x, this is done by autoconf stuff which has leading whitespace
USE_PKGLOCALEDIR= yes
-SUBST_CLASSES+= pkglocaledir2
-SUBST_FILES.pkglocaledir2= configure config/programs.m4
-SUBST_STAGE.pkglocaledir2= pre-configure
-SUBST_SED.pkglocaledir2= -e 's|\( localedir[ :]*=\).*|\1${_PKGLOCALEDIR}|'
+SUBST_CLASSES+= pglocale
+SUBST_FILES.pglocale= configure config/programs.m4
+SUBST_STAGE.pglocale= pre-configure
+SUBST_SED.pglocale= -e 's|\( localedir[ :]*=\).*|\1${PG_LOCALE_DIR}|'
.include "../../mk/bsd.prefs.mk"
-# Add support for hierarchical queries with Oracle like CONNECT BY syntax.
-# see http://gppl.moonbone.ru/README.html for details.
-.if defined(PGSQL_USE_HIER) && !empty(PGSQL_USE_HIER:M[yY][eE][sS])
-PATCH_SITES= http://gppl.moonbone.ru/
-PATCHFILES= hier-Pg8.0.1-0.5.4.diff.gz
-PATCH_DIST_STRIP= -p1
+PGSQL_TEMPLATE.SunOS= solaris
+PGSQL_TEMPLATE.IRIX= irix5
+.if !defined(PGSQL_TEMPLATE.${OPSYS})
+PGSQL_TEMPLATE.${OPSYS}= ${LOWER_OPSYS}
.endif
-BUILD_DEFS+= PGSQL_USE_HIER
-PG_DIR= ${PREFIX}
-GNU_CONFIGURE_PREFIX= ${PG_DIR}
-INSTALLATION_DIRS+= ${PG_DIR}
-PG_DATA_DIR= ${PREFIX}/share/postgresql80
-PG_DOC_DIR= ${PREFIX}/share/doc/postgresql80
+PG_SUBPREFIX= # empty
+.if empty(PG_SUBPREFIX)
+PG_PREFIX= ${PREFIX}
+PLIST_SUBST+= PG_SUBPREFIX=
+.else
+PG_PREFIX= ${PREFIX}/${PG_SUBPREFIX}
+BUILD_DEFS+= PG_SUBPREFIX
+PLIST_SUBST+= PG_SUBPREFIX=${PG_SUBPREFIX}/
+BUILDLINK_PASSTHRU_DIRS+= ${PG_PREFIX}
+.endif
+PG_DATA_DIR= ${PG_PREFIX}/share/postgresql
+PG_DOC_DIR= ${PG_PREFIX}/share/doc/postgresql
+PG_LOCALE_DIR= ${PG_PREFIX}/${PKGLOCALEDIR}/locale
+PG_ETC_DIR= ${PKG_SYSCONFDIR:S/^${PREFIX}\//${PG_PREFIX}\//}
-#CONFIGURE_ARGS+= --sysconfdir=${PKG_SYSCONFDIR}
+GNU_CONFIGURE_PREFIX= ${PG_PREFIX}
+CONFIGURE_ARGS+= --sysconfdir=${PG_ETC_DIR}
CONFIGURE_ARGS+= --datadir=${PG_DATA_DIR}
CONFIGURE_ARGS+= --with-docdir=${PG_DOC_DIR}
+CONFIGURE_ARGS+= --with-template=${PGSQL_TEMPLATE.${OPSYS}}
CONFIGURE_ARGS+= --without-readline
-CONFIGURE_ARGS+= --with-zlib
-CONFIGURE_ARGS+= --with-openssl
+CONFIGURE_ARGS+= --without-zlib
CONFIGURE_ARGS+= --enable-nls
CONFIGURE_ARGS+= --without-java
CONFIGURE_ARGS+= --without-perl
CONFIGURE_ARGS+= --without-python
CONFIGURE_ARGS+= --without-tcl
-CONFIGURE_ARGS+= --without-tk
-# enable Rendezvous (recommended on Mac OS X)
+# Enable Rendezvous on Mac OS X
.if ${OPSYS} == "Darwin"
CONFIGURE_ARGS+= --with-rendezvous
.endif
# PostgreSQL explicitly forbids any use of -ffast-math
-CFLAGS:= ${CFLAGS:S/-ffast-math//}
+BUILDLINK_TRANSFORM+= rm:-ffast-math
+
+# USE_LIBLTDL is "yes" or "no" depending on whether we're using libltdl
+# to provide "dlopen" functionality for the PostgreSQL backend.
+#
+.if ${OPSYS} == "Interix"
+USE_LIBLTDL?= yes
+.endif
+USE_LIBLTDL?= no
+
+FILES_SUBST+= PG_PREFIX=${PG_PREFIX:Q}
+
+.include "../../devel/gettext-lib/buildlink3.mk"
post-extract:
- if [ -d ${WRKSRC}/src ]; then \
+ if ${TEST} -d ${WRKSRC}/src; then \
${RM} -f ${WRKSRC}/src/Makefile.custom; \
${CP} -f ${COMMON_FILESDIR}/Makefile.custom \
${WRKSRC}/src/Makefile.custom; \
+ ${RM} -f ${WRKSRC}/src/Makefile.shlib; \
+ ${CP} -f ${COMMON_FILESDIR}/Makefile.libtool \
+ ${WRKSRC}/src/Makefile.shlib; \
fi
- if [ -d ${WRKSRC}/src/interfaces/libpq ]; then \
+ if ${TEST} -d ${WRKSRC}/src/interfaces/libpq; then \
${RM} -f ${WRKSRC}/src/interfaces/libpq/GNUmakefile; \
${CP} -f ${COMMON_FILESDIR}/GNUmakefile.libpq \
${WRKSRC}/src/interfaces/libpq/GNUmakefile; \
fi
- if [ -d ${WRKSRC}/src/interfaces/libpgtcl ]; then \
+ if ${TEST} -d ${WRKSRC}/src/interfaces/libpgtcl; then \
${RM} -f ${WRKSRC}/src/interfaces/libpgtcl/GNUmakefile; \
${CP} -f ${COMMON_FILESDIR}/GNUmakefile.libpgtcl \
${WRKSRC}/src/interfaces/libpgtcl/GNUmakefile; \
fi
- if [ -d ${WRKSRC}/src/backend/port/dynloader ]; then \
- ${RM} -f ${WRKSRC}/src/backend/port/dynloader/netbsd.[ch];\
- ${CP} -f ${COMMON_FILESDIR}/netbsd.[ch] \
- ${WRKSRC}/src/backend/port/dynloader/; \
+.if !empty(USE_LIBLTDL:M[yY][eE][sS])
+ if ${TEST} -d ${WRKSRC}/src/backend/port/dynloader; then \
+ template=${PGSQL_TEMPLATE.${OPSYS}:Q}; \
+ ${RM} -f ${WRKSRC}/src/backend/port/dynloader/$$template.[ch]; \
+ ${CP} -f ${COMMON_FILESDIR}/dynloader-ltdl.h \
+ ${WRKSRC}/src/backend/port/dynloader/$$template.h; \
+ ${ECHO} "static int dummy = 0;" \
+ >${WRKSRC}/src/backend/port/dynloader/$$template.c
fi
-
-.include "../../devel/gettext-lib/buildlink3.mk"
-.include "../../devel/zlib/buildlink3.mk"
+.endif