Makefile: multiple target variable substitution


 
Thread Tools Search this Thread
Top Forums Programming Makefile: multiple target variable substitution
# 1  
Old 09-24-2009
Makefile: multiple target variable substitution

Greetings!

Basically, I would like to properly handle this with gnu make:

alltools: my_tool mysecond_tool mythird_tool etc_tool

%_tool: dir1/%_tool.vf dir2/%_tool/subdir2/%_tool.ver
<tab>@echo done

%.vf:
<tab>RUN_VF $*

%.ver:
<tab>RUN_VER $*

So, if I were to do something like:
UNIX> make alltools

Where each *_tool would be dependent on 2 files: dir1/*_tool.vf & dir2/*_tool/subdir2/*_tool.ver.

However, it looks like make only allows one substitution per dependency. So what make actually tries to make are these files (for my_tool):
dir1/my_tool.vf & dir2/my_tool/subdir2/%_tool.ver

'my' did not get substituted into '%' at both places in the second dependency.

So, my question is, can this be done with some other special variable? Or, is there a simple trick to getting around this?

Thanks in advance!
Harlin!
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Multiple variable substitution in a file in one go

I have a huge script which is defining variables with full path of commands in the beginning of code and using those variables in the script. For Example: ECHO=/bin/echo LS=/bin/ls SED=/bin/sed AWK=/bin/awk UNAME=/bin/uname PS=/bin/ps DATE=/bin/date GREP=/bin/grep $ECHO "hello... (1 Reply)
Discussion started by: veeresh_15
1 Replies

2. Programming

Makefile No rule to make target

I am trying to create a makefile to build a program and am getting the following error: make -f tsimplex.mk make: *** No rule to make target `/main/tsimplex_main.cpp', needed by `tsimplex_main.o'. Stop. OPSYS = $(shell uname -s ) TARGET = tsimplex ROOTDIR = ../../.. GTSDIR =... (1 Reply)
Discussion started by: kristinu
1 Replies

3. Programming

How to define dynamic Target/Prerequisite in Makefile?

I am writing a Makefile for Cobol on Linux.My sample Makefile looks like below. I do not want to Hardcode Program names in Makefile.Is there any way we can mention directories in Target and Prerequisites instead of File names sothat Makefile Pickup all the files in mentioned path as below.... (8 Replies)
Discussion started by: kiranksb
8 Replies

4. Shell Programming and Scripting

MakeFile Backup Target

Goal: I'm trying to create a PHONY target inside my Makefile so that when I run the command "make backup", It will move all the files that end in "~" into the specified backup folder. Here is my code currently, and I'll explain the problem after: .PHONY: backup backup: @mkdir -p... (2 Replies)
Discussion started by: Xploit
2 Replies

5. Solaris

Setting/Modifying variable specific to target in Makefile

Hi, I have a small piece of Makefile script which throw's error on Sun Sparc machine, but works fine with Sun Optron, Linux, AIX machines. FOO=Naveen test1:FOO=Dhilip test1: @echo FOO is ${FOO} test2: @echo Me is ${FOO} Output on Sun Sparc - ukhml-v890new-~/test: make test1... (5 Replies)
Discussion started by: nsriram
5 Replies

6. Shell Programming and Scripting

Multiple variable substitution in one line

Hi, I want to get content of a$i variables with one command: a1=/tmp1.log a2=/tmp2.log for i in 1 2;do log=<some code> echo $log done and get the content of a1 and a2: /tmp1.log /tmp2.log Thanks (2 Replies)
Discussion started by: gdan2000
2 Replies

7. Shell Programming and Scripting

Makefile debug target

Hello, I'm having a problem with a makefile script i'm trying to write. I want to compile a C++ program in two possible ways: "make" (default target, main) and "make debug". When i supply the debug target, exactly the same as main should be built, but then with the DEBUG flag (-g -D... (2 Replies)
Discussion started by: StevenR
2 Replies

8. Shell Programming and Scripting

makefile substitution help

This is driving me crazy. I'm trying to automate some things in my makefile and I'm running into a substitution issue. I'm trying to automatically create object directories if they don't already exist based on the listed source files found in the $(SRCARM) variable. SRCARM = dir1/file1.c \... (0 Replies)
Discussion started by: loki980
0 Replies

9. HP-UX

Oracle 9i install: Error in invoking target install of makefile

I receive an error while installing Oracle 9i: Error in invoking target install of makefile /opt/oracle/product/9.2.0/sqlplus/lib/ins_sqlplus.mk Furthermore: $ whoami oracle $ echo $ORACLE_HOME /opt/oracle/product/9.2.0 $ pwd /opt/oracle/product/9.2.0/sqlplus/lib $ ll total... (5 Replies)
Discussion started by: chris2005
5 Replies

10. Solaris

Makefile:57: *** multiple target patterns. Stop.

Hi, I am getting the following error while building on Solaris 64 , while I am trying to build. Error Snippet :- ---------------------- Makefile:57: *** multiple target patterns. Stop. make: Leaving directory `/work1/patch/vds6053sun64o/vobs/jvi' make: *** Error 2 make: Leaving directory... (0 Replies)
Discussion started by: nileshborate
0 Replies
Login or Register to Ask a Question
RAIDFILE-CONFIG(8)						    Box Backup							RAIDFILE-CONFIG(8)

NAME
raidfile-config - Configure Box Backup's RAID files SYNOPSIS
raidfile-config config-dir blocksize dir1 [dir2 [dir3]] DESCRIPTION
raidfile-config creates a raidfile.conf file for Box Backup. This file holds information about the directories used to store backups in. Box Backup supports userland RAID, in a restricted RAID5 configuration, where 3 and only 3 'drives' are supported. You can read more about RAID5 (and other RAID-levels) here[1]. Parameters The parameters are as follows: config-dir The directory path where configuration files are located. Usually this is /etc/box. raidfile.conf will be written in this directory. blocksize The block size used for file storage in the system, in bytes. Using a multiple of the file system block size is a good strategy. Depending on the size of the files you will be backing up, this multiple varies. Of course it also depends on the native block size of your file system. dir1 The first directory in the built-in RAID array. dir2 The second directory in the built-in RAID array. If you are not using the built-in RAID functionality, this field should be ignored. You should not use the built-in RAID if you have a hardware RAID solution or if you're using another type of software RAID (like md on Linux). dir3 The third directory in the built-in RAID array. The same notes that apply to dir2 also apply to dir3. Note that there are currently no way to add multiple disk sets to the raidfile.conf file using command line tools, etc. See raidfile.conf(5) for details on adding more disks. BUGS
If you find a bug in Box Backup, and you want to let us know about it, join the mailing list[2], and send a description of the problem there. To report a bug, give us at least the following information: o The version of Box Backup you are running o The platform you are running on (hardware and OS), for both client and server. o If possible attach your config files (bbstored.conf, bbackupd.conf) to the bug report. o Also attach any log file output that helps shed light on the problem you are seeing. o And last but certainly not least, a description of what you are seeing, in as much detail as possible. FILES
raidfile-config generates the raidfile.conf(5) file. SEE ALSO
bbstored-config(8), bbstored.conf(5), raidfile.conf(5) AUTHORS
Ben Summers Per Thomsen James O'Gorman NOTES
1. here http://en.wikipedia.org/wiki/Redundant_array_of_independent_disks#RAID_5 2. mailing list http://lists.warhead.org.uk/mailman/listinfo/boxbackup Box Backup 0.11 10/28/2011 RAIDFILE-CONFIG(8)