drmeister / legacy-externals-clasp

Libraries that clasp depends on
13 stars 10 forks source link

externals-clasp

Update Feb 5, 2015: NOTE: EXTERNALS_BUILD_TARGET_DIR is no longer required in local.config - I moved the build directory into the externals-clasp directory hierarchy to ensure that "make clean" was safe and could not destroy user files if this environment variable was set incorrectly.

Clasp can be found at: https://github.com/drmeister/clasp

These are the external libraries that Clasp depends on. If there are legal issues with incorporating these libraries in this repository please tell me and I will fix it. All of these libraries are publically available on the internet.

I am working to eliminate the need for externals-clasp when installing clasp and rely on standard libraries that are shipped with respective operating system distributions or downloadable from the internet. Currently externals-clasp incorporates a few libraries that have been patched to add features that Clasp requires.

Building externals-clasp

You need to have gcc 4.8 or higher to build externals-clasp.

To build everything from within the top level directory (externals-clasp/) do the following.

1) Copy local.config.darwin or local.config.linux to local.config

2) Edit local.config and configure it for your system
The following configuration variables are important:

Variable Description
TARGET_OS Currently either linux or darwin
PJOBS The number of processors you have available to build with
GCC_TOOLCHAIN Important on Linux systems.
gcc and g++ must be found in $(GCC_TOOLCHAIN)/bin/
On a linux system with an up-to-date (>= 4.8) gcc/g++ you can use /usr
GCC_EXECUTABLE Set this if the gcc you use is NOT found at $(GCC_TOOLCHAIN)/bin/gcc
GXX_EXECUTABLE Set this if the g++ you use is NOT found at $(GCC_TOOLCHAIN)/bin/g++

3) Type: make - this will download llvm/clang, build everything and install it in $(EXTERNALS_BUILD_TARGET_DIR)

4) Go to the Clasp library and configure and build it.

On OS X

You need to install automake and libtool
brew install automake
brew install libtool
brew install pkg-config
brew install autoconf

The libraries are built and put into the $PREFIX (see local.config) directory

Other useful make targets:
make - this is the same as: make clean; make setup; make subAll
make setup - configures all libraries
make subAll - makes all libraries
make clean - Clean out all built files under this directory, but not the $PREFIX target directory.
make llvm-debug - Build the debug version of the LLVM library.