File:  [gforth] / gforth / Makefile.in
Revision 1.9: download - view: text, annotated - select for diffs
Mon Dec 12 17:10:29 1994 UTC (25 years, 3 months ago) by anton
Branches: MAIN
CVS tags: HEAD
Reorganized configuration: configure is now created by autoconf from
configure.in; I still left it in the CVS repository because not
everyone has autoconf. decstation.h renamed to mips.h and apollo68k to
m68k. Added general 32bit.h description, which the other machine
descriptions use. Created/copied replacement files install-sh memcmp.c
memmove.c select.c (carved out from ecvt.c) strtol.c
strtoul.c. Bytesex is now handled by configure.

Deciding the threading method is now done in machine.h, this should
also be done for USE_TOS and USE_FTOS.

    1: #Copyright 1992 by the ANSI figForth Development Group
    2: # To change the values of `make' variables: instead of editing Makefiles,
    3: # (1) if the variable is set in `config.status', edit `config.status'
    4: #     (which will cause the Makefiles to be regenerated when you run `make');
    5: # (2) otherwise, pass the desired values on the `make' command line.
    6: 
    7: #To do:
    8: #use $(srcdir) to make compilation in a non-srcdir possible
    9: 
   10: VERSION	=0.1alpha#gforth version
   11: SHELL	= /bin/sh
   12: RM	= rm
   13: CP	= cp
   14: INSTALL	= @INSTALL@
   15: INSTALL_PROGRAM = @INSTALL_PROGRAM@
   16: INSTALL_DATA = @INSTALL_DATA@
   17: LN_S	= @LN_S@
   18: GCC	= gcc
   19: FORTH	= ./gforth
   20: CC	= gcc
   21: TEXI2DVI = tex
   22: DVI2PS	= dvips
   23: XCFLAGS	= @CFLAGS@
   24: XDEFINES = @DEFS@
   25: SWITCHES = $(XCFLAGS) $(XDEFINES) -D_POSIX_VERSION#-DNDEBUG #turn off assertions
   26: ENGINE_FLAGS =  -fforce-mem -fforce-addr -fomit-frame-pointer -fno-defer-pop -fcaller-saves -DUSE_FTOS
   27: CFLAGS	= -g -O4 -Wall $(SWITCHES)
   28: 
   29: #-Xlinker -n puts text and data into the same 256M region
   30: #John Wavrik should use -Xlinker -N to get a writable text (executable)
   31: LDFLAGS	= -Xlinker -N @LDFLAGS@
   32: LDLIBS	= @LIBS@
   33: 
   34: prefix = @prefix@
   35: exec_prefix = @exec_prefix@
   36: srcdir = @srcdir@
   37: bindir = $(exec_prefix)/bin
   38: #read-only architecture-independent files
   39: datadir = $(prefix)/share
   40: #read-only architecture-dependent non-ascii files
   41: libdir = $(prefix)/lib
   42: infodir = $(prefix)/info
   43: mandir = $(prefix)/man/man1
   44: 
   45: 
   46: INCLUDES = forth.h io.h
   47: 
   48: FORTH_SRC = add.fs assert.fs ansi.fs blocks.fs bufio.fs checkans.fs \
   49: 	colorize.fs cross.fs debug.fs debugging.fs doskey.fs ds2texi.fs \
   50: 	dumpimage.fs environ.fs errore.fs etags.fs extend.fs filedump.fs \
   51: 	float.fs glocals.fs glosgen.fs gray.fs hash.fs history.fs \
   52: 	kernal.fs locals-test.fs look.fs mach32b.fs mach32l.fs main.fs \
   53: 	other.fs prims2x.fs random.fs search-order.fs see.fs sieve.fs \
   54: 	startup.fs struct.fs tools.fs toolsext.fs tt.fs vars.fs vt100.fs \
   55: 	vt100key.fs wordinfo.fs wordsets.fs
   56: 
   57: SOURCES	= Makefile.in configure.in  config.sub  config.guess \
   58: 	INSTALL README ToDo BUGS model gforth.ds \
   59: 	primitives engine.c main.c io.c \
   60: 	m68k.h mips.h 386.h hppa.h cache.c sparc.h 32bit.h \
   61: 	getopt.c getopt1.c getopt.h \
   62: 	ecvt.c memcmp.c strtol.c strtoul.c memmove.c \
   63: 	makefile.dos io-dos.h configure.bat startup.dos \
   64: 	glosgen.glo glossaries.doc \
   65: 	$(INCLUDES) $(FORTH_SRC)
   66: 
   67: RCS_FILES =  ToDo model high-level
   68: 
   69: GEN = gforth
   70: 
   71: OBJECTS	= engine.o io.o main.o @LIBOBJS@ @getopt_long@
   72: 
   73: # things that need a working forth system to be generated
   74: # this is used for antidependences,
   75: 
   76: FORTH_GEN =  primitives.b primitives.i prim_labels.i aliases.fs kernl32l.fi kernl32b.fi
   77: 
   78: GEN_PRECIOUS = $(FORTH_GEN) gforth.texi gforth.dvi gforth.ps Makefile configure
   79: 
   80: #standards.info recommends this:
   81: .SUFFIXES:
   82: .SUFFIXES: .c .o
   83: 
   84: all:
   85: 	if [ ! -f gforth ]; then $(MAKE) first; fi
   86: 	$(MAKE) more
   87: 
   88: first:	gforth
   89: 
   90: more:	$(FORTH_GEN) gforth
   91: 
   92: #from the gcc Makefile: 
   93: #"Deletion of files made during compilation.
   94: # There are four levels of this:
   95: #   `mostlyclean', `clean', `distclean' and `realclean'.
   96: # `mostlyclean' is useful while working on a particular type of machine.
   97: # It deletes most, but not all, of the files made by compilation.
   98: # It does not delete libgcc.a or its parts, so it won't have to be recompiled.
   99: # `clean' deletes everything made by running `make all'.
  100: # `distclean' also deletes the files made by config.
  101: # `realclean' also deletes everything that could be regenerated automatically."
  102: 
  103: clean:		
  104: 		-$(RM) $(GEN) *.o *.s
  105: 
  106: distclean:	clean
  107: 		-$(RM) machine.h gforth.fi config.cache config.log
  108: 
  109: realclean:	distclean
  110: 		-$(RM) $(GEN_PRECIOUS)
  111: 
  112: dist:		$(SOURCES) $(FORTH_GEN)
  113: 		-rm ../gforth-$(VERSION)
  114: 		ln -s `pwd` ../gforth-$(VERSION)
  115: 		echo "" $(SOURCES) $(FORTH_GEN) |\
  116: 			sed -e 's| | gforth-$(VERSION)/|g' |\
  117: 			(cd ..; xargs tar cvf gforth/gforth-$(VERSION).tar)
  118: 		gzip -9 -f gforth-$(VERSION).tar
  119: 		-rm ../gforth-$(VERSION)
  120: 
  121: install:	gforth $(FORTH_SRC) gforth.fi gforth.1 gforth.info
  122: 		$(INSTALL) -d $(bindir) $(mandir) $(infodir) $(libdir)/gforth $(datadir)/gforth	
  123: 		$(INSTALL_PROGRAM) gforth $(bindir)
  124: 		$(INSTALL_DATA) gforth.1 $(mandir)
  125: 		$(INSTALL_DATA) gforth.info $(infodir)
  126: 		$(INSTALL_DATA) gforth.fi $(libdir)/gforth
  127: 		for i in $(FORTH_SRC); do \
  128: 			$(CP) $$i $(datadir)/gforth; \
  129: 			$(LN_S) $(datadir)/gforth/$$i $(libdir)/gforth \
  130: 		done
  131: 		
  132: dvi:		gforth.dvi
  133: 
  134: gforth:	$(OBJECTS)
  135: 		-$(CP) gforth gforth~
  136: 		$(GCC) $(LDFLAGS) $(OBJECTS) $(LDLIBS) -o $@
  137: 		@MAKE_EXE@
  138: 
  139: kernl32l.fi:	main.fs search-order.fs cross.fs aliases.fs vars.fs add.fs \
  140: 		errore.fs kernal.fs extend.fs tools.fs toolsext.fs \
  141: 		mach32l.fs $(FORTH_GEN)
  142: 		-$(CP) kernl32l.fi kernl32l.fi~
  143: 		$(FORTH) -e 's" mach32l.fs"' main.fs
  144: 		@LINK_KERNL32L@
  145: 
  146: kernl32b.fi:	main.fs search-order.fs cross.fs aliases.fs vars.fs add.fs \
  147: 		errore.fs kernal.fs extend.fs tools.fs toolsext.fs \
  148: 		mach32b.fs $(FORTH_GEN)
  149: 		-$(CP) kernl32b.fi kernl32b.fi~
  150: 		$(FORTH) -e 's" mach32b.fs"' main.fs
  151: 		@LINK_KERNL32B@
  152: 
  153: engine.s:	engine.c primitives.i prim_labels.i machine.h $(INCLUDES)
  154: 		$(GCC) $(CFLAGS) $(ENGINE_FLAGS) -S engine.c
  155: 
  156: engine.o:	engine.c primitives.i prim_labels.i machine.h $(INCLUDES)
  157: 		$(GCC) $(CFLAGS) $(ENGINE_FLAGS) -c engine.c
  158: 
  159: strtoul.o:	strtoul.c strtol.c
  160: 
  161: primitives.b:	primitives
  162: 		m4 primitives >$@ 
  163: 
  164: primitives.i :	primitives.b prims2x.fs
  165: 		$(FORTH) prims2x.fs -e "s\" primitives.b\" ' output-c process-file bye" >$@
  166: 
  167: prim_labels.i :	primitives.b prims2x.fs
  168: 		$(FORTH) prims2x.fs -e "s\" primitives.b\" ' output-label process-file bye" >$@
  169: 
  170: aliases.fs:	primitives.b prims2x.fs
  171: 		$(FORTH) prims2x.fs -e "s\" primitives.b\" ' output-alias process-file bye" >$@
  172: 
  173: primitives.fs:	primitives.b prims2x.fs
  174: 		$(FORTH) prims2x.fs -e "s\" primitives.b\" ' output-forth process-file bye" >$@
  175: 
  176: gforth.texi:	gforth.ds primitives.b ds2texi.fs prims2x.fs
  177: 		$(FORTH) ds2texi.fs >$@
  178: 
  179: gforth.dvi:	gforth.texi
  180: 		$(TEXI2DVI) gforth.texi
  181: 
  182: gforth.ps:	gforth.dvi
  183: 		$(DVI2PS) gforth.dvi -o $@
  184: 
  185: # For an explanation of the following Makefile rules, see node
  186: # `Automatic Remaking' in GNU Autoconf documentation.
  187: Makefile: Makefile.in config.status
  188: 	CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status
  189: config.status: configure
  190: 	./config.status --recheck
  191: configure: configure.in
  192: 	cd $(srcdir) && autoconf
  193: 
  194: #unnecessary and does not work with all makes
  195: #%.s :		%.c $(INCLUDES)
  196: #		$(CC) $(CFLAGS) -S $< -o $@
  197: 
  198: #%.o :		%.s
  199: #		$(CC) $(CFLAGS) -c $< -o $@
  200: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>