From b8d892871876a422e382ae70e7a7c1777cac0bda Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Tue, 17 Jul 2018 15:38:57 -0400 Subject: [PATCH] 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 --- configure.ac | 2 +- src/Makefile_Eolian.am | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index 182292e06c..30c2e0d7ce 100644 --- a/configure.ac +++ b/configure.ac @@ -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 diff --git a/src/Makefile_Eolian.am b/src/Makefile_Eolian.am index 2b84287140..57c5cda09b 100644 --- a/src/Makefile_Eolian.am +++ b/src/Makefile_Eolian.am @@ -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