I give up.

I can't make the new pm_to_blib.ts work AND maintain backwards compatibility
with modules that add custom targets as dependencies to the old pm_to_blib
target.  Either the old pm_to_blib target doesn't get run OR we have
a perpetual rebuild problem.

For those who don't remember, VMS wants a dot in every filename and will
helpfully put one there whether you want it or not.  So "touch pm_to_blib"
actually produces "pm_to_blib." but its not smart enough to know that
when you check to see if "pm_to_blib" exists you should actually check
"pm_to_blib.".  This means the pm_to_blib target will always rebuild.
So VMS used pm_to_blib.ts.  I decided to remove this exception and just have
everyone use pm_to_blib.ts.  This would have been fine except that a lot
of modules expect there to be a pm_to_blib target, too many to change.

Here's my attempt:

pm_to_blib : 
        $(NOECHO) $(NOOP)

pm_to_blib.ts : pm_to_blib $(TO_INST_PM)
        ...run pm_to_blib...
        $(TOUCH) pm_to_blib.ts

So pm_to_blib gets run but since there's no pm_to_blib file make will always 
want to rebuild pm_to_blib.  Which means pm_to_blib.ts always gets rebuilt.  
Which means everything which depends on that (lots of stuff) gets rebuilt.

I can't figure out a way to fix this.  Nothing I've tried works.  Either
things get rebuilt OR backwards compat with the pm_to_blib hack is broken.

Unless someone can think of something clever pm_to_blib.ts is going away
and its back to pm_to_blib with the VMS exception.  It won't be as bad as
the original code, nothing should be duplicated, but I still don't like
exceptions.

Oh well.

Reply via email to