summaryrefslogtreecommitdiff
path: root/www/zope
diff options
context:
space:
mode:
authortaca <taca>2007-12-18 15:27:23 +0000
committertaca <taca>2007-12-18 15:27:23 +0000
commitdc00c0dcec553a803c53024b8f33786eefa21759 (patch)
tree73a12750b81a03f9467bf56284a3b4bdcaae3cc5 /www/zope
parentce96c464eb43086d742fbaf7f40ae196b757d66d (diff)
downloadpkgsrc-dc00c0dcec553a803c53024b8f33786eefa21759.tar.gz
Importing makefile's fragments of new framework for Zope packages.
Diffstat (limited to 'www/zope')
-rw-r--r--www/zope/product.mk88
-rw-r--r--www/zope/replace.mk39
-rw-r--r--www/zope/zopeversion.mk186
3 files changed, 313 insertions, 0 deletions
diff --git a/www/zope/product.mk b/www/zope/product.mk
new file mode 100644
index 00000000000..621d0b6056c
--- /dev/null
+++ b/www/zope/product.mk
@@ -0,0 +1,88 @@
+# $NetBSD: product.mk,v 1.1.1.1 2007/12/18 15:27:23 taca Exp $
+#
+
+.if !defined(_ZOPE_PRODUCT_MK)
+_ZOPE_PRODUCT_MK= # defined
+
+#
+# ZOPE_PRODUCT_NAME
+# Zope extention (product) name.
+#
+# ZOPE_PKG_PRODUCT/ZOPE_PKG_PRODUCT_DIR
+# Basename/directory of Zope's extention package.
+#
+# ZOPE_PRODUCT_SRC
+# Source directory name relative to ${WRKSRC} of Zope's extention.
+#
+# ZOPE_PRODUCT_DST
+# Destination directory name of Zope's extention.
+#
+
+.include "../../www/zope/zopeversion.mk"
+
+DEPENDS+= ${ZOPE_DEPENDENCY}
+
+ZOPE_PKG_PRODUCT?= ${ZOPE_PRODUCTS_BASE}/${ZOPE_PRODUCT_NAME}
+ZOPE_PKG_PRODUCT_DIR= ${ZOPE_PRODUCTS_DIR}/${ZOPE_PRODUCT_NAME}
+
+ZOPE_PRODUCT_SRC?= .
+ZOPE_PRODUCT_DST?= ${ZOPE_PRODUCT_NAME}
+
+.if ${_ZOPE_VERSION} == "29"
+_ZOPE_PRODUCT_DSTDIR= ${BUILDLINK_PREFIX.zope29}/${ZOPE_PKG_PRODUCT}
+.elif ${_ZOPE_VERSION} == "210"
+_ZOPE_PRODUCT_DSTDIR= ${BUILDLINK_PREFIX.zope210}/${ZOPE_PKG_PRODUCT}
+.else
+PKG_SKIP_REASON+= "No valid Zope version"
+.endif
+
+ZOPE_PRODUCT_SRCDIR?= ${WRKSRC}/${ZOPE_PRODUCT_SRC}
+ZOPE_PRODUCT_DSTDIR?= ${_ZOPE_PRODUCT_DSTDIR}
+
+ZOPE_BYTE_COMPILE?= yes
+.if ${ZOPE_BYTE_COMPILE} == "yes" || ${ZOPE_BYTE_COMPILE} == "YES"
+ZOPE_BUILD_METHOD?= zope-simple-build
+.else
+ZOPE_BUILD_METHOD= # empty
+.endif
+
+PLIST_SUBST+= ZOPE_PRODUCT_NAME=${ZOPE_PRODUCT_NAME} \
+ ZOPE_PKG_PRODUCT=${ZOPE_PKG_PRODUCT}
+
+.if !target(do-build)
+do-build: ${ZOPE_BUILD_METHOD}
+ cd ${WRKSRC}; ${FIND} ${ZOPE_PRODUCT_SRC} -type f -print0 | \
+ ${XARGS} -0 -- ${CHMOD} a-w
+
+zope-simple-build:
+.for m in ${ZOPE_PRODUCT_SRC}
+ cd ${WRKSRC}; ${PY_COMPILE_ALL} ${m}
+.endfor
+
+zope-force-build:
+.for m in ${ZOPE_PRODUCT_SRC}
+ cd ${WRKSRC}; ${PY_COMPILE_ALL} ${m} >/dev/null 2>&1 || ${TRUE}
+.endfor
+
+.endif
+
+.PHONY: zope-install-product
+zope-install-product:
+ cd ${ZOPE_PRODUCT_SRCDIR:Q} && ${PAX} -rw \
+ -s ',.*/CVS/.*,,' \
+ -s ',.*/CVS$$,,' \
+ -s ',.*/\.cvsignore$$,,' \
+ -s ',.*\.orig$$,,' \
+ -s ',.*/\#.*,,' \
+ -s ',.*~$$,,' \
+ -s ',.*/.svn/.*,,' \
+ -s ',.*/.svn$$,,' \
+ -s ',svn-commit\.tmp,,' \
+ ${ZOPE_PRODUCT_SRC} ${DESTDIR}${ZOPE_PRODUCT_DSTDIR}
+
+.if !target(do-install)
+do-install: zope-install-product
+.endif
+
+.include "../../lang/python/application.mk"
+.endif
diff --git a/www/zope/replace.mk b/www/zope/replace.mk
new file mode 100644
index 00000000000..d5ba19247e5
--- /dev/null
+++ b/www/zope/replace.mk
@@ -0,0 +1,39 @@
+# $NetBSD: replace.mk,v 1.1.1.1 2007/12/18 15:27:23 taca Exp $
+#
+
+.if !defined(_ZOPE_REPLACE_MK)
+_ZOPE_REPLACE_MK= # defined
+
+# fix shebang line.
+#
+# REPLACE_PYTHON_DIRS replace shebang line of files under specified
+# directories.
+# REPLACE_PYTHON_PAT specify pattern to match target files under
+# REPLACE_PYTHON_DIRS directories.
+#
+.if defined(REPLACE_PYTHON_DIRS) && !empty(REPLACE_PYTHON_DIRS)
+
+.for f in ${REPLACE_PYTHON_PAT}
+_REPLACE_PYTHON_PAT+= -o -name "${f}"
+.endfor
+_REPLACE_PYTHON_FIND_ARGS=\( ${_REPLACE_PYTHON_PAT:S/-o//1} \)
+
+pre-configure: replace-python-dirs
+
+replace-python-dirs:
+ ${_PKG_SILENT}${_PKG_DEBUG}${FIND} ${REPLACE_PYTHON_DIRS} \
+ -type f ${_REPLACE_FILE_FIND_ARGS} -print | \
+ while read f; do \
+ ${SED} -e '1s| *[a-z0-9_/\.-][a-z0-9_/\.-]*/env *||g' \
+ -e '1s| *[a-z0-9_/\.-]*python.*|${PYTHONBIN}|' $$f \
+ > $$f.tmp; \
+ if ${CMP} -s $$f $$f.tmp; then \
+ ${RM} $$f.tmp; \
+ else \
+ ${MV} $$f.tmp $$f; \
+ fi; \
+ done
+.endif # defined(REPLACE_PYTHON_DIRS)
+
+.include "../../lang/python/application.mk"
+.endif
diff --git a/www/zope/zopeversion.mk b/www/zope/zopeversion.mk
new file mode 100644
index 00000000000..2c93e1f6e47
--- /dev/null
+++ b/www/zope/zopeversion.mk
@@ -0,0 +1,186 @@
+# $NetBSD: zopeversion.mk,v 1.1.1.1 2007/12/18 15:27:23 taca Exp $
+#
+
+.if !defined(_ZOPEVERSION_MK)
+_ZOPEVERSION_MK= # defined
+
+.include "../../mk/bsd.prefs.mk"
+
+# The following variables may be set by the pkgsrc user in mk.conf:
+#
+# ZOPE_VERSION_DEFAULT
+# The preferred Zope version to use.
+# Possible value: (all)
+#
+# ZOPE_VERSION_ACCEPTED
+# The Zope version that are acceptable for the package.
+# The order of the entries matters.
+#
+# ZOPE_VERSION_REQD
+# The specific Zope version that are acceptable for the package.
+#
+# ZOPE_USER
+# Default Zope running user.
+#
+# ZOPE_GROUP
+# Default Zope running group.
+#
+
+# The following variables may not be set by the pkgsrc user in mk.conf:
+#
+# ZOPE_VERSION_SUPPORTED
+# Known Zope release which we support.
+#
+# ZOPE_PKG
+# Short name for each Zope major release; zope29, zope210, zope33.
+#
+# ZOPE_USE_PYPKGPREFIX
+# Bool variable which enable prefix Zope based package with
+# ${ZOPE_PKG}. (Experimental)
+#
+# ZOPE_COMMON
+# Basename of directory to install Zope.
+#
+# ZOPE_PRODUCTS_BASE
+# Basename of directory for Zope extention packages.
+#
+# ZOPE_DOC_BASE
+# Documentation directory for Zope packages.
+#
+#
+
+ZOPE_VERSION_SUPPORTED= 29 210 33
+
+ZOPE_VERSION_DEFAULT?= 29
+ZOPE_VERSION_ACCEPTED?= ${ZOPE_VERSION_SUPPORTED}
+
+# current Zope version
+ZOPE29_VERSION= 2.9.8
+ZOPE210_VERSION= 2.10.5
+ZOPE33_VERSION= 3.3.1
+
+ZOPE_USER?= zope
+ZOPE_GROUP?= zope
+
+ZOPE_USE_PYPKGPREFIX?= no
+
+.if !empty(ZOPE_USE_PYPKGPREFIX:M[Yy][Ee][Ss])
+BUILDLINK_API_DEPENDS.zope29?= ${PYPKGPREFIX}-zope29>=2.9.7
+BUILDLINK_API_DEPENDS.zope210?= ${PYPKGPREFIX}-zope210>=2.10.3
+BUILDLINK_API_DEPENDS.zope33?= ${PYPKGPREFIX}-zope3>=3.3.1
+.else
+BUILDLINK_API_DEPENDS.zope29?= zope29>=2.9.7
+BUILDLINK_API_DEPENDS.zope210?= zope210>=2.10.3
+BUILDLINK_API_DEPENDS.zope33?= zope3>=3.3.1
+.endif
+
+ZOPE_COMMON?= zope
+ZOPE_BASE= ${ZOPE_COMMON}/${ZOPE_PKG}
+ZOPE_DOC_BASE?= share/doc/${ZOPE_PKG}
+ZOPE_PRODUCTS_BASE= ${ZOPE_BASE}/Products
+
+ZOPE_DIR= ${PREFIX}/${ZOPE_BASE}
+ZOPE_DOC_DIR= ${PREFIX}/${ZOPE_DOC_BASE}
+ZOPE_PRODUCTS_DIR= ${PREFIX}/${ZOPE_PRODUCTS_BASE}
+
+# transform the list into individual variables
+.for zv in ${ZOPE_VERSION_ACCEPTED}
+_ZOPE_VERSION_${zv}_OK= yes
+.endfor
+
+# check what is installed
+.for zv in ${ZOPE_VERSION_SUPPORTED}
+.if exists(${LOCALBASE}/${ZOPE_COMMON}/zope${zv})
+#.if exists(${LOCALBASE}/zope${zv})
+_ZOPE_VERSION_${zv}_INSTALLED= yes
+.endif
+.endfor
+
+# if a version is explicitly required, take it
+.if defined(ZOPE_VERSION_REQD)
+_ZOPE_VERSION= ${ZOPE_VERSION_REQD}
+.endif
+
+#if a default is already installed, it is first choice
+.if !defined(_ZOPE_VERSION)
+.if defined(_ZOPE_VERSION_${ZOPE_VERSION_DEFAULT}_OK)
+.if defined(_ZOPE_VERSION_${ZOPE_VERSION_DEFAULT}_INSTALLED)
+_ZOPE_VERSION= ${ZOPE_VERSION_DEFAULT}
+.endif
+.endif
+.endif
+# prefer an already installed version, in order of "accepted"
+.if !defined(_ZOPE_VERSION)
+.for zv in ${ZOPE_VERSION_ACCEPTED}
+.if defined(_ZOPE_VERSION_${zv}_INSTALLED)
+_ZOPE_VERSION?= ${zv}
+.else
+# keep information as last resort - see below
+_ZOPE_VERSION_FIRSTACCEPTED?= ${zv}
+.endif
+.endfor
+.endif
+# if the default is OK for the addon pkg, take this
+.if !defined(_ZOPE_VERSION)
+.if defined(_ZOPE_VERSION_${ZOPE_VERSION_DEFAULT}_OK)
+_ZOPE_VERSION= ${ZOPE_VERSION_DEFAULT}
+.endif
+.endif
+# take the first one accepted by the package
+.if !defined(_ZOPE_VERSION)
+_ZOPE_VERSION= ${_ZOPE_VERSION_FIRSTACCEPTED}
+.endif
+
+#
+ZOPE_VERSION?= ${_ZOPE_VERSION}
+ZOPE_PKG:= zope${ZOPE_VERSION}
+
+# force the selected ZOPE version for recursive builds
+ZOPE_VERSION_REQD:= ${ZOPE_VERSION}
+
+ZOPE_PKGSRC_DIR= ../../www/${ZOPE_PKG}
+.if !empty(ZOPE_USE_PYPKGPREFIX:M[Yy][Ee][Ss])
+ZOPE_PKG_PREFIX= ${PYPKGPREFIX}-${ZOPE_PKG}
+.else
+ZOPE_PKG_PREFIX= ${ZOPE_PKG}
+.endif
+
+.if ${_ZOPE_VERSION} == "29"
+ZOPE_DEPENDENCY= ${BUILDLINK_API_DEPENDS.zope29}:${ZOPE_PKGSRC_DIR}
+EVAL_PREFIX+= BUILDLINK_PREFIX.zope29=${ZOPE_PKG}
+BUILDLINK_PREFIX.zope29_DEFAULT= ${LOCALBASE}
+.elif ${_ZOPE_VERSION} == "210"
+ZOPE_DEPENDENCY= ${BUILDLINK_API_DEPENDS.zope210}:${ZOPE_PKGSRC_DIR}
+EVAL_PREFIX+= BUILDLINK_PREFIX.zope210=${ZOPE_PKG}
+BUILDLINK_PREFIX.zope210_DEFAULT= ${LOCALBASE}
+.elif ${_ZOPE_VERSION} == "330"
+ZOPE_DEPENDENCY= ${BUILDLINK_API_DEPENDS.zope33}:${ZOPE_PKGSRC_DIR}
+EVAL_PREFIX+= BUILDLINK_PREFIX.zope33=${ZOPE_PKG}
+BUILDLINK_PREFIX.zope33_DEFAULT= ${LOCALBASE}
+.else
+PKG_SKIP_REASON+= "No valid Zope version"
+.endif
+
+BUILD_DEFS+= ZOPE_VERSION
+BUILD_DEFS_EFFECTS+= ZOPE_PKG
+
+MESSAGE_SUBST+= ZOPE_VERSION=${ZOPE_VERSION} \
+ ZOPE_COMMON=${ZOPE_COMMON} \
+ ZOPE_PKG=${ZOPE_PKG} \
+ ZOPE_DIR=${ZOPE_DIR} \
+ ZOPE_PRODUCTS_DIR=${ZOPE_PRODUCTS_DIR} \
+ ZOPE_GROUP=${ZOPE_GROUP:Q} \
+ ZOPE_USER=${ZOPE_USER:Q}
+
+PLIST_SUBST+= ZOPE_VERSION=${ZOPE_VERSION} \
+ ZOPE_BASE=${ZOPE_BASE} \
+ ZOPE_COMMON=${ZOPE_COMMON} \
+ ZOPE_DOC_BASE=${ZOPE_DOC_BASE} \
+ ZOPE_PRODUCTS_BASE=${ZOPE_PRODUCTS_BASE}
+
+#
+ZOPE_PY_COMPILE= ${PYTHONBIN} ${ZOPE_DIR}/bin/compilezpy.py
+PY_COMPILE_ALL= \
+ ${PYTHONBIN} ${PREFIX}/lib/python${PYVERSSUFFIX}/compileall.py -q
+
+.endif