root/tcl-8.0/tags/rat_4_2_7/unix/Makefile.in @ 1185

Revision 1185, 36.0 KB (checked in by anonymous, 14 years ago)

This commit was manufactured by cvs2svn to create tag 'rat_4_2_7'.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1#
2# This file is a Makefile for Tcl.  If it has the name "Makefile.in"
3# then it is a template for a Makefile;  to generate the actual Makefile,
4# run "./configure", which is a configuration script generated by the
5# "autoconf" program (constructs like "@foo@" will get replaced in the
6# actual Makefile.
7#
8# SCCS: @(#) Makefile.in 1.190 97/11/05 10:57:38
9
10# Current Tcl version;  used in various names.
11
12VERSION = @TCL_VERSION@
13
14#----------------------------------------------------------------
15# Things you can change to personalize the Makefile for your own
16# site (you can make these changes in either Makefile.in or
17# Makefile, but changes to Makefile will get lost if you re-run
18# the configuration script).
19#----------------------------------------------------------------
20
21# Default top-level directories in which to install architecture-
22# specific files (exec_prefix) and machine-independent files such
23# as scripts (prefix).  The values specified here may be overridden
24# at configure-time with the --exec-prefix and --prefix options
25# to the "configure" script.
26
27prefix =        @prefix@
28exec_prefix =   @exec_prefix@
29
30# The following definition can be set to non-null for special systems
31# like AFS with replication.  It allows the pathnames used for installation
32# to be different than those used for actually reference files at
33# run-time.  INSTALL_ROOT is prepended to $prefix and $exec_prefix
34# when installing files.
35INSTALL_ROOT =
36
37# Directory from which applications will reference the library of Tcl
38# scripts (note: you can set the TCL_LIBRARY environment variable at
39# run-time to override this value):
40TCL_LIBRARY =   $(prefix)/lib/tcl$(VERSION)
41
42# Package search path.
43TCL_PACKAGE_PATH = @TCL_PACKAGE_PATH@
44
45# Path name to use when installing library scripts:
46SCRIPT_INSTALL_DIR =    $(INSTALL_ROOT)$(TCL_LIBRARY)
47
48# Directory in which to install libtcl.so or libtcl.a:
49LIB_INSTALL_DIR =       $(INSTALL_ROOT)$(exec_prefix)/lib
50
51# Path to use at runtime to refer to LIB_INSTALL_DIR:
52LIB_RUNTIME_DIR =       $(exec_prefix)/lib
53
54# Directory in which to install the program tclsh:
55BIN_INSTALL_DIR =       $(INSTALL_ROOT)$(exec_prefix)/bin
56
57# Directory in which to install the include file tcl.h:
58INCLUDE_INSTALL_DIR =   $(INSTALL_ROOT)$(prefix)/include
59
60# Top-level directory in which to install manual entries:
61MAN_INSTALL_DIR =       $(INSTALL_ROOT)$(prefix)/man
62
63# Directory in which to install manual entry for tclsh:
64MAN1_INSTALL_DIR =      $(MAN_INSTALL_DIR)/man1
65
66# Directory in which to install manual entries for Tcl's C library
67# procedures:
68MAN3_INSTALL_DIR =      $(MAN_INSTALL_DIR)/man3
69
70# Directory in which to install manual entries for the built-in
71# Tcl commands:
72MANN_INSTALL_DIR =      $(MAN_INSTALL_DIR)/mann
73
74# Libraries built with optimization switches have this additional extension
75TCL_DBGX =              @TCL_DBGX@
76
77# warning flags
78CFLAGS_WARNING =        @CFLAGS_WARNING@
79
80# The default switches for optimization or debugging
81CFLAGS_DEBUG =          @CFLAGS_DEBUG@
82CFLAGS_OPTIMIZE =       @CFLAGS_OPTIMIZE@
83
84# To change the compiler switches, for example to change from optimization to
85# debugging symbols, change the following line:
86#CFLAGS =               $(CFLAGS_DEBUG)
87#CFLAGS =               $(CFLAGS_OPTIMIZE)
88#CFLAGS =               $(CFLAGS_DEBUG) $(CFLAGS_OPTIMIZE)
89CFLAGS =                $(@CFLAGS_DEFAULT@)
90
91# To disable ANSI-C procedure prototypes reverse the comment characters
92# on the following lines:
93PROTO_FLAGS =
94#PROTO_FLAGS = -DNO_PROTOTYPE
95
96# Mathematical functions like sin and atan2 are enabled for expressions
97# by default.  To disable them, reverse the comment characters on the
98# following pairs of lines:
99MATH_FLAGS =
100#MATH_FLAGS = -DTCL_NO_MATH
101MATH_LIBS = @MATH_LIBS@
102#MATH_LIBS =
103
104# If you use the setenv, putenv, or unsetenv procedures to modify
105# environment variables in your application and you'd like those
106# modifications to appear in the "env" Tcl variable, switch the
107# comments on the two lines below so that Tcl provides these
108# procedures instead of your standard C library.
109
110ENV_FLAGS =
111#ENV_FLAGS = -DTclSetEnv=setenv -DTcl_PutEnv=putenv -DTclUnsetEnv=unsetenv
112
113# To compile for non-UNIX systems (so that only the non-UNIX-specific
114# commands are available), reverse the comment characters on the
115# following pairs of lines.  In addition, you'll have to provide your
116# own replacement for the "panic" procedure (see panic.c for what
117# the current one does).
118GENERIC_FLAGS =
119#GENERIC_FLAGS = -DTCL_GENERIC_ONLY
120UNIX_OBJS = tclMtherr.o tclUnixChan.o tclUnixEvent.o tclUnixFCmd.o \
121        tclUnixFile.o tclUnixPipe.o tclUnixSock.o \
122        tclUnixTime.o tclUnixInit.o
123#UNIX_OBJS =
124NOTIFY_OBJS = tclUnixNotfy.o
125#NOTIFY_OBJS =
126
127# To enable memory debugging reverse the comment characters on the following
128# lines.  Warning:  if you enable memory debugging, you must do it
129# *everywhere*, including all the code that calls Tcl, and you must use
130# ckalloc and ckfree everywhere instead of malloc and free.
131MEM_DEBUG_FLAGS =
132#MEM_DEBUG_FLAGS = -DTCL_MEM_DEBUG
133
134# To enable compilation debugging reverse the comment characters on
135# one of the following lines.
136COMPILE_DEBUG_FLAGS =
137#COMPILE_DEBUG_FLAGS = -DTCL_COMPILE_STATS
138#COMPILE_DEBUG_FLAGS = -DTCL_COMPILE_DEBUG -DTCL_COMPILE_STATS
139
140# Some versions of make, like SGI's, use the following variable to
141# determine which shell to use for executing commands:
142SHELL =         /bin/sh
143
144# Tcl used to let the configure script choose which program to use
145# for installing, but there are just too many different versions of
146# "install" around;  better to use the install-sh script that comes
147# with the distribution, which is slower but guaranteed to work.
148
149INSTALL =               @srcdir@/install-sh -c
150INSTALL_PROGRAM =       ${INSTALL}
151INSTALL_DATA =          ${INSTALL} -m 644
152
153# The following symbol defines additional compiler flags to enable
154# Tcl itself to be a shared library.  If Tcl isn't going to be a
155# shared library then the symbol has an empty definition.
156
157TCL_SHLIB_CFLAGS = @TCL_SHLIB_CFLAGS@
158#TCL_SHLIB_CFLAGS =
159
160# The symbols below provide support for dynamic loading and shared
161# libraries.  See configure.in for a description of what the
162# symbols mean.  The values of the symbols are normally set by the
163# configure script.  You shouldn't normally need to modify any of
164# these definitions by hand.
165
166SHLIB_LD = @SHLIB_LD@
167
168SHLIB_SUFFIX = @SHLIB_SUFFIX@
169#SHLIB_SUFFIX =
170
171DLTEST_TARGETS = dltest/pkg5${SHLIB_SUFFIX} dltest/Makefile
172
173# The following symbol is defined to "$(DLTEST_TARGETS)" if dynamic
174# loading is available;  this causes everything in the "dltest"
175# subdirectory to be built when making "tcltest.  If dynamic loading
176# isn't available, configure defines this symbol to an empty string,
177# in which case the shared libraries aren't built.
178BUILD_DLTEST = @BUILD_DLTEST@
179#BUILD_DLTEST =
180
181TCL_LIB_FILE = @TCL_LIB_FILE@
182#TCL_LIB_FILE = libtcl.a
183
184TCL_LIB_FLAG = @TCL_LIB_FLAG@
185#TCL_LIB_FLAG = -ltcl
186
187#----------------------------------------------------------------
188# The information below is modified by the configure script when
189# Makefile is generated from Makefile.in.  You shouldn't normally
190# modify any of this stuff by hand.
191#----------------------------------------------------------------
192
193COMPAT_OBJS =           @LIBOBJS@
194
195AC_FLAGS =              @DEFS@
196RANLIB =                @RANLIB@
197SRC_DIR =               @srcdir@
198TOP_DIR =               @srcdir@/..
199GENERIC_DIR =           $(TOP_DIR)/generic
200COMPAT_DIR =            $(TOP_DIR)/compat
201TOOL_DIR =              $(TOP_DIR)/tools
202DLTEST_DIR =            @srcdir@/dltest
203UNIX_DIR =              @srcdir@
204CC =                    @CC@
205
206#----------------------------------------------------------------
207# The information below should be usable as is.  The configure
208# script won't modify it and you shouldn't need to modify it
209# either.
210#----------------------------------------------------------------
211
212
213CC_SWITCHES =   ${CFLAGS} ${CFLAGS_WARNING} ${TCL_SHLIB_CFLAGS} \
214-I${GENERIC_DIR} -I${SRC_DIR} \
215${AC_FLAGS} ${MATH_FLAGS} ${GENERIC_FLAGS} ${PROTO_FLAGS} ${MEM_DEBUG_FLAGS} \
216${COMPILE_DEBUG_FLAGS} ${ENV_FLAGS} -DTCL_SHLIB_EXT=\"${SHLIB_SUFFIX}\"
217
218LIBS =          @DL_LIBS@ @LIBS@ $(MATH_LIBS) -lc
219
220DEPEND_SWITCHES = ${CFLAGS} -I${GENERIC_DIR} -I${SRC_DIR} \
221${AC_FLAGS} ${MATH_FLAGS} \
222${GENERIC_FLAGS} ${PROTO_FLAGS} ${MEM_DEBUG_FLAGS} \
223-DTCL_SHLIB_EXT=\"${SHLIB_SUFFIX}\"
224
225TCLSH_OBJS = tclAppInit.o
226
227TCLTEST_OBJS = tclTestInit.o tclTest.o tclTestObj.o tclUnixTest.o
228
229XTTEST_OBJS = tclTest.o tclTestObj.o tclUnixTest.o tclXtNotify.o \
230        tclXtTest.o xtTestInit.o
231
232GENERIC_OBJS = panic.o regexp.o tclAsync.o tclBasic.o tclBinary.o tclCkalloc.o \
233        tclClock.o tclCmdAH.o tclCmdIL.o tclCmdMZ.o tclCompExpr.o \
234        tclCompile.o tclDate.o tclEnv.o tclEvent.o tclExecute.o \
235        tclFCmd.o tclFileName.o tclGet.o tclHash.o tclHistory.o \
236        tclIndexObj.o tclInterp.o tclIO.o tclIOCmd.o tclIOSock.o \
237        tclIOUtil.o tclLink.o tclListObj.o tclLoad.o tclMain.o tclNamesp.o \
238        tclNotify.o tclObj.o tclParse.o tclPipe.o tclPkg.o tclPosixStr.o \
239        tclPreserve.o tclProc.o tclStringObj.o tclTimer.o tclUtil.o tclVar.o \
240        tclResolve.o
241
242LIBRARY_OBJS=lib_history.o lib_init.o lib_ldAout.o lib_http.o \
243        lib_optparse.o lib_parray.o lib_safe.o lib_word.o
244
245OBJS = ${GENERIC_OBJS} ${UNIX_OBJS} ${NOTIFY_OBJS} ${COMPAT_OBJS} $(LIBRARY_OBJS) @DL_OBJS@
246
247GENERIC_HDRS = \
248        $(GENERIC_DIR)/tclRegexp.h \
249        $(GENERIC_DIR)/tcl.h \
250        $(GENERIC_DIR)/tclInt.h \
251        $(GENERIC_DIR)/tclPort.h \
252        $(GENERIC_DIR)/tclPatch.h
253
254GENERIC_SRCS = \
255        $(GENERIC_DIR)/regexp.c \
256        $(GENERIC_DIR)/tclAsync.c \
257        $(GENERIC_DIR)/tclBasic.c \
258        $(GENERIC_DIR)/tclBinary.c \
259        $(GENERIC_DIR)/tclCkalloc.c \
260        $(GENERIC_DIR)/tclClock.c \
261        $(GENERIC_DIR)/tclCmdAH.c \
262        $(GENERIC_DIR)/tclCmdIL.c \
263        $(GENERIC_DIR)/tclCmdMZ.c \
264        $(GENERIC_DIR)/tclCompExpr.c \
265        $(GENERIC_DIR)/tclCompile.c \
266        $(GENERIC_DIR)/tclDate.c \
267        $(GENERIC_DIR)/tclEnv.c \
268        $(GENERIC_DIR)/tclEvent.c \
269        $(GENERIC_DIR)/tclExecute.c \
270        $(GENERIC_DIR)/tclFCmd.c \
271        $(GENERIC_DIR)/tclFileName.c \
272        $(GENERIC_DIR)/tclGet.c \
273        $(GENERIC_DIR)/tclHash.c \
274        $(GENERIC_DIR)/tclHistory.c \
275        $(GENERIC_DIR)/tclIndexObj.c \
276        $(GENERIC_DIR)/tclInterp.c \
277        $(GENERIC_DIR)/tclIO.c \
278        $(GENERIC_DIR)/tclIOCmd.c \
279        $(GENERIC_DIR)/tclIOSock.c \
280        $(GENERIC_DIR)/tclIOUtil.c \
281        $(GENERIC_DIR)/tclLink.c \
282        $(GENERIC_DIR)/tclListObj.c \
283        $(GENERIC_DIR)/tclLoad.c \
284        $(GENERIC_DIR)/tclMain.c \
285        $(GENERIC_DIR)/tclNamesp.c \
286        $(GENERIC_DIR)/tclNotify.c \
287        $(GENERIC_DIR)/tclObj.c \
288        $(GENERIC_DIR)/tclParse.c \
289        $(GENERIC_DIR)/tclPipe.c \
290        $(GENERIC_DIR)/tclPkg.c \
291        $(GENERIC_DIR)/tclPosixStr.c \
292        $(GENERIC_DIR)/tclPreserve.c \
293        $(GENERIC_DIR)/tclProc.c \
294        $(GENERIC_DIR)/tclResolve.c \
295        $(GENERIC_DIR)/tclStringObj.c \
296        $(GENERIC_DIR)/tclTest.c \
297        $(GENERIC_DIR)/tclTestObj.c \
298        $(GENERIC_DIR)/tclTimer.c \
299        $(GENERIC_DIR)/tclUtil.c \
300        $(GENERIC_DIR)/tclVar.c
301
302UNIX_HDRS = \
303        $(UNIX_DIR)/tclUnixPort.h
304
305UNIX_SRCS = \
306        $(UNIX_DIR)/tclAppInit.c \
307        $(UNIX_DIR)/tclMtherr.c \
308        $(UNIX_DIR)/tclUnixChan.c \
309        $(UNIX_DIR)/tclUnixEvent.c \
310        $(UNIX_DIR)/tclUnixFCmd.c \
311        $(UNIX_DIR)/tclUnixFile.c \
312        $(UNIX_DIR)/tclUnixNotfy.c \
313        $(UNIX_DIR)/tclUnixPipe.c \
314        $(UNIX_DIR)/tclUnixSock.c \
315        $(UNIX_DIR)/tclUnixTest.c \
316        $(UNIX_DIR)/tclUnixTime.c \
317        $(UNIX_DIR)/tclUnixInit.c
318
319DL_SRCS = \
320        $(UNIX_DIR)/tclLoadAix.c \
321        $(UNIX_DIR)/tclLoadAout.c \
322        $(UNIX_DIR)/tclLoadDl.c \
323        $(UNIX_DIR)/tclLoadDl2.c \
324        $(UNIX_DIR)/tclLoadDld.c \
325        $(GENERIC_DIR)/tclLoadNone.c \
326        $(UNIX_DIR)/tclLoadOSF.c \
327        $(UNIX_DIR)/tclLoadShl.c
328
329# Note: don't include DL_SRCS in SRCS:  most of those files won't
330# compile on the current machine, and they will cause problems for
331# things like "make depend".
332
333SRCS = $(GENERIC_SRCS) $(UNIX_SRCS)
334
335all: ${TCL_LIB_FILE} tclsh
336
337# The following target is configured by autoconf to generate either
338# a shared library or non-shared library for Tcl.
339${TCL_LIB_FILE}: ${OBJS}
340        rm -f ${TCL_LIB_FILE}
341        @MAKE_LIB@
342        $(RANLIB) ${TCL_LIB_FILE}
343
344# Make target which outputs the list of the .o contained in the Tcl lib
345# usefull to build a single big shared library containing Tcl and other
346# extensions.  used for the Tcl Plugin.  -- dl
347# The dependency on OBJS is not there because we just want the list
348# of objects here, not actually building them
349tclLibObjs:
350        @echo ${OBJS}
351# This targets actually build the objects needed for the lib in the above
352# case
353objs: ${OBJS}
354
355
356tclsh: ${TCLSH_OBJS} ${TCL_LIB_FILE}
357        ${CC} @LD_FLAGS@ ${TCLSH_OBJS} ${TCL_LIB_FILE} ${LIBS} \
358                @TCL_LD_SEARCH_FLAGS@ -o tclsh
359
360tcltest: ${TCLTEST_OBJS} ${TCL_LIB_FILE} ${BUILD_DLTEST}
361        ${CC} @LD_FLAGS@ ${TCLTEST_OBJS} @TCL_BUILD_LIB_SPEC@ ${LIBS} \
362                @TCL_LD_SEARCH_FLAGS@ -o tcltest
363
364xttest:  ${XTTEST_OBJS} ${GENERIC_OBJS} ${UNIX_OBJS} ${COMPAT_OBJS} \
365        @DL_OBJS@ ${BUILD_DLTEST}
366        ${CC} ${XTTEST_OBJS} ${GENERIC_OBJS} ${UNIX_OBJS} ${COMPAT_OBJS} \
367                @DL_OBJS@ @TCL_BUILD_LIB_SPEC@ ${LIBS} \
368                @TCL_LD_SEARCH_FLAGS@ -lXt -o xttest
369
370
371# Note, in the target below TCL_LIBRARY needs to be set or else
372# "make test" won't work in the case where the compilation directory
373# isn't the same as the source directory.
374
375test: tcltest
376        LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}; export LD_LIBRARY_PATH; \
377        SHLIB_PATH=`pwd`:${SHLIB_PATH}; export SHLIB_PATH; \
378        TCL_LIBRARY=${TOP_DIR}/library; export TCL_LIBRARY; \
379        ( echo cd $(TOP_DIR)/tests\; source all ) | ./tcltest
380
381# Useful target to launch a built tcltest with the proper path,...
382runtest:
383        LD_LIBRARY_PATH=`pwd`:${LD_LIBRARY_PATH}; export LD_LIBRARY_PATH; \
384        SHLIB_PATH=`pwd`:${SHLIB_PATH}; export SHLIB_PATH; \
385        TCL_LIBRARY=${TOP_DIR}/library; export TCL_LIBRARY; \
386        ./tcltest
387
388# The following target outputs the name of the top-level source directory
389# for Tcl (it is used by Tk's configure script, for example).  The
390# .NO_PARALLEL line is needed to avoid problems under Sun's "pmake".
391# Note: this target is now obsolete (use the autoconf variable
392# TCL_SRC_DIR from tclConfig.sh instead).
393
394.NO_PARALLEL: topDirName
395topDirName:
396        @cd $(TOP_DIR); pwd
397
398# The following target generates the file generic/tclDate.c
399# from the yacc grammar found in generic/tclGetDate.y.  This is
400# only run by hand as yacc is not available in all environments.
401# The name of the .c file is different than the name of the .y file
402# so that make doesn't try to automatically regenerate the .c file.
403
404gendate:
405        yacc -l $(GENERIC_DIR)/tclGetDate.y
406        sed -e 's/yy/TclDate/g' -e '/^#include <values.h>/d' \
407            -e 's/SCCSID/%Z\% %M\% %I\% %E\% %U\%/g' \
408            -e '/#ifdef __STDC__/,/#endif/d' -e '/TclDateerrlab:/d' \
409            -e '/TclDatenewstate:/d' -e '/#pragma/d' \
410            <y.tab.c >$(GENERIC_DIR)/tclDate.c
411        rm y.tab.c
412
413# The following targets generate the shared libraries in dltest that
414# are used for testing;  they are included as part of the "tcltest"
415# target (via the BUILD_DLTEST variable) if dynamic loading is supported
416# on this platform. The ".." environment variable stuff is needed
417# because on some platforms tclsh scripts will be executed as part of
418# building the shared libraries, and they need to be able to use the
419# uninstalled tclsh that is present in this directory.  The "make tclsh"
420# command is needed for the same reason (must make sure that it exists).
421
422dltest/pkg5${SHLIB_SUFFIX}: dltest/Makefile
423        if test ! -f tclsh; then $(MAKE) tclsh; else true; fi
424        cd dltest; PATH=..:${PATH} TCL_LIBRARY=../../library $(MAKE)
425
426dltest/Makefile: $(DLTEST_DIR)/configure $(DLTEST_DIR)/Makefile.in tclConfig.sh
427        if test ! -d dltest; then mkdir dltest; else true; fi
428        cd dltest; if test -f configure; then ./configure; else \
429            $(DLTEST_DIR)/configure; fi
430
431#install: install-binaries install-libraries install-man
432
433# Note: before running ranlib below, must cd to target directory because
434# some ranlibs write to current directory, and this might not always be
435# possible (e.g. if installing as root).
436
437install-binaries: $(TCL_LIB_FILE) tclsh
438        @for i in $(LIB_INSTALL_DIR) $(BIN_INSTALL_DIR) ; \
439            do \
440            if [ ! -d $$i ] ; then \
441                echo "Making directory $$i"; \
442                mkdir $$i; \
443                chmod 755 $$i; \
444                else true; \
445                fi; \
446            done;
447        @echo "Installing $(TCL_LIB_FILE)"
448        @$(INSTALL_DATA) $(TCL_LIB_FILE) $(LIB_INSTALL_DIR)/$(TCL_LIB_FILE)
449        @(cd $(LIB_INSTALL_DIR); $(RANLIB) $(TCL_LIB_FILE))
450        @chmod 555 $(LIB_INSTALL_DIR)/$(TCL_LIB_FILE)
451        @echo "Installing tclsh"
452        @$(INSTALL_PROGRAM) tclsh $(BIN_INSTALL_DIR)/tclsh$(VERSION)
453        @echo "Installing tclConfig.sh"
454        @$(INSTALL_DATA) tclConfig.sh $(LIB_INSTALL_DIR)/tclConfig.sh
455
456install-libraries:
457        @for i in $(INSTALL_ROOT)$(prefix)/lib $(INCLUDE_INSTALL_DIR) \
458                $(SCRIPT_INSTALL_DIR); \
459            do \
460            if [ ! -d $$i ] ; then \
461                echo "Making directory $$i"; \
462                mkdir $$i; \
463                chmod 755 $$i; \
464                else true; \
465                fi; \
466            done;
467        @for i in http2.0 http1.0 opt0.1; \
468            do \
469            if [ ! -d $(SCRIPT_INSTALL_DIR)/$$i ] ; then \
470                echo "Making directory $(SCRIPT_INSTALL_DIR)/$$i"; \
471                mkdir $(SCRIPT_INSTALL_DIR)/$$i; \
472                chmod 755 $(SCRIPT_INSTALL_DIR)/$$i; \
473                else true; \
474                fi; \
475            done;
476        @echo "Installing tcl.h"
477        @$(INSTALL_DATA) $(GENERIC_DIR)/tcl.h $(INCLUDE_INSTALL_DIR)/tcl.h
478        @for i in $(TOP_DIR)/library/*.tcl $(TOP_DIR)/library/tclIndex $(UNIX_DIR)/tclAppInit.c $(UNIX_DIR)/ldAix; \
479            do \
480            echo "Installing $$i"; \
481            $(INSTALL_DATA) $$i $(SCRIPT_INSTALL_DIR); \
482            done;
483        @for i in http2.0 http1.0 opt0.1; \
484            do \
485            for j in $(TOP_DIR)/library/$$i/*.tcl ; \
486                do \
487                echo "Installing $$j"; \
488                $(INSTALL_DATA) $$j $(SCRIPT_INSTALL_DIR)/$$i; \
489                done; \
490            done;
491
492install-man:
493        @for i in $(MAN_INSTALL_DIR) $(MAN1_INSTALL_DIR) $(MAN3_INSTALL_DIR) $(MANN_INSTALL_DIR) ; \
494            do \
495            if [ ! -d $$i ] ; then \
496                echo "Making directory $$i"; \
497                mkdir $$i; \
498                chmod 755 $$i; \
499                else true; \
500                fi; \
501            done;
502        @cd $(TOP_DIR)/doc; for i in *.1; \
503            do \
504            echo "Installing doc/$$i"; \
505            rm -f $(MAN1_INSTALL_DIR)/$$i; \
506            sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
507                    $$i > $(MAN1_INSTALL_DIR)/$$i; \
508            chmod 444 $(MAN1_INSTALL_DIR)/$$i; \
509            done;
510        $(UNIX_DIR)/mkLinks $(MAN1_INSTALL_DIR)
511        @cd $(TOP_DIR)/doc; for i in *.3; \
512            do \
513            echo "Installing doc/$$i"; \
514            rm -f $(MAN3_INSTALL_DIR)/$$i; \
515            sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
516                    $$i > $(MAN3_INSTALL_DIR)/$$i; \
517            chmod 444 $(MAN3_INSTALL_DIR)/$$i; \
518            done;
519        $(UNIX_DIR)/mkLinks $(MAN3_INSTALL_DIR)
520        @cd $(TOP_DIR)/doc; for i in *.n; \
521            do \
522            echo "Installing doc/$$i"; \
523            rm -f $(MANN_INSTALL_DIR)/$$i; \
524            sed -e '/man\.macros/r man.macros' -e '/man\.macros/d' \
525                    $$i > $(MANN_INSTALL_DIR)/$$i; \
526            chmod 444 $(MANN_INSTALL_DIR)/$$i; \
527            done;
528        $(UNIX_DIR)/mkLinks $(MANN_INSTALL_DIR)
529
530Makefile: $(UNIX_DIR)/Makefile.in
531        $(SHELL) config.status
532
533clean:
534        rm -f *.a *.o libtcl* core errs *~ \#* TAGS *.E a.out \
535                errors tclsh tcltest lib.exp tcl2c config.cache
536        if test -f dltest/Makefile; then cd dltest; $(MAKE) clean; fi
537
538distclean: clean
539        rm -rf Makefile config.status config.cache config.log tclConfig.sh \
540                $(PACKAGE).* prototype
541        if test -f dltest/Makefile; then cd dltest; $(MAKE) distclean; fi
542
543depend:
544        makedepend -- $(DEPEND_SWITCHES) -- $(SRCS)
545
546bp: $(UNIX_DIR)/bp.c
547        $(CC) $(CC_SWITCHES) $(UNIX_DIR)/bp.c -o bp
548
549# Test binaries.  The rules for tclTestInit.o and xtTestInit.o are
550# complicated because they are compiled from tclAppInit.c.  Can't use
551# the "-o" option because this doesn't work on some strange compilers
552# (e.g. UnixWare).
553
554tclTestInit.o: $(UNIX_DIR)/tclAppInit.c
555        @if test -f tclAppInit.o ; then \
556            rm -f tclAppInit.sav; \
557            mv tclAppInit.o tclAppInit.sav; \
558        fi;
559        $(CC) -c $(CC_SWITCHES) -DTCL_TEST $(UNIX_DIR)/tclAppInit.c
560        rm -f tclTestInit.o
561        mv tclAppInit.o tclTestInit.o
562        @if test -f tclAppInit.sav ; then \
563            mv tclAppInit.sav tclAppInit.o; \
564        fi;
565
566xtTestInit.o: $(UNIX_DIR)/tclAppInit.c
567        @if test -f tclAppInit.o ; then \
568            rm -f tclAppInit.sav; \
569            mv tclAppInit.o tclAppInit.sav; \
570        fi;
571        $(CC) -c $(CC_SWITCHES) -DTCL_TEST -DTCL_XT_TEST \
572                $(UNIX_DIR)/tclAppInit.c
573        rm -f xtTestInit.o
574        mv tclAppInit.o xtTestInit.o
575        @if test -f tclAppInit.sav ; then \
576            mv tclAppInit.sav tclAppInit.o; \
577        fi;
578
579# Library files
580$(UNIX_DIR)/tcl2c: $(GENERIC_DIR)/tcl2c.c
581        $(CC) $(GENERIC_DIR)/tcl2c.c -o $(UNIX_DIR)/tcl2c
582
583lib_history.o: $(TOP_DIR)/library/history.tcl $(UNIX_DIR)/tcl2c
584        $(UNIX_DIR)/tcl2c lib_history < $(TOP_DIR)/library/history.tcl > $(UNIX_DIR)/lib_history.c
585        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/lib_history.c
586
587lib_init.o: $(TOP_DIR)/library/init.tcl $(UNIX_DIR)/tcl2c
588        $(UNIX_DIR)/tcl2c lib_init < $(TOP_DIR)/library/init.tcl > $(UNIX_DIR)/lib_init.c
589        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/lib_init.c
590
591lib_ldAout.o: $(TOP_DIR)/library/ldAout.tcl $(UNIX_DIR)/tcl2c
592        $(UNIX_DIR)/tcl2c lib_ldAout < $(TOP_DIR)/library/ldAout.tcl > $(UNIX_DIR)/lib_ldAout.c
593        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/lib_ldAout.c
594
595lib_http.o: $(TOP_DIR)/library/http2.0/http.tcl $(UNIX_DIR)/tcl2c
596        $(UNIX_DIR)/tcl2c lib_http < $(TOP_DIR)/library/http2.0/http.tcl > $(UNIX_DIR)/lib_http.c
597        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/lib_http.c
598
599lib_optparse.o: $(TOP_DIR)/library/opt0.1/optparse.tcl $(UNIX_DIR)/tcl2c
600        $(UNIX_DIR)/tcl2c lib_optparse < $(TOP_DIR)/library/opt0.1/optparse.tcl > $(UNIX_DIR)/lib_optparse.c
601        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/lib_optparse.c
602
603lib_parray.o: $(TOP_DIR)/library/parray.tcl $(UNIX_DIR)/tcl2c
604        $(UNIX_DIR)/tcl2c lib_parray < $(TOP_DIR)/library/parray.tcl > $(UNIX_DIR)/lib_parray.c
605        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/lib_parray.c
606
607lib_safe.o: $(TOP_DIR)/library/safe.tcl $(UNIX_DIR)/tcl2c
608        $(UNIX_DIR)/tcl2c lib_safe < $(TOP_DIR)/library/safe.tcl > $(UNIX_DIR)/lib_safe.c
609        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/lib_safe.c
610
611lib_word.o: $(TOP_DIR)/library/word.tcl $(UNIX_DIR)/tcl2c
612        $(UNIX_DIR)/tcl2c lib_word < $(TOP_DIR)/library/word.tcl > $(UNIX_DIR)/lib_word.c
613        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/lib_word.c
614
615# Object files used on all Unix systems:
616
617panic.o: $(GENERIC_DIR)/panic.c
618        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/panic.c
619
620regexp.o: $(GENERIC_DIR)/regexp.c
621        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/regexp.c
622
623tclAppInit.o: $(UNIX_DIR)/tclAppInit.c
624        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclAppInit.c
625
626tclAsync.o: $(GENERIC_DIR)/tclAsync.c
627        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclAsync.c
628
629tclBasic.o: $(GENERIC_DIR)/tclBasic.c
630        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclBasic.c
631
632tclBinary.o: $(GENERIC_DIR)/tclBinary.c
633        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclBinary.c
634
635tclCkalloc.o: $(GENERIC_DIR)/tclCkalloc.c
636        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCkalloc.c
637
638tclClock.o: $(GENERIC_DIR)/tclClock.c
639        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclClock.c
640
641tclCmdAH.o: $(GENERIC_DIR)/tclCmdAH.c
642        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCmdAH.c
643
644tclCmdIL.o: $(GENERIC_DIR)/tclCmdIL.c
645        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCmdIL.c
646
647tclCmdMZ.o: $(GENERIC_DIR)/tclCmdMZ.c
648        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCmdMZ.c
649
650tclDate.o: $(GENERIC_DIR)/tclDate.c
651        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclDate.c
652
653tclCompExpr.o: $(GENERIC_DIR)/tclCompExpr.c
654        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCompExpr.c
655
656tclCompile.o: $(GENERIC_DIR)/tclCompile.c
657        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclCompile.c
658
659tclEnv.o: $(GENERIC_DIR)/tclEnv.c
660        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclEnv.c
661
662tclEvent.o: $(GENERIC_DIR)/tclEvent.c
663        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclEvent.c
664
665tclExecute.o: $(GENERIC_DIR)/tclExecute.c
666        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclExecute.c
667
668tclFCmd.o: $(GENERIC_DIR)/tclFCmd.c
669        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclFCmd.c
670
671tclFileName.o: $(GENERIC_DIR)/tclFileName.c
672        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclFileName.c
673
674tclGet.o: $(GENERIC_DIR)/tclGet.c
675        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclGet.c
676
677tclHash.o: $(GENERIC_DIR)/tclHash.c
678        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclHash.c
679
680tclHistory.o: $(GENERIC_DIR)/tclHistory.c
681        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclHistory.c
682
683tclIndexObj.o: $(GENERIC_DIR)/tclIndexObj.c
684        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIndexObj.c
685
686tclInterp.o: $(GENERIC_DIR)/tclInterp.c
687        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclInterp.c
688
689tclIO.o: $(GENERIC_DIR)/tclIO.c
690        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIO.c
691
692tclIOCmd.o: $(GENERIC_DIR)/tclIOCmd.c
693        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIOCmd.c
694
695tclIOSock.o: $(GENERIC_DIR)/tclIOSock.c
696        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIOSock.c
697
698tclIOUtil.o: $(GENERIC_DIR)/tclIOUtil.c
699        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclIOUtil.c
700
701tclLink.o: $(GENERIC_DIR)/tclLink.c
702        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclLink.c
703
704tclListObj.o: $(GENERIC_DIR)/tclListObj.c
705        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclListObj.c
706
707tclObj.o: $(GENERIC_DIR)/tclObj.c
708        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclObj.c
709
710tclLoad.o: $(GENERIC_DIR)/tclLoad.c
711        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclLoad.c
712
713tclLoadAix.o: $(UNIX_DIR)/tclLoadAix.c
714        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadAix.c
715
716tclLoadAout.o: $(UNIX_DIR)/tclLoadAout.c
717        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadAout.c
718
719tclLoadDl.o: $(UNIX_DIR)/tclLoadDl.c
720        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadDl.c
721
722tclLoadDl2.o: $(UNIX_DIR)/tclLoadDl2.c
723        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadDl2.c
724
725tclLoadDld.o: $(UNIX_DIR)/tclLoadDld.c
726        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadDld.c
727
728tclLoadNone.o: $(GENERIC_DIR)/tclLoadNone.c
729        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclLoadNone.c
730
731tclLoadOSF.o: $(UNIX_DIR)/tclLoadOSF.c
732        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadOSF.c
733
734tclLoadShl.o: $(UNIX_DIR)/tclLoadShl.c
735        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclLoadShl.c
736
737tclMain.o: $(GENERIC_DIR)/tclMain.c
738        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclMain.c
739
740tclMtherr.o: $(UNIX_DIR)/tclMtherr.c
741        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclMtherr.c
742
743tclNamesp.o: $(GENERIC_DIR)/tclNamesp.c
744        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclNamesp.c
745
746tclNotify.o: $(GENERIC_DIR)/tclNotify.c
747        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclNotify.c
748
749tclParse.o: $(GENERIC_DIR)/tclParse.c
750        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclParse.c
751
752tclPipe.o: $(GENERIC_DIR)/tclPipe.c
753        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPipe.c
754
755tclPkg.o: $(GENERIC_DIR)/tclPkg.c
756        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPkg.c
757
758tclPosixStr.o: $(GENERIC_DIR)/tclPosixStr.c
759        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPosixStr.c
760
761tclPreserve.o: $(GENERIC_DIR)/tclPreserve.c
762        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclPreserve.c
763
764tclProc.o: $(GENERIC_DIR)/tclProc.c
765        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclProc.c
766
767tclResolve.o: $(GENERIC_DIR)/tclResolve.c
768        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclResolve.c
769
770tclStringObj.o: $(GENERIC_DIR)/tclStringObj.c
771        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclStringObj.c
772
773tclUtil.o: $(GENERIC_DIR)/tclUtil.c
774        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclUtil.c
775
776tclVar.o: $(GENERIC_DIR)/tclVar.c
777        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclVar.c
778
779tclTest.o: $(GENERIC_DIR)/tclTest.c
780        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTest.c
781
782tclTestObj.o: $(GENERIC_DIR)/tclTestObj.c
783        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTestObj.c
784
785tclTimer.o: $(GENERIC_DIR)/tclTimer.c
786        $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tclTimer.c
787
788tclUnixChan.o: $(UNIX_DIR)/tclUnixChan.c
789        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixChan.c
790
791tclUnixEvent.o: $(UNIX_DIR)/tclUnixEvent.c
792        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixEvent.c
793
794tclUnixFCmd.o: $(UNIX_DIR)/tclUnixFCmd.c
795        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixFCmd.c
796
797tclUnixFile.o: $(UNIX_DIR)/tclUnixFile.c
798        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixFile.c
799
800tclUnixNotfy.o: $(UNIX_DIR)/tclUnixNotfy.c
801        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixNotfy.c
802
803tclUnixPipe.o: $(UNIX_DIR)/tclUnixPipe.c
804        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixPipe.c
805
806tclUnixSock.o: $(UNIX_DIR)/tclUnixSock.c
807        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixSock.c
808
809tclUnixTest.o: $(UNIX_DIR)/tclUnixTest.c
810        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixTest.c
811
812tclUnixTime.o: $(UNIX_DIR)/tclUnixTime.c
813        $(CC) -c $(CC_SWITCHES) $(UNIX_DIR)/tclUnixTime.c
814
815tclUnixInit.o: $(UNIX_DIR)/tclUnixInit.c tclConfig.sh
816        $(CC) -c $(CC_SWITCHES) -DTCL_LIBRARY=\"${TCL_LIBRARY}\" \
817                -DTCL_PACKAGE_PATH="\"${TCL_PACKAGE_PATH}\"" \
818                $(UNIX_DIR)/tclUnixInit.c
819
820# compat binaries
821
822fixstrtod.o: $(COMPAT_DIR)/fixstrtod.c
823        $(CC) -c $(CC_SWITCHES) $(COMPAT_DIR)/fixstrtod.c
824
825getcwd.o: $(COMPAT_DIR)/getcwd.c
826        $(CC) -c $(CC_SWITCHES) $(COMPAT_DIR)/getcwd.c
827
828opendir.o: $(COMPAT_DIR)/opendir.c
829        $(CC) -c $(CC_SWITCHES) $(COMPAT_DIR)/opendir.c
830
831strncasecmp.o: $(COMPAT_DIR)/strncasecmp.c
832        $(CC) -c $(CC_SWITCHES) $(COMPAT_DIR)/strncasecmp.c
833
834strstr.o: $(COMPAT_DIR)/strstr.c
835        $(CC) -c $(CC_SWITCHES) $(COMPAT_DIR)/strstr.c
836
837strtod.o: $(COMPAT_DIR)/strtod.c
838        $(CC) -c $(CC_SWITCHES) $(COMPAT_DIR)/strtod.c
839
840strtol.o: $(COMPAT_DIR)/strtol.c
841        $(CC) -c $(CC_SWITCHES) $(COMPAT_DIR)/strtol.c
842
843strtoul.o: $(COMPAT_DIR)/strtoul.c
844        $(CC) -c $(CC_SWITCHES) $(COMPAT_DIR)/strtoul.c
845
846tmpnam.o: $(COMPAT_DIR)/tmpnam.c
847        $(CC) -c $(CC_SWITCHES) $(COMPAT_DIR)/tmpnam.c
848
849waitpid.o: $(COMPAT_DIR)/waitpid.c
850        $(CC) -c $(CC_SWITCHES) $(COMPAT_DIR)/waitpid.c
851
852.c.o:
853        $(CC) -c $(CC_SWITCHES) $<
854
855#
856# Target to check for proper usage of UCHAR macro.
857#
858
859checkuchar:
860        -egrep isalnum\|isalpha\|iscntrl\|isdigit\|islower\|isprint\|ispunct\|isspace\|isupper\|isxdigit\|toupper\|tolower $(SRCS) | grep -v UCHAR
861
862#
863# Target to make sure that only symbols with "Tcl" prefixes are
864# exported.
865#
866
867checkexports: $(TCL_LIB_FILE)
868        -nm -p $(TCL_LIB_FILE) | awk '$$2 ~ /[TDB]/ { print $$3 }' | sort -n | grep -v '^[Tt]cl'
869
870#
871# Target to create a proper Tcl distribution from information in the
872# master source directory.  DISTDIR must be defined to indicate where
873# to put the distribution.
874#
875
876DISTROOT = /tmp/dist
877DISTNAME =      tcl@TCL_VERSION@@TCL_PATCH_LEVEL@
878ZIPNAME =       tcl@TCL_MAJOR_VERSION@@TCL_MINOR_VERSION@@TCL_PATCH_LEVEL@.zip
879DISTDIR =       $(DISTROOT)/$(DISTNAME)
880$(UNIX_DIR)/configure: $(UNIX_DIR)/configure.in
881        autoconf $(UNIX_DIR)/configure.in > $(UNIX_DIR)/configure
882dist: $(UNIX_DIR)/configure
883        rm -rf $(DISTDIR)
884        mkdir $(DISTDIR)
885        mkdir $(DISTDIR)/unix
886        cp -p $(UNIX_DIR)/*.c $(UNIX_DIR)/*.h $(DISTDIR)/unix
887        rm -f $(DISTDIR)/unix/bp.c
888        cp $(UNIX_DIR)/Makefile.in $(DISTDIR)/unix
889        chmod 664 $(DISTDIR)/unix/Makefile.in
890        cp $(UNIX_DIR)/configure $(UNIX_DIR)/configure.in \
891                $(UNIX_DIR)/tclConfig.sh.in $(UNIX_DIR)/install-sh \
892                $(UNIX_DIR)/porting.notes $(UNIX_DIR)/porting.old \
893                $(UNIX_DIR)/README $(UNIX_DIR)/ldAix \
894                $(DISTDIR)/unix
895        chmod 775 $(DISTDIR)/unix/configure $(DISTDIR)/unix/configure.in
896        chmod 775 $(DISTDIR)/unix/ldAix
897        chmod +x $(DISTDIR)/unix/install-sh
898        tclsh $(UNIX_DIR)/mkLinks.tcl \
899                $(UNIX_DIR)/../doc/*.[13n] > $(DISTDIR)/unix/mkLinks
900        chmod +x $(DISTDIR)/unix/mkLinks
901        mkdir $(DISTDIR)/generic
902        cp -p $(GENERIC_DIR)/*.c $(GENERIC_DIR)/*.h $(DISTDIR)/generic
903        cp -p $(GENERIC_DIR)/README $(DISTDIR)/generic
904        cp -p $(GENERIC_DIR)/tclGetDate.y $(DISTDIR)/generic
905        cp -p $(TOP_DIR)/changes $(TOP_DIR)/README* $(TOP_DIR)/license.terms \
906                $(DISTDIR)
907        mkdir $(DISTDIR)/library
908        cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/library/*.tcl \
909                $(TOP_DIR)/library/tclIndex $(DISTDIR)/library
910        for i in http2.0 http1.0 opt0.1; \
911            do \
912                mkdir $(DISTDIR)/library/$$i ;\
913                cp -p $(TOP_DIR)/library/$$i/*.tcl $(DISTDIR)/library/$$i; \
914            done;
915        mkdir $(DISTDIR)/doc
916        cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/doc/*.[13n] \
917                $(TOP_DIR)/doc/man.macros $(DISTDIR)/doc
918        mkdir $(DISTDIR)/compat
919        cp -p $(TOP_DIR)/license.terms $(TOP_DIR)/compat/*.c \
920                $(TOP_DIR)/compat/*.h $(TOP_DIR)/compat/README \
921                $(DISTDIR)/compat
922        mkdir $(DISTDIR)/tests
923        cp -p $(TOP_DIR)/license.terms $(DISTDIR)/tests
924        cp -p $(TOP_DIR)/tests/*.test $(TOP_DIR)/tests/README \
925                $(TOP_DIR)/tests/all $(TOP_DIR)/tests/*.tcl \
926                $(TOP_DIR)/tests/defs $(DISTDIR)/tests
927        mkdir $(DISTDIR)/win
928        cp -p $(TOP_DIR)/win/*.c $(TOP_DIR)/win/*.h $(TOP_DIR)/win/*.rc \
929                $(DISTDIR)/win
930        cp -p $(TOP_DIR)/win/*.bat $(DISTDIR)/win
931        cp -p $(TOP_DIR)/win/makefile.* $(DISTDIR)/win
932        cp -p $(TOP_DIR)/win/README $(DISTDIR)/win
933        cp -p $(TOP_DIR)/win/pkgIndex.tcl $(DISTDIR)/win
934        cp -p $(TOP_DIR)/license.terms $(DISTDIR)/win
935        mkdir $(DISTDIR)/mac
936        sccs edit -s $(TOP_DIR)/mac/tclMacProjects.sea.hqx
937        cp -p tclMacProjects.sea.hqx $(DISTDIR)/mac
938        sccs unedit $(TOP_DIR)/mac/tclMacProjects.sea.hqx
939        rm -f tclMacProjects.sea.hqx
940        cp -p $(TOP_DIR)/mac/*.c $(TOP_DIR)/mac/*.h $(TOP_DIR)/mac/*.r \
941                $(DISTDIR)/mac
942        cp -p $(TOP_DIR)/mac/porting.notes $(TOP_DIR)/mac/README $(DISTDIR)/mac
943        cp -p $(TOP_DIR)/mac/*.exp $(TOP_DIR)/mac/*.pch $(DISTDIR)/mac
944        cp -p $(TOP_DIR)/mac/*.doc $(DISTDIR)/mac
945        cp -p $(TOP_DIR)/mac/*.html $(DISTDIR)/mac
946        cp -p $(TOP_DIR)/license.terms $(DISTDIR)/mac
947        mkdir $(DISTDIR)/unix/dltest
948        cp -p $(UNIX_DIR)/dltest/*.c $(UNIX_DIR)/dltest/Makefile.in \
949                $(DISTDIR)/unix/dltest
950        cp -p $(UNIX_DIR)/dltest/configure.in $(UNIX_DIR)/dltest/configure \
951                $(UNIX_DIR)/dltest/README $(DISTDIR)/unix/dltest
952
953#
954# The following target can only be used for non-patch releases.  Use
955# the "allpatch" target below for patch releases.
956#
957
958alldist: dist
959        rm -f $(DISTROOT)/$(DISTNAME).tar.Z \
960                $(DISTROOT)/$(DISTNAME).tar.gz \
961                $(DISTROOT)/$(ZIPNAME)
962        cd $(DISTROOT); tar cf $(DISTNAME).tar $(DISTNAME); \
963                gzip -9 -c $(DISTNAME).tar > $(DISTNAME).tar.gz; \
964                compress $(DISTNAME).tar; zip -r8 $(ZIPNAME) $(DISTNAME)
965
966#
967# The target below is similar to "alldist" except it works for patch
968# releases.  It is needed because patch releases are peculiar: the
969# patch designation appears in the name of the compressed file
970# (e.g. tcl8.0p1.tar.gz) but the extracted source directory doesn't
971# include the patch designation (e.g. tcl8.0).
972#
973
974allpatch: dist
975        rm -f $(DISTROOT)/$(DISTNAME).tar.Z \
976                $(DISTROOT)/$(DISTNAME).tar.gz \
977                $(DISTROOT)/$(ZIPNAME)
978        mv $(DISTROOT)/tcl${VERSION} $(DISTROOT)/old
979        mv $(DISTROOT)/$(DISTNAME) $(DISTROOT)/tcl${VERSION}
980        cd $(DISTROOT); tar cf $(DISTNAME).tar tcl${VERSION}; \
981                gzip -9 -c $(DISTNAME).tar > $(DISTNAME).tar.gz; \
982                compress $(DISTNAME).tar; zip -r8 $(ZIPNAME) tcl${VERSION}
983        mv $(DISTROOT)/tcl${VERSION} $(DISTROOT)/$(DISTNAME)
984        mv $(DISTROOT)/old $(DISTROOT)/tcl${VERSION}
985
986#
987# Target to create a Macintosh version of the distribution.  This will
988# do a normal distribution and then massage the output to prepare it
989# for moving to the Mac platform.  This requires a few scripts and
990# programs found only in the Tcl group's tool workspace.
991#
992
993macdist: dist
994        rm -f $(DISTDIR)/mac/tclMacProjects.sea.hqx
995        tclsh $(TOOL_DIR)/man2html.tcl $(DISTDIR)/tmp ../.. tcl$(VERSION)
996        mv $(DISTDIR)/tmp/tcl$(VERSION) $(DISTDIR)/html
997        rm -rf $(DISTDIR)/doc
998        rm -rf $(DISTDIR)/tmp
999        tclsh $(TOOL_DIR)/cvtEOL.tcl $(DISTDIR)
1000
1001#
1002# Targets to build Solaris package of the distribution for the current
1003# architecture.  To build stream packages for both sun4 and i86pc
1004# architectures:
1005#
1006#   On the sun4 machine, execute the following:
1007#     make distclean; ./configure
1008#     make DISTDIR=<distdir> package
1009#
1010#   Once the build is complete, execute the following on the i86pc
1011#   machine:
1012#     make DISTDIR=<distdir> package-quick
1013#
1014# <distdir> is the absolute path to a directory where the build should
1015# take place.  These steps will generate the $(PACKAGE).sun4 and
1016# $(PACKAGE).i86pc stream packages.  It is important that the packages be
1017# built in this fashion in order to ensure that the architecture
1018# independent files are exactly the same, including timestamps, in
1019# both packages.
1020#
1021
1022PACKAGE=SCRPtcl
1023
1024package: dist package-config package-common package-binaries package-generate
1025package-quick: package-config package-binaries package-generate
1026
1027#
1028# Configure for the current architecture in the dist directory.
1029#
1030package-config:
1031        mkdir -p $(DISTDIR)/unix/`arch`
1032        cd $(DISTDIR)/unix/`arch`; \
1033        ../configure --prefix=/opt/$(PACKAGE)/$(VERSION) \
1034                --exec_prefix=/opt/$(PACKAGE)/$(VERSION)/`arch` \
1035                --enable-shared
1036        mkdir -p $(DISTDIR)/$(PACKAGE)/$(VERSION)
1037        mkdir -p $(DISTDIR)/$(PACKAGE)/$(VERSION)/`arch`
1038
1039#
1040# Build and install the architecture independent files in the dist directory.
1041#
1042
1043package-common:
1044        cd $(DISTDIR)/unix/`arch`;\
1045        $(MAKE); \
1046        $(MAKE) prefix=$(DISTDIR)/$(PACKAGE)/$(VERSION) \
1047                exec_prefix=$(DISTDIR)/$(PACKAGE)/$(VERSION)/`arch` \
1048                install-libraries install-man
1049        mkdir -p $(DISTDIR)/$(PACKAGE)/$(VERSION)/bin
1050        sed -e "s/TCLVERSION/$(VERSION)/g" < $(UNIX_DIR)/tclsh.sh \
1051                > $(DISTDIR)/$(PACKAGE)/$(VERSION)/bin/tclsh$(VERSION)
1052        chmod 755 $(DISTDIR)/$(PACKAGE)/$(VERSION)/bin/tclsh$(VERSION)
1053
1054#
1055# Build and install the architecture specific files in the dist directory.
1056#
1057
1058package-binaries:
1059        cd $(DISTDIR)/unix/`arch`; \
1060        $(MAKE); \
1061        $(MAKE) install-binaries prefix=$(DISTDIR)/$(PACKAGE)/$(VERSION) \
1062                exec_prefix=$(DISTDIR)/$(PACKAGE)/$(VERSION)/`arch`
1063
1064#
1065# Generate a package from the installed files in the dist directory for the
1066# current architecture.
1067#
1068
1069package-generate:
1070        pkgproto $(DISTDIR)/$(PACKAGE)/$(VERSION)/bin=bin \
1071                 $(DISTDIR)/$(PACKAGE)/$(VERSION)/include=include \
1072                 $(DISTDIR)/$(PACKAGE)/$(VERSION)/lib=lib \
1073                 $(DISTDIR)/$(PACKAGE)/$(VERSION)/man=man \
1074                 $(DISTDIR)/$(PACKAGE)/$(VERSION)/`arch`=`arch` \
1075        | tclsh $(UNIX_DIR)/mkProto.tcl \
1076                $(VERSION) $(UNIX_DIR) > prototype
1077        pkgmk -o -d . -f prototype -a `arch`
1078        pkgtrans -s . $(PACKAGE).`arch` $(PACKAGE)
1079        rm -rf $(PACKAGE)
1080
1081# DO NOT DELETE THIS LINE -- make depend depends on it.
Note: See TracBrowser for help on using the browser.