--- genesis-2.2.1.orig/man/man1/convert.1 +++ genesis-2.2.1/man/man1/convert.1 @@ -1,4 +1,4 @@ -.\" $Id: convert.1,v 1.3 2001/07/22 17:53:17 mhucka Exp $ +.\" $Id: convert.man,v 1.4 1995/04/01 17:43:49 dhb Exp $ .TH CONVERT 1L "3 October 1994" .SH NAME convert \- convert GENESIS 1.x scripts to GENESIS 2.x syntax and command names --- genesis-2.2.1.orig/debian/compat +++ genesis-2.2.1/debian/compat @@ -0,0 +1 @@ +4 --- genesis-2.2.1.orig/debian/changelog +++ genesis-2.2.1/debian/changelog @@ -0,0 +1,283 @@ +genesis (2.2.1-12ubuntu2) maverick; urgency=low + + * Rebuild for libnetcdf soname change. + + -- Matthias Klose Wed, 29 Sep 2010 10:47:59 +0000 + +genesis (2.2.1-12ubuntu1) maverick; urgency=low + + * Apply NMU patch from Julien Cristau (BTS #549800): + + Replace build-dependency on netcdfg-dev with libnetcdf-dev + (closes: #549800). + + Don't strip files if DEB_BUILD_OPTIONS contains nostrip (closes: #436971). + + Delete the .pc directory on clean. + + Rename 'round' macro to 'genesis_round' to avoid clash with libc's math.h. + + -- Michael Bienia Sun, 08 Aug 2010 21:39:07 +0200 + +genesis (2.2.1-12build1) hardy; urgency=low + + * Rebuild for libnetcdf3 -> libnetcdf4 transition. + + -- Luca Falavigna Wed, 13 Feb 2008 22:56:11 +0100 + +genesis (2.2.1-12) unstable; urgency=low + + * debian/genesis.desktop: + + Add Terminal=true. Thanks to Ubuntu maintainer Adrien Cunin. + * debian/scripts/genesis: + + Launcher script that copies the simrc file on first startup, thanks + to Adrien Cunin. + + -- Sam Hocevar (Debian packages) Wed, 31 Jan 2007 14:06:48 +0100 + +genesis (2.2.1-11) unstable; urgency=low + + * debian/patches/110_bypass_gcc_optimiser_bug.diff: + + Workaround for a GCC optimiser bug to fix the #389234 FTBFS. + + * debian/patches/110_register.diff: + + This patch is now deprecated. + + -- Sam Hocevar (Debian packages) Sat, 7 Oct 2006 17:50:35 +0200 + +genesis (2.2.1-10) unstable; urgency=low + + * debian/control: + + Build-depend on csh, as required by configrc. + + -- Sam Hocevar (Debian packages) Sat, 7 Oct 2006 15:17:35 +0200 + +genesis (2.2.1-9) unstable; urgency=low + + * debian/control: + + Added XS-Vcs-Svn information. + + * debian/patches/000_makefiles.diff: + + Make the build rules exit on error. + + * debian/patches/110_register.diff: + + Remove register keywords from variables and trust the compiler on + this instead. Hopefully fixes an HPPA FTBFS (Closes: #389234). + + -- Sam Hocevar (Debian packages) Sat, 7 Oct 2006 13:58:32 +0200 + +genesis (2.2.1-8) unstable; urgency=low + + * Moved patch management to quilt. + * debian/control: + + Build-depend on quilt. + * debian/genesis.desktop: + + Added Ubuntu’s desktop file by Phil Bull, thanks to Barry deFreese + (Closes: #377442). + * debian/rules: + + Fix location of doc-base files. + + -- Sam Hocevar (Debian packages) Wed, 2 Aug 2006 15:59:25 +0200 + +genesis (2.2.1-7) unstable; urgency=low + + * debian/control: + + Set policy to 3.7.2. + + Removed the genesis/genesis-data dependency loop. + * debian/compat: + + Set version to 4. + * debian/genesis-data.preinst debian/genesis.postinst: + + Smooth transition for the genesis/genesis-data /usr/share/doc swap. + + * src/shell/shell_tty.c src/sim/sim_func_ext.h src/shell/shell_func_ext.h: + + Patch by Petr Salinger to fix a kFreeBSD FTBFS (Closes: #340431). + + -- Sam Hocevar (Debian packages) Tue, 16 May 2006 23:47:43 +0200 + +genesis (2.2.1-6) unstable; urgency=low + + * debian/control: + + Set policy to 3.6.2.1. + + -- Sam Hocevar (Debian packages) Wed, 13 Jul 2005 02:01:19 +0300 + +genesis (2.2.1-5) unstable; urgency=medium + + * debian/control: + + Build-depend on libx11-dev, libxt-dev, libxext-dev instead of xlibs-dev. + + Changed section to science. + * src/convert/Makefile: + + Cached bison output to work around an ARM build problem. + + -- Sam Hocevar (Debian packages) Wed, 14 Apr 2004 12:49:09 +0200 + +genesis (2.2.1-4) unstable; urgency=low + + * debian/control: + + Build-depend on netcdfg-dev and no longer build our own NetCDF. + + Removed weird legacy conflicts with netcdfg-dev and netcdf-bin + caused by duplicate manpages (Closes: #236075). + * debian/menu: + + Fixed menufile syntax. + * debian/rules: + + Remove the included netcdfg tree in the clean rule. + + -- Sam Hocevar (Debian packages) Wed, 10 Mar 2004 11:20:43 +0100 + +genesis (2.2.1-3) unstable; urgency=low + + * debian/control: + + Split the package into genesis and genesis-data (Closes: #233356). + + -- Sam Hocevar (Debian packages) Wed, 18 Feb 2004 13:44:53 +0100 + +genesis (2.2.1-2) unstable; urgency=low + + * debian/control: + + Fixed the Maintainer: field. + * debian/rules: + + Set the executable bit on scripts in /usr/share/genesis/Scripts. + + Strip uneeded sections in /usr/lib binaries. + + -- Sam Hocevar (Debian packages) Tue, 20 Jan 2004 10:40:24 +0100 + +genesis (2.2.1-1) unstable; urgency=low + + * New maintainer (Closes: #206867). + * Acknowledging previous NMUs (Closes: #104920, #89130, #127093, #148310, + Closes: #148311, #149039, #149041, #151099, #167066, #196252, #202281) + * New upstream version. + * debian/control: + + Set policy to 3.6.1.0. + * debian/rules: + + Use debian/compat instead of DH_COMPAT. + + -- Sam Hocevar (Debian packages) Sun, 20 Jul 2003 14:16:32 +0200 + +genesis (2.2-3.3) unstable; urgency=low + + * NMU. + * Fixed two makefiles that didn't clean the build tree, and one that + prevented shell/shelllib.o from compiling (Closes: #202281). + * src/shell/shell_io.c: + + Ctrl-D exits when the input buffer is empty (Closes: #151099). + + -- Sam Hocevar (Debian packages) Sun, 20 Jul 2003 14:16:32 +0200 + +genesis (2.2-3.2) unstable; urgency=low + + * NMU during the DebCamp BSP. + * debian/control: + + Set policy to 3.6.0. + + Changed debhelper build-dependency to (>=3.0). + + Uncapitalised short description. + * debian/rules: + + Moved HTML documentation from genesis.html/ to html/. + + Install runtime documentation to /usr/share/genesis/Doc/ instead of + /usr/share/doc/genesis/ (Closes: #149039). + + Removed spurious .o files in the clean rule. + + Fixed the netcdf source directory location in the clean rule. + * debian/copyright: + + Replaced "Author(s)" with "Authors". + * Removed leading "-"s in all makefiles so that more build errors cause the + build to fail. + * shell/shell_log.c, diskio/diskio_utilfunc.c, Xodus/Xo/Error.c, + Xodus/Xo/XoArgLists.c, Xodus/Widg/Text.c: + + Used instead of (Closes: #196252). + * src/startup/simrc: + + Look for runtime documentation in /usr/share/genesis/Doc/. + + -- Sam Hocevar (Debian packages) Sun, 20 Jul 2003 14:16:32 +0200 + +genesis (2.2-3.1) unstable; urgency=low + + * Non-maintainer upload during bug-squashing party. + * Fixed Bison syntax (closes: #167066). + + -- Roland Mas Sat, 15 Mar 2003 18:47:56 +0100 + +genesis (2.2-3) unstable; urgency=low + + * Added conflict row in control file (closes: Bug#148310, Bug#148311). + * Patched simrc file in order to find docs and others (closes: Bug#149039, Bug#149041). + + -- Maurizio Boriani Mon, 24 Jun 2002 17:57:19 +0200 + +genesis (2.2-2) unstable; urgency=low + + * Fixed misc for /usr/share/doc and /usr/share/man \ + (closes: Bug#127093). + + -- Maurizio Boriani Wed, 2 Jan 2002 13:55:43 +0100 + +genesis (2.2-1) unstable; urgency=low + + * New upstream release + * Fixed building errors on hppa (closes: Bug#104920). + + -- Maurizio Boriani Mon, 5 Nov 2001 16:43:24 +0100 + +genesis (2.1-5) unstable; urgency=low + + * Closes: #89130 + * Added two packages in Build-depends control's file field: fles and libncurses5-dev + + -- Maurizio Boriani Fri, 23 Mar 2001 15:34:44 +0000 + +genesis (2.1-4) unstable; urgency=low + + * Corrected some description's errors + * Changed maintainer e-mail address + + -- Maurizio Boriani Mon, 22 Jan 2001 18:29:00 +0000 + +genesis (2.1-3) unstable; urgency=low + + * New maintainer. Closes: #76269 + * Fixed bug in src/shell/shell_script.c + it was use a local include before system include + + -- Maurizio Boriani Thu, 21 Dec 2000 01:12:22 +0000 + +genesis (2.1-1.1) unstable; urgency=low + + * NMU. + * FHS Compliant. Closes: #48333 + (this was a /usr/share/doc|/usr/doc issue) + * Standards-version 3.0.1 + * Lintian clean. + + -- Adam Heath Wed, 27 Oct 1999 02:21:34 -0500 + +genesis (2.1-1) unstable; urgency=low + + * Uploading the package for a prospective developer Matt Zimmerman + . + * Fixed error in .TH header of debian/genesis.1 manpage. + * Updated all relevant entries in debian/* with maintainer's name, + not just e-mail address. + * Removed dwww entry in the menu file, it will be generated by doc-base. + * Some fixes in debian/rules, made it use debhelper where appropriate. + * Moved dirs file contents into the rules file, and removed two unneeded + entries. + * Changed $CFLAGS to "-O2 -g", as per Policy. + * Changed make clean to make cleandist, to further clean the source tree, + and added some 'rm -f's to clean up after that, too. + * Edited some Makefile.in files under src/diskio/interface/netcdf-*/src/ + to fix distclean target, and and added invocation of make distclean in + that directory to debian/rules' clean rule. + + -- Josip Rodin Sat, 24 Jul 1999 18:00:03 +0200 + +genesis (2.1-1) unstable; urgency=low + + * Initial Release. + * Modifications to upstream source: + * Removed 'extern char *strchr()' declarations from + src/shell/shell_func_ext.h, src/sim/sim_func_ext.h and + src/convert/script.l + * Modified usage message in src/sim/sim_main.c to give correct path + information + * Fixed a broken use of the __GLIBC__ macro (was __GLIBC). Upstream + authors are aware of this bug. + * Modified Makefile to set correct OS, build enivronment, and path + information + * Modified example config file src/startup/simrc to use correct paths + + -- Matt Zimmerman Sun, 20 Jun 1999 11:34:36 -0700 --- genesis-2.2.1.orig/debian/genesis.postinst +++ genesis-2.2.1/debian/genesis.postinst @@ -0,0 +1,24 @@ +#!/bin/sh + +DOCDIR=/usr/share/doc/genesis + +case "$1" in + configure) + # Transition for foo/foo-data dependency swap + if [ -d $DOCDIR -a ! -L $DOCDIR ]; then + rmdir --ignore-fail-on-non-empty $DOCDIR + if [ ! -d $DOCDIR ]; then + ln -s genesis-data $DOCDIR + fi + fi + ;; + abort-upgrade|abort-remove|abort-deconfigure) + ;; + *) + echo "postinst called with unknown argument \`$1'" >&2 + exit 1 + ;; +esac + +#DEBHELPER# + --- genesis-2.2.1.orig/debian/README.Debian +++ genesis-2.2.1/debian/README.Debian @@ -0,0 +1,14 @@ +Genesis for Debian +------------------ + +- In order to use the system, you should first copy + /usr/share/genesis/startup/simrc to ~/.simrc + +- Scripts are installed in /usr/share/genesis/Scripts + +- Development stuff is in /usr/include/genesis and /usr/lib/genesis + (maybe this will become a separate package one day) + +- The 'convert' program is currently not included + + -- Matt Zimmerman , Sun, 20 Jun 1999 11:34:36 -0700 --- genesis-2.2.1.orig/debian/copyright +++ genesis-2.2.1/debian/copyright @@ -0,0 +1,90 @@ +This package was debianized by Sam Hocevar on +Sun, 20 Jul 2003 14:16:32 +0200. + +It was downloaded from http://www.genesis-sim.org/GENESIS/ + +Upstream Authors: + +***************************************************************************** +** +** GENESIS; Neural Systems Simulator +** +** Written by: +** Upinder S. Bhalla (bhalla@ncbs.tifrbng.res.in) +** David H. Bilitch (dhb@bbb.caltech.edu) +** Erik De Schutter (erik@kuifje.bbf.uia.ac.be) +** Venkat Jagadish (venkat@bbb.caltech.edu) +** Mark E. Nelson (nelson@vernal.npa.uiuc.edu) +** John D. Uhley (uhley@xpressware.com) +** Matthew A. Wilson +** under the direction of: +** James M. Bower (jbower@bbb.caltech.edu) +** +** XODUS graphical interface by: +** Upinder S. Bhalla (bhalla@ncbs.tifrbng.res.in) +** Venkat Jagadish (venkat@@bbb.caltech.edu) +** Jason Leigh (jleigh@eecs.uic.edu) +** Maneesh Sahani +** +** Parallel library development by: +** Upinder S. Bhalla (bhalla@ncbs.tifrbng.res.in) +** Erik De Schutter (erik@kuifje.bbf.uia.ac.be) +** Nigel Goddard (ngoddard@psc.edu) +** +** Development work for Intel i860-based Parallel Machines by : +** Michael D. Speight +** +** X11R4 upgrade modifications by: +** Randall D. Smith (randy@ai.mit.edu) +** +** X11R5 and X11R6 upgrade modifications by: +** Rich Murphey (rich@rice.edu) +** Diana K. Smetters (dks@ai.mit.edu) +** +** Libraries by : +** Upinder S. Bhalla (bhalla@ncbs.tifrbng.res.in) +** Erik De Schutter (erik@kuifje.bbf.uia.ac.be) +** Mark E. Nelson (nelson@vernal.npa.uiuc.edu) +** Adam Strassberg +** Matt Wilson +** +** Numerical methods enhancements by: +** Upinder S. Bhalla (bhalla@ncbs.tifrbng.res.in) +** Erik De Schutter (erik@kuifje.bbf.uia.ac.be) +** Bruce P. Graham (bruce@cns.ed.ac.uk) +** +** Synapse Library development by: +** Mike Vanier (mvanier@bbb.caltech.edu) +** +** Script Demos by: +** Dave Beeman (dbeeman@dogstar.colorado.edu) +** Upinder S. Bhalla (bhalla@ncbs.tifrbng.res.in) +** Sharon Crook (crook@bart.niddk.nih.gov) +** Mark E. Nelson (nelson@vernal.npa.uiuc.edu) +** Alex Protopapas (alexp@bbb.caltech.edu) +** Mike Vanier (mvanier@bbb.caltech.edu) +** Matt Wilson +** + +Copyright: + +** Copyright 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997 +** by the California Institute of Technology +** +** Permission to use, copy, modify, and distribute this +** software and its documentation for any purpose and without +** fee is hereby granted, provided that the above copyright +** notice appear in all copies and that both that copyright +** notice and this permission notice appear in supporting +** documentation, and that the name of the California Institute +** of Technology not be used in advertising or publicity pertaining +** to distribution of the software without specific, written prior +** permission. The California Institute of Technology makes no +** representations about the suitability of this software for any purpose. +** It is provided "as is" without express or implied warranty. +** +** Some components are copyright by the originating institution and are used +** with the permission of the authors. The conditions of these copyrights +** (none of which restrict the free distribution of GENESIS) appear with +** these modules. +** --- genesis-2.2.1.orig/debian/rules +++ genesis-2.2.1/debian/rules @@ -0,0 +1,113 @@ +#!/usr/bin/make -f +#-*- makefile -*- +# Made with the aid of dh_make, by Craig Small +# Sample debian/rules that uses debhelper. GNU copyright 1997 by Joey Hess. +# Some lines taken from debmake, by Christoph Lameter. + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +build: build-stamp +build-stamp: + dh_testdir + QUILT_PATCHES=debian/patches quilt push -a || test $$? = 2 + $(MAKE) -C src + $(MAKE) install -C src + touch $@ + +clean: + dh_testdir + dh_testroot + rm -f build-stamp install-stamp + QUILT_PATCHES=debian/patches quilt push -a || test $$? = 2 + $(MAKE) cleandist -C src + QUILT_PATCHES=debian/patches quilt pop -a -R || test $$? = 2 + # Get rid of that useless pile of shit + rm -Rf src/diskio/interface/netcdf/netcdf-*.* + rm -f `find . -name y.output` Libmake Usermake src/liblist + rm -f `find . -name '*.o'` + rm -f src/fortran/nfconfig.inc + rm -f bin/genesis-convert man/man1/genesis-convert.1 + rm -rf .pc + dh_clean + +install: install-stamp +install-stamp: build-stamp + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs -p genesis usr/bin usr/lib/genesis usr/include/genesis usr/share/doc + dh_installdirs -p genesis-data usr/share/doc/genesis-data/html usr/share/genesis/Doc + ln -s genesis-data debian/genesis/usr/share/doc/genesis + # Main binary and wrapper script + dh_install -p genesis genesis /usr/lib/genesis/ + dh_install -p genesis debian/scripts/genesis /usr/bin/ + # Desktop file + dh_install -p genesis debian/genesis.desktop /usr/share/applications + # Libraries and additional executables + dh_install -p genesis lib/* /usr/lib/genesis +ifeq (,$(filter nostrip, $(DEB_BUILD_OPTIONS))) + strip --remove-section=.comment --remove-section=.note \ + debian/genesis/usr/lib/genesis/code_* +endif + cp bin/convert bin/genesis-convert + dh_install -p genesis bin/genesis-convert /usr/bin +ifeq (,$(filter nostrip, $(DEB_BUILD_OPTIONS))) + strip --remove-section=.comment --remove-section=.note \ + debian/genesis/usr/bin/genesis-convert +endif + cp man/man1/convert.1 man/man1/genesis-convert.1 + # Include files + dh_install -p genesis include/* /usr/include/genesis + # Scripts and startup files + dh_install -p genesis-data Scripts /usr/share/genesis + dh_install -p genesis-data startup /usr/share/genesis + dh_install -p genesis-data src/startup/simrc /usr/share/genesis/startup + # Documentation + dh_install -p genesis-data Doc/README Doc/*.doc /usr/share/genesis/Doc + # /usr/share/doc documentation + dh_install -p genesis-data Hyperdoc/* /usr/share/doc/genesis-data/html + # This stuff doesn't need to be executable (generates a lintian + # warning) + find debian/genesis-data/usr/share/genesis -type f | xargs chmod a-x + # But this stuff does + -find debian/genesis-data/usr/share/genesis/Scripts -type f | \ + while read file; do \ + grep -q '^#! */' "$$file" && chmod a+x "$$file"; \ + done + touch $@ + +binary-indep: build install + dh_testdir -i + dh_testroot -i + dh_installdocs -i Doc/README.* + dh_installchangelogs -i src/CHANGES + dh_link -i + dh_compress -i + dh_fixperms -i + dh_installdeb -i + dh_gencontrol -i + dh_md5sums -i + dh_builddeb -i + +binary-arch: build install + dh_testdir -a + dh_testroot -a + dh_installmenu -a + dh_installman -a debian/genesis.1 man/man1/genesis-convert.1 + dh_desktop -a + dh_link -a + dh_strip -a + dh_compress -a + dh_fixperms -a + dh_installdeb -a + dh_shlibdeps -a + dh_gencontrol -a + dh_md5sums -a + dh_builddeb -a + +source diff: + @echo >&2 'source and diff are obsolete - use dpkg-source -b'; false + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary --- genesis-2.2.1.orig/debian/genesis-data.doc-base +++ genesis-2.2.1/debian/genesis-data.doc-base @@ -0,0 +1,11 @@ +Document: genesis +Title: GENESIS Manual +Author: Dave Beeman, Upi Bhalla, Dave Bilitch, Jim Bower, Kevin Cunningham, + Erik De Schutter, John Uhley, and Matt Wilson +Abstract: This manual gives detailed information on using and + developing for the GENESIS system +Section: Apps/Math + +Format: HTML +Index: /usr/share/doc/genesis-data/html/Manual.html +Files: /usr/share/doc/genesis-data/html/*.html --- genesis-2.2.1.orig/debian/control +++ genesis-2.2.1/debian/control @@ -0,0 +1,39 @@ +Source: genesis +Section: science +Priority: extra +Maintainer: Ubuntu Developers +XSBC-Original-Maintainer: Sam Hocevar (Debian packages) +Build-Depends: debhelper (>= 4.0), quilt, libx11-dev, libxt-dev, libxext-dev, zlib1g-dev, bison, flex, csh, libncurses5-dev, libnetcdf-dev +Standards-Version: 3.7.2 +XS-Vcs-Svn: svn://svn.debian.org/svn/sam-hocevar/pkg-misc/unstable/genesis/ + +Package: genesis +Architecture: any +Depends: genesis-data, ${shlibs:Depends}, ${misc:Depends} +Replaces: genesis-data (<< 2.2.1-7) +Suggests: menu (>= 1.5) +Description: general-purpose neural simulator + GENESIS is a general purpose simulation platform which was developed to + support the simulation of neural systems ranging from complex models of + single neurons to simulations of large networks made up of more abstract + neuronal components. + . + GENESIS has provided the basis for laboratory courses in neural simulation + at both Caltech and the Marine Biological Laboratory in Woods Hole, MA. + Most current GENESIS applications involve realistic simulations of + biological neural systems. Although the software can also model more + abstract networks, other simulators are more suitable for backpropagation + and similar connectionist modeling. + +Package: genesis-data +Architecture: all +Depends: ${misc:Depends} +Replaces: genesis (<< 2.2.1-7) +Description: scripts and documentation for genesis + GENESIS is a general purpose simulation platform which was developed to + support the simulation of neural systems ranging from complex models of + single neurons to simulations of large networks made up of more abstract + neuronal components. + . + This package contains scripts and documentations needed by GENESIS. For more + information, please refer to the genesis package. --- genesis-2.2.1.orig/debian/menu +++ genesis-2.2.1/debian/menu @@ -0,0 +1,2 @@ +?package(genesis): needs="text" section="Apps/Math" \ + title="GENESIS" command="/usr/bin/genesis" --- genesis-2.2.1.orig/debian/genesis.desktop +++ genesis-2.2.1/debian/genesis.desktop @@ -0,0 +1,11 @@ +[Desktop Entry] +Version=1.0 +Encoding=UTF-8 +Name=GENESIS Neural Simulator +GenericName=Neural Simulator +Comment=Simulate different types of neural systems +Type=Application +Exec=genesis +Icon=genesis +Terminal=true +Categories=Application;Science;Biology;Education; --- genesis-2.2.1.orig/debian/compress +++ genesis-2.2.1/debian/compress @@ -0,0 +1,13 @@ +#!/bin/sh + +# Files that begin with lower case letters appear to belong to the +# GENESIS on-line help system, and cannot be read compressed, so we only +# compress the ASCII documentation + +find usr/share/doc/genesis -maxdepth 1 \ + \( -name '[A-Z]*' -o -name changelog -o -name changelog.Debian \) \ + ! -name "*.htm*" ! -name "*.gif" ! -iname "*.gz" \ + ! -iname "*.taz" ! -iname "*.tgz" ! -iname "*.z" \ + ! -name "copyright" + +find usr/share/man -type f \! -name '*.gz' --- genesis-2.2.1.orig/debian/genesis-data.preinst +++ genesis-2.2.1/debian/genesis-data.preinst @@ -0,0 +1,9 @@ +#!/bin/sh + +# Transition for foo/foo-data dependency swap +if [ -L /usr/share/doc/genesis-data ]; then + rm -f /usr/share/doc/genesis-data +fi + +#DEBHELPER# + --- genesis-2.2.1.orig/debian/genesis.1 +++ genesis-2.2.1/debian/genesis.1 @@ -0,0 +1,46 @@ +.TH GENESIS 1 "June 1999" "Debian Project" \" -*- nroff -*- +.SH NAME +genesis \- GEneral NEural SImulation System +.SH SYNOPSIS +.B genesis +.I "[simulation]" +.SH DESCRIPTION +This manual page was written for the Debian GNU/Linux distribution +because the original program does not have a manual page. Instead, it +has ASCII and HTML documentation (installed in /usr/share/doc/genesis). +.PP +.B GENESIS +is a general purpose simulation platform which was developed to +support the simulation of neural systems ranging from complex models +of single neurons to simulations of large networks made up of more +abstract neuronal components. GENESIS has provided the basis for +laboratory courses in neural simulation at both Caltech and the Marine +Biological Laboratory in Woods Hole, MA. Most current GENESIS +applications involve realistic simulations of biological neural +systems. Although the software can also model more abstract networks, +other simulators are more suitable for backpropagation and similar +connectionist modeling. +.SH OPTIONS +You may specify the name of a simulation to load (usually from a file +ending with a '.g' extension). +.B GENESIS +will search the current directory, and all directories in your +.B SIMPATH. +(set in +.B .simrc +) +.SH FILES +.TP +.B .simrc +GENESIS will search your home directory and the current directory for +a '.simrc' file, containing some configuration parameters (most +notably its search paths). You can copy one with reasonable defaults +from +.B /usr/share/genesis/startup/simrc +.SH "SEE ALSO" +The programs are documented fully by the reference manual, available +in +.B /usr/share/doc/genesis +.SH AUTHOR +This manual page was written by Matt Zimmerman , +for the Debian GNU/Linux system (but may be used by others). --- genesis-2.2.1.orig/debian/scripts/genesis +++ genesis-2.2.1/debian/scripts/genesis @@ -0,0 +1,8 @@ +#!/bin/sh + +if [ ! -f ~/.simrc ]; then + cp /usr/share/genesis/startup/simrc ~/.simrc >/dev/null 2>&1 +fi + +/usr/lib/genesis/genesis "$@" + --- genesis-2.2.1.orig/debian/patches/100_yacc.diff +++ genesis-2.2.1/debian/patches/100_yacc.diff @@ -0,0 +1,2984 @@ +--- genesis-2.2.1.orig/src/convert/script.y ++++ genesis-2.2.1/src/convert/script.y +@@ -90,6 +90,14 @@ + + %} + ++%union { ++ int iconst; ++ double fconst; ++ char *str; ++ ParseNode *pn; ++ expr_t expr; ++} ++ + %nonassoc LT LE GT GE EQ NE + %left '!' + %left OR AND +@@ -937,7 +945,6 @@ + $$.t = $2.t; + $$.s = Combine("(", $2.s, ")", NULL); + } +- ; + + %% + +--- genesis-2.2.1.orig/src/convert/y.tab.c ++++ genesis-2.2.1/src/convert/y.tab.c +@@ -0,0 +1,2807 @@ ++/* A Bison parser, made by GNU Bison 1.875a. */ ++ ++/* Skeleton parser for Yacc-like parsing with Bison, ++ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. ++ ++ This program 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 2, 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, write to the Free Software ++ Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* As a special exception, when this file is copied by Bison into a ++ Bison output file, you may use that output file without restriction. ++ This special exception was added by the Free Software Foundation ++ in version 1.24 of Bison. */ ++ ++/* Written by Richard Stallman by simplifying the original so called ++ ``semantic'' parser. */ ++ ++/* All symbols defined below should begin with yy or YY, to avoid ++ infringing on user name space. This should be done even for local ++ variables, as they might otherwise be expanded by user macros. ++ There are some unavoidable exceptions within include files to ++ define necessary library symbols; they are noted "INFRINGES ON ++ USER NAME SPACE" below. */ ++ ++/* Identify Bison output. */ ++#define YYBISON 1 ++ ++/* Skeleton name. */ ++#define YYSKELETON_NAME "yacc.c" ++ ++/* Pure parsers. */ ++#define YYPURE 0 ++ ++/* Using locations. */ ++#define YYLSP_NEEDED 0 ++ ++ ++ ++/* Tokens. */ ++#ifndef YYTOKENTYPE ++# define YYTOKENTYPE ++ /* Put the tokens into the symbol table, so that GDB and other debuggers ++ know about them. */ ++ enum yytokentype { ++ NE = 258, ++ EQ = 259, ++ GE = 260, ++ GT = 261, ++ LE = 262, ++ LT = 263, ++ AND = 264, ++ OR = 265, ++ UMINUS = 266, ++ WHILE = 267, ++ IF = 268, ++ ELSE = 269, ++ FOR = 270, ++ FOREACH = 271, ++ END = 272, ++ INCLUDE = 273, ++ ENDSCRIPT = 274, ++ BREAK = 275, ++ INT = 276, ++ FLOAT = 277, ++ STR = 278, ++ RETURN = 279, ++ WHITESPACE = 280, ++ FUNCTION = 281, ++ INTCONST = 282, ++ DOLLARARG = 283, ++ FLOATCONST = 284, ++ STRCONST = 285, ++ LITERAL = 286, ++ IDENT = 287, ++ VARREF = 288, ++ FUNCREF = 289, ++ EXTERN = 290, ++ SL = 291, ++ COMMAND = 292, ++ ARGUMENT = 293, ++ ARGLIST = 294, ++ LOCREF = 295, ++ ICAST = 296, ++ FCAST = 297, ++ SCAST = 298 ++ }; ++#endif ++#define NE 258 ++#define EQ 259 ++#define GE 260 ++#define GT 261 ++#define LE 262 ++#define LT 263 ++#define AND 264 ++#define OR 265 ++#define UMINUS 266 ++#define WHILE 267 ++#define IF 268 ++#define ELSE 269 ++#define FOR 270 ++#define FOREACH 271 ++#define END 272 ++#define INCLUDE 273 ++#define ENDSCRIPT 274 ++#define BREAK 275 ++#define INT 276 ++#define FLOAT 277 ++#define STR 278 ++#define RETURN 279 ++#define WHITESPACE 280 ++#define FUNCTION 281 ++#define INTCONST 282 ++#define DOLLARARG 283 ++#define FLOATCONST 284 ++#define STRCONST 285 ++#define LITERAL 286 ++#define IDENT 287 ++#define VARREF 288 ++#define FUNCREF 289 ++#define EXTERN 290 ++#define SL 291 ++#define COMMAND 292 ++#define ARGUMENT 293 ++#define ARGLIST 294 ++#define LOCREF 295 ++#define ICAST 296 ++#define FCAST 297 ++#define SCAST 298 ++ ++ ++ ++ ++/* Copy the first part of user declarations. */ ++#line 1 "script.y" ++ ++static char parsercsid[] = "$Id: script.y,v 1.9 2003/03/28 21:07:05 gen-dbeeman Exp $"; ++ ++/* ++** $Log: script.y,v $ ++** Revision 1.9 2003/03/28 21:07:05 gen-dbeeman ++** Fix from Mike Vanier Jan 2003 to fix problem with bison ver. 1.75 ++** ++** Revision 1.8 2001/04/18 22:39:36 mhucka ++** Miscellaneous portability fixes, mainly for SGI IRIX. ++** ++** Revision 1.7 1997/06/12 22:50:55 dhb ++** Added include of string.h for strlen() declaration needed by ++** included lexer code. ++** ++** Revision 1.6 1996/07/15 23:19:00 venkat ++** Added preprocessor macros to deal with the order of the include lex.yy.c ++** statement and the definitions of the macros used in it, for the DEC/alpha ++** ++ * Revision 1.5 1995/06/16 05:57:12 dhb ++ * FreeBSD compatibility. ++ * ++ * Revision 1.4 1995/04/29 01:18:16 dhb ++ * Moved include of lex.yy.c back to original location. Previous ++ * problem is fixed by extern void exit() in script.l. ++ * ++ * Fixed bug in call to SymtabLook() call where a Symtab rather than ++ * a Symtab* was passed. ++ * ++ * Revision 1.3 1995/04/15 02:26:28 dhb ++ * Moved include of lex.yy.c after the parse rules to work around SGI ++ * yacc misplacement of include statements. ++ * ++ * Revision 1.2 1995/04/14 01:03:20 dhb ++ * Null change to force patch and reprocessing by yacc. ++ * ++ * Revision 1.1 1995/01/13 01:09:48 dhb ++ * Initial revision ++ * ++ * Revision 1.1 1992/12/11 21:19:07 dhb ++ ** ++ ** This file is from GENESIS 1.4.1 ++ ** ++ * Initial revision ++ * ++*/ ++ ++#define YYDEBUG 1 ++ ++#include ++#include ++#include ++#include "parse.h" ++#include "symtab.h" ++ ++/* ++** General declarations. ++*/ ++extern char *strsave(); ++ ++/* ++** Parser routines which return something other than int. ++*/ ++ ++extern vardef(); ++extern char *TokenStr(); ++ ++extern char* Combine(); ++extern char* ArgListToStr(); ++extern char** AllocateArgList(); ++ ++/* ++** Parser global variables ++*/ ++ ++extern jmp_buf BreakBuf; /* Used to break out of a loop */ ++extern jmp_buf ReturnBuf; /* Used to return out of a script */ ++ ++static int DefType; /* Remembers type in a var decl */ ++static int DefCast; /* Remembers cast in a var decl */ ++static int BreakAllowed = 0; /* In a loop control structure */ ++static int ReturnIdents = 0; /* 1 ==> lexer doesn't classify IDENTs */ ++static int Compiling = 0; /* Make a statement list rather than execute */ ++static int InFunctionDefinition = 0; ++static int NextLocal; /* Next local symbol offset */ ++static int ArgMatch; /* Matches argument number to name in func */ ++Symtab GlobalSymbols; /* Symbols defined outside a function */ ++static Symtab *LocalSymbols = NULL; /* Symbols local to a function */ ++static ResultValue RV; /* Dummy ReturnValue for PTNew */ ++ ++#line 122 "script.y" ++ ++ ++#if !defined(decalpha) || defined(bison) ++/* ++** Start of lexical analyzer. LEX source is in "script.l". ++*/ ++ ++extern YYSTYPE yylval; ++ ++#ifdef __FreeBSD__ ++#include "y.tab.h" ++#endif ++ ++#include "lex.yy.c" ++ ++#endif ++ ++ ++/* Enabling traces. */ ++#ifndef YYDEBUG ++# define YYDEBUG 0 ++#endif ++ ++/* Enabling verbose error messages. */ ++#ifdef YYERROR_VERBOSE ++# undef YYERROR_VERBOSE ++# define YYERROR_VERBOSE 1 ++#else ++# define YYERROR_VERBOSE 0 ++#endif ++ ++#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) ++typedef int YYSTYPE; ++# define yystype YYSTYPE /* obsolescent; will be withdrawn */ ++# define YYSTYPE_IS_DECLARED 1 ++# define YYSTYPE_IS_TRIVIAL 1 ++#endif ++ ++ ++ ++/* Copy the second part of user declarations. */ ++ ++ ++/* Line 214 of yacc.c. */ ++#line 282 "y.tab.c" ++ ++#if ! defined (yyoverflow) || YYERROR_VERBOSE ++ ++/* The parser invokes alloca or malloc; define the necessary symbols. */ ++ ++# if YYSTACK_USE_ALLOCA ++# define YYSTACK_ALLOC alloca ++# else ++# ifndef YYSTACK_USE_ALLOCA ++# if defined (alloca) || defined (_ALLOCA_H) ++# define YYSTACK_ALLOC alloca ++# else ++# ifdef __GNUC__ ++# define YYSTACK_ALLOC __builtin_alloca ++# endif ++# endif ++# endif ++# endif ++ ++# ifdef YYSTACK_ALLOC ++ /* Pacify GCC's `empty if-body' warning. */ ++# define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) ++# else ++# if defined (__STDC__) || defined (__cplusplus) ++# include /* INFRINGES ON USER NAME SPACE */ ++# define YYSIZE_T size_t ++# endif ++# define YYSTACK_ALLOC malloc ++# define YYSTACK_FREE free ++# endif ++#endif /* ! defined (yyoverflow) || YYERROR_VERBOSE */ ++ ++ ++#if (! defined (yyoverflow) \ ++ && (! defined (__cplusplus) \ ++ || (YYSTYPE_IS_TRIVIAL))) ++ ++/* A type that is properly aligned for any stack member. */ ++union yyalloc ++{ ++ short yyss; ++ YYSTYPE yyvs; ++ }; ++ ++/* The size of the maximum gap between one aligned stack and the next. */ ++# define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) ++ ++/* The size of an array large to enough to hold all stacks, each with ++ N elements. */ ++# define YYSTACK_BYTES(N) \ ++ ((N) * (sizeof (short) + sizeof (YYSTYPE)) \ ++ + YYSTACK_GAP_MAXIMUM) ++ ++/* Copy COUNT objects from FROM to TO. The source and destination do ++ not overlap. */ ++# ifndef YYCOPY ++# if 1 < __GNUC__ ++# define YYCOPY(To, From, Count) \ ++ __builtin_memcpy (To, From, (Count) * sizeof (*(From))) ++# else ++# define YYCOPY(To, From, Count) \ ++ do \ ++ { \ ++ register YYSIZE_T yyi; \ ++ for (yyi = 0; yyi < (Count); yyi++) \ ++ (To)[yyi] = (From)[yyi]; \ ++ } \ ++ while (0) ++# endif ++# endif ++ ++/* Relocate STACK from its old location to the new one. The ++ local variables YYSIZE and YYSTACKSIZE give the old and new number of ++ elements in the stack, and YYPTR gives the new location of the ++ stack. Advance YYPTR to a properly aligned location for the next ++ stack. */ ++# define YYSTACK_RELOCATE(Stack) \ ++ do \ ++ { \ ++ YYSIZE_T yynewbytes; \ ++ YYCOPY (&yyptr->Stack, Stack, yysize); \ ++ Stack = &yyptr->Stack; \ ++ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ ++ yyptr += yynewbytes / sizeof (*yyptr); \ ++ } \ ++ while (0) ++ ++#endif ++ ++#if defined (__STDC__) || defined (__cplusplus) ++ typedef signed char yysigned_char; ++#else ++ typedef short yysigned_char; ++#endif ++ ++/* YYFINAL -- State number of the termination state. */ ++#define YYFINAL 3 ++/* YYLAST -- Last index in YYTABLE. */ ++#define YYLAST 471 ++ ++/* YYNTOKENS -- Number of terminals. */ ++#define YYNTOKENS 62 ++/* YYNNTS -- Number of nonterminals. */ ++#define YYNNTS 62 ++/* YYNRULES -- Number of rules. */ ++#define YYNRULES 131 ++/* YYNRULES -- Number of states. */ ++#define YYNSTATES 224 ++ ++/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ ++#define YYUNDEFTOK 2 ++#define YYMAXUTOK 298 ++ ++#define YYTRANSLATE(YYX) \ ++ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) ++ ++/* YYTRANSLATE[YYLEX] -- Bison symbol number corresponding to YYLEX. */ ++static const unsigned char yytranslate[] = ++{ ++ 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 54, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 9, 2, 2, 2, 19, 14, 2, ++ 56, 57, 17, 12, 59, 13, 2, 18, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 55, ++ 2, 58, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 16, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 60, 15, 61, 20, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, ++ 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, ++ 5, 6, 7, 8, 10, 11, 21, 22, 23, 24, ++ 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, ++ 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, ++ 45, 46, 47, 48, 49, 50, 51, 52, 53 ++}; ++ ++#if YYDEBUG ++/* YYPRHS[YYN] -- Index of the first RHS symbol of rule number YYN in ++ YYRHS. */ ++static const unsigned short yyprhs[] = ++{ ++ 0, 0, 3, 5, 6, 10, 12, 14, 16, 18, ++ 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, ++ 40, 42, 44, 46, 47, 55, 56, 68, 69, 70, ++ 82, 83, 92, 93, 94, 98, 102, 103, 108, 113, ++ 116, 117, 119, 120, 124, 125, 130, 137, 139, 146, ++ 147, 152, 153, 157, 159, 163, 164, 166, 168, 171, ++ 173, 179, 180, 182, 184, 187, 189, 191, 193, 194, ++ 195, 201, 204, 207, 210, 213, 214, 215, 222, 223, ++ 224, 229, 231, 235, 237, 239, 241, 244, 246, 247, ++ 252, 253, 257, 258, 261, 263, 266, 268, 269, 273, ++ 277, 281, 284, 288, 292, 296, 300, 304, 307, 311, ++ 315, 318, 322, 326, 330, 334, 338, 342, 343, 344, ++ 353, 354, 355, 364, 366, 368, 370, 372, 374, 376, ++ 378, 382 ++}; ++ ++/* YYRHS -- A `-1'-separated list of the rules' RHS. */ ++static const yysigned_char yyrhs[] = ++{ ++ 63, 0, -1, 64, -1, -1, 64, 66, 65, -1, ++ 54, -1, 55, -1, 68, -1, 70, -1, 72, -1, ++ 75, -1, 79, -1, 82, -1, 67, -1, 86, -1, ++ 89, -1, 103, -1, 101, -1, 110, -1, 116, -1, ++ 117, -1, 118, -1, 29, -1, -1, 22, 56, 119, ++ 57, 69, 64, 27, -1, -1, 25, 56, 79, 55, ++ 119, 55, 79, 57, 71, 64, 27, -1, -1, -1, ++ 26, 43, 56, 73, 96, 92, 96, 74, 57, 64, ++ 27, -1, -1, 23, 56, 119, 57, 76, 64, 77, ++ 27, -1, -1, -1, 24, 78, 64, -1, 43, 58, ++ 119, -1, -1, 28, 81, 96, 41, -1, 80, 35, ++ 92, 96, -1, 80, 96, -1, -1, 41, -1, -1, ++ 42, 85, 83, -1, -1, 84, 87, 91, 96, -1, ++ 84, 56, 93, 95, 93, 57, -1, 44, -1, 88, ++ 56, 93, 95, 93, 57, -1, -1, 88, 90, 91, ++ 96, -1, -1, 91, 94, 97, -1, 97, -1, 92, ++ 94, 97, -1, -1, 94, -1, 35, -1, 94, 35, ++ -1, 97, -1, 95, 93, 59, 93, 97, -1, -1, ++ 35, -1, 98, -1, 97, 98, -1, 41, -1, 40, ++ -1, 38, -1, -1, -1, 60, 99, 119, 100, 61, ++ -1, 45, 42, -1, 45, 44, -1, 36, 42, -1, ++ 36, 44, -1, -1, -1, 102, 104, 106, 105, 64, ++ 27, -1, -1, -1, 56, 107, 108, 57, -1, 42, ++ -1, 108, 59, 42, -1, 31, -1, 32, -1, 33, ++ -1, 109, 111, -1, 113, -1, -1, 111, 59, 112, ++ 113, -1, -1, 42, 114, 115, -1, -1, 58, 119, ++ -1, 30, -1, 34, 119, -1, 34, -1, -1, 119, ++ 15, 119, -1, 119, 14, 119, -1, 119, 16, 119, ++ -1, 20, 119, -1, 119, 12, 119, -1, 119, 13, ++ 119, -1, 119, 17, 119, -1, 119, 18, 119, -1, ++ 119, 19, 119, -1, 13, 119, -1, 119, 11, 119, ++ -1, 119, 10, 119, -1, 9, 119, -1, 119, 8, ++ 119, -1, 119, 7, 119, -1, 119, 6, 119, -1, ++ 119, 5, 119, -1, 119, 4, 119, -1, 119, 3, ++ 119, -1, -1, -1, 42, 56, 120, 93, 95, 93, ++ 121, 57, -1, -1, -1, 44, 56, 122, 93, 95, ++ 93, 123, 57, -1, 43, -1, 44, -1, 42, -1, ++ 39, -1, 37, -1, 40, -1, 38, -1, 60, 119, ++ 61, -1, 56, 119, 57, -1 ++}; ++ ++/* YYRLINE[YYN] -- source line where rule number YYN was defined. */ ++static const unsigned short yyrline[] = ++{ ++ 0, 142, 142, 146, 149, 156, 160, 166, 167, 168, ++ 169, 170, 175, 176, 177, 182, 187, 188, 189, 190, ++ 191, 192, 195, 202, 201, 214, 213, 227, 233, 226, ++ 246, 245, 258, 262, 261, 267, 274, 273, 284, 289, ++ 296, 299, 306, 305, 321, 320, 353, 384, 391, 403, ++ 402, 420, 427, 438, 447, 458, 459, 462, 463, 466, ++ 475, 486, 487, 490, 494, 500, 504, 508, 513, 517, ++ 512, 536, 551, 558, 584, 609, 615, 608, 630, 632, ++ 631, 642, 647, 654, 661, 668, 677, 685, 687, 686, ++ 697, 696, 711, 714, 720, 727, 732, 740, 743, 745, ++ 747, 749, 752, 765, 767, 769, 771, 773, 776, 778, ++ 780, 783, 785, 787, 789, 791, 793, 797, 801, 796, ++ 843, 847, 842, 856, 868, 874, 906, 911, 916, 922, ++ 928, 935 ++}; ++#endif ++ ++#if YYDEBUG || YYERROR_VERBOSE ++/* YYTNME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. ++ First, the terminals, then, starting at YYNTOKENS, nonterminals. */ ++static const char *const yytname[] = ++{ ++ "$end", "error", "$undefined", "NE", "EQ", "GE", "GT", "LE", "LT", "'!'", ++ "AND", "OR", "'+'", "'-'", "'&'", "'|'", "'^'", "'*'", "'/'", "'%'", ++ "'~'", "UMINUS", "WHILE", "IF", "ELSE", "FOR", "FOREACH", "END", ++ "INCLUDE", "ENDSCRIPT", "BREAK", "INT", "FLOAT", "STR", "RETURN", ++ "WHITESPACE", "FUNCTION", "INTCONST", "DOLLARARG", "FLOATCONST", ++ "STRCONST", "LITERAL", "IDENT", "VARREF", "FUNCREF", "EXTERN", "SL", ++ "COMMAND", "ARGUMENT", "ARGLIST", "LOCREF", "ICAST", "FCAST", "SCAST", ++ "'\\n'", "';'", "'('", "')'", "'='", "','", "'{'", "'}'", "$accept", ++ "script", "statement_list", "stmnt_terminator", "statement", ++ "endscript_marker", "while_stmnt", "@1", "for_stmnt", "@2", ++ "foreach_stmnt", "@3", "@4", "if_stmnt", "@5", "else_clause", "@6", ++ "assign_stmnt", "include_hdr", "@7", "include_stmnt", "opt_node", ++ "cmd_name", "@8", "cmd_stmnt", "@9", "funcref", "func_call", "@10", ++ "opt_arg_list", "arg_list", "optwslist", "wslist", "func_call_list", ++ "ws", "arg_component_list", "arg_component", "@11", "@12", "ext_func", ++ "func_hdr", "func_def", "@13", "@14", "func_args", "@15", ++ "func_arg_list", "decl_type", "decl_stmnt", "decl_list", "@16", ++ "decl_ident", "@17", "init", "break_stmnt", "return_stmnt", ++ "null_stmnt", "expr", "@18", "@19", "@20", "@21", 0 ++}; ++#endif ++ ++# ifdef YYPRINT ++/* YYTOKNUM[YYLEX-NUM] -- Internal token number corresponding to ++ token YYLEX-NUM. */ ++static const unsigned short yytoknum[] = ++{ ++ 0, 256, 257, 258, 259, 260, 261, 262, 263, 33, ++ 264, 265, 43, 45, 38, 124, 94, 42, 47, 37, ++ 126, 266, 267, 268, 269, 270, 271, 272, 273, 274, ++ 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, ++ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, ++ 295, 296, 297, 298, 10, 59, 40, 41, 61, 44, ++ 123, 125 ++}; ++# endif ++ ++/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ ++static const unsigned char yyr1[] = ++{ ++ 0, 62, 63, 64, 64, 65, 65, 66, 66, 66, ++ 66, 66, 66, 66, 66, 66, 66, 66, 66, 66, ++ 66, 66, 67, 69, 68, 71, 70, 73, 74, 72, ++ 76, 75, 77, 78, 77, 79, 81, 80, 82, 82, ++ 83, 83, 85, 84, 87, 86, 86, 88, 89, 90, ++ 89, 91, 91, 92, 92, 93, 93, 94, 94, 95, ++ 95, 96, 96, 97, 97, 98, 98, 98, 99, 100, ++ 98, 101, 101, 102, 102, 104, 105, 103, 106, 107, ++ 106, 108, 108, 109, 109, 109, 110, 111, 112, 111, ++ 114, 113, 115, 115, 116, 117, 117, 118, 119, 119, ++ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, ++ 119, 119, 119, 119, 119, 119, 119, 120, 121, 119, ++ 122, 123, 119, 119, 119, 119, 119, 119, 119, 119, ++ 119, 119 ++}; ++ ++/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ ++static const unsigned char yyr2[] = ++{ ++ 0, 2, 1, 0, 3, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 0, 7, 0, 11, 0, 0, 11, ++ 0, 8, 0, 0, 3, 3, 0, 4, 4, 2, ++ 0, 1, 0, 3, 0, 4, 6, 1, 6, 0, ++ 4, 0, 3, 1, 3, 0, 1, 1, 2, 1, ++ 5, 0, 1, 1, 2, 1, 1, 1, 0, 0, ++ 5, 2, 2, 2, 2, 0, 0, 6, 0, 0, ++ 4, 1, 3, 1, 1, 1, 2, 1, 0, 4, ++ 0, 3, 0, 2, 1, 2, 1, 0, 3, 3, ++ 3, 2, 3, 3, 3, 3, 3, 2, 3, 3, ++ 2, 3, 3, 3, 3, 3, 3, 0, 0, 8, ++ 0, 0, 8, 1, 1, 1, 1, 1, 1, 1, ++ 3, 3 ++}; ++ ++/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state ++ STATE-NUM when YYTABLE doesn't specify something else to do. Zero ++ means the default is an error. */ ++static const unsigned char yydefact[] = ++{ ++ 3, 0, 97, 1, 0, 0, 0, 0, 36, 22, ++ 94, 83, 84, 85, 96, 0, 42, 0, 47, 0, ++ 0, 13, 7, 8, 9, 10, 11, 61, 12, 44, ++ 14, 49, 15, 17, 75, 16, 0, 18, 19, 20, ++ 21, 0, 0, 0, 0, 61, 0, 0, 0, 127, ++ 129, 126, 128, 125, 123, 124, 0, 0, 95, 73, ++ 74, 40, 0, 71, 72, 5, 6, 4, 62, 39, ++ 55, 51, 55, 51, 78, 90, 86, 87, 0, 0, ++ 0, 27, 62, 0, 110, 107, 101, 117, 120, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 41, 43, 35, ++ 67, 66, 65, 68, 61, 53, 63, 57, 0, 56, ++ 61, 0, 61, 79, 76, 92, 88, 23, 30, 0, ++ 61, 37, 55, 55, 131, 130, 116, 115, 114, 113, ++ 112, 111, 109, 108, 102, 103, 99, 98, 100, 104, ++ 105, 106, 0, 57, 0, 38, 64, 55, 59, 58, ++ 0, 45, 55, 50, 0, 3, 0, 91, 0, 3, ++ 3, 0, 0, 0, 0, 69, 54, 0, 52, 0, ++ 81, 0, 97, 93, 89, 97, 97, 0, 61, 55, ++ 55, 0, 46, 55, 48, 80, 0, 77, 24, 33, ++ 0, 0, 28, 118, 121, 70, 0, 82, 3, 31, ++ 25, 0, 0, 0, 60, 97, 3, 3, 119, 122, ++ 97, 97, 26, 29 ++}; ++ ++/* YYDEFGOTO[NTERM-NUM]. */ ++static const short yydefgoto[] = ++{ ++ -1, 1, 2, 67, 20, 21, 22, 169, 23, 216, ++ 24, 130, 211, 25, 170, 200, 208, 26, 27, 45, ++ 28, 108, 29, 61, 30, 71, 31, 32, 73, 120, ++ 114, 118, 119, 157, 69, 158, 116, 152, 191, 33, ++ 34, 35, 74, 165, 124, 164, 181, 36, 37, 76, ++ 168, 77, 125, 167, 38, 39, 40, 58, 132, 212, ++ 133, 213 ++}; ++ ++/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing ++ STATE-NUM. */ ++#define YYPACT_NINF -107 ++static const short yypact[] = ++{ ++ -107, 2, 248, -107, -44, -38, -35, -21, -107, -107, ++ -107, -107, -107, -107, 207, -27, -107, -32, -107, 35, ++ -48, -107, -107, -107, -107, -107, -107, 3, -107, -25, ++ -107, 14, -107, -107, -107, -107, 10, -107, -107, -107, ++ -107, 207, 207, 52, 43, 65, 207, 207, 207, -107, ++ -107, -107, -107, 72, -107, 80, 207, 207, 435, -107, ++ -107, 91, 207, -107, -107, -107, -107, -107, 66, -107, ++ 73, -107, 73, -107, 81, -107, 79, -107, 106, 154, ++ 86, -107, -107, 101, 219, -107, -107, -107, -107, 171, ++ 29, 207, 207, 207, 207, 207, 207, 207, 207, 207, ++ 207, 207, 207, 207, 207, 207, 207, -107, -107, 435, ++ -107, -107, -107, -107, 108, 66, -107, -107, 66, 110, ++ 108, 66, 108, -107, -107, 89, -107, -107, -107, 207, ++ 65, -107, 73, 73, -107, -107, 452, 452, 452, 452, ++ 452, 452, 240, 240, 67, 67, 67, 67, 67, -107, ++ -107, -107, 207, -4, -11, -107, -107, 73, 66, -107, ++ -11, -107, 73, -107, 109, -107, 207, -107, 10, -107, ++ -107, 188, 66, 66, 66, 435, 66, 24, 66, 37, ++ -107, 76, 296, 435, -107, 320, 272, 52, 108, 73, ++ 73, 92, -107, 73, -107, -107, 112, -107, -107, -107, ++ 123, 95, -107, 96, 96, -107, 66, -107, -107, -107, ++ -107, 99, 140, 151, 66, 344, -107, -107, -107, -107, ++ 368, 392, -107, -107 ++}; ++ ++/* YYPGOTO[NTERM-NUM]. */ ++static const yysigned_char yypgoto[] = ++{ ++ -107, -107, -68, -107, -107, -107, -107, -107, -107, -107, ++ -107, -107, -107, -107, -107, -107, -107, -43, -107, -107, ++ -107, -107, -107, -107, -107, -107, -107, -107, -107, 107, ++ 38, -59, -106, -98, -42, -67, -87, -107, -107, -107, ++ -107, -107, -107, -107, -107, -107, -107, -107, -107, -107, ++ -107, 41, -107, -107, -107, -107, -107, -37, -107, -107, ++ -107, -107 ++}; ++ ++/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If ++ positive, shift that token. If negative, reduce the rule which ++ number is the opposite. If zero, do what YYDEFACT says. ++ If YYTABLE_NINF, syntax error. */ ++#define YYTABLE_NINF -63 ++static const short yytable[] = ++{ ++ 80, 115, 3, 83, 78, 79, 65, 66, 154, 84, ++ 85, 86, 41, 121, 160, 59, 160, 60, 42, 89, ++ 90, 43, 44, 162, 159, 109, 62, 110, 156, 111, ++ 112, 70, 91, 92, 93, 94, 95, 96, 68, 97, ++ 98, 99, 100, 101, 102, 103, 104, 105, 106, 113, ++ -62, -62, 75, -62, 136, 137, 138, 139, 140, 141, ++ 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, ++ 72, 156, 155, 173, 174, 189, 190, 63, 161, 64, ++ 163, 192, 154, 193, 104, 105, 106, 176, 172, 156, ++ 135, 156, 171, 178, 194, 17, 193, 182, 177, 81, ++ 82, 185, 186, 179, 110, 115, 111, 112, 117, 91, ++ 92, 93, 94, 95, 96, 175, 97, 98, 99, 100, ++ 101, 102, 103, 104, 105, 106, 113, 156, 87, 183, ++ 203, 204, 107, 195, 206, 196, 88, 123, 126, 214, ++ 215, 129, 131, 153, 201, 159, 202, 166, 220, 221, ++ 209, 180, 210, 205, 207, 193, 217, 91, 92, 93, ++ 94, 95, 96, 127, 97, 98, 99, 100, 101, 102, ++ 103, 104, 105, 106, 91, 92, 93, 94, 95, 96, ++ 122, 97, 98, 99, 100, 101, 102, 103, 104, 105, ++ 106, 91, 92, 93, 94, 95, 96, 218, 97, 98, ++ 99, 100, 101, 102, 103, 104, 105, 106, 219, 184, ++ 188, 128, 0, 0, 0, 0, 46, 0, 0, 0, ++ 47, 0, 0, 0, 0, 0, 0, 48, 134, 97, ++ 98, 99, 100, 101, 102, 103, 104, 105, 106, 0, ++ 0, 0, 0, 187, 49, 50, 51, 52, -2, 53, ++ 54, 55, 99, 100, 101, 102, 103, 104, 105, 106, ++ 0, 0, 0, 56, 0, 0, 0, 57, 0, 0, ++ 4, 5, 0, 6, 7, 0, 8, 9, 10, 11, ++ 12, 13, 14, 0, 15, 0, 0, 0, 0, 0, ++ 16, 17, 18, 19, 4, 5, 199, 6, 7, -32, ++ 8, 9, 10, 11, 12, 13, 14, 0, 15, 0, ++ 0, 0, 0, 0, 16, 17, 18, 19, 4, 5, ++ 0, 6, 7, 197, 8, 9, 10, 11, 12, 13, ++ 14, 0, 15, 0, 0, 0, 0, 0, 16, 17, ++ 18, 19, 4, 5, 0, 6, 7, 198, 8, 9, ++ 10, 11, 12, 13, 14, 0, 15, 0, 0, 0, ++ 0, 0, 16, 17, 18, 19, 4, 5, 0, 6, ++ 7, -34, 8, 9, 10, 11, 12, 13, 14, 0, ++ 15, 0, 0, 0, 0, 0, 16, 17, 18, 19, ++ 4, 5, 0, 6, 7, 222, 8, 9, 10, 11, ++ 12, 13, 14, 0, 15, 0, 0, 0, 0, 0, ++ 16, 17, 18, 19, 4, 5, 0, 6, 7, 223, ++ 8, 9, 10, 11, 12, 13, 14, 0, 15, 0, ++ 0, 0, 0, 0, 16, 17, 18, 19, 91, 92, ++ 93, 94, 95, 96, 0, 97, 98, 99, 100, 101, ++ 102, 103, 104, 105, 106, -63, -63, -63, -63, -63, ++ -63, 0, 97, 98, 99, 100, 101, 102, 103, 104, ++ 105, 106 ++}; ++ ++static const short yycheck[] = ++{ ++ 43, 68, 0, 45, 41, 42, 54, 55, 114, 46, ++ 47, 48, 56, 72, 120, 42, 122, 44, 56, 56, ++ 57, 56, 43, 121, 35, 62, 58, 38, 115, 40, ++ 41, 56, 3, 4, 5, 6, 7, 8, 35, 10, ++ 11, 12, 13, 14, 15, 16, 17, 18, 19, 60, ++ 54, 55, 42, 57, 91, 92, 93, 94, 95, 96, ++ 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, ++ 56, 158, 114, 132, 133, 173, 174, 42, 120, 44, ++ 122, 57, 188, 59, 17, 18, 19, 154, 130, 176, ++ 61, 178, 129, 160, 57, 43, 59, 165, 157, 56, ++ 35, 169, 170, 162, 38, 172, 40, 41, 35, 3, ++ 4, 5, 6, 7, 8, 152, 10, 11, 12, 13, ++ 14, 15, 16, 17, 18, 19, 60, 214, 56, 166, ++ 189, 190, 41, 57, 193, 59, 56, 56, 59, 206, ++ 208, 55, 41, 35, 187, 35, 188, 58, 216, 217, ++ 27, 42, 57, 61, 42, 59, 57, 3, 4, 5, ++ 6, 7, 8, 57, 10, 11, 12, 13, 14, 15, ++ 16, 17, 18, 19, 3, 4, 5, 6, 7, 8, ++ 73, 10, 11, 12, 13, 14, 15, 16, 17, 18, ++ 19, 3, 4, 5, 6, 7, 8, 57, 10, 11, ++ 12, 13, 14, 15, 16, 17, 18, 19, 57, 168, ++ 172, 57, -1, -1, -1, -1, 9, -1, -1, -1, ++ 13, -1, -1, -1, -1, -1, -1, 20, 57, 10, ++ 11, 12, 13, 14, 15, 16, 17, 18, 19, -1, ++ -1, -1, -1, 55, 37, 38, 39, 40, 0, 42, ++ 43, 44, 12, 13, 14, 15, 16, 17, 18, 19, ++ -1, -1, -1, 56, -1, -1, -1, 60, -1, -1, ++ 22, 23, -1, 25, 26, -1, 28, 29, 30, 31, ++ 32, 33, 34, -1, 36, -1, -1, -1, -1, -1, ++ 42, 43, 44, 45, 22, 23, 24, 25, 26, 27, ++ 28, 29, 30, 31, 32, 33, 34, -1, 36, -1, ++ -1, -1, -1, -1, 42, 43, 44, 45, 22, 23, ++ -1, 25, 26, 27, 28, 29, 30, 31, 32, 33, ++ 34, -1, 36, -1, -1, -1, -1, -1, 42, 43, ++ 44, 45, 22, 23, -1, 25, 26, 27, 28, 29, ++ 30, 31, 32, 33, 34, -1, 36, -1, -1, -1, ++ -1, -1, 42, 43, 44, 45, 22, 23, -1, 25, ++ 26, 27, 28, 29, 30, 31, 32, 33, 34, -1, ++ 36, -1, -1, -1, -1, -1, 42, 43, 44, 45, ++ 22, 23, -1, 25, 26, 27, 28, 29, 30, 31, ++ 32, 33, 34, -1, 36, -1, -1, -1, -1, -1, ++ 42, 43, 44, 45, 22, 23, -1, 25, 26, 27, ++ 28, 29, 30, 31, 32, 33, 34, -1, 36, -1, ++ -1, -1, -1, -1, 42, 43, 44, 45, 3, 4, ++ 5, 6, 7, 8, -1, 10, 11, 12, 13, 14, ++ 15, 16, 17, 18, 19, 3, 4, 5, 6, 7, ++ 8, -1, 10, 11, 12, 13, 14, 15, 16, 17, ++ 18, 19 ++}; ++ ++/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing ++ symbol of state STATE-NUM. */ ++static const unsigned char yystos[] = ++{ ++ 0, 63, 64, 0, 22, 23, 25, 26, 28, 29, ++ 30, 31, 32, 33, 34, 36, 42, 43, 44, 45, ++ 66, 67, 68, 70, 72, 75, 79, 80, 82, 84, ++ 86, 88, 89, 101, 102, 103, 109, 110, 116, 117, ++ 118, 56, 56, 56, 43, 81, 9, 13, 20, 37, ++ 38, 39, 40, 42, 43, 44, 56, 60, 119, 42, ++ 44, 85, 58, 42, 44, 54, 55, 65, 35, 96, ++ 56, 87, 56, 90, 104, 42, 111, 113, 119, 119, ++ 79, 56, 35, 96, 119, 119, 119, 56, 56, 119, ++ 119, 3, 4, 5, 6, 7, 8, 10, 11, 12, ++ 13, 14, 15, 16, 17, 18, 19, 41, 83, 119, ++ 38, 40, 41, 60, 92, 97, 98, 35, 93, 94, ++ 91, 93, 91, 56, 106, 114, 59, 57, 57, 55, ++ 73, 41, 120, 122, 57, 61, 119, 119, 119, 119, ++ 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, ++ 119, 119, 99, 35, 94, 96, 98, 95, 97, 35, ++ 94, 96, 95, 96, 107, 105, 58, 115, 112, 69, ++ 76, 119, 96, 93, 93, 119, 97, 93, 97, 93, ++ 42, 108, 64, 119, 113, 64, 64, 55, 92, 95, ++ 95, 100, 57, 59, 57, 57, 59, 27, 27, 24, ++ 77, 79, 96, 93, 93, 61, 93, 42, 78, 27, ++ 57, 74, 121, 123, 97, 64, 71, 57, 57, 57, ++ 64, 64, 27, 27 ++}; ++ ++#if ! defined (YYSIZE_T) && defined (__SIZE_TYPE__) ++# define YYSIZE_T __SIZE_TYPE__ ++#endif ++#if ! defined (YYSIZE_T) && defined (size_t) ++# define YYSIZE_T size_t ++#endif ++#if ! defined (YYSIZE_T) ++# if defined (__STDC__) || defined (__cplusplus) ++# include /* INFRINGES ON USER NAME SPACE */ ++# define YYSIZE_T size_t ++# endif ++#endif ++#if ! defined (YYSIZE_T) ++# define YYSIZE_T unsigned int ++#endif ++ ++#define yyerrok (yyerrstatus = 0) ++#define yyclearin (yychar = YYEMPTY) ++#define YYEMPTY (-2) ++#define YYEOF 0 ++ ++#define YYACCEPT goto yyacceptlab ++#define YYABORT goto yyabortlab ++#define YYERROR goto yyerrlab1 ++ ++ ++/* Like YYERROR except do call yyerror. This remains here temporarily ++ to ease the transition to the new meaning of YYERROR, for GCC. ++ Once GCC version 2 has supplanted version 1, this can go. */ ++ ++#define YYFAIL goto yyerrlab ++ ++#define YYRECOVERING() (!!yyerrstatus) ++ ++#define YYBACKUP(Token, Value) \ ++do \ ++ if (yychar == YYEMPTY && yylen == 1) \ ++ { \ ++ yychar = (Token); \ ++ yylval = (Value); \ ++ yytoken = YYTRANSLATE (yychar); \ ++ YYPOPSTACK; \ ++ goto yybackup; \ ++ } \ ++ else \ ++ { \ ++ yyerror ("syntax error: cannot back up");\ ++ YYERROR; \ ++ } \ ++while (0) ++ ++#define YYTERROR 1 ++#define YYERRCODE 256 ++ ++/* YYLLOC_DEFAULT -- Compute the default location (before the actions ++ are run). */ ++ ++#ifndef YYLLOC_DEFAULT ++# define YYLLOC_DEFAULT(Current, Rhs, N) \ ++ Current.first_line = Rhs[1].first_line; \ ++ Current.first_column = Rhs[1].first_column; \ ++ Current.last_line = Rhs[N].last_line; \ ++ Current.last_column = Rhs[N].last_column; ++#endif ++ ++/* YYLEX -- calling `yylex' with the right arguments. */ ++ ++#ifdef YYLEX_PARAM ++# define YYLEX yylex (YYLEX_PARAM) ++#else ++# define YYLEX yylex () ++#endif ++ ++/* Enable debugging if requested. */ ++#if YYDEBUG ++ ++# ifndef YYFPRINTF ++# include /* INFRINGES ON USER NAME SPACE */ ++# define YYFPRINTF fprintf ++# endif ++ ++# define YYDPRINTF(Args) \ ++do { \ ++ if (yydebug) \ ++ YYFPRINTF Args; \ ++} while (0) ++ ++# define YYDSYMPRINT(Args) \ ++do { \ ++ if (yydebug) \ ++ yysymprint Args; \ ++} while (0) ++ ++# define YYDSYMPRINTF(Title, Token, Value, Location) \ ++do { \ ++ if (yydebug) \ ++ { \ ++ YYFPRINTF (stderr, "%s ", Title); \ ++ yysymprint (stderr, \ ++ Token, Value); \ ++ YYFPRINTF (stderr, "\n"); \ ++ } \ ++} while (0) ++ ++/*------------------------------------------------------------------. ++| yy_stack_print -- Print the state stack from its BOTTOM up to its | ++| TOP (cinluded). | ++`------------------------------------------------------------------*/ ++ ++#if defined (__STDC__) || defined (__cplusplus) ++static void ++yy_stack_print (short *bottom, short *top) ++#else ++static void ++yy_stack_print (bottom, top) ++ short *bottom; ++ short *top; ++#endif ++{ ++ YYFPRINTF (stderr, "Stack now"); ++ for (/* Nothing. */; bottom <= top; ++bottom) ++ YYFPRINTF (stderr, " %d", *bottom); ++ YYFPRINTF (stderr, "\n"); ++} ++ ++# define YY_STACK_PRINT(Bottom, Top) \ ++do { \ ++ if (yydebug) \ ++ yy_stack_print ((Bottom), (Top)); \ ++} while (0) ++ ++ ++/*------------------------------------------------. ++| Report that the YYRULE is going to be reduced. | ++`------------------------------------------------*/ ++ ++#if defined (__STDC__) || defined (__cplusplus) ++static void ++yy_reduce_print (int yyrule) ++#else ++static void ++yy_reduce_print (yyrule) ++ int yyrule; ++#endif ++{ ++ int yyi; ++ unsigned int yylineno = yyrline[yyrule]; ++ YYFPRINTF (stderr, "Reducing stack by rule %d (line %u), ", ++ yyrule - 1, yylineno); ++ /* Print the symbols being reduced, and their result. */ ++ for (yyi = yyprhs[yyrule]; 0 <= yyrhs[yyi]; yyi++) ++ YYFPRINTF (stderr, "%s ", yytname [yyrhs[yyi]]); ++ YYFPRINTF (stderr, "-> %s\n", yytname [yyr1[yyrule]]); ++} ++ ++# define YY_REDUCE_PRINT(Rule) \ ++do { \ ++ if (yydebug) \ ++ yy_reduce_print (Rule); \ ++} while (0) ++ ++/* Nonzero means print parse trace. It is left uninitialized so that ++ multiple parsers can coexist. */ ++int yydebug; ++#else /* !YYDEBUG */ ++# define YYDPRINTF(Args) ++# define YYDSYMPRINT(Args) ++# define YYDSYMPRINTF(Title, Token, Value, Location) ++# define YY_STACK_PRINT(Bottom, Top) ++# define YY_REDUCE_PRINT(Rule) ++#endif /* !YYDEBUG */ ++ ++ ++/* YYINITDEPTH -- initial size of the parser's stacks. */ ++#ifndef YYINITDEPTH ++# define YYINITDEPTH 200 ++#endif ++ ++/* YYMAXDEPTH -- maximum size the stacks can grow to (effective only ++ if the built-in stack extension method is used). ++ ++ Do not make this value too large; the results are undefined if ++ SIZE_MAX < YYSTACK_BYTES (YYMAXDEPTH) ++ evaluated with infinite-precision integer arithmetic. */ ++ ++#if YYMAXDEPTH == 0 ++# undef YYMAXDEPTH ++#endif ++ ++#ifndef YYMAXDEPTH ++# define YYMAXDEPTH 10000 ++#endif ++ ++ ++ ++#if YYERROR_VERBOSE ++ ++# ifndef yystrlen ++# if defined (__GLIBC__) && defined (_STRING_H) ++# define yystrlen strlen ++# else ++/* Return the length of YYSTR. */ ++static YYSIZE_T ++# if defined (__STDC__) || defined (__cplusplus) ++yystrlen (const char *yystr) ++# else ++yystrlen (yystr) ++ const char *yystr; ++# endif ++{ ++ register const char *yys = yystr; ++ ++ while (*yys++ != '\0') ++ continue; ++ ++ return yys - yystr - 1; ++} ++# endif ++# endif ++ ++# ifndef yystpcpy ++# if defined (__GLIBC__) && defined (_STRING_H) && defined (_GNU_SOURCE) ++# define yystpcpy stpcpy ++# else ++/* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in ++ YYDEST. */ ++static char * ++# if defined (__STDC__) || defined (__cplusplus) ++yystpcpy (char *yydest, const char *yysrc) ++# else ++yystpcpy (yydest, yysrc) ++ char *yydest; ++ const char *yysrc; ++# endif ++{ ++ register char *yyd = yydest; ++ register const char *yys = yysrc; ++ ++ while ((*yyd++ = *yys++) != '\0') ++ continue; ++ ++ return yyd - 1; ++} ++# endif ++# endif ++ ++#endif /* !YYERROR_VERBOSE */ ++ ++ ++ ++#if YYDEBUG ++/*--------------------------------. ++| Print this symbol on YYOUTPUT. | ++`--------------------------------*/ ++ ++#if defined (__STDC__) || defined (__cplusplus) ++static void ++yysymprint (FILE *yyoutput, int yytype, YYSTYPE *yyvaluep) ++#else ++static void ++yysymprint (yyoutput, yytype, yyvaluep) ++ FILE *yyoutput; ++ int yytype; ++ YYSTYPE *yyvaluep; ++#endif ++{ ++ /* Pacify ``unused variable'' warnings. */ ++ (void) yyvaluep; ++ ++ if (yytype < YYNTOKENS) ++ { ++ YYFPRINTF (yyoutput, "token %s (", yytname[yytype]); ++# ifdef YYPRINT ++ YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); ++# endif ++ } ++ else ++ YYFPRINTF (yyoutput, "nterm %s (", yytname[yytype]); ++ ++ switch (yytype) ++ { ++ default: ++ break; ++ } ++ YYFPRINTF (yyoutput, ")"); ++} ++ ++#endif /* ! YYDEBUG */ ++/*-----------------------------------------------. ++| Release the memory associated to this symbol. | ++`-----------------------------------------------*/ ++ ++#if defined (__STDC__) || defined (__cplusplus) ++static void ++yydestruct (int yytype, YYSTYPE *yyvaluep) ++#else ++static void ++yydestruct (yytype, yyvaluep) ++ int yytype; ++ YYSTYPE *yyvaluep; ++#endif ++{ ++ /* Pacify ``unused variable'' warnings. */ ++ (void) yyvaluep; ++ ++ switch (yytype) ++ { ++ ++ default: ++ break; ++ } ++} ++ ++ ++/* Prevent warnings from -Wmissing-prototypes. */ ++ ++#ifdef YYPARSE_PARAM ++# if defined (__STDC__) || defined (__cplusplus) ++int yyparse (void *YYPARSE_PARAM); ++# else ++int yyparse (); ++# endif ++#else /* ! YYPARSE_PARAM */ ++#if defined (__STDC__) || defined (__cplusplus) ++int yyparse (void); ++#else ++int yyparse (); ++#endif ++#endif /* ! YYPARSE_PARAM */ ++ ++ ++ ++/* The lookahead symbol. */ ++int yychar; ++ ++/* The semantic value of the lookahead symbol. */ ++YYSTYPE yylval; ++ ++/* Number of syntax errors so far. */ ++int yynerrs; ++ ++ ++ ++/*----------. ++| yyparse. | ++`----------*/ ++ ++#ifdef YYPARSE_PARAM ++# if defined (__STDC__) || defined (__cplusplus) ++int yyparse (void *YYPARSE_PARAM) ++# else ++int yyparse (YYPARSE_PARAM) ++ void *YYPARSE_PARAM; ++# endif ++#else /* ! YYPARSE_PARAM */ ++#if defined (__STDC__) || defined (__cplusplus) ++int ++yyparse (void) ++#else ++int ++yyparse () ++ ++#endif ++#endif ++{ ++ ++ register int yystate; ++ register int yyn; ++ int yyresult; ++ /* Number of tokens to shift before error messages enabled. */ ++ int yyerrstatus; ++ /* Lookahead token as an internal (translated) token number. */ ++ int yytoken = 0; ++ ++ /* Three stacks and their tools: ++ `yyss': related to states, ++ `yyvs': related to semantic values, ++ `yyls': related to locations. ++ ++ Refer to the stacks thru separate pointers, to allow yyoverflow ++ to reallocate them elsewhere. */ ++ ++ /* The state stack. */ ++ short yyssa[YYINITDEPTH]; ++ short *yyss = yyssa; ++ register short *yyssp; ++ ++ /* The semantic value stack. */ ++ YYSTYPE yyvsa[YYINITDEPTH]; ++ YYSTYPE *yyvs = yyvsa; ++ register YYSTYPE *yyvsp; ++ ++ ++ ++#define YYPOPSTACK (yyvsp--, yyssp--) ++ ++ YYSIZE_T yystacksize = YYINITDEPTH; ++ ++ /* The variables used to return semantic value and location from the ++ action routines. */ ++ YYSTYPE yyval; ++ ++ ++ /* When reducing, the number of symbols on the RHS of the reduced ++ rule. */ ++ int yylen; ++ ++ YYDPRINTF ((stderr, "Starting parse\n")); ++ ++ yystate = 0; ++ yyerrstatus = 0; ++ yynerrs = 0; ++ yychar = YYEMPTY; /* Cause a token to be read. */ ++ ++ /* Initialize stack pointers. ++ Waste one element of value and location stack ++ so that they stay on the same level as the state stack. ++ The wasted elements are never initialized. */ ++ ++ yyssp = yyss; ++ yyvsp = yyvs; ++ ++ goto yysetstate; ++ ++/*------------------------------------------------------------. ++| yynewstate -- Push a new state, which is found in yystate. | ++`------------------------------------------------------------*/ ++ yynewstate: ++ /* In all cases, when you get here, the value and location stacks ++ have just been pushed. so pushing a state here evens the stacks. ++ */ ++ yyssp++; ++ ++ yysetstate: ++ *yyssp = yystate; ++ ++ if (yyss + yystacksize - 1 <= yyssp) ++ { ++ /* Get the current used size of the three stacks, in elements. */ ++ YYSIZE_T yysize = yyssp - yyss + 1; ++ ++#ifdef yyoverflow ++ { ++ /* Give user a chance to reallocate the stack. Use copies of ++ these so that the &'s don't force the real ones into ++ memory. */ ++ YYSTYPE *yyvs1 = yyvs; ++ short *yyss1 = yyss; ++ ++ ++ /* Each stack pointer address is followed by the size of the ++ data in use in that stack, in bytes. This used to be a ++ conditional around just the two extra args, but that might ++ be undefined if yyoverflow is a macro. */ ++ yyoverflow ("parser stack overflow", ++ &yyss1, yysize * sizeof (*yyssp), ++ &yyvs1, yysize * sizeof (*yyvsp), ++ ++ &yystacksize); ++ ++ yyss = yyss1; ++ yyvs = yyvs1; ++ } ++#else /* no yyoverflow */ ++# ifndef YYSTACK_RELOCATE ++ goto yyoverflowlab; ++# else ++ /* Extend the stack our own way. */ ++ if (YYMAXDEPTH <= yystacksize) ++ goto yyoverflowlab; ++ yystacksize *= 2; ++ if (YYMAXDEPTH < yystacksize) ++ yystacksize = YYMAXDEPTH; ++ ++ { ++ short *yyss1 = yyss; ++ union yyalloc *yyptr = ++ (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); ++ if (! yyptr) ++ goto yyoverflowlab; ++ YYSTACK_RELOCATE (yyss); ++ YYSTACK_RELOCATE (yyvs); ++ ++# undef YYSTACK_RELOCATE ++ if (yyss1 != yyssa) ++ YYSTACK_FREE (yyss1); ++ } ++# endif ++#endif /* no yyoverflow */ ++ ++ yyssp = yyss + yysize - 1; ++ yyvsp = yyvs + yysize - 1; ++ ++ ++ YYDPRINTF ((stderr, "Stack size increased to %lu\n", ++ (unsigned long int) yystacksize)); ++ ++ if (yyss + yystacksize - 1 <= yyssp) ++ YYABORT; ++ } ++ ++ YYDPRINTF ((stderr, "Entering state %d\n", yystate)); ++ ++ goto yybackup; ++ ++/*-----------. ++| yybackup. | ++`-----------*/ ++yybackup: ++ ++/* Do appropriate processing given the current state. */ ++/* Read a lookahead token if we need one and don't already have one. */ ++/* yyresume: */ ++ ++ /* First try to decide what to do without reference to lookahead token. */ ++ ++ yyn = yypact[yystate]; ++ if (yyn == YYPACT_NINF) ++ goto yydefault; ++ ++ /* Not known => get a lookahead token if don't already have one. */ ++ ++ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ ++ if (yychar == YYEMPTY) ++ { ++ YYDPRINTF ((stderr, "Reading a token: ")); ++ yychar = YYLEX; ++ } ++ ++ if (yychar <= YYEOF) ++ { ++ yychar = yytoken = YYEOF; ++ YYDPRINTF ((stderr, "Now at end of input.\n")); ++ } ++ else ++ { ++ yytoken = YYTRANSLATE (yychar); ++ YYDSYMPRINTF ("Next token is", yytoken, &yylval, &yylloc); ++ } ++ ++ /* If the proper action on seeing token YYTOKEN is to reduce or to ++ detect an error, take that action. */ ++ yyn += yytoken; ++ if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) ++ goto yydefault; ++ yyn = yytable[yyn]; ++ if (yyn <= 0) ++ { ++ if (yyn == 0 || yyn == YYTABLE_NINF) ++ goto yyerrlab; ++ yyn = -yyn; ++ goto yyreduce; ++ } ++ ++ if (yyn == YYFINAL) ++ YYACCEPT; ++ ++ /* Shift the lookahead token. */ ++ YYDPRINTF ((stderr, "Shifting token %s, ", yytname[yytoken])); ++ ++ /* Discard the token being shifted unless it is eof. */ ++ if (yychar != YYEOF) ++ yychar = YYEMPTY; ++ ++ *++yyvsp = yylval; ++ ++ ++ /* Count tokens shifted since error; after three, turn off error ++ status. */ ++ if (yyerrstatus) ++ yyerrstatus--; ++ ++ yystate = yyn; ++ goto yynewstate; ++ ++ ++/*-----------------------------------------------------------. ++| yydefault -- do the default action for the current state. | ++`-----------------------------------------------------------*/ ++yydefault: ++ yyn = yydefact[yystate]; ++ if (yyn == 0) ++ goto yyerrlab; ++ goto yyreduce; ++ ++ ++/*-----------------------------. ++| yyreduce -- Do a reduction. | ++`-----------------------------*/ ++yyreduce: ++ /* yyn is the number of a rule to reduce with. */ ++ yylen = yyr2[yyn]; ++ ++ /* If YYLEN is nonzero, implement the default value of the action: ++ `$$ = $1'. ++ ++ Otherwise, the following line sets YYVAL to garbage. ++ This behavior is undocumented and Bison ++ users should not rely upon it. Assigning to YYVAL ++ unconditionally makes the parser a bit smaller, and it avoids a ++ GCC warning that YYVAL may be used uninitialized. */ ++ yyval = yyvsp[1-yylen]; ++ ++ ++ YY_REDUCE_PRINT (yyn); ++ switch (yyn) ++ { ++ case 3: ++#line 146 "script.y" ++ { ++ yyval.str = NULL; ++ } ++ break; ++ ++ case 4: ++#line 151 "script.y" ++ { ++ Output(yyvsp[0].str, NULL); ++ } ++ break; ++ ++ case 5: ++#line 157 "script.y" ++ { ++ yyval.str = "\n"; ++ } ++ break; ++ ++ case 6: ++#line 161 "script.y" ++ { ++ yyval.str = "; "; ++ } ++ break; ++ ++ case 11: ++#line 171 "script.y" ++ { ++ OutputIndentation(); ++ Output(yyvsp[0].str, NULL); ++ } ++ break; ++ ++ case 14: ++#line 178 "script.y" ++ { ++ OutputIndentation(); ++ OutputArgList(yyvsp[0].str); ++ } ++ break; ++ ++ case 15: ++#line 183 "script.y" ++ { ++ OutputIndentation(); ++ OutputArgList(yyvsp[0].str); ++ } ++ break; ++ ++ case 22: ++#line 196 "script.y" ++ { ++ yyaccept(); ++ } ++ break; ++ ++ case 23: ++#line 202 "script.y" ++ { ++ OutputIndentation(); ++ Output("while (", yyvsp[-1].expr.s, ")", NULL); ++ } ++ break; ++ ++ case 24: ++#line 207 "script.y" ++ { ++ OutputIndentation(); ++ Output("end", NULL); ++ } ++ break; ++ ++ case 25: ++#line 214 "script.y" ++ { ++ OutputIndentation(); ++ Output("for (", yyvsp[-5].str, "; ", yyvsp[-3].expr.s, "; ", yyvsp[-1].str, ")", NULL); ++ } ++ break; ++ ++ case 26: ++#line 220 "script.y" ++ { ++ OutputIndentation(); ++ Output("end", NULL); ++ } ++ break; ++ ++ case 27: ++#line 227 "script.y" ++ { ++ BEGIN FUNCLIT; ++ OutputIndentation(); ++ Output("foreach ", yyvsp[-1].str, " (", NULL); ++ } ++ break; ++ ++ case 28: ++#line 233 "script.y" ++ { ++ BEGIN 0; ++ OutputArgList(yyvsp[-1].str); ++ Output(")", NULL); ++ } ++ break; ++ ++ case 29: ++#line 239 "script.y" ++ { ++ OutputIndentation(); ++ Output("end", NULL); ++ } ++ break; ++ ++ case 30: ++#line 246 "script.y" ++ { ++ OutputIndentation(); ++ Output("if (", yyvsp[-1].expr.s, ")", NULL); ++ } ++ break; ++ ++ case 31: ++#line 251 "script.y" ++ { ++ OutputIndentation(); ++ Output("end", NULL); ++ } ++ break; ++ ++ case 32: ++#line 258 "script.y" ++ { ++ yyval.str = NULL; ++ } ++ break; ++ ++ case 33: ++#line 262 "script.y" ++ { OutputIndentation(); Output("else", NULL); } ++ break; ++ ++ case 34: ++#line 264 "script.y" ++ { yyval.str = NULL; } ++ break; ++ ++ case 35: ++#line 268 "script.y" ++ { ++ yyval.str = Combine(yyvsp[-2].str, " = ", yyvsp[0].expr.s, NULL); ++ } ++ break; ++ ++ case 36: ++#line 274 "script.y" ++ { ++ Pushyybgin(LIT); ++ } ++ break; ++ ++ case 37: ++#line 278 "script.y" ++ { ++ OutputIndentation(); ++ Output("include ", yyvsp[0].str, " ", NULL); ++ } ++ break; ++ ++ case 38: ++#line 285 "script.y" ++ { ++ Popyybgin(); ++ OutputArgList(yyvsp[-1].str); ++ } ++ break; ++ ++ case 39: ++#line 290 "script.y" ++ { ++ Popyybgin(); ++ } ++ break; ++ ++ case 40: ++#line 296 "script.y" ++ { ++ yyval.str = (char*) strsave(""); ++ } ++ break; ++ ++ case 41: ++#line 300 "script.y" ++ { ++ yyval.str = yyvsp[0].str; ++ } ++ break; ++ ++ case 42: ++#line 306 "script.y" ++ { ++ Pushyybgin(FUNCLIT); ++ } ++ break; ++ ++ case 43: ++#line 310 "script.y" ++ { ++ char cmd[200]; ++ ++ sprintf(cmd, "%s%s", yyvsp[-2].str, yyvsp[0].str); ++ free(yyvsp[-2].str); ++ free(yyvsp[0].str); ++ yyval.str = (char*) strsave(cmd); ++ } ++ break; ++ ++ case 44: ++#line 321 "script.y" ++ { ++ BEGIN LIT; ++ } ++ break; ++ ++ case 45: ++#line 325 "script.y" ++ { ++ char* cmdname; ++ char** argv; ++ int i; ++ ++ Popyybgin(); ++ cmdname = yyvsp[-3].str; ++ argv = (char**) yyvsp[-1].str; ++ switch (MapCommand(&cmdname, argv, NULL)) ++ { ++ case -1: ++ fprintf(stderr, "Error mapping command: %s", cmdname); ++ for (i = 0; argv[i] != NULL; i++) ++ fprintf(stderr, " %s", argv[i]); ++ fprintf(stderr, "\n"); ++ InsertItemInArgList(argv, 0, "/* Could not map:", 100); ++ InsertItemInArgList(argv, 1, cmdname, 100); ++ AddItemToArgList(argv, "*/", 100); ++ break; ++ case 0: ++ argv[0] = NULL; /* don't output anything */ ++ break; ++ default: ++ InsertItemInArgList(argv, 0, cmdname, 100); ++ break; ++ } ++ yyval.str = (char*) argv; ++ } ++ break; ++ ++ case 46: ++#line 354 "script.y" ++ { ++ char* cmdname; ++ char** argv; ++ int i; ++ ++ Popyybgin(); ++ cmdname = yyvsp[-5].str; ++ argv = (char**) yyvsp[-2].str; ++ switch (MapCommand(&cmdname, argv, NULL)) ++ { ++ case -1: ++ fprintf(stderr, "Error mapping command: %s", cmdname); ++ for (i = 0; argv[i] != NULL; i++) ++ fprintf(stderr, " %s", argv[i]); ++ fprintf(stderr, "\n"); ++ InsertItemInArgList(argv, 0, "/* Could not map:", 100); ++ InsertItemInArgList(argv, 1, cmdname, 100); ++ AddItemToArgList(argv, "*/", 100); ++ break; ++ case 0: ++ argv[0] = NULL; /* don't output anything */ ++ break; ++ default: ++ InsertItemInArgList(argv, 0, cmdname, 100); ++ break; ++ } ++ yyval.str = (char*) argv; ++ } ++ break; ++ ++ case 47: ++#line 385 "script.y" ++ { ++ Pushyybgin(FUNCLIT); ++ yyval.str = yyvsp[0].str; ++ } ++ break; ++ ++ case 48: ++#line 392 "script.y" ++ { ++ char* cmdname; ++ char** argv; ++ ++ Popyybgin(); ++ cmdname = yyvsp[-5].str; ++ argv = (char**) yyvsp[-2].str; ++ InsertItemInArgList(argv, 0, cmdname, 100); ++ yyval.str = (char*) argv; ++ } ++ break; ++ ++ case 49: ++#line 403 "script.y" ++ { ++ BEGIN LIT; ++ } ++ break; ++ ++ case 50: ++#line 407 "script.y" ++ { ++ char* cmdname; ++ char** argv; ++ ++ Popyybgin(); ++ cmdname = yyvsp[-3].str; ++ argv = (char**) yyvsp[-1].str; ++ InsertItemInArgList(argv, 0, cmdname, 100); ++ yyval.str = (char*) argv; ++ } ++ break; ++ ++ case 51: ++#line 420 "script.y" ++ { ++ char** argv; ++ ++ argv = AllocateArgList(100); ++ argv[0] = NULL; ++ yyval.str = (char*) argv; ++ } ++ break; ++ ++ case 52: ++#line 428 "script.y" ++ { ++ char** argv; ++ ++ argv = (char**) yyvsp[-2].str; ++ AddItemToArgList(argv, yyvsp[0].str, 100); ++ ++ yyval.str = yyvsp[-2].str; ++ } ++ break; ++ ++ case 53: ++#line 439 "script.y" ++ { ++ char** argv; ++ ++ argv = AllocateArgList(100); ++ argv[0] = yyvsp[0].str; ++ argv[1] = NULL; ++ yyval.str = (char*) argv; ++ } ++ break; ++ ++ case 54: ++#line 448 "script.y" ++ { ++ char** argv; ++ ++ argv = (char**) yyvsp[-2].str; ++ AddItemToArgList(argv, yyvsp[0].str, 100); ++ ++ yyval.str = yyvsp[-2].str; ++ } ++ break; ++ ++ case 59: ++#line 467 "script.y" ++ { ++ char** argv; ++ ++ argv = AllocateArgList(100); ++ argv[0] = yyvsp[0].str; ++ argv[1] = NULL; ++ yyval.str = (char*) argv; ++ } ++ break; ++ ++ case 60: ++#line 476 "script.y" ++ { ++ char** argv; ++ ++ argv = (char**) yyvsp[-4].str; ++ AddItemToArgList(argv, yyvsp[0].str, 100); ++ ++ yyval.str = yyvsp[-4].str; ++ } ++ break; ++ ++ case 63: ++#line 491 "script.y" ++ { ++ yyval.str = yyvsp[0].str; ++ } ++ break; ++ ++ case 64: ++#line 495 "script.y" ++ { ++ yyval.str = Combine(yyvsp[-1].str, yyvsp[0].str, NULL); ++ } ++ break; ++ ++ case 65: ++#line 501 "script.y" ++ { ++ yyval.str = yyvsp[0].str; ++ } ++ break; ++ ++ case 66: ++#line 505 "script.y" ++ { ++ yyval.str = Combine("\"", yyvsp[0].str, "\"", NULL); ++ } ++ break; ++ ++ case 67: ++#line 509 "script.y" ++ { ++ yyval.str = yyvsp[0].str; ++ } ++ break; ++ ++ case 68: ++#line 513 "script.y" ++ { ++ Pushyybgin(0); ++ } ++ break; ++ ++ case 69: ++#line 517 "script.y" ++ { ++ Popyybgin(); ++ } ++ break; ++ ++ case 70: ++#line 521 "script.y" ++ { ++ /* ++ ** Often the expression is just a call to a command ++ ** or function, in which case we get the command ++ ** already wrapped in a {} pair. Avoid the additional ++ ** curley braces. ++ */ ++ ++ if (AlreadyBracketed(yyvsp[-2].expr.s)) ++ yyval.str = yyvsp[-2].expr.s; ++ else ++ yyval.str = Combine("{", yyvsp[-2].expr.s, "}", NULL); ++ } ++ break; ++ ++ case 71: ++#line 537 "script.y" ++ { ++ ParseNode *funcpn; ++ ResultValue v; ++ Result *rp; ++ ++ rp = SymtabNew(&GlobalSymbols, yyvsp[0].str); ++ if (rp->r_type != 0 && rp->r_type != FUNCTION) ++ fprintf(stderr, "WARNING: function name '%s' is redefining a variable!\n", yyvsp[0].str); ++ ++ rp->r_type = FUNCTION; ++ ++ OutputIndentation(); ++ Output("extern ", yyvsp[0].str, NULL); ++ } ++ break; ++ ++ case 72: ++#line 552 "script.y" ++ { ++ OutputIndentation(); ++ Output("extern ", yyvsp[0].str, NULL); ++ } ++ break; ++ ++ case 73: ++#line 559 "script.y" ++ { ++ ParseNode *funcpn; ++ ResultValue v; ++ Result *rp; ++ char *script; ++ ++ if (InFunctionDefinition) ++ { ++ fprintf(stderr, "Function definition within another function or\n"); ++ fprintf(stderr, "within a control structure (FUNCTION %s).\n", yyvsp[0].str); ++ fprintf(stderr, "conversion failed\n"); ++ exit(1); ++ } ++ ++ InFunctionDefinition++; ++ NextLocal = 0; ++ rp = SymtabNew(&GlobalSymbols, yyvsp[0].str); ++ if (rp->r_type != 0 && rp->r_type != FUNCTION) ++ fprintf(stderr, "WARNING: function name '%s' is redefining a variable!\n", yyvsp[0].str); ++ ++ rp->r_type = FUNCTION; ++ ++ LocalSymbols = SymtabCreate(); ++ yyval.str = yyvsp[0].str; ++ } ++ break; ++ ++ case 74: ++#line 585 "script.y" ++ { ++ ParseNode *funcpn; ++ ResultValue v; ++ Result *rp; ++ char *script; ++ ++ rp = (Result *) yyvsp[0].str; ++ if (InFunctionDefinition) ++ { ++ fprintf(stderr, "Function definition within another function or\n"); ++ fprintf(stderr, "within a control structure (FUNCTION %s).\n", yyvsp[0].str); ++ fprintf(stderr, "conversion failed\n"); ++ exit(1); ++ } ++ ++ InFunctionDefinition++; ++ NextLocal = 0; ++ LocalSymbols = SymtabCreate(); ++ ++ yyval.str = yyvsp[0].str; ++ } ++ break; ++ ++ case 75: ++#line 609 "script.y" ++ { ++ OutputIndentation(); ++ Output("function ", yyvsp[0].str, NULL); ++ ReturnIdents = 1; ++ } ++ break; ++ ++ case 76: ++#line 615 "script.y" ++ { ++ ReturnIdents = 0; ++ } ++ break; ++ ++ case 77: ++#line 619 "script.y" ++ { ++ OutputIndentation(); ++ Output("end", NULL); ++ ++ InFunctionDefinition--; ++ SymtabDestroy(LocalSymbols); ++ LocalSymbols = NULL; ++ } ++ break; ++ ++ case 78: ++#line 630 "script.y" ++ { yyval.str = NULL; } ++ break; ++ ++ case 79: ++#line 632 "script.y" ++ { ++ Output("(", NULL); ++ } ++ break; ++ ++ case 80: ++#line 637 "script.y" ++ { ++ Output(")", NULL); ++ } ++ break; ++ ++ case 81: ++#line 643 "script.y" ++ { ++ Output(yyvsp[0].str, NULL); ++ vardef(yyvsp[0].str, STR, SCAST, NULL); ++ } ++ break; ++ ++ case 82: ++#line 648 "script.y" ++ { ++ Output(", ", yyvsp[0].str, NULL); ++ vardef(yyvsp[0].str, STR, SCAST, NULL); ++ } ++ break; ++ ++ case 83: ++#line 655 "script.y" ++ { ++ ReturnIdents = 1; ++ DefType = INT; ++ DefCast = ICAST; ++ yyval.str = "int"; ++ } ++ break; ++ ++ case 84: ++#line 662 "script.y" ++ { ++ ReturnIdents = 1; ++ DefType = FLOAT; ++ DefCast = FCAST; ++ yyval.str = "float"; ++ } ++ break; ++ ++ case 85: ++#line 669 "script.y" ++ { ++ ReturnIdents = 1; ++ DefType = STR; ++ DefCast = SCAST; ++ yyval.str = "str"; ++ } ++ break; ++ ++ case 86: ++#line 678 "script.y" ++ { ++ OutputIndentation(); ++ Output(yyvsp[-1].str, " ", yyvsp[0].str, NULL); ++ yyval.str = yyvsp[0].str; ++ } ++ break; ++ ++ case 88: ++#line 687 "script.y" ++ { ++ ReturnIdents = 1; ++ } ++ break; ++ ++ case 89: ++#line 691 "script.y" ++ { ++ yyval.str = Combine(yyvsp[-3].str, ", ", yyvsp[0].str, NULL); ++ } ++ break; ++ ++ case 90: ++#line 697 "script.y" ++ { ++ ReturnIdents = 0; ++ } ++ break; ++ ++ case 91: ++#line 701 "script.y" ++ { ++ vardef(yyvsp[-2].str, DefType, DefCast, NULL); ++ if (yyvsp[0].str != NULL) ++ yyval.str = Combine(yyvsp[-2].str, " = ", yyvsp[0].str, NULL); ++ else ++ yyval.str = yyvsp[-2].str; ++ } ++ break; ++ ++ case 92: ++#line 711 "script.y" ++ { ++ yyval.str = NULL; ++ } ++ break; ++ ++ case 93: ++#line 715 "script.y" ++ { ++ yyval.str = yyvsp[0].expr.s; ++ } ++ break; ++ ++ case 94: ++#line 721 "script.y" ++ { ++ OutputIndentation(); ++ Output("break", NULL); ++ } ++ break; ++ ++ case 95: ++#line 728 "script.y" ++ { ++ OutputIndentation(); ++ Output("return ", yyvsp[0].expr.s, NULL); ++ } ++ break; ++ ++ case 96: ++#line 733 "script.y" ++ { ++ OutputIndentation(); ++ Output("return", NULL); ++ } ++ break; ++ ++ case 97: ++#line 740 "script.y" ++ { yyval.str = NULL; } ++ break; ++ ++ case 98: ++#line 744 "script.y" ++ { yyval.expr.t = INT; yyval.expr.s = Combine(yyvsp[-2].expr.s, "|", yyvsp[0].expr.s, NULL); } ++ break; ++ ++ case 99: ++#line 746 "script.y" ++ { yyval.expr.t = INT; yyval.expr.s = Combine(yyvsp[-2].expr.s, "&", yyvsp[0].expr.s, NULL); } ++ break; ++ ++ case 100: ++#line 748 "script.y" ++ { yyval.expr.t = INT; yyval.expr.s = Combine(yyvsp[-2].expr.s, "^", yyvsp[0].expr.s, NULL); } ++ break; ++ ++ case 101: ++#line 750 "script.y" ++ { yyval.expr.t = INT; yyval.expr.s = Combine("~", yyvsp[0].expr.s, NULL); } ++ break; ++ ++ case 102: ++#line 753 "script.y" ++ { ++ if (yyvsp[-2].expr.t == STR && yyvsp[0].expr.t == STR) ++ { ++ yyval.expr.s = Combine(yyvsp[-2].expr.s, " @ ", yyvsp[0].expr.s, NULL); ++ yyval.expr.t = STR; ++ } ++ else ++ { ++ yyval.expr.s = Combine(yyvsp[-2].expr.s, " + ", yyvsp[0].expr.s, NULL); ++ yyval.expr.t = INT; ++ } ++ } ++ break; ++ ++ case 103: ++#line 766 "script.y" ++ { yyval.expr.t = INT; yyval.expr.s = Combine(yyvsp[-2].expr.s, " - ", yyvsp[0].expr.s, NULL); } ++ break; ++ ++ case 104: ++#line 768 "script.y" ++ { yyval.expr.t = INT; yyval.expr.s = Combine(yyvsp[-2].expr.s, "*", yyvsp[0].expr.s, NULL); } ++ break; ++ ++ case 105: ++#line 770 "script.y" ++ { yyval.expr.t = INT; yyval.expr.s = Combine(yyvsp[-2].expr.s, "/", yyvsp[0].expr.s, NULL); } ++ break; ++ ++ case 106: ++#line 772 "script.y" ++ { yyval.expr.t = INT; yyval.expr.s = Combine(yyvsp[-2].expr.s, "%", yyvsp[0].expr.s, NULL); } ++ break; ++ ++ case 107: ++#line 774 "script.y" ++ { yyval.expr.t = INT; yyval.expr.s = Combine("-", yyvsp[0].expr.s, NULL); } ++ break; ++ ++ case 108: ++#line 777 "script.y" ++ { yyval.expr.t = INT; yyval.expr.s = Combine(yyvsp[-2].expr.s, " || ", yyvsp[0].expr.s, NULL); } ++ break; ++ ++ case 109: ++#line 779 "script.y" ++ { yyval.expr.t = INT; yyval.expr.s = Combine(yyvsp[-2].expr.s, " && ", yyvsp[0].expr.s, NULL); } ++ break; ++ ++ case 110: ++#line 781 "script.y" ++ { yyval.expr.t = INT; yyval.expr.s = Combine("!", yyvsp[0].expr.s, NULL); } ++ break; ++ ++ case 111: ++#line 784 "script.y" ++ { yyval.expr.t = INT; yyval.expr.s = Combine(yyvsp[-2].expr.s, " < ", yyvsp[0].expr.s, NULL); } ++ break; ++ ++ case 112: ++#line 786 "script.y" ++ { yyval.expr.t = INT; yyval.expr.s = Combine(yyvsp[-2].expr.s, " <= ", yyvsp[0].expr.s, NULL); } ++ break; ++ ++ case 113: ++#line 788 "script.y" ++ { yyval.expr.t = INT; yyval.expr.s = Combine(yyvsp[-2].expr.s, " > ", yyvsp[0].expr.s, NULL); } ++ break; ++ ++ case 114: ++#line 790 "script.y" ++ { yyval.expr.t = INT; yyval.expr.s = Combine(yyvsp[-2].expr.s, " >= ", yyvsp[0].expr.s, NULL); } ++ break; ++ ++ case 115: ++#line 792 "script.y" ++ { yyval.expr.t = INT; yyval.expr.s = Combine(yyvsp[-2].expr.s, " == ", yyvsp[0].expr.s, NULL); } ++ break; ++ ++ case 116: ++#line 794 "script.y" ++ { yyval.expr.t = INT; yyval.expr.s = Combine(yyvsp[-2].expr.s, " != ", yyvsp[0].expr.s, NULL); } ++ break; ++ ++ case 117: ++#line 797 "script.y" ++ { ++ BEGIN FUNCLIT; ++ } ++ break; ++ ++ case 118: ++#line 801 "script.y" ++ { ++ BEGIN 0; ++ } ++ break; ++ ++ case 119: ++#line 805 "script.y" ++ { ++ char* cmdname; ++ char** argv; ++ char* argstr; ++ int retstr; ++ int i; ++ ++ cmdname = yyvsp[-7].str; ++ argv = (char**) yyvsp[-3].str; ++ switch (MapCommand(&cmdname, argv, &retstr)) ++ { ++ case -1: ++ argstr = ArgListToStr(argv); ++ fprintf(stderr, "Error mapping command: %s %s", ++ cmdname, argstr); ++ for (i = 0; argv[i] != NULL; i++) ++ fprintf(stderr, " %s", argv[i]); ++ fprintf(stderr, "\n"); ++ yyval.expr.t = INT; ++ yyval.expr.s = Combine("/* Could not map: ", cmdname, " ", ++ argstr, " */", NULL); ++ break; ++ case 0: ++ fprintf(stderr, "Possible replacement of a command in an expression\n"); ++ fprintf(stderr, "with multiple commands. Look for \"probable error\"\n"); ++ fprintf(stderr, "in converted script file.\n"); ++ yyval.expr.t = INT; ++ yyval.expr.s = "/* probable error */"; /* don't output anything */ ++ break; ++ default: ++ yyval.expr.t = retstr ? STR : INT; ++ yyval.expr.s = Combine("{", cmdname, " ", ArgListToStr(argv), ++ "}", NULL); ++ break; ++ } ++ } ++ break; ++ ++ case 120: ++#line 843 "script.y" ++ { ++ BEGIN FUNCLIT; ++ } ++ break; ++ ++ case 121: ++#line 847 "script.y" ++ { ++ BEGIN 0; ++ } ++ break; ++ ++ case 122: ++#line 851 "script.y" ++ { ++ yyval.expr.t = INT; ++ yyval.expr.s = Combine("{", yyvsp[-7].str, " ", ArgListToStr(yyvsp[-3].str), "}", NULL); ++ } ++ break; ++ ++ case 123: ++#line 857 "script.y" ++ { ++ Result* rp; ++ ++ rp = SymtabLook(LocalSymbols, yyvsp[0].str); ++ if (rp == NULL) ++ rp = SymtabLook(&GlobalSymbols, yyvsp[0].str); ++ ++ yyval.expr.t = rp->r_type; ++ yyval.expr.s = yyvsp[0].str; ++ } ++ break; ++ ++ case 124: ++#line 869 "script.y" ++ { ++ yyval.expr.t = INT; ++ yyval.expr.s = Combine("{", yyvsp[0].str, "}", NULL); ++ } ++ break; ++ ++ case 125: ++#line 875 "script.y" ++ { ++ char* cmdname; ++ char* argv[1]; ++ int retstr; ++ int i; ++ ++ cmdname = yyvsp[0].str; ++ argv[0] = NULL; ++ switch (MapCommand(&cmdname, argv, &retstr)) ++ { ++ case -1: ++ fprintf(stderr, "Error mapping command: %s", cmdname); ++ fprintf(stderr, "\n"); ++ yyval.expr.t = INT; ++ yyval.expr.s = Combine("/* Could not map: ", cmdname, ++ " */", NULL); ++ break; ++ case 0: ++ fprintf(stderr, "Possible replacement of a command in an expression\n"); ++ fprintf(stderr, "with multiple commands. Look for \"probable error\"\n"); ++ fprintf(stderr, "in converted script file.\n"); ++ yyval.expr.t = INT; ++ yyval.expr.s = "/* probable error */"; /* don't output anything */ ++ break; ++ default: ++ yyval.expr.t = retstr ? STR : INT; ++ yyval.expr.s = Combine("{", cmdname, "}", NULL); ++ break; ++ } ++ } ++ break; ++ ++ case 126: ++#line 907 "script.y" ++ { ++ yyval.expr.t = INT; ++ yyval.expr.s = yyvsp[0].str; ++ } ++ break; ++ ++ case 127: ++#line 912 "script.y" ++ { ++ yyval.expr.t = INT; ++ yyval.expr.s = yyvsp[0].str; ++ } ++ break; ++ ++ case 128: ++#line 917 "script.y" ++ { ++ yyval.expr.t = STR; ++ yyval.expr.s = Combine("\"", yyvsp[0].str, "\"", NULL); ++ } ++ break; ++ ++ case 129: ++#line 923 "script.y" ++ { ++ yyval.expr.t = STR; ++ yyval.expr.s = yyvsp[0].str; ++ } ++ break; ++ ++ case 130: ++#line 929 "script.y" ++ { ++ yyval.expr.t = yyvsp[-1].expr.t; ++ yyval.expr.s = Combine("(", yyvsp[-1].expr.s, ")", NULL); ++ } ++ break; ++ ++ case 131: ++#line 936 "script.y" ++ { ++ yyval.expr.t = yyvsp[-1].expr.t; ++ yyval.expr.s = Combine("(", yyvsp[-1].expr.s, ")", NULL); ++ } ++ break; ++ ++ ++ } ++ ++/* Line 999 of yacc.c. */ ++#line 2446 "y.tab.c" ++ ++ yyvsp -= yylen; ++ yyssp -= yylen; ++ ++ ++ YY_STACK_PRINT (yyss, yyssp); ++ ++ *++yyvsp = yyval; ++ ++ ++ /* Now `shift' the result of the reduction. Determine what state ++ that goes to, based on the state we popped back to and the rule ++ number reduced by. */ ++ ++ yyn = yyr1[yyn]; ++ ++ yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; ++ if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) ++ yystate = yytable[yystate]; ++ else ++ yystate = yydefgoto[yyn - YYNTOKENS]; ++ ++ goto yynewstate; ++ ++ ++/*------------------------------------. ++| yyerrlab -- here on detecting error | ++`------------------------------------*/ ++yyerrlab: ++ /* If not already recovering from an error, report this error. */ ++ if (!yyerrstatus) ++ { ++ ++yynerrs; ++#if YYERROR_VERBOSE ++ yyn = yypact[yystate]; ++ ++ if (YYPACT_NINF < yyn && yyn < YYLAST) ++ { ++ YYSIZE_T yysize = 0; ++ int yytype = YYTRANSLATE (yychar); ++ char *yymsg; ++ int yyx, yycount; ++ ++ yycount = 0; ++ /* Start YYX at -YYN if negative to avoid negative indexes in ++ YYCHECK. */ ++ for (yyx = yyn < 0 ? -yyn : 0; ++ yyx < (int) (sizeof (yytname) / sizeof (char *)); yyx++) ++ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) ++ yysize += yystrlen (yytname[yyx]) + 15, yycount++; ++ yysize += yystrlen ("syntax error, unexpected ") + 1; ++ yysize += yystrlen (yytname[yytype]); ++ yymsg = (char *) YYSTACK_ALLOC (yysize); ++ if (yymsg != 0) ++ { ++ char *yyp = yystpcpy (yymsg, "syntax error, unexpected "); ++ yyp = yystpcpy (yyp, yytname[yytype]); ++ ++ if (yycount < 5) ++ { ++ yycount = 0; ++ for (yyx = yyn < 0 ? -yyn : 0; ++ yyx < (int) (sizeof (yytname) / sizeof (char *)); ++ yyx++) ++ if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR) ++ { ++ const char *yyq = ! yycount ? ", expecting " : " or "; ++ yyp = yystpcpy (yyp, yyq); ++ yyp = yystpcpy (yyp, yytname[yyx]); ++ yycount++; ++ } ++ } ++ yyerror (yymsg); ++ YYSTACK_FREE (yymsg); ++ } ++ else ++ yyerror ("syntax error; also virtual memory exhausted"); ++ } ++ else ++#endif /* YYERROR_VERBOSE */ ++ yyerror ("syntax error"); ++ } ++ ++ ++ ++ if (yyerrstatus == 3) ++ { ++ /* If just tried and failed to reuse lookahead token after an ++ error, discard it. */ ++ ++ /* Return failure if at end of input. */ ++ if (yychar == YYEOF) ++ { ++ /* Pop the error token. */ ++ YYPOPSTACK; ++ /* Pop the rest of the stack. */ ++ while (yyss < yyssp) ++ { ++ YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); ++ yydestruct (yystos[*yyssp], yyvsp); ++ YYPOPSTACK; ++ } ++ YYABORT; ++ } ++ ++ YYDSYMPRINTF ("Error: discarding", yytoken, &yylval, &yylloc); ++ yydestruct (yytoken, &yylval); ++ yychar = YYEMPTY; ++ ++ } ++ ++ /* Else will try to reuse lookahead token after shifting the error ++ token. */ ++ goto yyerrlab1; ++ ++ ++/*----------------------------------------------------. ++| yyerrlab1 -- error raised explicitly by an action. | ++`----------------------------------------------------*/ ++yyerrlab1: ++ yyerrstatus = 3; /* Each real token shifted decrements this. */ ++ ++ for (;;) ++ { ++ yyn = yypact[yystate]; ++ if (yyn != YYPACT_NINF) ++ { ++ yyn += YYTERROR; ++ if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) ++ { ++ yyn = yytable[yyn]; ++ if (0 < yyn) ++ break; ++ } ++ } ++ ++ /* Pop the current state because it cannot handle the error token. */ ++ if (yyssp == yyss) ++ YYABORT; ++ ++ YYDSYMPRINTF ("Error: popping", yystos[*yyssp], yyvsp, yylsp); ++ yydestruct (yystos[yystate], yyvsp); ++ yyvsp--; ++ yystate = *--yyssp; ++ ++ YY_STACK_PRINT (yyss, yyssp); ++ } ++ ++ if (yyn == YYFINAL) ++ YYACCEPT; ++ ++ YYDPRINTF ((stderr, "Shifting error token, ")); ++ ++ *++yyvsp = yylval; ++ ++ ++ yystate = yyn; ++ goto yynewstate; ++ ++ ++/*-------------------------------------. ++| yyacceptlab -- YYACCEPT comes here. | ++`-------------------------------------*/ ++yyacceptlab: ++ yyresult = 0; ++ goto yyreturn; ++ ++/*-----------------------------------. ++| yyabortlab -- YYABORT comes here. | ++`-----------------------------------*/ ++yyabortlab: ++ yyresult = 1; ++ goto yyreturn; ++ ++#ifndef yyoverflow ++/*----------------------------------------------. ++| yyoverflowlab -- parser overflow comes here. | ++`----------------------------------------------*/ ++yyoverflowlab: ++ yyerror ("parser stack overflow"); ++ yyresult = 2; ++ /* Fall through. */ ++#endif ++ ++yyreturn: ++#ifndef yyoverflow ++ if (yyss != yyssa) ++ YYSTACK_FREE (yyss); ++#endif ++ return yyresult; ++} ++ ++ ++#line 942 "script.y" ++ ++ ++#if defined(decalpha) && !defined(bison) ++extern YYSTYPE yylval; ++ ++#ifdef __FreeBSD__ ++#include "y.tab.h" ++#endif ++ ++#include "lex.yy.c" ++ ++#endif ++/* ++** TokenStr ++** ++** Return the token string for the given token. ++*/ ++ ++char *TokenStr(token) ++ ++int token; ++ ++{ /* TokenStr --- Return token string for token */ ++ ++ static char buf[100]; ++ ++ switch (token) ++ { ++ ++ case LT: return("<"); ++ case LE: return("<="); ++ case GT: return(">"); ++ case GE: return(">="); ++ case EQ: return("=="); ++ case NE: return("!="); ++ ++ case OR: return("||"); ++ case AND: return("&&"); ++ ++#define RET(tok) case tok: return("tok") ++ ++ RET(UMINUS); ++ ++ RET(WHILE); ++ RET(IF); ++ RET(ELSE); ++ RET(FOR); ++ RET(FOREACH); ++ RET(END); ++ RET(INCLUDE); ++ RET(BREAK); ++ RET(INT); ++ RET(FLOAT); ++ RET(STR); ++ RET(RETURN); ++ RET(WHITESPACE); ++ RET(FUNCTION); ++ RET(INTCONST); ++ RET(DOLLARARG); ++ RET(FLOATCONST); ++ RET(STRCONST); ++ RET(LITERAL); ++ RET(IDENT); ++ RET(VARREF); ++ RET(FUNCREF); ++ RET(SL); ++ RET(COMMAND); ++ RET(ARGUMENT); ++ RET(ARGLIST); ++ RET(LOCREF); ++ RET(ICAST); ++ RET(FCAST); ++ RET(SCAST); ++ ++ } ++ ++ if (token < 128) ++ if (token < ' ') ++ sprintf(buf, "^%c", token+'@'); ++ else ++ sprintf(buf, "%c", token); ++ else ++ sprintf(buf, "%d", token); ++ ++ return(buf); ++ ++} /* TokenStr */ ++ ++ ++ ++vardef(ident, type, castop, init) ++ ++char *ident; ++int type; ++int castop; ++char *init; ++ ++{ /* vardef --- Define a variable */ ++ ++ ParseNode *pn; ++ Result *rp, r; ++ ResultValue v, slv; ++ ++ if (InFunctionDefinition && LocalSymbols != NULL) ++ { ++ rp = SymtabNew(LocalSymbols, ident); ++ rp->r_type = type; ++ rp->r.r_loc.l_type = type; ++ rp->r.r_loc.l_offs = NextLocal++; ++ } ++ else ++ { ++ rp = SymtabNew(&GlobalSymbols, ident); ++ ++ rp->r_type = type; ++ } ++ ++} /* vardef */ ++ ++ ++ParseInit() ++ ++{ /* ParseInit --- Initialize parser variables */ ++ ++ InFunctionDefinition = 0; ++ Compiling = 0; ++ BreakAllowed = 0; ++ LocalSymbols = NULL; ++ nextchar(1); /* Flush lexer input */ ++ ++} /* ParseInit */ ++ ++ ++int NestedLevel() ++ ++{ /* NestedLevel --- Return TRUE if in func_def or control structure */ ++ ++ return(InFunctionDefinition || Compiling); ++ ++} /* NestedLevel */ ++ ++int AlreadyBracketed(str) ++ ++char* str; ++ ++{ /* AlreadyBracketed --- Return TRUE if the string has valid curley ++ braces */ ++ ++ if (*str == '{') ++ { ++ int braceCount; ++ ++ braceCount = 1; ++ for (str++; braceCount > 0 && *str != '\0'; str++) ++ { ++ if (*str == '{') ++ braceCount++; ++ else if (*str == '}') ++ braceCount--; ++ } ++ ++ return braceCount == 0 && *str == '\0'; ++ } ++ else ++ return 0; ++ ++} /* AlreadyBracketed */ ++ +--- genesis-2.2.1.orig/src/convert/y.tab.h ++++ genesis-2.2.1/src/convert/y.tab.h +@@ -0,0 +1,130 @@ ++/* A Bison parser, made by GNU Bison 1.875a. */ ++ ++/* Skeleton parser for Yacc-like parsing with Bison, ++ Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. ++ ++ This program 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 2, 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, write to the Free Software ++ Foundation, Inc., 59 Temple Place - Suite 330, ++ Boston, MA 02111-1307, USA. */ ++ ++/* As a special exception, when this file is copied by Bison into a ++ Bison output file, you may use that output file without restriction. ++ This special exception was added by the Free Software Foundation ++ in version 1.24 of Bison. */ ++ ++/* Tokens. */ ++#ifndef YYTOKENTYPE ++# define YYTOKENTYPE ++ /* Put the tokens into the symbol table, so that GDB and other debuggers ++ know about them. */ ++ enum yytokentype { ++ NE = 258, ++ EQ = 259, ++ GE = 260, ++ GT = 261, ++ LE = 262, ++ LT = 263, ++ AND = 264, ++ OR = 265, ++ UMINUS = 266, ++ WHILE = 267, ++ IF = 268, ++ ELSE = 269, ++ FOR = 270, ++ FOREACH = 271, ++ END = 272, ++ INCLUDE = 273, ++ ENDSCRIPT = 274, ++ BREAK = 275, ++ INT = 276, ++ FLOAT = 277, ++ STR = 278, ++ RETURN = 279, ++ WHITESPACE = 280, ++ FUNCTION = 281, ++ INTCONST = 282, ++ DOLLARARG = 283, ++ FLOATCONST = 284, ++ STRCONST = 285, ++ LITERAL = 286, ++ IDENT = 287, ++ VARREF = 288, ++ FUNCREF = 289, ++ EXTERN = 290, ++ SL = 291, ++ COMMAND = 292, ++ ARGUMENT = 293, ++ ARGLIST = 294, ++ LOCREF = 295, ++ ICAST = 296, ++ FCAST = 297, ++ SCAST = 298 ++ }; ++#endif ++#define NE 258 ++#define EQ 259 ++#define GE 260 ++#define GT 261 ++#define LE 262 ++#define LT 263 ++#define AND 264 ++#define OR 265 ++#define UMINUS 266 ++#define WHILE 267 ++#define IF 268 ++#define ELSE 269 ++#define FOR 270 ++#define FOREACH 271 ++#define END 272 ++#define INCLUDE 273 ++#define ENDSCRIPT 274 ++#define BREAK 275 ++#define INT 276 ++#define FLOAT 277 ++#define STR 278 ++#define RETURN 279 ++#define WHITESPACE 280 ++#define FUNCTION 281 ++#define INTCONST 282 ++#define DOLLARARG 283 ++#define FLOATCONST 284 ++#define STRCONST 285 ++#define LITERAL 286 ++#define IDENT 287 ++#define VARREF 288 ++#define FUNCREF 289 ++#define EXTERN 290 ++#define SL 291 ++#define COMMAND 292 ++#define ARGUMENT 293 ++#define ARGLIST 294 ++#define LOCREF 295 ++#define ICAST 296 ++#define FCAST 297 ++#define SCAST 298 ++ ++ ++ ++ ++#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) ++typedef int YYSTYPE; ++# define yystype YYSTYPE /* obsolescent; will be withdrawn */ ++# define YYSTYPE_IS_DECLARED 1 ++# define YYSTYPE_IS_TRIVIAL 1 ++#endif ++ ++extern YYSTYPE yylval; ++ ++ ++ +--- genesis-2.2.1.orig/src/ss/script.y ++++ genesis-2.2.1/src/ss/script.y +@@ -162,6 +162,13 @@ + + %token SL COMMAND EXPRCALL ARGUMENT ARGLIST LOCREF ICAST FCAST SCAST + ++%union { ++ int iconst; ++ double fconst; ++ char *str; ++ ParseNode *pn; ++} ++ + %type script statement statement_list while_stmnt for_stmnt + %type foreach_stmnt if_stmnt else_clause assign_stmnt cmd_stmnt + %type arg_list arg_component_list arg_component --- genesis-2.2.1.orig/debian/patches/100_ctrl_d_quits.diff +++ genesis-2.2.1/debian/patches/100_ctrl_d_quits.diff @@ -0,0 +1,20 @@ +--- genesis-2.2.1.orig/src/shell/shell_io.c ++++ genesis-2.2.1/src/shell/shell_io.c +@@ -396,8 +396,15 @@ + putc('\n',stdout); + redisplayline(); + break; +- case '\4': /* delete char */ +- deletechar(); ++ case '\4': /* delete char or quit */ ++ if(end_of_buffer == 0 && current_line == 0){ ++ strcpy(input_buffer, "exit\n"); ++ eol_buffer[current_line++] = end_of_buffer = current_loc = 5; ++ printf(input_buffer); ++ fflush(stdout); ++ } else { ++ deletechar(); ++ } + break; + case '': /* destructive backspace */ + if(current_loc > bol()) { --- genesis-2.2.1.orig/debian/patches/100_stdarg_h.diff +++ genesis-2.2.1/debian/patches/100_stdarg_h.diff @@ -0,0 +1,261 @@ +--- genesis-2.2.1.orig/src/Xodus/Widg/Text.c ++++ genesis-2.2.1/src/Xodus/Widg/Text.c +@@ -61,7 +61,7 @@ + + #include + #include +-#include ++#include + #include + #include "TextP.h" + #include "Xo/XoDefs.h" +@@ -138,7 +138,7 @@ + + /* utilities */ + static void +- IncrementTextMemory(), CallAction(), InsertString(); ++ IncrementTextMemory(), CallAction(void (*action) (), Widget widget, XEvent *event, ...), InsertString(); + void + Recalculate(); /* from Label.c */ + void +@@ -665,17 +665,13 @@ + + /* VARARGS */ + static void +-CallAction(action, widget, event, va_alist) +- void (*action) (); +- Widget widget; +- XEvent *event; +-va_dcl ++CallAction(void (*action) (), Widget widget, XEvent *event, ...) + { + va_list args; + String argv[100]; + Cardinal argc = 0; + +- va_start(args); ++ va_start(args, event); + while ((argv[argc++] = va_arg(args, String))); + argc--; + va_end(args); +--- genesis-2.2.1.orig/src/Xodus/Xo/Error.c ++++ genesis-2.2.1/src/Xodus/Xo/Error.c +@@ -8,7 +8,7 @@ + * Initial revision + * */ + +-#include ++#include + #include + + void _XgPrintToStderr (); +@@ -16,14 +16,12 @@ + static void (*error_handler)() = _XgPrintToStderr; + + +-void XgError (format, va_alist) +- char *format; +- va_dcl ++void XgError (char *format, ...) + { + char error[256]; + va_list args; + +- va_start(args); ++ va_start(args, format); + vsprintf (error, format, args); + va_end(args); + +--- genesis-2.2.1.orig/src/Xodus/Xo/XoArgLists.c ++++ genesis-2.2.1/src/Xodus/Xo/XoArgLists.c +@@ -27,7 +27,7 @@ + + #include + #include +-#include ++#include + #include + + static String XtNxtConvertVarToArgList = "xtConvertVarToArgList"; +@@ -207,9 +207,7 @@ + XoXtVaSetValues(Widget widget, ...) + #else + VARARGS1*/ +-void XoXtVaSetValues(widget, va_alist) +- Widget widget; +- va_dcl ++void XoXtVaSetValues(Widget widget, ...) + { + va_list var; + ArgList args = NULL; +@@ -218,11 +216,11 @@ + /* WIDGET_TO_APPCON(widget); */ + + /* LOCK_APP(app); */ +- va_start(var); ++ va_start(var,widget); + _XtCountVaList(var, &total_count, &typed_count); + va_end(var); + +- va_start(var); ++ va_start(var,widget); + + _XoXtVaToArgList(widget, var, total_count, &args, &num_args); + XtSetValues(widget, args, num_args); +--- genesis-2.2.1.orig/src/diskio/diskio_func_ext.h ++++ genesis-2.2.1/src/diskio/diskio_func_ext.h +@@ -52,7 +52,7 @@ + extern long ffParseIndexedField(/*char *field */); + extern long ffParseWhiteSpacedString(/*char *string, char **eachstring*/); + +- extern void ffError(/* char *format, va_list */); ++ extern void ffError(char *format, ...); + extern void Expand_And_Copy_String(/* char**, char* */); + + #endif +--- genesis-2.2.1.orig/src/diskio/diskio_utilfunc.c ++++ genesis-2.2.1/src/diskio/diskio_utilfunc.c +@@ -48,21 +48,19 @@ + #include + #include + #include +-#include ++#include + #include + + #include "absff_ext.h" + #include "diskio_ext.h" + + +-void ffError(format, va_alist) +- char *format; +-va_dcl ++void ffError(char *format, ...) + { + char error[256]; + va_list args; + +- va_start(args); ++ va_start(args, format); + vsprintf(error, format, args); + va_end(args); + +--- genesis-2.2.1.orig/src/shell/shell_func_ext.h ++++ genesis-2.2.1/src/shell/shell_func_ext.h +@@ -173,8 +173,8 @@ + extern int LogHeader(); + extern int LogTime(); + extern int LogTrailer(); +-extern int lprintf(); +-extern int lprint_only(); ++extern int lprintf(char*,...); ++extern int lprint_only(char*,...); + extern int NestedLevel(); + extern Script *NextScript(); + extern Script *NextScript(); +@@ -230,15 +230,4 @@ + extern int ValidScript(); + extern void Warning(); + +-/* 1999-07-16 +- * This fix for Red Hat Linux 6.0 is courtesy of Mike Vanier +- * . +- */ +-#ifdef linux +-extern char *strchr __P ((__const char *__s, int __c)); +-#else +-extern char *strchr(); +-#endif +- +- + #endif /* SHELL_FUNC_EXT_H */ +--- genesis-2.2.1.orig/src/shell/shell_log.c ++++ genesis-2.2.1/src/shell/shell_log.c +@@ -25,7 +25,7 @@ + /* mds3 changes */ + /* Changed various 'printf/fprintf' statements to 'vprintf/vfprintf' */ + #include +-#include ++#include + #include + #include "header.h" + #include "shell_ext.h" +@@ -122,9 +122,7 @@ + } + } + +-lprintf(com,va_alist) +-char *com; +-va_dcl ++lprintf(char *com,...) + { + va_list ap; + +@@ -134,7 +132,7 @@ + char *ptr; + int nargs; + +- va_start(ap); ++ va_start(ap,com); + /* + ** determine the number of arguments based on the format string + */ +@@ -152,8 +150,9 @@ + */ + /* mds3 changes */ + /* printf(com,va_alist); */ +- va_start(ap); ++ va_start(ap,com); + vprintf(com,ap); ++ va_end(ap); + /* + ** is logging selected + */ +@@ -164,14 +163,13 @@ + */ + /* mds3 changes */ + /* fprintf(logfp,com,va_alist); */ +- va_start(ap); ++ va_start(ap,com); + vfprintf(logfp,com,ap); ++ va_end(ap); + } + } + +-lprint_only(com,va_alist) +- char *com; +- va_dcl ++lprint_only(char *com,...) + { + /* mds3 changes */ + /* Added single line below */ +@@ -183,8 +181,9 @@ + */ + /* mds3 changes */ + /* fprintf(logfp,com,va_alist); */ +- va_start(ap); ++ va_start(ap,com); + vfprintf(logfp,com,ap); ++ va_end(ap); + } + } + +--- genesis-2.2.1.orig/src/sim/sim_func_ext.h ++++ genesis-2.2.1/src/sim/sim_func_ext.h +@@ -89,16 +89,6 @@ + extern char *ftoa(); + extern char *itoa(); + +-/* 1999-07-16 +- * This fix for Red Hat Linux 6.0 is courtesy of Mike Vanier +- * . +- */ +-#ifdef linux +-extern char *strchr __P ((__const char *__s, int __c)); +-#else +-extern char *strchr(); +-#endif +- + extern int ClearPinfo(); + extern int LocateOp(); + extern char *GetIdent(); --- genesis-2.2.1.orig/debian/patches/100_gnu_kfreebsd.diff +++ genesis-2.2.1/debian/patches/100_gnu_kfreebsd.diff @@ -0,0 +1,48 @@ +--- genesis-2.2.1.orig/src/shell/shell_tty.c ++++ genesis-2.2.1/src/shell/shell_tty.c +@@ -112,7 +112,8 @@ + */ + #ifdef TERMIO + +-#if defined(sgi) || defined(__FreeBSD__) ++#if defined(sgi) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) ++#include + #include + #include + #include +@@ -120,7 +121,7 @@ + #include + #endif + +-#ifdef __FreeBSD__ ++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + struct termios old_tty_stdin, old_tty_stdout, new_tty_stdin, new_tty_stdout; + #else + struct termio old_tty_stdin, old_tty_stdout, new_tty_stdin, new_tty_stdout; +@@ -439,7 +440,7 @@ + * reset the terminal parameters to their original state + */ + #ifdef TERMIO +-#ifdef __FreeBSD__ ++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + tcsetattr(fileno(stdin), TCSANOW, &old_tty_stdin); + tcsetattr(fileno(stdout), TCSANOW, &old_tty_stdout); + #else +@@ -485,7 +486,7 @@ + * save the old terminal parameters + */ + #ifdef TERMIO +-#ifdef __FreeBSD__ ++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + tcgetattr(fileno(stdin), &old_tty_stdin); + tcgetattr(fileno(stdout), &old_tty_stdout); + #else +@@ -651,7 +652,7 @@ + /* + * set the new parameters + */ +-#ifdef __FreeBSD__ ++#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) + tcsetattr(fileno(stdin), TCSANOW, &new_tty_stdin); + #else + ioctl(fileno(stdin), TCSETA, &new_tty_stdin); --- genesis-2.2.1.orig/debian/patches/series +++ genesis-2.2.1/debian/patches/series @@ -0,0 +1,9 @@ +000_makefiles.diff +100_ctrl_d_quits.diff +100_gnu_kfreebsd.diff +100_headers_path.diff +100_stdarg_h.diff +100_yacc.diff +110_bypass_gcc_optimiser_bug.diff +200_simrc_path.diff +round.diff --- genesis-2.2.1.orig/debian/patches/200_simrc_path.diff +++ genesis-2.2.1/debian/patches/200_simrc_path.diff @@ -0,0 +1,25 @@ +--- genesis-2.2.1.orig/src/startup/simrc ++++ genesis-2.2.1/src/startup/simrc +@@ -5,17 +5,17 @@ + // SIMPATH - path to search for scripts (includes the startup path) + // SIMNOTES - default file for simulator notes + //=========================================================================== +-setenv SIMPATH . /usr/genesis/startup \ +- /usr/genesis/Scripts/neurokit \ +- /usr/genesis/Scripts/neurokit/prototypes ++setenv SIMPATH . /usr/share/genesis/startup \ ++ /usr/share/genesis/Scripts/neurokit \ ++ /usr/share/genesis/Scripts/neurokit/prototypes + + // This adds the Xodus 1 compatability library directory to the + // SIMPATH. If you are not expecting to use X1compat, you can + // comment out the folloing line. +-setenv SIMPATH {getenv SIMPATH} /usr/genesis/Scripts/X1compat ++setenv SIMPATH {getenv SIMPATH} /usr/share/genesis/Scripts/X1compat + + setenv SIMNOTES {getenv HOME}/.notes +-setenv GENESIS_HELP /usr/genesis/Doc ++setenv GENESIS_HELP /usr/share/genesis/Doc + + //=========================================================================== + // set up tables --- genesis-2.2.1.orig/debian/patches/100_headers_path.diff +++ genesis-2.2.1/debian/patches/100_headers_path.diff @@ -0,0 +1,13 @@ +--- genesis-2.2.1.orig/src/diskio/interface/netcdf/netcdf_ext.h ++++ genesis-2.2.1/src/diskio/interface/netcdf/netcdf_ext.h +@@ -46,8 +46,8 @@ + + #include "netcdf.h" /*Netcdf Library header */ + +-#include "absff_header.h" +-#include "absff_struct.h" ++#include "../absff_header.h" ++#include "../absff_struct.h" + #include "netcdf_struct.h" + + --- genesis-2.2.1.orig/debian/patches/000_makefiles.diff +++ genesis-2.2.1/debian/patches/000_makefiles.diff @@ -0,0 +1,3166 @@ +Index: genesis-2.2.1/src/buffer/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/buffer/Makefile 2006-10-07 14:19:58.000000000 +0200 ++++ genesis-2.2.1/src/buffer/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -129,26 +129,26 @@ + $(CC) $(CFLAGS) $(SIMINCLUDE) $< -c + + $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_g@.h: $(STARTUP) +- - $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) ++ $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) + + # make the data structure section of the symbol table + + $(LIBRARY_NAME)_d@.c : $(STRUCTURES) +- - $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) +- - $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ ++ $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) ++ $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ + -I $(EXT_HEADER) -NI -o $(LIBRARY_NAME)_d@.c +- - rm $(TMPDIR)/$(STRUCTURES) ++ rm $(TMPDIR)/$(STRUCTURES) + + # make the function list section of the symbol table + + $(LIBRARY_NAME)_f@.c : $(FUNCTIONS) +- - $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ ++ $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ + > $(LIBRARY_NAME)_f@.c + + # make the library header function + + $(LIBRARY_NAME)_l@.c : $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_d@.c $(OBJECTS) +- - $(SYS)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c ++ $(SYS)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c + + SYMBOLTAB = $(LIBRARY_NAME)_d@.o $(LIBRARY_NAME)_g@.o $(LIBRARY_NAME)_l@.o + +@@ -167,8 +167,8 @@ + co Makefile *.h,v *.g,v $(FUNCTIONS) + + clean: +- -rm -f *.a *.o *@.[ch] ++ rm -f *.a *.o *@.[ch] + + rcsclean: clean +- - rcsclean ++ rcsclean + co Makefile *.h,v *.g,v $(FUNCTIONS) +Index: genesis-2.2.1/src/concen/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/concen/Makefile 2006-10-07 14:19:58.000000000 +0200 ++++ genesis-2.2.1/src/concen/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -129,20 +129,20 @@ + $(OBJECTS) : $(HEADERS) + + $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_g@.h: $(STARTUP) +- - $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) ++ $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) + + # make the data structure section of the symbol table + + $(LIBRARY_NAME)_d@.c : $(STRUCTURES) +- - $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) +- - $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ ++ $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) ++ $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ + -I $(EXT_HEADER) -NI -o $(LIBRARY_NAME)_d@.c +- - rm $(TMPDIR)/$(STRUCTURES) ++ rm $(TMPDIR)/$(STRUCTURES) + + # make the function list section of the symbol table + + $(LIBRARY_NAME)_f@.c : $(FUNCTIONS) +- - $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ ++ $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ + > $(LIBRARY_NAME)_f@.c + + # make the library header function +@@ -158,10 +158,10 @@ + $(LIBORDER) $(TARGET_OBJ) + + install: +- -cp $(TARGET_OBJ) $(INSTALL_LIB) +- -$(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) +- -cp *.h $(INSTALL_INCLUDE) ++ cp $(TARGET_OBJ) $(INSTALL_LIB) ++ $(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) ++ cp *.h $(INSTALL_INCLUDE) + + clean: +- -rm -f *.a *.o *@.[ch] ++ rm -f *.a *.o *@.[ch] + +Index: genesis-2.2.1/src/convert/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/convert/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/convert/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -93,21 +93,22 @@ + lex.yy.c: script.l + $(LEX) script.l + +-y.tab.h y.tab.c: script.y +- $(YACC) -dv script.y ++#y.tab.h y.tab.c: script.y ++# $(YACC) -dv script.y + + realclean: +- -rm -f *.o y.tab.h y.tab.c lex.yy.c convert ++ #rm -f *.o y.tab.h y.tab.c lex.yy.c convert ++ rm -f *.o lex.yy.c convert + + install: +- -cp convert $(INSTALLBIN) ++ cp convert $(INSTALLBIN) + -if test ! -d $(X1COMPAT_DIR); then mkdir $(X1COMPAT_DIR); fi +- -cp X1compat/*.g $(X1COMPAT_DIR) +- -chmod +w $(X1COMPAT_DIR)/*.g ++ cp X1compat/*.g $(X1COMPAT_DIR) ++ chmod +w $(X1COMPAT_DIR)/*.g + -if test ! -d $(INSTALL_DIR)/man; then mkdir $(INSTALL_DIR)/man $(INSTALL_DIR)/man/man1; fi + -if test ! -d $(INSTALL_DIR)/man/man1; then mkdir $(INSTALL_DIR)/man/man1; fi +- -cp convert.man $(INSTALL_DIR)/man/man1/convert.1 +- -cp convert.doc $(INSTALL_DIR)/Doc ++ cp convert.man $(INSTALL_DIR)/man/man1/convert.1 ++ cp convert.doc $(INSTALL_DIR)/Doc + + freeze: + rcsclean +@@ -115,10 +116,11 @@ + co Makefile *.h,v script.y script.l + + clean: +- -rm -f *.o y.tab.h y.tab.c lex.yy.c y.output convert ++ #rm -f *.o y.tab.h y.tab.c lex.yy.c y.output convert ++ rm -f *.o lex.yy.c y.output convert + + rcsclean: clean +- - rcsclean ++ rcsclean + co Makefile *.h,v script.y script.l + + # mds3 +Index: genesis-2.2.1/src/device/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/device/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/device/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -148,26 +148,26 @@ + $(CC) $(CFLAGS) $(SIMINCLUDE) $< -c + + $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_g@.h: $(STARTUP) +- - $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) ++ $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) + + # make the data structure section of the symbol table + + $(LIBRARY_NAME)_d@.c : $(STRUCTURES) +- - $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) +- - $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ ++ $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) ++ $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ + -I $(EXT_HEADER) -NI -o $(LIBRARY_NAME)_d@.c +- - rm $(TMPDIR)/$(STRUCTURES) ++ rm $(TMPDIR)/$(STRUCTURES) + + # make the function list section of the symbol table + + $(LIBRARY_NAME)_f@.c : $(FUNCTIONS) +- - $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ ++ $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ + > $(LIBRARY_NAME)_f@.c + + # make the library header function + + $(LIBRARY_NAME)_l@.c : $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_d@.c $(OBJECTS) +- - $(SYS)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c ++ $(SYS)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c + + SYMBOLTAB = $(LIBRARY_NAME)_d@.o $(LIBRARY_NAME)_g@.o $(LIBRARY_NAME)_l@.o + +@@ -176,9 +176,9 @@ + $(LIBORDER) $(TARGET_OBJ) + + install: +- -cp $(TARGET_OBJ) $(INSTALL_LIB) +- -$(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) +- -cp *.h $(INSTALL_INCLUDE) ++ cp $(TARGET_OBJ) $(INSTALL_LIB) ++ $(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) ++ cp *.h $(INSTALL_INCLUDE) + + freeze: + rcsclean +@@ -186,8 +186,8 @@ + co Makefile *.h,v *.g,v $(FUNCTIONS) + + clean: +- -rm -f *.a *.o *@.[ch] ++ rm -f *.a *.o *@.[ch] + + rcsclean: clean +- - rcsclean ++ rcsclean + co Makefile *.h,v *.g,v $(FUNCTIONS) +Index: genesis-2.2.1/src/diskio/interface/netcdf/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/diskio/interface/netcdf/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/diskio/interface/netcdf/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -67,29 +67,29 @@ + # Passing this thro from top-level makefiles would require an unset + # We just define it here instead + +-NCDFDIR = netcdf-3.4 +-NCDFSRCDIR = $(NCDFDIR)/src +-NCDFINCLUDEDIR = $(NCDFDIR)/src/libsrc ++#NCDFDIR = netcdf-3.4 ++#NCDFSRCDIR = $(NCDFDIR)/src ++#NCDFINCLUDEDIR = $(NCDFDIR)/src/libsrc + + default: netcdflib.o + +-netcdflib.o: netcdflib $(OBJECTS) ++netcdflib.o: $(OBJECTS) + $(LD) $(LDFLAGS) -r -o $@ $(OBJECTS) + + netcdflib: +- @(for subdir in $(NCDFSRCDIR); do echo cd $$subdir; cd $$subdir; env - PATH=$$PATH CPICOPT="" CXX="" FC="" CC="$(CC)" CFLAGS="$(CFLAGS)" AR=ar YACC="$(YACC_IN)" ./configure; env - PATH=$$PATH make all; done) ++ #@(for subdir in $(NCDFSRCDIR); do echo cd $$subdir; cd $$subdir; env - PATH=$$PATH CPICOPT="" CXX="" FC="" CC="$(CC)" CFLAGS="$(CFLAGS)" AR=ar YACC="$(YACC_IN)" ./configure; env - PATH=$$PATH make all; done) + -touch netcdflib + + clean: +- @(for subdir in $(NCDFSRCDIR); do echo cd $$subdir; cd $$subdir; make clean; cd ../..; done) ++# @(for subdir in $(NCDFSRCDIR); do echo cd $$subdir; cd $$subdir; make clean; cd ../..; done) + -rm -f netcdflib *.[ao] + + install: + @cp netcdflib.o $(INSTALL)/lib +- -cp $(NCDFINCLUDEDIR)/libnetcdf.a $(INSTALL)/lib +- -$(RANLIB) $(INSTALL)/lib/libnetcdf.a +- -cp *.h $(INSTALL)/include +- -cp $(NCDFINCLUDEDIR)/netcdf.h $(INSTALL)/include ++ #-cp $(NCDFINCLUDEDIR)/libnetcdf.a $(INSTALL)/lib ++ #-$(RANLIB) $(INSTALL)/lib/libnetcdf.a ++ #-cp *.h $(INSTALL)/include ++ #-cp $(NCDFINCLUDEDIR)/netcdf.h $(INSTALL)/include + + + ################################# +Index: genesis-2.2.1/src/diskio/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/diskio/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/diskio/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -97,27 +97,27 @@ + @(for subdir in interface; do echo cd $$subdir; cd $$subdir; make INCDIRS_IN="$(INCDIRS)" DISKIOSUBDIR_IN="$(DISKIOSUBDIR)" CC_IN="$(CC)" CFLAGS_IN="$(CFLAGS)" CPP_IN="$(CPP)" LD_IN="$(LD)" LDFLAGS_IN="$(LDFLAGS)"; cd ..;done) + + $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_g@.h: $(STARTUP) +- - ../sys/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) \ ++ ../sys/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) \ + -cstartup copyright_fileformats + + # make the data structure section of the symbol table + + $(LIBRARY_NAME)_d@.c : $(STRUCTURES) ../sys/code_sym +- - $(CPP) $(STRUCTURES) /tmp/$(STRUCTURES) $(GENESIS_INCLUDE) +- - ../sys/code_sym /tmp/$(STRUCTURES) $(LIBRARY_NAME) \ ++ $(CPP) $(STRUCTURES) /tmp/$(STRUCTURES) $(GENESIS_INCLUDE) ++ ../sys/code_sym /tmp/$(STRUCTURES) $(LIBRARY_NAME) \ + -I $(EXT_HEADER) -NI -o $(LIBRARY_NAME)_d@.c +- - rm /tmp/$(STRUCTURES) ++ rm /tmp/$(STRUCTURES) + + # make the function list section of the symbol table + + $(LIBRARY_NAME)_f@.c : $(FUNCTIONS) ../lib/code_func +- - ../sys/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ ++ ../sys/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ + > $(LIBRARY_NAME)_f@.c + + # make the library header function + + $(LIBRARY_NAME)_l@.c: $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_d@.c $(FSYMBOLTAB_C) ../sys/code_lib $(OBJECTS) +- - ../sys/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c ++ ../sys/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c + + SYMBOLTAB = $(LIBRARY_NAME)_d@.o $(LIBRARY_NAME)_g@.o $(FSYMBOLTAB) $(LIBRARY_NAME)_l@.o + +@@ -126,12 +126,12 @@ + + clean: + @(for i in interface; do echo cd $$i; cd $$i; make DISKIOSUBDIR_IN="$(DISKIOSUBDIR)" clean; cd ..;done) +- -rm -f *.o *@.[ch] ++ rm -f *.o *@.[ch] + + install: + @(for subdir in interface; do echo cd $$subdir; cd $$subdir; make INSTALL_IN="$(INSTALL_DIR)" DISKIOSUBDIR_IN="$(DISKIOSUBDIR)" RANLIB_IN="$(RANLIB)" install; cd ..;done) +- -cp diskiolib.o $(INSTALL_DIR)/lib +- -cp *.h $(INSTALL_DIR)/include ++ cp diskiolib.o $(INSTALL_DIR)/lib ++ cp *.h $(INSTALL_DIR)/include + + + +Index: genesis-2.2.1/src/hh/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/hh/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/hh/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -128,26 +128,26 @@ + $(CC) $(CFLAGS) $(SIMINCLUDE) $< -c + + $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_g@.h: $(STARTUP) +- - $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) ++ $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) + + # make the data structure section of the symbol table + + $(LIBRARY_NAME)_d@.c : $(STRUCTURES) +- - $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) +- - $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ ++ $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) ++ $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ + -I $(EXT_HEADER) -NI -o $(LIBRARY_NAME)_d@.c +- - rm $(TMPDIR)/$(STRUCTURES) ++ rm $(TMPDIR)/$(STRUCTURES) + + # make the function list section of the symbol table + + $(LIBRARY_NAME)_f@.c : $(FUNCTIONS) +- - $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ ++ $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ + > $(LIBRARY_NAME)_f@.c + + # make the library header function + + $(LIBRARY_NAME)_l@.c : $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_d@.c $(OBJECTS) +- - $(SYS)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c ++ $(SYS)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c + + SYMBOLTAB = $(LIBRARY_NAME)_d@.o $(LIBRARY_NAME)_g@.o $(LIBRARY_NAME)_l@.o + +@@ -156,9 +156,9 @@ + $(LIBORDER) $(TARGET_OBJ) + + install: +- -cp $(TARGET_OBJ) $(INSTALL_LIB) +- -$(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) +- -cp *.h $(INSTALL_INCLUDE) ++ cp $(TARGET_OBJ) $(INSTALL_LIB) ++ $(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) ++ cp *.h $(INSTALL_INCLUDE) + + freeze: + rcsclean +@@ -166,8 +166,8 @@ + co Makefile *.h,v *.g,v $(FUNCTIONS) + + clean: +- -rm -f *.a *.o *@.[ch] ++ rm -f *.a *.o *@.[ch] + + rcsclean: clean +- - rcsclean ++ rcsclean + co Makefile *.h,v *.g,v $(FUNCTIONS) +Index: genesis-2.2.1/src/hines/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/hines/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/hines/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -140,20 +140,20 @@ + $(OBJECTS) : $(HEADERS) + + $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_g@.h: $(STARTUP) +- - $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) ++ $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) + + # make the data structure section of the symbol table + + $(LIBRARY_NAME)_d@.c : $(STRUCTURES) +- - $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) +- - $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ ++ $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) ++ $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ + -I $(EXT_HEADER) -NI -o $(LIBRARY_NAME)_d@.c +- - rm $(TMPDIR)/$(STRUCTURES) ++ rm $(TMPDIR)/$(STRUCTURES) + + # make the function list section of the symbol table + + $(LIBRARY_NAME)_f@.c : $(FUNCTIONS) +- - $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ ++ $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ + > $(LIBRARY_NAME)_f@.c + + # make the library header function +@@ -169,10 +169,10 @@ + $(LIBORDER) $(TARGET_OBJ) + + install: +- -cp $(TARGET_OBJ) $(INSTALL_LIB) +- -$(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) +- -cp *.h $(INSTALL_INCLUDE) ++ cp $(TARGET_OBJ) $(INSTALL_LIB) ++ $(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) ++ cp *.h $(INSTALL_INCLUDE) + + clean: +- -rm -f *.a *.o *@.[ch] ++ rm -f *.a *.o *@.[ch] + +Index: genesis-2.2.1/src/kinetics/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/kinetics/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/kinetics/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -153,27 +153,27 @@ + $(CC) $(CFLAGS) $(GENESIS_INCLUDE) $< -c + + $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_g@.h: $(STARTUP) +- - $(GENESIS_LIB)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) \ ++ $(GENESIS_LIB)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) \ + -cstartup copyleft_kin + + # make the data structure section of the symbol table + + $(LIBRARY_NAME)_d@.c : $(STRUCTURES) $(GENESIS_LIB)/code_sym +- - $(CPP) $(STRUCTURES) /tmp/$(STRUCTURES) $(GENESIS_INCLUDE) +- - $(GENESIS_LIB)/code_sym /tmp/$(STRUCTURES) $(LIBRARY_NAME) \ ++ $(CPP) $(STRUCTURES) /tmp/$(STRUCTURES) $(GENESIS_INCLUDE) ++ $(GENESIS_LIB)/code_sym /tmp/$(STRUCTURES) $(LIBRARY_NAME) \ + -I $(EXT_HEADER) -NI -o $(LIBRARY_NAME)_d@.c +- - rm /tmp/$(STRUCTURES) ++ rm /tmp/$(STRUCTURES) + + # make the function list section of the symbol table + + $(LIBRARY_NAME)_f@.c : $(FUNCTIONS) $(GENESIS_LIB)/code_func +- - $(GENESIS_LIB)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ ++ $(GENESIS_LIB)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ + > $(LIBRARY_NAME)_f@.c + + # make the library header function + + $(LIBRARY_NAME)_l@.c: $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_d@.c $(FSYMBOLTAB_C) $(GENESIS_LIB)/code_lib $(OBJECTS) +- - $(GENESIS_LIB)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c ++ $(GENESIS_LIB)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c + + SYMBOLTAB = $(LIBRARY_NAME)_d@.o $(LIBRARY_NAME)_g@.o $(FSYMBOLTAB) $(LIBRARY_NAME)_l@.o + +@@ -182,9 +182,9 @@ + $(LIBORDER) $(TARGET_OBJ) + + install: +- -cp $(TARGET_OBJ) $(INSTALL_LIB) +- -$(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) +- -cp *.h $(INSTALL_INCLUDE) ++ cp $(TARGET_OBJ) $(INSTALL_LIB) ++ $(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) ++ cp *.h $(INSTALL_INCLUDE) + + clean: +- -rm -f *.o; rm -rf *@.[ch] ++ rm -f *.o; rm -rf *@.[ch] +Index: genesis-2.2.1/src/newconn/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/newconn/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/newconn/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -180,26 +180,26 @@ + $(CC) $(CFLAGS) $(SIMINCLUDE) $(HINESINCLUDE) $(SEGINCLUDE) $< -c + + $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_g@.h: $(STARTUP) +- - $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) ++ $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) + + # make the data structure section of the symbol table + + $(LIBRARY_NAME)_d@.c : $(STRUCTURES) +- - $(CPP) $(SIMINCLUDE) $(HINESINCLUDE) $(SEGINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) +- - $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ ++ $(CPP) $(SIMINCLUDE) $(HINESINCLUDE) $(SEGINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) ++ $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ + -I $(EXT_HEADER) -NI -o $(LIBRARY_NAME)_d@.c +- - rm $(TMPDIR)/$(STRUCTURES) ++ rm $(TMPDIR)/$(STRUCTURES) + + # make the function list section of the symbol table + + $(LIBRARY_NAME)_f@.c : $(FUNCTIONS) +- - $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ ++ $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ + > $(LIBRARY_NAME)_f@.c + + # make the library header function + + $(LIBRARY_NAME)_l@.c : $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_d@.c $(OBJECTS) +- - $(SYS)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c ++ $(SYS)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c + + SYMBOLTAB = $(LIBRARY_NAME)_d@.o $(LIBRARY_NAME)_g@.o $(LIBRARY_NAME)_l@.o + +@@ -208,11 +208,11 @@ + $(LIBORDER) $(TARGET_OBJ) + + install: +- -cp $(TARGET_OBJ) $(INSTALL_LIB) +- -$(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) +- -cp *.h $(INSTALL_INCLUDE) ++ cp $(TARGET_OBJ) $(INSTALL_LIB) ++ $(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) ++ cp *.h $(INSTALL_INCLUDE) + + freeze: + + clean: +- -rm -f *.a *.o *@.[ch] ++ rm -f *.a *.o *@.[ch] +Index: genesis-2.2.1/src/olf/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/olf/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/olf/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -149,18 +149,18 @@ + # make the data structure section of the symbol table + + $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_g@.h: $(STARTUP) +- - $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) ++ $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) + + # make the function list section of the symbol table + + $(LIBRARY_NAME)_d@.c : $(STRUCTURES) +- - $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) +- - $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ ++ $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) ++ $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ + -I $(EXT_HEADER) -NI -o $(LIBRARY_NAME)_d@.c +- - rm $(TMPDIR)/$(STRUCTURES) ++ rm $(TMPDIR)/$(STRUCTURES) + + $(LIBRARY_NAME)_f@.c : $(FUNCTIONS) +- - $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ ++ $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ + > $(LIBRARY_NAME)_f@.c + + # make the library header function +@@ -176,9 +176,9 @@ + $(LIBORDER) $(TARGET_OBJ) + + install: +- -cp $(TARGET_OBJ) $(INSTALL_LIB) +- -$(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) +- -cp *.h $(INSTALL_INCLUDE) ++ cp $(TARGET_OBJ) $(INSTALL_LIB) ++ $(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) ++ cp *.h $(INSTALL_INCLUDE) + + freeze: + rcsclean +@@ -186,8 +186,8 @@ + co Makefile *.h,v *.g,v $(FUNCTIONS) + + clean: +- -rm -f *.a *.o *@.[ch] ++ rm -f *.a *.o *@.[ch] + + rcsclean: clean +- - rcsclean ++ rcsclean + co Makefile *.h,v *.g,v $(FUNCTIONS) +Index: genesis-2.2.1/src/out/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/out/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/out/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -146,26 +146,26 @@ + # $(WIDG_OBJECTS) : $(HEADERS) + + $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_g@.h: $(STARTUP) +- - $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) ++ $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) + + # make the data structure section of the symbol table + + $(LIBRARY_NAME)_d@.c : $(STRUCTURES) +- - $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) +- - $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ ++ $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) ++ $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ + -I $(EXT_HEADER) -NI -o $(LIBRARY_NAME)_d@.c +- - rm $(TMPDIR)/$(STRUCTURES) ++ rm $(TMPDIR)/$(STRUCTURES) + + # make the function list section of the symbol table + + $(LIBRARY_NAME)_f@.c : $(FUNCTIONS) +- - $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ ++ $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ + > $(LIBRARY_NAME)_f@.c + + # make the library header function + + $(LIBRARY_NAME)_l@.c : $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_d@.c $(OBJECTS) +- - $(SYS)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c ++ $(SYS)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c + + SYMBOLTAB = $(LIBRARY_NAME)_d@.o $(LIBRARY_NAME)_g@.o $(LIBRARY_NAME)_l@.o + +@@ -174,9 +174,9 @@ + $(LIBORDER) $(TARGET_OBJ) + + install: +- -cp $(TARGET_OBJ) $(INSTALL_LIB) +- -$(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) +- -cp *.h $(INSTALL_INCLUDE) ++ cp $(TARGET_OBJ) $(INSTALL_LIB) ++ $(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) ++ cp *.h $(INSTALL_INCLUDE) + + freeze: + rcsclean +@@ -184,8 +184,8 @@ + co Makefile *.h,v *.g,v $(FUNCTIONS) + + clean: +- -rm -f *.a *.o *@.[ch] ++ rm -f *.a *.o *@.[ch] + + rcsclean: clean +- - rcsclean ++ rcsclean + co Makefile *.h,v *.g,v $(FUNCTIONS) +Index: genesis-2.2.1/src/param/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/param/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/param/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -82,7 +82,7 @@ + $(CC) $(CFLAGS) $(GENESIS_INCLUDE) $< -c + + $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_g@.h: $(STARTUP) +- - $(GENESIS_LIB)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) ++ $(GENESIS_LIB)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) + + $(LIBRARY_NAME)_g@.o: $(LIBRARY_NAME)_g@.c + $(CC) $(CFLAGS) $(GENESIS_INCLUDE) $< -c +@@ -90,10 +90,10 @@ + # make the data structure section of the symbol table + + $(LIBRARY_NAME)_d@.c : $(STRUCTURES) $(GENESIS_LIB)/code_sym +- - $(CPP) $(STRUCTURES) /tmp/$(STRUCTURES) $(GENESIS_INCLUDE) +- - $(GENESIS_LIB)/code_sym /tmp/$(STRUCTURES) $(LIBRARY_NAME) \ ++ $(CPP) $(STRUCTURES) /tmp/$(STRUCTURES) $(GENESIS_INCLUDE) ++ $(GENESIS_LIB)/code_sym /tmp/$(STRUCTURES) $(LIBRARY_NAME) \ + -I $(EXT_HEADER) -NI -o $(LIBRARY_NAME)_d@.c +- - rm /tmp/$(STRUCTURES) ++ rm /tmp/$(STRUCTURES) + + $(LIBRARY_NAME)_d@.o : $(LIBRARY_NAME)_d@.c + $(CC) $(CFLAGS) $(GENESIS_INCLUDE) $< -c +@@ -102,7 +102,7 @@ + + $(LIBRARY_NAME)_l@.c: $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_d@.c \ + $(FSYMBOLTAB_C) $(GENESIS_LIB)/code_lib $(OBJECTS) +- - $(GENESIS_LIB)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c ++ $(GENESIS_LIB)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c + + $(LIBRARY_NAME)_l@.o: $(LIBRARY_NAME)_l@.c + $(CC) $(CFLAGS) $(GENESIS_INCLUDE) $< -c +@@ -115,9 +115,9 @@ + $(LD) $(LDFLAGS) -r -o $(TARGET_OBJ) $(OBJECTS) $(SYMBOLTAB) + + install: +- -cp $(TARGET_OBJ) $(INSTALL_LIB) +- -$(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) +- -cp *.h $(INSTALL_INCLUDE) ++ cp $(TARGET_OBJ) $(INSTALL_LIB) ++ $(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) ++ cp *.h $(INSTALL_INCLUDE) + + clean: +- -rm -f *.o; rm -rf *@.[ch] ++ rm -f *.o; rm -rf *@.[ch] +Index: genesis-2.2.1/src/pore/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/pore/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/pore/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -109,25 +109,25 @@ + $(OBJECTS) : $(HEADERS) + + $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_g@.h: $(STARTUP) +- - $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) ++ $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) + + # make the data structure section of the symbol table + + $(LIBRARY_NAME)_d@.c : $(STRUCTURES) +- - $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) +- - $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ ++ $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) ++ $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ + -I $(EXT_HEADER) -NI -o $(LIBRARY_NAME)_d@.c +- - rm $(TMPDIR)/$(STRUCTURES) ++ rm $(TMPDIR)/$(STRUCTURES) + + # make the function list section of the symbol table + + $(LIBRARY_NAME)_f@.c : $(FUNCTIONS) +- - $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ ++ $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ + > $(LIBRARY_NAME)_f@.c + + # make the library header function + $(LIBRARY_NAME)_l@.c : $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_d@.c $(OBJECTS) +- - $(SYS)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c ++ $(SYS)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c + + + +@@ -138,9 +138,9 @@ + $(LIBORDER) $(TARGET_OBJ) + + install: +- -cp $(TARGET_OBJ) $(INSTALL_LIB) +- -$(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) +- -cp *.h $(INSTALL_INCLUDE) ++ cp $(TARGET_OBJ) $(INSTALL_LIB) ++ $(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) ++ cp *.h $(INSTALL_INCLUDE) + + freeze: + rcsclean +@@ -151,8 +151,8 @@ + cd examples/VClamp; rcsfreeze $(VERSION) + + clean: +- -rm -f *.a *.o *@.[ch] ++ rm -f *.a *.o *@.[ch] + + rcsclean: clean +- - rcsclean ++ rcsclean + co Makefile *.h,v *.g,v $(FUNCTIONS) +Index: genesis-2.2.1/src/segment/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/segment/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/segment/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -145,26 +145,26 @@ + $(CC) $(CFLAGS) $(SIMINCLUDE) $< -c + + $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_g@.h: $(STARTUP) +- - $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) ++ $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) + + # make the data structure section of the symbol table + + $(LIBRARY_NAME)_d@.c : $(STRUCTURES) +- - $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) +- - $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ ++ $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) ++ $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ + -I $(EXT_HEADER) -NI -o $(LIBRARY_NAME)_d@.c +- - rm $(TMPDIR)/$(STRUCTURES) ++ rm $(TMPDIR)/$(STRUCTURES) + + # make the function list section of the symbol table + + $(LIBRARY_NAME)_f@.c : $(FUNCTIONS) +- - $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ ++ $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ + > $(LIBRARY_NAME)_f@.c + + # make the library header function + + $(LIBRARY_NAME)_l@.c : $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_d@.c $(OBJECTS) +- - $(SYS)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c ++ $(SYS)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c + + SYMBOLTAB = $(LIBRARY_NAME)_d@.o $(LIBRARY_NAME)_g@.o $(LIBRARY_NAME)_l@.o + +@@ -173,9 +173,9 @@ + $(LIBORDER) $(TARGET_OBJ) + + install: +- -cp $(TARGET_OBJ) $(INSTALL_LIB) +- -$(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) +- -cp *.h $(INSTALL_INCLUDE) ++ cp $(TARGET_OBJ) $(INSTALL_LIB) ++ $(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) ++ cp *.h $(INSTALL_INCLUDE) + + freeze: + rcsclean +@@ -183,8 +183,8 @@ + co Makefile *.h,v *.g,v $(FUNCTIONS) + + clean: +- -rm -f *.a *.o *@.[ch] ++ rm -f *.a *.o *@.[ch] + + rcsclean: clean +- - rcsclean ++ rcsclean + co Makefile *.h,v *.g,v $(FUNCTIONS) +Index: genesis-2.2.1/src/shell/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/shell/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/shell/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -174,12 +174,12 @@ + # $(OBJECTS) : $(HEADERS) + + $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_g@.h: $(STARTUP) +- - $(SYS)/code_g $(STARTUP) shell_ext.h $(LIBRARY_NAME) -novar ++ $(SYS)/code_g $(STARTUP) shell_ext.h $(LIBRARY_NAME) -novar + + # make the function list section of the symbol table + + $(LIBRARY_NAME)_f@.c : $(FUNCTIONS) +- - $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ ++ $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ + > $(LIBRARY_NAME)_f@.c + + SYMBOLTAB = $(LIBRARY_NAME)_g@.o +@@ -197,9 +197,9 @@ + ../shell/shelllib.o ../sys/utillib.o -o demo $(LIBS) + + install: +- -cp $(TARGET_OBJ) $(INSTALL_LIB) +- -$(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) +- -cp *.h $(INSTALL_INCLUDE) ++ cp $(TARGET_OBJ) $(INSTALL_LIB) ++ $(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) ++ cp *.h $(INSTALL_INCLUDE) + + freeze: + rcsclean +@@ -207,8 +207,8 @@ + co Makefile *.h,v *.g,v $(FUNCTIONS) + + clean: +- -rm -f *.a *.o *@.[ch] ++ rm -f *.a *.o *@.[ch] + + rcsclean: clean +- - rcsclean ++ rcsclean + co Makefile *.h,v *.g,v $(FUNCTIONS) +Index: genesis-2.2.1/src/sim/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/sim/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/sim/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -234,20 +234,20 @@ + # $(OBJECTS) : $(HEADERS) + + $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_g@.h: $(STARTUP) +- - $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) ++ $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) + + # make the data structure section of the symbol table + + $(LIBRARY_NAME)_d@.c : $(STRUCTURES) +- - $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) +- - $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ ++ $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) ++ $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ + -I $(EXT_HEADER) -NI -o $(LIBRARY_NAME)_d@.c +- - rm $(TMPDIR)/$(STRUCTURES) ++ rm $(TMPDIR)/$(STRUCTURES) + + # make the function list section of the symbol table + + $(LIBRARY_NAME)_f@.c : $(FUNCTIONS) +- - $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ ++ $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ + > $(LIBRARY_NAME)_f@.c + + SYMBOLTAB = $(LIBRARY_NAME)_d@.o $(LIBRARY_NAME)_f@.o $(LIBRARY_NAME)_g@.o +@@ -257,9 +257,9 @@ + $(LIBORDER) $(TARGET_OBJ) + + install: +- -cp $(TARGET_OBJ) $(INSTALL_LIB) +- -$(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) +- -cp *.h $(INSTALL_INCLUDE) ++ cp $(TARGET_OBJ) $(INSTALL_LIB) ++ $(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) ++ cp *.h $(INSTALL_INCLUDE) + + freeze: + rcsclean +@@ -267,7 +267,7 @@ + co Makefile *.h,v *.g,v $(FUNCTIONS),v + + clean: +- -rm -f *.a *.o *@.[ch] ++ rm -f *.a *.o *@.[ch] + + rcsclean: clean + - rcsclean +Index: genesis-2.2.1/src/sprng/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/sprng/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/sprng/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -64,9 +64,9 @@ + @rm -f core *~ check* time* *.data + + install: +- -cp lib/lib$(SPRNG_LIB).a $(INSTALL_LIB) +- -$(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) +- -cp include/*.h $(INSTALL_INCLUDE) ++ cp lib/lib$(SPRNG_LIB).a $(INSTALL_LIB) ++ $(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) ++ cp include/*.h $(INSTALL_INCLUDE) + + freeze: + +Index: genesis-2.2.1/src/ss/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/ss/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/ss/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -144,11 +144,11 @@ + $(YACC) -dv script.y + + realclean: +- -rm -f *.a *.o y.tab.h y.tab.c lex.yy.c ++ rm -f *.a *.o y.tab.h y.tab.c lex.yy.c + + install: +- -cp $(TARGET_OBJ) $(INSTALL_DIR)/lib +- -$(LIBORDER) $(INSTALL_DIR)/lib/$(TARGET_OBJ) ++ cp $(TARGET_OBJ) $(INSTALL_DIR)/lib ++ $(LIBORDER) $(INSTALL_DIR)/lib/$(TARGET_OBJ) + + freeze: + rcsclean +@@ -156,7 +156,7 @@ + co Makefile *.h,v script.y script.l + + clean: +- -rm -f *.a *.o y.tab.h y.tab.c y.output lex.yy.c ++ rm -f *.a *.o y.tab.h y.tab.c y.output lex.yy.c + + rcsclean: clean + - rcsclean +Index: genesis-2.2.1/src/startup/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/startup/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/startup/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -18,11 +18,11 @@ + co -r$(RCSRELEASE) Makefile $(OBJS) simrc nxsimrc minsimrc Usermake Libmake + + install: +- - /bin/cp $(OBJS) $(INSTALL_STARTUPS) +- - ./configrc simrc $(INSTALL) > $(INSTALL)/.simrc +- - ./configrc nxsimrc $(INSTALL) > $(INSTALL)/.nxsimrc +- - ./configrc minsimrc $(INSTALL) > $(INSTALL)/.minsimrc +- - ./configrc Usermake $(INSTALL) > $(INSTALL)/Usermake +- - ./configrc Libmake $(INSTALL) > $(INSTALL)/Libmake +- - /bin/cp $(INSTALL)/.simrc $(INSTALL_STARTUPS)/.simrc ++ /bin/cp $(OBJS) $(INSTALL_STARTUPS) ++ ./configrc simrc $(INSTALL) > $(INSTALL)/.simrc ++ ./configrc nxsimrc $(INSTALL) > $(INSTALL)/.nxsimrc ++ ./configrc minsimrc $(INSTALL) > $(INSTALL)/.minsimrc ++ ./configrc Usermake $(INSTALL) > $(INSTALL)/Usermake ++ ./configrc Libmake $(INSTALL) > $(INSTALL)/Libmake ++ /bin/cp $(INSTALL)/.simrc $(INSTALL_STARTUPS)/.simrc + +Index: genesis-2.2.1/src/sys/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/sys/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/sys/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -137,9 +137,9 @@ + $(CC) $(CFLAGS) -D$(OS) -o code_sym code_sym.c + + install: +- -cp $(TARGET_OBJ) code_lib code_func code_sym code_g $(INSTALL_LIB) +- -$(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) +- -cp *.h $(INSTALL_INCLUDE) ++ cp $(TARGET_OBJ) code_lib code_func code_sym code_g $(INSTALL_LIB) ++ $(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) ++ cp *.h $(INSTALL_INCLUDE) + + freeze: + rcsclean +@@ -147,12 +147,12 @@ + co Makefile *.h,v code_lib.c code_func.c code_sym.c code_g.c + + clean: +- -rm -f *.a *.o code_lib code_func code_sym code_g ++ rm -f *.a *.o code_lib code_func code_sym code_g + + rcsclean: clean + -rcsclean + co -r$(RCSRELEASE) Makefile *.h,v code_lib.c code_func.c code_sym.c code_g.c + + all: +- -rm -f code_lib code_func code_sym ++ rm -f code_lib code_func code_sym + make default +Index: genesis-2.2.1/src/tools/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/tools/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/tools/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -153,25 +153,25 @@ + $(OBJECTS) : $(HEADERS) + + $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_g@.h: $(STARTUP) +- - $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) ++ $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) + + # make the data structure section of the symbol table + + $(LIBRARY_NAME)_d@.c : $(STRUCTURES) +- - $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) +- - $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ ++ $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) ++ $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ + -I $(EXT_HEADER) -NI -o $(LIBRARY_NAME)_d@.c +- - rm $(TMPDIR)/$(STRUCTURES) ++ rm $(TMPDIR)/$(STRUCTURES) + + # make the function list section of the symbol table + + $(LIBRARY_NAME)_f@.c : $(FUNCTIONS) +- - $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ ++ $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ + > $(LIBRARY_NAME)_f@.c + + # make the library header function + $(LIBRARY_NAME)_l@.c : $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_d@.c $(OBJECTS) +- - $(SYS)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c ++ $(SYS)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c + + + +@@ -182,9 +182,9 @@ + $(LIBORDER) $(TARGET_OBJ) + + install: +- -cp $(TARGET_OBJ) $(INSTALL_LIB) +- -$(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) +- -cp *.h $(INSTALL_INCLUDE) ++ cp $(TARGET_OBJ) $(INSTALL_LIB) ++ $(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) ++ cp *.h $(INSTALL_INCLUDE) + + freeze: + rcsclean +@@ -192,7 +192,7 @@ + co Makefile *.h,v *.g,v $(FUNCTIONS) + + clean: +- -rm -f *.a *.o *@.[ch] ++ rm -f *.a *.o *@.[ch] + + rcsclean: clean + - rcsclean +Index: genesis-2.2.1/src/user/Makefile +=================================================================== +--- genesis-2.2.1.orig/src/user/Makefile 2006-10-07 14:19:59.000000000 +0200 ++++ genesis-2.2.1/src/user/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -118,26 +118,26 @@ + $(CC) $(CFLAGS) $(SIMINCLUDE) $< -c + + $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_g@.h: $(STARTUP) +- - $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) ++ $(SYS)/code_g $(STARTUP) $(EXT_HEADER) $(LIBRARY_NAME) + + # make the data structure section of the symbol table + + $(LIBRARY_NAME)_d@.c : $(STRUCTURES) +- - $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) +- - $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ ++ $(CPP) $(SIMINCLUDE) $(STRUCTURES) $(TMPDIR)/$(STRUCTURES) ++ $(SYS)/code_sym $(TMPDIR)/$(STRUCTURES) $(LIBRARY_NAME) \ + -I $(EXT_HEADER) -NI -o $(LIBRARY_NAME)_d@.c +- - rm $(TMPDIR)/$(STRUCTURES) ++ rm $(TMPDIR)/$(STRUCTURES) + + # make the function list section of the symbol table + + $(LIBRARY_NAME)_f@.c : $(FUNCTIONS) +- - $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ ++ $(SYS)/code_func $(FUNCTIONS) $(LIBRARY_NAME) \ + > $(LIBRARY_NAME)_f@.c + + # make the library header function + + $(LIBRARY_NAME)_l@.c : $(LIBRARY_NAME)_g@.c $(LIBRARY_NAME)_d@.c $(OBJECTS) +- - $(SYS)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c ++ $(SYS)/code_lib $(LIBRARY_NAME) -o $(LIBRARY_NAME)_l@.c + + SYMBOLTAB = $(LIBRARY_NAME)_d@.o $(LIBRARY_NAME)_g@.o $(LIBRARY_NAME)_l@.o + +@@ -146,9 +146,9 @@ + $(LIBORDER) $(TARGET_OBJ) + + install: +- -cp $(TARGET_OBJ) $(INSTALL_LIB) +- -$(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) +- -cp *.h $(INSTALL_INCLUDE) ++ cp $(TARGET_OBJ) $(INSTALL_LIB) ++ $(LIBORDER) $(INSTALL_LIB)/$(TARGET_OBJ) ++ cp *.h $(INSTALL_INCLUDE) + + freeze: + rcsclean +@@ -156,7 +156,7 @@ + co Makefile *.h,v *.g,v $(FUNCTIONS) + + clean: +- -rm -f *.a *.o *@.[ch] ++ rm -f *.a *.o *@.[ch] + + rcsclean: clean + - rcsclean +Index: genesis-2.2.1/src/Makefile +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ genesis-2.2.1/src/Makefile 2006-10-07 14:20:02.000000000 +0200 +@@ -0,0 +1,2001 @@ ++# $Id: Makefile,v 1.1 2001/11/05 16:04:22 baux Exp $ ++# ++# G E N E S I S ++# The General Neural Simulation System ++# Version 2.2 ++# ++# SYNOPSIS: This is the top-level Makefile for GENESIS. ++# YOU MUST EDIT THIS FILE BEFORE RUNNING "make". ++# Please follow the procedure given below. ++# ++# TABLE OF CONTENTS ++# A. Procedure for building and installing GENESIS ++# B. Installation configuration settings ++# C. Optional libraries ++# D. Definitions for specific operating system and compiler in use ++# E. Custom settings ++# F. Beginning of non-configurable definitions ++# G. Revision history ++# ++# ---------------------------------------------------------------------- ++# A. PROCEDURE FOR BUILDING AND INSTALLING GENESIS ++# ---------------------------------------------------------------------- ++# ++# 1) Look through the rest of this file for a block of definitions for ++# your particular computer operating system and compiler combination. ++# For example, the definitions suggested for Solaris 2.x when using ++# the Sun Workshop C compiler begins with lines that look like this: ++# ++# # System: Solaris 2.x (A.K.A. SunOS 5.x) ++# # Compiler: Sun Workshop "cc" ++# ++# Note that some system/compiler combinations have several variations ++# below, so look carefully at all of them before chosing one. ++# ++# 2) Uncomment the definitions for your operating system/compiler ++# combination. NOTE: MAKE SURE THAT NO OTHER SYSTEM/COMPILER SECTION ++# IS UNCOMMENTED. ++# ++# 3) Execute the command "make". ++# ++# 4) Execute the command "make install". ++# ++# 5) Execute the command "make clean". ++# ++# ++# ADDITIONAL INFORMATION: ++# If you run into problems compiling this package, consult the "CUSTOM ++# SETTINGS" section below, where you may override the default settings. ++# If one of the optional libraries fails to compile, comment out the ++# library's macros in the "Optional libraries" section. ++# ++# GENESIS can also be built without the XODUS graphics libraries by ++# replacing the commands in steps 2 and 3 with "make nxall" and ++# "make nxinstall". A GENESIS without any libraries can be built ++# with the commands "make minall" and "make mininstall". ++# ++ ++# ---------------------------------------------------------------------- ++# B. INSTALLATION CONFIGURATION SETTINGS ++# ---------------------------------------------------------------------- ++ ++# The following variable determines where GENESIS is placed by the ++# "make install" command. ++ ++INSTALL = `pwd`/.. ++ ++# ---------------------------------------------------------------------- ++# C. OPTIONAL LIBRARIES ++# ---------------------------------------------------------------------- ++# ++# The following libraries are optional. If you comment the macros for a ++# given library here the library will not be compiled or linked into the ++# executable. ++ ++# ++# kinetics --- Kinetic modeling library (necessary for kkit) ++# ++ ++KINETICSLIB = kin ++KINETICSDIR = kinetics ++KINETICSOBJ = $(KINETICSDIR)/kinlib.o ++ ++# ++# diskio --- Binary file format support library ++# ++ ++# Please note that all the macros here need to be uncommented if diskio ++# support is to be included. FMT1 support is therefore included by ++# default when the diskio library is linked in. ++ ++FMT1SUBDIR = FMT1 ++FMT1OBJ = $(DISKIODIR)/interface/FMT1/FMT1lib.o ++FMT1FLAGS = -DFMT1 ++ ++DISKIOLIB = diskio ++DISKIODIR = diskio ++DISKIOSUBDIR = $(NETCDFSUBDIR) \ ++ $(FMT1SUBDIR) ++DISKIOOBJ = $(NETCDFOBJ) \ ++ $(FMT1OBJ) \ ++ $(DISKIODIR)/diskiolib.o ++DISKIOFLAGS = $(NETCDFFLAGS) \ ++ $(FMT1FLAGS) ++ ++# Uncomment the following definitions if the netCDF file format needs to ++# be supported by diskio. netCDF is a system-independent, portable, ++# binary file format. See the directory src/diskio/interface/netcdf for ++# more information. NOTE: *only* uncomment the netCDF definitions below ++# if diskio support is included above. ++# ++# As of June, 2001, the GENESIS developers have not successfully ++# built the netcdf libraries under SunOS 4.1. If you are running ++# SunOS 4.1, you should comment out all three of the following. ++ ++NETCDFSUBDIR = netcdf ++NETCDFOBJ = \ ++ $(DISKIODIR)/interface/$(NETCDFSUBDIR)/netcdflib.o ++ #$(DISKIODIR)/interface/$(NETCDFSUBDIR)/netcdf-3.4/src/libsrc/libnetcdf.a ++NETCDFFLAGS = -Dnetcdf ++ ++# ++# oldconn --- GENESIS 1.4 network connection compatibility library ++# ++ ++# The following is only necessary for GENESIS 1.4 network models ++# minimally ported to GENESIS 2.x. NOTE: some of the tutorials/demos ++# utilize this library. ++ ++OLDCONNLIB = axon synapse personal toolconn simconn ++OLDCONNDIR = oldconn ++OLDCONNOBJ = $(OLDCONNDIR)/axon/axonlib.o \ ++ $(OLDCONNDIR)/synapse/synlib.o \ ++ $(OLDCONNDIR)/personal/perlib.o \ ++ $(OLDCONNDIR)/sim/simconnlib.o \ ++ $(OLDCONNDIR)/tools/toolconnlib.o ++ ++# ++# SPRNG -- Improved random number generation ++# ++ ++# The SPRNG library provides five random number generators. To use ++# SPRNG, you must specify SPRNG as one and only one of lfg, lcg, ++# lcg64, or cmrg here. Lagged Fibonacci is the default as it is the ++# fastest and has the longest number sequence. ++# ++# Further information about SPRNG can be found at http://sprng.cs.fsu.edu/ ++# The link to the users guide to installation on various platforms ++# (http://daniel.scri.fsu.edu/www/version1.0/platforms.html) may be useful ++# to address compilation problems with the SPRNG 1 version used in GENESIS. ++# ++# As of June, 2001, the GENESIS developers have not successfully ++# built the SPRNG libraries under SunOS 4.1. If you are running ++# SunOS 4.1, you should disable compiling of SPRNG. ++# ++# If you are compiling on a 64-bit SGI, change "lfg" to "lcg64" below. ++ ++SPRNG_LIB = lfg ++ ++# Disable compiling of SPRNG by uncommenting the following line and ++# commenting out all the other SPRNG lines below. If GENESIS has ++# already been compiled, you'll have to do "make clean" before making ++# GENESIS again. ++# ++# SPRNG_FLAG= ++# ++ ++SPRNG_FLAG = -DINCSPRNG ++SPRNGLIB = sprng/lib/lib$(SPRNG_LIB).a ++SPRNGDIR = sprng ++ ++ ++# ---------------------------------------------------------------------- ++# D. DEFINITIONS FOR SPECIFIC OPERATING SYSTEM AND COMPILER IN USE ++# ---------------------------------------------------------------------- ++# ++# Below are some compiler dependent settings for various system/compiler ++# combinations. Uncomment the appropriate macro settings for your system ++# and compiler combination. ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: SunOS 4.1.x ++# Compiler: SunOS 4.1.x "cc" ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++# MACHINE=sun4 ++# OS=BSD ++ ++# XINCLUDE=/usr/include ++# XLIB=/usr/lib ++ ++# CC=cc ++# CPP=/lib/cpp -P ++# CFLAGS=-O ++# LD=ld ++ ++## NOTE: If you get unresolved references for X11 library symbols in the ++## final link step during compilation, add ++## ++## -Bstatic ++## ++## to the LDFLAGS definition here. This is a documented problem with ++## X11 and SunOS shared libraries. If you want information on fixes for ++## this problem look for faq #112 in: ++## ++## http://www.x.org/ftp/contrib/faqs/x-faq-multipart/x-faq-5 ++## ++ ++# LDFLAGS= ++ ++# RANLIB=ranlib ++# AR=ar ++ ++# YACC=yacc ++# PARSER=yacc ++# LEX=lex ++# LEXLIB=-ll ++# LIBS= $(LEXLIB) -lm ++ ++# TERMCAP=-ltermcap ++# TERMOPT=-DTERMIO ++ ++# end SunOS 4.1.x ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: Solaris 2.x (A.K.A. SunOS 5.x) ++# Compiler: Sun Workshop "cc" ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++# MACHINE=Solaris ++# OS=SYSV ++ ++# XINCLUDE=/usr/openwin/include ++# XLIB=/usr/openwin/lib ++ ++## Note: Do not increase the optimization level higher than -xO1, at least ++## for version "WorkShop Compilers 5.0 98/12/15 C 5.0". Higher levels cause ++## at least one of the XODUS widgets to fail to work properly, even though no ++## compilation errors are reported. GCC at higher optimization levels does ++## not exhibit this problem. ++ ++# CC=cc ++# CFLAGS=-Xt -xO1 -xlibmil -xprefetch -DBIGENDIAN ++# CPP = /usr/ccs/lib/cpp -P ++ ++# LD=ld ++# LDFLAGS= ++ ++# RANLIB=ranlib ++# AR=ar ++ ++# TERMCAP=-ltermcap ++# TERMOPT=-DTERMIO -DDONT_USE_SIGIO ++ ++## NOTE: In Solaris 2.4 through Solaris 2.6, the Sun-issued "yacc" ++## appears to produce code that interacts badly with the Sun Workshop ++## "cc" compiler when compiling the GENESIS yacc files. If you are ++## running a version of Solaris prior to Solaris 2.7, you will need to ++## obtain the GNU bison distribution (see ftp://ftp.gnu.org), compile ++## it, install it on your system, then uncomment the following lines ++## (the ones with "bison" in them) and also comment out the use of ++## "yacc" further below. (We have successfully compiled GENESIS on ++## Solaris 2.7 using the Sun-supplied yacc, so we don't believe you need ++## to use bison for Solaris 2.7.) ++## ++## If you have a version of Solaris before 2.7, you will also need to ++## obtain the GNU "flex" distribution (see ftp://ftp.gnu.org), compile ++## it, install it, then uncomment the following lines and comment out ++## the use of "lex" below. Substitute the location of the flex library ++## on your system for (or remove -L if ++## the library is installed in a standard library path). ++## ++## YACC = bison -y ++## PARSER = bison ++## ++## LEX = flex -l ++## LEXLIB = -L -lfl ++## LIBS= $(LEXLIB) -lm ++## ++## If you are using Solaris 2.7, leave the YACC and LEX lines above ++## commented out, and uncomment the following lines instead: ++ ++# YACC=yacc ++# PARSER=yacc ++# LEX=lex ++# LEXLIB=-ll ++# LIBS= $(LEXLIB) -lm ++ ++# end Solaris 2.x (aka SunOS 5.x) using Sun Workshop C compiler ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: Solaris 2.x (A.K.A. SunOS 5.x) ++# Compiler: GCC 2.8.1 ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++# MACHINE=Solaris ++# OS=SYSV ++ ++# XINCLUDE=/usr/openwin/include ++# XLIB=/usr/openwin/lib ++ ++# CC=gcc ++# CFLAGS=-O2 -DBIGENDIAN ++# CPP = /usr/ccs/lib/cpp -P ++ ++# LD=ld ++# LDFLAGS= ++ ++# RANLIB=ranlib ++# AR=ar ++ ++## You may choose to use bison and/or flex here instead of the ++## Sun-supplied yacc and/or lex. If so, uncomment the following lines, ++## and comment out the default yacc/lex definitions further below. ++## ++## YACC = bison -y ++## PARSER = bison ++## ++## LEX = flex -l ++## LEXLIB = -L -lfl ++## LIBS= $(LEXLIB) -lm ++ ++# YACC=yacc ++# PARSER=lex ++# LEX=lex ++# LEXLIB=-ll ++# LIBS= $(LEXLIB) -lm ++ ++# TERMCAP=-ltermcap ++# TERMOPT=-DTERMIO -DDONT_USE_SIGIO ++ ++# end Solaris 2.x (aka SunOS 5.x) using GCC 2.8.1 compiler ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: SGI IRIX 6.5 ++# Compiler: SGI C compiler (producing new-style 32 bit executables) ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++## The settings in this section are for N32 mode, the SGI "new" style ++## 32-bit executables with N64 calling conventions and optimizations. ++## They are current as of IRIX 6.5.3 and 6.5.8, tested on R10000-based ++## Octane and O2 systems using the MIPSPro compiler version 7.30. ++## There is a separate section below for 64-bit executables. ++ ++# MACHINE = irix ++# OS = SYSV ++ ++# XINCLUDE = /usr/include ++# XLIB = . ++ ++# CC = cc ++# CPP = /lib/cpp -P ++ ++# CFLAGS = -n32 -xansi -signed -O2 -DBIGENDIAN -OPT:Olimit=6000 $(IRIX_WARN) ++ ++# IRIX_HACK = -w ++# LDFLAGS = -n32 -L/usr/lib32 -LD_MSG:off=85,134 ++# LD = ld ++ ++# RANLIB = ranlib ++# AR = ar ++ ++# YACC = yacc ++# PARSER = yacc ++# LEX = lex ++# LEXLIB = -ll ++# LIBS = $(LEXLIB) -lm ++ ++# TERMCAP = -lcurses ++# TERMOPT = -DTERMIO -DDONT_USE_SIGIO ++ ++## UNCOMMENT ONLY ONE OF THE FOLLOWING. ++## ++## If you are using IRIX 6.5.8, uncomment the next IRIX_WARN line: ++## ++# IRIX_WARN = -woff 1116,1552,1174,3434 ++## ++## If you are using IRIX above 6.5.3 but less than 6.5.8, use the following: ++## ++# IRIX_WARN = -woff 1048,1116,1155,3170 ++## ++## Explanation of the above: the CFLAGS and LDFLAGS settings ++## purposefully disable reporting of certain kinds of warnings via the ++## -woff option, because they are either silly warnings, or else things ++## we cannot fix because they are in code imported from elsewhere (e.g., ++## netCDF), or else things that could be fixed but are not worth it at ++## this time. Yes, we know this is poor practice, but given limited ++## resources, it's the best we can do. ++ ++# end SGI IRIX 6.5.x new-style 32-bit ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: SGI IRIX 6.5 ++# Compiler: SGI C compiler (producing old-style 32-bit executables) ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++## The settings in this section are for O32 mode, the SGI "old" style ++## 32-bit executables. They are current as of IRIX 6.5.3 and 6.5.8, ++## tested on R10000-based Octane and O2 systems. ++ ++# MACHINE = irix ++# OS = SYSV ++ ++# XINCLUDE = /usr/include ++# XLIB = . ++ ++# CC = cc ++# CPP = /lib/cpp -P ++ ++# CFLAGS = -o32 -xansi -signed -O2 -DBIGENDIAN -Olimit 6000 -Wl,-woff,85 -Wl,-woff,134 ++# IRIX_HACK = -w ++# LDFLAGS = -o32 -cckr ++# LD = ld ++ ++# RANLIB = ranlib ++# AR = ar ++ ++# YACC = yacc ++# PARSER = yacc ++# LEX = lex ++# LEXLIB = -ll ++# LIBS = $(LEXLIB) -lm ++ ++# TERMCAP = -lcurses ++# TERMOPT = -DTERMIO -DDONT_USE_SIGIO ++ ++## end SGI IRIX 6.5.x old-style 32-bit ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: SGI IRIX 6.4 ++# Compiler: SGI C compiler (producing old-style 32-bit executables) ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++## This configuration has not been tested by the Caltech GENESIS group since ++## the introduction of IRIX 6.5. If you have a 6.4 system and encounter ++## trouble here, please mail genesis@bbb.caltech.edu. ++ ++# MACHINE=irix ++# OS=SYSV ++ ++# XINCLUDE=/usr/include ++# XLIB=/usr/lib ++ ++# CC=cc -32 ++# CPP=/lib/cpp -P ++# CFLAGS=-cckr -O -G 0 -DBIGENDIAN ++# IRIX_HACK = -w ++ ++# LD=ld -32 ++# LDFLAGS= -O ++ ++# RANLIB=ranlib ++# AR=ar ++ ++# YACC=yacc ++# PARSER=yacc ++# LEX=lex ++# LEXLIB=-ll ++# LIBS= $(LEXLIB) -lm ++ ++# TERMCAP= ++# TERMOPT=-DPLAINTERM ++ ++## end SGI IRIX 6.4 32-bit ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: SGI IRIX 6.5 ++# Compiler: SGI C compiler (producing 64-bit executables) ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++## This configuration is known to work for (and has only been tested on) ++## SGI Origin 2000 running IRIX 6.5.10 with MIPSPro compiler 7.3.1.1m. It ++## may work for other architectures and OS versions, but the GENESIS ++## maintainers do not have experience with other combinations. Please mail ++## genesis@bbb.caltech.edu if you use these settings and tell us about it. ++## If these settings do not work for you, the "new-style 32-bit binary" ++## settings above should still work (but more slowly). ++## ++## If you are using these settings, you *must* also change the file ++## src/sprng/SRC/make.irix to (1) comment out the indicated 32-bit ++## sections and (2) uncomment the indicated 64-bit sections. ++ ++# MACHINE=irix ++# OS=SYSV ++ ++# XINCLUDE=/usr/include ++# XLIB=/usr/lib64 ++ ++# CC=cc -cckr -mips4 -64 -LNO -G 0 -r10000 ++# CPP=/lib/cpp -P ++# CFLAGS=-O2 -Ddecalpha -DBIGENDIAN -DLONGWORDS ++# IRIX_HACK = -w ++# LD=ld -mips4 -64 -G 0 ++# LDFLAGS=-O2 -LNO -r10000 -mips4 -64 -G 0 ++ ++# RANLIB=ranlib ++# AR=ar ++ ++## It appears safest to use bison and flex instead of yacc and lex. ++## See the README file for information on obtaining bison and flex. ++ ++# YACC=bison -y ++# PARSER=bison ++# LEX=flex -l ++# LEXLIB=-lfl ++# LIBS= $(LEXLIB) -lm ++ ++# TERMCAP= ++# TERMOPT=-DPLAINTERM ++ ++# end SGI IRIX 6.x 64-bit ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: SGI IRIX 4.x ++# Compiler: SGI C compiler ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++# MACHINE=irix ++# OS=SYSV ++ ++# XINCLUDE=/usr/include ++# XLIB=/usr/lib ++ ++# CC=cc -cckr -G 5 ++# CPP=/lib/cpp -P ++# CFLAGS=-O -DBIGENDIAN ++# IRIX_HACK = -w ++# LD=ld ++# LDFLAGS=-G 5 ++ ++# RANLIB=ranlib ++# AR=ar ++ ++# YACC=yacc ++# PARSER=yacc ++# LEX=lex ++# LEXLIB=-ll ++# LIBS= $(LEXLIB) -lm ++ ++# TERMCAP= ++# TERMOPT=-DPLAINTERM ++ ++# end SGI IRIX 4.x ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: DECStation running Ultrix 4.x or 3.x ++# Compiler: DEC C compiler ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++# MACHINE=mips ++# OS=BSD ++ ++# XINCLUDE=/usr/include ++# XLIB=/usr/lib ++ ++## You might have to play with the value of the -G option to get ++## GENESIS to compile/link properly. ++ ++# CC=cc -G 5 ++# CPP=/lib/cpp -P ++# CFLAGS=-O ++# LD=ld ++# LDFLAGS=-G 5 ++ ++# RANLIB=ranlib ++# AR=ar ++ ++# YACC=yacc ++# PARSER=yacc ++# LEX=lex ++# LEXLIB=-ll ++# LIBS= $(LEXLIB) -lm ++ ++# TERMCAP=-ltermcap ++# TERMOPT=-DTERMIO ++ ++# end DECStation running Ultrix 4.x or 3.x ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: DEC Alpha running Digital UNIX version 4 ++# Compiler: DEC cc compiler ++# ++# This combination is known to FAIL. Support is presently unavailable. ++# If you succeed in getting this to work yourself, please send your ++# changes back to the GENESIS developers. ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++# MACHINE=alpha ++# OS=BSD ++ ++# XINCLUDE=/usr/include ++# XLIB=/usr/lib ++ ++# CC=cc -std ++# CPP=/lib/cpp -P ++# CFLAGS=-O2 -DLONGWORDS ++# LD=ld ++# LDFLAGS= ++ ++# RANLIB=ranlib ++# AR=ar ++ ++# YACC=yacc ++# PARSER=yacc ++# LEX=lex ++# LEXLIB=-ll ++# LIBS= -ldnet_stub $(LEXLIB) -lm ++ ++# TERMCAP=-ltermcap ++# TERMOPT=-DTERMIO -DDONT_USE_SIGIO ++ ++# end DEC Alpha running OSF/1 release 2 or higher ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: DEC Alpha running Digital UNIX version 3.2 ++# Compiler: DEC cc compiler ++# ++# This combination is known to FAIL. Support is presently unavailable. ++# If you succeed in getting this to work yourself, please send your ++# changes back to the GENESIS developers. ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++# MACHINE=alpha ++# OS=BSD ++ ++# XINCLUDE=/usr/include ++# XLIB=/usr/lib ++ ++# CC=cc ++# CPP=/lib/cpp -P ++# CFLAGS=-g -std0 -taso -DLONGWORDS # -Olimit 5000 ++# LD=ld ++# LDFLAGS= ++ ++# RANLIB=ranlib ++# AR=ar ++ ++# YACC=yacc ++# PARSER=yacc ++# LEX=lex ++# LEXLIB=-ll ++# LIBS= -ldnet_stub $(LEXLIB) -lm ++ ++# TERMCAP=-ltermcap ++# TERMOPT=-DTERMIO -DDONT_USE_SIGIO ++ ++# end DEC Alpha running OSF/1 release 2 or higher ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: DEC Alpha OSF1/Digital UNIX version 3.2 ++# Compiler: GNU GCC (egcs-2.91.66, egcs-1.1.2 release) ++# ++# This combination is known to FAIL. Support is presently unavailable. ++# If you succeed in getting this to work yourself, please send your ++# changes back to the GENESIS developers. ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++# MACHINE=alpha ++# OS=BSD ++ ++# XINCLUDE=/usr/X11R6/include ++# XLIB=/usr/lib ++ ++# CC=gcc ++# CPP=/lib/cpp -P ++# CFLAGS=-g -DLONGWORDS ++# LD=ld ++# LDFLAGS= ++ ++# RANLIB=ranlib ++# AR=ar ++ ++# YACC=yacc ++# PARSER=yacc ++# LEX=lex ++# LEXLIB=-ll ++# LIBS= -ldnet_stub $(LEXLIB) -lm ++ ++# TERMCAP=-ltermcap ++# TERMOPT=-DTERMIO -DDONT_USE_SIGIO ++ ++# end DEC Alpha running OSF/1 release 2 or higher ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: DEC Alpha running OSF/1 release 2 or higher ++# Compiler: DEC cc compiler ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++# MACHINE=alpha ++# OS=BSD ++ ++# XINCLUDE=/usr/include ++# XLIB=/usr/lib ++ ++## The c89 compiler doesn't compile cleanly across alpha OS releases. ++## Under OSF/1 v2 the -O option results in runtime problems in Xodus. ++## The -O problem may also exist for OSF/1 v3 systems. ++ ++# CC=cc -std0 ++# CPP=/lib/cpp -P ++# CFLAGS=-O -DLONGWORDS ++# LD=ld ++# LDFLAGS= ++ ++# RANLIB=ranlib ++# AR=ar ++ ++# YACC=yacc ++# PARSER=yacc ++# LEX=lex ++# LEXLIB=-ll ++# LIBS= -ldnet_stub $(LEXLIB) -lm ++ ++# TERMCAP=-ltermcap ++# TERMOPT=-DTERMIO -DDONT_USE_SIGIO ++ ++# end DEC Alpha running OSF/1 release 2 or higher ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: Cray T3D (as installed at Pittsburgh Supercomputing Center) ++# Compiler: UNICOS "cc" ++# ++# see Makefile.t3d for other important settings ++# ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++# MACHINE=t3d ++# OS=BSD ++ ++# XINCLUDE=/usr/include ++# XLIB=/usr/lib ++ ++# CC=cc ++# CPP=/lib/cpp -P ++# CFLAGS=-O -DCRAY ++# LD=ld ++# LDFLAGS= ++ ++# RANLIB=ranlib ++# AR=ar ++ ++# YACC=yacc ++# PARSER=yacc ++# LEX=lex ++# LEXLIB=-ll ++# LIBS= $(LEXLIB) -lm ++ ++# TERMCAP= ++# TERMOPT=-DPLAINTERM ++ ++# end Cray T3D (as installed at Pittsburgh Supercomputing Center) ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: Cray T3E (as installed at Pittsburgh Supercomputing Center) ++# Compiler: UNICOS "cc" ++# ++# see Makefile.t3e for other important settings ++# ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++# MACHINE=t3e ++# OS=BSD ++ ++# XINCLUDE=/usr/include ++# XLIB=/usr/lib ++ ++# CC=cc ++# CPP=cpp -P ++# CFLAGS=-O -DCRAY -DT3E ++# LD=cld ++# LDFLAGS=-Xm ++# LDFLAGS= ++ ++# RANLIB=ranlib ++# AR=ar ++ ++# YACC=yacc ++# PARSER=yacc ++# LEX=lex ++# LEXLIB=-ll ++# LIBS= $(LEXLIB) -lm ++ ++# TERMCAP= ++# TERMOPT=-DPLAINTERM ++ ++# end Cray T3E (as installed at Pittsburgh Supercomputing Center) ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: Intel Paragon (as installed at Caltech) ++# Compiler: Intel "icc" compiler ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++## NOTE: icc has trouble cross compiling using the standard make as it ++## insists on adding "-target sun4" in the default .c.o rule ++## and some of the Xodus makefiles don't overide this. We ++## suggest using GNU make, which doesn't have this problem. ++ ++# MACHINE=paragon ++# OS=SYSV ++ ++# XINCLUDE=/usr/include ++# XLIB=. ++ ++# CC=icc ++# CPP=cpp860 -P ++# CFLAGS=-nx -O ++# LD=ld860 ++# LDFLAGS=-nx ++ ++# RANLIB=ranlib ++# AR=ar860 ++ ++# YACC=yacc ++# PARSER=yacc ++# LEX=lex ++# LEXLIB=-ll ++# LIBS= $(LEXLIB) -lm ++ ++# TERMCAP= ++# TERMOPT=-DPLAINTERM ++ ++# end Intel Paragon (as installed at Caltech) ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: Linux 1.2.x and up on Intel x86-based systems ++# Compiler: GCC ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++## 2000-05-23 ++## Termcap/ncurses issues: The shell library makes reference to the ++## termcap library. Some Linux distributions have an ncurses library ++## which is includes termcap emulation. GENESIS appears to work ++## properly with the ncurses supplied with Red Hat Linux 5.1 and higher ++## and Debian Linux (glibc2.1, egcs-2.91.66). However, linking with ++## ncurses is known to have resulted in core dumps in GENESIS in older ++## Linux versions. ++## ++## If you encounter problems linking with the TERMCAP flags listed below ++## or the GENESIS command line interface does not work, try the ++## following alternatives: ++## ++## 1) TERMCAP = -ltermcap ++## ++## 2) (If you are using SuSE Linux) ++## TERMCAP = /usr/lib/termcap/libtermcap.a ++## ++## 3) (If you are using Red Hat Linux prior to version 6.0) ++## TERMCAP = /usr/lib/libtermcap.a ++ ++# MACHINE=Linux ++# OS=BSD ++ ++# XINCLUDE=/usr/X11R6/include ++# XLIB=/usr/X11R6/lib ++ ++# CC=cc ++# CPP=/lib/cpp -P ++# CFLAGS=-O2 -D__GLIBC -D__NO_MATH_INLINES ++ ++# LD=ld ++# LDFLAGS=-L/usr/lib ++ ++# RANLIB=ranlib ++# AR=ar ++ ++# YACC=bison -y ++# PARSER=bison ++# LEX=flex -l ++# LEXLIB=-lfl ++# LIBS= $(LEXLIB) -lm ++ ++# TERMCAP=-lncurses ++# TERMOPT=-DTERMIO -DDONT_USE_SIGIO ++ ++## For Linux using gcc, usually there will be a link from /lib/cpp to ++## wherever cpp is installed. If not, try to find the gcc-lib ++## installation, perhaps under /usr/lib/gcc-lib, and either create a ++## symlink from /lib/cpp or change the CPP define below to use the full ++## path to where cpp lives. ++## ++## CPP = /full/path/to/cpp -P ++ ++# end Linux 1.2.x and up on Intel x86-based systems ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: Linux 2.x and up on PPC-based systems (LinuxPPC) ++# Compiler: GCC ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++## This configuration was provided by a GENESIS user, Alfonso ++## Delgado-Reyes. Please make sure that you have up-to-date and ++## complete installations of flex and bison if you are using this ++## configuration. ++ ++## If you encounter problems linking with the TERMCAP flags listed below ++## or the GENESIS command line interface does not work, try the ++## following alternatives: ++## ++## 1) TERMCAP = -ltermcap ++## ++## 2) TERMCAP = /usr/lib/termcap/libtermcap.a ++## ++## 3) TERMCAP = /usr/lib/libtermcap.a ++ ++MACHINE=LinuxPPC ++OS=BSD ++ ++XINCLUDE=/usr/X11R6/include ++XLIB=/usr/X11R6/lib ++ ++CC=cc ++CPP=/lib/cpp -P ++CFLAGS=-O2 -D__GLIBC -D__NO_MATH_INLINES ++ ++LD=ld ++LDFLAGS=-L/usr/lib -lnetcdf ++ ++RANLIB=ranlib ++AR=ar ++ ++YACC=bison -y ++PARSER=bison ++LEX=flex -l ++LEXLIB=-lfl ++LIBS= $(LEXLIB) -lm ++ ++TERMCAP=-lncurses ++TERMOPT=-DTERMIO -DDONT_USE_SIGIO ++ ++# end Linux 2.x and up on PPC-based systems (LinuxPPC) ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: FreeBSD 4.1 ++# Compiler: GCC C compiler ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++## FreeBSD comes with Berkeley yacc and is used here. A fix in the yacc ++## specs allows this version of yacc to work where it failed under Linux ++## systems with Berkeley yacc. The default settings for yacc and lex ++## should work. ++ ++# MACHINE=FreeBSD ++# OS=BSD ++ ++# XINCLUDE=/usr/X11R6/include ++# XLIB=/usr/X11R6/lib ++ ++# CC=cc ++# CPP=/usr/libexec/cpp -P ++# CFLAGS=-O2 -D__GLIBC -D__NO_MATH_INLINES ++ ++# LD=ld ++# LDFLAGS= ++ ++# RANLIB=ranlib ++# AR=ar ++ ++# YACC=yacc ++# PARSER=yacc ++# LEX=lex ++# LEXLIB=-ll ++# LIBS= $(LEXLIB) -lm ++ ++# TERMCAP=-ltermcap ++# TERMOPT=-DTERMIO ++ ++# end FreeBSD ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: HP running HPUX (versions unknown) ++# Compiler: HP C compiler ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++## The GENESIS maintainers have very little experience with HPUX and the ++## status of this configuration is unknown. There have been reports of ++## display problems under HPUX. ++ ++# MACHINE=hpux ++# OS=SYSV ++ ++# XINCLUDE=/usr/include/X11R5 ++# XLIB=/usr/lib/X11R5 ++ ++# CC=cc ++# CPP=/lib/cpp -P ++# CFLAGS=-O ++# LD=ld ++# LDFLAGS= ++ ++# RANLIB=ranlib ++# AR=ar ++ ++# YACC=yacc ++# PARSER=yacc ++# LEX=lex ++# LEXLIB=-ll ++# LIBS= $(LEXLIB) -lm ++ ++# TERMCAP = ++# TERMOPT = -DPLAINTERM ++ ++# end HP running HPUX (versions unknown) ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: IBM AIX 4.x ++# Compiler: IBM 'xlc' C compiler version 5 ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# ++# This combination of flags has been tested on IBM RS/6000 computers ++# running AIX 4.2 and 4.3, as well as the teraflop-scale Blue Horizon ++# Power3 system at SDSC. We thank Chuck Charman and Giri Chukkpalli ++# for their help. ++ ++# MACHINE = aix ++# OS = SYSV ++ ++# XINCLUDE = /usr/include ++# XLIB = /usr/lib ++ ++# CC = xlc ++# CPP = /lib/cpp -P ++## ++## If you are using an IBM Power3 system, such as the Teraflops, add the ++## following to CFLAGS for better optimization: -qarch=pwr3 -qtune=pwr3 ++## ++# CFLAGS = -DBIGENDIAN -U__STR__ -ma -O2 -qchars=signed -qmaxmem=8192 ++# LD = ld ++# LDFLAGS = ++ ++# RANLIB = ranlib ++# AR = ar ++ ++# YACC = yacc ++# PARSER = yacc ++# LEX = lex ++# LEXLIB = -ll -lcurses -lcur ++# LIBS = $(LEXLIB) -lm -lrs2 -lbsd -lc ++ ++# TERMCAP = -lcurses -lcur ++# TERMOPT = -DDONT_USE_SIGIO ++ ++# end IBM RS6000 running AIX ++ ++ ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++# System: Other UNIX system ++# Compiler: Other compiler ++# ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ++ ++# Other UNIX systems ++# ++# Settings are general and the underlying makefile tries to set certain ++# system dependent macros to something which will work everywhere. ++# ++# Note: you'll have to at least set the OS macro to either SYSV or ++# BSD to indicate either a System V or a Berkeley variant OS ++# respectively. Also probably need to set RANLIB to echo if ++# there is no ranlib command on your system. ++# ++ ++# MACHINE=other ++ ++# !!! OS must be set properly !!! Uncomment *one* of the following. ++ ++# OS=SYSV ++# OS=BSD ++ ++# XINCLUDE=/usr/include ++# XLIB=/usr/lib ++ ++# CC=cc ++# CPP=/lib/cpp -P ++# CFLAGS=-O ++# LD=ld ++# LDFLAGS= ++ ++# RANLIB=ranlib ++# AR=ar ++ ++# YACC=yacc ++# PARSER=yacc ++# LEX=lex ++# LEXLIB=-ll ++# LIBS= $(LEXLIB) -lm ++ ++# TERMCAP = ++# TERMOPT = -DDONT_USE_SIGIO ++ ++# end System specific suggested settings ++ ++ ++# ---------------------------------------------------------------------- ++# E. CUSTOM SETTINGS ++# ++# Here is the place to overide macro settings from above selectively. ++# You should uncomment one of the above sections and uncomment items in ++# this section to override the standard settings. ++# ---------------------------------------------------------------------- ++ ++## This is one of SYSV for System V UNIX varients and BSD for Berkeley ++## vartients. ++ ++# OS = BSD ++ ++ ++## ++## X11 settings ++## ++ ++## Typical settings: ++ ++# XLIB = /usr/lib ++# XINCLUDE = . ++ ++## For some versions of XFree86 (PC's with Linux) XLIB will need to be ++## set as follows ++ ++# XLIB = /usr/X11/lib ++ ++ ++## For SUN OpenWindows: ++# ++# XLIB = /usr/openwin/lib ++# XINCLUDE = /usr/openwin/include ++# ++ ++## ++## TMPDIR is a directory for temp files during making of GENESIS libraries. ++## change as needed if the default doesn't have enough space. The CCTMPDIR ++## is a compiler specific option for compiler temp files. The commented line ++## below is the SunOS cc option. ++## ++ ++TMPDIR = /tmp ++ ++## For SunOS 4.x ++# CCTMPDIR = -temp=$(TMPDIR) ++ ++ ++## ++## C compiler ++## ++ ++## Typical settings: ++# ++# CC=cc ++# CPP=/lib/cpp -P ++# CFLAGS=-O ++# LD=ld ++ ++## GCC C compiler: ++## ++## For gcc, usually there will be a link from /lib/cpp to wherever cpp ++## is installed. If not, try to find the gcc-lib installation, perhaps ++## under /usr/lib/gcc-lib and either create a symlink from /lib/cpp or ++## change the CPP define below to use the full path to where cpp lives. ++## ++## Later versions of gcc compile GENESIS (with many warnings) without ++## using the -traditional option. If the compile fails you might try ++## adding -traditional to CFLAGS or updating your compiler. ++ ++# CC=gcc ++# CPP=/lib/cpp -P ++# CFLAGS=-O ++# LD=ld ++ ++ ++## ++## LDFLAGS are the final link options ++## ++ ++# LDFLAGS= ++ ++ ++## ++## RANLIB ++## ++ ++## Set the RANLIB macro to "RANLIB = echo" on systems without ranlib. ++## (Only important to set for MACHINE=other and perhaps Linux; all other ++## MACHINEs will ignore the value set here.) ++## ++## AR is the library archive program used to build the Xodus widget ++## libraries ++ ++# RANLIB=ranlib ++# AR=ar ++ ++ ++## ++## YACC and LEX options. ++## ++ ++# YACC=yacc ++# PARSER=yacc ++# LEX=lex ++# LEXLIB=-ll ++ ++## If you have GNU bison and flex uncomment the following lines. ++## ++## YACC=bison -y ++## PARSER=bison ++## LEX=flex -l ++## LEXLIB=-lfl ++## ++## Solaris 2.4 users note: the yacc for Solaris 2.4 produces an ++## bad parse table which causes the parser to fail. Please use ++## bison/flex. ++## ++## Linux users note: use flex and bison rather than yacc and lex. ++## lex and yacc are scripts which use bison and flex on some systems ++## while others have an independent yacc in addition to bison. ++## The independent yacc output will fail to compile. ++## ++## SGI user note: the SGI lex defines a relatively small token text ++## buffer of 200 characters. Lex will exit if a token's text exceeds ++## this limit (e.g. a very long command argument like shape coords ++## lists). Changes have been made to avoid this problem. If you ++## encounter it anyway then using flex will fix it. ++## ++## Other users: if you don't have bison, flex, yacc or lex, see the ++## section in src/README about getting bison and flex or using the ++## preprocessed yacc and lex output. ++ ++ ++## ++## LIBS the link libraries (not including X11) ++## ++ ++# LIBS = $(LEXLIB) -lm ++ ++ ++# ---------------------------------------------------------------------- ++# F. BEGINNING OF NON-CONFIGURABLE DEFINITIONS ++# ++# This end the user configurable part of the Makefile. You shouldn't ++# have to change things below this point. ++# ---------------------------------------------------------------------- ++ ++INSTALLBIN = $(INSTALL)/bin ++ ++# ++# X11 libraries ++# ++ ++XLIBS = -L$(XLIB) \ ++ -lXt \ ++ -lX11 ++ ++RCSRELEASE = DR2-2-P1 ++MF = Makefile.$(MACHINE) ++SHELL = /bin/sh ++ ++SIMLIB = ../lib ++ ++XODUSLIB = Xodus ++ ++INTERP = ss/ss.o shell/shelllib.o ++ ++BASECODE = sim/simlib.o sys/utillib.o $(INTERP) ++ ++OBJLIBS = buffer/buflib.o \ ++ segment/seglib.o \ ++ hh/hhlib.o \ ++ device/devlib.o \ ++ out/outlib.o \ ++ olf/olflib.o \ ++ tools/toollib.o \ ++ concen/conclib.o \ ++ hines/hineslib.o \ ++ user/userlib.o \ ++ param/paramlib.o \ ++ pore/porelib.o \ ++ $(OLDCONNOBJ) \ ++ $(DISKIOOBJ) \ ++ $(KINETICSOBJ) \ ++ newconn/newconnlib.o ++ ++XODUS = $(XODUSLIB)/xo/xolib.o \ ++ $(XODUSLIB)/widg/widglib.o \ ++ $(XODUSLIB)/draw/drawlib.o \ ++ $(XODUSLIB)/Draw/libDraw.a \ ++ $(XODUSLIB)/Widg/libWidg.a \ ++ $(XODUSLIB)/Xo/libXo.a ++ ++EXTRALIBS = $(SPRNGLIB) $(TERMCAP) ++ ++SUBDIR = sys ss sim $(SPRNGDIR) shell newconn $(OLDCONNDIR) \ ++ buffer concen device hh hines olf out segment \ ++ tools user param pore convert $(DISKIODIR) \ ++ $(KINETICSDIR) Xodus ++ ++NXSUBDIR = sys ss shell sim $(SPRNGDIR) newconn oldconn \ ++ buffer concen device hh hines olf out segment \ ++ tools user param pore convert $(DISKIODIR) \ ++ $(KINETICSDIR) ++ ++MINSUBDIR = sys ss shell sim $(SPRNGDIR) ++ ++LIBLIST = output \ ++ hh \ ++ devices \ ++ buffer \ ++ segment \ ++ user \ ++ xo \ ++ draw \ ++ widg \ ++ olf \ ++ tools \ ++ concen \ ++ hines \ ++ param \ ++ pore \ ++ newconn \ ++ $(DISKIOLIB) \ ++ $(OLDCONNLIB) \ ++ $(KINETICSLIB) ++ ++NXLIBLIST = output \ ++ hh \ ++ devices \ ++ buffer \ ++ segment \ ++ user \ ++ olf \ ++ tools \ ++ concen \ ++ hines \ ++ param \ ++ pore \ ++ newconn \ ++ $(DISKIOLIB) \ ++ $(OLDCONNLIB) \ ++ $(KINETICSLIB) ++ ++# ++# all is now the default target ++# ++ ++all: code_g default ++ ++genesis: all ++ ++default: liblist ++ @make -f $(MF) CC_IN="$(CC)" TMPDIR="$(TMPDIR)" LD_IN="$(LD)" AR_IN="$(AR)" RANLIB_IN="$(RANLIB)" CPP_IN="$(CPP)" YACC_IN="$(YACC)" LEX_IN="$(LEX)" LEXLIB_IN="$(LEXLIB)" OS_IN="$(OS)" MACHINE_IN="$(MACHINE)" INSTALL="$(INSTALL)" INSTALLBIN="$(INSTALLBIN)" COPT="$(CFLAGS) $(CCTMPDIR) -D$(PARSER) $(DISKIOFLAGS) $(SPRNG_FLAG)" IRIX_HACK_IN="$(IRIX_HACK)" LDFLAGS_IN="$(LDFLAGS)" SPRNG_LIB="$(SPRNG_LIB)" XLIBS="$(XLIBS)" XINCLUDE="$(XINCLUDE)" LIBS="$(LIBS)" TERMCAP="$(TERMCAP)" TERMOPT="$(TERMOPT)" MF="$(MF)" SUBDIR="$(SUBDIR)" DISKIOSUBDIR="$(DISKIOSUBDIR)" BASECODE="$(BASECODE)" OBJLIBS="$(OBJLIBS)" EXTRALIBS="$(EXTRALIBS)" XODUS="$(XODUS)" RCSRELEASE="$(RCSRELEASE)" libs genesis ++ ++nxdefault: nxliblist ++ @make -f $(MF) CC_IN="$(CC)" TMPDIR="$(TMPDIR)" LD_IN="$(LD)" AR_IN="$(AR)" RANLIB_IN="$(RANLIB)" CPP_IN="$(CPP)" YACC_IN="$(YACC)" LEX_IN="$(LEX)" LEXLIB_IN="$(LEXLIB)" OS_IN="$(OS)" MACHINE_IN="$(MACHINE)" INSTALL="$(INSTALL)" INSTALLBIN="$(INSTALLBIN)" COPT="$(CFLAGS) $(CCTMPDIR) -D$(PARSER) $(DISKIOFLAGS) $(SPRNG_FLAG)" IRIX_HACK_IN="$(IRIX_HACK)" LDFLAGS_IN="$(LDFLAGS)" SPRNG_LIB="$(SPRNG_LIB)" LIBS="$(LIBS)" MF="$(MF)" TERMCAP="$(TERMCAP)" TERMOPT="$(TERMOPT)" SUBDIR="$(SUBDIR)" NXSUBDIR="$(NXSUBDIR)" MINSUBDIR="$(MINSUBDIR)" DISKIOSUBDIR="$(DISKIOSUBDIR)" BASECODE="$(BASECODE)" OBJLIBS="$(OBJLIBS)" EXTRALIBS="$(EXTRALIBS)" nxlibs nxgenesis ++ ++mindefault: minliblist ++ @make -f $(MF) CC_IN="$(CC)" TMPDIR="$(TMPDIR)" LD_IN="$(LD)" AR_IN="$(AR)" RANLIB_IN="$(RANLIB)" CPP_IN="$(CPP)" YACC_IN="$(YACC)" LEX_IN="$(LEX)" LEXLIB_IN="$(LEXLIB)" OS_IN="$(OS)" MACHINE_IN="$(MACHINE)" INSTALL="$(INSTALL)" INSTALLBIN="$(INSTALLBIN)" COPT="$(CFLAGS) $(CCTMPDIR) -D$(PARSER) $(SPRNG_FLAG)" IRIX_HACK_IN="$(IRIX_HACK)" LDFLAGS_IN="$(LDFLAGS)" SPRNG_LIB="$(SPRNG_LIB)" LIBS="$(LIBS)" MF="$(MF)" TERMCAP="$(TERMCAP)" TERMOPT="$(TERMOPT)" SUBDIR="$(SUBDIR)" NXSUBDIR="$(NXSUBDIR)" MINSUBDIR="$(MINSUBDIR)" BASECODE="$(BASECODE)" OBJLIBS="$(OBJLIBS)" EXTRALIBS="$(EXTRALIBS)" minlibs mingenesis ++ ++code_g: ++ @make -f $(MF) CC_IN="$(CC)" TMPDIR="$(TMPDIR)" LD_IN="$(LD)" CPP_IN="$(CPP)" YACC_IN="$(YACC)" LEX_IN="$(LEX)" LEXLIB_IN="$(LEXLIB)" OS_IN="$(OS)" MACHINE_IN="$(MACHINE)" INSTALL="$(INSTALL)" INSTALLBIN="$(INSTALLBIN)" COPT="$(CFLAGS) $(CCTMPDIR) -D$(PARSER)" IRIX_HACK_IN="$(IRIX_HACK)" LDFLAGS_IN="$(LDFLAGS)" LIBS="$(LIBS)" MF="$(MF)" TERMCAP="$(TERMCAP)" TERMOPT="$(TERMOPT)" SUBDIR="$(SUBDIR)" NXSUBDIR="$(NXSUBDIR)" MINSUBDIR="$(MINSUBDIR)" BASECODE="$(BASECODE)" OBJLIBS="$(OBJLIBS)" EXTRALIBS="$(EXTRALIBS)" code_g ++ ++nxgenesis: code_g nxdefault ++nxall: code_g nxdefault ++ ++mingenesis: code_g mindefault ++minall: code_g mindefault ++ ++liblist: Makefile ++ @echo "# liblist - This file is generated automatically." > liblist ++ @echo "# DO NOT EDIT unless you are sure you" >> liblist ++ @echo "# know what you are doing. Generally" >> liblist ++ @echo "# Makefile should be edited instead." >> liblist ++ @echo $(LIBLIST) | tr ' ' '\012' >> liblist ++ ++nxliblist: Makefile ++ @echo "# nxliblist - This file is generated automatically." > nxliblist ++ @echo "# DO NOT EDIT unless you are sure you" >> nxliblist ++ @echo "# know what you are doing. Generally" >> nxliblist ++ @echo "# Makefile should be edited instead." >> nxliblist ++ @echo $(NXLIBLIST) | tr ' ' '\012' >> nxliblist ++ ++minliblist: Makefile ++ @echo "# minliblist - This file is generated automatically." > minliblist ++ @echo "# DO NOT EDIT unless you are sure you" >> minliblist ++ @echo "# know what you are doing. Generally" >> minliblist ++ @echo "# Makefile should be edited instead." >> minliblist ++ ++cleandist: clean ++ -(rm -rf $(INSTALL)/startup/*) ++ -(rm -rf $(INSTALL)/startup/.*simrc) ++ -(rm -rf $(INSTALL)/startup) ++ -(rm -rf $(INSTALL)/lib/*) ++ -(rm -rf $(INSTALL)/lib) ++ -(rm -rf $(INSTALL)/include/*) ++ -(rm -rf $(INSTALL)/include) ++ -(rm -f $(INSTALL)/genesis) ++ -(rm -f $(INSTALL)/nxgenesis) ++ -(rm -f $(INSTALL)/mingenesis) ++ -(rm -rf $(INSTALL)/.*simrc) ++ -(rm -f $(INSTALLBIN)/convert) ++ -(rm -f TAGS) ++ -(rm -f `find . -name '*~'`) ++ @echo "Done with full clean" ++ ++clean: ++ @make -f $(MF) MF="$(MF)" DISKIOSUBDIR="$(DISKIOSUBDIR)" SUBDIR="$(SUBDIR)" RCSRELEASE="$(RCSRELEASE)" SPRNG_LIB="$(SPRNG_LIB)" clean ++ ++rcsclean: ++ @make -f $(MF) MF="$(MF)" SUBDIR="$(SUBDIR)" RCSRELEASE="$(RCSRELEASE)" rcsclean ++ ++makedirs: ++ -@mkdir -p $(INSTALL) ++ -@mkdir -p $(INSTALLBIN) ++ -@mkdir -p $(INSTALL)/Doc ++ -@mkdir -p $(INSTALL)/Hyperdoc ++ -@mkdir -p $(INSTALL)/Scripts ++ -@mkdir -p $(INSTALL)/lib ++ -@mkdir -p $(INSTALL)/include ++ -@mkdir -p $(INSTALL)/startup ++ -@mkdir -p $(INSTALL)/src ++ ++tags: ++ etags `find . /usr/include/X11/ -name '*.[chg]' ! -name '*@*'` ++ etags -a `find /usr/include -name '*.h'` ++ ++install: makedirs ++ @make -f $(MF) MF="$(MF)" INSTALL="$(INSTALL)" INSTALLBIN="$(INSTALLBIN)" DISKIOSUBDIR="$(DISKIOSUBDIR)" SPRNG_LIB="$(SPRNG_LIB)" SUBDIR="$(SUBDIR)" RANLIB_IN="$(RANLIB)" install ++ ++nxinstall: makedirs ++ @make -f $(MF) MF="$(MF)" INSTALL="$(INSTALL)" INSTALLBIN="$(INSTALLBIN)" DISKIOSUBDIR="$(DISKIOSUBDIR)" SPRNG_LIB="$(SPRNG_LIB)" NXSUBDIR="$(NXSUBDIR)" RANLIB_IN="$(RANLIB)" nxinstall ++ ++mininstall: makedirs ++ @make -f $(MF) MF="$(MF)" INSTALL="$(INSTALL)" INSTALLBIN="$(INSTALLBIN)" SPRNG_LIB="$(SPRNG_LIB)" MINSUBDIR="$(MINSUBDIR)" RANLIB_IN="$(RANLIB)" mininstall ++ ++ ++# ---------------------------------------------------------------------- ++# G. REVISION HISTORY ++# ---------------------------------------------------------------------- ++ ++# $Log: Makefile,v $ ++# Revision 1.1 2001/11/05 16:04:22 baux ++# Added debian changes for version 2.2-1. ++# ++# Revision 1.1 2001/11/05 14:42:08 baux ++# Added debian changes for version 2.2-1. ++# ++# Revision 1.1 2001/11/05 13:43:34 baux ++# Added debian changes for version 2.2-1. ++# ++# Revision 1.1 2001/11/05 12:32:13 baux ++# Added debian changes for version 2.2-1. ++# ++# Revision 1.146 2001/07/22 17:53:18 mhucka ++# Final updates for 2.2 release. ++# ++# Revision 1.145 2001/06/29 22:03:21 mhucka ++# Updates for more systems. ++# ++# Revision 1.144 2001/05/10 16:13:56 mhucka ++# More work on LinuxPPC. ++# ++# Revision 1.143 2001/05/10 16:12:03 mhucka ++# First version of PPC support, based on work by Alfonso Delgado-Reyes. ++# ++# Revision 1.142 2001/05/09 15:16:02 mhucka ++# Changes for IBM AIX and DEC Alpha. ++# ++# Revision 1.141 2001/03/30 05:20:00 mhucka ++# Updates for FreeBSD. ++# ++# Revision 1.140 2000/10/12 22:06:22 mhucka ++# Added minor comment to AIX section, and made the "makedirs" directive ++# ignore errors. ++# ++# Revision 1.139 2000/10/10 16:55:06 mhucka ++# Turns out that compiling with optimization settings higher than -xO1 with ++# the Solaris Workshop 5.0 cc compiler causes some widgets in Xodus to fail ++# to work properly. So had to revise the compiler flags for Solaris case. ++# ++# Revision 1.138 2000/10/09 23:55:02 mhucka ++# More updates to several platforms. ++# ++# Revision 1.137 2000/09/21 19:39:58 mhucka ++# 1) Now using -O2 for gcc. ++# 2) Updated definitions for AIX ++# ++# Revision 1.136 2000/09/11 21:46:05 mhucka ++# nxinstall and mininstall weren't running the makedirs directive. ++# ++# Revision 1.135 2000/09/11 16:24:45 mhucka ++# Moved where TERMCAP is used, to EXTRALIBS. ++# ++# Revision 1.134 2000/07/12 08:52:02 mhucka ++# Fixed IRIX config to work for 6.5.8. ++# Added INSTALL/src to directories created by makedirs directive. ++# ++# Revision 1.133 2000/07/03 21:10:07 mhucka ++# Made a number of changes to the IRIX compilation flags, including changing ++# from using -cckr to -xansi. The previous combination of flags didn't turn ++# out to work properly for both n32 and o32 and non-GNU make on the SGI. ++# Making it all work required changes to a lot of other files too. ++# ++# Revision 1.132 2000/06/23 04:18:48 mhucka ++# Added partial AIX support from Giri Chukkpalli and Chuck Charman @ SDSC. ++# ++# Revision 1.131 2000/06/21 23:44:02 mhucka ++# Fixed up some of the make clean directives. ++# ++# Revision 1.130 2000/06/21 23:43:07 mhucka ++# Additional changes to the ld flags under IRIX, plus some comments for the ++# IRIX section. ++# ++# Revision 1.129 2000/06/12 04:01:42 mhucka ++# 1) Added IRIX_HACK defines that were missing from previous check-in. ++# 2) Updated cc compiler options for irix. ++# 3) Made "make cleandist" remove TAGS file, made "make clean" leave it. ++# ++# Revision 1.128 2000/06/12 03:57:37 mhucka ++# Added an awful, bletcherous hack. The variable IRIX_HACK is used in only two ++# places, ss/Makefile and convert/Makefile, to pass the -w option to the IRIX ++# cc compiler when y.tab.c is being compiled. The reason is to avoid getting ++# two hundred warnings under the IRIX cc compiler. The warnings are generated ++# for things like "statement is unreachable", but it's in code (y.tab.c) that's ++# generated by lex, so there's nothing we can do. I wish there was a cleaner ++# way of supplying a flag selectively like this, without resorting to passing ++# IRIX_HACK all over the place just for this one thing. ++# ++# Revision 1.127 2000/06/07 05:51:04 mhucka ++# 1) Changed LINKFLAGS to LDFLAGS. ++# 2) Fixed IRIX flags to work with current version of GENESIS. ++# 3) Not using MACH_DEP_FLAGS anymore. ++# 4) Added missing param library to definition of LIBLIST. ++# 5) Don't delete liblist after all. ++# ++# Revision 1.126 2000/05/26 23:39:09 mhucka ++# Added new INSTALLBIN for things like the convert program (and other ++# utilities in the future). ++# ++# Revision 1.125 2000/05/26 22:42:12 mhucka ++# The target for genesis should make "all", not just "default". ++# ++# Revision 1.124 2000/05/26 22:18:55 mhucka ++# 1) Solaris needs -DBIGENDIAN in CFLAGS. ++# 2) There was an -I in the CFLAGS for Solaris. ++# 3) Added genesis, nxgenesis, mingenesis as make targets. ++# 4) Added more directories to make makedirs actions. ++# ++# Revision 1.123 2000/05/25 03:11:41 mhucka ++# Fixed a comment in the linux section. ++# ++# Revision 1.122 2000/05/25 03:07:50 mhucka ++# 1) Minor clean up of make clean actions. ++# 2) Added /usr/include/X11 to list of directories used for make tags ++# 3) Added SPRNG_LIB to list of vars passed for make install, so that ++# the SPRNG library is installed. ++# ++# Revision 1.118 2000/04/19 07:34:13 mhucka ++# Added a remove of liblist; made the makedirs use -p. ++# ++# Revision 1.117 1999/12/31 08:30:06 mhucka ++# Tons of updates -- more than I can remember. ++# ++# Revision 1.113 1999/10/13 02:27:02 mhucka ++# Added changes for Red Hat 6.0. ++# Added changes for SGI IRIX. ++# Did major overhaul of comments througout file in an attempt ++# to improve clarity and visual impact. ++# ++# Revision 1.112 1999/08/22 04:42:13 mhucka ++# Various fixes, mostly for Red Hat Linux 6.0 ++# ++# Revision 1.111 1999/08/22 03:22:09 mhucka ++# Tiny comment about where one of the Sun Solaris sections ends. ++# ++# Revision 1.110 1999/05/06 01:03:06 mhucka ++# Changed the configuration for SGI IRIX to match what I used to successfully ++# compile GENESIS 2.1 under IRIX 6.5.3 using SGI's C compiler version 7.2.1. ++# ++# Revision 1.109 1999/04/26 03:45:59 mhucka ++# Added a section for Solaris 2.x using GCC 2.8.1. This seemed reasonable ++# to have in addition to the existing section for Solaris 2.x using the ++# SunPro C compiler. ++# ++# Revision 1.108 1998/08/28 17:11:02 dhb ++# Added comments for working around libtermcap.a not in /usr/lib for ++# some Linux variants. ++# ++# DR2-2-P1 ++# ++# Revision 1.107 1998/07/22 06:03:34 dhb ++# Fix for conditional diskio library flags; prevents empty -D ++# options on compile lines ++# ++# Revision 1.106 1998/07/22 05:31:25 dhb ++# DR2-2 ++# ++# Revision 1.105 1998/04/21 22:41:46 dhb ++# Support for excluding SPRNG ++# ++# Revision 1.104 1998/01/20 02:40:31 venkat ++# Cleaned up settings for SGI 5.x and 6.x . Used CFLAGS and LINKFLAGS instead of ++# crowding up the CC macro. ++# ++# Revision 1.103 1998/01/20 01:50:31 venkat ++# Added the -32 flag to CC for O32 settings on the SGI. ++# This is needed on later 6.x systems to explicitly ++# compile for 32-bit. ++# ++# Revision 1.102 1998/01/20 01:38:20 venkat ++# Removed extra tab in a blank line. ++# ++# Revision 1.101 1998/01/20 01:04:19 venkat ++# SGI Irix settings changes for 32 and 64-bit executables ++# ++# Revision 1.100 1998/01/15 01:16:28 venkat ++# Added the missing DISKIOSUBDIR macro in the default and nxdefault ++# command lines ++# ++# Revision 1.99 1998/01/14 23:27:40 venkat ++# Fixed error in addition of diskio specific flag settings in CFLAGS ++# for default and nxdefault targets. ++# ++# Revision 1.98 1998/01/14 21:52:33 venkat ++# diskio library enhancements to include FMT1 support. User can as before ++# opt to exclude the diskio library entirely. If included, FMT1 support ++# is incorporated by default. netcdf support is optional. ++# ++# Revision 1.97 1998/01/08 23:54:52 dhb ++# Support for SPRNG random number library. User can select ++# which of the SPRNG generators is used. All default SPRNG ++# generators are compiled and installed. ++# ++# Revision 1.96 1997/10/03 00:05:11 dhb ++# REL2-1-P1 ++# ++# Revision 1.95 1997/08/12 22:04:39 dhb ++# Moved -lcurses from LIBS to LEXLIB to get code_g to link. ++# ++# Revision 1.94 1997/08/12 19:08:55 dhb ++# Additional comments at top to suggest commenting optional libraries ++# when having compile problems. ++# ++# Removed Linux a.out from diskio problem systems. ++# ++# Added -lcurses for aix compiles. ++# ++# Revision 1.93 1997/08/11 22:23:55 dhb ++# REL2-1 ++# ++# Revision 1.92 1997/08/08 21:43:15 dhb ++# Added comments about requiring bison and flex for 64-bit IRIX ++# ++# Revision 1.91 1997/08/08 21:39:33 dhb ++# Added IRIX 6.x 64-bit settings from Elliot Menschik. ++# ++# Revision 1.90 1997/08/08 19:30:59 dhb ++# DR2-1-P4 ++# ++# Revision 1.89 1997/08/01 18:54:25 dhb ++# Added comments on diskio compile problems for Paragon and T3E. ++# ++# Revision 1.88 1997/07/31 20:18:19 dhb ++# Fix to nxliblist actions so that comments appear in nxliblist ++# ++# Revision 1.87 1997/07/31 19:16:09 dhb ++# DR2-0-P3 ++# ++# Revision 1.86 1997/07/25 23:36:14 dhb ++# Moved addtional oldconn library names to OLDCONNLIB (i.e. ++# axon synapse and personal). ++# ++# Revision 1.85 1997/07/25 01:33:52 dhb ++# Added kinetics and diskio as optional libraries ++# Added automatic generation of liblist files ++# ++# Revision 1.84 1997/07/18 19:02:13 dhb ++# Support for Cray T3E. ++# ++# Fix to paragon MACHINE macro setting ++# ++# Small comment changes ++# ++# Revision 1.83 1997/07/18 14:41:25 dhb ++# Simplified Makefile configuration by creating complete sets of ++# macro sets for various systems and compilers. Corresponding ++# changes to make instructions. ++# ++# Revision 1.82 1997/06/30 18:50:21 dhb ++# Updated to DR2-1 ++# ++# Revision 1.81 1997/06/12 23:57:56 dhb ++# Removed -traditional from several gcc CFLAGS lines and added ++# prominent comment about trying -traditional if a compile fails ++# ++# Revision 1.80 1997/06/12 23:47:26 dhb ++# Added -P to CPP defines in machine specific sections. ++# ++# Separated CPP define and explanation about finding cpp and ++# setting the CPP macro from the main Linux specific settings ++# ++# Made the all target the default so users can just type "make" ++# ++# Revision 1.79 1997/06/12 22:37:23 dhb ++# Added machine specific section for IRIX 6.x ++# ++# Revision 1.78 1996/11/01 23:53:15 dhb ++# REL2-0-P2 ++# ++# Revision 1.77 1996/10/28 23:36:16 dhb ++# DR2-0-P7 ++# ++# Added a new target called "nodefault" which is actually the default ++# Makefile target. Prints a message that there is no default target ++# and to use "make all" instead. ++# ++# Revision 1.76 1996/10/07 21:25:25 dhb ++# DR2-0-P6 ++# ++# Revision 1.75 1996/10/05 17:49:21 dhb ++# Added comments regarding use of ncurses on Linux systems. ++# ++# Revision 1.74 1996/08/10 22:36:04 dhb ++# DR2-0-P5 ++# ++# Revision 1.73 1996/07/29 23:14:59 dhb ++# DR2-0-P4 ++# ++# Revision 1.72 1996/07/09 06:30:29 dhb ++# Added PARSER=yacc as default value of PARSER; avoids empty ++# -D compiler argument ++# ++# Revision 1.71 1996/06/28 22:53:18 dhb ++# Additional mods for Paragon. ++# ++# DR2-0-P3 ++# ++# Revision 1.70 1996/06/26 18:20:09 venkat ++# Added the PARSER macro to identify the parser (yacc / bison) used and passedf ++# it along with the COPTS macro to the sub-makes. ++# ++# Revision 1.69 1996/06/18 07:07:08 dhb ++# Support for AR macro. ++# ++# Revision 1.68 1996/05/24 22:44:38 dhb ++# Changed RCSRELEASE to DR2-0-P2 ++# ++# Revision 1.67 1996/05/23 23:13:55 dhb ++# Added -P to default cpp command line. ++# ++# Removed t3d specific settings for LD and LDFLAGS as these are ++# handled in the lower level makefile. ++# ++# Revision 1.66 1996/05/17 21:14:04 dhb ++# T3D changes ++# ++# Revision 1.65 1995/12/13 23:18:08 dhb ++# REL2-0-P2 ++# ++# Revision 1.64 1995/11/10 23:17:54 dhb ++# Updated RCSRELEASE for REL2-0-P1 ++# ++# Revision 1.63 1995/11/08 00:10:44 dhb ++# Added -P option to cpp for hpux. ++# ++# Revision 1.62 1995/11/04 18:57:24 dhb ++# Additional comments for Solaris 2.4 yacc problem ++# ++# CCTMPDIR is added to the CFLAGS by passing it with the CFLAGS ++# macro via COPT macro on the sub make command line. ++# ++# Revision 1.61 1995/11/03 01:59:37 dhb ++# Added TMPDIR macro to allow setting an alternate temp directory ++# during the compile. ++# ++# Added instructions for: ++# SunOS 4.1.[234] unresolved X11 symbols problem ++# ++# Solaris 2.4 yacc problem ++# ++# Now we pass down LEXLIB on make code_g so we don't hardcode the ++# lex library in sys/Makefile. ++# ++# Revision 1.60 1995/09/27 20:35:05 dhb ++# DR2-0-P1 ++# ++# Revision 1.59 1995/08/09 17:30:56 dhb ++# REL2-0 ++# ++# Revision 1.58 1995/08/05 18:26:58 dhb ++# Small changes to flex comments regarding SGIs. ++# ++# Revision 1.57 1995/08/05 02:35:42 dhb ++# BETA2-0-P18 ++# ++# Revision 1.56 1995/08/03 20:15:30 dhb ++# BETA2-0-P17 ++# ++# Revision 1.55 1995/08/02 01:55:41 dhb ++# BETA2-0-P16 ++# ++# Revision 1.54 1995/07/29 17:50:21 dhb ++# Added comments about using flex for SGI machines. ++# ++# BETA2-0-P15 ++# ++# Revision 1.53 1995/07/21 19:47:06 dhb ++# HPUX changes. Old comments regarding the need for special X11 ++# libraries removed. Machine specific settings added. ++# ++# BETA2-0-P14 ++# / ++# ++# Revision 1.52 1995/07/08 19:28:40 dhb ++# Removed X11R3 support as Xodus will no longer compile with ++# anything less than X11R4. ++# ++# BETA2-0-P13 ++# ++# Revision 1.51 1995/06/24 00:19:01 dhb ++# Addition FreeBSD related changes. ++# ++# Revision 1.50 1995/06/23 23:49:49 venkat ++# BETA2-0-P12 ++# ++# Revision 1.49 1995/06/16 23:35:11 venkat ++# BETA2-0-P11 ++# ++# Revision 1.48 1995/06/16 17:11:27 dhb ++# Added support for FreeBSD. ++# ++# Revision 1.47 1995/06/12 17:16:25 dhb ++# BETA2-0-P10 ++# ++# Revision 1.46 1995/06/03 00:20:12 dhb ++# BETA2-0-P9 ++# ++# Revision 1.45 1995/05/31 01:10:29 dhb ++# BETA2-0-P8 ++# ++# Revision 1.44 1995/05/26 17:01:44 dhb ++# Additional comments about XLIB for Linux systems. ++# BETA2-0-P7 ++# ++# Revision 1.43 1995/05/17 21:30:07 dhb ++# BETA2-0-P6 ++# ++# Revision 1.42 1995/05/11 20:41:48 dhb ++# Changed install targets to pass RANLIB value down to system makefiles ++# as RANLIB_IN. ++# ++# Revision 1.41 1995/05/08 22:43:03 dhb ++# Additional comments for Solaris using gcc. ++# BETA2-0-P5 ++# ++# Revision 1.40 1995/04/29 01:11:24 dhb ++# Added handling of YACC, LEX and LEXLIB macros to define the ++# yacc and lex programs and the lex libraries respectively. ++# ++# Revision 1.39 1995/04/28 19:43:38 dhb ++# Various system dependent suggestion changes. ++# BETA2-0-P4 ++# ++# Revision 1.38 1995/04/16 01:22:37 dhb ++# Modified suggested alpha macro settings to use cc -std0 -DGETOPT_PROBLEM ++# which hopefullly will be portable across alpha platforms. ++# ++# Revision 1.37 1995/04/13 20:55:22 dhb ++# Added info about the -DGETOPT_PROBLEM define. ++# ++# BETA2-0-P3 ++# ++# Revision 1.36 1995/04/11 23:09:53 dhb ++# Removed -lICE and -lSM suggestion for Linux compiles. ++# ++# Revision 1.35 1995/04/07 22:42:17 dhb ++# BETA2-0-P2 ++# ++# Revision 1.34 1995/04/05 00:55:00 dhb ++# Added stuff for MACHINE=aix ++# ++# Revision 1.33 1995/04/01 17:11:13 dhb ++# BETA2-0-P1 ++# ++# Revision 1.32 1995/03/29 16:45:20 dhb ++# BETA2-0 ++# ++# Revision 1.31 1995/03/28 18:29:38 dhb ++# Added CPP macro setting for Solaris SUNPro cc. ++# ++# Revision 1.30 1995/03/27 18:41:41 dhb ++# Added DEC Alpha as an option for MACHINE with compiler ++# specific macro settings. ++# ++# Revision 1.29 1995/03/27 18:23:28 dhb ++# Missing backslash in XLIBS macro definition. ++# DEVREL2-0-9-P5 ++# ++# Revision 1.28 1995/03/24 22:00:20 dhb ++# - Changed X11 libraries from full path specs to use -L and -l ++# - Added additional comments for Linux settings ++# - DEVREL2-0-9-P4 ++# ++# Revision 1.27 1995/03/23 18:31:18 dhb ++# Modified suggested macro setting for SGI and Decstation. ++# ++# Revision 1.26 1995/03/21 21:12:58 dhb ++# DEVREL2-0-9-P3 ++# ++# Revision 1.25 1995/03/02 18:46:16 dhb ++# DEVREL2-0-9-P2 ++# ++# Revision 1.24 1995/02/23 00:15:54 dhb ++# Updated to DEVREL2-0-9-P1 ++# ++# Revision 1.23 1995/02/22 19:04:53 dhb ++# Linux support. ++# ++# Revision 1.22 1995/02/14 01:08:28 dhb ++# cleandist now removed convert and X1compat scripts ++# ++# Revision 1.21 1995/02/11 06:49:12 dhb ++# Added convert to the SUBDIRS and NXSUBDIRS. ++# ++# Revision 1.20 1995/02/11 06:35:15 dhb ++# Updated RCSRELEASE to DEVREL2-0-9. ++# ++# Revision 1.19 1995/01/25 02:24:09 dhb ++# Updated for X11R6. ++# ++# Revision 1.18 1995/01/18 01:49:46 dhb ++# 2.0.8 patch 3 update ++# ++# Revision 1.17 1995/01/14 01:02:46 dhb ++# Update to 2.0.8 patch 2 ++# ++# Revision 1.16 1995/01/09 23:04:55 dhb ++# Made the default XINCLUDE directory . instead of nothing. Some ++# compilers will complain if given an empty -I option. ++# ++# Revision 1.15 1995/01/09 19:34:38 dhb ++# RCSRELEASE macro change in 1.14 was wrong. ++# ++# Revision 1.14 1995/01/09 18:31:11 dhb ++# Changed inconsistent instructions at end of user changable part of ++# Makefile. ++# ++# Updated RCSRELEASE macro to reflect current release. ++# ++# Revision 1.13 1994/12/21 00:36:05 dhb ++# Moved RCS log information to the end of the file. ++# ++# Revision 1.12 1994/12/20 23:23:26 dhb ++# Added all, nxall and minall targets and updated instructions in ++# Makefile to use the all targets. ++# ++# Revision 1.11 1994/12/06 01:45:40 dhb ++# Added the XINCLUDE macro ++# ++# Revision 1.10 1994/09/23 17:09:28 dhb ++# Added a 'make code_g' to the users instruction comments. ++# ++# Revision 1.9 1994/09/23 16:22:04 dhb ++# Changes for move of connections out of main libraries into oldconn. ++# ++# Revision 1.8 1994/04/14 14:51:50 dhb ++# Now passes RANLIB macro down in install targets ++# ++# Revision 1.7 1994/04/13 20:07:39 dhb ++# Changed the makefile comments for compiler dependent options ++# ++# Revision 1.6 1994/04/04 21:25:45 dhb ++# Added RANLIB macro to handle systems without ranlib. ++# ++# Moved compiler depended macro settings to src/Makefile. ++# ++# Revision 1.5 1994/03/23 00:23:11 dhb ++# Changes for Xodus version 2 and the newconn library. ++# ++# Revision 1.4 1994/03/22 23:56:31 dhb ++# Changed codeg target to code_g (the actual program name). ++# ++# Revision 1.3 1994/03/21 18:25:36 dhb ++# Changes to make code_g program ++# ++# Revision 1.2 1993/10/19 18:53:27 dhb ++# RCS changes and libsh --> ./libsh ++# +Index: genesis-2.2.1/src/Makefile.LinuxPPC +=================================================================== +--- genesis-2.2.1.orig/src/Makefile.LinuxPPC 2006-10-07 14:20:12.000000000 +0200 ++++ genesis-2.2.1/src/Makefile.LinuxPPC 2006-10-07 14:21:21.000000000 +0200 +@@ -75,15 +75,15 @@ + @echo "code_g Compiled" + + libs: +- @(for i in $(SUBDIR); do echo cd $$i; cd $$i; make CC="$(CC)" LD="$(LD)" AR="$(AR)" RANLIB="$(RANLIB)" CPP="$(CPP)" YACC="$(YACC)" LEX="$(LEX)" LEXLIB="$(LEXLIB)" TMPDIR="$(TMPDIR)" LDFLAGS="$(LDFLAGS)" OS="$(OS)" MACHINE="$(MACHINE)" DISKIOSUBDIR="$(DISKIOSUBDIR)" INSTALL="$(INSTALL)" COPT="$(CFLAGS)" TERMCAP="$(TERMCAP)" TERMOPT="$(TERMOPT)"; cd ..;done) ++ @(for i in $(SUBDIR); do echo cd $$i; cd $$i; make CC="$(CC)" LD="$(LD)" AR="$(AR)" RANLIB="$(RANLIB)" CPP="$(CPP)" YACC="$(YACC)" LEX="$(LEX)" LEXLIB="$(LEXLIB)" TMPDIR="$(TMPDIR)" LDFLAGS="$(LDFLAGS)" OS="$(OS)" MACHINE="$(MACHINE)" DISKIOSUBDIR="$(DISKIOSUBDIR)" INSTALL="$(INSTALL)" COPT="$(CFLAGS)" TERMCAP="$(TERMCAP)" TERMOPT="$(TERMOPT)" || exit 1; cd ..;done) + @echo "All Libs Compiled" + + nxlibs: +- @(for i in $(NXSUBDIR); do echo cd $$i; cd $$i; make CC="$(CC)" LD="$(LD)" YACC="$(YACC)" LEX="$(LEX)" LEXLIB="$(LEXLIB)" TMPDIR="$(TMPDIR)" LDFLAGS="$(LDFLAGS)" CPP="$(CPP)" AR="$(AR)" RANLIB="$(RANLIB)" OS="$(OS)" MACHINE="$(MACHINE)" INSTALL="$(INSTALL)" DISKIOSUBDIR="$(DISKIOSUBDIR)" COPT="$(CFLAGS)" TERMCAP="$(TERMCAP)" TERMOPT="$(TERMOPT)"; cd ..;done) ++ @(for i in $(NXSUBDIR); do echo cd $$i; cd $$i; make CC="$(CC)" LD="$(LD)" YACC="$(YACC)" LEX="$(LEX)" LEXLIB="$(LEXLIB)" TMPDIR="$(TMPDIR)" LDFLAGS="$(LDFLAGS)" CPP="$(CPP)" AR="$(AR)" RANLIB="$(RANLIB)" OS="$(OS)" MACHINE="$(MACHINE)" INSTALL="$(INSTALL)" DISKIOSUBDIR="$(DISKIOSUBDIR)" COPT="$(CFLAGS)" TERMCAP="$(TERMCAP)" TERMOPT="$(TERMOPT)" || exit 1; cd ..;done) + @echo "Non-X Libs Compiled" + + minlibs: +- @(for i in $(MINSUBDIR); do echo cd $$i; cd $$i; make CC="$(CC)" LD="$(LD)" YACC="$(YACC)" LEX="$(LEX)" LEXLIB="$(LEXLIB)" TMPDIR="$(TMPDIR)" LDFLAGS="$(LDFLAGS)" CPP="$(CPP)" AR="$(AR)" RANLIB="$(RANLIB)" OS="$(OS)" MACHINE="$(MACHINE)" INSTALL="$(INSTALL)" COPT="$(CFLAGS)" TERMCAP="$(TERMCAP)" TERMOPT="$(TERMOPT)"; cd ..;done) ++ @(for i in $(MINSUBDIR); do echo cd $$i; cd $$i; make CC="$(CC)" LD="$(LD)" YACC="$(YACC)" LEX="$(LEX)" LEXLIB="$(LEXLIB)" TMPDIR="$(TMPDIR)" LDFLAGS="$(LDFLAGS)" CPP="$(CPP)" AR="$(AR)" RANLIB="$(RANLIB)" OS="$(OS)" MACHINE="$(MACHINE)" INSTALL="$(INSTALL)" COPT="$(CFLAGS)" TERMCAP="$(TERMCAP)" TERMOPT="$(TERMOPT)" || exit 1; cd ..;done) + @echo "Minimal Libs Compiled" + + .c.o: +@@ -102,7 +102,7 @@ + @echo "You must run cleandist from the toplevel makefile" + + clean: +- @(for i in $(SUBDIR); do echo cd $$i; cd $$i; make DISKIOSUBDIR="$(DISKIOSUBDIR)" MACHINE="$(MACHINE)" SPRNG_LIB="$(SPRNG_LIB)" clean; cd ..;done) ++ @(for i in $(SUBDIR); do echo cd $$i; cd $$i; make DISKIOSUBDIR="$(DISKIOSUBDIR)" MACHINE="$(MACHINE)" SPRNG_LIB="$(SPRNG_LIB)" clean || exit 1; cd ..;done) + -rm -rf genesis loadlib.o loadlib.c + -rm -rf nxgenesis nxloadlib.o nxloadlib.c + -rm -rf mingenesis minloadlib.o minloadlib.c +@@ -127,16 +127,16 @@ + fi) + + install: copydirs +- @(for i in $(FULLDIR); do echo cd $$i; cd $$i; make MACHINE=$(MACHINE) DISKIOSUBDIR="$(DISKIOSUBDIR)" INSTALL=$(INSTALL) INSTALLBIN=$(INSTALLBIN) RANLIB="$(RANLIB)" install; cd ..;done) ++ @(for i in $(FULLDIR); do echo cd $$i; cd $$i; make MACHINE=$(MACHINE) DISKIOSUBDIR="$(DISKIOSUBDIR)" INSTALL=$(INSTALL) INSTALLBIN=$(INSTALLBIN) RANLIB="$(RANLIB)" install || exit 1; cd ..;done) + @cp genesis $(INSTALL) + @echo "Done with full install" + + nxinstall: copydirs +- @(for i in $(NXDIR); do echo cd $$i; cd $$i; make MACHINE=$(MACHINE) DISKIOSUBDIR="$(DISKIOSUBDIR)" INSTALL=$(INSTALL) INSTALLBIN=$(INSTALLBIN) RANLIB="$(RANLIB)" install; cd ..;done) ++ @(for i in $(NXDIR); do echo cd $$i; cd $$i; make MACHINE=$(MACHINE) DISKIOSUBDIR="$(DISKIOSUBDIR)" INSTALL=$(INSTALL) INSTALLBIN=$(INSTALLBIN) RANLIB="$(RANLIB)" install || exit 1; cd ..;done) + -cp nxgenesis $(INSTALL) + @echo "Done with non-X install" + + mininstall: copydirs +- @(for i in $(MINDIR); do echo cd $$i; cd $$i; make MACHINE=$(MACHINE) INSTALL=$(INSTALL) INSTALLBIN=$(INSTALLBIN) RANLIB="$(RANLIB)" install; cd ..;done) ++ @(for i in $(MINDIR); do echo cd $$i; cd $$i; make MACHINE=$(MACHINE) INSTALL=$(INSTALL) INSTALLBIN=$(INSTALLBIN) RANLIB="$(RANLIB)" install || exit 1; cd ..;done) + -cp mingenesis $(INSTALL) + @echo "Done with minimal install" --- genesis-2.2.1.orig/debian/patches/round.diff +++ genesis-2.2.1/debian/patches/round.diff @@ -0,0 +1,123 @@ +Index: genesis-2.2.1/src/oldconn/axon/delay.c +=================================================================== +--- genesis-2.2.1.orig/src/oldconn/axon/delay.c ++++ genesis-2.2.1/src/oldconn/axon/delay.c +@@ -126,8 +126,8 @@ + #else + if(buffer){ + tmin = projection->tmax + +- round(projection->latency/Clockrate(projection)) + +- round(projection->duration/Clockrate(projection)); ++ genesis_round(projection->latency/Clockrate(projection)) + ++ genesis_round(projection->duration/Clockrate(projection)); + if(buffer->tmin < tmin){ + buffer->tmin = tmin; + } +@@ -176,10 +176,10 @@ + /* + ** convert time quantities into projection interval units + */ +- latency = round(projection->latency/clock); +- duration = round(projection->duration/clock); ++ latency = genesis_round(projection->latency/clock); ++ duration = genesis_round(projection->duration/clock); + if(duration == 0) duration = 1; +- simtime_minus_latency = round(simulation_time/clock - latency); ++ simtime_minus_latency = genesis_round(simulation_time/clock - latency); + t1 = simtime_minus_latency - duration; + #endif + +Index: genesis-2.2.1/src/olf/table.c +=================================================================== +--- genesis-2.2.1.orig/src/olf/table.c ++++ genesis-2.2.1/src/olf/table.c +@@ -162,8 +162,8 @@ + table->input = MSGVALUE(msg,0); + if (table->alloced) { + if (table->outputtable->xdivs && +- round(table->output)>=0) { +- table->table->table[round(table->output)]= ++ genesis_round(table->output)>=0) { ++ table->table->table[genesis_round(table->output)]= + table->input; + table->output+=1; + table->table->xmax=table->output; +@@ -181,7 +181,7 @@ + case 0: + x = MSGVALUE(msg,0); + if (table->alloced) { +- int i = round(table->input); ++ int i = genesis_round(table->input); + if (i < table->table->xdivs && i >= 0) { + table->output = table->table->table[i]; + table->table->table[i++] = x; +@@ -203,7 +203,7 @@ + table->output>=0) { + /* Check if new spike */ + if (table->input < table->stepsize) { +- table->table->table[round(table->output)]= ++ table->table->table[genesis_round(table->output)]= + SimulationTime(); + table->output+=1; + table->table->xmax=table->output; +Index: genesis-2.2.1/src/out/out_file2.c +=================================================================== +--- genesis-2.2.1.orig/src/out/out_file2.c ++++ genesis-2.2.1/src/out/out_file2.c +@@ -82,7 +82,7 @@ + ** xmax + */ + if(delta_x > 0){ +- xdim = round((xmax - xmin)/delta_x); ++ xdim = genesis_round((xmax - xmin)/delta_x); + } else { + /* + ** if that fails then just assume a 1D array +Index: genesis-2.2.1/src/shell/shell_ops.c +=================================================================== +--- genesis-2.2.1.orig/src/shell/shell_ops.c ++++ genesis-2.2.1/src/shell/shell_ops.c +@@ -201,7 +201,7 @@ + return 0; + } + +- return(round(Atof(optargv[1]))); ++ return(genesis_round(Atof(optargv[1]))); + } + + float do_tan(argc,argv) +Index: genesis-2.2.1/src/sim/sim_event.c +=================================================================== +--- genesis-2.2.1.orig/src/sim/sim_event.c ++++ genesis-2.2.1/src/sim/sim_event.c +@@ -314,7 +314,7 @@ + < buffer->tmin + CORRECTION) + { + #else +- if ((round(SimulationTime() / Clockrate(buffer)) ++ if ((genesis_round(SimulationTime() / Clockrate(buffer)) + - buffer->event[(buffer->start+1) + % buffer->size].time) + < buffer->tmin) +@@ -734,7 +734,7 @@ + #ifdef FLOATTIME + event.time = SimulationTime(); + #else +- event.time = round(SimulationTime()/Clockrate(buffer)); ++ event.time = genesis_round(SimulationTime()/Clockrate(buffer)); + #endif + event.magnitude = magnitude; + /* +Index: genesis-2.2.1/src/sys/header.h +=================================================================== +--- genesis-2.2.1.orig/src/sys/header.h ++++ genesis-2.2.1/src/sys/header.h +@@ -100,7 +100,7 @@ + #define MAX(x,y) (((x) > (y)) ? (x) : (y)) + #define MIN(x,y) (((x) < (y)) ? (x) : (y)) + #endif +-#define round(x) ((int)(0.5+(x))) ++#define genesis_round(x) ((int)(0.5+(x))) + #define sqr(x) ((x)*(x)) + + #ifndef PFI_DEFINED --- genesis-2.2.1.orig/debian/patches/110_bypass_gcc_optimiser_bug.diff +++ genesis-2.2.1/debian/patches/110_bypass_gcc_optimiser_bug.diff @@ -0,0 +1,14 @@ +Index: genesis-2.2.1/src/tools/cell_sheet.c +=================================================================== +--- genesis-2.2.1.orig/src/tools/cell_sheet.c 2006-10-07 17:49:35.000000000 +0200 ++++ genesis-2.2.1/src/tools/cell_sheet.c 2006-10-07 17:50:07.000000000 +0200 +@@ -464,8 +464,5 @@ + besti = i; + } + } +- if (besti < 0) +- *pt = pts[0]; +- else +- *pt = pts[besti]; ++ *pt = pts[besti < 0 ? 0 : besti]; + }