Check-in [f90495f90f]
Not logged in
Overview
Comment: introduced tclshrl and wishrl because a user wants statically linked binaries.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:f90495f90f356d6406494a8c8b9e79b99b1e3cde
User & Date: johannes@zellner.org on 1999-12-16 21:53:03
Other Links: manifest | tags
Context
1999-12-16
21:53
Thu Dec 16 22:22:08 CET 1999 check-in: 5d555b6f90 user: johannes@zellner.org tags: trunk
21:53
introduced tclshrl and wishrl because a user wants statically linked binaries. check-in: f90495f90f user: johannes@zellner.org tags: trunk
1999-09-30
16:03
Thu Sep 30 18:03:05 MEST 1999 check-in: 5df4b8fab3 user: johannes@zellner.org tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Modified Makefile.in from [eef7262ac3] to [7533740ddd].

1
2
3
4
5
6
7
8
9
10
..
54
55
56
57
58
59
60


61
62
63
64
65
66
67
...
134
135
136
137
138
139
140


141
142
143
144
145
146
147
...
174
175
176
177
178
179
180
181


182
183
184
185
186
187
188
...
191
192
193
194
195
196
197

198
199
200
201
202
203
204
205
206
207
208
209








210











211
212
213
214
215
216
217
...
257
258
259
260
261
262
263






264
265
266
267
268
269
270
# -*- make -*-
# FILE: "/disk01/home/joze/src/tclreadline/Makefile.in"
# LAST MODIFICATION: "Wed Sep 29 10:57:20 1999 (joze)"
# (C) 1998, 1999 by Johannes Zellner, <johannes@zellner.org>
# $Id$
# ---
#
# tclreadline -- gnu readline for tcl
# Copyright (C) 1999  Johannes Zellner
#
................................................................................
# specific files (exec_prefix) and machine-independent files such
# as scripts (prefix).  The values specified here may be overridden
# at configure-time with the --exec-prefix and --prefix options
# to the "configure" script.

prefix      = @prefix@
exec_prefix = @exec_prefix@



# The following definition can be set to non-null for special systems
# like AFS with replication.  It allows the pathnames used for installation
# to be different than those used for actually reference files at
# run-time.  INSTALL_ROOT is prepended to $prefix and $exec_prefix
# when installing files.
INSTALL_ROOT =
................................................................................
# Makefile is generated from Makefile.in.  You shouldn't normally
# modify any of this stuff by hand.
#----------------------------------------------------------------

RANLIB               = @RANLIB@
TOP_DIR              = $(srcdir)
TCL_INCLUDE_DIR      = @TCL_INCLUDE_DIR@


READLINE_INCLUDE_DIR = @READLINE_INCLUDE_DIR@
TCLREADLINE_LIB_FILE = @TCLREADLINE_LIB_FILE@

READLINE_LIB         = -L@READLINE_LIB_DIR@ -lreadline
TERMLIB              = @TERMLIB@
TERMLIB_DIR          = @TERMLIB_DIR@

................................................................................
    config.h.in \
    tclreadline.c \
    tclreadline.h.in \
    tclreadline.n.in \
    tclreadlineConfig.sh.in \
    tclreadlineInit.tcl.in \
    tclreadlineSetup.tcl.in \
    tclreadlineCompleter.tcl



MISC = TODO

AUXILIARY = \
    aux/config.guess \
    aux/config.sub \
    aux/install-sh \
................................................................................

MAN = tclreadline.n
HTML = tclreadline.n.html

CIFLAGS = -f -t-"gnu readline for tcl" -m"before initial relase"

all: $(TCLREADLINE_LIB_FILE)


.PHONY: clean distclean ctags tcltags vimtags tags ci co

.SUFFIXES: .c .o .so .sl .tcl



@TCLREADLINE_LIB_FILE@: ${OBJS}
	rm -f $(TCLREADLINE_LIB_FILE)
	@MAKE_LIB@ $(TERMLIB_DIR) $(READLINE_LIB) $(TERMLIB)
	$(RANLIB) $(TCLREADLINE_LIB_FILE)









