build: make object rule for eolian tests a versioned conditional

automake 1.16 changed the naming of object files:

- When subdir-objects is in effect, Automake will now construct
    shorter object file names when no programs and libraries name
    clashes are encountered.  This should make the discouraged use of
    'foo_SHORTNAME' unnecessary in many cases.
https://lists.gnu.org/archive/html/info-gnu/2018-02/msg00008.html

this requires that object-specific rules must be changed to match the new
naming scheme if newer automake is being used. the $am__api_version contains
the version string of the automake version used during autoreconf, so this
should be checked during configure time in order to generate the correct
makefile rule for that automake version

other similar rules should be changed in the same way

note that this conditional speculates on behavior of automake versions past
1.16, which are not yet released and thus may change, meaning that this issue may
reoccur in future automake versions

Differential Revision: https://phab.enlightenment.org/D6594
This commit is contained in:
Mike Blumenkrantz 2018-07-17 15:38:57 -04:00 committed by Stefan Schmidt
parent ab7d2ebb55
commit b8d8928718
2 changed files with 5 additions and 1 deletions

View File

@ -17,7 +17,7 @@ AH_BOTTOM([
AM_INIT_AUTOMAKE([1.6 dist-xz no-dist-gzip -Wall color-tests subdir-objects])
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
AM_CONDITIONAL([HAVE_AM_16], [test $(echo "${am__api_version}"|cut -d. -f2) -ge 16])
# Due to a bug in automake 1.14 we need to use this after AM_INIT_AUTOMAKE
# http://debbugs.gnu.org/cgi/bugreport.cgi?bug=15981
AC_USE_SYSTEM_EXTENSIONS

View File

@ -120,7 +120,11 @@ tests/eolian/eolian_generated_future.c \
tests/eolian/eolian_suite.c \
tests/eolian/eolian_suite.h
if HAVE_AM_16
tests/eolian/eolian_suite-eolian_generated_future.$(OBJEXT): tests/eolian/generated_future.eo.h tests/eolian/generated_future.eo.c
else
tests/eolian/tests_eolian_eolian_suite-eolian_generated_future.$(OBJEXT): tests/eolian/generated_future.eo.h tests/eolian/generated_future.eo.c
endif
CLEANFILES += tests/eolian/generated_future.eo.h tests/eolian/generated_future.eo.c