2
0
mirror of https://github.com/sudo-project/sudo.git synced 2025-08-21 17:37:16 +00:00

Using $< in a non-suffix rule context is a GNU make extension.

This commit is contained in:
Todd C. Miller 2024-02-21 13:01:14 -07:00
parent 6ec958f27e
commit 9b073f3124
2 changed files with 9 additions and 7 deletions

View File

@ -273,16 +273,16 @@ $(srcdir)/sys_signame.h: $(srcdir)/siglist.in
fi
sys_siglist.i: $(srcdir)/sys_siglist.h
$(CPP) $(CPPFLAGS) $< > $@
$(CPP) $(CPPFLAGS) $(srcdir)/sys_siglist.h > $@
sys_signame.i: $(srcdir)/sys_signame.h
$(CPP) $(CPPFLAGS) $< > $@
$(CPP) $(CPPFLAGS) $(srcdir)/sys_signame.h > $@
mksiglist.h: sys_siglist.i
$(SED) -e '1,/^int sudo_end_of_headers;/d' -e '/^#/d' < $< > mksiglist.h
$(SED) -e '1,/^int sudo_end_of_headers;/d' -e '/^#/d' < sys_siglist.i > mksiglist.h
mksigname.h: sys_signame.i
$(SED) -e '1,/^int sudo_end_of_headers;/d' -e '/^#/d' < $< > mksigname.h
$(SED) -e '1,/^int sudo_end_of_headers;/d' -e '/^#/d' < sys_signame.i > mksigname.h
closefrom_test: $(CLOSEFROM_TEST_OBJS) libsudo_util.la
$(LIBTOOL) $(LTFLAGS) --mode=link $(CC) -o $@ $(CLOSEFROM_TEST_OBJS) libsudo_util.la $(ASAN_LDFLAGS) $(PIE_LDFLAGS) $(HARDENING_LDFLAGS) $(TEST_LDFLAGS) $(TEST_LIBS)

View File

@ -156,7 +156,7 @@ sub mkdep {
#$dir_vars{'top_builddir'} = '.';
$dir_vars{'incdir'} = 'include';
# Find implicit rules for generated .o and .lo files
# Find implicit rules for generated .i, .lo, .o and .plog files
%implicit = ();
while ($makefile =~ /^\.[ci]\.(l?o|i|plog):\s*\n\t+(.*)$/mg) {
$implicit{$1} = $2;
@ -214,7 +214,6 @@ sub mkdep {
# PVS Studio files (.i and .plog) but only do them once.
if ($ext ne "o" || !exists($objs{"$base.lo"})) {
$imp = $implicit{"i"};
if (exists $implicit{"i"} && exists $implicit{"plog"}) {
if ($src =~ /\.pb-c.c$/) {
# Do not check protobuf-c generated files
@ -223,6 +222,7 @@ sub mkdep {
$new_makefile .= "\ttouch \$@\n";
} else {
$imp = $implicit{"i"};
$imp =~ s/\$</$src/g;
$deps =~ s/\.l?o/.i/;
$new_makefile .= $deps;
$new_makefile .= "\t$imp\n";
@ -231,7 +231,9 @@ sub mkdep {
$imp =~ s/ifile=\$<; *//;
$imp =~ s/\$\$\{ifile\%i\}c/$src/;
$obj =~ /(.*)\.[a-z]+$/;
$new_makefile .= "${1}.plog: ${1}.i\n";
my $base = $1;
$imp =~ s/\$</${base}.i/g;
$new_makefile .= "${base}.plog: ${base}.i\n";
$new_makefile .= "\t$imp\n";
}
}