install: install-binaries install-libraries install-man











install-man: $(MANN_INSTALL_DIR)/$(MAN)

install-binaries: $(TCLREADLINE_LIB_FILE)
	@$(MKINSTALLDIRS) $(LIBRARY_INSTALL_DIR)
	@echo "Installing $(TCLREADLINE_LIB_FILE)"
	@$(INSTALL_DATA) $(TCLREADLINE_LIB_FILE) \
            $(LIBRARY_INSTALL_DIR)/$(TCLREADLINE_LIB_FILE)
................................................................................

configure: configure.in
	autoconf

tclreadline.o:	$(TOP_DIR)/tclreadline.c Makefile
	$(CC) -c $(CC_SWITCHES) $(DEFS) $(TOP_DIR)/tclreadline.c







ctags:
	ctags -R

tcltags: ctags tclreadlineInit.tcl.in tclreadlineSetup.tcl.in \
            tclreadlineCompleter.tcl
	tcltags -a tclreadlineInit.tcl.in tclreadlineSetup.tcl.in \
            tclreadlineCompleter.tcl

|
|







 







>
>







 







>
>







 







|
>
>







 







>












>
>
>
>
>
>
>
>

>
>
>
>
>
>
>
>
>
>
>







 







>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
..
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
...
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
...
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
...
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
...
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
# -*- make -*-
# FILE: "/home/joze/src/tclreadline/Makefile.in"
# LAST MODIFICATION: "Thu Dec 16 22:09:55 1999 (joze)"
# (C) 1998, 1999 by Johannes Zellner, <johannes@zellner.org>
# $Id$
# ---
#
# tclreadline -- gnu readline for tcl
# Copyright (C) 1999  Johannes Zellner
#
................................................................................
# specific files (exec_prefix) and machine-independent files such
# as scripts (prefix).  The values specified here may be overridden
# at configure-time with the --exec-prefix and --prefix options
# to the "configure" script.

prefix      = @prefix@
exec_prefix = @exec_prefix@

bindir      = @bindir@

# The following definition can be set to non-null for special systems
# like AFS with replication.  It allows the pathnames used for installation
# to be different than those used for actually reference files at
# run-time.  INSTALL_ROOT is prepended to $prefix and $exec_prefix
# when installing files.
INSTALL_ROOT =
................................................................................
# Makefile is generated from Makefile.in.  You shouldn't normally
# modify any of this stuff by hand.
#----------------------------------------------------------------

RANLIB               = @RANLIB@
TOP_DIR              = $(srcdir)
TCL_INCLUDE_DIR      = @TCL_INCLUDE_DIR@
TCL_LIB_SPEC         = @TCL_LIB_SPEC@
TK_LIB_SPEC          = @TK_LIB_SPEC@
READLINE_INCLUDE_DIR = @READLINE_INCLUDE_DIR@
TCLREADLINE_LIB_FILE = @TCLREADLINE_LIB_FILE@

READLINE_LIB         = -L@READLINE_LIB_DIR@ -lreadline
TERMLIB              = @TERMLIB@
TERMLIB_DIR          = @TERMLIB_DIR@

................................................................................
    config.h.in \
    tclreadline.c \
    tclreadline.h.in \
    tclreadline.n.in \
    tclreadlineConfig.sh.in \
    tclreadlineInit.tcl.in \
    tclreadlineSetup.tcl.in \
    tclreadlineCompleter.tcl \
    tclshrl.c \
    wishrl.c

MISC = TODO

AUXILIARY = \
    aux/config.guess \
    aux/config.sub \
    aux/install-sh \
................................................................................

MAN = tclreadline.n
HTML = tclreadline.n.html

CIFLAGS = -f -t-"gnu readline for tcl" -m"before initial relase"

all: $(TCLREADLINE_LIB_FILE)


.PHONY: clean distclean ctags tcltags vimtags tags ci co

