1#! /bin/bash -norc
2# This file is an input file used by the GNU "autoconf" program to
3# generate the file "configure", which is run during Tk installation
4# to configure the system for the local environment.
5#
6# RCS: @(#) $Id: configure.in,v 1.49.2.24 2008/04/07 19:17:58 dgp Exp $
7
8AC_INIT(../generic/tk.h)
9AC_PREREQ(2.13)
10
11TK_VERSION=8.4
12TK_MAJOR_VERSION=8
13TK_MINOR_VERSION=4
14TK_PATCH_LEVEL=".19"
15VER=$TK_MAJOR_VERSION$TK_MINOR_VERSION
16
17#------------------------------------------------------------------------
18# Handle the --prefix=... option
19#------------------------------------------------------------------------
20
21if test "${prefix}" = "NONE"; then
22    prefix=/usr/local
23fi
24if test "${exec_prefix}" = "NONE"; then
25    exec_prefix=$prefix
26fi
27# libdir must be a fully qualified path and (not ${exec_prefix}/lib)
28eval libdir="$libdir"
29
30#------------------------------------------------------------------------
31# Standard compiler checks
32#------------------------------------------------------------------------
33
34# If the user did not set CFLAGS, set it now to keep
35# the AC_PROG_CC macro from adding "-g -O2".
36if test "${CFLAGS+set}" != "set" ; then
37    CFLAGS=""
38fi
39
40AC_PROG_CC
41
42# To properly support cross-compilation, one would
43# need to use these tool checks instead of
44# the ones below and reconfigure with
45# autoconf 2.50. You can also just set
46# the CC, AR, RANLIB, and RC environment
47# variables if you want to cross compile.
48#AC_CHECK_TOOL(AR, ar)
49#AC_CHECK_TOOL(RANLIB, ranlib)
50#AC_CHECK_TOOL(RC, windres)
51
52if test "${GCC}" = "yes" ; then
53    AC_CHECK_PROG(AR, ar, ar)
54    AC_CHECK_PROG(RANLIB, ranlib, ranlib)
55    AC_CHECK_PROG(RC, windres, windres)
56
57    if test "${AR}" = "" ; then
58	AC_MSG_ERROR([Required archive tool 'ar' not found on PATH.])
59    fi
60    if test "${RANLIB}" = "" ; then
61	AC_MSG_ERROR([Required archive index tool 'ranlib' not found on PATH.])
62    fi
63    if test "${RC}" = "" ; then
64	AC_MSG_ERROR([Required resource tool 'windres' not found on PATH.])
65    fi
66fi
67
68#--------------------------------------------------------------------
69# Checks to see if the make progeam sets the $MAKE variable.
70#--------------------------------------------------------------------
71
72AC_PROG_MAKE_SET
73
74#--------------------------------------------------------------------
75# These two macros perform additinal compiler test.
76#--------------------------------------------------------------------
77
78AC_CYGWIN
79
80#--------------------------------------------------------------------
81# Determines the correct binary file extension (.o, .obj, .exe etc.)
82#--------------------------------------------------------------------
83
84AC_OBJEXT
85AC_EXEEXT
86
87#--------------------------------------------------------------------
88# Check whether --enable-threads or --disable-threads was given.
89#--------------------------------------------------------------------
90
91SC_ENABLE_THREADS
92
93#--------------------------------------------------------------------
94# The statements below define a collection of symbols related to
95# building libtk as a shared library instead of a static library.
96#--------------------------------------------------------------------
97
98SC_ENABLE_SHARED
99
100#--------------------------------------------------------------------
101# The statements below define a collection of compile flags.  This 
102# macro depends on the value of SHARED_BUILD, and should be called
103# after SC_ENABLE_SHARED checks the configure switches.
104#--------------------------------------------------------------------
105
106SC_CONFIG_CFLAGS
107
108#--------------------------------------------------------------------
109# man2tcl needs this so that it can use errno.h
110#--------------------------------------------------------------------
111
112AC_CHECK_HEADER(errno.h, , MAN2TCLFLAGS="-DNO_ERRNO_H")
113AC_SUBST(MAN2TCLFLAGS)
114
115#--------------------------------------------------------------------
116# Set the default compiler switches based on the --enable-symbols 
117# option.  This macro depends on C flags, and should be called
118# after SC_CONFIG_CFLAGS macro is called.
119#--------------------------------------------------------------------
120
121SC_ENABLE_SYMBOLS
122
123TK_DBGX=${DBGX}
124
125#--------------------------------------------------------------------
126# Locate and source the tclConfig.sh file.
127#--------------------------------------------------------------------
128
129SC_PATH_TCLCONFIG($TK_PATCH_LEVEL)
130SC_LOAD_TCLCONFIG
131
132SC_BUILD_TCLSH
133SC_PROG_TCLSH
134
135#------------------------------------------------------------------------
136# tkConfig.sh refers to this by a different name
137#------------------------------------------------------------------------
138
139TK_SHARED_BUILD=${SHARED_BUILD}
140
141#--------------------------------------------------------------------
142# Perform final evaluations of variables with possible substitutions.
143#--------------------------------------------------------------------
144
145TK_SHARED_LIB_SUFFIX="\${NODOT_VERSION}${DLLSUFFIX}"
146TK_UNSHARED_LIB_SUFFIX="\${NODOT_VERSION}${LIBSUFFIX}"
147TK_EXPORT_FILE_SUFFIX="\${NODOT_VERSION}${LIBSUFFIX}"
148
149eval "TK_SRC_DIR=`cd $srcdir/..; pwd`"
150
151eval "TK_DLL_FILE=tk$VER${DLLSUFFIX}"
152eval "TK_LIB_FILE=${LIBPREFIX}tk$VER${LIBSUFFIX}"
153
154eval "TK_STUB_LIB_FILE=${LIBPREFIX}tkstub${VER}${LIBSUFFIX}"
155# FIXME: All of this var junk needs to be done in tcl.m4 !!!!
156# I left out the other vars that also need to get defined here.
157# we also need to double check about spaces in path names
158eval "TK_LIB_FLAG=\"-ltk${VER}${LIBFLAGSUFFIX}\""
159TK_LIB_SPEC="-L${libdir} ${TK_LIB_FLAG}"
160TK_BUILD_LIB_SPEC="-L`pwd` ${TK_LIB_FLAG}"
161
162eval "TK_STUB_LIB_FLAG=\"-ltkstub${VER}${LIBFLAGSUFFIX}\""
163TK_BUILD_STUB_LIB_SPEC="-L`pwd` ${TK_STUB_LIB_FLAG}"
164
165TK_STUB_LIB_SPEC="-L${libdir} ${TK_STUB_LIB_FLAG}"
166TK_STUB_LIB_PATH="${libdir}/${TK_STUB_LIB_FILE}"
167TK_BUILD_STUB_LIB_PATH="`pwd`/${TK_STUB_LIB_FILE}"
168
169eval "DLLSUFFIX=${DLLSUFFIX}"
170eval "LIBPREFIX=${LIBPREFIX}"
171eval "LIBSUFFIX=${LIBSUFFIX}"
172eval "EXESUFFIX=${EXESUFFIX}"
173
174CFG_TK_SHARED_LIB_SUFFIX=${TK_SHARED_LIB_SUFFIX}
175CFG_TK_UNSHARED_LIB_SUFFIX=${TK_UNSHARED_LIB_SUFFIX}
176CFG_TK_EXPORT_FILE_SUFFIX=${TK_EXPORT_FILE_SUFFIX}
177
178#--------------------------------------------------------------------
179# Adjust the defines for how the resources are built depending
180# on symbols and static vs. shared.
181#--------------------------------------------------------------------
182
183if test "$SHARED_BUILD" = 0 -o "$TCL_NEEDS_EXP_FILE" = 0; then
184    if test "${DBGX}" = "d"; then
185        RC_DEFINES="${RC_DEFINE} STATIC_BUILD ${RC_DEFINE} DEBUG"
186    else
187        RC_DEFINES="${RC_DEFINE} STATIC_BUILD"
188    fi
189    TK_RES=""
190else
191    if test "${DBGX}" = "d"; then
192        RC_DEFINES="${RC_DEFINE} DEBUG"
193    else
194        RC_DEFINES=""
195    fi
196    TK_RES='tk.$(RES)'
197fi
198
199# The wish.exe.manifest requires these
200# TK_WIN_VERSION is the 4 dotted pair Windows version format
201case "$TK_PATCH_LEVEL" in
202     a*) TK_WIN_VERSION="$TK_VERSION.0.`echo $TK_PATCH_LEVEL | tr -d a`" ;;
203     b*) TK_WIN_VERSION="$TK_VERSION.1.`echo $TK_PATCH_LEVEL | tr -d b`" ;;
204     .*) TK_WIN_VERSION="$TK_VERSION.2$TK_PATCH_LEVEL" ;;
205esac
206AC_SUBST(TK_WIN_VERSION)
207# X86|AMD64|IA64 for manifest
208AC_SUBST(MACHINE)
209
210AC_SUBST(TK_VERSION)
211AC_SUBST(TK_MAJOR_VERSION)
212AC_SUBST(TK_MINOR_VERSION)
213AC_SUBST(TK_PATCH_LEVEL)
214AC_SUBST(TK_DBGX)
215AC_SUBST(TK_LIB_FILE)
216AC_SUBST(TK_DLL_FILE)
217AC_SUBST(TK_STUB_LIB_FILE)
218AC_SUBST(TK_STUB_LIB_FLAG)
219AC_SUBST(TK_BUILD_STUB_LIB_SPEC)
220AC_SUBST(TK_SRC_DIR)
221AC_SUBST(TK_BIN_DIR)
222
223AC_SUBST(TCL_VERSION)
224AC_SUBST(TCL_MAJOR_VERSION)
225AC_SUBST(TCL_MINOR_VERSION)
226AC_SUBST(TCL_PATCH_LEVEL)
227AC_SUBST(TCL_LIB_FILE)
228AC_SUBST(TCL_DLL_FILE)
229AC_SUBST(TCL_STUB_LIB_FILE)
230AC_SUBST(TCL_STUB_LIB_FLAG)
231AC_SUBST(TCL_BUILD_STUB_LIB_SPEC)
232AC_SUBST(TCL_SRC_DIR)
233AC_SUBST(TCL_BIN_DIR)
234AC_SUBST(TCL_DBGX)
235AC_SUBST(CFG_TK_SHARED_LIB_SUFFIX)
236AC_SUBST(CFG_TK_UNSHARED_LIB_SUFFIX)
237AC_SUBST(CFG_TK_EXPORT_FILE_SUFFIX)
238AC_SUBST(TK_SHARED_BUILD)
239
240AC_SUBST(CYGPATH)
241AC_SUBST(DEPARG)
242AC_SUBST(CFLAGS_DEFAULT)
243AC_SUBST(EXTRA_CFLAGS)
244AC_SUBST(STLIB_LD)
245AC_SUBST(SHLIB_LD)
246AC_SUBST(SHLIB_LD_LIBS)
247AC_SUBST(SHLIB_CFLAGS)
248AC_SUBST(SHLIB_SUFFIX)
249AC_SUBST(CC_OBJNAME)
250AC_SUBST(CC_EXENAME)
251AC_SUBST(LDFLAGS_DEFAULT)
252AC_SUBST(LDFLAGS_DEBUG)
253AC_SUBST(LDFLAGS_OPTIMIZE)
254AC_SUBST(LDFLAGS_CONSOLE)
255AC_SUBST(LDFLAGS_WINDOW)
256AC_SUBST(AR)
257AC_SUBST(RANLIB)
258AC_SUBST(RC)
259AC_SUBST(RC_OUT)
260AC_SUBST(RC_TYPE)
261AC_SUBST(RC_INCLUDE)
262AC_SUBST(RC_DEFINE)
263AC_SUBST(RC_DEFINES)
264AC_SUBST(TK_RES)
265AC_SUBST(RES)
266AC_SUBST(LIBS)
267AC_SUBST(LIBS_GUI)
268AC_SUBST(DLLSUFFIX)
269AC_SUBST(LIBPREFIX)
270AC_SUBST(LIBSUFFIX)
271AC_SUBST(EXESUFFIX)
272AC_SUBST(LIBRARIES)
273AC_SUBST(MAKE_LIB)
274AC_SUBST(POST_MAKE_LIB)
275AC_SUBST(MAKE_DLL)
276AC_SUBST(MAKE_EXE)
277
278AC_SUBST(TK_LIB_FLAG)
279AC_SUBST(TK_LIB_SPEC)
280AC_SUBST(TK_BUILD_LIB_SPEC)
281AC_SUBST(TK_STUB_LIB_SPEC)
282AC_SUBST(TK_STUB_LIB_PATH)
283AC_SUBST(TK_BUILD_STUB_LIB_PATH)
284
285# undefined at this point for win
286AC_SUBST(TK_CC_SEARCH_FLAGS)
287AC_SUBST(TK_LD_SEARCH_FLAGS)
288
289AC_OUTPUT([Makefile tkConfig.sh wish.exe.manifest])
290