summaryrefslogtreecommitdiff
path: root/pkgtools/libnbcompat/files/src2nbcompat
diff options
context:
space:
mode:
authorgrant <grant@pkgsrc.org>2003-10-12 01:17:50 +0000
committergrant <grant@pkgsrc.org>2003-10-12 01:17:50 +0000
commitcaeb81ba774b366f26bf91e05d2cb25382576b1b (patch)
tree214b4a91a23a6221baf244639d12965c27166633 /pkgtools/libnbcompat/files/src2nbcompat
parentda56702fba1ad3a7aad5407fd3de92c5a47b5e31 (diff)
downloadpkgsrc-caeb81ba774b366f26bf91e05d2cb25382576b1b.tar.gz
move src2nbcompat from pkg_install to libnbcompat.
Diffstat (limited to 'pkgtools/libnbcompat/files/src2nbcompat')
-rwxr-xr-xpkgtools/libnbcompat/files/src2nbcompat143
1 files changed, 143 insertions, 0 deletions
diff --git a/pkgtools/libnbcompat/files/src2nbcompat b/pkgtools/libnbcompat/files/src2nbcompat
new file mode 100755
index 00000000000..e52c47b3cb2
--- /dev/null
+++ b/pkgtools/libnbcompat/files/src2nbcompat
@@ -0,0 +1,143 @@
+#!/bin/sh
+#
+# $NetBSD: src2nbcompat,v 1.1 2003/10/12 01:17:50 grant Exp $
+#
+# Copyright (c) 2003 The NetBSD Foundation, Inc.
+# All rights reserved.
+#
+# This code is derived from software contributed to The NetBSD Foundation
+# by
+#
+# 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.
+#
+
+if [ $# -ne 2 ]; then echo "src2nbcompat src dest"; exit 1; fi
+
+src=$1
+dest=$2
+
+case "$src" in
+/*) ;;
+*) src=`pwd`/$src ;;
+esac
+
+case "$dest" in
+/*) ;;
+*) dest=`pwd`/$dest ;;
+esac
+
+echo "Preparing directory $dest"
+mkdir -p $dest
+
+echo "Copying files and directories to $dest"
+cd $src
+dirs=`find . -type d -print`
+for d in $dirs; do
+ newd=`echo $d | sed 's,^\./,,'`
+ case $newd in
+ *CVS)
+ ;;
+ .)
+ ;;
+ *)
+ mkdir -p $dest/$newd
+ ;;
+ esac
+done
+files=`find . \! -type d -print`
+for f in $files; do
+ newf=`echo $f | sed 's,^\./,,'`
+ case $newf in
+ *CVS/*)
+ # Skip copying over any CVS informatin.
+ ;;
+ *Makefile|*Makefile.inc)
+ # Skip copying over the Makefiles since we'll be using
+ # a GNU autoconf-based build infrastructure.
+ ;;
+ *.[ch])
+ # Add "#include <nbcompat.h>" before the first system
+ # header inclusion. Protect all system headers with
+ # "#if HAVE_FOO_H ... #endif" guards.
+ #
+ awk ' \
+ BEGIN { config = 0; nbcompat = 0 } \
+ /^\#[ ]*include[ ]+/ { \
+ if (config == 0) { \
+ print "\#if HAVE_CONFIG_H"; \
+ print "\#include \"config.h\""; \
+ print "\#endif"; \
+ config = 1; \
+ } \
+ } \
+ /^\#[ ]*include[ ]+<[^ ]*>/ { \
+ guard = toupper(gensub("[-/.]", "_", "g", gensub("\#[ ]*include[ ]+<\([^ ]*\)>", "HAVE_\\1", "g"))); \
+ if (nbcompat == 0) { \
+ print "\#include <nbcompat.h>"; \
+ nbcompat = 1; \
+ }; \
+ print "\#if " guard; \
+ print $0; \
+ print "\#endif"; \
+ next; \
+ } \
+ { print } \
+ ' $newf > $dest/$newf.tmp
+ if [ -f $dest/$newf ] && \
+ diff -q -I "\$NetBSD.*\$" $dest/$newf $dest/$newf.tmp >/dev/null; then
+ rm -f $dest/$newf.tmp
+ else
+ rm -f $dest/$newf
+ mv $dest/$newf.tmp $dest/$newf
+ fi
+ ;;
+ *.[1-9])
+ # Copy the manpage over, and generate the catpage.
+ cp $newf $dest/$newf.tmp
+ if [ -f $dest/$newf ] && \
+ diff -q -I "\$NetBSD.*\$" $dest/$newf $dest/$newf.tmp >/dev/null; then
+ rm -f $dest/$newf.tmp
+ else
+ mv -f $dest/$newf.tmp $dest/$newf
+ catf=`echo $newf | sed 's,\.\([1-9]\),.cat\1,'`
+ nroff -mandoc $newf > $dest/$catf
+ fi
+ ;;
+ *)
+ # Everything else just gets copied verbatim.
+ cp $newf $dest/$newf.tmp
+ if [ -f $dest/$newf ] && \
+ diff -q -I "\$NetBSD.*\$" $dest/$newf $dest/$newf.tmp >/dev/null; then
+ rm -f $dest/$newf.tmp
+ else
+ mv -f $dest/$newf.tmp $dest/$newf
+ fi
+ ;;
+ esac
+done