.SUFFIXES: .c .o .so .sl .tcl



@TCLREADLINE_LIB_FILE@: ${OBJS}
	rm -f $(TCLREADLINE_LIB_FILE)
	@MAKE_LIB@ $(TERMLIB_DIR) $(READLINE_LIB) $(TERMLIB)
	$(RANLIB) $(TCLREADLINE_LIB_FILE)

shells: tclshrl wishrl

tclshrl: $(OBJS) tclshrl.o
	$(CC) -o tclshrl tclshrl.o $(OBJS) $(TERMLIB_DIR) $(READLINE_LIB) $(TERMLIB) $(TCL_LIB_SPEC)

wishrl: $(OBJS) wishrl.o
	$(CC) -o wishrl wishrl.o $(OBJS) $(TERMLIB_DIR) $(READLINE_LIB) $(TERMLIB) $(TK_LIB_SPEC)

install: install-binaries install-libraries install-man

install-shells: install-tclshrl install-wishrl

install-tclshrl:
	$(MKINSTALLDIRS) $(bindir)
	$(INSTALL_PROGRAM) tclshrl $(bindir)/tclshrl

install-wishrl:
	$(MKINSTALLDIRS) $(bindir)
	$(INSTALL_PROGRAM) wishrl $(bindir)/wishrl

install-man: $(MANN_INSTALL_DIR)/$(MAN)

install-binaries: $(TCLREADLINE_LIB_FILE)
	@$(MKINSTALLDIRS) $(LIBRARY_INSTALL_DIR)
	@echo "Installing $(TCLREADLINE_LIB_FILE)"
	@$(INSTALL_DATA) $(TCLREADLINE_LIB_FILE) \
            $(LIBRARY_INSTALL_DIR)/$(TCLREADLINE_LIB_FILE)
................................................................................

configure: configure.in
	autoconf

tclreadline.o:	$(TOP_DIR)/tclreadline.c Makefile
	$(CC) -c $(CC_SWITCHES) $(DEFS) $(TOP_DIR)/tclreadline.c

tclshrl.o:	$(TOP_DIR)/tclshrl.c Makefile
	$(CC) -c $(CC_SWITCHES) $(DEFS) $(TOP_DIR)/tclshrl.c

wishrl.o:	$(TOP_DIR)/wishrl.c Makefile
	$(CC) -c $(CC_SWITCHES) $(DEFS) $(TOP_DIR)/wishrl.c

ctags:
	ctags -R

tcltags: ctags tclreadlineInit.tcl.in tclreadlineSetup.tcl.in \
            tclreadlineCompleter.tcl
	tcltags -a tclreadlineInit.tcl.in tclreadlineSetup.tcl.in \
            tclreadlineCompleter.tcl

Modified README from [a78ad2a391] to [fe12ffe1fc].

1
2
3
4
5
6
7
8
9
10
..
56
57
58
59
60
61
62
63


















64
65
66
67
68
69
70

    FILE: "/home/joze/src/tclreadline/README"
    LAST MODIFICATION: "Tue Sep 21 21:21:36 1999 (joze)"
    (C) 1998, 1999 by Johannes Zellner, <johannes@zellner.org>
    $Id$
    ---

    tclreadline -- gnu readline for tcl
    Copyright (C) 1999  Johannes Zellner

................................................................................
        It uses the tclConfig.sh file, which should reside somewhere
        in /usr/local/lib/ or /usr/local/lib/tcl8.0/...

    (b) Make sure you have gnu readline 2.2 or higher.
        tclreadline uses the gnu readline callback handler, which
        wasn't implemented in early releases.

The usual ./configure; make; make install sequence should do the rest.




















4. Using tclreadline for interactive tcl scripting.
---------------------------------------------------

copy the sample.tclshrc to $HOME/.tclshrc. If you use another interpreter
like wish, you should copy the file sample.tclshrc to $HOME/.wishrc


|







 







|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







