Title: | USG buildhelp questions/answers |
Moderator: | SMURF::FILTER |
Created: | Mon Apr 26 1993 |
Last Modified: | Mon Jan 20 1997 |
Last Successful Update: | Fri Jun 06 1997 |
Number of topics: | 2763 |
Total number of notes: | 5802 |
Date Of Receipt: 24-MAR-1994 10:26:37.07 From: ALPHA::dc "Dan Christians USG 24-Mar-1994 1025" To: odehelp@DEC:.zko.alpha CC: dc@DEC:.zko.alpha (Dan Christians USG) Subj: what does bad MAKEDIR mean, can you build within a Makefile hi, first, thanks to Jim McGinness for helping with me with my last problem. i am now able to build a library and export the header files which goes along with it using DATAFILES. i am now writing the Makefile for the programs which will use this library and would like to have a dependency such that the library will get built if it doesn't exist. here is the relavent part of the makefile: $(PROGRAMS): libthreadRace.a libthreadRace.a: build -here /sqa/threadRace what i would like is for the Makefile to check that the library exists, if it doesn't then have it call build to build it. this is what i get: % build relative path: ./sqa/exer/kern. cd ../../../../obj/alpha/sqa/exer/kern build -here /sqa/threadRace cd ... ./sqa/threadRace. Directory /u1/sb/src/sqa/threadRace not found - create [yes] /u1/sb/src/sqa/threadRace: created directory Make: ../../src/sqa/threadRace: bad MAKEDIR. Stop. *** Exit 1 i don't understand the error message regarding MAKEDIR. any help would be appreciated. thanks much! dan christians
T.R | Title | User | Personal Name | Date | Lines |
---|---|---|---|---|---|
663.1 | bad MAKEDIR | SMURF::FILTER | Automatic Posting Software - mail to flume::puck | Thu Mar 24 1994 11:30 | 35 |
Date Of Receipt: 24-MAR-1994 11:08:25.29 From: FLUME::jmcg "Jim McGinness" To: flume::dc CC: flume::buildhelp, flume::odehelp Subj: bad MAKEDIR I've never tried to use "build" inside a Makefile. It feels to me like a hierarchy violation. Given that you want to do it, I'd try to make it look as much like the command I would use if I were doing this in my own sandbox. libthreadRace.a: (cd ${MAKETOP}/sqa/threadRace;build) # above build will ensure library exists ln -s ....../libthreadRace.a libthreadRace.a In other words, tell it to go to the source directory, build, then link the result back here. You need to fill in the relative path between your current (obj) directory and the obj directory in which libthreadRace.a was built. The recursive build won't actually do much if the library has already been built. It doesn't make sense to me to have libthreadRace.a in the PROGRAMS directive. Surely that's better done in the sqa/threadRace directory. In this directory, you could just use ....../libthreadRace.a (relative path in the obj tree) wherever you currently have libthreadRace.a and get the dependencies correct. Warning: I think I may have given you a way to do what you said you wanted to do, but there's enough information in the context to to question why you're wanting to do this. -- jmcg |