Return-Path: Received: from B.GP.CS.CMU.EDU by G.GP.CS.CMU.EDU id aa27724; 5 Jan 95 19:07:30 EST Received: from LISP-PMAX2.SLISP.CS.CMU.EDU by B.GP.CS.CMU.EDU id aa07485; 5 Jan 95 19:06:16 EST Received: from BatMail.robin.v2.13.CUILIB.3.45.SNAP.NOT.LINKED.LISP.PMAX2.SLISP.CS.CMU.EDU.pmax.mach via MS.5.6.LISP-PMAX2.SLISP.CS.CMU.EDU.pmax_mach; Thu, 5 Jan 1995 19:04:37 -0500 (EST) Message-ID: Date: Thu, 5 Jan 1995 19:04:37 -0500 (EST) From: William.Lott@cs.cmu.edu To: matomira@epfl.ch Subject: Re: building CMUCL CC: cmucl-bugs@cs.cmu.edu In-Reply-To: References: Reply-To: cmucl-bugs@cs.cmu.edu "Fernando D. Mato Mira" writes: > Is there an updated guide on how to build CMUCL? Appended below is a copy of a file I wrote a while back that should tell you what you need. Except that where is says sun4c_41, use the sys type for whatever system you are trying to build. That file was written when the only system we were exporting was for the sun4c_41. -William Lott Gwydion Project Carnegie Mellon Info on how to compile the CMUCL sources. CMUCL is written almost totally in Common Lisp. In order to compile the CMUCL sources, you need a running version of CMUCL to compile them with. Once you have a running CMUCL, you can compile the latest sources and build a new version of CMUCL from the results, but you have to have a running CMUCL to bootstrap the process originally. That is why we primarily distribute the binary instead of just the sources like with most C programs. Given the large number of source files going into CMUCL, they are organized into a tree. In this file, I will use ... to refer to the root of this tree, for example, .../code/hash.lisp is the sources for hash tables. The easiest way to compile the sources for CMUCL is to use the .../tools/compile-all script. Except that this script has the pathnames for where we have stuff installed here at CMU hard wired into it. So you will want to make a local copy of compile-all that has your pathanmes in it. Once that is done, just run the script. It will recompile any source files that need to be compiled, and run genesis. You can give it switches to supress compiling different pieces if you don't want to recompile everything. But when running genesis, it will expect to be able to find the file .../lisp/lisp.nm. This file is created when lisp is compiled. But to compile lisp, you need internals.h which is created by genesis. There are a couple of ways to break this cycle. The easiest is to ftp a copy of internals.h from us. Cd to the directory: /afs/cs/project/clisp/build/sun4c_41//lisp (where is the version number for the system you want, e.g. 17) and get the file internals.h. Or you can create a fake lisp.nm by hand: echo "Map file for lisp version 0" > lisp.nm and then run genesis. That will produce a internals.h which you can use to compile lisp and produce a real lisp.nm. Once you have the real lisp.nm you need to re-run genesis. Note: if you are trying to compile version 16 or earlier, you need to know about some name changes: version 17 and on version 16 and before lisp ldb lisp.nm ldb.map interals.h lisp.h