You are here

Revision of HOWTO build OpenMx from the source repository from Tue, 09/09/2014 - 23:53

Revisions allow you to track differences between multiple versions of your content, and revert back to older versions.

OS X installation

    Installing OpenMx from Source on OS X 10.9.2

  1. Install xcode from the App Store
  2. Run this command in a terminal window to get standard C libraries etc:

    xcode-select --install
  3. Download OpenMx into a dierctory with the name OpenMx (or whatever you prefer)

    svn checkout --username <yourUserName>  "http://openmx.psyc.virginia.edu/svn" OpenMx
    cd OpenMx
    cd trunk
  4. Download & Install R 3.1.1 (3.0.x & 3.0.1 should work too)
  5. Install roxygen2 package in R
  6. Download HPC g++ gcc * gfortran 4.9 from hpc.sourceforge.net, change directory to whereever it downloaded, and install it in /usr/local/bin with sudo tar -xvf gcc-4.9-bin.tar -C /
  7. Change to trunk directory of OpenMx repository

    cd trunk
  8. make install  

    (which breaks but you can find the Makeconf filename & directory to edit in step 8)

  9. Edit the file /Library/Frameworks/R.framework/Resources/etc/Makeconf to replace the CLANG compilers with g++ gcc & gfortran, by changing the following 4 lines:
    CC = /usr/local/bin/gcc
    CXX = /usr/local/bin/g++
    FC = /usr/local/bin/gfortran
    F77 = /usr/local/bin/gfortran
  10. Put the right version of libnpsol.a into the inst/npsol/osx subdirectory of where you are building (e.g., OpenMx/trunk)
  11. make install

To validate the installation, make test can be run - it takes some time to complete.

The above steps have been tested on a newly (Aug 5 2014) purchased OS X 10.9.2 system. For subsequent rebuilds from source the procedure is much easier:

cd OpenMx/trunk
svn up
make install
<h2 id="Windowsinstallation">Windows installation</h2> 

    A prerequisite for compiling OpenMx on Windows platforms is the Rtools Windows toolset.  Download the latest version of Rtools from their <a class="ext-link" href="http://www.murdoch-sutherland.com/Rtools/"> website</a> and run the installer.  The Rtools installer does not add the R directory to your PATH environment variable.  See <a class="ext-link" href="http://www.computerhope.com/issues/ch000549.htm"> here</a> for help on setting the path in Windows 2000/XP. See <a class="ext-link" href="http://www.brightrev.com/how-to/windows/35-add-a-utilities-directory-to-your-pc.html?start=1"> here</a> for help on setting the path in Windows Vista. The default R directory is placed in C:\Program Files\R\R-2.X.X\bin. 


    <a class="ext-link" href="http://tortoisesvn.tigris.org/"> TortoiseSVN</a> is a subversion graphical user interface that you may find helpful.  Some tips: We recommend checking out the OpenMx repository into a folder that does not contain any spaces in its absolute path. If you receive a permission denied error when running "make install", follow the instructions on the R FAQ for Windows: <a class="ext-link" href="http://cran.r-project.org/bin/windows/base/rw-FAQ.html#I-don_0027t-have-permission-to-write-to-the-R_002d2_002e9_002e0_005clibrary-directory"> I don't have permission to write to the R library directory</a>. 


    In R 2.9.x and earlier, you need <a class="ext-link" href="http://msdn.microsoft.com/en-us/library/ms669985.aspx"> Microsoft's HTML Help Workshop</a> in order to create R help files under Windows. After you have installed the software, add C:\Program Files\HTML Help Workshop to your PATH environment variable.  


    Now follow the instructions for the Unix installation.

<h2 id="Unixinstallation">Unix installation</h2> 

    OpenMx should compile under any Unix with the GNU C compiler (See above for instructions on installing this if necessary). First you need to get the source.

<h4 id="SVNSourceArchive">SVN Source Archive</h4> 

    To install OpenMx, download the source using <a class="ext-link" href="http://svnbook.red-bean.com/"> SVN</a>. 

