xref: /freebsd/contrib/ncurses/misc/tdlint (revision e18651243efbc1fe285af34e4937fd697612f1c7)
10e3d5408SPeter Wemm#!/bin/sh
20e3d5408SPeter Wemm##############################################################################
3*e1865124SBaptiste Daroussin# Copyright 2020 Thomas E. Dickey                                            #
4*e1865124SBaptiste Daroussin# Copyright 1998,2000 Free Software Foundation, Inc.                         #
50e3d5408SPeter Wemm#                                                                            #
60e3d5408SPeter Wemm# Permission is hereby granted, free of charge, to any person obtaining a    #
70e3d5408SPeter Wemm# copy of this software and associated documentation files (the "Software"), #
80e3d5408SPeter Wemm# to deal in the Software without restriction, including without limitation  #
90e3d5408SPeter Wemm# the rights to use, copy, modify, merge, publish, distribute, distribute    #
100e3d5408SPeter Wemm# with modifications, sublicense, and/or sell copies of the Software, and to #
110e3d5408SPeter Wemm# permit persons to whom the Software is furnished to do so, subject to the  #
120e3d5408SPeter Wemm# following conditions:                                                      #
130e3d5408SPeter Wemm#                                                                            #
140e3d5408SPeter Wemm# The above copyright notice and this permission notice shall be included in #
150e3d5408SPeter Wemm# all copies or substantial portions of the Software.                        #
160e3d5408SPeter Wemm#                                                                            #
170e3d5408SPeter Wemm# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
180e3d5408SPeter Wemm# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,   #
190e3d5408SPeter Wemm# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL    #
200e3d5408SPeter Wemm# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER      #
210e3d5408SPeter Wemm# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING    #
220e3d5408SPeter Wemm# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER        #
230e3d5408SPeter Wemm# DEALINGS IN THE SOFTWARE.                                                  #
240e3d5408SPeter Wemm#                                                                            #
250e3d5408SPeter Wemm# Except as contained in this notice, the name(s) of the above copyright     #
260e3d5408SPeter Wemm# holders shall not be used in advertising or otherwise to promote the sale, #
270e3d5408SPeter Wemm# use or other dealings in this Software without prior written               #
280e3d5408SPeter Wemm# authorization.                                                             #
290e3d5408SPeter Wemm##############################################################################
300e3d5408SPeter Wemm#
310e3d5408SPeter Wemm# Author: Thomas E. Dickey <dickey@clark.net> 1996
320e3d5408SPeter Wemm#
33*e1865124SBaptiste Daroussin# $Id: tdlint,v 1.7 2020/02/02 23:34:34 tom Exp $
340e3d5408SPeter Wemm#
350e3d5408SPeter Wemm# Lint-script that allows user's own lint libraries, in addition to the ones
360e3d5408SPeter Wemm# installed in the system.
370e3d5408SPeter Wemm#
380e3d5408SPeter WemmOPT=""
390e3d5408SPeter WemmDIRS=""
400e3d5408SPeter WemmLIBS=""
410e3d5408SPeter WemmFILES=""
420e3d5408SPeter WemmARCH=`uname -s`
430e3d5408SPeter Wemmif test -z "$ARCH" ; then
440e3d5408SPeter Wemm	echo '? uname not found'
450e3d5408SPeter Wemm	exit 1
460e3d5408SPeter Wemmelse
470e3d5408SPeter Wemm	case $ARCH in
480e3d5408SPeter Wemm	AIX)	set - $* -Nn4000
490e3d5408SPeter Wemm		;;
500e3d5408SPeter Wemm	IRIX)	set - $* -n -lc
510e3d5408SPeter Wemm		;;
527a69bbfbSPeter Wemm	FreeBSD) set - $* -g -p -u -v -z
537a69bbfbSPeter Wemm		;;
540e3d5408SPeter Wemm	SunOS)
550e3d5408SPeter Wemm		case `uname -r` in
560e3d5408SPeter Wemm		5.*)	ARCH=Solaris
570e3d5408SPeter Wemm			set - $* -n -lc
580e3d5408SPeter Wemm			;;
590e3d5408SPeter Wemm		esac
600e3d5408SPeter Wemm		;;
610e3d5408SPeter Wemm	esac
620e3d5408SPeter Wemmfi
630e3d5408SPeter Wemm# LIBDIR=$HOME/lib/$ARCH/lint ;export LIBDIR
640e3d5408SPeter Wemmfor p in $HOME/lib/$ARCH/lint /usr/lib/lint /usr/lib
650e3d5408SPeter Wemmdo
660e3d5408SPeter Wemm	if [ -d $p ]
670e3d5408SPeter Wemm	then
680e3d5408SPeter Wemm		DIRS="$DIRS $p"
690e3d5408SPeter Wemm	fi
700e3d5408SPeter Wemmdone
710e3d5408SPeter Wemm#
720e3d5408SPeter Wemmwhile [ $# != 0 ]
730e3d5408SPeter Wemmdo
740e3d5408SPeter Wemm	case $1 in
750e3d5408SPeter Wemm	-D*\"*)	;;
760e3d5408SPeter Wemm	-L*)
770e3d5408SPeter Wemm		DIRS="`echo $1|sed -e 's/^-L//'` $DIRS"
780e3d5408SPeter Wemm		;;
790e3d5408SPeter Wemm	-l*)
800e3d5408SPeter Wemm		lib="llib-l`echo $1 | sed -e 's/^-l//'`.ln"
810e3d5408SPeter Wemm		found=no
820e3d5408SPeter Wemm		for p in $DIRS
830e3d5408SPeter Wemm		do
840e3d5408SPeter Wemm			echo -n testing $p/$lib
850e3d5408SPeter Wemm			if [ -f $p/$lib ]
860e3d5408SPeter Wemm			then
870e3d5408SPeter Wemm				LIBS="$LIBS $p/$lib"
880e3d5408SPeter Wemm				echo " (ok)"
890e3d5408SPeter Wemm				found=yes
900e3d5408SPeter Wemm				break
910e3d5408SPeter Wemm			fi
920e3d5408SPeter Wemm			echo
930e3d5408SPeter Wemm		done
940e3d5408SPeter Wemm		if [ $found = no ]
950e3d5408SPeter Wemm		then
960e3d5408SPeter Wemm			echo "ignored library $1"
970e3d5408SPeter Wemm		fi
980e3d5408SPeter Wemm		;;
990e3d5408SPeter Wemm	-n)	if [ -z "$OPT" ]
1000e3d5408SPeter Wemm		then
1010e3d5408SPeter Wemm			OPT="-I."
1020e3d5408SPeter Wemm		fi
1030e3d5408SPeter Wemm		OPT="$OPT $1"
1040e3d5408SPeter Wemm		;;
1050e3d5408SPeter Wemm	-*)	OPT="$OPT $1"
1060e3d5408SPeter Wemm		;;
1070e3d5408SPeter Wemm	*)
1080e3d5408SPeter Wemm		FILES="$FILES $1"
1090e3d5408SPeter Wemm		;;
1100e3d5408SPeter Wemm	esac
1110e3d5408SPeter Wemm	shift
1120e3d5408SPeter Wemmdone
1130e3d5408SPeter Wemm#
1140e3d5408SPeter Wemmeval lint $OPT $FILES $LIBS
115