Makefile executing another Makefile first?


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Makefile executing another Makefile first?
# 1  
Old 07-20-2010
Makefile executing another Makefile first?

I have 2 libraries in 2 different directories that I build with Makefiles.

library B depends on library A. If I modify a .cpp file in library A and run lib B's Makefile can I have B's makefile to automatically rebuild library A?

I am now rebuilding A, followed by B... but I'd like B to rebuild A automatically if it needs rebuilding. This is a streamlined example, but my real situation is
more complicated. I'd like the makefile for the final application to cause all
dependent libraries to build, if necessary so that I don't have to manually build them in the correct order.

I've tried "include ../A/Makefile" in B's Makefile, but I get errors. I think its because the directory doesn't change to ../A

Makefile:81: warning: overriding commands for target `all'
../A/Makefile:78: warning: ignoring old commands for target `all'
Makefile:98: warning: overriding commands for target `clean'
../A/Makefile:99: warning: ignoring old commands for target `clean'
make: *** No rule to make target `tinystr.o', needed by `A.a'. Stop.


Does anyone know how to make this work?

William
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

MakeFile

Hey everybody, This may be stup*d question for you, but i am new in unix and i wonder how can i make the rules for translating and linking my .c "primjer1.c", "primjer2.c" and "primjer3.c" in makefile. Thank you. (7 Replies)
Discussion started by: jskako
7 Replies

2. Homework & Coursework Questions

Makefile Help

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: I have been trying to make the program swap but i have been getting errors with the makefile such as driver.o:... (1 Reply)
Discussion started by: mgyeah
1 Replies

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

4. Programming

makefile help

Hi all, I'm new to make files . I'm writing a make file to compile and create .so files. i've 20 .cpp files. I want to compile one file at a time and then i've to create 1 .so for each file that i compiled. for eg: list.mk is having all the 20 .spp files. name = a.cpp name =+... (2 Replies)
Discussion started by: vij_krr
2 Replies

5. Programming

Makefile help

I've copied a C++ project from my old computer to this one, and I am now trying to (without success) compile the project in the same way as I did before. I use Emacs as a text editor and compile with g++. Here is what my makefile looks like: CC=g++ CPPFLAGS=-Wall CPPFLAGS+=-I..... (4 Replies)
Discussion started by: TriKri
4 Replies

6. Shell Programming and Scripting

Regarding Makefile

Hi friends, I have a problem with compiling makefile.While i am compiling makefile it always compiles 1 or 2 files inside that makefile even if nothing is changed in those files.If none of the changes are made in those file while compiling the makefile it should output like "file is upto date",... (0 Replies)
Discussion started by: s.sen1213
0 Replies

7. UNIX for Advanced & Expert Users

Makefile problem - How to run module load in a Makefile

Hi, I'm trying to run the module load command in a Makefile and i'm getting the following error: make: module: command not found Why is this? Is there any way to run this command in a Makefile? NOTE: command - module load msjava/sunjdk/1.5.0 works fine outside of the Makefile (2 Replies)
Discussion started by: hernandinho
2 Replies

8. Programming

Makefile help

Hi, What I want to do is for make to reconstruct the target even if its dependencies have not changed. So, even if if the dependent files do not have a more recent timestamp, the commands are executed. The reason I want to do this.. 1)someone executes make on solaris. We have a solaris... (4 Replies)
Discussion started by: tantric
4 Replies

9. UNIX for Dummies Questions & Answers

makefile

Hi, I've searched for makefile in Google and read the pages and tried, but can't seem to understand or get the results as shown in the examples. Can someone help on this? i normally compile my c files like this gcc sampleFile.c -o sampleFile how do I use makefile now instead? (4 Replies)
Discussion started by: scmay
4 Replies

10. UNIX for Advanced & Expert Users

makefile

Can anyone tell me what does ?= do example VARIABLE ?= /somepath This is being used in makefile (1 Reply)
Discussion started by: raagbansal
1 Replies
Login or Register to Ask a Question
AIMK(1PVM)							  PVM Version 3.4							AIMK(1PVM)

NAME
aimk - Portable make wrapper script SYNOPSIS
aimk [ -here ] [ make arguments ] DESCRIPTION
aimk is a wrapper program for make, used to portably select options to build PVM and PVM applications on various machines. Each port of PVM is assigned an architecture name. The name is used both during compilation (to conditionally switch in code) and at runtime (to select an executable or host). aimk uses the value of environment variable $PVM_ARCH if it is set, otherwise it calls $PVM_ROOT/pvmgetarch to determine the architecture name. pvmgetarch is a script that sniffs at various parts of the system to determine the correct architecture name. It is updated as new PVM ports are defined, and can be augmented locally. aimk determines the machine architecture and execs make, passing it the architecture and a configuration file along with arguments supplied to aimk. It runs make in a subdirectory to prevent executables from becoming intermixed and to permit overlapping compiles. A different makefile can be placed in each subdirectory or a single makefile, Makefile.aimk, can be shared between architectures. Per-architecture definitions from the $PVM_ROOT/conf directory are appended to the common makefile. aimk calls make is called in one of three ways, depend- ing on what makefiles are present: i. If $PVM_ARCH/Makefile or $PVM_ARCH/makefile exists, change directory to $PVM_ARCH and exec make there: (cd $PVM_ARCH ; make PVM_ARCH=$PVM_ARCH < aimk args >) ii. Else if Makefile.aimk exists, create $PVM_ARCH directory if it doesn't exist, then: (cd $PVM_ARCH ; make -f $PVM_ROOT/conf/$PVM_ARCH.def -f ../Makefile.aimk PVM_ARCH=$PVM_ARCH < aimk args >) iii. Else just exec make in current directory: make PVM_ARCH=$PVM_ARCH < aimk args > If aimk succeeds in calling make, the exit status is that of make, otherwise it is 1. FLAGS
-here Forces aimk to run make in the current directory, e.g. converts case i. to case iii. EXAMPLES
The following Makefile.aimk file builds and installs hello, creating the PVM binary directory if it doesn't exist. It can be run concur- rently on machines of different types, sharing the same source directory. LDIR = -L$(PVM_ROOT)/lib/$(PVM_ARCH) PVMLIB = -lpvm3 SDIR = .. BDIR = $(HOME)/pvm3/bin XDIR = $(BDIR)/$(PVM_ARCH) CFLAGS = -g -I$(PVM_ROOT)/include LIBS = $(LDIR) $(PVMLIB) $(ARCHLIB) $(XDIR): - mkdir $(BDIR) $(XDIR) hello: $(SDIR)/hello.c $(XDIR) $(CC) $(CFLAGS) -o $@ $(SDIR)/$@.c $(LIBS) mv $@ $(XDIR) ENVIRONMENT
$PVM_ROOT Root path of PVM installation. $PVM_ARCH PVM architecture name for machine. FILES
$PVM_ROOT/lib/aimk The aimk program $PVM_ROOT/conf/$PVM_ARCH.def Arch config file SEE ALSO
pvm_intro(1PVM) 02 May, 1994 AIMK(1PVM)