diff options
Diffstat (limited to 'contrib/ncurses/misc/makellib')
-rwxr-xr-x | contrib/ncurses/misc/makellib | 167 |
1 files changed, 167 insertions, 0 deletions
diff --git a/contrib/ncurses/misc/makellib b/contrib/ncurses/misc/makellib new file mode 100755 index 0000000..0460407 --- /dev/null +++ b/contrib/ncurses/misc/makellib @@ -0,0 +1,167 @@ +#!/bin/sh +############################################################################## +# Copyright (c) 1998,2000 Free Software Foundation, Inc. # +# # +# Permission is hereby granted, free of charge, to any person obtaining a # +# copy of this software and associated documentation files (the "Software"), # +# to deal in the Software without restriction, including without limitation # +# the rights to use, copy, modify, merge, publish, distribute, distribute # +# with modifications, sublicense, and/or sell copies of the Software, and to # +# permit persons to whom the Software is furnished to do so, subject to the # +# following conditions: # +# # +# The above copyright notice and this permission notice shall be included in # +# all copies or substantial portions of the Software. # +# # +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # +# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER # +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING # +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER # +# DEALINGS IN THE SOFTWARE. # +# # +# Except as contained in this notice, the name(s) of the above copyright # +# holders shall not be used in advertising or otherwise to promote the sale, # +# use or other dealings in this Software without prior written # +# authorization. # +############################################################################## +# +# Author: Thomas E. Dickey 1996,1997,2000 +# +# $Id: makellib,v 1.8 2000/10/28 21:37:10 tom Exp $ +# System-dependent wrapper for 'lint' that creates a lint-library via the +# following method (XXX is the name of the library): +# a. If the file llib-lXXX doesn't exist, create it using the make-rule +# b. Process llib-lXXX with the system's lint utility, making +# llib-lXXX.ln +# c. Install llib-lXXX.ln in the lib directory. +# +# Using the intermediate file llib-lXXX bypasses a weakness of lint (passing +# through warning messages from the original source-files). +# +# There are two drawbacks to this approach: +# a. On a few systems, you'll have to manually-edit the llib-lXXX file +# to get a usable lint-library (not all C-preprocessors work well). +# b. The system's lint utility won't recognize -lXXX as a lint-library +# (Use tdlint as a wrapper; it's designed for this). +# +# Parameters: +# $1 = library name +# $* = C-preprocessor options +# +ARCH=`uname -s` +if test "x$ARCH" = "xSunOS" ; then + case `uname -r` in + 5.*) ARCH=Solaris + ;; + esac +fi +# +DST="$HOME/lib/$ARCH/lint" +OPT="" +LLIB="" +llib="" +# +while test $# != 0 +do + case $1 in + -L*) + DST="$DST `echo $1|sed -e 's/^-L//'`" + ;; + -*) + OPT="$OPT $1" + ;; + *) + if test -z "$LLIB" + then + LLIB=$1 + else + llib=llib-l$1 + fi + ;; + esac + shift +done + +if test -z "$LLIB" +then + echo '? no library name specified' + exit 1 +elif test -z "$llib" +then + llib="llib-l$LLIB" +fi + +if test ! -f $llib ; then + if ( make $llib ) + then + : + else + exit 1 + fi +fi + +rm -f $llib.ln $llib.c +TARGET=$LLIB + +case "$ARCH" in +AIX) + CREATE="-uvxo$LLIB -Nn4000" + TARGET=$llib.c + ln $llib $TARGET + ;; +Solaris) + CREATE="-C$llib" + TARGET=$llib.c + ln $llib $TARGET + ;; +FreeBSD) + CREATE="-g -z -C$LLIB" + TARGET=$llib.c + ln $llib $TARGET + ;; +CLIX) + CREATE="-DLINTLIBRARY -vxo$LLIB" + TARGET=$llib.c + ln $llib $TARGET + ;; +IRIX*) + CREATE="-DLINTLIBRARY -vxyo$LLIB" + TARGET=$llib.c + ln $llib $TARGET + ;; +UNIX_SV) + CREATE="-DLINTLIBRARY -vxyo$LLIB" + TARGET=$llib.c + ln $llib $TARGET + ;; +*) + echo "Sorry. I do not know how to build a lint-library for $ARCH" + exit 1 +esac + +echo OPT "$OPT" +echo TARGET "$TARGET" +echo LIBNAME "$llib" +if ( lint $CREATE $OPT $TARGET ) +then + if test -f $llib.ln + then + for p in $HOME/lib $HOME/lib/$ARCH $HOME/lib/$ARCH/lint + do + if test ! -d $p + then + mkdir $p + fi + done + for p in $DST + do + cp $llib.ln $p/ + done + rm -f $llib.ln + fi +fi +if test "x$TARGET" = "x$llib.c" ; then + rm -f $TARGET +fi |