<ol>
    <li>You will want to check out the repository to a local working copy, placed wherever you like, probably a directory such as <pre>"~/Applications/bin"</pre> or <pre>"~/local/"</pre></li>
    <li>Next "Check out" the repository creating the local directory OpenMx if necessary:<pre>cd ~/Applications/bin/

svn checkout --username "http://openmx.psyc.virginia.edu/svn" OpenMx
If don't have an account, leave out the --username argument.

  • After you have downloaded an initial working copy, SVN can keep this up to date with svn update.
      tinkerbell:OpenMx tim$ svn update
                        A    trunk/docs/source/Factor1.png
                        U    trunk/docs/source/FactorModelPath.rst
                        D    trunk/models/passing/bivSat3.R
                    

    A = Added, U = Updated, D = Deleted
    You can also check the status of your working copy

    cd ~/Applications/bin/
    svn status OpenMx  # learn if any changes have been made, including new files
                    
                    * For a list of recent changes check out the ChangeLog file in the most recent distribution.
    
                Learn more with man svn or a <a href="http://www.abbeyworkshop.com/howto/misc/svn01/">tutorial site</a>.
        </li>
        </ol>
        <h4>GIT Source Archive</h4>
        Equivalently, there is a real-time mirror of the OpenMx subversion trunk located at <a class="ext-link" href="https://gitorious.org/openmx/openmx">Gitorius</a>. To retrieve a read-only clone of the trunk, use:
        <pre class="wiki">git clone git://gitorious.org/openmx/openmx.git</pre>
    

    Building and Installing OpenMx from the downloaded source

    cd (change directory) to the trunk directory, and make install

    cd ~/OpenMx/trunk/
    make install

    Options for the make process are as follows:

    make build # build a binary release of the OpenMx library for export.
    make install # create the OpenMx library and tries to install it as an R library.
    make check # create the OpenMx library and runs the R library checker.
    make html # create the Sphinx documentation in the docs/build/html directory.  You will need to have the Sphinx package installed.
    make pdf # create a pdf file in the build directory of the OpenMx documentation.
    make clean # clean out the build subdirectory.  Sometimes you may need to run "make clean" if you get error messages with the other make build.
    make test # run all the models in the demo and models/passing subdirectories.  The number of errors found will be reported (should be 0).
    

    Problems With make

    1. Try make clean
    2. Ensure your copy of the source is up-to-date (to your local copy's trunk directory, and update):
      cd ~/OpenMx/trunk/
      svn update
    3. Checkout the repository again.
    4. Make sure that you are building from the trunk directory.
    5. Make sure you have all the R dependencies installed.
    6. Last but not least, make sure that if you are building for multicore, the command R points to R64, not to plain 32-bit R. For example, if the command
      which R

      returns /usr/bin/R, and

      ls - l /usr/bin/R

      returns /usr/bin/R@ -> /Library/Frameworks/R.framework/Resources/bin/R it would be necessary to fix this with

      sudo unlink /usr/bin/R
      sudo ln -s /Library/Frameworks/R.framework/Resources/bin/R64 /usr/bin/R

      Otherwise, you may encounter cryptic messages such as

      Error in dyn.load(file, DLLpath = DLLpath, ...) : 
        unable to load shared object '/Library/Frameworks/R.framework/Versions/2.14/Resources/library/OpenMx/libs/i386/OpenMx.so':
        dlopen(/Library/Frameworks/R.framework/Versions/2.14/Resources/library/OpenMx/libs/i386/OpenMx.so, 6): Symbol not found: _GOMP_parallel_end
        Referenced from: /Library/Frameworks/R.framework/Versions/2.14/Resources/library/OpenMx/libs/i386/OpenMx.so
        Expected in: dynamic lookup
      

    Buildbot

    Commits to the source repository are automatically tested by our buildbot.

  • AttachmentSize
    Plain text icon libnpsol.a.txt439.77 KB

    Comments

    You can also check the status of your working copy

    The build instructions for Windows are extremely out-of-date...