help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Delegate Variable to sub-target


From: Paul Smith
Subject: Re: Delegate Variable to sub-target
Date: Mon, 30 May 2011 14:21:05 -0400

On Mon, 2011-05-30 at 15:50 +0000, Greg Chicares wrote:
> Chapter%:
>         pdflatex $*
>         bibtex $*.bib

You want $@ not $* I believe (Anja: see the GNU make manual section on
automatic variables).

You can't think of a makefile like a programming language, where the
rules are subroutines that are called from other subroutines with
arguments, etc.

A makefile is a database of rules that can be used to build individual
targets.  make itself has the logic to decide which rules are invoked in
which order: you don't explicitly define the flow of what is invoked.
So there's no real concept of "calling one rule from another rule".
Rather you defined the dependency relationships, and make runs things in
the right order by itself.


GNU make has a concept of "pattern rules", which Greg uses above, that
lets you define a template of commands that can be used to build any
target that matches the pattern.  That sounds kind of like what you
want.

Using $(call ....) is a way to go as well but that's not really taking
advantage of make's strengths and conceptual model.

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <address@hidden>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.mad-scientist.net
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist




reply via email to

[Prev in Thread] Current Thread [Next in Thread]