d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson#!/bin/sh
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson#
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# Copyright (C) 2000, 2001, 2004, 2007, 2012, 2016 Internet Systems Consortium, Inc. ("ISC")
bf8267aa453e5d2a735ed732a043b77a0b355b20Mark Andrews#
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# This Source Code Form is subject to the terms of the Mozilla Public
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# License, v. 2.0. If a copy of the MPL was not distributed with this
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews# file, You can obtain one at http://mozilla.org/MPL/2.0/.
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews
70e5a7403f0e0a3bd292b8287c5fed5772c15270Automatic Updater# $Id: headerdep_test.sh.in,v 1.8 2007/06/19 23:46:59 tbox Exp $
9c3531d72aeaad6c5f01efe6a1c82023e1379e4dDavid Lawrence
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson#
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson# Check the installed bind9 headers to make sure that no header
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson# depends on another header having been included first.
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson#
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafssonprefix=@prefix@
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafssontmp=/tmp/thdr$$.tmp
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafssonstatus=0
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafssonecho "Checking for header interdependencies..."
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson# Make a list of header files.
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson(cd $prefix/include; find . -name '*.h' -print | sed 's!^./!!') > $tmp
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson# Check each header.
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafssonwhile read h
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafssondo
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson echo " - <$h>"
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson # Build a test program.
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson cat <<EOF >test.c
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson#include <$h>
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas GustafssonEOF
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson # Compile the test program.
40f53fa8d9c6a4fc38c0014495e7a42b08f52481David Lawrence if
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson gcc @STD_CWARNINGS@ @STD_CINCLUDES@ -I$prefix/include -c test.c 2>&1
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson then
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson :
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson else
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson status=1
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson fi
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafssondone <$tmp
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafssonrm -f test.c test.o $tmp
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafsson
d4f67a6d132d16485e8d8e4657a1aaa83224756fAndreas Gustafssonexit $status