|
|
1.1 root 1: #
2: # Makefile --
3: #
4: # Makefile for Extended Tcl. This requires Tcl 6.1 or Tcl 6.2 from Berkeley,
5: # which should be compiled before running this makefile. Its location is
6: # configured below.
7: #
8: #------------------------------------------------------------------------------
9: # Copyright 1992 Karl Lehenbauer and Mark Diekhans.
10: #
11: # Permission to use, copy, modify, and distribute this software and its
12: # documentation for any purpose and without fee is hereby granted, provided
13: # that the above copyright notice appear in all copies. Karl Lehenbauer and
14: # Mark Diekhans make no representations about the suitability of this
15: # software for any purpose. It is provided "as is" without express or
16: # implied warranty.
17: #------------------------------------------------------------------------------
18: # $Id: Makefile,v 2.0 1992/10/16 04:54:45 markd Rel $
19: #------------------------------------------------------------------------------
20: #
21:
22: include config.mk
23: include config/$(TCL_CONFIG_FILE)
24: SHELL=/bin/sh
25:
26: #------------------------------------------------------------------------------
27:
28: # List of files that are touched by secondary makefiles when something changes.
29:
30: MADE.FILES=ucbsrc/made.tmp ossupp/made.tmp src/made.tmp
31: TKMADE.FILES=tkucbsrc/made.tmp
32:
33: CFLAGS= $(OPTIMIZE_FLAG) $(XCFLAGS) -I$(TCL_UCB_DIR) $(MEM_DEBUG_FLAGS) \
34: $(SYS_DEP_FLAGS)
35:
36: #------------------------------------------------------------------------------
37:
38: all: tcl tcldef runtcl $(TCL_TK_SHELL)
39:
40:
41: #------------------------------------------------------------------------------
42: # Compile the Extended Tcl library and link the Tcl shell.
43: #
44:
45: tcl: TCLX_MAKES
46:
47: TCLX_MAKES: libtcl.a
48: cd ucbsrc; $(MAKE) -$(MAKEFLAGS) all
49: cd ossupp; $(MAKE) -$(MAKEFLAGS) all
50: cd tclsrc; $(MAKE) -$(MAKEFLAGS) all
51: cd src; $(MAKE) -$(MAKEFLAGS) all
52:
53:
54: # Copy the UCB libtcl.a file from where it was built. Force the other
55: # Makefiles to add their .o files to the library by nuking their made.tmp file.
56:
57: libtcl.a: $(TCL_UCB_DIR)/libtcl.a
58: cp $(TCL_UCB_DIR)/libtcl.a .
59: rm -f $(MADE.FILES)
60:
61: #------------------------------------------------------------------------------
62: # Generate a libtk.a with extensions and a wish shell with Extended Tcl
63: # commands.
64: #
65:
66: wish: TKX_MAKES runwish
67:
68: TKX_MAKES: libtk.a
69: cd tkucbsrc; $(MAKE) -$(MAKEFLAGS) all
70: cd tksrc; $(MAKE) -$(MAKEFLAGS) all
71:
72:
73: # Copy the UCB libtk.a file. Force the other Makefiles to add their
74: # .o files to the library by nuking their made.tmp file.
75:
76: libtk.a: $(TCL_TK_DIR)/libtk.a
77: cp $(TCL_TK_DIR)/libtk.a libtk.a
78: rm -f $(TKMADE.FILES)
79:
80:
81: #------------------------------------------------------------------------------
82: # Generate a temporary TCLDEFAULT file so Tcl can be run in this directory.
83: # Also generate a script to point the TCLDEFAULT environment variable
84: # at this file for testing Tcl before its installed.
85:
86: tcldef:
87: @echo " - Generating temporary TCLDEFAULT file. -"
88: @echo " - Use runtcl script to test Tcl before installing -"
89: @echo " - Use runwish script to test Tk before installing -"
90: @echo '# Temporary TCLDEFAULT file for debugging' >tcldef
91: @echo "set TCLPATH `pwd`/tcllib" >>tcldef
92: @echo "set TCLINIT `pwd`/tcllib/tclinit.tcl" >>tcldef
93:
94: runtcl:
95: @echo ':' >runtcl
96: @echo '# script for testing Tcl before installation' >>runtcl
97: @echo "TCLDEFAULT=`pwd`/tcldef" >>runtcl
98: @echo "export TCLDEFAULT" >>runtcl
99: @echo "if [ \$$# = 0 ]" >>runtcl
100: @echo "then" >>runtcl
101: @echo " exec `pwd`/tcl" >>runtcl
102: @echo "else" >>runtcl
103: @echo " exec `pwd`/tcl \"\$$@\"" >>runtcl
104: @echo "fi" >>runtcl
105: chmod a+rx runtcl
106:
107: runwish:
108: @echo ':' >runwish
109: @echo '# script for testing wish before installation' >>runwish
110: @echo "TCLDEFAULT=`pwd`/tcldef" >>runwish
111: @echo "export TCLDEFAULT" >>runwish
112: @echo "if [ \$$# = 0 ]" >>runwish
113: @echo "then" >>runwish
114: @echo " exec `pwd`/wish" >>runwish
115: @echo "else" >>runwish
116: @echo " exec `pwd`/wish \"\$$@\"" >>runwish
117: @echo "fi" >>runwish
118: chmod a+rx runwish
119:
120: #------------------------------------------------------------------------------
121: #
122: # just test to see if the C++ include file compiles and links
123:
124: tclplus:
125: cd src;$(MAKE) -$(MAKEFLAGS) tclplus
126:
127: #------------------------------------------------------------------------------
128: #
129: # Run the UCB and Extended Tcl tests.
130:
131: test: ucbtests extdtests
132:
133: ucbtests: all
134: @echo ""
135: @echo "**************************************************"
136: @echo "* Ignore failures in tests: expr-2.2 & expr-2.6 *"
137: @echo "**************************************************"
138: @echo ""
139: ./runtcl -c "cd $(TCL_UCB_DIR)/tests;source all"
140:
141: extdtests: all
142: ./runtcl -c "cd tests;source all"
143:
144: #------------------------------------------------------------------------------
145: # Install Tcl.
146:
147: install: all
148: ./runtcl tclsrc/install.tcl
149:
150:
151: #------------------------------------------------------------------------------
152: # Clean up the mess we made.
153:
154: clean:
155: cd ucbsrc; $(MAKE) -$(MAKEFLAGS) clean
156: cd ossupp; $(MAKE) -$(MAKEFLAGS) clean
157: cd src; $(MAKE) -$(MAKEFLAGS) clean
158: cd tclsrc; $(MAKE) -$(MAKEFLAGS) clean
159: cd tkucbsrc; $(MAKE) -$(MAKEFLAGS) clean
160: cd tksrc; $(MAKE) -$(MAKEFLAGS) clean
161: touch junk~ config/junk~
162: -rm -f *~ config/*~ libtcl.a tcldef libtk.a runtcl runwish
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.