How to define dynamic Target/Prerequisite in Makefile?


 
Thread Tools Search this Thread
Top Forums Programming How to define dynamic Target/Prerequisite in Makefile?
# 1  
Old 09-26-2011
Java 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.
================================
Code:
#Path Variables
targetpath=/home/usr/user1/target
sourcepath=/home/usr/user1/source
#Target &Dependencies
all:$(targetpath)/$(sourcename).int
#Implicit Rule for compilation
$(targetpath)/%.int:$(sourcepath)/%.cbl
        cob $<  -C int=$@

================================
currently I am using following command which I can trigger thru Shell script.
-bash-3.2$ make sourcename=A
-bash-3.2$ make sourcename=B
-bash-3.2$ make sourcename=C
-bash-3.2$ make sourcename=D
looking forward for inputs on this.
Note .cbl is a extension for cobol code and .int is its exectable

Last edited by vbe; 09-27-2011 at 07:23 AM.. Reason: code tags next time...
# 2  
Old 09-26-2011
Wildcards ought to work to match more than one thing in one statement, but you'd have to be careful not to get multiple targets in one rule unless that one rule can actually make all those targets.
# 3  
Old 09-27-2011
Any more thoughts on how to achieve this??
# 4  
Old 09-27-2011
Can you show us your makefile ( or what you have done so far) so we get a clear view of what you desire? What is the makefile for? ( compile cobol source or compile cobol compiler...) What cobol are you using?
# 5  
Old 09-27-2011
more details for makefile

Hi Vbe I have already posted a Makefile while starting this Post.This Makefile is to compile a cobol source.cobol under consideration is Microfocus cobol.However you can assume any standard syntax of any source as below
************************************
all:Target
Target file name:Source file name
<tab> command for compilation of source
************************************
Here am looking if it is possible to that Makefile refer to a directory which has unkonown number of files and create dependency for all based on predefined rules.eg.I have directory /home/usr/usr1 which has lets say thousan source codes.I hope this explains the scenarion.Please suggests if it is posssible this way??
# 6  
Old 09-28-2011
And how are these thousands of source files supposed to be compiled? Individually? Separately? Compiled individually and linked as one? Or what?
# 7  
Old 09-28-2011
These are to be compiled individually and not to be linked. A.cbl gets compiled to A.int and can be directly executed independent of other executables.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. 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

2. HP-UX

After adding new iscsi target port, still the session state of that target port is showing offline

Hi, I wanted to configure new iscsi port on HPUX system, i added the target port address and configured it, once done, went to array side and searched for that host iqn number , but was nt able to find the same, came to host, then when i ran "iscsiutil -pVS" command it gave me below result ... (0 Replies)
Discussion started by: Vinay Kumar D
0 Replies

3. 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

4. Homework & Coursework Questions

Help with Simple Multi-Level Makefile (Extremely New at Makefile)

Use and complete the template provided. The entire template must be completed. If you don't, your post may be deleted! 1. The problem statement, all variables and given/known data: Basically, the prompt is make a makefile with various sub makefiles in their respective subdirectories. All code... (1 Reply)
Discussion started by: Tatl
1 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. Programming

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:... (0 Replies)
Discussion started by: Harlinator
0 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. Programming

dynamic linking of folder name in makefile

i will tell my problem with example: if i have a folder name called sree1.7.3 i know the starting name say sree and also path say /usr/lib. so i want the folder name. and how can i link this folder in makefile thank u sree (1 Reply)
Discussion started by: phani_sree
1 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