djlinse@phoenix.Princeton.EDU (Dennis Linse) (03/10/91)
I've been using pmake(1) on our Personal Iris for several months now with no problems under Irix 3.2.2. I updated to 3.3.2 this week and attempted to rebuild some of my source and ran into problems during a partial pmake of an archive. I've simplified it down to the following source. ----- Makefile ----- main: libtest.a main.o cc -o main main.o libtest.a libtest.a: libtest.a(sub.o) ar cru $(.TARGET) $(.OODATE) rm -f $(.OODATE) ----- main.c ----- main() { sub(); } ----- sub.c ----- sub() { } ----- Putting these three files in a separate directory and running pmake the first time works great. Now touch sub.c and rerun pmake. To me this should (and use to) recompile sub.c to sub.o, include sub.o in libtest.a, remove sub.o, and relink main. Unfortunately, that isn't what it does, although pmake says it is going to do that. Here is a short typescript which shows the output for pmake and pmake -n which tells what pmake is *going* to do. ----- theodore, dude> pmake `main' is up to date. theodore, dude> touch sub.c theodore, dude> pmake -n --- sub.o --- cc -O -c sub.c --- libtest.a(sub.o) --- --- libtest.a --- ar cru libtest.a sub.o rm -f sub.o --- main --- cc -o main main.o libtest.a theodore, dude> pmake --- sub.o --- cc -O -c sub.c `main' is up to date. theodore, dude> pmake -n --- libtest.a(sub.o) --- --- libtest.a --- ar cru libtest.a sub.o rm -f sub.o --- main --- cc -o main main.o libtest.a theodore, dude> pmake `main' is up to date. theodore, dude> ----- As you can see, the ar command is never run. Thus main is *not* up to date, nor is libtest.a. Even pmake admits this with the -n option. Am I doing something incredibly wrong? Hopefully I am, or else I'll have to submit a bug report next week and try to rethink of a way to do what I want. (I use pmake because it looked easier when I was putting together this project under RCS.) Thanks for any help. Dennis (djlinse@phoenix.princeton.edu) A witty saying proves nothing. -- Voltaire
djlinse@phoenix.Princeton.EDU (Dennis Linse) (03/13/91)
In article <7009@idunno.Princeton.EDU> I wrote: >I've been using pmake(1) on our Personal Iris for several months now >with no problems under Irix 3.2.2. I updated to 3.3.2 this week and >attempted to rebuild some of my source and ran into problems during a >partial pmake of an archive. [...] I went on to describe a problem in which an existing archive wouldn't properly be updated if a target was out of date. Andrew Cherenson (arc@kaibab.wpd.sgi.com) informed me that this is a known bug in the IRIX 3.3 version of pmake and has been fixed in the IRIX 4.0 version. It's comforting to know that I'm not losing my mind :-) Dennis (djlinse@phoenix.princeton.edu) A witty saying proves nothing. -- Voltaire