Menu

#80 version.h make rule broken

closed-fixed
Luke-Jr
None
5
2005-05-24
2005-05-24
Manuel Moos
No

a) it assumes the CVS directories exist (which is not
true in a source distribution)
b) the commands look for the CVS directory in the
build directory, not in the source directory

Discussion

  • Luke-Jr

    Luke-Jr - 2005-05-24

    Logged In: YES
    user_id=25634

    Oops... now:
    a) it assumes the CVS directories exist when the version is from CVS
    (source distributions should not have date in minor_version)
    b) fixed
    in addition, the build dir is used for the temporary files (instead of the
    srcdir) and version.h has been removed from CVS (it's generated, so it
    really shouldn't have been there in the first place)

     
  • Luke-Jr

    Luke-Jr - 2005-05-24
    • status: open --> closed-fixed
     
  • Manuel Moos

    Manuel Moos - 2005-05-25

    Logged In: YES
    user_id=34808

    Sorry, but the make rule still says it depends on the CVS
    directory which will be missing, so make will fail.
    I changed the make rule so that all prerequisites are now
    completely optional, and the commands doing all the work are
    now in batch/version (so the build module can use the script
    directly without a run of configure).
    Also, version.h now is generated inside the source directory. It
    will now be part of the distribution instead of this major/minor
    crap.

    BTW, the automatic date tag was a good idea. Like it.

     
  • Luke-Jr

    Luke-Jr - 2005-05-25

    Logged In: YES
    user_id=25634

    Does the new code automatically rebuild version.h when the files change?
    The reason version.h should be built outside of the srcdir is because it is
    generated content and putting it there will break a read-only srcdir setup.
    Perhaps we need a Makefile.cvs that runs autoconf and makes version.h?

     
  • Manuel Moos

    Manuel Moos - 2005-05-28

    Logged In: YES
    user_id=34808

    Yes, the update rules should be unchanged.

    Read only source directories should not be a problem; the
    rules for configure and version.h should only run the update
    commands when the source directory is from CVS.
    A special makefile that is only included when the CVS
    subdirectories exists may be a good idea; however, I think
    we should keep the differences between a build from CVS
    and a build from a source distribution to the bare minimum.
    Tough decision, since the differences are already there, it's
    just a question of how to handle them. Perhaps this should
    be taken to the forum?