Sunday, 15 May 2011

templating - How to create rules from list of targets in Makefile? -


There are some configuration files in my project and they are generated from the same template like foo.tmpl => Foo . Now I would like to write a makefile that can generate a file related to the template.

I could not have had anything like this:

 %:% .tmpl generate-to-tmpl $ & lt;  

Since this is the goal of all possible files, however, I only want to restrict my goal with the .tmpl correspondent. Now I've got the list of all templated files:

  TEMPLATED_FILES = $ (shell search-type f -name "* .tmpl") GENERATED_FILES = $ (TEMPLATED_FILES: .tmpl =) < / Code> 

I have to do something that looks like:

  $ (foreach GENERATED_FILES): $ @ Tmpl generated-to-tmpl $ & lt;  

How can I get it? Thank you.

%:% .tmpl will try to match the target % , but if there is no match % If the Tmpl file exists, then that method will completely leave for that goal.

I believe in what you really want

  $ (GENERATED_FILES):%: Do you have some reasons not to think like that?  

It is being said that if you want to be more specific, then what do you want:% .tmpl generated-to-tmpl $ & lt;

which will only apply to files in $ (GENERATED_FILES) .

In addition, if your template files are only in your directory, then you can use:

  TEMPLATED_FILES = $ (wildcard * .tmpl)  

instead of shell and find (there are also recursive wildcard defines available but find is appropriate if you need it).


No comments:

Post a Comment