Commit dbbd4fe9 authored by anton's avatar anton

jwilke's changes:

Moved many files to other directories
renamed many files
other changes unknown to me.
parent ed2db5c1
This diff is collapsed.
......@@ -61,7 +61,7 @@ tester.fs coretest.fs postponetest.fs dbltest.fs
checkans.fs wordsets.fs
Benchmarks:
bubble.fs siev.fs matrix.fs fib.fs sieve.fs
bubble.fs siev.fs matrix.fs fib.fs
ANS Forth implementations of Gforth extensions:
compat/*.fs other.fs
......
......@@ -73,9 +73,6 @@ net (Joerg Plewe has posted a reference), but I think a program that
wires itself into the compiler (like etags.fs) is harder to fool by
search order tricks etc. EVALUATE is a problem.
*Object-Oriented Extensions
John Hayes has a portable package
*Documentation
A texinfo file
**glossaries of all wordsets.
......
......@@ -20,7 +20,7 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "32bit.h"
#include "../../engine/32bit.h"
/* indirect threading is faster on the 486, on the 386 direct
threading is probably faster. Therefore we leave defining
......
......@@ -34,7 +34,7 @@
#define FLUSH_ICACHE(addr,size) asm("call_pal 0x86") /* imb (instruction-memory barrier) */
#include "32bit.h"
#include "../../engine/32bit.h"
#ifdef DIRECT_THREADED
#ifdef WORDS_BIGENDIAN
......
......@@ -45,7 +45,7 @@ extern void cacheflush(void *, int, int);
cacheflush((void *)(addr), (int)(size), 32)
#endif
#include "32bit.h"
#include "../../engine/32bit.h"
#ifdef DIRECT_THREADED
/* PFA gives the parameter field address corresponding to a cfa */
......
......@@ -19,7 +19,7 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "32bit.h"
#include "../../engine/32bit.h"
/* Clearing the whole cache is a bit drastic, but this is the only
* cache control available on the apollo and NeXT
......
......@@ -45,7 +45,7 @@
#define FLUSH_ICACHE(addr,size) \
cacheflush((char *)(addr), (int)(size), BCACHE)
#include "32bit.h"
#include "../../machine/32bit.h"
#ifdef DIRECT_THREADED
/* some definitions for composing opcodes */
......
......@@ -29,7 +29,7 @@
#endif
#endif
#include "32bit.h"
#include "../../engine/32bit.h"
/* cache flush stuff */
#warning If you get assembly errors, here is the reason why
......
......@@ -19,7 +19,7 @@
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "32bit.h"
#include "../../engine/32bit.h"
#if !defined(USE_TOS) && !defined(USE_NO_TOS)
#define USE_TOS
......
......@@ -59,7 +59,7 @@ Defer flush-blocks
: open-blocks ( addr u -- ) \ gforth
\g use the file, whose name is given by @var{addr u}, as blocks file
2dup ['] open-path-file catch 0<>
2dup ['] open-fpath-file catch 0<>
if
2drop r/w bin create-file throw
else
......
......@@ -25,22 +25,23 @@ IF "%1"=="--enable-indirect-threaded" set THREAD=i
IF "%1"=="--enable-force-reg" set FREGS=y
shift
IF NOT "%1"=="" GOTO SWITCHES
MD MACHINE
COPY MAKEFILE.DOS MAKEFILE
COPY KERNL32L.FI KERNEL.FI
COPY 386.H MACHINE.H
COPY DOSCONF.H CONFIG.H
COPY ARCH\386\MACHINE.H MACHINE\MACHINE.H
COPY DOSCONF.H CSRC\CONFIG.H
COPY STARTUP.FS STARTUP.UNX
COPY STARTUP.DOS STARTUP.FS
COPY HISTORY.DOS HISTORY.FS
IF "%THREAD%"=="i" ECHO #ifndef INDIRECT_THREADED >>CONFIG.H
IF "%THREAD%"=="i" ECHO #define INDIRECT_THREADED 1 >>CONFIG.H
IF "%THREAD%"=="i" ECHO #endif >>CONFIG.H
IF "%THREAD%"=="d" ECHO #ifndef DIRECT_THREADED >>CONFIG.H
IF "%THREAD%"=="d" ECHO #define DIRECT_THREADED 1 >>CONFIG.H
IF "%THREAD%"=="d" ECHO #endif >>CONFIG.H
IF "%FREGS%"=="y" ECHO #ifndef FORCE_REG >>CONFIG.H
IF "%FREGS%"=="y" ECHO #define FORCE_REG 1 >>CONFIG.H
IF "%FREGS%"=="y" ECHO #endif >>CONFIG.H
IF "%THREAD%"=="i" ECHO #ifndef INDIRECT_THREADED >>CSRC\CONFIG.H
IF "%THREAD%"=="i" ECHO #define INDIRECT_THREADED 1 >>CSRC\CONFIG.H
IF "%THREAD%"=="i" ECHO #endif >>CSRC\CONFIG.H
IF "%THREAD%"=="d" ECHO #ifndef DIRECT_THREADED >>CSRC\CONFIG.H
IF "%THREAD%"=="d" ECHO #define DIRECT_THREADED 1 >>CSRC\CONFIG.H
IF "%THREAD%"=="d" ECHO #endif >>CSRC\CONFIG.H
IF "%FREGS%"=="y" ECHO #ifndef FORCE_REG >>CSRC\CONFIG.H
IF "%FREGS%"=="y" ECHO #define FORCE_REG 1 >>CSRC\CONFIG.H
IF "%FREGS%"=="y" ECHO #endif >>CSRC\CONFIG.H
ECHO static char gforth_version[]="0.3.0"; >version.h1
ECHO : version-string s" 0.3.0" ; >version.fs1

\ No newline at end of file
......@@ -56,24 +56,24 @@ end
copy makefile.os2 makefile
copy kernl32l.fi kernel.fi
copy 386.h machine.h
copy os2conf.h config.h
copy os2conf.h csrc\config.h
copy startup.fs startup.unx
copy startup.dos startup.fs
copy history.dos history.fs
if THREAD="i" THEN DO
call lineout config.h, "#ifndef INDIRECT_THREADED"
call lineout config.h, "#define INDIRECT_THREADED 1"
call lineout config.h, "#endif"
call lineout csrc\config.h, "#ifndef INDIRECT_THREADED"
call lineout csrc\config.h, "#define INDIRECT_THREADED 1"
call lineout csrc\config.h, "#endif"
end
IF THREAD="d" THEN do
call lineout config.h, "#ifndef DIRECT_THREADED"
call lineout config.h, "#define DIRECT_THREADED 1"
call lineout config.h, "#endif"
call lineout csrc\config.h, "#ifndef DIRECT_THREADED"
call lineout csrc\config.h, "#define DIRECT_THREADED 1"
call lineout csrc\config.h, "#endif"
end
IF FREGS="y" THEN do
call lineout config.h, "#ifndef FORCE_REG"
call lineout config.h, "#define FORCE_REG 1"
call lineout config.h, "#endif"
call lineout csrc\config.h, "#ifndef FORCE_REG"
call lineout csrc\config.h, "#define FORCE_REG 1"
call lineout csrc\config.h, "#endif"
end
call lineout version.h1, 'static char gforth_version[]="0.3.0";'
call lineout version.fs1, ': version-string s" 0.3.0" ;'
......
......@@ -18,8 +18,8 @@ dnl Process this file with autoconf to produce a configure script.
#along with this program; if not, write to the Free Software
#Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
AC_INIT(engine.c)
AC_CONFIG_HEADER(config.h)
AC_INIT(engine/engine.c)
AC_CONFIG_HEADER(engine/config.h)
AC_ARG_ENABLE(force-reg,
[ --enable-force-reg Use explicit register declarations if they appear in
......@@ -143,15 +143,43 @@ case "$host_cpu" in
LIBOBJS="cache.o"
LDFLAGS="-Xlinker -N"
LIBS="-L/lib/pa1.1/"
if test "${enable_direct_threaded+set}" = ""
then
AC_DEFINE(DIRECT_THREADED)
fi
;;
sparc*)
mach_h=sparc
;;
i386|i486|i586)
i386)
mach_h=386
CFLAGS="$CFLAGS -fomit-frame-pointer -fforce-addr -fforce-mem"
#!! direct/indirect threading switch
#!! -m486 flag
if test "${enable_direct_threaded+set}" = "" \
-a "${enable_indirect_threaded+set}" = ""
then
echo "Using direct threaded on 386er"
AC_DEFINE(DIRECT_THREADED)
fi
;;
i486)
mach_h=386
CFLAGS="$CFLAGS -fomit-frame-pointer -fforce-addr -fforce-mem -m486"
if test "${enable_direct_threaded+set}" = "" \
-a "${enable_indirect_threaded+set}" = ""
then
echo "Using direct threaded on 486er"
AC_DEFINE(DIRECT_THREADED)
fi
;;
i586|i686)
mach_h=386
CFLAGS="$CFLAGS -fomit-frame-pointer -fforce-addr -fforce-mem -m486"
if test "${enable_direct_threaded+set}" = "" \
-a "${enable_indirect_threaded+set}" = ""
then
echo "Using indirect threaded on Pentium and up"
AC_DEFINE(INDIRECT_THREADED)
fi
;;
m68k)
mach_h=m68k
......@@ -165,6 +193,9 @@ case "$host_cpu" in
alpha*)
mach_h=alpha
;;
power*)
mach_h=power
;;
*)
echo "No direct threading support for $host_cpu, using indirect threading."
echo "Using a generic machine description."
......@@ -219,6 +250,9 @@ dnl Checks for library functions
dnl This check is just for making later checks link with libm.
dnl using sin here is no good idea since it is built-into gcc and typechecked
AC_CHECK_LIB(m,asin)
AC_CHECK_FUNCS(dlopen)
AC_CHECK_LIB(dl,dlopen)
AC_CHECK_LIB(kernel32,GetModuleHandle)
AC_FUNC_MEMCMP
AC_REPLACE_FUNCS(memmove strtoul pow10 strerror strsignal atanh)
AC_CHECK_FUNCS(sys_siglist)
......@@ -235,6 +269,8 @@ AC_CHECK_FUNCS(mmap sysconf getpagesize)
kernel_fi=kernl${wordsize}${bytesex}.fi
AC_SUBST(kernel_fi)
AC_LINK_FILES(${mach_h}.h $kernel_fi,machine.h kernel.fi)
AC_OUTPUT(Makefile,echo timestamp > stamp-h)
AC_LINK_FILES(arch/${mach_h} $kernel_fi,machine kernel.fi)
AC_OUTPUT([
Makefile
engine/Makefile ],echo timestamp > stamp-h)
......@@ -37,6 +37,11 @@
\ targets 09jun93jaw
\ added: 2user and value 11jun93jaw
\ needed? works better now!!! 01mar97jaw
\ mach file is only loaded into target
\ cell corrected
\ include other.fs \ ansforth extentions for cross
: string, ( c-addr u -- )
......@@ -93,8 +98,11 @@ H
\ Parameter for target systems 06oct92py
>TARGET
mach-file count included
[IFUNDEF] has-interpreter true CONSTANT has-interpreter [THEN]
also Forth definitions
[IFDEF] asm-include asm-include [THEN]
......@@ -104,19 +112,10 @@ hex
>CROSS
\ Variables 06oct92py
Variable image
Variable tlast NIL tlast ! \ Last name field
Variable tlastcfa \ Last code field
Variable tdoes \ Resolve does> calls
Variable bit$
Variable tdp
: there tdp @ ;
\ Create additional parameters 19jan95py
T
NIL Constant TNIL
cell Constant tcell
cell<< Constant tcell<<
cell>bit Constant tcell>bit
......@@ -125,6 +124,17 @@ float Constant tfloat
1 bits/byte lshift Constant maxbyte
H
\ Variables 06oct92py
Variable image
Variable tlast TNIL tlast ! \ Last name field
Variable tlastcfa \ Last code field
Variable tdoes \ Resolve does> calls
Variable bit$
Variable tdp
: there tdp @ ;
>TARGET
\ Byte ordering and cell size 06oct92py
......@@ -132,13 +142,14 @@ H
: cell+ tcell + ;
: cells tcell<< lshift ;
: chars ;
: char+ 1 + ;
: floats tfloat * ;
>CROSS
: cell/ tcell<< rshift ;
>TARGET
20 CONSTANT bl
-1 Constant NIL
TNIL Constant NIL
>CROSS
......@@ -174,7 +185,7 @@ bigendian
>MINIMAL
: makekernel ( targetsize -- targetsize )
bit$ over 1- cell>bit rshift 1+ initmem
bit$ over 1- tcell>bit rshift 1+ initmem
image over initmem tdp off ;
>CROSS
......@@ -192,7 +203,7 @@ CREATE Bittable 80 c, 40 c, 20 c, 10 c, 8 c, 4 c, 2 c, 1 c,
\ Target memory access 06oct92py
: align+ ( taddr -- rest )
cell tuck 1- and - [ cell 1- ] Literal and ;
tcell tuck 1- and - [ tcell 1- ] Literal and ;
: cfalign+ ( taddr -- rest )
\ see kernel.fs:cfaligned
/maxalign tuck 1- and - [ /maxalign 1- ] Literal and ;
......@@ -220,7 +231,7 @@ CREATE Bittable 80 c, 40 c, 20 c, 10 c, 8 c, 4 c, 2 c, 1 c,
: here ( -- there ) there ;
: allot ( n -- ) tdp +! ;
: , ( w -- ) T here H cell T allot ! H ;
: , ( w -- ) T here H tcell T allot ! H ;
: c, ( char -- ) T here 1 allot c! H ;
: align ( -- ) T here H align+ 0 ?DO bl T c, H LOOP ;
: cfalign ( -- )
......@@ -271,6 +282,11 @@ Variable last-ghost
here tuck swap ! ghostheader T>
DOES> dup last-ghost ! >exec @ execute ;
variable cfalist 0 cfalist !
: markcfa
cfalist here over @ , swap ! , ;
\ ghost words 14oct92py
\ changed: 10may93py/jaw
......@@ -340,7 +356,7 @@ variable ResolveFlag
WHILE dup ?resolved
REPEAT drop ResolveFlag @
IF
abort" Unresolved words!"
-1 abort" Unresolved words!"
ELSE
." Nothing!"
THEN
......@@ -376,7 +392,7 @@ VARIABLE ^imm
\ Target Document Creation (goes to crossdoc.fd) 05jul95py
s" crossdoc.fd" r/w create-file throw value doc-file-id
s" doc/crossdoc.fd" r/w create-file throw value doc-file-id
\ contains the file-id of the documentation file
: T-\G ( -- )
......@@ -443,8 +459,16 @@ Defer skip? ' false IS skip?
ghost >magic @ <fwd> <> ;
: needed? ( -- flag ) \ name
ghost dup >magic @ <fwd> =
IF >link @ 0<> ELSE drop false THEN ;
\G returns a false flag when
\G a word is not defined
\G a forward reference exists
\G so the definition is not skipped!
bl word gfind
IF dup >magic @ <fwd> =
\ swap >link @ 0<> and
nip
0=
ELSE drop true THEN ;
: doer? ( -- flag ) \ name
ghost >magic @ <do:> = ;
......@@ -552,16 +576,20 @@ Defer (code)
Defer (end-code)
[THEN]
[IFUNDEF] ca>native
defer ca>native
[THEN]
>TARGET
: Code
(THeader there resolve
[ has-prims 0= [IF] ITC [ELSE] true [THEN] ] [IF]
there 2 T cells H + T a, 0 , H
[THEN]
depth (code) ;
(THeader there resolve
[ has-prims 0= [IF] ITC [ELSE] true [THEN] ] [IF]
there 2 T cells H + ca>native T a, 0 , H
[THEN]
depth (code) ;
: Code:
ghost dup there resolve <do:> swap >magic !
ghost dup there ca>native resolve <do:> swap >magic !
depth (code) ;
: end-code
......@@ -673,7 +701,7 @@ Cond: [ restrict? state off ;Cond
>TARGET
Cond: DOES> restrict?
compile (does>) dodoes, tdoes @ ?dup IF @ T here H resolve THEN
compile (does>) dodoes, tdoes @ ?dup IF @ T here H resolve THEN
;Cond
: DOES> dodoes, T here H !does depth T ] H ;
......@@ -878,11 +906,11 @@ Cond: ENDCASE restrict? compile drop 0 ?DO compile THEN LOOP ;Cond
\ Structural Conditionals 12dec92py
Cond: DO restrict? compile (do) T here H ;Cond
Cond: ?DO restrict? compile (?do) (leave T here H ;Cond
Cond: ?DO restrict? compile (?do) T (leave here H ;Cond
Cond: FOR restrict? compile (for) T here H ;Cond
>CROSS
: loop] dup <resolve cell - compile DONE compile unloop ;
: loop] dup <resolve tcell - compile DONE compile unloop ;
>TARGET
Cond: LOOP restrict? sys? compile (loop) loop] ;Cond
......@@ -962,9 +990,21 @@ also minimal
also minimal
\G interprets the line if word is not defined
: \- defined? IF postpone \ THEN ;
\G interprets the line if word is defined
: \+ defined? 0= IF postpone \ THEN ;
Cond: \- \- ;Cond
Cond: \+ \+ ;Cond
: ?? bl word find IF execute ELSE drop 0 THEN ;
: needed:
\G defines ghost for words that we want to be compiled
BEGIN >in @ bl word c@ WHILE >in ! ghost drop REPEAT drop ;
: [IF] postpone [IF] ;
: [THEN] postpone [THEN] ;
: [ELSE] postpone [ELSE] ;
......@@ -975,24 +1015,19 @@ Cond: [IFUNDEF] [IFUNDEF] ;Cond
Cond: [THEN] [THEN] ;Cond
Cond: [ELSE] [ELSE] ;Cond
\ save-cross 17mar93py
\ i'm not interested in bigforth features this time 10may93jaw
\ [IFDEF] file
\ also file
\ [THEN]
\ included throw after create-file 11may93jaw
previous
bigendian Constant bigendian
\ save-cross 17mar93py
>CROSS
Create magic s" Gforth10" here over allot swap move
char 1 bigendian + cell + magic 7 + c!
char 1 bigendian + tcell + magic 7 + c!
: save-cross ( "image-name" "binary-name" -- )
bl parse ." Saving to " 2dup type cr
w/o bin create-file throw >r
NIL IF
TNIL IF
s" #! " r@ write-file throw
bl parse r@ write-file throw
s" -i" r@ write-file throw
......@@ -1007,16 +1042,24 @@ char 1 bigendian + cell + magic 7 + c!
bl parse 2drop
THEN
image @ there r@ write-file throw \ write image
NIL IF
bit$ @ there 1- cell>bit rshift 1+
TNIL IF
bit$ @ there 1- tcell>bit rshift 1+
r@ write-file throw \ write tags
THEN
r> close-file throw ;
\ words that should be in minimal
>MINIMAL
also minimal
bigendian Constant bigendian
: save-cross save-cross ;
: here there ;
also forth [IFDEF] Label : Label Label ; [THEN] previous
also forth
[IFDEF] Label : Label Label ; [THEN]
[IFDEF] start-macros : start-macros start-macros ; [THEN]
previous
: + + ;
: or or ;
: 1- 1- ;
......@@ -1035,7 +1078,7 @@ also forth [IFDEF] Label : Label Label ; [THEN] previous
: 2/ 2/ ;
: . . ;
mach-file count included
\ mach-file count included
: all-words ['] false IS skip? ;
: needed-words ['] needed? IS skip? ;
......
......@@ -276,10 +276,20 @@ VARIABLE Unnest
Nesting @ 0= ?EXIT
-1 Nesting +! r>
ELSE
IP @ >r 1 Nesting +!
IP @ 1 cells + >r 1 Nesting +!
THEN
AGAIN ;
: dbg ' NestXT ?EXIT (debug) Leave-D ;
\ : test 1 2 4 swap dup . ;
: TRACE:
r> (debug) ;
: (TRACE")
cr
." BREAK AT: " type cr
r> (debug) ;
: TRACE"
postpone s"
postpone (TRACE") ; immediate
......@@ -4517,7 +4517,7 @@ These files contain relocatable data addresses, but fixed code addresses
(instead of tokens). They are specific to the executable (i.e.,
@file{gforth} file) they were created with. For direct threading on some
architectures (e.g., the i386), data-relocatable images do not work. You
get a data-relocatable image, if you use @file{gforth-makeimage} with a
get a data-relocatable image, if you use @file{gforthmi} with a
Gforth binary that is not doubly indirect threaded (@pxref{Fully
Relocatable Image Files}).
......@@ -4539,20 +4539,20 @@ are fully relocatable.
There are two ways to create a fully relocatable image file:
@menu
* gforth-makeimage:: The normal way
* gforthmi:: The normal way
* cross.fs:: The hard way
@end menu
@node gforth-makeimage, cross.fs, Fully Relocatable Image Files, Fully Relocatable Image Files
@subsection @file{gforth-makeimage}
@cindex @file{comp-image.fs}
@cindex @file{gforth-makeimage}
@node gforthmi, cross.fs, Fully Relocatable Image Files, Fully Relocatable Image Files
@subsection @file{gforthmi}
@cindex @file{comp-i.fs}
@cindex @file{gforthmi}
You will usually use @file{gforth-makeimage}. If you want to create an
You will usually use @file{gforthmi}. If you want to create an
image @var{file} that contains everything you would load by invoking
Gforth with @code{gforth @var{options}}, you simply say
@example
gforth-makeimage @var{file} @var{options}
gforthmi @var{file} @var{options}
@end example
E.g., if you want to create an image @file{asm.fi} that has the file
......@@ -4560,10 +4560,10 @@ E.g., if you want to create an image @file{asm.fi} that has the file
like this:
@example
gforth-makeimage asm.fi asm.fs
gforthmi asm.fi asm.fs
@end example
@file{gforth-makeimage} works like this: It produces two non-relocatable
@file{gforthmi} works like this: It produces two non-relocatable
images for different addresses and then compares them. Its output
reflects this: first you see the output (if any) of the two Gforth
invocations that produce the nonrelocatable image files, then you see
......@@ -4582,8 +4582,8 @@ cannot be represented correctly in the output image, you should examine
these places in the dictionary and verify that these cells are dead
(i.e., not read before they are written).
@cindex @code{savesystem} during @file{gforth-makeimage}
@cindex @code{bye} during @file{gforth-makeimage}
@cindex @code{savesystem} during @file{gforthmi}
@cindex @code{bye} during @file{gforthmi}
@cindex doubly indirect threaded code
@cindex environment variable @code{GFORTHD}
@cindex @code{GFORTHD} environment variable
......@@ -4597,7 +4597,7 @@ this executable through the environment variable @code{GFORTHD}
indirect threaded, you will not get a fully relocatable image, but a
data-relocatable image (because there is no code address offset).
@node cross.fs, , gforth-makeimage, Fully Relocatable Image Files
@node cross.fs, , gforthmi, Fully Relocatable Image Files
@subsection @file{cross.fs}
@cindex @file{cross.fs}
@cindex cross-compiler
......@@ -4626,16 +4626,16 @@ order to make the code relocatable.
If you invoke Gforth with a command line flag for the size
(@pxref{Invoking Gforth}), the size you specify is stored in the
dictionary. If you save the dictionary with @code{savesystem} or create
an image with @file{gforth-makeimage}, this size will become the default
an image with @file{gforthmi}, this size will become the default
for the resulting image file. E.g., the following will create a
fully relocatable version of gforth.fi with a 1MB dictionary:
@example
gforth-makeimage gforth.fi -m 1M
gforthmi gforth.fi -m 1M
@end example
In other words, if you want to set the default size for the dictionary
and the stacks of an image, just invoke @file{gforth-makeimage} with the
and the stacks of an image, just invoke @file{gforthmi} with the
appropriate options when creating the image.
@cindex stack size, cache-friendly
......
......@@ -35,7 +35,7 @@
% This automatically updates the version number based on RCS.
\def\deftexinfoversion$#1: #2 ${\def\texinfoversion{#2}}
\deftexinfoversion$Revision: 1.4 $
\deftexinfoversion$Revision: 1.1 $
\message{Loading texinfo package [Version \texinfoversion]:}
% If in a .fmt file, print the version number
......
......@@ -28,11 +28,11 @@
script? [IF]
warnings off
require extend.fs
require search-order.fs
require search.fs
require glocals.fs
require float.fs
require struct.fs
require debugging.fs
require debugs.fs
[THEN]
wordlist constant documentation
......
#Makefile for library replace functions
#Copyright (C) 1995-1997 Free Software Foundation, Inc.
#This file is part of Gforth.
#Gforth is free software; you can redistribute it and/or
#modify it under the terms of the GNU General Public License
#as published by the Free Software Foundation; either version 2
#of the License, or (at your option) any later version.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.#See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program; if not, write to the Free Software
#Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
SHELL = /bin/sh
RM = rm
RMTREE = rm -rf
CP = cp
TAR = tar cf -
GCC = @CC@
CC = $(GCC)
STRIP = strip
XCFLAGS = @CFLAGS@
XDEFINES = @DEFS@
SWITCHES = $(XCFLAGS) $(XDEFINES)
DEBUGFLAG = @DEBUGFLAG@
CFLAGS = $(DEBUGFLAG) -I$(srcdir) -O4 -Wall $(SWITCHES)
OBJECTS = io.o memcmpc.o @LIBOBJS@ @getopt_long@
all: replace.a
replace.a: $(OBJECTS)
ar r $@ $(OBJECTS)