GNU bug report logs -
#26031
EXEEXT not working with "make check"
Previous Next
To reply to this bug, email your comments to 26031 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-automake <at> gnu.org
:
bug#26031
; Package
automake
.
(Wed, 08 Mar 2017 19:18:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
selinger <at> mathstat.dal.ca (Peter Selinger)
:
New bug report received and forwarded. Copy sent to
bug-automake <at> gnu.org
.
(Wed, 08 Mar 2017 19:18:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Summary:
========
"make check" does not respect $(EXEEXT)
To reproduce:
=============
Please see the attached minimal package testing-0.0.tar.gz
This succeeds:
$ ./configure
$ make check
This also succeeds:
$ ./configure ac_cv_exeext=.exe
$ make check
This fails:
$ ./configure
$ make EXEEXT=.exe check
Output from failure:
====================
Making check in check
make[1]: Entering directory '/home/selinger/projects/ccrypt/automake-bug/check'
make mytest.exe
make[2]: Entering directory '/home/selinger/projects/ccrypt/automake-bug/check'
gcc -g -O2 -o mytest.exe mytest.o
make[2]: Leaving directory '/home/selinger/projects/ccrypt/automake-bug/check'
make check-TESTS
make[2]: Entering directory '/home/selinger/projects/ccrypt/automake-bug/check'
make[3]: Entering directory '/home/selinger/projects/ccrypt/automake-bug/check'
make[4]: Entering directory '/home/selinger/projects/ccrypt/automake-bug/check'
make[4]: Nothing to be done for 'mytest.exe.log'.
make[4]: Leaving directory '/home/selinger/projects/ccrypt/automake-bug/check'
fatal: making test-suite.log: failed to create mytest.exe.trs
fatal: making test-suite.log: failed to create mytest.exe.log
Makefile:580: recipe for target 'test-suite.log' failed
make[3]: *** [test-suite.log] Error 1
make[3]: Leaving directory '/home/selinger/projects/ccrypt/automake-bug/check'
Makefile:686: recipe for target 'check-TESTS' failed
make[2]: *** [check-TESTS] Error 2
make[2]: Leaving directory '/home/selinger/projects/ccrypt/automake-bug/check'
Makefile:759: recipe for target 'check-am' failed
make[1]: *** [check-am] Error 2
make[1]: Leaving directory '/home/selinger/projects/ccrypt/automake-bug/check'
Makefile:349: recipe for target 'check-recursive' failed
make: *** [check-recursive] Error 1
Analysis:
=========
The problem seems to be that the generated Makefile contains a rule
for building mytest.log, but actually tries to build mytest.exe.log
(for which no recipe is generated). Indeed the following succeeds
after ./configure:
$ make EXEEXT=.exe mytest.log
gcc -DHAVE_CONFIG_H -I. -I.. -g -O2 -MT mytest.o -MD -MP -MF .deps/mytest.Tpo -c -o mytest.o mytest.c
mv -f .deps/mytest.Tpo .deps/mytest.Po
gcc -g -O2 -o mytest.exe mytest.o
PASS: mytest.exe
Maybe this behavior is intentional (i.e., EXEEXT should be configured
at configuration time, not make time). However, it seems that the
generated check/Makefile contains .exe hardwired in three places, of
which two are unnecessary:
TEST_EXTENSIONS = .exe .test
am__test_logs2 = $(am__test_logs1:.exe.log=.log)
EXEEXT = .exe
It would be more logical to use $(EXEEXT) instead of the
hardwired value in the first two places:
TEST_EXTENSIONS = $(EXEEXT) .test
am__test_logs2 = $(am__test_logs1:$(EXEEXT).log=.log)
EXEEXT = .exe
Indeed, with the above change to the Makefile,
$ make EXEEXT=.gaga check
now works without problems.
Automake version:
=================
automake (GNU automake) 1.15
Build host:
===========
Ubuntu 16.10
Linux puffin.mathstat.dal.ca 4.8.0-32-generic #34-Ubuntu SMP Tue Dec 13 14:30:43 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
test-suite.log:
===============
I cannot include this file because none is generated (the recipe for
test-suite-log did not complete).
Please let me know if there is additional info you need from me.
Thanks, -- Peter
[testing-0.0.tar.gz (application/octet-stream, attachment)]
This bug report was last modified 8 years and 100 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.