linuxgccautomake

Setting per-file flags with automake


Is there a way set flags on a per-file basis with automake?
In particular, if I have a c++ project and want to compile with -WAll all the files except one for which I want to disable a particular warning, what could I do?

I tried something like:

CXXFLAGS = -WAll ...
bin_PROGRAMS = test
test_SOURCES = main.cpp utility.cpp
utility_o_CXXFLAGS = $(CXXFLAGS) -Wno-unused-value

but it didn't work.

EDITED: removed reference to automake manual, which was actually misleading (thanks to Douglas Leeder).


Solution

  • Automake only supports per-target flags, while you want per-object flags. One way around is to create a small library that contains your object:

    CXXFLAGS = -Wall ...
    bin_PROGRAMS = test
    test_SOURCES = main.cpp
    test_LDADD = libutility.a
    noinst_LIBRARIES = libutility.a
    libutility_a_SOURCES = utility.cpp
    libutility_a_CXXFLAGS = $(CXXFLAGS) -Wno-unused-value