On Sun, Jul 03, 2005 at 09:37:49AM +0200, Gus Koppel wrote:
> 
> Makefiles are not supposed to contain (or evaluate, rather)
> "`"-expressions.

Why not?  Backquotes work with most shells and thus you
don't depend on GNU make.

Anyway, make never evaluates ``-expressions, see below.
I have a Makefile which bascially consists only of

  PKGCONFIG = pkg-config
  GTK = gtk+-2.0
  LDFLAGS = `$(PKGCONFIG) $(GTK) --libs`
  CFLAGS = `$(PKGCONFIG) $(GTK) --cflags`

in my experimental Gtk+ directory, so I create foo.c, run
make foo and it compiles foo with Gtk+.  I could use
$(shell ...) too, but it would make no difference here.

> 'make' doesn't treat them the same way the shell does,
> i.e. expanding them. 'make' provides the "shell" function for shell
> command expansion instead. Study the 'make' documentation for further
> information about this.

Which reveals make never evaluates `` in the first place.
Backquotes have no special meaning in Makefile, make
substitutes them literally and it's the shell what
subsequently expands them.  So unlike

FOO = $(echo $$RANDOM)
FOO := $(echo $$RANDOM)

where the first gives a different number each time it is
used and the second always the same (echo $$RANDOM is always
run once at the start), both

FOO = `echo $$RANDOM`
FOO := `echo $$RANDOM`

give different numbers each time they are used.  Both
behaviours can be useful:

FOO = $(shell ls)

foo:
        cd /tmp; echo $(FOO)

prints the contents of current directory.  But

FOO = `ls`

foo:
        cd /tmp; echo $(FOO)

prints the contents of /tmp -- it's the same as

foo:
        cd /tmp; echo `ls`

Yeti


--
A: Because it messes up the order in which people normally read text.
Q: Why is top-posting such a bad thing?
A: Top-posting.
Q: What is the most annoying thing on usenet and in e-mail?
_______________________________________________
gtk-app-devel-list mailing list
gtk-app-devel-list@gnome.org
http://mail.gnome.org/mailman/listinfo/gtk-app-devel-list

Reply via email to