1#! /bin/bash -norc
2dnl	This file is an input file used by the GNU "autoconf" program to
3dnl	generate the file "configure", which is run during TkGate installation
4dnl	to configure the system for the local environment.
5
6AC_INIT([tkgate],[2.1],[starling13@gmail.com],[tkgate],[https://bitbucket.org/starling13/tkgate/])
7AC_CONFIG_MACRO_DIR([m4])
8AM_INIT_AUTOMAKE([-Wall -Werror foreign std-options])
9m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
10m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
11AC_PREREQ(2.69)
12AC_CONFIG_HEADER(config.h)
13AC_LANG(C)
14
15#############################################################################
16#
17# TkGate version and identifying information.
18#
19AC_DEFINE(TKGATE_VERSION, 	"2.1",					[Base TkGate version number])
20AC_SUBST(TKGATE_VERSION,	2.1)
21AC_DEFINE(TKGATE_VERSION_SUFFIX,"",					[TkGate version suffix])
22AC_DEFINE(TKGATE_FULL_VERSION,	(TKGATE_VERSION TKGATE_VERSION_SUFFIX), [Full TkGate version number])
23AC_DEFINE(TKGATE_DESCRIPTION,	"Digital Circuit Editor and Simulator",	[Tkgate short description])
24#AC_DEFINE(TKGATE_LOCALDOC,	"file:@H/doc/@L/index.html", 		[Local documentation location])
25AC_DEFINE(TKGATE_LOCALDOC,	"file:@H/doc/en/index.html", 		[Local documentation location])
26AC_DEFINE(TKGATE_COPYRIGHT, 	"Copyright (C) 1987-2015 by Jeffery P. Hansen \nCopyright (C) 2015-2018 by Andrey V. Skvortsov", [Copyright notice])
27AC_DEFINE(TKGATE_MAILCONTACT,	"starling13@gmail.com",			[Email address for support])
28AC_DEFINE(TKGATE_HOMEPAGE,	"https://bitbucket.org/starling13/tkgate",		[TkGate web page])
29
30#############################################################################
31#
32# Configuration options.
33#
34#
35# Tcl/Tk version we will try to use (from most favored to least favored)
36#
37TKGATE_TCLTK_VERSIONS="8.6"
38
39#
40# Directories to search for include files
41#
42TKGATE_INCDIRS="/usr/local/include /usr/local/include/tcl8.6"
43
44#
45# Directories to search for library files
46#
47TKGATE_LIBDIRS="/usr/local/lib"
48
49#
50# Libraries we may need if available.
51#
52TKGATE_OPTLIBNAMES="m"
53
54#############################################################################
55#
56# Default prefix directory for installation by OS
57#
58AC_PREFIX_DEFAULT(/usr/local)
59
60
61#############################################################################
62#
63# Header and libraries
64#
65TKGATE_INCLUDE_SPEC=""
66TKGATE_LIB_SPEC=""
67TKGATE_LIBS=""
68
69#############################################################################
70#
71# Supported locales
72#
73TKGATE_LOCALES="ar az bg ca cs cy da de en es fr gl hr id is it ja lt ms nl oc pl pt pt_BR ru sk sr sv tr uk"
74AC_SUBST(TKGATE_LOCALES)
75
76#############################################################################
77#
78# Top and bottom of config.h
79#
80AH_TOP([#ifndef __config_h
81#define __config_h
82#include "options.h"])
83AH_BOTTOM([
84/*
85 * Default font encode for display.
86 */
87#define TKGATE_DEFAULT_FONT_CODE      "iso8859-1"
88
89#if TKGATE_NOYYRESTART
90#define yyrestart(f) { extern FILE *yyin; yyin = f; }
91#endif
92
93#if TKGATE_SIGSET
94#define signal(a,b)	sigset(a,b)
95#endif
96
97#if !HAVE_PW_GECOS
98#define pe_gecos pw_name
99#endif
100
101#endif /* __config_h */
102])
103
104#############################################################################
105#
106# TkGate Installation Directories
107#
108currentDirectory=`pwd`
109AC_DEFINE_UNQUOTED(TKGATE_SECONDARYHOME, "$currentDirectory", [Backup location for TkGate home directory])
110
111#------------------------------------------------------------------------
112# Standard compiler checks
113#------------------------------------------------------------------------
114
115#
116# If the user did not set CFLAGS, set it now to keep
117# the AC_PROG_CC macro from adding "-g -O2".
118#
119# Set TKGATE_CFLAGS in options.h to set compiler options.
120#
121if test "${CFLAGS+set}" != "set" ; then
122    CFLAGS=`grep "^#define.*TKGATE_CFLAGS" options.h | sed 's/#define.*TKGATE_CFLAGS//'`
123fi
124
125# Checks for programs.
126AC_PROG_CC
127AC_PROG_YACC
128AC_PATH_PROG(YACC_INST, $YACC)
129if test -z "$YACC_INST"; then
130   AC_MSG_ERROR([yacc or bison not found])
131fi
132AM_PROG_LEX
133AC_PATH_PROG(LEX_INST, $LEX)
134if test -z "$LEX_INST"; then
135   AC_MSG_ERROR([lex or flex not found])
136fi
137AC_PROG_LN_S
138AC_PROG_MAKE_SET
139AC_PROG_CPP
140AC_PROG_INSTALL
141AC_PROG_LIBTOOL
142LT_INIT
143
144# Checks for compiler flags.
145TKG_CHECK_CFLAGS([-Wno-deprecated-declarations])
146
147# Checks for header files.
148AC_PATH_XTRA
149AC_FUNC_ALLOCA
150AC_HEADER_STDC
151AC_HEADER_SYS_WAIT
152AC_CHECK_HEADERS([limits.h malloc.h stdlib.h string.h sys/param.h sys/time.h unistd.h stdint.h])
153PKG_CHECK_MODULES(PANGO_XFT, pangoxft)
154TKG_CHECK_ICONV_H
155
156AC_SEARCH_LIBS([log], [m])
157
158# Checks for typedefs, structures, and compiler characteristics.
159AC_C_CONST
160AC_TYPE_SIZE_T
161AC_TYPE_INTPTR_T
162AC_HEADER_TIME
163AC_STRUCT_TM
164AC_CHECK_TYPES(unsigned long long)
165
166# Checks for library functions.
167AC_FUNC_FORK
168AC_FUNC_MALLOC
169AC_TYPE_SIGNAL
170AC_FUNC_STAT
171AC_FUNC_VPRINTF
172AC_CHECK_FUNCS([getcwd gettimeofday memmove memset putenv select strcasecmp strchr strcspn strdup strncasecmp strrchr strspn strstr strcasestr])
173AC_CHECK_LIB(m, floor)
174
175#############################################################################
176#
177# Find out about Tcl/Tk and request substitutions
178#
179TKG_FINDTCLTK
180
181#############################################################################
182#
183# Check for gecos field
184#
185TKG_CHECK_GECOS
186
187#############################################################################
188#
189# Check for signal handler function
190#
191TKG_USE_SIGSET
192
193#############################################################################
194#
195# Check for word size and Endianess
196#
197AC_C_BIGENDIAN
198TKG_WORDSIZE
199
200#############################################################################
201#
202# Merge all path information
203#
204TKG_MERGE(TKGATE_IPATH, [$TCL_IPATH $TK_IPATH $X_CFLAGS $ICONV_IPATH])
205TKG_MERGE(TKGATE_LPATH, [$TCL_LPATH $TCL_LPATH $ICONV_LPATH])
206TKG_MERGE(TKGATE_LIB, [$TCL_LIB $TK_LIB $X_PRE_LIBS -lX11 $X_EXTRA_LIBS $ICONV_LIB])
207
208#############################################################################
209#
210# TKGate variable substitutions
211#
212AC_SUBST(TKGATE_IPATH)
213AC_SUBST(TKGATE_LPATH)
214AC_SUBST(TKGATE_LIB)
215
216#############################################################################
217#
218# Header file paths we may need
219#
220AC_SUBST(COMMON_IPATH, ['-I$(top_srcdir)/src/common'])
221AC_SUBST(TOP_IPATH, ['-I$(top_srcdir)'])
222AC_SUBST(COMMON_LPATH, ['-L$(top_builddir)/src/common'])
223
224#############################################################################
225#
226# Make sure the libexec directory exists
227#
228TKG_MAKELIBEXEC
229
230#############################################################################
231#
232# Substitution variables
233#
234AC_CONFIG_FILES([Makefile
235                 src/Makefile
236                 src/common/Makefile
237                 src/tkgate/Makefile
238                 src/verga/Makefile
239                 src/gmac/Makefile
240                 src/tools/Makefile])
241
242AC_OUTPUT
243