Changeset 791 for trunk


Ignore:
Timestamp:
10/14/06 11:25:33 (6 years ago)
Author:
wd
Message:

Update README to reflect scons.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/ithildin/README

    r712 r791  
    1616Reading READMEs from start to finish is usually a good idea.  They tend to 
    1717contain a lot of information that is valid/valuable for 99% of users.  That 
    18 being said, I've tried to keep things short and to the point for those of you 
     18eing said, I've tried to keep things short and to the point for those of you 
    1919who have little patience.  Before you start running the daemon, you should read 
    2020the below list of requirements to make sure you've got everything you need. 
     
    3131   probably move data around.  I've tried to make things fairly clear, but 
    3232   YMMV. 
    33 4. A module which you wish to run.  The base system doesn't come with any 
    34    modules, you'll need to get them on your own.  There are some available 
    35    from the site where the base system is hosted. 
    36 5. GNU toolchain.  Depending on how you got this code you will need any of 
    37    automake, autoconf, and libtool.  Autoconf and automake are not always 
    38    necessary, but libtool is required.  You must also use GNU make when 
    39    building.  Invoking make with the "gmake" command should ensure that you 
    40    always use GNU make. 
     334. Python.  The build system used is written in Python.  Most modern systems 
     34   should have this. 
     354. A module which you wish to run.  Depending on where you got the code from 
     36   (code repository vs. download) you may already have modules.  If you 
     37   downloaded a tarball or zip of this source you do NOT have module source 
     38   lying around, see below for more info on this. 
    4139 
    4240------------------------------------------------------------------------------- 
     
    7270   $ cd ithildin/modules 
    7371   $ tar -zxf ~/syslog.tar.gz 
     72   (NB: not necessary when fetching source via subversion) 
    7473 
    75 2) If you are going to attempt to build from Subversion I recommend having 
    76    Python available, in addition to the aforementioned GNU toolchain.  There 
    77    is a script (tools/build.py) that will assist you in bootstrapping a build 
    78    environment.  Intrepid readers should note that this script is available 
    79    in the website distribution as well, and may help them.  This script is 
    80    not required for any compilation purposes (yet) but may be later.  I 
    81    cannot help you in bootstrapping your environment if you don't use this 
    82    tool, as my instructions may change more often than I am willing to 
    83    update this document.  The script is straightforward, just take a gander 
    84    at the "prebuild" stuff. 
     742) Copy build/options.default to build/options and then edit build/options. 
     75   The syntax should be straightforward.  You can edit options.default if 
     76   you like, but any future updates will trample that file whereas 'options' 
     77   will never be overwritten either by subversion or future downloads. 
    8578 
    86 3) Configure the system using the configure script by doing: 
    87    $ ./configure --prefix=foo 
    88    (you might wish to run configure with the --help option to see if you're 
    89    interested in using any addons).  If you want to install system-wide you'll 
    90    probably want a prefix of '/usr' or '/usr/local'.  If you want to install in 
    91    your home directory, you'll probably want to use --prefix=/home/yourdir or 
    92    --prefix=/home/yourdir/ithildin (to keep it separate from other stuff). 
    93    And if you're installing in a home directory or somewhere separate from 
    94    other system binaries/libraries you will probably want to use the 
    95    --disable-dir-suffix option to configure.  It will keep the directory 
    96    structure in a cleaner condition.  
     793) Run scons!  If you have scons installed you may simply execute scons with 
     80   no options, e.g.: 
     81   $ scons 
    9782 
    98    Other interesting options to configure: 
    99    --enable-debug: Turn on debugging code in the main source tree (and any 
    100    modules compiled afterwards).  Modules can individually run their own 
    101    debugging separate of this. 
     83   Most folks do not have scons installed by default.  Never fear, simply 
     84   use the pre-packaged version in the build directory via: 
     85   $ python build/scons.py 
    10286 
    103    --disable-custom-malloc: Turn off the custom allocator code.  You may 
    104    find this useful if you wish to use Valgrind or another memory profiler 
    105    which relies on the system malloc or on being able to override malloc 
    106    itself.  Note that --with-dmalloc does this for you automatically. 
    107     
    108    --enable-fd-setsize=FDs: For systems using select() set the number of FDs 
    109    we will support at maximum to this.  The system supplied value tends to 
    110    be alright for most uses. 
    111  
    112    --with-poller=[kqueue,poll,select]: Request that the specified polling 
    113    mechanism be used.  The system does a good job of figuring out what 
    114    poller it ought to use, and generally you do not want to muck with this. 
    115    In particular I know that the kqueue on Linux is a different kqueue, and 
    116    that poll() as of recent 2.6 kernels still has undocumented and weird 
    117    failure cases that I do not handle because I am not willing to unwind the 
    118    Linux kernel code to figure out why it explodes on seemingly legal 
    119    constructs sometimes. 
    120  
    121    --with-ipv6: Enable/disable explicitly IPv6 support.  The system does a 
    122    good job of making this decision, this is most useful if you explicitly 
    123    do not want IPv6 support.  Note that IPv6 adds virtually no overhead and 
    124    only makes for a slightly larger binary. 
    125  
    126    --with-openssl=PATH: Specify that OpenSSL on your system is installed in 
    127    PATH.  On most systems the configuration system does a good job of 
    128    finding OpenSSL and using it.  You may also use --without-openssl to 
    129    explicitly disable the inclusion of SSL support. 
    130     
    131    --with-existing: Specify the name of an existing ithildin installation's 
    132    binary.  If you installed previously in /home/yourdir/ithildin you can 
    133    use --with-existing=/home/yourdir/ithildin/bin/ithildin and this will set 
    134    the rest of the directory settings for you automagically. 
    135     
    136 4) Build the source by doing: 
    137    $ make 
    138    Any 'make' variant should suffice here. 
     87   Help on using scons can be retrieved via the '-h' and '-H' options. 
    13988 
    14089That's it.  If all of this went well, then you can move on to the installing 
     
    14796the system by simply doing: 
    14897 
    149 $ make install 
     98$ python build/scons.py install 
    15099 
    151100That's it.  If all went well, move on to the next section.  If not, see section 
     
    156105 
    157106You'll probably need to configure the system before you run it.  Look in 
    158 $prefix/etc/ithildin/ for the various configuration files. 
     107$prefix/etc for the various configuration files (where $prefix is where you 
     108set the options file to install code.  If you didn't change it this will be 
     109/usr/local) 
    159110 
    160111------------------------------------------------------------------------------- 
     
    163114Right now there is no FAQ for "it didn't work" type issues, however you are 
    164115invited to file a defect (see the BUGS file) if you believe this is a defect 
    165 in the product and not an error in your configuration. 
     116in the product and not an error in your configuration.  If you're not sure 
     117about it one way or the other please email me or find me on your favorite 
     118chat protocol from below and let me know what the problem is. 
    166119 
    167120------------------------------------------------------------------------------- 
Note: See TracChangeset for help on using the changeset viewer.