Difference between revisions of "Building from SVN"
(→An Example of Mac OS X 10.5.3) |
|||
Line 1: | Line 1: | ||
== Obtain the sources == | == Obtain the sources == | ||
− | BRL-CAD has recently [[Cvs2svn|switched from CVS to the Subversion system]]. In the new system some of the earlier complexities inherent to CVS are gone | + | BRL-CAD has recently [[Cvs2svn|switched from CVS to the Subversion system]]. In the new system some of the earlier complexities inherent to CVS are gone, no ''-dP'' option is required and developers will not need their passwords or usernames until it is time to commit a change. |
For non-developers: | For non-developers: | ||
− | + | <pre>svn checkout https://brlcad.svn.sourceforge.net/svnroot/brlcad/brlcad/trunk brlcad</pre> | |
Note: If you do not yet have an SVN client installed, go to http://subversion.tigris.org for information on obtaining an appropriate SVN client for your platform. Most modern Linux distributions will also have SVN available in their package repositories. | Note: If you do not yet have an SVN client installed, go to http://subversion.tigris.org for information on obtaining an appropriate SVN client for your platform. Most modern Linux distributions will also have SVN available in their package repositories. | ||
== Generate the configure script == | == Generate the configure script == | ||
− | + | cd brlcad | |
− | + | ./autogen.sh | |
− | === An | + | If autogen.sh reports that the build system is NOT ready and it's not clear why, rerun autogen.sh in verbose mode: |
+ | ./autogen.sh --verbose | ||
+ | |||
+ | === An example generating the configure script on Mac OS X === | ||
You need to do " sudo port install libtool" to get GNU version of libtool. | You need to do " sudo port install libtool" to get GNU version of libtool. | ||
− | imac:brlcad | + | imac:brlcad username$ sudo ln -s /usr/local/bin/glibtoolize /usr/bin/libtoolize |
Password: | Password: | ||
− | imac:brlcad | + | imac:brlcad username$ ./autogen.sh |
Preparing the BRL-CAD build system...please wait | Preparing the BRL-CAD build system...please wait | ||
Line 28: | Line 31: | ||
./configure | ./configure | ||
make | make | ||
− | imac:brlcad | + | imac:brlcad username$ |
== Configure the build system == | == Configure the build system == | ||
− | + | ./configure --help | |
− | + | ./configure --prefix=install_dir --enable-optimized | |
When building for multiuser file servers it is often useful to make the install_dir reflect the version and/or architecture of the compile. This way a single server can provide multiple versions of BRL-CAD or multiple binary formats for various architectures. Symbolic links are then usually added to point to the "current" or "main" version that is preferable to provide so that users only need to add /usr/brlcad/bin to their path. Examples include: | When building for multiuser file servers it is often useful to make the install_dir reflect the version and/or architecture of the compile. This way a single server can provide multiple versions of BRL-CAD or multiple binary formats for various architectures. Symbolic links are then usually added to point to the "current" or "main" version that is preferable to provide so that users only need to add /usr/brlcad/bin to their path. Examples include: | ||
Line 53: | Line 56: | ||
== Compile and test your build == | == Compile and test your build == | ||
− | + | make | |
At this point, you should have a fully installed and working system. You can test things by doing: | At this point, you should have a fully installed and working system. You can test things by doing: | ||
− | + | make test | |
− | + | make benchmark | |
Both the test and benchmark should report successfully if everything is working correctly. Report any failures to the BRL-CAD [http://sourceforge.net/tracker/?group_id=105292&atid=640802 bug tracker]. | Both the test and benchmark should report successfully if everything is working correctly. Report any failures to the BRL-CAD [http://sourceforge.net/tracker/?group_id=105292&atid=640802 bug tracker]. | ||
== Install == | == Install == | ||
− | + | make install | |
If you created a prefix as described above for multiple versions or multiple architectures, you should now create your symbolic links for user convenience and consistency. Example where /usr/brlcad/rel-7.8.0/mips32 was used as the install_dir prefix: | If you created a prefix as described above for multiple versions or multiple architectures, you should now create your symbolic links for user convenience and consistency. Example where /usr/brlcad/rel-7.8.0/mips32 was used as the install_dir prefix: | ||
Line 90: | Line 93: | ||
For bash: | For bash: | ||
− | + | export PATH=/usr/brlcad/bin:$PATH | |
− | + | export MANPATH=/usr/brlcad/man:$MANPATH | |
For csh/tcsh: | For csh/tcsh: | ||
− | + | set path=( /usr/brlcad/bin $path ) | |
− | + | setenv MANPATH /usr/brlcd/man:$MANPATH | |
− | + | rehash | |
If users do not want to modify their PATH, they can get by providing the full path to the binaries (e.g. /usr/brlcad/bin/mged). To find BRL-CAD manual pages without setting your MANPATH, use the provided "brlman" binary instead of "man". | If users do not want to modify their PATH, they can get by providing the full path to the binaries (e.g. /usr/brlcad/bin/mged). To find BRL-CAD manual pages without setting your MANPATH, use the provided "brlman" binary instead of "man". | ||
Line 104: | Line 107: | ||
If everything went well, there should now be more than 400 command-line applications at your disposal for processing images and geometry. A quick test of functionality (and performance) is to run the BRL-CAD benchmark again, which is installed as the benchmark tool: | If everything went well, there should now be more than 400 command-line applications at your disposal for processing images and geometry. A quick test of functionality (and performance) is to run the BRL-CAD benchmark again, which is installed as the benchmark tool: | ||
− | + | benchmark | |
Additionally, you can run the MGED solid modeler: | Additionally, you can run the MGED solid modeler: | ||
− | + | mged | |
[[Category:Documentation]] | [[Category:Documentation]] |
Revision as of 12:54, 15 June 2008
Contents
Obtain the sources
BRL-CAD has recently switched from CVS to the Subversion system. In the new system some of the earlier complexities inherent to CVS are gone, no -dP option is required and developers will not need their passwords or usernames until it is time to commit a change.
For non-developers:
svn checkout https://brlcad.svn.sourceforge.net/svnroot/brlcad/brlcad/trunk brlcad
Note: If you do not yet have an SVN client installed, go to http://subversion.tigris.org for information on obtaining an appropriate SVN client for your platform. Most modern Linux distributions will also have SVN available in their package repositories.
Generate the configure script
cd brlcad ./autogen.sh
If autogen.sh reports that the build system is NOT ready and it's not clear why, rerun autogen.sh in verbose mode:
./autogen.sh --verbose
An example generating the configure script on Mac OS X
You need to do " sudo port install libtool" to get GNU version of libtool.
imac:brlcad username$ sudo ln -s /usr/local/bin/glibtoolize /usr/bin/libtoolize Password: imac:brlcad username$ ./autogen.sh Preparing the BRL-CAD build system...please wait Found GNU Autoconf version 2.61 Found GNU Automake version 1.10 Found GNU Libtool version 1.5.26 Automatically preparing build ... done The BRL-CAD build system is now prepared. To build here, run: ./configure make imac:brlcad username$
Configure the build system
./configure --help ./configure --prefix=install_dir --enable-optimized
When building for multiuser file servers it is often useful to make the install_dir reflect the version and/or architecture of the compile. This way a single server can provide multiple versions of BRL-CAD or multiple binary formats for various architectures. Symbolic links are then usually added to point to the "current" or "main" version that is preferable to provide so that users only need to add /usr/brlcad/bin to their path. Examples include:
- By version
- /usr/brlcad/rel-7.8.0 (release 7.8.0)
- /usr/brlcad/rel-7.6.0 (release 7.6.0)
- By architecture
- /usr/brlcad/ia32 (linux on Pentium)
- /usr/brlcad/ia64 (linux on Itanium)
- /usr/brlcad/x86_64 (linux on Opteron)
- By version and architecture
- /usr/brlcad/rel-7.8.0/mips32 (IRIX on MIPS in 32-bit mode, release 7.8.0)
- /usr/brlcad/rel-7.8.0/mips64 (IRIX on MIPS in 64-bit mode, release 7.8.0)
- /usr/brlcad/rel-7.8.2/mips32 (IRIX on MIPS in 32-bit mode, release 7.8.2)
IMPORTANT!!! - Because BRL-CAD has such a long development history, it predates some library naming conventions in modern operating systems. This means an attempt to configure for an install in the "/usr" path on Linux (for example) will stand a good chance of damaging important system libraries - e.g. BRL-CAD libraries put in "/usr/lib" may overwrite system libraries with the same names. Using "/usr/brlcad" or "/opt/brlcad" means all installed files will be safely contained in the brlcad directory.
Compile and test your build
make
At this point, you should have a fully installed and working system. You can test things by doing:
make test make benchmark
Both the test and benchmark should report successfully if everything is working correctly. Report any failures to the BRL-CAD bug tracker.
Install
make install
If you created a prefix as described above for multiple versions or multiple architectures, you should now create your symbolic links for user convenience and consistency. Example where /usr/brlcad/rel-7.8.0/mips32 was used as the install_dir prefix:
% ln -s rel-7.8.0/mips32 /usr/brlcad/stable % ln -s stable/bin /usr/brlcad/bin % ln -s stable/include /usr/brlcad/include % ln -s stable/lib /usr/brlcad/lib % ln -s stable/man /usr/brlcad/man % ln -s stable/share /usr/brlcad/share % ls -l /usr/brlcad total 48 lrwxr-xr-x 1 root wheel 10 12 Apr 09:00 bin -> stable/bin lrwxr-xr-x 1 root wheel 14 12 Apr 09:00 include -> stable/include lrwxr-xr-x 1 root wheel 10 12 Apr 09:00 lib -> stable/lib lrwxr-xr-x 1 root wheel 10 12 Apr 09:00 man -> stable/man drwxr-xr-x 7 root wheel 238 11 Apr 18:00 rel-7.8.0 lrwxr-xr-x 1 root wheel 12 12 Apr 09:00 share -> stable/share lrwxr-xr-x 1 root wheel 9 12 Apr 09:00 stable -> rel-7.8.0/mips32
Future versions of BRL-CAD may provide this symbolic link operation for you as a configure option. Keep an eye out in the configure --help output.
Setup environment (optional)
At this point, everything should be ready for use. If the default prefix of /usr/brlcad was used or if the corresponding symbolic links were created, users should only need to add /usr/brlcad/bin to their PATH in order to find binaries for the package (optionally setting their MANPATH as well):
For bash:
export PATH=/usr/brlcad/bin:$PATH export MANPATH=/usr/brlcad/man:$MANPATH
For csh/tcsh:
set path=( /usr/brlcad/bin $path ) setenv MANPATH /usr/brlcd/man:$MANPATH rehash
If users do not want to modify their PATH, they can get by providing the full path to the binaries (e.g. /usr/brlcad/bin/mged). To find BRL-CAD manual pages without setting your MANPATH, use the provided "brlman" binary instead of "man".
Test installation
If everything went well, there should now be more than 400 command-line applications at your disposal for processing images and geometry. A quick test of functionality (and performance) is to run the BRL-CAD benchmark again, which is installed as the benchmark tool:
benchmark
Additionally, you can run the MGED solid modeler:
mged