[plt-dev] in-place build directory (was re: build error with svn 14677)

From: Carl Eastlund (carl.eastlund at gmail.com)
Date: Fri May 1 19:38:15 EDT 2009

On Fri, May 1, 2009 at 7:06 PM, Eli Barzilay <eli at barzilay.org> wrote:
> On May  1, Carl Eastlund wrote:
>> That doesn't suggest creating a directory called "build" directly
>> under the "src" directory,
>
> IMO, the only reason to suggest a "build" subdirectory -- the
> `svn:ignore' property -- is well below the threshold of what should be
> described in the src/README file.

Sure, if you want to suggest making some other directory, or leave the
choice of name up to the user, that's fine.  But it would still make a
big difference to have "step 0.5: mkdir foo" preceding "step 1: run
configure", rather than some paragraph following step 1 that describes
the pros and cons of various choices of directories.  The "svn:ignore"
property is merely a good argument in favor of suggesting build/ over
foo/ in step 0.5.

When I introduce new people to building PLT from source, as I've done
several times, I have to say "go follow the instructions... oh and
before you do that, create the trunk/src/build directory, and build
from there, so you'll have to prefix configure with ../ as well."  I'd
rather be able to just say "go follow the instructions".

I've made a set of possible changes.  Here is the text of the 'mkdir'
and 'configure' steps (up to the example commands); I've attached a
full README file as well as a diff that makes these changes and
updates later references to step numbers.

--------------------

 1. Select (or create) a build directory.  It is better to run the
    build in a different directory rather than use this directory.

    A common choice for in-place builds is to create the [here]/build
    subdirectory (where "[here]" is the directory path containing the
    `configure' script).  This is especially convenient if you plan to
    update your source tree from the plt repository.  Such updates
    might involve changes in the structure, which will leave your
    source tree in an inconsistent state (eg, old Makefiles referring
    to nonexistent files).  In such cases it is convenient to just
    remove the "build" directory, then re-create it and start a fresh
    build.

 2. Run the script `configure' (which is in the same directory as this
    README) from your build directory, possibly with a
    --prefix=TARGETDIR command-line argument and optionally with
    --enable-shared.

    For example, if you want to install into /usr/local/plt using
    dynamic libraries, then run

        [here]configure --prefix=/usr/local/plt --enable-shared

    Again, "[here]" is the directory path containing the `configure'
    script (possibly unnecessary, or possibly just "./", depending on
    your shell and PATH setting).  To use a different directory for
    the build, such as the [here]/build suggestion from above:

        cd [here]
        mkdir build
        cd build
        ../configure --prefix=/usr/local/plt --enable-shared

--------------------

-- 
Carl Eastlund
-------------- next part --------------
A non-text attachment was scrubbed...
Name: README
Type: application/octet-stream
Size: 17811 bytes
Desc: not available
URL: <http://lists.racket-lang.org/dev/archive/attachments/20090501/9947849b/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: README.diff
Type: application/octet-stream
Size: 4050 bytes
Desc: not available
URL: <http://lists.racket-lang.org/dev/archive/attachments/20090501/9947849b/attachment-0001.obj>

Posted on the dev mailing list.