[GRASS-dev] Re: [GRASS GIS] #595: WinGRASS g.version -c fails

GRASS GIS trac at osgeo.org
Wed Dec 16 19:26:01 EST 2009


#595: WinGRASS g.version -c fails
---------------------------+------------------------------------------------
  Reporter:  hamish        |       Owner:  grass-dev at lists.osgeo.org
      Type:  defect        |      Status:  new                      
  Priority:  blocker       |   Milestone:  6.4.0                    
 Component:  License       |     Version:  6.4.0 RCs                
Resolution:                |    Keywords:  wingrass gpl             
  Platform:  MSWindows XP  |         Cpu:  x86-32                   
---------------------------+------------------------------------------------
Comment (by glynn):

 Replying to [comment:11 martinl]:

 > > > The necessary changes for 6.x should be similar, but this probably
 can't be back-ported directly to 6.x due to Makefile differences.

 > Done r39921, anyway compilation fails on my computer. The following
 patch helped me
 >
 {{{
 -$(OBJDIR)/copying.h: $(MODULE_TOPDIR)/COPYING | $(OBJDIR)
 +$(OBJDIR)/copying.h: $(MODULE_TOPDIR)/COPYING $(OBJDIR)
         sed -e 's/^\(.*\)$$/"\1\\n"/' $< > $@
 }}}
 >
 > Could someone review this patch? Thanks. Martin

 You should probably omit $(OBJDIR) from the prerequisites list altogether,
 and forcibly create it before making $(OBJDIR)/copying.h and
 $(OBJDIR)/confpams.h, e.g.:

 {{{
 default:
         $(MAKE) $(OBJDIR)
         $(MAKE) cmd
 }}}

 Anything to the right of a "|" in the prerequisites line indicates an
 order-only prerequisite. These are ignored when checking if a target is
 older than any of its prerequisites, but if make decides that the target
 does need to be re-built, these will be made before the commands are
 executed if they don't already exist.

 The 7.0 Makefiles generally use order-only prerequisites for the directory
 into which the target will be placed. They have to exist before the target
 can be made, but the target doesn't need to be re-made just because the
 directory has been updated.

 The main issue is that they only work correctly with make 3.81. Although
 that's been out since April 2006, some people are still using older
 versions, so they aren't generally used in 6.x (they are used in a few
 places, e.g. Rules.make, conditional upon $(BROKEN_MAKE) being defined,
 with the alternative being to unconditionally create the directory within
 the rule's commands).

-- 
Ticket URL: <http://trac.osgeo.org/grass/ticket/595#comment:12>
GRASS GIS <http://grass.osgeo.org>


More information about the grass-dev mailing list