Micropolis
Rev. | b4fe1a1aa49efbd41c500b38f522ee3af3171fd6 |
---|---|
Tamaño | 5,826 octetos |
Tiempo | 2014-12-15 02:24:36 |
Autor | Simon Morgan |
Log Message | first commit
|
#
# Makefile --
#
# Makefile for Extended Tcl. This requires Tcl 6.1 or Tcl 6.2 from Berkeley,
# which should be compiled before running this makefile. Its location is
# configured below.
#
#------------------------------------------------------------------------------
# Copyright 1992 Karl Lehenbauer and Mark Diekhans.
#
# 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. Karl Lehenbauer and
# Mark Diekhans make no representations about the suitability of this
# software for any purpose. It is provided "as is" without express or
# implied warranty.
#------------------------------------------------------------------------------
# $Id: Makefile,v 2.0 1992/10/16 04:54:45 markd Rel $
#------------------------------------------------------------------------------
#
include config.mk
include config/$(TCL_CONFIG_FILE)
SHELL=/bin/sh
#------------------------------------------------------------------------------
# List of files that are touched by secondary makefiles when something changes.
MADE.FILES=ucbsrc/made.tmp ossupp/made.tmp src/made.tmp
TKMADE.FILES=tkucbsrc/made.tmp
CFLAGS= $(OPTIMIZE_FLAG) $(XCFLAGS) -I$(TCL_UCB_DIR) $(MEM_DEBUG_FLAGS) \
$(SYS_DEP_FLAGS)
#------------------------------------------------------------------------------
all: tcl tcldef runtcl $(TCL_TK_SHELL)
#------------------------------------------------------------------------------
# Compile the Extended Tcl library and link the Tcl shell.
#
tcl: TCLX_MAKES
TCLX_MAKES: libtcl.a
cd ucbsrc; $(MAKE) -$(MAKEFLAGS) all
cd ossupp; $(MAKE) -$(MAKEFLAGS) all
cd tclsrc; $(MAKE) -$(MAKEFLAGS) all
cd src; $(MAKE) -$(MAKEFLAGS) all
# Copy the UCB libtcl.a file from where it was built. Force the other
# Makefiles to add their .o files to the library by nuking their made.tmp file.
libtcl.a: $(TCL_UCB_DIR)/libtcl.a
cp $(TCL_UCB_DIR)/libtcl.a .
rm -f $(MADE.FILES)
#------------------------------------------------------------------------------
# Generate a libtk.a with extensions and a wish shell with Extended Tcl
# commands.
#
wish: TKX_MAKES runwish
TKX_MAKES: libtk.a
cd tkucbsrc; $(MAKE) -$(MAKEFLAGS) all
cd tksrc; $(MAKE) -$(MAKEFLAGS) all
# Copy the UCB libtk.a file. Force the other Makefiles to add their
# .o files to the library by nuking their made.tmp file.
libtk.a: $(TCL_TK_DIR)/libtk.a
cp $(TCL_TK_DIR)/libtk.a libtk.a
rm -f $(TKMADE.FILES)
#------------------------------------------------------------------------------
# Generate a temporary TCLDEFAULT file so Tcl can be run in this directory.
# Also generate a script to point the TCLDEFAULT environment variable
# at this file for testing Tcl before its installed.
tcldef:
@echo " - Generating temporary TCLDEFAULT file. -"
@echo " - Use runtcl script to test Tcl before installing -"
@echo " - Use runwish script to test Tk before installing -"
@echo '# Temporary TCLDEFAULT file for debugging' >tcldef
@echo "set TCLPATH `pwd`/tcllib" >>tcldef
@echo "set TCLINIT `pwd`/tcllib/tclinit.tcl" >>tcldef
runtcl:
@echo ':' >runtcl
@echo '# script for testing Tcl before installation' >>runtcl
@echo "TCLDEFAULT=`pwd`/tcldef" >>runtcl
@echo "export TCLDEFAULT" >>runtcl
@echo "if [ \$$# = 0 ]" >>runtcl
@echo "then" >>runtcl
@echo " exec `pwd`/tcl" >>runtcl
@echo "else" >>runtcl
@echo " exec `pwd`/tcl \"\$$@\"" >>runtcl
@echo "fi" >>runtcl
chmod a+rx runtcl
runwish:
@echo ':' >runwish
@echo '# script for testing wish before installation' >>runwish
@echo "TCLDEFAULT=`pwd`/tcldef" >>runwish
@echo "export TCLDEFAULT" >>runwish
@echo "if [ \$$# = 0 ]" >>runwish
@echo "then" >>runwish
@echo " exec `pwd`/wish" >>runwish
@echo "else" >>runwish
@echo " exec `pwd`/wish \"\$$@\"" >>runwish
@echo "fi" >>runwish
chmod a+rx runwish
#------------------------------------------------------------------------------
#
# just test to see if the C++ include file compiles and links
tclplus:
cd src;$(MAKE) -$(MAKEFLAGS) tclplus
#------------------------------------------------------------------------------
#
# Run the UCB and Extended Tcl tests.
test: ucbtests extdtests
ucbtests: all
@echo ""
@echo "**************************************************"
@echo "* Ignore failures in tests: expr-2.2 & expr-2.6 *"
@echo "**************************************************"
@echo ""
./runtcl -c "cd $(TCL_UCB_DIR)/tests;source all"
extdtests: all
./runtcl -c "cd tests;source all"
#------------------------------------------------------------------------------
# Install Tcl.
install: all
./runtcl tclsrc/install.tcl
#------------------------------------------------------------------------------
# Clean up the mess we made.
clean:
cd ucbsrc; $(MAKE) -$(MAKEFLAGS) clean
cd ossupp; $(MAKE) -$(MAKEFLAGS) clean
cd src; $(MAKE) -$(MAKEFLAGS) clean
cd tclsrc; $(MAKE) -$(MAKEFLAGS) clean
cd tkucbsrc; $(MAKE) -$(MAKEFLAGS) clean
cd tksrc; $(MAKE) -$(MAKEFLAGS) clean
touch junk~ config/junk~
-rm -f *~ config/*~ libtcl.a tcldef libtk.a runtcl runwish