I'm converting a pre-existing codebase to automake and friends from raw GNU make.
The existing setup needed a mix of MPI and non-MPI code. For those not familiar, (generally) one compiles MPI code using a special frontend, e.g. 'mpicc', which then forwards to the system compiler. To work with this, I named any file in my tree that needed MPI as "whatever.mpi.c" instead of simple "whatever.c". Then I defined a custom pattern rule: %.mpi.o: %.mpi.c $(MPICC) -c $(CFLAGS) $^ -o $@ I unfortunately cannot replicate this setup with automake. It seems the generated makefile does not know of the rule if I included it as-is in my .am file. I get: make: *** No rule to make target `netz.mpi.lo', needed by `libnetz.la'. Stop. (I am using libtool as well; this is a pkglib_LTLIBRAR...y) I can't get a suffix rule to work as-is, perhaps due to all the '.'s. I tried changing it to a '-' and using: SUFFIXES = -mpi.o -mpi.o.c: $(MPICC) -c $(CFLAGS) $^ -o $@ to no avail. I have seen a variety of solutions in the archives that involve undesirable solutions such as multiple configure scripts. Could anyone see how to achieve the above solution? If it helps, I am perfectly okay with requiring GNU make. Thanks, -tom