bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GNU make bug concerning directory creation and prerequesites


From: Peter Hedinger
Subject: GNU make bug concerning directory creation and prerequesites
Date: Mon, 16 Dec 2002 16:59:42 -0000

On a Pentium 4, using Windows 2000 (service pack 3) and cygwin.
---------------------------------------------------------------------
$ uname -a
CYGWIN_NT-5.0 ALPHA 1.3.17(0.67/3/2) 2002-11-27 18:54 i686 unknown
---------------------------------------------------------------------
$ make -v
GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
Built for i686-pc-cygwin
Copyright (C) 1988, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 2000
        Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

Report bugs to <address@hidden>.
---------------------------------------------------------------------

The bug is show in a make where there are folders created before the
compilation, and then files are compiled into these folders before finally
generating results. From scratch this does not work. You have to type "make"
twice in order to generate the results files.

Attached is a tar of the makefile which demonstrates this bug. It should
suffice to untar it, and make sure that the TOOLS define in gcc.mak points
to the bin folder with gcc, as... Then change to bug/, and type "make". It
should report:

---------------------------------------------------------------------
address@hidden ~/Temp
$ cd bug

address@hidden ~/Temp/bug
$ make
/usr/bin/gcc -c -ansi -pedantic -Wcomment -fno-asm -fsigned-char -W -Wparent
heses -Wreturn-type -Wswitch -Wunused -Wsign
-compare -Wimplicit -Wreturn-type -Wshadow -Wpointer-arith -Wwrite-strings -
Wsign-compare -Wstrict-prototypes -Wmissing-
prototypes -Wmissing-declarations -O2 -D NDEBUG  hello/hello.c -o
gcc_lite/obj/hello/hello_lite.o
hello/hello.c: In function `main':
hello/hello.c:3: warning: unused parameter `argc'
hello/hello.c:3: warning: unused parameter `argv'
/usr/bin/gcc   -o gcc_lite/bin/hello_lite.exe
gcc_lite/obj/hello/hello_lite.o
make: *** No rule to make target `gcc_lite/results/hello.run.log', needed by
`run'.  Stop.
---------------------------------------------------------------------

Typing "make" again will report:

---------------------------------------------------------------------
address@hidden ~/Temp/bug
$ make
gcc_lite/bin/hello_lite.exe  > gcc_lite/results/hello.run.log
/usr/bin/size  gcc_lite/bin/hello_lite.exe > gcc_lite/results/hello.size.log
---------------------------------------------------------------------

In order to re-create the clean environment, use "make distclean".

The build will work in two phases using "make mkdir" and then "make". It is
somehow the rules in "makefile", lines 59-67, which don't seem to evaluate
if the folders don't exist. However, they work fine if the % in the
prerequesite is replaced with a fixed "hello".

------------------------
Peter Hedinger
STMicroelectronics (R&D) Limited
1000 Aztec West, Almondsbury,
Bristol, BS32 4SQ,
UK

Attachment: bug.tar.gz
Description: GNU Zip compressed data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]