问题
I have a autoconf/automake system that has a stand-alone target called stand
. I don't want stand
to be normally built, so I have this in my Makefile.am:
bin_PROGRAMS = grace
extra_PROGRAMS = stand
...
stand_SOURCES = stand.cpp barry.cpp ...
This has worked for a while, but automake just got updated on my system and I'm now getting this error:
src/Makefile.am:4: error: 'extra_PROGRAMS' is used but 'extradir' is undefined
src/Makefile.am:66: warning: variable 'stand_SOURCES' is defined but no program or
src/Makefile.am:66: library has 'stand' as canonical name (possible typo)
So I added this:
extradir = .
But that has caused problems.
I don't want the stand
program installed. It's just a test program for me. But it's not part of a formal test suite, it's just for my own purposes. What should I do?
回答1:
We found the bug! It turns out that extra
needs to be capitalized, like this:
bin_PROGRAMS = grace
EXTRA_PROGRAMS = stand
...
stand_SOURCES = stand.cpp barry.cpp ...
回答2:
You could try conditionally building it:
noinst_PROGRAMS=
if BUILD_STAND
noinst_PROGRAMS += stand
endif
stand_SOURCES = stand.cpp barry.cpp ...
This will not install it since it's in noinst_PROGRAMS
and others will normally not build it since BUILD_STAND
will normally not be defined for them.
来源:https://stackoverflow.com/questions/10702423/what-directory-should-i-use-for-error-extra-programs-is-used-but-extradir