SourceCode

This directory is now obsolete, as tarfiles can be obtained from our github releases web page.

This directory contains occasional source releases. Tarfiles available here may eventually be deleted, but they will not be changed; they don't have to be changed, because the names of the files now incorporate the git commit number or the subversion release number, as well as the Macaulay2 version number.

However, the best way to get the source code is with a client for git, the source code control system we use. To get (or to view) the latest version of the source code, possibly with bugs, visit https://github.com/Macaulay2/M2 and press the "ZIP" or "Clone" buttons. Alternatively, run this command in a new directory:

        git clone https://github.com/Macaulay2/M2

The result will be a directory named M2 containing the source code directory tree of Macaulay2, checked out from the branch called "master". Other branches are used for development of numbered releases (e.g., "release-1.6"), and there are tags that label stable versions of those branches (e.g., "release-1.6-stable-20130514").


The old way to get the source code, soon to be phased out, is with a client for subversion, the source code control system we use. To get the very latest version of the source code, possibly with bugs, run this command in a new directory:

	svn co -q svn://svn.macaulay2.com/Macaulay2/trunk/M2

The result will be a directory named M2 containing the source code directory tree of Macaulay2.

Alternatively, as we work to port the latest numbered release to various architectures, we will work in one of the branches listed by this command:

	svn list svn://svn.macaulay2.com/Macaulay2/release-branches

The changes made there will eventually be merged into the trunk. For example, to get the code corresponding to version 1.2 that is most current and thus most likely to compile for you, run this command:

	svn co -q svn://svn.macaulay2.com/Macaulay2/release-branches/1.2

The resulting directory tree, 1.2, can be renamed to M2, for example.

To see what stable (unchanging) releases there are, run this:

	svn list svn://svn.macaulay2.com/Macaulay2/stable

To check out one of those, do something like this:

	svn co -q svn://svn.macaulay2.com/Macaulay2/stable/2006-11-05-0.9.95

The resulting directory tree, 2006-11-05-0.9.95, can be renamed, to M2, for example.

After getting the source code as described above, and assuming the directory is now named "M2", you may build Macaulay2 from it as follows. First do

	 cd M2
	 make

That initial step will create the "configure" script.

Then do something like

	 cd BUILD
	 mkdir foo
	 cd foo
	 ../../configure --prefix=/usr/local --enable-download
	 make
	 make install

to compile and install the code. You may replace /usr/local by $HOME/local, for example, if you don't have root privileges. You may replace "foo" by a directory anywhere, provided you adjust the path to "configure" appropriately.

The command

	 ../../configure --help

will explain the options can be passed to the configure script.

You may refer to the file

	 ./INSTALL

for some more detailed instructions about this installation.