Re: makefile question
- From: "tribble" <lauraeaves@xxxxxxxxx>
- To: <programmingblind@xxxxxxxxxxxxx>
- Date: Fri, 26 Dec 2008 23:42:24 -0600
There are 2 other things I'd like to add to Ken's makefile --
First, I'm sure Ken has looked at this more recently than me and is probably
right, but is each line of the makefile interpreted inside its own shell? or in
the surrounding context? I remember when I used to write makefiles I used to
sometimes put parentheses around the line so when I type cd, it wouldn't change
the folder for the surrounding context. Just a thought.
Second, when I used to work on large makefiles, we would not put the makefile
for the whole project one level up, but rather in a parallel directory. That
way you could build multiple executables, each in its own directory. For
example, if you want 2 versions of a library, one with exception handling code
included and the other not, (C++ of course), you would create 2 directories
mkPlain and mkEH, and compile all the object files with the exception handling
code compiled in, then go to the other and compile it without.
So in mkEH\makefile put
(cd ..\lib; $(MAKE) lib.dll; mv lib.dll ../mkEH )
Excuse the typos. Correct me if I'm off; it's been a while. And I don't know
if you are running on a unix shell or windows environment somewhere.
Happy hacking.
--le
----- Original Message -----
From: Tyler Littlefield
To: programmingblind@xxxxxxxxxxxxx
Sent: Friday, December 26, 2008 11:42 PM
Subject: Re: makefile question
awesome, thanks. so I just need to add a cd;make to the root for each of the
folders.
wonder if there's an easier way of doing that (like storing the list of dirs
in a variable) or something... I'll have to check in to it.
----- Original Message -----
From: Ken Perry
To: programmingblind@xxxxxxxxxxxxx
Sent: Friday, December 26, 2008 8:32 PM
Subject: RE: makefile question
You add the make file in the next level in the make file of the first level
as one of the commands to execut in the lower level. I have a 3 level tree in
my current make file system and in the first level it looks something like this
:
all: $(BINDIR)$(SERVER)
cd scripts;make "MAKEFILE=${MAKEFILE}"
cd utilities;make
cd key;make
cd compiler;make "MAKEFILE=${MAKEFILE}"
cd language;make "MAKEFILE=${MAKEFILE}"
cd mplex;make "MAKEFILE=${MAKEFILE}"
cd Utility;make "MAKEFILE=${MAKEFILE}"
d
From: programmingblind-bounce@xxxxxxxxxxxxx
[mailto:programmingblind-bounce@xxxxxxxxxxxxx] On Behalf Of Tyler Littlefield
Sent: Friday, December 26, 2008 2:26 PM
To: programmingblind@xxxxxxxxxxxxx
Subject: makefile question
Hello list,
I've got a quick question.
I've got a set of programs, each in their own separate folder with
makefiles to match.
This works, but when I want to build the whole package I have to go from
directory to directory.
Is there a way perhaps, to make a makefile compile with other makefiles
under separate directories? I'd just like one main makefile that will run the
makefiles in sub directories, and pass in the argument.
So, if I'm at the root of the directory and I want to clean the package,
make clean would go to directories a,b,c,d,e and run make clean, etc.
TIA,
Other related posts: