From 49ca6782f604dcd06761b5563931838202171459 Mon Sep 17 00:00:00 2001 From: wiz Date: Sun, 21 Sep 2003 20:32:35 +0000 Subject: Make lintpkgsrc handle .includes correctly. Welcome to 3.61. --- pkgtools/pkglint/Makefile | 4 ++-- pkgtools/pkglint/files/lintpkgsrc.pl | 24 +++++++++++++++++++++--- 2 files changed, 23 insertions(+), 5 deletions(-) (limited to 'pkgtools') diff --git a/pkgtools/pkglint/Makefile b/pkgtools/pkglint/Makefile index c84bbb4c5de..7938ee5809d 100644 --- a/pkgtools/pkglint/Makefile +++ b/pkgtools/pkglint/Makefile @@ -1,7 +1,7 @@ -# $NetBSD: Makefile,v 1.167 2003/09/06 08:52:58 wiz Exp $ +# $NetBSD: Makefile,v 1.168 2003/09/21 20:32:35 wiz Exp $ # -DISTNAME= pkglint-3.60 +DISTNAME= pkglint-3.61 WRKSRC= ${WRKDIR} CATEGORIES= pkgtools devel MASTER_SITES= # empty diff --git a/pkgtools/pkglint/files/lintpkgsrc.pl b/pkgtools/pkglint/files/lintpkgsrc.pl index a0748f04220..3cbf5c4ab43 100755 --- a/pkgtools/pkglint/files/lintpkgsrc.pl +++ b/pkgtools/pkglint/files/lintpkgsrc.pl @@ -1,6 +1,6 @@ #!@PREFIX@/bin/perl -# $NetBSD: lintpkgsrc.pl,v 1.81 2003/09/07 15:07:10 wiz Exp $ +# $NetBSD: lintpkgsrc.pl,v 1.82 2003/09/21 20:32:36 wiz Exp $ # Written by David Brownlee . # @@ -778,7 +778,7 @@ sub parse_makefile_pkgsrc sub parse_makefile_vars { my($file, $cwd) = @_; - my($pkgname, %vars, $plus, $value, @data, + my($CURDIR, $NEWCURDIR, $pkgname, %vars, $plus, $value, @data, %incfiles, @if_false); # 0:true 1:false 2:nested-false&nomore-elsif @@ -801,6 +801,7 @@ sub parse_makefile_vars { $vars{'.CURDIR'} = $1; } else { $vars{'.CURDIR'} = getcwd; } + $CURDIR = $vars{'.CURDIR'}; if ($opt{L}) { print "$file\n"; } @@ -859,6 +860,13 @@ sub parse_makefile_vars $if_false[$#if_false] && next; + # for getting the path for .includes right + if (m#__CURDIR__=#) + { + s/__CURDIR__=//; + $CURDIR = $_; + next; + } # Included files (just unshift onto @data) # if (m#^\.include\s+"([^"]+)"#) @@ -878,7 +886,15 @@ sub parse_makefile_vars # Handle relative path incfile # if (substr($incfile, 0, 1) ne '/') - { $incfile = "$vars{'.CURDIR'}/$incfile"; } + { + $incfile = "$CURDIR/$incfile"; + $NEWCURDIR = $incfile; + $NEWCURDIR =~ s#/[^/]*$##; + } + else + { + $NEWCURDIR = $CURDIR; + } if (!$incfiles{$incfile}) { $incfiles{$incfile} = 1; @@ -886,7 +902,9 @@ sub parse_makefile_vars { verbose("Cannot open '$incfile' (from $file): $!\n");} else { + unshift(@data, "__CURDIR__=$CURDIR"); unshift(@data, map {chomp; $_} ); + unshift(@data, "__CURDIR__=$NEWCURDIR"); close(FILE); } } -- cgit v1.2.3