summaryrefslogtreecommitdiff
path: root/mk/buildlink3
diff options
context:
space:
mode:
authorjlam <jlam@pkgsrc.org>2005-06-03 19:12:49 +0000
committerjlam <jlam@pkgsrc.org>2005-06-03 19:12:49 +0000
commit08c60ab83de4b675b8852190da0d48fc93944e6f (patch)
tree273ae49293fec799971070a5bd36642e4446f823 /mk/buildlink3
parentc85165ac0786a6271c5e08213cf55d5cb30c803f (diff)
downloadpkgsrc-08c60ab83de4b675b8852190da0d48fc93944e6f.tar.gz
Coalesce the common makefile code in the builtin.mk file that inspect
the X11 distribution using imake into mk/buildlink3/imake-check.mk. imake-check.mk calls out to a helper shell script mk/buildlink3/imake-check that generates the required Imakefiles and runs imake. Remove the now extraneous builtin-imake.mk files as the builtin.mk files can now contain the name of the imake symbol to check.
Diffstat (limited to 'mk/buildlink3')
-rwxr-xr-xmk/buildlink3/imake-check88
-rw-r--r--mk/buildlink3/imake-check.mk79
2 files changed, 167 insertions, 0 deletions
diff --git a/mk/buildlink3/imake-check b/mk/buildlink3/imake-check
new file mode 100755
index 00000000000..f30f7718e6f
--- /dev/null
+++ b/mk/buildlink3/imake-check
@@ -0,0 +1,88 @@
+#! /bin/sh
+#
+# Copyright (c) 2005 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# This code is derived from software contributed to The NetBSD Foundation
+# by Johnny C. Lam.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by the NetBSD
+# Foundation, Inc. and its contributors.
+# 4. Neither the name of The NetBSD Foundation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+# This is the symbol whose value we want to test in the imake config
+# files, e.g. NormalLibXpm, BuildXftLibrary, etc.
+#
+imake_symbol="$1"
+
+: ${X11BASE:=/usr/X11R6}
+: ${IMAKE:=${X11BASE}/bin/imake}
+
+: ${CAT:=cat}
+: ${ECHO:=echo}
+: ${GREP:=grep}
+: ${IMAKE_MAKE:=make}
+: ${MKDIR:=mkdir}
+: ${RM:=rm}
+: ${TEST:=test}
+
+# Extract the first word of ${IMAKE}.
+for i in ${IMAKE}; do
+ imake_cmd="$i"; break
+done
+${TEST} -f "$imake_cmd" || exit 1
+
+# Create a secure temporary directory.
+: ${TMPDIR:=/tmp}
+tmpdir="${TMPDIR}/imake-check.$$"
+umask 077
+${MKDIR} "$tmpdir" || exit 1
+
+# Construct an Imakefile that will show whether $imake_symbol is
+# true or false.
+#
+cd "$tmpdir"
+${CAT} > Imakefile << EOF
+builtin-test:
+#if $imake_symbol
+ @${ECHO} yes
+#else
+ @${ECHO} no
+#endif
+EOF
+
+# Run imake to process the Imakefile.
+${IMAKE} -DUseInstalled -I${X11BASE}/lib/X11/config -s - |
+ ${IMAKE_MAKE} -f - builtin-test |
+ ${GREP} -q yes
+exitcode="$?"
+
+# Clean up after ourselves.
+cd "${TMPDIR}"
+${RM} -rf "$tmpdir"
+exit "$exitcode"
diff --git a/mk/buildlink3/imake-check.mk b/mk/buildlink3/imake-check.mk
new file mode 100644
index 00000000000..af7d3cafbce
--- /dev/null
+++ b/mk/buildlink3/imake-check.mk
@@ -0,0 +1,79 @@
+# $NetBSD: imake-check.mk,v 1.1 2005/06/03 19:12:49 jlam Exp $
+#
+# Copyright (c) 2005 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# This code is derived from software contributed to The NetBSD Foundation
+# by Johnny C. Lam.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1. Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+# notice, this list of conditions and the following disclaimer in the
+# documentation and/or other materials provided with the distribution.
+# 3. All advertising materials mentioning features or use of this software
+# must display the following acknowledgement:
+# This product includes software developed by the NetBSD
+# Foundation, Inc. and its contributors.
+# 4. Neither the name of The NetBSD Foundation nor the names of its
+# contributors may be used to endorse or promote products derived
+# from this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
+# ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
+# TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
+# BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+#
+# This is a "subroutine" that can be included to detect whether the
+# X11 distribution we are using with pkgsrc has certain X11 components
+# built-in to the distribution.
+#
+# The following variables must be defined before including this file:
+#
+# BUILTIN_IMAKE_CHECK is a list of <pkg>:<symbol> pairs, where <pkg>
+# is the package to check for, and <symbol> is the imake symbol
+# to check in the imake config files.
+#
+# After including this file, the following variables are defined:
+#
+# BUILTIN_IMAKE_CHECK.<pkg> is "yes" or "no" depending on whether the
+# specified imake symbol is "true" in the imake config files.
+#
+# An example use is:
+#
+# BUILTIN_IMAKE_CHECK:= Xft2:BuildXftLibrary
+# .include "../../mk/buildlink3/imake-check.mk"
+#
+
+.for _pair_ in ${BUILTIN_IMAKE_CHECK}
+PKGSRC_USE_TOOLS+= cat echo grep imake mkdir rm # XXX
+IMAKE?= ${X11BASE}/bin/imake # XXX
+
+. if !defined(BUILTIN_IMAKE_CHECK.${_pair_:C/\:[^:]*$//})
+BUILTIN_IMAKE_CHECK.${_pair_:C/\:[^:]*$//}!= \
+ if ${SETENV} CAT=${CAT:Q} ECHO=${ECHO:Q} GREP=${GREP:Q} \
+ IMAKE=${IMAKE:Q} IMAKE_MAKE=${IMAKE_MAKE:Q} \
+ MKDIR=${MKDIR:Q} RM=${RM:Q} TEST=${TEST:Q} \
+ X11BASE=${X11BASE:Q} \
+ ${SH} ${.CURDIR}/../../mk/buildlink3/imake-check \
+ ${_pair_:C/^[^:]*\://}; \
+ then \
+ ${ECHO} yes; \
+ else \
+ ${ECHO} no; \
+ fi
+. endif
+MAKEVARS+= BUILTIN_IMAKE_CHECK.${_pair_:C/\:[^:]*$//}
+.endfor