Added support for shared libaries (if supported by Tcl itself).
[ir-tcl-moved-to-github.git] / configure.in
1 dnl IR toolkit for tcl/tk
2 dnl (c) Index Data 1996-1997
3 dnl See the file LICENSE for details.
4 dnl $Id: configure.in,v 1.21 1997-04-30 07:26:07 adam Exp $
5 AC_INIT(ir-tcl.h)
6 CC=${CC-cc}
7 dnl ------ Substitutions
8 AC_SUBST(CC)
9 AC_SUBST(TCLLIB)
10 AC_SUBST(TKLIB)
11 AC_SUBST(TCLINC)
12 AC_SUBST(TKINC)
13 AC_SUBST(YAZDIR)
14 AC_SUBST(MOSI)
15 AC_SUBST(MOSIDIR)
16 AC_SUBST(MOSILIB)
17 AC_SUBST(MOSIINC)
18 AC_SUBST(SHLIB_CFLAGS)
19 AC_SUBST(SHLIB_LD)
20 AC_SUBST(SHLIB_SUFFIX)
21 AC_SUBST(SHLIB_VERSION)
22 AC_SUBST(SHLIB_IRTCL)
23 dnl
24 dnl ------ Preliminary settings
25 AC_PROG_INSTALL
26 AC_PREFIX_PROGRAM(tclsh)
27 AC_STDC_HEADERS
28 if test "$ac_cv_header_stdc" = no; then
29         AC_MSG_WARN(Your system doesn't seem to support ANSI C)
30 fi
31 dnl
32 dnl ------ look for YAZ/XTImOSI
33 dnl
34 AC_MSG_CHECKING(for YAZ directory)
35 AC_ARG_WITH(yazdir,[  --with-yazdir           Yaz directory], [YAZDIR=$withval])
36 if test "$YAZDIR" = "yes"; then
37         YAZDIR="../yaz-1.2"
38 elif test "$YAZDIR" = ""; then
39         YAZDIR=../yaz
40         for i in ../yaz* ../yaz; do
41             if test -d $i; then
42                 YAZDIR=$i
43             fi
44         done
45 fi
46 if test ! -d $YAZDIR; then
47         AC_MSG_WARN(YAZ directory ${YAZDIR} doesn't exist)
48 else
49         AC_MSG_RESULT($YAZDIR)
50 fi
51 AC_MSG_CHECKING(for MOSI)
52 AC_ARG_WITH(mosidir, [  --with-mosidir          MOSI directory], [MOSIDIR=$withval])
53 if test "$MOSIDIR" = "yes"; then
54         MOSIDIR="../xtimosi/src"
55 elif test "$MOSIDIR" = ""; then
56         MOSIDIR="../xtimosi/src"
57 fi
58 if test -r ${YAZDIR}/lib/librfc.a; then
59         MOSI=1
60         MOSIDIR=$MOSIDIR
61         MOSILIB='$(MOSIDIR)/libmosi.a $(YAZDIR)/lib/librfc.a'
62         MOSIINC='-I$(MOSIDIR)'
63         MOSITELL=yes
64 else
65         MOSI=0
66         MOSIDIR=$MOSIDIR
67         MOSILIB='# $(MOSIDIR)/libmosi.a $(YAZDIR)/lib/librfc.a'
68         MOSIINC='# -I$(MOSIDIR)'
69         MOSITELL=no
70 fi
71 AC_MSG_RESULT($MOSITELL)
72 dnl
73 dnl ------ look for Tcl
74 dnl
75 if test "x$prefix" = xNONE; then
76         tryprefix=/usr/local
77 else
78         tryprefix=${prefix}
79 fi
80 if test -r ${tryprefix}/lib/tclConfig.sh; then
81         AC_MSG_CHECKING(for Tcl)
82         source ${tryprefix}/lib/tclConfig.sh
83         TCLLIB="${TCL_LIB_SPEC} ${TCL_LIBS}"
84         TCLINC=-I${TCL_PREFIX}/include
85         RANLIB=$TCL_RANLIB
86         SHLIB_CFLAGS=$TCL_SHLIB_CFLAGS
87         SHLIB_LD=$TCL_SHLIB_LD
88         SHLIB_SUFFIX=$TCL_SHLIB_SUFFIX
89         SHLIB_VERSION=$TCL_SHLIB_VERSION
90         SHLIB_IRTCL=irtcl${TCL_SHLIB_SUFFIX}
91         AC_MSG_RESULT($TCL_VERSION)
92 else
93         SHLIB_CFLAGS=""
94         SHLIB_LD="shared-linker"
95         SHLIB_SUFFIX=""
96         SHLIB_VERSION=""
97         SHLIB_IRTCL="irtcl-shared"
98         AC_PROG_RANLIB
99         checkBoth=0
100         AC_CHECK_FUNC(connect, tk_checkSocket=0, tk_checkSocket=1)
101         if test "$tk_checkSocket" = 1; then
102                 AC_CHECK_LIB(socket, main, LIBS="$LIBS -lsocket", checkBoth=1)
103         fi
104         if test "$checkBoth" = 1; then
105                 tk_oldLibs=$LIBS
106                 LIBS="$LIBS -lsocket -lnsl"
107                 AC_CHECK_FUNC(accept, , [LIBS=$tk_oldLibs])
108         fi
109         AC_CHECK_FUNC(gethostbyname, , AC_CHECK_LIB(nsl, main, [LIBS="$LIBS -lnsl"]))
110         AC_MSG_CHECKING(for Tcl)
111         TCL_VERSION=nope
112         for i in "" 7.4 7.5 7.6 8.0; do
113                 if test -r ${tryprefix}/lib/libtcl${i}.a; then
114                         TCL_VERSION=$i
115                 fi
116         done
117         if test "$TCL_VERSION" = nope; then
118                 AC_MSG_WARN(Didn't find Tcl)
119                 TCL_LIB_SPEC=-ltcl
120                 TCLINC=" # -I.. Tcl/Tk include path"
121         else
122                 if test "$TCL_VERSION" = ""; then
123                         AC_MSG_RESULT(7.3)
124                 else
125                         AC_MSG_RESULT($TCL_VERSION)
126                 fi
127                 TCL_LIB_SPEC=${tryprefix}/lib/libtcl${TCL_VERSION}.a
128                 TCLINC=-I${tryprefix}/include
129         fi
130         TCLLIB="${TCL_LIB_SPEC} ${LIBS} -lm"
131 fi
132 dnl 
133 dnl ------ look for Tk
134 dnl
135 if test -r ${tryprefix}/lib/tkConfig.sh; then
136         AC_MSG_CHECKING(for Tk)
137         source ${tryprefix}/lib/tkConfig.sh
138         AC_MSG_RESULT($TK_VERSION)
139         TKINC=${TK_XINCLUDES}
140         TKLIB="${TK_LIB_SPEC} ${TCL_LIB_SPEC} ${TK_LIBS}"
141 else
142         AC_MSG_CHECKING(for Tk)
143         TK_VERSION=nope
144         for i in "" 4.0 4.1 4.2 8.0; do
145                 if test -r ${tryprefix}/lib/libtk${i}.a; then
146                         TK_VERSION=$i
147                 fi
148         done
149         if test "$TK_VERSION" = nope; then
150                 AC_MSG_WARN(Didn't find Tk)
151                 TKLIB=-ltk
152         else
153                 TKLIB=${tryprefix}/lib/libtk${TK_VERSION}.a
154                 if test "$TK_VERSION" = ""; then
155                         AC_MSG_RESULT(3.x)
156                 else
157                         AC_MSG_RESULT($TK_VERSION)
158                 fi
159         fi
160         AC_PATH_X
161         not_really_there=""
162         if test "$no_x" = ""; then
163                 if test "$x_includes" = ""; then
164                         AC_TRY_CPP([#include <X11/XIntrinsic.h>], , not_really_there="yes")
165                 else
166                         if test ! -r $x_includes/X11/Intrinsic.h; then
167                                 not_really_there="yes"
168                         fi
169                 fi
170         fi
171         if test "$no_x" = "yes" -o "$not_really_there" = "yes"; then
172                 echo checking for X11 header files
173                 XINCLUDES="# no special path needed"
174                 AC_TRY_CPP([#include <X11/Intrinsic.h>], , XINCLUDES="nope")
175                 if test "$XINCLUDES" = nope; then dirs="/usr/unsupported/include /usr/local/include /usr/X386/include /usr/include/X11R4 /usr/X11R5/include /usr/include/X11R5 /usr/openwin/include /usr/X11/include /usr/sww/include"
176                         for i in $dirs ; do
177                                 if test -r $i/X11/Intrinsic.h; then
178                                         XINCLUDES=" -I$i"
179                                 fi
180                         done
181                 fi
182         else
183                 if test "$x_includes" != ""; then
184                         XINCLUDES=-I$x_includes
185                 else
186                         XINCLUDES="# no special path needed"
187                 fi
188         fi
189         if test "$XINCLUDES" = nope; then
190                 echo "Warning:  couldn't find any X11 include files."
191                 XINCLUDES="# no include files found"
192         fi
193         if test "$no_x" = yes; then
194                 XLIBSW=nope
195                 if test "$XLIBSW" = nope; then
196                         dirs="/usr/unsupported/lib /usr/local/lib /usr/X386/lib /usr/lib/X11R4 /usr/X11R5/lib /usr/lib/X11R5 /usr/openwin/lib /usr/X11/lib /usr/sww/X11/lib"
197                 for i in $dirs ; do
198                         if test -r $i/libX11.a; then
199                                 XLIBSW="-L$i -lX11"
200                         fi
201                 done
202         fi
203         else
204                 if test "$x_libraries" = ""; then
205                         XLIBSW=-lX11
206                 else
207                         XLIBSW="-L$x_libraries -lX11"
208                 fi
209         fi
210         if test "$XLIBSW" = nope ; then
211                 AC_CHECK_LIB(Xwindow, XCreateWindow, XLIBSW=-lXwindow)
212         fi
213         if test "$XLIBSW" = nope ; then
214                 echo "Warning:  couldn't find the X11 library archive.  Using -lX11."
215                 XLIBSW=-lX11
216         fi
217         TKINC=$XINCLUDES
218         TKLIB="${TKLIB} ${XLIBSW} ${TCLLIB}"
219 fi
220 AC_OUTPUT(Makefile)