2 .. index:: Getting libxo
7 libxo now ships as part of the FreeBSD Operating System (as of Release
10 libxo source code lives on github:
12 https://github.com/Juniper/libxo
14 The latest release of libxo is available at:
16 https://github.com/Juniper/libxo/releases
18 We're using `Semantic Versioning`_ to number our releases. libxo is
19 open source, distributed under the BSD license. We follow the
20 branching scheme from `A Successful Git Branching Model`_:
21 we do development under the "*develop*" branch, and release from
22 the "*master*" branch. To clone a developer tree, run the following
25 git clone https://github.com/Juniper/libxo.git -b develop
27 .. _Semantic Versioning: http://semver.org/spec/v2.0.0.html
28 .. _A Successful Git Branching Model:
29 http://nvie.com/posts/a-successful-git-branching-model
31 Issues, problems, and bugs should be directly to the issues page on
34 Downloading libxo Source Code
35 -----------------------------
37 You can retrieve the source for libxo in two ways:
39 A. Use a "distfile" for a specific release. We use github to maintain
40 our releases. Visit the `release page`_ to see the list of
41 releases. To download the latest, look for the release witeh the
42 green "Latest release" button and the green "libxo-RELEASE.tar.gz"
43 button under that section.
45 .. _release page: https://github.com/Juniper/libxo/releases
47 After downloading that release's distfile, untar it as follows::
49 tar -zxf libxo-RELEASE.tar.gz
52 .. admonition:: Solaris Users
54 Note: for Solaris users, your "`tar`" command lacks the "-z" flag,
55 so you'll need to substitute "`gzip -dc $file | tar xf -`" instead
56 of "`tar -zxf $file`".
58 B. Use the current build from github. This gives you the most recent
59 source code, which might be less stable than a specific release. To
60 build libxo from the git repo::
62 git clone https://github.com/Juniper/libxo.git
65 .. admonition:: Be Aware
67 The github repository does **not** contain the files generated by
68 "*autoreconf*", with the notable exception of the "*m4*" directory.
69 Since these files (depcomp, configure, missing, install-sh, etc) are
70 generated files, we keep them out of the source code repository.
72 This means that if you download the a release distfile, these files
73 will be ready and you'll just need to run "configure", but if you
74 download the source code from svn, then you'll need to run
75 "*autoreconf*" by hand. This step is done for you by the "*setup.sh*"
76 script, described in the next section.
83 To build libxo, you'll need to set up the build, run the "*configure*"
84 script, run the "*make*" command, and run the regression tests.
86 The following is a summary of the commands needed. These commands are
87 explained in detail in the rest of this section::
96 The following sections will walk through each of these steps with
97 additional details and options, but the above directions should be all
105 If you downloaded a distfile, you can skip this step.
107 Run the "*setup.sh*" script to set up the build. This script runs the
108 "*autoreconf*" command to generate the "*configure*" script and other
113 Note: We're are currently using autoreconf version 2.69.
115 Running the "configure" Script
116 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
118 Configure (and autoconf in general) provides a means of building
119 software in diverse environments. Our configure script supports
120 a set of options that can be used to adjust to your operating
121 environment. Use "`configure --help`" to view these options.
123 We use the "*build*" directory to keep object files and generated files
124 away from the source tree.
126 To run the configure script, change into the "*build*" directory, and
127 run the "*configure*" script. Add any required options to the
128 "`../configure`" command line::
133 Expect to see the "*configure*" script generate the following error::
135 /usr/bin/rm: cannot remove `libtoolT': No such file or directory
137 This error is harmless and can be safely ignored.
139 By default, libxo installs architecture-independent files, including
140 extension library files, in the /usr/local directories. To specify an
141 installation prefix other than /usr/local for all installation files,
142 include the --prefix=prefix option and specify an alternate
143 location. To install just the extension library files in a different,
144 user-defined location, include the "*--with-extensions-dir=dir*" option
145 and specify the location where the extension libraries will live::
148 ../configure [OPTION]... [VAR=VALUE]...
150 Running the "make" Command
151 ++++++++++++++++++++++++++
153 Once the "*configure*" script is run, build the images using the
158 Running the Regression Tests
159 ++++++++++++++++++++++++++++
161 libxo includes a set of regression tests that can be run to ensure
162 the software is working properly. These test are optional, but will
163 help determine if there are any issues running libxo on your
164 machine. To run the regression tests::
171 Once the software is built, you'll need to install libxo using the
172 "`make install`" command. If you are the root user, or the owner of
173 the installation directory, simply issue the command::
177 If you are not the "*root*" user and are using the "*sudo*" package, use::
181 Verify the installation by viewing the output of "`xo --version`"::
184 libxo version 0.3.5-git-develop
185 xo version 0.3.5-git-develop