diff options
author | Chris Rees <crees@FreeBSD.org> | 2014-01-12 21:16:06 +0000 |
---|---|---|
committer | Chris Rees <crees@FreeBSD.org> | 2014-01-12 21:16:06 +0000 |
commit | 2bbe67e0a200601d8ce2950ea57686e967845545 (patch) | |
tree | 28e6ba3507f08777135558fecb204bb522650340 /Mk | |
parent | e6e704fec223d0b1de500a57162e7e54c441c1eb (diff) | |
download | ports-2bbe67e0a200601d8ce2950ea57686e967845545.tar.gz ports-2bbe67e0a200601d8ce2950ea57686e967845545.zip |
Strip postgresql code out of bsd.database.mk, and introduce USES=pgsql.
New syntax:
# Depend on postgresql-client
USES= pgsql
# Depend on postgresql-client at least 9.2
USES= pgsql:9.2+
#Depend on postgresql-server at least 9.0
USES= pgsql:9.0+
WANT_PGSQL= server
Postgresql now supports DEFAULT_VERSIONS, and please note that the
version syntax now includes dots(!); i.e. before it was 90, now 9.0
Reviewed by: ade, silence from pgsql@
Notes
Notes:
svn path=/head/; revision=339550
Diffstat (limited to 'Mk')
-rw-r--r-- | Mk/Uses/pgsql.mk | 142 | ||||
-rw-r--r-- | Mk/bsd.database.mk | 117 | ||||
-rw-r--r-- | Mk/bsd.default-versions.mk | 7 |
3 files changed, 159 insertions, 107 deletions
diff --git a/Mk/Uses/pgsql.mk b/Mk/Uses/pgsql.mk new file mode 100644 index 000000000000..522673924964 --- /dev/null +++ b/Mk/Uses/pgsql.mk @@ -0,0 +1,142 @@ +# $FreeBSD$ +# +# Provide support for PostgreSQL (pgsql) +# +# MAINTAINER: pgsql@FreeBSD.org +# +# Feature: pgsql +# Usage: USES= pgsql[:version] +# +# Maintainer can set version required. Minimum and maximum +# versions can be specified; e.g. 9.0-, 8.4+ +# +# WANT_PGSQL= server[:fetch] pltcl plperl +# +# Add PostgreSQL component dependency, using +# WANT_PGSQL= component[:target]. +# For the full list use make -V _USE_PGSQL_DEP +# If no version is given (by the maintainer via the port or +# by the user via defined variable), try to find the +# currently installed version. Fall back to default if +# necessary. + +.if !defined(_INCLUDE_USES_PGSQL_MK) + +_INCLUDE_USES_PGSQL_MK= yes + +# Variables set by pgsql.mk: +# +# PGSQL_VER +# Detected PostgreSQL version. Do *not* use this +# to add dependencies; use WANT_PGSQL as explained above +# + +VALID_PGSQL_VER= 8.4 9.0 9.1 9.2 9.3 + +# Override non-default LIBVERS like this: +#PGSQL99_LIBVER=6 + +PGSQL_LIBVER= 5 +.for v in ${VALID_PGSQL_VER:S,.,,} +PGSQL$v_LIBVER?= ${PGSQL_LIBVER} +.endfor + +# We don't want to be :S,.,, the whole time when doing port version checks +PGSQL_VER_NODOT= ${PGSQL_VER:S,.,,} + +.include "${PORTSDIR}/Mk/bsd.default-versions.mk" + +. for w in WITH DEFAULT +. ifdef $w_PGSQL_VER +WARNING+= "$w_PGSQL_VER is defined, consider using DEFAULT_VERSIONS=pgsql=${$w_PGSQL_VER:C,^.,&.,} instead" +PGSQL_DEFAULT?= ${$w_PGSQL_VER:C,^.,&.,} +. endif +. endfor + +. ifdef DEFAULT_PGSQL_VER && WITH_PGSQL_VER +IGNORE= will not allow setting both DEFAULT_PGSQL_VER and WITH_PGSQL_VER. Use DEFAULT_VERSIONS=pgsql=9.0 instead +. endif + +# Setting/finding PostgreSQL version we want. +PG_CONFIG?= ${LOCALBASE}/bin/pg_config +. if exists(${PG_CONFIG}) +_PGSQL_VER!= ${PG_CONFIG} --version | ${SED} -n 's/PostgreSQL[^0-9]*\([0-9][0-9]*\.[0-9][0-9]*\)[^0-9].*/\1/p' +. endif + +# Handle the + and - version stuff +. if defined(pgsql_ARGS) +. if ${pgsql_ARGS:M*+} +. for version in ${VALID_PGSQL_VER} +. if ${pgsql_ARGS:S/+//} <= ${version} +_WANT_PGSQL_VER+=${version} +. endif +. endfor +. elif ${pgsql_ARGS:M*-} +. for version in ${VALID_PGSQL_VER} +. if ${pgsql_ARGS:S/-//} >= ${version} +_WANT_PGSQL_VER+=${version} +. endif +. endfor +. endif +_WANT_PGSQL_VER?= ${pgsql_ARGS} +. endif + +# Try to match default version, otherwise just take the first version +# that matches +. if !empty(_WANT_PGSQL_VER) +. for version in ${_WANT_PGSQL_VER} +. if ${PGSQL_DEFAULT} == ${version} +PGSQL_VER= ${version} +. endif +PGSQL_VER?= ${version} +. endfor +. if defined(_PGSQL_VER) && ${_PGSQL_VER} != ${PGSQL_VER} +IGNORE?= cannot install: the port wants postgresql-client version ${_WANT_PGSQL_VER} and you have version ${_PGSQL_VER} installed +. endif +. endif + +# OK, so the port is ambivalent, we'll just take what's on the system. +PGSQL_VER?= ${_PGSQL_VER} + +# After all that, we still have found nothing! +. if empty(PGSQL_VER) +PGSQL_VER= ${PGSQL_DEFAULT} +. endif + +# And now we are checking if we can use it +. if defined(PGSQL${PGSQL_VER_NODOT}_LIBVER) +# Compat. Please DO NOT use IGNORE_WITH_PGSQL! +. if defined(IGNORE_WITH_PGSQL) +DEV_WARNING+= "Do not set IGNORE_WITH_PGSQL, use the version argument to USES=pgsql" +. for ver in ${IGNORE_WITH_PGSQL} +. if (${PGSQL_VER} == ${ver}) +IGNORE?= cannot install: does not work with postgresql${PGSQL_VER}-client (PostgreSQL ${IGNORE_WITH_PGSQL} not supported) +. endif +. endfor +. endif # IGNORE_WITH_PGSQL + +LIB_DEPENDS+= pq.${PGSQL${PGSQL_VER_NODOT}_LIBVER}:${PORTSDIR}/databases/postgresql${PGSQL_VERS_NODOT}-client + +_USE_PGSQL_DEP= contrib docs pgtcl pltcl plperl server +_USE_PGSQL_DEP_contrib= pgbench +_USE_PGSQL_DEP_docs= postgresql${PGSQL_VER}-docs>0 +_USE_PGSQL_DEP_pgtcl= ${LOCALBASE}/lib/pgtcl/pkgIndex.tcl +_USE_PGSQL_DEP_plperl= postgresql${PGSQL_VER}-plperl>0 +_USE_PGSQL_DEP_pltcl= postgresql${PGSQL_VER}-pltcl>0 +_USE_PGSQL_DEP_server= postgres +. for depend in ${_USE_PGSQL_DEP} +. if ${WANT_PGSQL:M${depend}} +BUILD_DEPENDS+= ${_USE_PGSQL_DEP_${depend}}:${PORTSDIR}/databases/postgresql${PGSQL_VER_NODOT}-${depend} +RUN_DEPENDS+= ${_USE_PGSQL_DEP_${depend}}:${PORTSDIR}/databases/postgresql${PGSQL_VER_NODOT}-${depend} +. elif ${WANT_PGSQL:M${depend}\:*} +BUILD_DEPENDS+= ${NONEXISTENT}:${PORTSDIR}/databases/postgresql${PGSQL_VER_NODOT}-${depend}:${USE_PGSQL:M${depend}\:*:C,^[^:]*\:,,} +. endif +. endfor + +. else +IGNORE?= cannot install: unknown PostgreSQL version: ${PGSQL_VER} +. endif # Check for correct version +CPPFLAGS+= -I${LOCALBASE}/include +LDFLAGS+= -L${LOCALBASE}/lib + +.endif # !defined(_INCLUDE_USES_PGSQL_MK) diff --git a/Mk/bsd.database.mk b/Mk/bsd.database.mk index c255981852ed..e1395e117e84 100644 --- a/Mk/bsd.database.mk +++ b/Mk/bsd.database.mk @@ -35,24 +35,6 @@ Database_Include_MAINTAINER= ports@FreeBSD.org # MYSQL_VER # - Detected MySQL version. ## -# USE_PGSQL - Add PostgreSQL client dependency. Components can be depended -# on using USE_PGSQL= component[:target]. For the full list -# use make -V _USE_PGSQL_DEP -# If no version is given (by the maintainer via the port or -# by the user via defined variable), try to find the -# currently installed version. Fall back to default if -# necessary (PostgreSQL-9.0 = 90). -# DEFAULT_PGSQL_VER -# - PostgreSQL default version, currently 90. -# WANT_PGSQL_VER -# - Maintainer can set an arbitrary version of PostgreSQL to -# always build this port with (overrides WITH_PGSQL_VER). -# Minimum and maximum versions can be set (e.g. 90+) -# WITH_PGSQL_VER -# - User defined variable to set PostgreSQL version. -# PGSQL_VER -# - Detected PostgreSQL version. -## # USE_BDB - Add Berkeley DB library dependency. # If no version is given (by the maintainer via the port or # by the user via defined variable), try to find the @@ -189,96 +171,23 @@ IGNORE= cannot install: unknown MySQL version: ${MYSQL_VER} .endif # USE_MYSQL .if defined(USE_PGSQL) -VALID_PGSQL_VER= 84 90 91 92 93 -DEFAULT_PGSQL_VER?= 90 -PGSQL83_LIBVER= 5 -PGSQL84_LIBVER= 5 -PGSQL90_LIBVER= 5 -PGSQL91_LIBVER= 5 -PGSQL92_LIBVER= 5 -PGSQL93_LIBVER= 5 - -# Setting/finding PostgreSQL version we want. -. if exists(${LOCALBASE}/bin/pg_config) -_PGSQL_VER!= ${LOCALBASE}/bin/pg_config --version | ${SED} -n 's/PostgreSQL[^0-9]*\([0-9][0-9]*\)\.\([0-9][0-9]*\)[^0-9].*/\1\2/p' -WITH_PGSQL_VER?= ${_PGSQL_VER} -. if ${WITH_PGSQL_VER} != ${_PGSQL_VER} -IGNORE?= cannot install: you have set WITH_PGSQL_VER=${WITH_PGSQL_VER} in make.conf, but you have postgresql${_PGSQL_VER}-client installed -. endif -. endif - -. if defined(WANT_PGSQL_VER) -. if ${WANT_PGSQL_VER:M*+} -. for version in ${VALID_PGSQL_VER} -. if ${WANT_PGSQL_VER:S/+//} <= ${version} -_WANT_PGSQL_VER+=${version} -. endif -. endfor -. elif ${WANT_PGSQL_VER:M*-} -. for version in ${VALID_PGSQL_VER} -. if ${WANT_PGSQL_VER:S/-//} >= ${version} -_WANT_PGSQL_VER+=${version} -. endif -. endfor -. endif -_WANT_PGSQL_VER?= ${WANT_PGSQL_VER} -. endif - -. if !empty(_WANT_PGSQL_VER) -. for version in ${_WANT_PGSQL_VER} -. if defined(WITH_PGSQL_VER) -. if ${WITH_PGSQL_VER} == ${version} -PGSQL_VER= ${WITH_PGSQL_VER} -. endif -. elif ${DEFAULT_PGSQL_VER} == ${version} -PGSQL_VER= ${version} -. endif -PGSQL_VER?= ${version} -. endfor -. if defined(WITH_PGSQL_VER) && ${WITH_PGSQL_VER} != ${PGSQL_VER} -IGNORE?= cannot install: the port wants postgresql-client version ${WANT_PGSQL_VER} and you have version ${WITH_PGSQL_VER} installed or set in make.conf -. endif -. endif - -.if !empty(WITH_PGSQL_VER) -PGSQL_VER?= ${WITH_PGSQL_VER} +.ifdef WANT_PGSQL_VER +_USES_POST+= pgsql:${WANT_PGSQL_VER:C,^.,&.,} +_pgsql_devwarning= USE_PGSQL is deprecated, please use USES=pgsql:${WANT_PGSQL_VER:C,^.,&.,} .else -PGSQL_VER?= ${DEFAULT_PGSQL_VER} +_USES_POST+= pgsql +_pgsql_devwarning= USE_PGSQL is deprecated, please use USES=pgsql .endif +.for dep in contrib docs pgtcl pltcl plperl server +WANT_PGSQL+= ${USE_PGSQL:M$dep} +.endfor -# And now we are checking if we can use it -.if defined(PGSQL${PGSQL_VER}_LIBVER) -.if defined(IGNORE_WITH_PGSQL) -. for ver in ${IGNORE_WITH_PGSQL} -. if (${PGSQL_VER} == ${ver}) -IGNORE?= cannot install: does not work with postgresql${PGSQL_VER}-client (PostgresSQL ${IGNORE_WITH_PGSQL} not supported) -. endif -. endfor -.endif # IGNORE_WITH_PGSQL - -LIB_DEPENDS+= pq.${PGSQL${PGSQL_VER}_LIBVER}:${PORTSDIR}/databases/postgresql${PGSQL_VER}-client - -_USE_PGSQL_DEP= contrib docs pgtcl pltcl plperl server -_USE_PGSQL_DEP_contrib= pgbench -_USE_PGSQL_DEP_docs= postgresql${PGSQL_VER}-docs>0 -_USE_PGSQL_DEP_pgtcl= ${LOCALBASE}/lib/pgtcl/pkgIndex.tcl -_USE_PGSQL_DEP_plperl= postgresql${PGSQL_VER}-plperl>0 -_USE_PGSQL_DEP_pltcl= postgresql${PGSQL_VER}-pltcl>0 -_USE_PGSQL_DEP_server= postgres -. for depend in ${_USE_PGSQL_DEP} -. if ${USE_PGSQL:M${depend}} -BUILD_DEPENDS+= ${_USE_PGSQL_DEP_${depend}}:${PORTSDIR}/databases/postgresql${PGSQL_VER}-${depend} -RUN_DEPENDS+= ${_USE_PGSQL_DEP_${depend}}:${PORTSDIR}/databases/postgresql${PGSQL_VER}-${depend} -. elif ${USE_PGSQL:M${depend}\:*} -BUILD_DEPENDS+= ${NONEXISTENT}:${PORTSDIR}/databases/postgresql${PGSQL_VER}-${depend}:${USE_PGSQL:M${depend}\:*:C,^[^:]*\:,,} -. endif -. endfor - +.if !empty(WANT_PGSQL) +DEV_WARNING+= "${_pgsql_devwarning} and WANT_PGSQL=${WANT_PGSQL}" .else -IGNORE?= cannot install: unknown PostgreSQL version: ${PGSQL_VER} -.endif # Check for correct version -CPPFLAGS+= -I${LOCALBASE}/include -LDFLAGS+= -L${LOCALBASE}/lib +DEV_WARNING+= "${_pgsql_devwarning}" +.endif + .endif # USE_PGSQL .if defined(USE_BDB) diff --git a/Mk/bsd.default-versions.mk b/Mk/bsd.default-versions.mk index 94f88afad882..c843799c80ed 100644 --- a/Mk/bsd.default-versions.mk +++ b/Mk/bsd.default-versions.mk @@ -17,12 +17,13 @@ _l= ${lang:C/=.*//g} ${_l:U}_DEFAULT= ${lang:C/.*=//g} .endfor +LUA_DEFAULT?= 5.2 PERL5_DEFAULT?= 5.16 -RUBY_DEFAULT?= 1.9 -TCLTK_DEFAULT?= 8.6 +PGSQL_DEFAULT?= 9.0 PYTHON_DEFAULT?= 2.7 PYTHON2_DEFAULT?= 2.7 PYTHON3_DEFAULT?= 3.3 -LUA_DEFAULT?= 5.2 +RUBY_DEFAULT?= 1.9 +TCLTK_DEFAULT?= 8.6 .endif |