Difference between revisions of "Building from SVN"

From BRL-CAD
(An Example of Mac OS X 10.5.3)
m (Warn people that SVN may stop working at some point in the future.)
 
(30 intermediate revisions by 12 users not shown)
Line 1: Line 1:
== Obtain the sources ==
+
*****  BRL-CAD Recently moved from SVN to Github. Building from SVN works as of 3 Jul 2021, but you may need to build from Github in the future. ***
  
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.
+
== Obtain the sources via Subversion ==
  
For non-developers:
+
For Windows:
:<code>% svn checkout https://brlcad.svn.sourceforge.net/svnroot/brlcad/brlcad/trunk brlcad </code>
 
  
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.
+
Install a Subversion client for Windows, such as TortoiseSVN: https://sourceforge.net/projects/tortoisesvn/
  
== Generate the configure script ==
+
To get a checkout after installing TortoiseSVN, right-click in a folder where you want to download the sources, select SVN Checkout and specify https://svn.code.sf.net/p/brlcad/code/brlcad/trunk for the repository URL.
<code>% cd brlcad</code>
 
<code>% ./autogen.sh</code>
 
  
=== An Example of Mac OS X 10.5.3 ===
+
For Linux/Mac/BSD:
You need to do " sudo port install libtool" to get GNU version of libtool.
+
<pre>svn checkout https://svn.code.sf.net/p/brlcad/code/brlcad/trunk brlcad</pre>
<code>
 
imac:brlcad tj_yang$ sudo ln -s /opt/local/bin/glibtoolize /usr/bin/libtoolize
 
Password:
 
imac:brlcad tj_yang$ ./autogen.sh
 
Preparing the BRL-CAD build system...please wait
 
  
Found GNU Autoconf version 2.61
+
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/BSD/UNIX distributions will also have SVN available in their package repositories.
Found GNU Automake version 1.10
 
Found GNU Libtool version 1.5.26
 
  
Automatically preparing build ... done
+
== Configure the build system with CMake ==
  
The BRL-CAD build system is now prepared. To build here, run:
+
BRL-CAD also requires the build tool CMake. Most Linux/BSD/UNIX systems provide a package for CMake. For platforms that do not, CMake is available from http://www.cmake.org
  ./configure
 
  make
 
imac:brlcad tj_yang$
 
</code>
 
  
== Configure the build system ==
+
Once installed, create a directory where you will compile BRL-CAD and run CMake.
<code>% ./configure --help</code>
 
<code>% ./configure --prefix=install_dir --enable-optimized</code>
 
  
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:
+
For Windows, you can use the CMake GUI where you specify build and source directories:[[File:Running_cmake_on_windows.png|200px|thumb|right|Running CMake GUI on Windows]]
  
;By version
+
For Linux/Mac/BSD, this looks like:
:/usr/brlcad/rel-7.8.0 (release 7.8.0)
 
:/usr/brlcad/rel-7.6.0 (release 7.6.0)
 
  
;By architecture
+
cd brlcad
:/usr/brlcad/ia32 (linux on Pentium)
+
mkdir build
:/usr/brlcad/ia64 (linux on Itanium)
+
cd build
:/usr/brlcad/x86_64 (linux on Opteron)
+
cmake .. (for a default build)
 +
cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release (for a release build)
  
;By version and architecture
+
== Compile and test your build ==
:/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)
+
On Windows, simply open the "BRLCAD" solution and Compile.
:/usr/brlcad/rel-7.8.2/mips32 (IRIX on MIPS in 32-bit mode, release 7.8.2)
+
 
 +
On Linux/Mac/BSD, run this in your build directory:
  
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.
+
make
  
== Compile and test your build ==
+
If there are no compilation errors, you can test via:
<code>% make</code>
+
 
 +
make test
  
At this point, you should have a fully installed and working system. You can test things by doing:
+
You can also run a performance test:
  
<code>% make test</code>
+
make benchmark
<code>% make benchmark</code>
 
  
 
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 ==
 
<code>% make install</code>
 
  
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:
+
== Doxygen (OPTIONAL) ==
 +
If you have doxygen installed somewhere CMake can find it, then you can build a browsable HTML documentation of the source code. This is useful if you want to use BRL-CAD's libraries directly, or if you just want a better overview of how things are structured.
  
<pre>% ln -s rel-7.8.0/mips32 /usr/brlcad/stable
+
To build the HTML files on a Linux/Mac/BSD system, run (from your build directory):
% 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</pre>
 
  
''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.''
+
make dox
  
== Setup environment (optional) ==
+
and then open doc/doxygen_output/html/index.xhtml with your web browser of choice.
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):
+
 
 +
== Install (OPTIONAL) ==
 +
 
 +
On all systems, you can simply run directly from the build directory without installing.
 +
 
 +
That said, by default BRL-CAD installs into /usr/brlcad or /opt/brlcad on Linux/Mac/BSD and into the standard program directory on Windows.  To check your build or install of BRL-CAD, browse to the "bin" directory from the GUI or from cmd.exe and run "mged".
 +
 
 +
== Setup environment (OPTIONAL) ==
 +
 
 +
At this point, all that remains is setting your system PATH environment variable so BRL-CAD utilities can be found.  Installation does not set PATH for you automatically.
 +
 
 +