1
2
3
4
5
6
7
8
9
10
..
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88

    FILE: "/home/joze/src/tclreadline/README"
    LAST MODIFICATION: "Thu Dec 16 22:17:39 1999 (joze)"
    (C) 1998, 1999 by Johannes Zellner, <johannes@zellner.org>
    $Id$
    ---

    tclreadline -- gnu readline for tcl
    Copyright (C) 1999  Johannes Zellner

................................................................................
        It uses the tclConfig.sh file, which should reside somewhere
        in /usr/local/lib/ or /usr/local/lib/tcl8.0/...

    (b) Make sure you have gnu readline 2.2 or higher.
        tclreadline uses the gnu readline callback handler, which
        wasn't implemented in early releases.

    (c) The usual ./configure; make; make install sequence should do the rest.

    (d) Optionally (or additionally) you can build the executables
        tclshrl and / or wishrl which are a readline enhanced replacement
        for tclsh and wish. To compile these executable you should type
            make tclshrl
        or
            make wishrl
        or
            make shells
        the latter will compile both shells. To install these shells
        you should type
            make install-tclshrl
        or
            make install-wishrl
        or
            make install-shells
        Building these executables is discouraged but necessary
        on systems which don't support shared libs.


4. Using tclreadline for interactive tcl scripting.
---------------------------------------------------

copy the sample.tclshrc to $HOME/.tclshrc. If you use another interpreter
like wish, you should copy the file sample.tclshrc to $HOME/.wishrc

Modified configure.in from [60c4ecbda9] to [c19b6f76b5].

1
2
3
4
5
6
7

8
9
10

11
12
13
14
15

16
17
18
19
20

21
22
23
24

25
26
27

28
29
30
31
32
33
34
35
36
37



38
39
40
41
42
43
44
45

46
47
48
49
50
51
52
53
54
55
..
78
79
80
81
82
83
84

































85
86
87
88
89
90
91
...
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
...
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
...
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
...
470
471
472
473
474
475
476

477
478
479
480
481
482
483
# -*- autoconf -*-
# FILE: "/home/joze/src/tclreadline/configure.in"
# LAST MODIFICATION: "Tue Sep 28 22:51:45 1999 (joze)"
# (C) 1998, 1999 by Johannes Zellner, <johannes@zellner.org>
# $Id$
# ---
#

# tclreadline -- gnu readline for tcl
# Copyright (C) 1999  Johannes Zellner
#

# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#

# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#

# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#

# johannes@zellner.org
# http://www.zellner.org/tclreadline/
#

# ================================================================== */  

dnl	This file is an input file used by the GNU "autoconf" program to
dnl	generate the file "configure", which is run during Tk installation
dnl	to configure the system for the local environment.

AC_REVISION($Revision$)

AC_INIT(tclreadline.c)
AC_CONFIG_HEADER(config.h)




TCLREADLINE_MAJOR_VERSION=1
TCLREADLINE_MINOR_VERSION=0
TCLREADLINE_PATCHLEVEL=3
TCLREADLINE_VERSION=$TCLREADLINE_MAJOR_VERSION.$TCLREADLINE_MINOR_VERSION
TCLREADLINE_PATCHLEVEL_STR=${TCLREADLINE_VERSION}.${TCLREADLINE_PATCHLEVEL}
VERSION=$TCLREADLINE_VERSION



AC_PREREQ(2.13)
AC_CONFIG_AUX_DIR(./aux)
AC_CANONICAL_HOST


TCLREADLINE_LPATH=`echo $LD_LIBRARY_PATH $LD_RUN_PATH $LPATH | sed 's/:/ /g'`
TCLREADLINE_LPATH="$TCLREADLINE_LPATH /usr/local/lib /lib /usr/lib /usr/shlib"


