06983f1996-09-22Fredrik Hübinette (Hubbe) This is what you need to do to install Pike:
5267b71995-08-09Fredrik Hübinette (Hubbe)  1) Run ./configure, this is a sh script that will generate machine.h and
51bd9e1996-10-09Fredrik Hübinette (Hubbe)  Makefile from machine.h.in and Makefile.in. Some options for ./configure are:
8cfc391997-11-29Fredrik Hübinette (Hubbe)  --prefix=/foo/bar if you want to install Pike in /foo/bar, default is /usr/local. --without-gdbm compile without gdbm support --without-gmp compile without gmp support
01b5d22000-02-03Fredrik Hübinette (Hubbe)  --without-rtldebug compile without runtime debugging --without-cdebug compile without debug symbols (-g) --without-debug compile without rtldbug and cdebug --without-threads compile without threads support (See below)
8cfc391997-11-29Fredrik Hübinette (Hubbe)  --without-zlib compile without gzip compression libary support --without-dynamic-modules compile statically, no dynamic loading used. (makes binary larger) --without-mysql compile without mysql support --with-profiling enables profiling pike code but slows down interpreter a little
01b5d22000-02-03Fredrik Hübinette (Hubbe)  --with-poll use poll instead of select --with-dmalloc compile with memory tracking, makes pike very slow, use for debugging only. --without-copt compile without -O2 --without-bignums disable support for large integers --with-security enable internal object security system
51bd9e1996-10-09Fredrik Hübinette (Hubbe)  You might also want to set the following environment variables: CFLAGS Put extra flags for your C compiler here. CPPFLAGS Put extra flags for your C preprocessor here (such as -I/usr/gnu/include) LDFLAGS Put extra flags to your linker here, such as -L/usr/gnu/lib and -R/usr/gnu/lib
1998451996-11-19David Hedbor  Use the above flags to make sure the configure script finds the
ac10221999-03-13Marcus Comstedt  gdbm and gmp libraries and include files if you need or want those modules. If the configure script doesn't find them, Pike will still compile, but without those modules.
51bd9e1996-10-09Fredrik Hübinette (Hubbe)  2) If needed, edit config.h and Makefile to suit your purposes.
5267b71995-08-09Fredrik Hübinette (Hubbe)  I've tried to make it so that you don't have to change config.h or
51bd9e1996-10-09Fredrik Hübinette (Hubbe)  Makefile at all. If you need to do what you consider 'unnessecary
1998451996-11-19David Hedbor  changes' then mail me and I'll try to fit it into configure. If possible, use gnu make, gcc, gnu sed and bison.
5267b71995-08-09Fredrik Hübinette (Hubbe)  3) Run make.
a664262000-02-03Henrik Grubbström (Grubba) 4) Optionally, run 'make verify' to check that the compiled driver works
1998451996-11-19David Hedbor  as it should (might be a good idea) This will take a little time and use quite a lot of memory, because the testprogram is quite large. If everything works out fine no extra messages are written.
5267b71995-08-09Fredrik Hübinette (Hubbe) 
06983f1996-09-22Fredrik Hübinette (Hubbe) 5) If you want to install Pike, write 'make install'
5267b71995-08-09Fredrik Hübinette (Hubbe) 
8ce9ad1996-05-16Fredrik Hübinette (Hubbe) 6) Optionally do 'make html_docs' to create a directory called docs which
06983f1996-09-22Fredrik Hübinette (Hubbe)  will contain the Pike documentation in html. This directory can then
8ce9ad1996-05-16Fredrik Hübinette (Hubbe)  be copied to anywhere you want.
5267b71995-08-09Fredrik Hübinette (Hubbe) 
01b5d22000-02-03Fredrik Hübinette (Hubbe) IF IT DOESN'T WORK:
5267b71995-08-09Fredrik Hübinette (Hubbe) 
01b5d22000-02-03Fredrik Hübinette (Hubbe)  o Try again. o Your sh might be too buggy to run ./configure. (This is the case on A/UX)
2a50101995-11-06Fredrik Hübinette (Hubbe)  Try using bash, zsh or possibly ksh. To use bash, first run /bin/sh and type: $ CONFIG_SHELL=full_path_for_bash $ export CONFIG_SHELL $ $CONFIG_SHELL ./configure
20a60b2000-04-05Henrik Grubbström (Grubba)  o If you are not using GNU make, compile in the source dir rather than
ca41b42000-04-04Fredrik Hübinette (Hubbe)  using a separate build dir.
01b5d22000-02-03Fredrik Hübinette (Hubbe)  o ./configure relies heavily on sed, if you have several sed in your path
5267b71995-08-09Fredrik Hübinette (Hubbe)  try another sed. (preferably gnu sed)
01b5d22000-02-03Fredrik Hübinette (Hubbe)  o configure might have done something wrong, check machine.h and report
5267b71995-08-09Fredrik Hübinette (Hubbe)  any errors back to me.
01b5d22000-02-03Fredrik Hübinette (Hubbe)  o Your gmp/gdbm libraries might not be working or incorrectly
51bd9e1996-10-09Fredrik Hübinette (Hubbe)  installed, start over by running configure with the approperiate
eec1371996-11-02Fredrik Hübinette (Hubbe)  --without-xxx arguments. Also note that threads might give problems with I/O and signals. If so you need to run configure --without-threads.
51bd9e1996-10-09Fredrik Hübinette (Hubbe) 
01b5d22000-02-03Fredrik Hübinette (Hubbe)  o Try a different compiler, malloc, compiler-compiler and/or make.
5267b71995-08-09Fredrik Hübinette (Hubbe)  (if you have any other)
bf4a8d1995-10-20Fredrik Hübinette (Hubbe) 
ccc2d41997-04-10Fredrik Hübinette (Hubbe) 
01b5d22000-02-03Fredrik Hübinette (Hubbe) THREADS SUPPORT Getting threads support might be hairy on some platforms, most platforms have threads support but quite a few have problems running external
a664262000-02-03Henrik Grubbström (Grubba) processes (through create_process). By default threads support is disabled
01b5d22000-02-03Fredrik Hübinette (Hubbe) on platforms where threading is known not to work 100% properly.
a664262000-02-03Henrik Grubbström (Grubba) IRIX: Starting many processes causes a resource error which sometimes causes a complete hang and 100% cpu usage.
01b5d22000-02-03Fredrik Hübinette (Hubbe)  FreeBSD 3.x: Symptoms are similar to IRIX, but the problem has something to do with signal handling. (And as you may know, process handling uses signals on UNIX...) Linux: Not all linux variations have 100% working threads, in
a664262000-02-03Henrik Grubbström (Grubba)  fact most libc5 systems do not work very well with threads.
01b5d22000-02-03Fredrik Hübinette (Hubbe)  Threads support is enabled by default on Linux, but I recommend running 'make verify' after compilation. This will (hopefully) tell you if your threads are not working. BUGS
5267b71995-08-09Fredrik Hübinette (Hubbe) If you find a bug in the interpreter, the first thing to do is to make sure
a664262000-02-03Henrik Grubbström (Grubba) the interpreter is compiled with PIKE_DEBUG defined. If not, recompile with PIKE_DEBUG and see if you get another error. When you've done this, please report the bug to hubbe@hubbe.net and include as much as you can muster of the following:
5267b71995-08-09Fredrik Hübinette (Hubbe) 
a664262000-02-03Henrik Grubbström (Grubba)  o The version of the driver. (Try pike --version or look in src/version.h)
5267b71995-08-09Fredrik Hübinette (Hubbe)  o What kind of system hardware/software you use (OS, compiler, etc.)
a664262000-02-03Henrik Grubbström (Grubba)  o The piece of code that crashes or bugs.
06983f1996-09-22Fredrik Hübinette (Hubbe)  (preferably in a very small pike-script with the bug isolated)
5267b71995-08-09Fredrik Hübinette (Hubbe)  Please send a complete running example of something that makes the interpreter bug.
a664262000-02-03Henrik Grubbström (Grubba)  o A description of what it is that bugs and when. o If you know how, then also give me a backtrace and dump of vital variables
5267b71995-08-09Fredrik Hübinette (Hubbe)  at the point of crash.
a664262000-02-03Henrik Grubbström (Grubba)  o Or, if you found the error and corrected it, just send me the bugfix along
5267b71995-08-09Fredrik Hübinette (Hubbe)  with a description of what you did and why.
cb22561995-10-11Fredrik Hübinette (Hubbe)  /Fredrik Hubinette