# Procedures to build gforth from the CVS sources
#use this with parameters and env variables like "configure"
#Copyright (C) 2000,2002,2003,2006,2007 Free Software Foundation, Inc.
#This file is part of Gforth.
#Gforth is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation, either version 3
#of the License, or (at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.#See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program. If not, see http://www.gnu.org/licenses/.
# created: 2may00jaw
# To build gforth from scratch you need autoconf, automake and a
# This file can be used as shell script. If you make the environment
# variable GFORTH point to an existing gforth installation, this
# script takes over the whole build process and will produce the
# kernel kernel images from the sources as well
# try to guess a installed gforth
if [ "$GFORTH"xx = "xx" ];
rm -f gforth
if [ "$GFORTH"xx = "xx" ]; then
echo 'BUILD-FROM-SCRATCH needs a working gforth (in environment variable GFORTH)'
# makes a aclocal.m4 which includes the automake macros for autconf
# generate configure script
# generate header files like engine/config.h.in
echo timestamp >stamp-h.in
# run configure Script
./configure "$@" &&
# if you have specified a previous Gforth, you can safely run make now
# with FORTHK and FORTHP changed appropriately.
#a local gforth.fi probably does not work with $GFORTH
rm -f gforth.fi &&
if [ "$GFORTH"xx != "xx" ]
bootstrap=engine/prim.i" "`for x in b l; do for wid in 16 32 64; do echo kernl$wid$x.fi; done; done`
echo 'Running: make BUILDFORTH="'$GFORTH'" FORTHP="'$GFORTH'" '$bootstrap &&
make BUILDFORTH="$GFORTH" FORTHP="$GFORTH" engine/prim.i $bootstrap &&
echo Running: make &&
make doc &&