Package: automake
Version: 1.16.1
Severity: minor

Hello.

The documentation says that, given the proper suffix rule, automake
should build objects from non-C sources and link them. This works for
executables but fails for libraries.

The issue is minor because the documentation only promises
experimental support.

I have tested the following reproducer with automake/1.16.1 and
libtoolize/2.4.6.

Thanks.


#!/bin/sh
set -e

# Some context.
touch AUTHORS ChangeLog NEWS README
cat > main.c <<EOF
#include <stdio.h>
#include <stdlib.h>
int main () {
  printf ("ok\n");
  return 0;
}
EOF
cat > bla.yal <<EOF
Something in an Yet Another Language.
EOF
cat > configure.ac <<EOF
AC_INIT([package-unused], [version-unused])
AM_INIT_AUTOMAKE
AC_PROG_CC
LT_INIT
AC_CONFIG_FILES([Makefile])
AC_OUTPUT
EOF

# Uncomment this part to check the expected behaviour.

# cat > Makefile.am <<EOF
# .yal.o:
#       echo "Expected behaviour"
#       false
# bin_PROGRAMS = main
# main_SOURCES = main.c bla.yal
# EOF
# autoreconf -fi
# ./configure
# make
# grep SUFFIXES Makefile
# Prints the message. .SUFFIXES contains .yal.

# Here is the bug.

cat > Makefile.am <<EOF
.yal.o:
        echo "Expected behaviour"
        false
lib_LTLIBRARIES = libbla.la
libbla_la_SOURCES = main.c bla.yal
EOF
autoreconf -fi
./configure
make
grep SUFFIXES Makefile
# Never prints the message, and generally ignores bla.yal.
# .SUFFIXES contains .yal though.

Reply via email to