For Windows, setting PATH can be helpful but isn't necessary.  Simply navigate to where you installed BRL-CAD and run from there.
 +
 
 +
For Linux/Mac/BSD, you'll either need to specify full paths to applications (e.g., /usr/brlcad/bin/rt) or set your PATH. If the default installation prefix (/usr/brlcad or /opt/brlcad) was used, you should only need to add /usr/brlcad/bin to your PATH in order to find applications (optionally setting MANPATH as well):
  
 
For bash:
 
For bash:
  
<pre>% export PATH=/usr/brlcad/bin:$PATH
+
export PATH="/usr/brlcad/bin:$PATH"
% export MANPATH=/usr/brlcad/man:$MANPATH</pre>
+
export MANPATH="/usr/brlcad/man:$MANPATH"
  
 
For csh/tcsh:
 
For csh/tcsh:
  
<pre>% set path=( /usr/brlcad/bin $path )
+
set path=( /usr/brlcad/bin $path )
% setenv MANPATH /usr/brlcd/man:$MANPATH
+
setenv MANPATH "/usr/brlcd/man:$MANPATH"
% rehash</pre>
+
rehash
 +
 
 +
To find BRL-CAD manual pages without setting your MANPATH, use the provided "brlman" binary instead of "man" (e.g., /usr/brlcad/bin/brlman rt).
  
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 ==
+
== Test your Build ==
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:
 
  
<code>% benchmark</code>
+
If compilation went well, there should now be more than 400 command-line applications at your disposal for processing images and geometry.  You should be able to run the main modeling application:
  
Additionally, you can run the MGED solid modeler:
+
mged
  
<code>% mged</code>
+
If you didn't install, you may need to specify the path to the tool (e.g., "bin/mged") from the build directory.
  
 
[[Category:Documentation]]
 
[[Category:Documentation]]

Latest revision as of 15:35, 3 July 2021

          • BRL-CAD Recently moved from SVN to Github. Building from SVN works as of 3 Jul 2021, but you may need to build from Github in the future. ***

Obtain the sources via Subversion[edit]

For Windows:

Install a Subversion client for Windows, such as TortoiseSVN: https://sourceforge.net/projects/tortoisesvn/

To get a checkout after installing TortoiseSVN, right-click in a folder where you want to download the sources, select SVN Checkout and specify https://svn.code.sf.net/p/brlcad/code/brlcad/trunk for the repository URL.

For Linux/Mac/BSD:

svn checkout https://svn.code.sf.net/p/brlcad/code/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/BSD/UNIX distributions will also have SVN available in their package repositories.

Configure the build system with CMake[edit]

BRL-CAD also requires the build tool CMake. Most Linux/BSD/UNIX systems provide a package for CMake. For platforms that do not, CMake is available from http://www.cmake.org

Once installed, create a directory where you will compile BRL-CAD and run CMake.

For Windows, you can use the CMake GUI where you specify build and source directories:

Running CMake GUI on Windows

For Linux/Mac/BSD, this looks like:

cd brlcad
mkdir build
cd build
cmake .. (for a default build)
cmake .. -DBRLCAD_BUNDLED_LIBS=ON -DCMAKE_BUILD_TYPE=Release (for a release build)

Compile and test your build[edit]

On Windows, simply open the "BRLCAD" solution and Compile.

On Linux/Mac/BSD, run this in your build directory:

make

If there are no compilation errors, you can test via:

make test

You can also run a performance 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.


Doxygen (OPTIONAL)[edit]

If you have doxygen installed somewhere CMake can find it, then you can build a browsable HTML documentation of the source code. This is useful if you want to use BRL-CAD's libraries directly, or if you just want a better overview of how things are structured.

To build the HTML files on a Linux/Mac/BSD system, run (from your build directory):

make dox

and then open doc/doxygen_output/html/index.xhtml with your web browser of choice.

Install (OPTIONAL)[edit]

On all systems, you can simply run directly from the build directory without installing.

That said, by default BRL-CAD installs into /usr/brlcad or /opt/brlcad on Linux/Mac/BSD and into the standard program directory on Windows. To check your build or install of BRL-CAD, browse to the "bin" directory from the GUI or from cmd.exe and run "mged".

Setup environment (OPTIONAL)[edit]

At this point, all that remains is setting your system PATH environment variable so BRL-CAD utilities can be found. Installation does not set PATH for you automatically.

For Windows, setting PATH can be helpful but isn't necessary. Simply navigate to where you installed BRL-CAD and run from there.

For Linux/Mac/BSD, you'll either need to specify full paths to applications (e.g., /usr/brlcad/bin/rt) or set your PATH. If the default installation prefix (/usr/brlcad or /opt/brlcad) was used, you should only need to add /usr/brlcad/bin to your PATH in order to find applications (optionally setting 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

To find BRL-CAD manual pages without setting your MANPATH, use the provided "brlman" binary instead of "man" (e.g., /usr/brlcad/bin/brlman rt).


Test your Build[edit]

If compilation went well, there should now be more than 400 command-line applications at your disposal for processing images and geometry. You should be able to run the main modeling application:

mged

If you didn't install, you may need to specify the path to the tool (e.g., "bin/mged") from the build directory.