]>
Commit | Line | Data |
---|---|---|
6a5fa4e0 MG |
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 |