summaryrefslogtreecommitdiffstats
path: root/util/check-make-install.in
diff options
context:
space:
mode:
Diffstat (limited to 'util/check-make-install.in')
-rw-r--r--util/check-make-install.in61
1 files changed, 61 insertions, 0 deletions
diff --git a/util/check-make-install.in b/util/check-make-install.in
new file mode 100644
index 0000000..a391185
--- /dev/null
+++ b/util/check-make-install.in
@@ -0,0 +1,61 @@
+#!/bin/sh
+#
+# Copyright (C) Internet Systems Consortium, Inc. ("ISC")
+#
+# SPDX-License-Identifier: MPL-2.0
+#
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, you can obtain one at https://mozilla.org/MPL/2.0/.
+#
+# See the COPYRIGHT file distributed with this work for additional
+# information regarding copyright ownership.
+
+abs_top_srcdir=@abs_top_srcdir@
+abs_builddir=@abs_builddir@
+prefix=@prefix@
+includedir=@includedir@
+install_dir="${DESTDIR}@prefix@"
+
+headers_to_install() {
+ find "${abs_top_srcdir}/lib" -name "*.h" -or -name "*.h.in" |
+ sed -n \
+ -e "s|\.h\.in$|\.h|" \
+ -e "s|.*include/|${DESTDIR}${includedir}/|p" |
+ sort -u
+}
+
+status=0
+
+for header in $(headers_to_install); do
+ if [ ! -f "${header}" ]; then
+ echo "Missing $header"
+ status=1
+ fi
+done
+
+named_binary_path="${install_dir}/sbin/named"
+if [ ! -x "${named_binary_path}" ]; then
+ echo "ERROR: ${named_binary_path} does not exist or is not executable"
+ status=1
+fi
+
+named_man_page_path="${install_dir}/share/man/man8/named.8"
+if [ ! -f "${named_man_page_path}" ]; then
+ echo "ERROR: ${named_man_page_path} does not exist"
+ status=1
+fi
+
+if [ -n "${DESTDIR}" ]; then
+ for expected_subdir in bin etc include lib sbin share; do
+ echo "${install_dir}/${expected_subdir}" >> "${abs_builddir}/expected_dirs"
+ done
+ find "${install_dir}" -maxdepth 1 -mindepth 1 -type d | sort > "${abs_builddir}/existing_dirs"
+ if ! diff -u "${abs_builddir}/expected_dirs" "${abs_builddir}/existing_dirs"; then
+ echo "ERROR: Contents of DESTDIR do not match expectations"
+ status=1
+ fi
+ rm -f "${abs_builddir}/expected_dirs" "${abs_builddir}/existing_dirs"
+fi
+
+exit $status