summaryrefslogtreecommitdiff
path: root/mk/buildlink3/imake-check
diff options
context:
space:
mode:
Diffstat (limited to 'mk/buildlink3/imake-check')
-rwxr-xr-xmk/buildlink3/imake-check88
1 files changed, 88 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"