/srcdir/configureand wait for configure to figure things out. Note that you must either run configure using an absolute pathname or pass the absolute pathname of the source directory in explicitly using --srcdir=srcdir.
When configure is done, begin the compilation by typing "make (or "gmake" if you have GNU make). When the compilation is done, type "make install" to install the executable and libraries. (Note: you will need write permission for the directories that files are being installed to; see below)
The default installation directory for executables is /usr/local/bin; for libraries it is /usr/local/lib/dylan You can change the prefix for these paths from /usr/local to whatever by typing "configure --prefix=whatever". It is not a good idea to specify the path name using a tilde (~) because tilde has a special meaning only in csh. make uses sh, so tildes probably won't do what you want them to.
If you want to build in one-place while the sources are kept in another-place, then type:
cd one-place; another-place/configureand configure will construct the appropriate directories and Makefiles.
CC specifies the C compiler to use CCOPTS specifies options to pass to the C compiler YACC specifies the parser generator LEX specifies the lexer generator LFLAGS specifies the flags passed to LEXThe default C compiler options (CCOPTS) are "-g -O4 -finline-functions -Wall" if you are using gcc, and "-g -O" otherwise. If you are not using gcc, we highly recommend you read the man page for your compiler and supply the flags that ask for the maximum optimization. (Note that on many compilers, -g, "generate debugging information", and -O, "optimize", are mutually exclusive. If you have to choose between the two, go with optimization.)
Options can be passed to make by using environment variables: Using /bin/sh, say "VARNAME=option make -e" (-e tells make to look at the environment variables). Under gmake, options can also be passed via the command line: "gmake VARNAME=option".
You can clean up any previously made object files and executables with "make clean".
Here's what a sample installation might look like:
/bin/sh # Need the Bourne shell to pass options to make ./configure --prefix=/usr/bob CCOPTS="-g -O3" make -e make install exit # exit the shell you just launchedThis would install binaries to /usr/bob/bin, and library files to /usr/bob/lib/dylan.
Hardware OS Compiler -------- -- -------- HP Apollo HPUX 9.03 gcc HP 9000/800 HPUX A.09.04 cc DEC pmax Mach 2.6 gcc DEC pmax Ultrix 4.x gcc SGI IRIX 4.0.5 gcc and sgi-cc SGI IRIX 5.2 sgi-cc Sun SunOS 4.11 gcc Sun Solaris 2.3 cc IBM PowerPC 250 AIX 4.1 cc PC clone Linux 1.2.0 gcc
Mindy can not be built out of the box on the DEC Alpha. If you would like to port Mindy to the Alpha or any other architecture where Mindy does not easily compile, send mail to gwydion-bugs@cs.cmu.edu and we will try to provide as much help as we can.
The main hooks for porting d2c are the Makegen Defaults and the platforms.descr files. So far every port has also required Dylan code modification, but you might be lucky. Extra work is required to port Melange and DIG, see the platform-specific files in those source directories. There is also some assembly code used by d2c to generate non-local exits.
It is possible to build d2c without a working d2c by boostrapping via Mindy. There's some support for this in configure and the Makegen files, but you need to run some stuff by hand. Peter Housel says this worked for him:
mkdir build cd build $srcdir/configure gmake force.timestamp gmake -C mindy gmake -C common dbc_only gmake -C d2c gmake -C common gmake -C d2c d2c-compile gmake -C d2c install rm -f config.cache $srcdir/configure gmake
If you have successfully compiled Gwydion Dylan on another architecture, please send mail to gwydion-bugs@cs.cmu.edu and we will add that architecture to the list. Please include the operating system version and what compiler you used. If changes were required, please send diffs as well.
ld: driver.o: relocation format botch (symbol type)) collect2: ld returned 4 exit status