................................................................................
    AC_MSG_ERROR(Can't find Tcl libraries.  Use --with-tcl to specify the directory containing tclConfig.sh on your system.)
else
    . $TCL_LIB_DIR/tclConfig.sh
    AC_MSG_RESULT($TCL_LIB_DIR/tclConfig.sh)
    AC_MSG_CHECKING([for your tcl version])
    AC_MSG_RESULT([$TCL_VERSION, patchlevel $TCL_PATCH_LEVEL])
fi


































#--------------------------------------------------------------------
#   Read in configuration information generated by Tcl for shared
#   libraries, and arrange for it to be substituted into our
#   Makefile.
#--------------------------------------------------------------------

................................................................................
#--------------------------------------------------------------------
#   The statements below define a collection of symbols related to
#   building libtclreadline as a shared library instead of a static library.
#   (static is not implemented yet anyway).
#--------------------------------------------------------------------

AC_ARG_ENABLE(shared,
    [  --disable-shared        don't build libtclreadline as a shared library
                          (not implemented -- probably never).],
    [ok=$enableval], [ok=yes])
if test "$ok" = "yes"; then
    if test ${TCL_SHARED_BUILD} = 0; then
        AC_MSG_ERROR(Tcl was not built with --enable-shared, so you can't use shared libraries.)
    fi
    SHLIB_CFLAGS="${SHLIB_CFLAGS}"
    eval "TCLREADLINE_LIB_FILE=libtclreadline${VERSION}${SHLIB_SUFFIX}"
    TCLREADLINE_PKG_FILE="[[file join [file dirname \$dir] ${TCLREADLINE_LIB_FILE}]]"
    MAKE_LIB="\$(SHLIB_LD) -o ${TCLREADLINE_LIB_FILE} \$(OBJS) ${SHLIB_LD_LIBS}"
    RANLIB=":"
else
    AC_MSG_ERROR(non-shared not implemented yet. (probably never))
    SHLIB_CFLAGS=""
    eval "TCLREADLINE_LIB_FILE=libtclreadline${VERSION}.a"
    TCLREADLINE_PKG_FILE=""
    MAKE_LIB="ar cr ${TCLREADLINE_LIB_FILE} \${OBJS}"
fi

# Note:  in the following variable, it's important to use the absolute
# path name of the Tcl directory rather than "..":  this is because
# AIX remembers this path and will attempt to use it at run-time to look
# up the Tcl library.
................................................................................
  Can't find readline.h.
  Use --with-readline-includes to specify the directory
  containing readline.h on your system.])
else
    AC_MSG_RESULT($READLINE_INCLUDE_DIR/readline.h)
	base="`(basename ${READLINE_INCLUDE_DIR}) 2>/dev/null`"
	if test "x${base}" != "xreadline"; then
		AC_DEFINE_UNQUOTED(READLINE_LIBRARY, 1)
	fi
fi



#--------------------------------------------------------------------
#   Check for libreadline
................................................................................
# _rl_executing_macro.

AC_MSG_CHECKING([for _rl_executing_macro in -lreadline])
AC_TRY_LINK(,[
	extern char* _rl_executing_macro;
	_rl_executing_macro = (char*) 0;
],
    AC_MSG_RESULT(yes); AC_DEFINE_UNQUOTED(EXECUTING_MACRO_HACK, 1),
    AC_MSG_RESULT(no))

# check for readline's rl_cleanup_after_signal

AC_MSG_CHECKING([for rl_cleanup_after_signal() in -lreadline])
AC_TRY_LINK(,[
    extern void rl_cleanup_after_signal();
	rl_cleanup_after_signal();
],
    AC_MSG_RESULT(yes); AC_DEFINE_UNQUOTED(CLEANUP_AFER_SIGNAL, 1),
    AC_MSG_RESULT(no))


