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
mhddfs(1)						      General Commands Manual							 mhddfs(1)

NAME
mhddfs - The driver combines a several mount points into the single one. SYNOPSIS
mhddfs /dir1,/dir2[,/path/to/dir3] /path/to/mount [-o options] mhddfs /dir1 dir2,dir3 /mount/point [-o options] ... fusermount -u /path/to/mount fstab record example: mhddfs#/path/to/dir1,/path/to/dir2 /mnt/point fuse defaults 0 0 mhddfs#/dir1,/dir2,/dir3 /mnt fuse logfile=/var/log/mhddfs.log 0 0 OPTIONS
with an -o option1,option2... you can specify some additional options: logfile=/path/to/file.log specify a file that will contain debug information. loglevel=x 0 - debug messages 1 - info messages 2 - standard (default) messages mlimit=size[m|k|g] a free space size threshold If a drive has the free space less than the threshold specifed then another drive will be choosen while creat- ing a new file. If all the drives have free space less than the threshold specified then a drive containing most free space will be choosen. Default value is 4G, minimum value is 100M. This option accepts suffixes: [mM] - megabytes [gG] - gigabytes [kK] - kilobytes For an information about the additional options see output of: mhddfs -h DESCRIPTION
The file system allows to unite a several mount points (or directories) to the single one. So a one big filesystem is simulated and this makes it possible to combine a several hard drives or network file systems. This system is like unionfs but it can choose a drive with the most of free space, and move the data between drives transparently for the applications. While writing files they are written to a 1st hdd until the hdd has the free space (see mlimit option), then they are written on a 2nd hdd, then to 3rd etc. df will show a total statistics of all filesystems like there is a big one hdd. If an overflow arises while writing to the hdd1 then a file content already written will be transferred to a hdd containing enough of free space for a file. The transferring is processed on-the-fly, fully transparent for the application that is writing. So this behaviour simu- lates a big file system. WARNINGS The filesystems are combined must provide a possibility to get their parameters correctly (e.g. size of free space). Otherwise the writing failure can occur (but data consistency will be ok anyway). For example it is a bad idea to combine a several sshfs systems together. Please read FUSE documentation for a further conception. COPYRIGHT
Distributed under GPLv3 Copyright (C) 2008 Dmitry E. Oboukhov <dimka@avanto.org> February 2008 mhddfs(1)