mirror of
https://salsa.debian.org/srivasta/make-dfsg.git
synced 2025-02-06 03:33:03 +00:00
Flush stdout after printing directory info.
Fix references to MINGW #define constants. Remove WINDOWS32 ifdef from sub_proc.h. Only add variables to the command line for recursion once. New features in run_make_test: #PWD# and #MAKEPATH# replacements. Test the multi-variable fix in the recursion regression test.
This commit is contained in:
parent
939167cfc1
commit
c90f47e832
7 changed files with 94 additions and 67 deletions
16
ChangeLog
16
ChangeLog
|
@ -4,6 +4,22 @@
|
|||
Also, the ftp://ftp.gnu.org/GNUinfo site was removed so I'm
|
||||
downloading the .texi files from Savannah now.
|
||||
|
||||
Fixed these issues reported by Markus Mauhart <qwe123@chello.at>:
|
||||
|
||||
* main.c (handle_non_switch_argument): Only add variables to
|
||||
command_variables if they're not already there: duplicate settings
|
||||
waste space and can be confusing to read.
|
||||
|
||||
* w32/include/sub_proc.h: Remove WINDOWS32. It's not needed since
|
||||
this header is never included by non-WINDOWS32 code, and it
|
||||
requires <config.h> to define which isn't always included first.
|
||||
|
||||
* dir.c (read_dirstream) [MINGW]: Use proper macro names when
|
||||
testing MINGW32 versions.
|
||||
|
||||
* main.c (log_working_directory): flush stdout to be sure the WD
|
||||
change is printed before any stderr messages show up.
|
||||
|
||||
2005-02-01 Paul D. Smith <psmith@gnu.org>
|
||||
|
||||
* maintMakefile (po_repo): Update the GNU translation site URL.
|
||||
|
|
4
dir.c
4
dir.c
|
@ -1131,8 +1131,8 @@ read_dirstream (__ptr_t stream)
|
|||
}
|
||||
d = (struct dirent *) buf;
|
||||
#ifdef __MINGW32__
|
||||
# if __MINGW32_VERSION_MAJOR < 3 || (__MINGW32_VERSION_MAJOR == 3 && \
|
||||
__MINGW32_VERSION_MINOR == 0)
|
||||
# if __MINGW32_MAJOR_VERSION < 3 || (__MINGW32_MAJOR_VERSION == 3 && \
|
||||
__MINGW32_MINOR_VERSION == 0)
|
||||
d->d_name = xmalloc(len);
|
||||
# endif
|
||||
#endif
|
||||
|
|
25
main.c
25
main.c
|
@ -2150,13 +2150,21 @@ handle_non_switch_argument (char *arg, int env)
|
|||
v = try_variable_definition (0, arg, o_command, 0);
|
||||
if (v != 0)
|
||||
{
|
||||
/* It is indeed a variable definition. Record a pointer to
|
||||
the variable for later use in define_makeflags. */
|
||||
struct command_variable *cv
|
||||
= (struct command_variable *) xmalloc (sizeof (*cv));
|
||||
cv->variable = v;
|
||||
cv->next = command_variables;
|
||||
command_variables = cv;
|
||||
/* It is indeed a variable definition. If we don't already have this
|
||||
one, record a pointer to the variable for later use in
|
||||
define_makeflags. */
|
||||
struct command_variable *cv;
|
||||
|
||||
for (cv = command_variables; cv != 0; cv = cv->next)
|
||||
if (cv->variable == v)
|
||||
break;
|
||||
|
||||
if (! cv) {
|
||||
cv = (struct command_variable *) xmalloc (sizeof (*cv));
|
||||
cv->variable = v;
|
||||
cv->next = command_variables;
|
||||
command_variables = cv;
|
||||
}
|
||||
}
|
||||
else if (! env)
|
||||
{
|
||||
|
@ -2907,4 +2915,7 @@ log_working_directory (int entering)
|
|||
else
|
||||
printf (_("%s[%u]: Leaving directory `%s'\n"),
|
||||
program, makelevel, starting_directory);
|
||||
|
||||
/* Flush stdout to be sure this comes before any stderr output. */
|
||||
fflush (stdout);
|
||||
}
|
||||
|
|
|
@ -1,3 +1,8 @@
|
|||
2005-02-09 Paul D. Smith <psmith@gnu.org>
|
||||
|
||||
* scripts/features/recursion: Test command line variable settings:
|
||||
only one instance of a given variable should be provided.
|
||||
|
||||
2004-11-30 Boris Kolpackov <boris@kolpackov.net>
|
||||
|
||||
* tests/scripts/functions/abspath: New file: test `abspath'
|
||||
|
|
|
@ -81,7 +81,9 @@ sub run_make_test
|
|||
# Replace @MAKEFILE@ with the makefile name and @MAKE@ with the path to
|
||||
# make
|
||||
$makestring =~ s/#MAKEFILE#/$makefile/g;
|
||||
$makestring =~ s/#MAKEPATH#/$mkpath/g;
|
||||
$makestring =~ s/#MAKE#/$make_name/g;
|
||||
$makestring =~ s/#PWD#/$pwd/g;
|
||||
|
||||
# Populate the makefile!
|
||||
open(MAKEFILE, "> $makefile") || die "Failed to open $makefile: $!\n";
|
||||
|
@ -93,7 +95,9 @@ sub run_make_test
|
|||
|
||||
$answer && $answer !~ /\n$/s and $answer .= "\n";
|
||||
$answer =~ s/#MAKEFILE#/$makefile/g;
|
||||
$answer =~ s/#MAKEPATH#/$mkpath/g;
|
||||
$answer =~ s/#MAKE#/$make_name/g;
|
||||
$answer =~ s/#PWD#/$pwd/g;
|
||||
|
||||
&run_make_with_options($makefile, $options, &get_logfile(0), $err_code);
|
||||
&compare_output($answer, &get_logfile(1));
|
||||
|
|
|
@ -1,61 +1,55 @@
|
|||
# -*-perl-*-
|
||||
$description = "The following test creates a makefile to ...\n";
|
||||
$description = "Test recursion.";
|
||||
|
||||
$details = "DETAILS";
|
||||
|
||||
open(MAKEFILE,"> $makefile");
|
||||
# Test some basic recursion.
|
||||
run_make_test('
|
||||
all:
|
||||
$(MAKE) -f #MAKEFILE# foo
|
||||
foo:
|
||||
@echo $(MAKE)
|
||||
@echo MAKELEVEL = $(MAKELEVEL)
|
||||
$(MAKE) -f #MAKEFILE# last
|
||||
last:
|
||||
@echo $(MAKE)
|
||||
@echo MAKELEVEL = $(MAKELEVEL)
|
||||
@echo THE END
|
||||
',
|
||||
('CFLAGS=-O -w' . ($parallel_jobs ? '-j 2' : '')),
|
||||
($vos
|
||||
? "#MAKE#: Entering directory `#PWD#'
|
||||
make 'CFLAGS=-O' -f #MAKEFILE# foo
|
||||
make CFLAGS=-O
|
||||
MAKELEVEL = 0
|
||||
make 'CFLAGS=-O' -f #MAKEFILE# last
|
||||
make CFLAGS=-O
|
||||
MAKELEVEL = 0
|
||||
THE END
|
||||
#MAKE#: Leaving directory `#PWD#'"
|
||||
: "#MAKE#: Entering directory `#PWD#'
|
||||
#MAKEPATH# -f #MAKEFILE# foo
|
||||
#MAKE#[1]: Entering directory `#PWD#'
|
||||
#MAKEPATH#
|
||||
MAKELEVEL = 1
|
||||
#MAKEPATH# -f #MAKEFILE# last
|
||||
#MAKE#[2]: Entering directory `#PWD#'
|
||||
#MAKEPATH#
|
||||
MAKELEVEL = 2
|
||||
THE END
|
||||
#MAKE#[2]: Leaving directory `#PWD#'
|
||||
#MAKE#[1]: Leaving directory `#PWD#'
|
||||
#MAKE#: Leaving directory `#PWD#'"));
|
||||
|
||||
# The Contents of the MAKEFILE ...
|
||||
|
||||
print MAKEFILE "all: \n"
|
||||
."\t\$(MAKE) -f $makefile foo \n"
|
||||
."foo: \n"
|
||||
."\t\@echo \$(MAKE) \n"
|
||||
."\t\@echo MAKELEVEL = \$(MAKELEVEL)\n"
|
||||
."\t\$(MAKE) -f $makefile last \n"
|
||||
."last: \n"
|
||||
."\t\@echo \$(MAKE) \n"
|
||||
."\t\@echo MAKELEVEL = \$(MAKELEVEL) \n"
|
||||
."\t\@echo THE END\n";
|
||||
|
||||
# END of Contents of MAKEFILE
|
||||
|
||||
close(MAKEFILE);
|
||||
|
||||
if ($vos)
|
||||
{
|
||||
$answer = "$make_name: Entering directory \`$pwd\'\n"
|
||||
."make 'CFLAGS=-O' -f $makefile foo \n"
|
||||
."make CFLAGS=-O\n"
|
||||
."MAKELEVEL = 0\n"
|
||||
."make 'CFLAGS=-O' -f $makefile last \n"
|
||||
."make CFLAGS=-O\n"
|
||||
."MAKELEVEL = 0\n"
|
||||
."THE END\n"
|
||||
."$make_name: Leaving directory `$pwd'\n";
|
||||
}
|
||||
else
|
||||
{
|
||||
$answer = "$make_name: Entering directory `$pwd'\n"
|
||||
."$mkpath -f $makefile foo \n"
|
||||
."${make_name}[1]: Entering directory `$pwd'\n"
|
||||
."$mkpath\n"
|
||||
."MAKELEVEL = 1\n"
|
||||
."$mkpath -f $makefile last \n"
|
||||
."${make_name}[2]: Entering directory `$pwd'\n"
|
||||
."$mkpath\n"
|
||||
."MAKELEVEL = 2\n"
|
||||
."THE END\n"
|
||||
."${make_name}[2]: Leaving directory `$pwd'\n"
|
||||
."${make_name}[1]: Leaving directory `$pwd'\n"
|
||||
."$make_name: Leaving directory `$pwd'\n";
|
||||
}
|
||||
|
||||
$mkoptions = "CFLAGS=-O -w";
|
||||
$mkoptions .= " -j 2" if ($parallel_jobs);
|
||||
|
||||
&run_make_with_options($makefile,$mkoptions,&get_logfile,0);
|
||||
|
||||
&compare_output($answer,&get_logfile(1));
|
||||
# Test command line overrides.
|
||||
run_make_test('
|
||||
recur: all ; @$(MAKE) --no-print-directory -f #MAKEFILE# a=AA all
|
||||
all: ; @echo "MAKEOVERRIDES = $(MAKEOVERRIDES)"
|
||||
',
|
||||
'a=ZZ',
|
||||
'MAKEOVERRIDES = a=ZZ
|
||||
MAKEOVERRIDES = a=AA
|
||||
');
|
||||
|
||||
1;
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
#define SUB_PROC_H
|
||||
|
||||
/*
|
||||
* Component Name:
|
||||
* Component Name:
|
||||
*
|
||||
* $Date$
|
||||
*
|
||||
|
@ -13,8 +13,6 @@
|
|||
|
||||
/* $Id$ */
|
||||
|
||||
#ifdef WINDOWS32
|
||||
|
||||
#define EXTERN_DECL(entry, args) extern entry args
|
||||
#define VOID_DECL void
|
||||
|
||||
|
@ -23,7 +21,7 @@ EXTERN_DECL(HANDLE process_init_fd, (HANDLE stdinh, HANDLE stdouth,
|
|||
HANDLE stderrh));
|
||||
EXTERN_DECL(long process_begin, (HANDLE proc, char **argv, char **envp,
|
||||
char *exec_path, char *as_user));
|
||||
EXTERN_DECL(long process_pipe_io, (HANDLE proc, char *stdin_data,
|
||||
EXTERN_DECL(long process_pipe_io, (HANDLE proc, char *stdin_data,
|
||||
int stdin_data_len));
|
||||
EXTERN_DECL(long process_file_io, (HANDLE proc));
|
||||
EXTERN_DECL(void process_cleanup, (HANDLE proc));
|
||||
|
@ -44,4 +42,3 @@ EXTERN_DECL(int process_errcnt, (HANDLE proc));
|
|||
EXTERN_DECL(void process_pipes, (HANDLE proc, int pipes[3]));
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
|
Loading…
Reference in a new issue