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". Active development occurs on the "development" branch, and all pull requests on GitHub should be submitted to this branch. The "development" branch is regularly merged into the "pre-master" branch for further testing, and then "pre-master" is merged into "master". Other branches are used for development of numbered releases (e.g., "release-1.22-branch"), and there are tags that label stable versions of those branches (e.g., "release-1.22").


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.