We provide executables of LAMARC for many systems, but if you cannot use these, or wish to compile the program yourself, we provide source code as well. This article discusses our experience compiling LAMARC. We welcome any information about other machines or compilers.
LAMARC is written in C++. We tried to avoid advanced or new features of the language, but very old compilers will probably not work. We recommend the use of GNU g++ on any machine which supports it; this is the compiler we used to develop LAMARC, and it works well on most systems.
The file INSTALL in the top-level directory gives detailed instructions for compiling LAMARC on a variety of systems.
Here is a list of machine/compiler combinations we have tried, with comments on our success or lack of it.
OS | Compiler | Comments |
Linux | GNU g++ 3.3.5, 3.3.6 (64 bit), 3.4.2, 4.0 | succeeds [1] |
MinGW cross compile from Linux | GNU g++ 3.4.2; MinGW runtime 3.7; w32 API 3.2 | succeeds |
Windows | Visual C++ 7.0 (.NET) | succeeds [2,3,4] |
MacOS 9 | MetroWerks Code Warrior | unknown [3,5] |
MacOS 10.2-10.4.8 | GNU g++ 3.1, 3.3 | succeeds |
[1] Earlier versions of LAMARC would compile with g++ version 2.9, but it would sometimes halt midway through compilation with a segmentation fault; this is related to string allocation and can be fixed by recompiling several times (it gets a bit further each time). It was also necessary to set the flag -ftemplate-depth-500 or some deeply nested templates would fail to compile. (We thank Matthew Austern for this information.) If you only have access to this older compiler, expect to see at least these problems.
[2] Lamarc and lam_conv only. gui_lam_conv should compile, but we have not yet developed a .vcproj file for it.
[3] Compiling for Mac or Windows with compilers other than g++ will usually require increasing the heap size hugely over the default values, or the program will either not run at all or only run on toy cases. Consult your compiler documentation for how to do this.
[4] It does not compile with Microsoft Visual C++ 6 (the internal buffers are too small; if you know a workaround we would love to hear from you). We provide source code as well as Linux, MacOSX, and Windows executables.
[5] We have stopped supporting this OS, but in the past lamarc executables have been successfully compiled for it.