GNU bug report logs - #26031
EXEEXT not working with "make check"

Previous Next

Package: automake;

Reported by: selinger <at> mathstat.dal.ca (Peter Selinger)

Date: Wed, 8 Mar 2017 19:18:01 UTC

Severity: normal

To reply to this bug, email your comments to 26031 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


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):

From: selinger <at> mathstat.dal.ca (Peter Selinger)
To: bug-automake <at> gnu.org
Cc: Peter Selinger <selinger <at> mathstat.dal.ca>
Subject: EXEEXT not working with "make check"
Date: Wed, 8 Mar 2017 15:05:44 -0400 (AST)
[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.