AC_MSG_CHECKING([for the readline version number])
AC_TRY_RUN([
#include <stdio.h>
int main () {
................................................................................
AC_SUBST(TCLREADLINE_VERSION)
AC_SUBST(TCLREADLINE_PATCHLEVEL)
AC_SUBST(TCLREADLINE_LIBRARY)
AC_SUBST(TCLREADLINE_PATCHLEVEL_STR)


AC_SUBST(TCL_LIB_DIR)

AC_SUBST(TCL_INCLUDE_DIR)
AC_SUBST(READLINE_INCLUDE_DIR)

AC_SUBST(CFLAGS)
AC_SUBST(DL_LIBS)
AC_SUBST(LD_FLAGS)
AC_SUBST(RANLIB)
|
|
|
|
|
|
<
>
|
|
<
>
|
|
|
|
<
>
|
|
|
|
<
>
|
|
|
<
>
|
|
<
>
|





<



>
>
>



|




>

<
<







 







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







 







|
<











<


|







 







|







 







|









|







 







>







1
2
3
4
5
6

7
8
9

10
11
12
13
14

15
16
17
18
19

20
21
22
23

24
25
26

27
28
29
30
31
32
33

34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49


50
51
52
53
54
55
56
..
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
...
237
238
239
240
241
242
243
244

245
246
247
248
249
250
251
252
253
254
255

256
257
258
259
260
261
262
263
264
265
...
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
...
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
...
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
dnl -*- autoconf -*-
dnl FILE: "/home/joze/src/tclreadline/configure.in"
dnl LAST MODIFICATION: "Thu Dec 16 22:01:33 1999 (joze)"
dnl (C) 1998, 1999 by Johannes Zellner, <johannes@zellner.org>
dnl $Id$
dnl ---

dnl
dnl tclreadline -- gnu readline for tcl
dnl Copyright (C) 1999  Johannes Zellner

dnl
dnl This program is free software; you can redistribute it and/or
dnl modify it under the terms of the GNU General Public License
dnl as published by the Free Software Foundation; either version 2
dnl of the License, or (at your option) any later version.

dnl
dnl This program is distributed in the hope that it will be useful,
dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
dnl GNU General Public License for more details.

dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program; if not, write to the Free Software
dnl Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

dnl
dnl johannes@zellner.org
dnl http://www.zellner.org/tclreadline/

dnl
dnl ================================================================== */  

dnl	This file is an input file used by the GNU "autoconf" program to
dnl	generate the file "configure", which is run during Tk installation
dnl	to configure the system for the local environment.



AC_INIT(tclreadline.c)
AC_CONFIG_HEADER(config.h)
AC_PREREQ(2.13)
AC_REVISION($Revision$)
AC_CONFIG_AUX_DIR(./aux)

TCLREADLINE_MAJOR_VERSION=1
TCLREADLINE_MINOR_VERSION=0
TCLREADLINE_PATCHLEVEL=5
TCLREADLINE_VERSION=$TCLREADLINE_MAJOR_VERSION.$TCLREADLINE_MINOR_VERSION
TCLREADLINE_PATCHLEVEL_STR=${TCLREADLINE_VERSION}.${TCLREADLINE_PATCHLEVEL}
VERSION=$TCLREADLINE_VERSION

dnl AM_INIT_AUTOMAKE(tclreadline, $VERSION)



AC_CANONICAL_HOST


TCLREADLINE_LPATH=`echo $LD_LIBRARY_PATH $LD_RUN_PATH $LPATH | sed 's/:/ /g'`
TCLREADLINE_LPATH="$TCLREADLINE_LPATH /usr/local/lib /lib /usr/lib /usr/shlib"


................................................................................
    AC_MSG_ERROR(Can't find Tcl libraries.  Use --with-tcl to specify the directory containing tclConfig.sh on your system.)
else
    . $TCL_LIB_DIR/tclConfig.sh
    AC_MSG_RESULT($TCL_LIB_DIR/tclConfig.sh)
    AC_MSG_CHECKING([for your tcl version])
    AC_MSG_RESULT([$TCL_VERSION, patchlevel $TCL_PATCH_LEVEL])
fi

#--------------------------------------------------------------------
#    eventually check for tkConfig.sh
#--------------------------------------------------------------------

tk_search="no"
AC_ARG_WITH(
    tk,
    [  --with-tk=DIR           where to look for tclConfig.sh],
    tk_search=$withval,
    tk_search="yes"
)

if test "$tk_search" != "no"; then
    AC_MSG_CHECKING([which tkConfig.sh to use])
    TK_LIB_DIR=""
    for dir in $tk_search /usr/lib /usr/local/lib $exec_prefix/lib /usr/local/lib/unix /opt/tcl/lib; do
	if test -r $dir/tkConfig.sh; then
	    TK_LIB_DIR=$dir
	    break
	fi
    done

    if test -z "$TK_LIB_DIR"; then
	AC_MSG_ERROR(Can't find Tk libraries.)
    else
	. $TK_LIB_DIR/tkConfig.sh
	AC_MSG_RESULT($TK_LIB_DIR/tkConfig.sh)
	AC_MSG_CHECKING([for your tk version])
	AC_MSG_RESULT([$TK_VERSION, patchlevel $TK_PATCH_LEVEL])
    fi
    AC_SUBST(TK_LIB_SPEC)
fi

#--------------------------------------------------------------------
#   Read in configuration information generated by Tcl for shared
#   libraries, and arrange for it to be substituted into our
#   Makefile.
#--------------------------------------------------------------------

................................................................................
#--------------------------------------------------------------------
#   The statements below define a collection of symbols related to
#   building libtclreadline as a shared library instead of a static library.
#   (static is not implemented yet anyway).
#--------------------------------------------------------------------

AC_ARG_ENABLE(shared,
    [  --disable-shared        don't build libtclreadline as a shared library.],

    [ok=$enableval], [ok=yes])
if test "$ok" = "yes"; then
    if test ${TCL_SHARED_BUILD} = 0; then
        AC_MSG_ERROR(Tcl was not built with --enable-shared, so you can't use shared libraries.)
    fi
    SHLIB_CFLAGS="${SHLIB_CFLAGS}"
    eval "TCLREADLINE_LIB_FILE=libtclreadline${VERSION}${SHLIB_SUFFIX}"
    TCLREADLINE_PKG_FILE="[[file join [file dirname \$dir] ${TCLREADLINE_LIB_FILE}]]"
    MAKE_LIB="\$(SHLIB_LD) -o ${TCLREADLINE_LIB_FILE} \$(OBJS) ${SHLIB_LD_LIBS}"
    RANLIB=":"
else

    SHLIB_CFLAGS=""
    eval "TCLREADLINE_LIB_FILE=libtclreadline${VERSION}.a"
    TCLREADLINE_PKG_FILE="[[file join [file dirname \$dir] ${TCLREADLINE_LIB_FILE}]]"
    MAKE_LIB="ar cr ${TCLREADLINE_LIB_FILE} \${OBJS}"
fi

# Note:  in the following variable, it's important to use the absolute
# path name of the Tcl directory rather than "..":  this is because
# AIX remembers this path and will attempt to use it at run-time to look
# up the Tcl library.
................................................................................
  Can't find readline.h.
  Use --with-readline-includes to specify the directory
  containing readline.h on your system.])
else
    AC_MSG_RESULT($READLINE_INCLUDE_DIR/readline.h)
	base="`(basename ${READLINE_INCLUDE_DIR}) 2>/dev/null`"
	if test "x${base}" != "xreadline"; then
		AC_DEFINE_UNQUOTED(READLINE_LIBRARY, 1, [ Define if we have libreadline. ])
	fi
fi



#--------------------------------------------------------------------
#   Check for libreadline
................................................................................
# _rl_executing_macro.

AC_MSG_CHECKING([for _rl_executing_macro in -lreadline])
AC_TRY_LINK(,[
	extern char* _rl_executing_macro;
	_rl_executing_macro = (char*) 0;
],
    AC_MSG_RESULT(yes); AC_DEFINE_UNQUOTED(EXECUTING_MACRO_HACK, 1, [define, if _rl_executing_macro is resolved in libreadline]),
    AC_MSG_RESULT(no))

# check for readline's rl_cleanup_after_signal

AC_MSG_CHECKING([for rl_cleanup_after_signal() in -lreadline])
AC_TRY_LINK(,[
    extern void rl_cleanup_after_signal();
	rl_cleanup_after_signal();
],
    AC_MSG_RESULT(yes); AC_DEFINE_UNQUOTED(CLEANUP_AFER_SIGNAL, 1, [define, if rl_cleanup_after_signal is resolved in libreadline]),
    AC_MSG_RESULT(no))


AC_MSG_CHECKING([for the readline version number])
AC_TRY_RUN([
#include <stdio.h>
int main () {
................................................................................
AC_SUBST(TCLREADLINE_VERSION)
AC_SUBST(TCLREADLINE_PATCHLEVEL)
AC_SUBST(TCLREADLINE_LIBRARY)
AC_SUBST(TCLREADLINE_PATCHLEVEL_STR)


AC_SUBST(TCL_LIB_DIR)
AC_SUBST(TCL_LIB_SPEC)
AC_SUBST(TCL_INCLUDE_DIR)
AC_SUBST(READLINE_INCLUDE_DIR)

AC_SUBST(CFLAGS)
AC_SUBST(DL_LIBS)
AC_SUBST(LD_FLAGS)
AC_SUBST(RANLIB)

Modified tclreadlineInit.tcl.in from [a1f8bae947] to [a9533293b7].

1
2
3
4
5
6
7
8
9
10
..
30
31
32
33
34
35
36
37

38

39
40
41


42
43
44
45
46
47
48
49
50
#!/usr/local/bin/tclsh
# FILE: "/disk01/home/joze/src/tclreadline/tclreadlineInit.tcl.in"
# LAST MODIFICATION: "Wed Sep 15 15:23:16 1999 (joze)"
# (C) 1998, 1999 by Johannes Zellner, <johannes@zellner.org>
# $Id$
# ---
#
# tclreadline -- gnu readline for tcl
# Copyright (C) 1999  Johannes Zellner
#
................................................................................
package provide tclreadline @TCLREADLINE_VERSION@

namespace eval tclreadline:: {
	namespace export Init
}

proc ::tclreadline::Init {} {
	

	if [catch {load @TCLREADLINE_LIBRARY@/@TCLREADLINE_LIB_FILE@} msg] {

		puts stderr $msg
		exit 2
	}


}

tclreadline::Init
::tclreadline::readline customcompleter ::tclreadline::ScriptCompleter

source [file join [file dirname [info script]] tclreadlineSetup.tcl]

set auto_index(::tclreadline::ScriptCompleter) \
[list source [file join [file dirname [info script]] tclreadlineCompleter.tcl]]

|
|







 







<
>
|
>


|
>
>









1
2
3
4
5
6
7
8
9
10
..
30
31
32
33
34
35
36

37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#!/usr/local/bin/tclsh
# FILE: "/home/joze/src/tclreadline/tclreadlineInit.tcl.in"
# LAST MODIFICATION: "Thu Dec 16 21:44:31 1999 (joze)"
# (C) 1998, 1999 by Johannes Zellner, <johannes@zellner.org>
# $Id$
# ---
#
# tclreadline -- gnu readline for tcl
# Copyright (C) 1999  Johannes Zellner
#
................................................................................
package provide tclreadline @TCLREADLINE_VERSION@

namespace eval tclreadline:: {
	namespace export Init
}

proc ::tclreadline::Init {} {

    uplevel #0 {
	if ![info exists tclreadline::library] {
	    if [catch {load /usr/lib/tclreadline1.0/libtclreadline1.0.so} msg] {
		puts stderr $msg
		exit 2
	    }
	}
    }
}

tclreadline::Init
::tclreadline::readline customcompleter ::tclreadline::ScriptCompleter

source [file join [file dirname [info script]] tclreadlineSetup.tcl]

set auto_index(::tclreadline::ScriptCompleter) \
[list source [file join [file dirname [info script]] tclreadlineCompleter.tcl]]