Simon Josefsson wrote:
> I'm seeing some syntax-check warnings like this:
> 
> lib/Makefile.am:623: DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
> src/Makefile.am:716: DEFS = -DLOCALEDIR=\"$(localedir)\" @DEFS@
> maint.mk: use $(...), not @...@
> make: *** [sc_makefile_at_at_check] Error 1
> 
> However the gettext 0.18.1 manual still recommends using the lines used
> above.  Should the gettext manual be updated, or are there valid
> situations when @....@ is appropriate that maint.mk could detect?

If the maintainer was to write

  DEFS = -DLOCALEDIR=\"$(localedir)\" $(DEFS)

it would be a circular definition, leading to this error with GNU make:

  Makefile:1: *** Recursive variable `DEFS' references itself (eventually).  
Stop.

So the use of @...@ is not only appropriate here, it is even mandatory.

Note that for packages that use a hand-written Makefile.am (as opposed to a
hand-written Makefile.in), the gettext documentation [1] suggests to augment
AM_CPPFLAGS instead of DEFS. Both work, AM_CPPFLAGS is just more modern style.

Bruno

[1] http://www.gnu.org/software/gettext/manual/html_node/src_002fMakefile.html
-- 
In memoriam Siamanto <http://en.wikipedia.org/wiki/Siamanto>

Reply via email to