xref: /freebsd/contrib/ncurses/misc/tdlint (revision 21817992b3314c908ab50f0bb88d2ee750b9c4ac)
10e3d5408SPeter Wemm#!/bin/sh
20e3d5408SPeter Wemm##############################################################################
3*21817992SBaptiste Daroussin# Copyright 2020,2021 Thomas E. Dickey                                       #
4e1865124SBaptiste 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*21817992SBaptiste Daroussin# $Id: tdlint,v 1.8 2021/09/04 15:55:29 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
48*21817992SBaptiste Daroussin	AIX)	set - "$@" -Nn4000
490e3d5408SPeter Wemm		;;
50*21817992SBaptiste Daroussin	IRIX)	set - "$@" -n -lc
510e3d5408SPeter Wemm		;;
52*21817992SBaptiste Daroussin	FreeBSD) set - "$@" -g -p -u -v -z
537a69bbfbSPeter Wemm		;;
540e3d5408SPeter Wemm	SunOS)
550e3d5408SPeter Wemm		case `uname -r` in
560e3d5408SPeter Wemm		5.*)	ARCH=Solaris
57*21817992SBaptiste Daroussin			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
66*21817992SBaptiste Daroussin	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*)
77*21817992SBaptiste Daroussin		DIRS="`echo "$1"|sed -e 's/^-L//'` $DIRS"
780e3d5408SPeter Wemm		;;
790e3d5408SPeter Wemm	-l*)
80*21817992SBaptiste Daroussin		lib="llib-l`echo "$1" | sed -e 's/^-l//'`.ln"
810e3d5408SPeter Wemm		found=no
820e3d5408SPeter Wemm		for p in $DIRS
830e3d5408SPeter Wemm		do
84*21817992SBaptiste Daroussin			printf "testing %s" "$p/$lib"
85*21817992SBaptiste Daroussin			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#
114*21817992SBaptiste Daroussinexec lint $OPT $FILES $LIBS
115