1dnl	configure-script
2AC_INIT([DK tools],[`cat version.txt`],,[dktools],[https://sourceforge.net/p/dktools/wiki/Home/])
3AC_CONFIG_SRCDIR([version.txt])
4AC_CONFIG_AUX_DIR([config])
5dnl	Inspect tool chain
6dnl	==================
7
8dnl	Check available tools
9dnl	---------------------
10AC_CONFIG_HEADER(config.h)
11AC_PROG_CC
12AC_PROG_CPP
13AC_PROG_CXX
14AC_PROG_MKDIR_P
15AC_PROG_SED
16AC_PROG_INSTALL
17AC_PROG_LN_S
18AC_PROG_MAKE_SET
19AC_CHECK_TOOL([RANLIB],[ranlib],[:])
20AC_CHECK_TOOL([AR],[ar],[ar])
21AC_CHECK_TOOL([NM],[nm],[nm])
22AC_CHECK_TOOL([WINDRES],[windres],[:])
23AC_CHECK_TOOL([PKG_CONFIG],[pkg-config],[:])
24AC_CHECK_TOOL([RDFIND],[rdfind],[:])
25MAKE=''
26GMAKE=''
27AC_CHECK_PROG(MAKE,make,make)
28AC_CHECK_PROG(GMAKE,gmake,gmake)
29
30dnl	For unavailable tools replace tool invokation by warning
31dnl	--------------------------------------------------------
32if [[ "X$RANLIB" = "X:" ]]
33then
34  RANLIB='@echo No need to run ranlib'
35fi
36if [[ "X$RDFIND" = "X:" ]]
37then
38  RDFIND='@echo No need to run rdfind'
39else
40  RDFIND="$RDFIND -makehardlinks true -makeresultsfile false"
41fi
42
43dnl	Download programs to download original source
44dnl	---------------------------------------------
45AC_CHECK_PROG(WGET,wget,wget)
46AC_CHECK_PROG(CURL,curl,curl)
47GETSOURCE='@echo "ERROR: Neither wget nor curl available!" && false'
48if [[ "X$WGET" != "X" ]]
49then
50  GETSOURCE='wget -O dktools-$(VERSNO)'
51  GETSOURCE="$GETSOURCE"' $(SFBASE)/dktools-$(VERSNO).tar.gz/download'
52elif [[ "X$CURL" != "X" ]]
53then
54  GETSOURCE='curl -L $(SFBASE)/dktools-$(VERSNO).tar.gz'
55  GETSOURCE="$GETSOURCE "'> dktools-$(VERSNO).tar.gz'
56fi
57
58dnl	Prefer gmake over make
59dnl	-----------------------
60if [[ "X$MAKE" = "X" -a "X$GMAKE" != "X" ]]
61then
62	MAKE="$GMAKE"
63fi
64
65dnl	Check build and target system and cross-compile
66dnl	===============================================
67AC_CANONICAL_HOST
68AC_CANONICAL_BUILD
69WHICHCC=`which $CC`
70WHICHCXX=`which $CXX`
71BUILDHOST="$build"
72TARGETHOST="$host"
73BUILDCLASS='posix'
74TARGETCLASS='posix'
75CROSSBUILD='no'
76UNAME=`uname -s`
77case X$TARGETHOST in
78	Xx86_64-w64-mingw32|Xx86_64-w32-mingw32)
79		TARGETCLASS='windows'
80	;;
81esac
82case X$BUILDHOST in
83	Xx86_64-w64-mingw32|Xx86_64-w32-mingw32)
84		BUILDCLASS='windows'
85	;;
86esac
87if [[ "X$BUILDHOST" != "X$TARGETHOST" ]]
88then
89	CROSSBUILD='yes'
90fi
91TOOLCHAIN='unknown'
92case X$CC in
93	Xgcc|X*gcc)
94		TOOLCHAIN='gcc'
95	;;
96	Xclang|X*clang)
97		TOOLCHAIN='clang'
98	;;
99	Xcc)
100		if [[ "X$UNAME" = "XSunOS" ]]
101		then
102			TOOLCHAIN='workshop'
103		fi
104	;;
105	Xcl|XCL)
106		TOOLCHAIN='msvc'
107	;;
108esac
109
110dnl	Find resource compiler depending on tool chain
111dnl	----------------------------------------------
112if [[ "X$WINDRES" = "X:" -a "X$TOOLCHAIN" = "Xmsvc" ]]
113then
114  WINDRES='RC'
115elif [[ "X$WINDRES" = "X:" ]]
116then
117  WINDRES='@echo "ERROR: No windows resouce compiler available!"'
118fi
119
120dnl	Current year
121dnl	============
122THISYEAR=`date '+%Y'`
123
124dnl	Compiler flags for extra warnings
125dnl	=================================
126
127dnl	C and C++ compiler flags for gcc and clang
128dnl	------------------------------------------
129
130dnl	Extra warnings
131GCCWARNFLAGS="-Wall -Wextra"
132GCXXWARNFLAGS="-Wall -Wextra"
133
134dnl	Overlong strings
135GCCWARNFLAGS="$GCCWARNFLAGS -Woverlength-strings"
136GCXXWARNFLAGS="$GCXXWARNFLAGS -Woverlength-strings"
137
138dnl	If structures are padded there is nothing we can do
139dnl	GCCWARNFLAGS="$GCCWARNFLAGS -Wpadded"
140dnl	GCXXWARNFLAGS="$GCXXWARNFLAGS -Wpadded"
141
142dnl Redundant declarations
143GCCWARNFLAGS="$GCCWARNFLAGS -Wredundant-decls"
144GCXXWARNFLAGS="$GCXXWARNFLAGS -Wredundant-decls"
145
146dnl	Suspicious logical operators in expressions
147GCCWARNFLAGS="$GCCWARNFLAGS -Wlogical-op"
148GCXXWARNFLAGS="$GCXXWARNFLAGS -Wlogical-op"
149
150dnl	Functions returning entire structures (used by wxWidgets)
151GCCWARNFLAGS="$GCCWARNFLAGS -Waggregate-return"
152dnl	GCXXWARNFLAGS="$GCXXWARNFLAGS -Waggregate-return"
153
154dnl	Prototypes required before function use
155GCCWARNFLAGS="$GCCWARNFLAGS -Wstrict-prototypes"
156
157dnl	Old style (K+R) function definition
158GCCWARNFLAGS="$GCCWARNFLAGS -old-style-definition"
159dnl	GCXXWARNFLAGS="$GCXXWARNFLAGS -old-style-definition"
160
161dnl	Prototype missing for global function
162GCCWARNFLAGS="$GCCWARNFLAGS -Wmissing-prototypes"
163
164dnl	Global function defined without a previous prototype
165GCCWARNFLAGS="$GCCWARNFLAGS -Wmissing-declarations"
166GCXXWARNFLAGS="$GCXXWARNFLAGS -Wmissing-declarations"
167
168dnl	"extern" definition in a function
169GCCWARNFLAGS="$GCCWARNFLAGS -Wnested-externs"
170
171dnl	Unreachable code in program
172GCCWARNFLAGS="$GCCWARNFLAGS -Wunreachable-code"
173GCXXWARNFLAGS="$GCXXWARNFLAGS -Wunreachable-code"
174
175dnl	Failed to inline a function
176GCCWARNFLAGS="$GCCWARNFLAGS -Winline"
177
178dnl	Invalid PCH file found
179GCCWARNFLAGS="$GCCWARNFLAGS -Winvalid-pch"
180GCXXWARNFLAGS="$GCXXWARNFLAGS -Winvalid-pch"
181
182dnl	Variable length array
183GCCWARNFLAGS="$GCCWARNFLAGS -Wvla"
184GCXXWARNFLAGS="$GCXXWARNFLAGS -Wvla"
185
186dnl	Signed pointers
187GCCWARNFLAGS="$GCCWARNFLAGS -Wpointer-sign"
188
189dnl	Stack protector can not handle some function
190GCCWARNFLAGS="$GCCWARNFLAGS -Wstack-protector"
191GCXXWARNFLAGS="$GCXXWARNFLAGS -Wstack-protector"
192
193
194
195
196dnl	Output first summary before going into details
197dnl	==============================================
198
199dnl	Show system information
200dnl	-----------------------
201AC_MSG_NOTICE([Options:      $*])
202AC_MSG_NOTICE([CC =          $CC $WHICHCC])
203AC_MSG_NOTICE([CXX =         $CXX $WHICHCXX])
204AC_MSG_NOTICE([CPPFLAGS:     $CPPFLAGS])
205AC_MSG_NOTICE([CFLAGS:       $CFLAGS])
206AC_MSG_NOTICE([LDFLAGS:      $LDFLAGS])
207AC_MSG_NOTICE([Building on:  $BUILDHOST $BUILDCLASS])
208AC_MSG_NOTICE([Building for: $TARGETHOST $TARGETCLASS])
209AC_MSG_NOTICE([Cross build:  $CROSSBUILD])
210
211dnl	Complain when pkg-config is missing for cross builds
212dnl	----------------------------------------------------
213if [[ "X$PKG_CONFIG" = "X:" -a "X$CROSSBUILD" = "Xyes" ]]
214then
215	AC_MSG_WARN([Cross building, but no pkg-config available!])
216fi
217
218dnl	Package version information
219dnl	===========================
220VERSNO=`cat version.txt`
221SOVERS=`echo $VERSNO | sed -e 's/\.[[01-9]][[01-9]]*$//'`
222
223dnl	Compiler and linker flags defaults
224dnl	==================================
225
226dnl	C flags to compile a CLI module using char
227CFL_CLI_C8='$(CPPFLAGS) $(CFLAGS)'
228
229dnl	C flags to compile a CLI module using dkChar
230CFL_CLI_DK='$(CPPFLAGS) $(CFLAGS)'
231
232dnl	C++ flags to compile a CLI module using char
233CXXFL_CLI_C8='$(CPPFLAGS) $(CXXFLAGS)'
234
235dnl	C++ flags to compile a CLI module using dkChar
236CXXFL_CLI_DK='$(CPPFLAGS) $(CXXFLAGS)'
237
238dnl	C++ flags to compile a CLI module using wxChar
239CXXFL_CLI_WX='$(CPPFLAGS) $(CXXFLAGS)'
240
241dnl	C++ flags to compile a GUI module using wxChar
242CXXFL_GUI='$(CPPFLAGS) $(CXXFLAGS)'
243
244dnl	Linker flags to use CC to link a CLI program using char
245LDFLC_CLI_C8='$(CPPFLAGS) -L. $(LDFLAGS) $(RPATH) $(RPATHLINK)'
246
247dnl	Linker flags to use CC to link a CLI program using dkChar
248LDFLC_CLI_DK='$(CPPFLAGS) -L. $(LDFLAGS) $(RPATH) $(RPATHLINK)'
249
250dnl	Linker flags to use C++ to link a CLI program using char
251LDFLCXX_CLI_C8='$(CPPFLAGS) -L. $(LDFLAGS) $(RPATH) $(RPATHLINK)'
252
253dnl	Linker flags to use C++ to link a CLI program using dkChar
254LDFLCXX_CLI_DK='$(CPPFLAGS) -L. $(LDFLAGS) $(RPATH) $(RPATHLINK)'
255
256dnl	Linker flags to use C++ to link a CLI program using wxChar
257LDFLCXX_CLI_WX='$(CPPFLAGS) -L. $(LDFLAGS) $(RPATH) $(RPATHLINK)'
258
259dnl	Linker flags to use C++ to link a GUI program using wxChar
260LDFLCXX_GUI='$(CPPFLAGS) -L. $(LDFLAGS) $(RPATH) $(RPATHLINK)'
261
262dnl	Add RPATH to linker flags on Solaris when using workshop compiler
263RPATH=''
264RPATHLINK=''
265MKSORPATH=''
266MKSORPATHLINK=''
267MKSOCHECKSYMBOLS=''
268
269if [[ "X$LD_LIBRARY_PATH" != "X" -a "X$TOOLCHAIN" = "Xworkshop" ]]
270then
271  RPATH="-R${LD_LIBRARY_PATH}"
272fi
273
274dnl	Options
275dnl	=======
276
277dnl	Suite of programs (programs for rescue system, CLI progs, GUI progs)
278dnl	--------------------------------------------------------------------
279SUITE='auto'
280AC_ARG_WITH(suite,[AS_HELP_STRING([--with-suite],[Software suite to build (auto / gui / cli / rescue)])],[SUITE=$withval])
281if [[ "X$SUITE" != "Xgui" -a "X$SUITE" != "Xcli" -a "X$SUITE" != "Xrescue" ]]
282then
283	SUITE='auto'
284fi
285
286dnl	Directory for systemd service unit files
287dnl	----------------------------------------
288FOUND_SYSTEMD='no'
289ENA_SYSTEMD='auto'
290systemddir=''
291AC_ARG_WITH(systemd,[AS_HELP_STRING([--with-systemd=DIR],[Directory for service unit files / yes / no])],[systemddir=$withval;FOUND_SYSTEMD='yes';ENA_SYSTEMD='yes'])
292if [[ "X$systemddir" = "Xyes" ]]
293then
294	ENA_SYSTEMD='yes'
295	FOUND_SYSTEMD='yes'
296	systemddir=''
297elif [[ "X$systemddir" = "Xno" ]]
298then
299	ENA_SYSTEMD='no'
300	FOUND_SYSTEMD='no'
301	systemddir=''
302fi
303
304dnl	Compatibility for specific Windows version, Windows 7 is default
305dnl	----------------------------------------------------------------
306WIN_VER_TEXT='auto'
307WINVER=0x0601
308AC_ARG_WITH(windows,[AS_HELP_STRING([--with-windows],[Compile for Windows version (7 / XP)])],[
309WIN_VER_TEXT=$withval
310if [[ "X$TARGETCLASS" != "Xwindows" ]]
311then
312AC_MSG_WARN([Option --with-windows=... is for Windows builds only!])
313fi
314])
315case X$WIN_VER_TEXT in
316	X7)
317		WINVER=0x0601
318	;;
319	XXP)
320		WINVER=0x0501
321	;;
322	*)
323		WINVER=0x0601
324	;;
325esac
326if [[ "X$TARGETCLASS" = "Xwindows" ]]
327then
328	CPPFLAGS="$CPPFLAGS -DWINVER=$WINVER -D_WIN32_WINNT=$WINVER"
329	CFLAGS="$CFLAGS -DWINVER=$WINVER -D_WIN32_WINNT=$WINVER"
330	CFL_CLI_C8="-DWINVER=$WINVER -D_WIN32_WINNT=$WINVER $CFL_CLI_C8"
331	CFL_CLI_DK="-DWINVER=$WINVER -D_WIN32_WINNT=$WINVER $CFL_CLI_DK"
332	CXXFL_CLI_C8="-DWINVER=$WINVER -D_WIN32_WINNT=$WINVER $CXXFL_CLI_C8"
333	CXXFL_CLI_DK="-DWINVER=$WINVER -D_WIN32_WINNT=$WINVER $CXXFL_CLI_DK"
334	CXXFL_CLI_WX="-DWINVER=$WINVER -D_WIN32_WINNT=$WINVER $CXXFL_CLI_WX"
335	CXXFL_GUI="-DWINVER=$WINVER -D_WIN32_WINNT=$WINVER $CXXFL_GUI"
336	LDFLC_CLI_C8="-DWINVER=$WINVER -D_WIN32_WINNT=$WINVER $LDFLC_CLI_C8"
337	LDFLC_CLI_DK="-DWINVER=$WINVER -D_WIN32_WINNT=$WINVER $LDFLC_CLI_DK"
338	LDFLCXX_CLI_C8="-DWINVER=$WINVER -D_WIN32_WINNT=$WINVER $LDFLCXX_CLI_C8"
339	LDFLCXX_CLI_DK="-DWINVER=$WINVER -D_WIN32_WINNT=$WINVER $LDFLCXX_CLI_DK"
340	LDFLCXX_CLI_WX="-DWINVER=$WINVER -D_WIN32_WINNT=$WINVER $LDFLCXX_CLI_WX"
341	LDFLCXX_GUI="-DWINVER=$WINVER -D_WIN32_WINNT=$WINVER $LDFLCXX_GUI"
342fi
343
344dnl	Enable documentation installation
345dnl	---------------------------------
346ENA_DOCU='yes'
347AC_ARG_ENABLE(docu,[AS_HELP_STRING([--enable-docu],[Install documentation (yes / no)])],[ENA_DOCU=$enableval])
348if [[ "X$ENA_DOCU" != "Xno" ]]
349then
350	ENA_DOCU='yes'
351fi
352
353dnl	Enable developer support installation
354dnl	-------------------------------------
355ENA_DEVEL='no'
356AC_ARG_ENABLE(devel,[AS_HELP_STRING([--enable-devel],[Enable developer support (yes / no)])],[ENA_DEVEL=$enableval])
357if [[ "X$ENA_DEVEL" != "Xno" ]]
358then
359	ENA_DEVEL='yes'
360fi
361
362dnl	Enable static linking (auto, yes, no)
363dnl	-------------------------------------
364ENA_STATIC='auto'
365AC_ARG_ENABLE(static,[AS_HELP_STRING([--enable-static],[Build static libraries (yes / no)])],[ENA_STATIC=$enableval])
366
367dnl	Enable shared linking (auto, yes, no)
368dnl	-------------------------------------
369ENA_SHARED='auto'
370AC_ARG_ENABLE(shared,[AS_HELP_STRING([--enable-shared],[Build shared libraries (no / yes)])],[ENA_SHARED=$enableval])
371
372if [[ "X$ENA_STATIC" != "Xyes" -a "X$ENA_STATIC" != "Xauto" ]]
373then
374	ENA_STATIC='no'
375fi
376if [[ "X$ENA_SHARED" != "Xyes" -a "X$ENA_SHARED" != "Xauto" ]]
377then
378	ENA_SHARED='no'
379fi
380
381dnl	Enable package building
382dnl	-----------------------
383dnl	When building a package, the executables are linked against
384dnl	the shared libraries.
385ENA_PACKAGE='no'
386AC_ARG_ENABLE(packaging,[AS_HELP_STRING([--enable-packaging],[Build for package creation (no / yes)])],[ENA_PACKAGE=$enableval])
387if [[ "X$ENA_PACKAGE" != "Xyes" ]]
388then
389	ENA_PACKAGE='no'
390fi
391
392dnl	Enable linking shared libraries with other shared libraries
393dnl	-----------------------------------------------------------
394dnl	NOTE 1: This does not work properly on all platforms.
395dnl	NOTE 2: You should make sure the DK libraries are not yet
396dnl	installed when building the shared libraries.
397ENA_SOSO='no'
398AC_ARG_ENABLE(link-so-so,[AS_HELP_STRING([--enable-link-so-so],[Link so libs with so libs (no / yes)])],[ENA_SOSO=$enableval])
399if [[ "X$ENA_SOSO" != "Xyes" ]]
400then
401	ENA_SOSO='no'
402fi
403
404dnl	Create RPATH entry for libdir in executables
405dnl	--------------------------------------------
406dnl	NOTE: Normally this should not be necessary as on a reasonable
407dnl	system the libdir is in the shared libraries search path.
408ENA_RPATH='no'
409AC_ARG_ENABLE(rpath,[AS_HELP_STRING([--enable-rpath],[Use -rpath when linking executables (no / yes)])],[ENA_RPATH=$enableval])
410if [[ "X$ENA_RPATH" != "Xyes" ]]
411then
412	ENA_RPATH='no'
413fi
414
415dnl	Enable installation of man pages (yes / no)
416dnl	-------------------------------------------
417dnl	This option is for Debian package creation where man pages
418dnl	installation is handled by package build scripts.
419ENA_MAN='yes'
420AC_ARG_ENABLE(man-pages,[AS_HELP_STRING([--enable-man-pages],[Install man pages (yes / no)])],[ENA_MAN=$enableval])
421if [[ "X$ENA_MAN" != "Xno" ]]
422then
423	ENA_MAN='yes'
424fi
425
426dnl	Enable debugging
427dnl	----------------
428ENA_DEBUG='no'
429AC_ARG_ENABLE(debug,[AS_HELP_STRING([--enable-debug],[Allow debug information (no / yes)])],[ENA_DEBUG=$enableval])
430if [[ "X$ENA_DEBUG" != "Xyes" ]]
431then
432	ENA_DEBUG='no'
433fi
434
435dnl	Enable additional warnings
436dnl	--------------------------
437ENA_WARN='no'
438AC_ARG_ENABLE(warnings,[AS_HELP_STRING([--enable-warnings],[Enable additional warnings for gcc (yes / no)])],[ENA_WARN=$enableval])
439if [[ "X$ENA_WARN" != "Xno" ]]
440then
441	ENA_WARN='yes'
442fi
443
444dnl	Check whether to use extra compiler flags
445dnl	-----------------------------------------
446case X$TOOLCHAIN/X$ENA_WARN/X$ENA_DEBUG in
447	Xgcc/Xyes/*)
448		CFL_CLI_C8="$CFL_CLI_C8 $GCCWARNFLAGS"
449		CFL_CLI_DK="$CFL_CLI_DK $GCCWARNFLAGS"
450		CXXFL_CLI_C8="$CXXFL_CLI_C8 $GCXXWARNFLAGS"
451		CXXFL_CLI_DK="$CXXFL_CLI_DK $GCXXWARNFLAGS"
452		CXXFL_CLI_WX="$CXXFL_CLI_WX $GCXXWARNFLAGS"
453		CXXFL_GUI="$CXXFL_GUI $GCXXWARNFLAGS"
454	;;
455	Xgcc/*/Xyes)
456		CFL_CLI_C8="$CFL_CLI_C8 $GCCWARNFLAGS"
457		CFL_CLI_DK="$CFL_CLI_DK $GCCWARNFLAGS"
458		CXXFL_CLI_C8="$CXXFL_CLI_C8 $GCXXWARNFLAGS"
459		CXXFL_CLI_DK="$CXXFL_CLI_DK $GCXXWARNFLAGS"
460		CXXFL_CLI_WX="$CXXFL_CLI_WX $GCXXWARNFLAGS"
461		CXXFL_GUI="$CXXFL_GUI $GCXXWARNFLAGS"
462	;;
463	Xclang/Xyes/*)
464		CFL_CLI_C8="$CFL_CLI_C8 $GCCWARNFLAGS"
465		CFL_CLI_DK="$CFL_CLI_DK $GCCWARNFLAGS"
466		CXXFL_CLI_C8="$CXXFL_CLI_C8 $GCXXWARNFLAGS"
467		CXXFL_CLI_DK="$CXXFL_CLI_DK $GCXXWARNFLAGS"
468		CXXFL_CLI_WX="$CXXFL_CLI_WX $GCXXWARNFLAGS"
469		CXXFL_GUI="$CXXFL_GUI $GCXXWARNFLAGS"
470	;;
471	Xclang/*/Xyes)
472		CFL_CLI_C8="$CFL_CLI_C8 $GCCWARNFLAGS"
473		CFL_CLI_DK="$CFL_CLI_DK $GCCWARNFLAGS"
474		CXXFL_CLI_C8="$CXXFL_CLI_C8 $GCXXWARNFLAGS"
475		CXXFL_CLI_DK="$CXXFL_CLI_DK $GCXXWARNFLAGS"
476		CXXFL_CLI_WX="$CXXFL_CLI_WX $GCXXWARNFLAGS"
477		CXXFL_GUI="$CXXFL_GUI $GCXXWARNFLAGS"
478	;;
479esac
480
481
482
483
484dnl	Enable assertions
485dnl	-----------------
486dnl	Assertions should be turned on when using the clang static
487dnl	analyzer.
488ENA_ASSERT='no'
489AC_ARG_ENABLE(assert,[AS_HELP_STRING([--enable-assert],[Use assertions (no / yes)])],[ENA_ASSERT=$enableval])
490if [[ "X$ENA_ASSERT" != "Xyes" ]]
491then
492	ENA_ASSERT='no'
493fi
494
495dnl	Enable corrections on old SunOS versions
496dnl	----------------------------------------
497dnl	Normal users should not need these corrections.
498ENA_SUNOS_CORR='no'
499AC_ARG_ENABLE(corrections,[AS_HELP_STRING([--enable-corrections],[Corrections for Solaris (no / yes)])],[ENA_SUNOS_CORR=$enableval])
500if [[ "X$ENA_SUNOS_CORR" != "Xyes" ]]
501then
502	ENA_SUNOS_CORR='no'
503fi
504
505dnl	Enable use of fallback values for numeric limits if not defined
506dnl	---------------------------------------------------------------
507ENA_FALLBACK='no'
508AC_ARG_ENABLE(fallback,[AS_HELP_STRING([--enable-fallback],[Enable fallback values for num limits (no / yes)])],[ENA_FALLBACK=$enableval])
509if [[ "X$ENA_FALLBACK" != "Xno" ]]
510then
511	AC_DEFINE([USE_FALLBACK_NUMERIC_LIMITS],[1],[Allow numeric fallback limits])
512fi
513
514dnl	For some modules - but not for all - we could disable use of
515dnl	printf / scanf function families.
516dnl	Some modules would be able to compile, but not the entire
517dnl	suite of programs.
518dnl	So the choice option was removed, printf and scanf are always allowed.
519dnl	----------------------------------------------------------------------
520AC_DEFINE([USE_PRINTF_SCANF],[1],[Use of printf/scanf allowed])
521
522AC_MSG_NOTICE([DEBUG pkg=$ENA_PACKAGE static=$ENA_STATIC shared=$ENA_SHARED])
523
524dnl	Decide for static and/or shared linking
525dnl	---------------------------------------
526case X$ENA_PACKAGE/X$ENA_STATIC/X$ENA_SHARED in
527	Xno/Xno/Xno)
528		ENA_STATIC='yes'
529		ENA_SHARED='no'
530		AC_MSG_WARN([Static linking enabled])
531	;;
532	Xno/Xno/Xauto)
533		ENA_STATIC='no'
534		ENA_SHARED='yes'
535	;;
536	Xno/Xno/Xyes)
537		ENA_STATIC='no'
538		ENA_SHARED='yes'
539	;;
540	Xno/Xauto/Xno)
541		ENA_STATIC='yes'
542		ENA_SHARED='no'
543	;;
544	Xno/Xauto/Xauto)
545		ENA_STATIC='yes'
546		ENA_SHARED='no'
547	;;
548	Xno/Xauto/Xyes)
549		ENA_STATIC='no'
550		ENA_SHARED='yes'
551	;;
552	Xno/Xyes/Xno)
553		ENA_STATIC='yes'
554		ENA_SHARED='no'
555	;;
556	Xno/Xyes/Xauto)
557		ENA_STATIC='yes'
558		ENA_SHARED='no'
559	;;
560	Xno/Xyes/Xyes)
561		ENA_STATIC='yes'
562		ENA_SHARED='yes'
563	;;
564	Xyes/Xno/Xno)
565		ENA_STATIC='no'
566		ENA_SHARED='yes'
567		AC_MSG_WARN([Shared linking enabled])
568	;;
569	Xyes/Xno/Xauto)
570		ENA_STATIC='no'
571		ENA_SHARED='yes'
572	;;
573	Xyes/Xno/Xyes)
574		ENA_STATIC='no'
575		ENA_SHARED='yes'
576	;;
577	Xyes/Xauto/Xno)
578		ENA_STATIC='no'
579		ENA_SHARED='yes'
580		AC_MSG_WARN([Shared linking enabled])
581	;;
582	Xyes/Xauto/Xauto)
583		ENA_STATIC='no'
584		ENA_SHARED='yes'
585	;;
586	Xyes/Xauto/Xyes)
587		ENA_STATIC='no'
588		ENA_SHARED='yes'
589	;;
590	Xyes/Xyes/Xno)
591		ENA_STATIC='yes'
592		ENA_SHARED='yes'
593		AC_MSG_WARN([Shared linking enabled])
594	;;
595	Xyes/Xyes/Xauto)
596		ENA_STATIC='yes'
597		ENA_SHARED='yes'
598	;;
599	Xyes/Xyes/Xyes)
600		ENA_STATIC='yes'
601		ENA_SHARED='yes'
602	;;
603esac
604
605AC_MSG_NOTICE([DEBUG pkg=$ENA_PACKAGE static=$ENA_STATIC shared=$ENA_SHARED])
606
607dnl	File suffixes
608dnl	=============
609
610dnl	Executable file to produce (.exe on Windows, none on other systems)
611dnl	-------------------------------------------------------------------
612EXEEXT=''
613if [[ "X$TARGETCLASS" = "Xwindows" ]]
614then
615	EXEEXT='.exe'
616fi
617
618dnl	Object files
619dnl	------------
620OBJEXT='o'
621if [[ "X$TOOLCHAIN" = "Xmsvc" ]]
622then
623	OBJEXT='obj'
624fi
625
626dnl	Resource source files and resource files
627dnl	----------------------------------------
628RCEXT='rc'
629RESEXT='o'
630RESCRULE='echo "ERROR: No resource compiler available!"'
631RCFLAGS='-I. -D_UNICODE=1 -DUNICODE=1 -Iresources/gui-img/icons'
632
633SRCIDIRS='-I. -Isrc -Iresources -I$(srcdir) -I$(top_srcdir) -I$(includedir)'
634
635if [[ "X$TOOLCHAIN" = "Xmsvc" ]]
636then
637	RESEXT='res'
638fi
639if [[ "X$TOOLCHAIN" = "Xgcc" -o "X$TOOLCHAIN" = "Xclang" ]]
640then
641	RESCRULE='$(RC) $(RCFLAGS) $< $@'
642elif [[ "X$TOOLCHAIN" = "Xmsvc" ]]
643then
644	RESCRULE='$(RC) $(RCFLAGS) -out:$@ $<'
645fi
646
647
648
649dnl	FEATURE TESTS START
650
651dnl	Headers
652dnl	=======
653
654dnl	Standard headers mentioned in C coding standard
655dnl	-----------------------------------------------
656AC_HEADER_CHECK(complex.h, AC_DEFINE([HAVE_COMPLEX_H],[1],[complex.h header found]))
657AC_HEADER_CHECK(ctype.h, AC_DEFINE([HAVE_CTYPE_H],[1],[ctype.h header found]))
658AC_HEADER_CHECK(fenv.h, AC_DEFINE([HAVE_FENV_H],[1],[fenv.h header found]))
659AC_HEADER_CHECK(float.h, AC_DEFINE([HAVE_FLOAT_H],[1],[float.h header found]))
660AC_HEADER_CHECK(inttypes.h, AC_DEFINE([HAVE_INTTYPES_H],[1],[function found]))
661AC_HEADER_CHECK(iso646.h, AC_DEFINE([HAVE_ISO646_H],[1],[function found]))
662AC_HEADER_CHECK(limits.h, AC_DEFINE([HAVE_LIMITS_H],[1],[function found]))
663AC_HEADER_CHECK(locale.h, AC_DEFINE([HAVE_LOCALE_H],[1],[function found]))
664AC_HEADER_CHECK(math.h, AC_DEFINE([HAVE_MATH_H],[1],[function found]))
665AC_HEADER_CHECK(setjmp.h, AC_DEFINE([HAVE_SETJMP_H],[1],[function found]))
666AC_HEADER_CHECK(signal.h, AC_DEFINE([HAVE_SIGNAL_H],[1],[function found]))
667AC_HEADER_CHECK(stdalign.h, AC_DEFINE([HAVE_STDALIGN_H],[1],[function found]))
668AC_HEADER_CHECK(stdarg.h, AC_DEFINE([HAVE_STDARG_H],[1],[function found]))
669AC_HEADER_CHECK(stdatomic.h, AC_DEFINE([HAVE_STDATOMIC_H],[1],[function found]))
670AC_HEADER_CHECK(stdbool.h, AC_DEFINE([HAVE_STDBOOL_H],[1],[function found]))
671AC_HEADER_CHECK(stddef.h, AC_DEFINE([HAVE_STDDEF_H],[1],[function found]))
672AC_HEADER_CHECK(stdint.h, AC_DEFINE([HAVE_STDINT_H],[1],[function found]))
673AC_HEADER_CHECK(stdlib.h, AC_DEFINE([HAVE_STDLIB_H],[1],[function found]))
674AC_HEADER_CHECK(sysexits.h, AC_DEFINE([HAVE_SYSEXITS_H],[1],[function found]))
675AC_HEADER_CHECK(stdnoreturn.h, AC_DEFINE([HAVE_STDNORETURN_H],[1],[function found]))
676AC_HEADER_CHECK(string.h, AC_DEFINE([HAVE_STRING_H],[1],[function found]))
677AC_HEADER_CHECK(tgmath.h, AC_DEFINE([HAVE_TGMATH_H],[1],[function found]))
678AC_HEADER_CHECK(threads.h, AC_DEFINE([HAVE_THREADS_H],[1],[function found]))
679AC_HEADER_CHECK(time.h, AC_DEFINE([HAVE_TIME_H],[1],[function found]))
680AC_HEADER_CHECK(uchar.h, AC_DEFINE([HAVE_UCHAR_H],[1],[function found]))
681AC_HEADER_CHECK(wchar.h, AC_DEFINE([HAVE_WCHAR_H],[1],[function found]))
682AC_HEADER_CHECK(wctype.h, AC_DEFINE([HAVE_WCTYPE_H],[1],[function found]))
683AC_HEADER_CHECK(errno.h, AC_DEFINE([HAVE_ERRNO_H],[1],[function found]))
684FOUND_ASSERT_H='no'
685AC_HEADER_CHECK(assert.h, [FOUND_ASSERT_H='yes';AC_DEFINE([HAVE_ASSERT_H],[1],[function found])])
686if [[ "X$FOUND_ASSERT_H" = "Xno" -a "X$ENA_ASSERT" = "Xyes" ]]
687then
688	AC_MSG_WARN([Assertions enabled but assert.h not found!])
689elif [[ "X$ENA_ASSERT" = "Xyes" ]]
690then
691	CFLAGS="$CFLAGS -DDK4_USE_ASSERT=1"
692	CFL_CLI_C8="$CFL_CLI_C8 -DDK4_USE_ASSERT=1"
693	CFL_CLI_DK="$CFL_CLI_DK -DDK4_USE_ASSERT=1"
694	CXXFL_CLI_C8="$CXXFL_CLI_C8 -DDK4_USE_ASSERT=1"
695	CXXFL_CLI_DK="$CXXFL_CLI_DK -DDK4_USE_ASSERT=1"
696	CXXFL_CLI_WX="$CXXFL_CLI_WX -DDK4_USE_ASSERT=1"
697	CXXFL_GUI="$CXXFL_GUI -DDK4_USE_ASSERT=1"
698fi
699
700dnl	Further headers
701dnl	---------------
702AC_HEADER_CHECK(sys/types.h, AC_DEFINE([HAVE_SYS_TYPES_H],[1],[function found]))
703AC_HEADER_CHECK(sys/param.h, AC_DEFINE([HAVE_SYS_PARAM_H],[1],[function found]))
704AC_HEADER_CHECK(sys/stat.h, AC_DEFINE([HAVE_SYS_STAT_H],[1],[function found]))
705AC_HEADER_CHECK(sys/time.h, AC_DEFINE([HAVE_SYS_TIME_H],[1],[function found]))
706AC_HEADER_CHECK(sys/socket.h, AC_DEFINE([HAVE_SYS_SOCKET_H],[1],[function found]))
707AC_HEADER_CHECK(sys/select.h, AC_DEFINE([HAVE_SYS_SELECT_H],[1],[function found]))
708AC_HEADER_CHECK(sys/un.h, AC_DEFINE([HAVE_SYS_UN_H],[1],[function found]))
709AC_HEADER_CHECK(netinet/in.h, AC_DEFINE([HAVE_NETINET_IN_H],[1],[function found]))
710AC_HEADER_CHECK(netinet/in6.h, AC_DEFINE([HAVE_NETINET_IN6_H],[1],[function found]))
711AC_HEADER_CHECK(netdb.h, AC_DEFINE([HAVE_NETDB_H],[1],[function found]))
712AC_HEADER_CHECK(arpa/inet.h, AC_DEFINE([HAVE_ARPA_INET_H],[1],[function found]))
713AC_HEADER_CHECK(winsock2.h, AC_DEFINE([HAVE_WINSOCK2_H],[1],[function found]))
714AC_HEADER_CHECK(ws2tcpip.h, AC_DEFINE([HAVE_WS2TCPIP_H],[1],[function found]))
715AC_HEADER_CHECK(windows.h, AC_DEFINE([HAVE_WINDOWS_H],[1],[function found]))
716AC_HEADER_CHECK(unistd.h, AC_DEFINE([HAVE_UNISTD_H],[1],[function found]))
717AC_HEADER_CHECK(process.h, AC_DEFINE([HAVE_PROCESS_H],[1],[function found]))
718AC_HEADER_CHECK(fcntl.h, AC_DEFINE([HAVE_FCNTL_H],[1],[function found]))
719AC_HEADER_CHECK(share.h, AC_DEFINE([HAVE_SHARE_H],[1],[function found]))
720AC_HEADER_CHECK(pwd.h, AC_DEFINE([HAVE_PWD_H],[1],[function found]))
721AC_HEADER_CHECK(memory.h, AC_DEFINE([HAVE_MEMORY_H],[1],[function found]))
722AC_HEADER_CHECK(strings.h, AC_DEFINE([HAVE_STRINGS_H],[1],[function found]))
723AC_HEADER_CHECK(io.h, AC_DEFINE([HAVE_IO_H],[1],[function found]))
724AC_HEADER_CHECK(bios.h, AC_DEFINE([HAVE_BIOS_H],[1],[function found]))
725AC_HEADER_CHECK(search.h, AC_DEFINE([HAVE_SEARCH_H],[1],[function found]))
726AC_HEADER_CHECK(dos.h, AC_DEFINE([HAVE_DOS_H],[1],[function found]))
727AC_HEADER_CHECK(alloc.h, AC_DEFINE([HAVE_ALLOC_H],[1],[function found]))
728AC_HEADER_CHECK(malloc.h, AC_DEFINE([HAVE_MALLOC_H],[1],[function found]))
729AC_HEADER_CHECK(dirent.h, AC_DEFINE([HAVE_DIRENT_H],[1],[function found]))
730AC_HEADER_CHECK(direct.h, AC_DEFINE([HAVE_DIRECT_H],[1],[function found]))
731AC_HEADER_CHECK(stdio.h, AC_DEFINE([HAVE_STDIO_H],[1],[function found]))
732AC_HEADER_CHECK(conio.h, AC_DEFINE([HAVE_CONIO_H],[1],[function found]))
733AC_HEADER_CHECK(grp.h, AC_DEFINE([HAVE_GRP_H],[1],[function found]))
734AC_HEADER_CHECK(dir.h, AC_DEFINE([HAVE_DIR_H],[1],[function found]))
735AC_HEADER_CHECK(err.h, AC_DEFINE([HAVE_ERR_H],[1],[function found]))
736AC_HEADER_CHECK(shadow.h, AC_DEFINE([HAVE_SHADOW_H],[1],[function found]))
737AC_HEADER_CHECK(stropts.h, AC_DEFINE([HAVE_STROPTS_H],[1],[function found]))
738AC_HEADER_CHECK(syslog.h, AC_DEFINE([HAVE_SYSLOG_H],[1],[function found]))
739AC_HEADER_CHECK(sysres.h, AC_DEFINE([HAVE_SYSRES_H],[1],[function found]))
740AC_HEADER_CHECK(termios.h, AC_DEFINE([HAVE_TERMIOS_H],[1],[function found]))
741AC_HEADER_CHECK(vararg.h, AC_DEFINE([HAVE_VARARG_H],[1],[function found]))
742AC_HEADER_CHECK(varargs.h, AC_DEFINE([HAVE_VARARGS_H],[1],[function found]))
743AC_HEADER_CHECK(ntifs.h, AC_DEFINE([HAVE_NTIFS_H],[1],[function found]))
744AC_HEADER_CHECK(sys/file.h, AC_DEFINE([HAVE_SYS_FILE_H],[1],[function found]))
745AC_HEADER_CHECK(sys/resource.h, AC_DEFINE([HAVE_SYS_RESOURCE_H],[1],[function found]))
746AC_HEADER_CHECK(sys/statvfs.h, AC_DEFINE([HAVE_SYS_STATVFS_H],[1],[function found]))
747AC_HEADER_CHECK(sys/stropts.h, AC_DEFINE([HAVE_SYS_STROPTS_H],[1],[function found]))
748AC_HEADER_CHECK(sys/sunddi.h, AC_DEFINE([HAVE_SYS_SUNDDI_H],[1],[function found]))
749AC_HEADER_CHECK(sys/sysctl.h, AC_DEFINE([HAVE_SYS_SYSCTL_H],[1],[function found]))
750AC_HEADER_CHECK(sys/systeminfo.h, AC_DEFINE([HAVE_SYS_SYSTEMINFO_H],[1],[function found]))
751AC_HEADER_CHECK(sys/termios.h, AC_DEFINE([HAVE_SYS_TERMIOS_H],[1],[function found]))
752AC_HEADER_CHECK(sys/ttold.h, AC_DEFINE([HAVE_SYS_TTOLD_H],[1],[function found]))
753AC_HEADER_CHECK(sys/uio.h, AC_DEFINE([HAVE_SYS_UIO_H],[1],[function found]))
754AC_HEADER_CHECK(sys/wait.h,AC_DEFINE([HAVE_SYS_WAIT_H],[1],[function found]))
755AC_HEADER_CHECK(lprng.h, AC_DEFINE([HAVE_LPRNG_H],[1],[function found]))
756AC_HEADER_CHECK(pthread.h, [PTHREADLIB='-lpthread';AC_DEFINE([HAVE_PTHREAD_H],[1],[function found])])
757
758dnl	Time headers, use both
759dnl	----------------------
760AC_HEADER_TIME
761
762dnl	Windows headers
763dnl	---------------
764AC_HEADER_CHECK(winbase.h,[AC_DEFINE([HAVE_WINBASE_H],[1],[function found])],[],[
765#if HAVE_WINDOWS_H
766#include <windows.h>
767#endif
768])
769AC_HEADER_CHECK(winreg.h,[AC_DEFINE([HAVE_WINREG_H],[1],[function found])],[],[
770#if HAVE_WINDOWS_H
771#include <windows.h>
772#endif
773#if HAVE_WINBASE_H
774#include <winbase.h>
775#endif
776])
777AC_HEADER_CHECK(wincon.h,[AC_DEFINE([HAVE_WINCON_H],[1],[function found])],[],[
778#if HAVE_WINDOWS_H
779#include <windows.h>
780#endif
781#if HAVE_WINBASE_H
782#include <winbase.h>
783#endif
784])
785
786dnl	Compression libraries (zlib and bzip2)
787dnl	--------------------------------------
788FOUND_ZLIB='no'
789AC_HEADER_CHECK(zlib.h, [ZLIB='-lz';FOUND_ZLIB='yes';AC_DEFINE([HAVE_ZLIB_H],[1],[function found])])
790FOUND_BZLIB='no'
791AC_HEADER_CHECK(bzlib.h, [BZLIB='-lbz2';FOUND_BZLIB='yes';AC_DEFINE([HAVE_BZLIB_H],[1],[function found])])
792
793dnl	OpenSSL Random number generation and message digests.
794dnl	-----------------------------------------------------
795FOUND_OPENSSL='no'
796CRYPTO=''
797AC_HEADER_CHECK(openssl/rand.h, [
798FOUND_OPENSSL='yes'
799CRYPTO='-lcrypto'
800PRG_CLI_SSL='$(PRG_CLI_SSL)'
801MAN_CLI_SSL='$(MAN_CLI_SSL)'
802RES_CLI_SSL='$(RES_CLI_SSL)'
803PRG_GUI_SSL='$(PRG_GUI_SSL)'
804MAN_GUI_SSL='$(MAN_GUI_SSL)'
805RES_GUI_SSL='$(RES_GUI_SSL)'
806AC_DEFINE([HAVE_OPENSSL_RAND_H],[1],[function found])
807])
808AC_HEADER_CHECK(openssl/md5.h, [AC_DEFINE([HAVE_OPENSSL_MD5_H],[1],[function found])])
809AC_HEADER_CHECK(openssl/sha.h, [AC_DEFINE([HAVE_OPENSSL_SHA_H],[1],[function found])])
810AC_HEADER_CHECK(openssl/ripemd.h, [AC_DEFINE([HAVE_OPENSSL_RIPEMD_H],[1],[function found])])
811AC_CHECK_LIB(crypto, SHA224_Init,AC_DEFINE([HAVE_SHA224],[1],[function found]))
812AC_CHECK_LIB(crypto, SHA256_Init,AC_DEFINE([HAVE_SHA256],[1],[function found]))
813AC_CHECK_LIB(crypto, SHA384_Init,AC_DEFINE([HAVE_SHA384],[1],[function found]))
814AC_CHECK_LIB(crypto, SHA512_Init,AC_DEFINE([HAVE_SHA512],[1],[function found]))
815
816dnl	Data types
817dnl	==========
818
819dnl	Data type long long
820dnl	-------------------
821AC_MSG_CHECKING([long long])
822AC_TRY_COMPILE([
823#include <stdio.h>
824],[
825  long long l;
826  l = (long long)0L;
827],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_LONG_LONG],[1],[function found])],[AC_MSG_RESULT(no)])
828
829dnl	Data type long double
830dnl	---------------------
831AC_MSG_CHECKING([long double])
832AC_TRY_COMPILE([
833#include <stdio.h>
834#include <math.h>
835],[
836  long double l;
837  l = (long double)0.0;
838],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_LONG_DOUBLE],[1],[function found])],[AC_MSG_RESULT(no)])
839DOINTMAXSIZECHECK='no'
840
841dnl	Data type intmax_t
842dnl	------------------
843AC_MSG_CHECKING(intmax_t)
844AC_TRY_COMPILE([
845#include <stdio.h>
846#if HAVE_STDINT_H
847#include <stdint.h>
848#endif
849#if HAVE_INTTYPES_H
850#include <inttypes.h>
851#endif
852],[
853intmax_t im;
854],[DOINTMAXSIZECHECK='yes';AC_MSG_RESULT(yes);AC_DEFINE([HAVE_INTMAX_T],[1],[function found])],[AC_MSG_RESULT(no)])
855
856dnl	Data type sig_atomic_t
857dnl	----------------------
858AC_MSG_CHECKING(sig_atomic_t)
859AC_TRY_COMPILE([
860#include <sys/types.h>
861#include <signal.h>
862],[
863sig_atomic_t sat;
864],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_SIG_ATOMIC_T],[1],[function found])],[AC_MSG_RESULT(no)])
865
866dnl	Data type ssize_t
867dnl	-----------------
868AC_MSG_CHECKING(ssize_t)
869AC_TRY_COMPILE([
870#if HAVE_STDLIB_H
871#include <stdlib.h>
872#endif
873#if HAVE_SYS_TYPES_H
874#include <sys/types.h>
875#endif
876],[
877  ssize_t sz;
878],[
879AC_MSG_RESULT(yes)
880AC_DEFINE([HAVE_SSIZE_T],[1],[function found])
881],[AC_MSG_RESULT(no)])
882
883dnl	Data type int8_t
884dnl	----------------
885AC_MSG_CHECKING(int8_t)
886AC_TRY_COMPILE([
887#if HAVE_STDLIB_H
888#include <stdlib.h>
889#endif
890#if HAVE_SYS_TYPES_H
891#include <sys/types.h>
892#endif
893#if HAVE_STDINT_H
894#include <stdint.h>
895#endif
896],[
897int8_t i8 = 0;
898],[
899AC_MSG_RESULT(yes)
900AC_DEFINE([HAVE_INT8_T],[1],[function found])
901],[AC_MSG_RESULT(no)])
902
903dnl	Data type int16_t
904dnl	-----------------
905AC_MSG_CHECKING(int16_t)
906AC_TRY_COMPILE([
907#if HAVE_STDLIB_H
908#include <stdlib.h>
909#endif
910#if HAVE_SYS_TYPES_H
911#include <sys/types.h>
912#endif
913#if HAVE_STDINT_H
914#include <stdint.h>
915#endif
916],[
917int16_t i16 = 0;
918],[
919AC_MSG_RESULT(yes)
920AC_DEFINE([HAVE_INT16_T],[1],[function found])
921],[AC_MSG_RESULT(no)])
922
923dnl	Data type int32_t
924dnl	-----------------
925AC_MSG_CHECKING(int32_t)
926AC_TRY_COMPILE([
927#if HAVE_STDLIB_H
928#include <stdlib.h>
929#endif
930#if HAVE_SYS_TYPES_H
931#include <sys/types.h>
932#endif
933#if HAVE_STDINT_H
934#include <stdint.h>
935#endif
936],[
937int32_t i32 = 0;
938],[
939AC_MSG_RESULT(yes)
940AC_DEFINE([HAVE_INT32_T],[1],[function found])
941],[AC_MSG_RESULT(no)])
942
943dnl	Data type uint8_t
944dnl	-----------------
945AC_MSG_CHECKING(uint8_t)
946AC_TRY_COMPILE([
947#if HAVE_STDLIB_H
948#include <stdlib.h>
949#endif
950#if HAVE_SYS_TYPES_H
951#include <sys/types.h>
952#endif
953#if HAVE_STDINT_H
954#include <stdint.h>
955#endif
956],[
957  uint8_t sz;
958],[
959AC_MSG_RESULT(yes)
960AC_DEFINE([HAVE_UINT8_T],[1],[function found])
961],[AC_MSG_RESULT(no)])
962
963dnl	Data type uint16_t
964dnl	------------------
965AC_MSG_CHECKING(uint16_t)
966AC_TRY_COMPILE([
967#if HAVE_STDLIB_H
968#include <stdlib.h>
969#endif
970#if HAVE_SYS_TYPES_H
971#include <sys/types.h>
972#endif
973#if HAVE_STDINT_H
974#include <stdint.h>
975#endif
976],[
977  uint16_t sz;
978],[
979AC_MSG_RESULT(yes)
980AC_DEFINE([HAVE_UINT16_T],[1],[function found])
981],[AC_MSG_RESULT(no)])
982
983dnl	Data type uint32_t
984dnl	------------------
985AC_MSG_CHECKING(uint32_t)
986AC_TRY_COMPILE([
987#if HAVE_STDLIB_H
988#include <stdlib.h>
989#endif
990#if HAVE_SYS_TYPES_H
991#include <sys/types.h>
992#endif
993#if HAVE_STDINT_H
994#include <stdint.h>
995#endif
996],[
997  uint32_t sz;
998],[
999AC_MSG_RESULT(yes)
1000AC_DEFINE([HAVE_UINT32_T],[1],[function found])
1001],[AC_MSG_RESULT(no)])
1002
1003dnl	Data type dev_t
1004dnl	---------------
1005AC_MSG_CHECKING(dev_t)
1006AC_TRY_COMPILE([
1007#include <stdio.h>
1008#include <stdlib.h>
1009#if HAVE_SYS_TYPES_H
1010#include <sys/types.h>
1011#endif
1012#if HAVE_SYS_STAT_H
1013#include <sys/stat.h>
1014#endif
1015#if HAVE_UNISTD_H
1016#include <unistd.h>
1017#endif
1018],[
1019  dev_t	devno;
1020],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_DEV_T],[1],[function found])],[AC_MSG_RESULT(no)])
1021
1022dnl	Data type _dev_t
1023dnl	----------------
1024AC_MSG_CHECKING(_dev_t)
1025AC_TRY_COMPILE([
1026#include <stdio.h>
1027#include <stdlib.h>
1028#if HAVE_SYS_TYPES_H
1029#include <sys/types.h>
1030#endif
1031#if HAVE_SYS_STAT_H
1032#include <sys/stat.h>
1033#endif
1034#if HAVE_UNISTD_H
1035#include <unistd.h>
1036#endif
1037],[
1038  _dev_t	devno;
1039],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE__DEV_T],[1],[function found])],[AC_MSG_RESULT(no)])
1040
1041dnl	Data type ino_t
1042dnl	---------------
1043AC_MSG_CHECKING(ino_t)
1044AC_TRY_COMPILE([
1045#include <stdio.h>
1046#include <stdlib.h>
1047#if HAVE_SYS_TYPES_H
1048#include <sys/types.h>
1049#endif
1050#if HAVE_SYS_STAT_H
1051#include <sys/stat.h>
1052#endif
1053#if HAVE_UNISTD_H
1054#include <unistd.h>
1055#endif
1056],[
1057  ino_t	devno;
1058],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_INO_T],[1],[function found])],[AC_MSG_RESULT(no)])
1059
1060dnl	Data type _ino_t
1061dnl	----------------
1062AC_MSG_CHECKING(_ino_t)
1063AC_TRY_COMPILE([
1064#include <stdio.h>
1065#include <stdlib.h>
1066#if HAVE_SYS_TYPES_H
1067#include <sys/types.h>
1068#endif
1069#if HAVE_SYS_STAT_H
1070#include <sys/stat.h>
1071#endif
1072#if HAVE_UNISTD_H
1073#include <unistd.h>
1074#endif
1075],[
1076  _ino_t	devno;
1077],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE__INO_T],[1],[function found])],[AC_MSG_RESULT(no)])
1078
1079dnl	Data type ino64_t
1080dnl	-----------------
1081AC_MSG_CHECKING(ino64_t)
1082AC_TRY_COMPILE([
1083#define _LARGEFILE64_SOURCE     1
1084#include <stdio.h>
1085#include <stdlib.h>
1086#if HAVE_SYS_TYPES_H
1087#include <sys/types.h>
1088#endif
1089#if HAVE_SYS_STAT_H
1090#include <sys/stat.h>
1091#endif
1092#if HAVE_UNISTD_H
1093#include <unistd.h>
1094#endif
1095],[
1096  ino64_t	devno;
1097],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_INO64_T],[1],[function found])],[AC_MSG_RESULT(no)])
1098
1099dnl	Data type mode_t
1100dnl	----------------
1101AC_MSG_CHECKING(mode_t)
1102AC_TRY_COMPILE([
1103#include <stdio.h>
1104#include <stdlib.h>
1105#if HAVE_SYS_TYPES_H
1106#include <sys/types.h>
1107#endif
1108#if HAVE_SYS_STAT_H
1109#include <sys/stat.h>
1110#endif
1111#if HAVE_UNISTD_H
1112#include <unistd.h>
1113#endif
1114],[
1115  mode_t	devno;
1116],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_MODE_T],[1],[function found])],[AC_MSG_RESULT(no)])
1117
1118dnl	Data type nlink_t
1119dnl	-----------------
1120AC_MSG_CHECKING(nlink_t)
1121AC_TRY_COMPILE([
1122#include <stdio.h>
1123#include <stdlib.h>
1124#if HAVE_SYS_TYPES_H
1125#include <sys/types.h>
1126#endif
1127#if HAVE_SYS_STAT_H
1128#include <sys/stat.h>
1129#endif
1130#if HAVE_UNISTD_H
1131#include <unistd.h>
1132#endif
1133],[
1134  nlink_t	devno;
1135],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_NLINK_T],[1],[function found])],[AC_MSG_RESULT(no)])
1136
1137dnl	Data type off_t
1138dnl	---------------
1139AC_MSG_CHECKING(off_t)
1140AC_TRY_COMPILE([
1141#include <stdio.h>
1142#include <stdlib.h>
1143#if HAVE_SYS_TYPES_H
1144#include <sys/types.h>
1145#endif
1146#if HAVE_SYS_STAT_H
1147#include <sys/stat.h>
1148#endif
1149#if HAVE_UNISTD_H
1150#include <unistd.h>
1151#endif
1152],[
1153  off_t	devno;
1154],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_OFF_T],[1],[function found])],[AC_MSG_RESULT(no)])
1155
1156dnl	Data type off64_t
1157dnl	-----------------
1158AC_MSG_CHECKING(off64_t)
1159AC_TRY_COMPILE([
1160#define _LARGEFILE64_SOURCE     1
1161#include <stdio.h>
1162#include <stdlib.h>
1163#if HAVE_SYS_TYPES_H
1164#include <sys/types.h>
1165#endif
1166#if HAVE_SYS_STAT_H
1167#include <sys/stat.h>
1168#endif
1169#if HAVE_UNISTD_H
1170#include <unistd.h>
1171#endif
1172],[
1173  off64_t	devno;
1174],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_OFF64_T],[1],[function found])],[AC_MSG_RESULT(no)])
1175
1176dnl	Data type blksize_t
1177dnl	-------------------
1178AC_MSG_CHECKING(blksize_t)
1179AC_TRY_COMPILE([
1180#include <stdio.h>
1181#include <stdlib.h>
1182#if HAVE_SYS_TYPES_H
1183#include <sys/types.h>
1184#endif
1185#if HAVE_SYS_STAT_H
1186#include <sys/stat.h>
1187#endif
1188#if HAVE_UNISTD_H
1189#include <unistd.h>
1190#endif
1191],[
1192  blksize_t	devno;
1193],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_BLKSIZE_T],[1],[function found])],[AC_MSG_RESULT(no)])
1194
1195dnl	Data type blkcnt_t
1196dnl	------------------
1197AC_MSG_CHECKING(blkcnt_t)
1198AC_TRY_COMPILE([
1199#include <stdio.h>
1200#include <stdlib.h>
1201#if HAVE_SYS_TYPES_H
1202#include <sys/types.h>
1203#endif
1204#if HAVE_SYS_STAT_H
1205#include <sys/stat.h>
1206#endif
1207#if HAVE_UNISTD_H
1208#include <unistd.h>
1209#endif
1210],[
1211  blkcnt_t	devno;
1212],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_BLKCNT_T],[1],[function found])],[AC_MSG_RESULT(no)])
1213
1214dnl	Data type fpos_t
1215dnl	----------------
1216AC_MSG_CHECKING(fpos_t)
1217AC_TRY_COMPILE([
1218#include <stdio.h>
1219#include <stdlib.h>
1220#if HAVE_SYS_TYPES_H
1221#include <sys/types.h>
1222#endif
1223#if HAVE_SYS_STAT_H
1224#include <sys/stat.h>
1225#endif
1226#if HAVE_UNISTD_H
1227#include <unistd.h>
1228#endif
1229],[
1230  fpos_t	devno;
1231],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_FPOS_T],[1],[function found])],[AC_MSG_RESULT(no)])
1232
1233dnl	Data type _fpos_t
1234dnl	-----------------
1235AC_MSG_CHECKING(_fpos_t)
1236AC_TRY_COMPILE([
1237#include <stdio.h>
1238#include <stdlib.h>
1239#if HAVE_SYS_TYPES_H
1240#include <sys/types.h>
1241#endif
1242#if HAVE_SYS_STAT_H
1243#include <sys/stat.h>
1244#endif
1245#if HAVE_UNISTD_H
1246#include <unistd.h>
1247#endif
1248],[
1249  _fpos_t	devno;
1250],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE__FPOS_T],[1],[function found])],[AC_MSG_RESULT(no)])
1251
1252dnl	Data type uid_t
1253dnl	---------------
1254AC_MSG_CHECKING(uid_t)
1255AC_TRY_COMPILE([
1256#include <stdio.h>
1257#include <stdlib.h>
1258#if HAVE_SYS_TYPES_H
1259#include <sys/types.h>
1260#endif
1261#if HAVE_SYS_STAT_H
1262#include <sys/stat.h>
1263#endif
1264#if HAVE_UNISTD_H
1265#include <unistd.h>
1266#endif
1267],[
1268  uid_t	devno;
1269],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_UID_T],[1],[function found])],[AC_MSG_RESULT(no)])
1270
1271dnl	Data type gid_t
1272dnl	---------------
1273AC_MSG_CHECKING(gid_t)
1274AC_TRY_COMPILE([
1275#include <stdio.h>
1276#include <stdlib.h>
1277#if HAVE_SYS_TYPES_H
1278#include <sys/types.h>
1279#endif
1280#if HAVE_SYS_STAT_H
1281#include <sys/stat.h>
1282#endif
1283#if HAVE_UNISTD_H
1284#include <unistd.h>
1285#endif
1286],[
1287  gid_t	devno;
1288],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_GID_T],[1],[function found])],[AC_MSG_RESULT(no)])
1289
1290dnl	wchar_t data type
1291dnl	-----------------
1292AC_MSG_CHECKING(wchar_t)
1293AC_TRY_COMPILE([
1294#include <sys/types.h>
1295#include <wchar.h>
1296],[
1297  wchar_t chr;
1298],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_WCHAR_T],[1],[function found])],[AC_MSG_RESULT(no)])
1299
1300dnl	Data type sizes
1301dnl	---------------
1302AC_CHECK_SIZEOF(short)
1303AC_CHECK_SIZEOF(int)
1304AC_CHECK_SIZEOF(size_t)
1305AC_CHECK_SIZEOF(long)
1306AC_CHECK_SIZEOF(long long)
1307AC_CHECK_SIZEOF(int32_t)
1308AC_CHECK_SIZEOF(double)
1309AC_CHECK_SIZEOF(long double)
1310AC_CHECK_SIZEOF(wchar_t)
1311AC_CHECK_SIZEOF(off_t)
1312AC_CHECK_SIZEOF(ino_t)
1313if [[ "X$DOINTMAXSIZECHECK" = "Xyes" ]]
1314then
1315AC_CHECK_SIZEOF(intmax_t)
1316fi
1317
1318dnl	Compiler features
1319dnl	=================
1320
1321dnl	const
1322dnl	-----
1323AC_MSG_CHECKING(const)
1324AC_TRY_COMPILE([
1325#include <stdio.h>
1326static char const msg[] = { "Test" };
1327],[
1328fputs(msg, stdout);
1329],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_CONST],[1],[function found])],[AC_MSG_RESULT(no)])
1330
1331dnl	inline
1332dnl	------
1333AC_MSG_CHECKING(inline)
1334AC_TRY_COMPILE([
1335#include <stdio.h>
1336inline
1337int
1338summe(int a, int b)
1339{
1340  return (a + b);
1341}
1342],[
1343int	i = 5;
1344int	j = 6;
1345int	k;
1346k = summe(i, j);
1347],[AC_MSG_RESULT(yes);FOUNDINLINE='yes'],[AC_MSG_RESULT(no)])
1348if [[ "X$FOUNDINLINE" = "Xyes" ]]
1349then
1350  AC_DEFINE([HAVE_INLINE],[1],[function found])
1351fi
1352if [[ "X$FOUNDINLINE" = "Xyes" -a "X$USEINLINE" = "Xyes" ]]
1353then
1354  AC_DEFINE([USE_INLINE],[1],[function found])
1355fi
1356
1357dnl	Keyword volatile
1358dnl	----------------
1359AC_MSG_CHECKING(volatile)
1360AC_TRY_COMPILE([
1361volatile int i = 0;
1362],[
1363i = 1;
1364],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_VOLATILE],[1],[function found])],[AC_MSG_RESULT(no)])
1365
1366dnl	__attribute__((unused))
1367dnl	-----------------------
1368AC_MSG_CHECKING(__attribute__((unused)))
1369AC_TRY_COMPILE([
1370static
1371int
1372my_add(int a, int b, int c __attribute__((unused)) )
1373{
1374  return (a + b);
1375}
1376],[
1377  int i;
1378  i = my_add(1, 2, 3);
1379],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_ATTRIBUTE_UNUSED],[1],[function found])],[AC_MSG_RESULT(no)])
1380
1381dnl	Representation of numeric values
1382dnl	================================
1383
1384dnl	Big-endian or little-endian byte ordering
1385dnl	-----------------------------------------
1386AC_C_BIGENDIAN
1387
1388dnl	Twos complement for negative integers
1389dnl	-------------------------------------
1390AC_MSG_CHECKING(use of twos complement for negative integers)
1391AC_TRY_RUN([
1392#include <stdio.h>
1393#if HAVE_STDLIB_H
1394#include <stdlib.h>
1395#endif
1396#if HAVE_UNISTD_H
1397#include <unistd.h>
1398#endif
1399#if HAVE_PROCESS_H
1400#include <process.h>
1401#endif
1402
1403int	i1	= -1;
1404
1405#if SIZEOF_INT	> 2
1406#if SIZEOF_INT	> 4
1407#if SIZEOF_INT	> 8
1408#error	"No test available yet for integers larger than 8 bytes!"
1409#else
1410int	i2	= 0xFFFFFFFFFFFFFFFF;
1411#endif
1412#else
1413int	i2	= 0xFFFFFFFF;
1414#endif
1415#else
1416int	i2	= 0xFFFF;
1417#endif
1418
1419int main(int argc, char *argv[])
1420{
1421  int exval = 1;
1422  if (i1 == i2) exval = 0;
1423  exit(exval); return exval;
1424}
1425],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_TWOS_COMPLEMENT],[1],[function found])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_TWOS_COMPLEMENT],[1],[function found])])
1426
1427dnl	IEEE 754 double
1428dnl	---------------
1429IEEE_754_DOUBLE_WISHED='yes'
1430IEEE_754_DOUBLE_FOUND='no'
1431AC_MSG_CHECKING(IEEE 754 double)
1432AC_TRY_RUN([
1433#include <stdio.h>
1434#if HAVE_STDLIB_H
1435#include <stdlib.h>
1436#endif
1437#if HAVE_UNISTD_H
1438#include <unistd.h>
1439#endif
1440#if HAVE_STRING_H
1441#include <string.h>
1442#endif
1443#if HAVE_STRINGS_H
1444#include <strings.h>
1445#endif
1446#include <math.h>
1447
1448static double td[] = {
1449   INFINITY,
1450  1234.75,
1451     4.0,
1452     1.0,
1453     0.375,
1454     0.0,
1455    -0.625,
1456    -1.0,
1457    -8.0,
1458   -23.875,
1459  -INFINITY
1460};
1461
1462#if WORDS_BIGENDIAN
1463static unsigned char tuc[] = {
1464  /* INF      */	0x7F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1465  /* 1234.75  */	0x40, 0x93, 0x4B, 0x00, 0x00, 0x00, 0x00, 0x00,
1466  /*    4.0   */	0x40, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1467  /*    1.0   */	0x3F, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1468  /*    0.375 */	0x3F, 0xD8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1469  /*    0.0   */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1470  /*   -0.625 */	0xBF, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1471  /*   -1.0   */	0xBF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1472  /*   -8.0   */	0xC0, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1473  /*  -23.875 */	0xC0, 0x37, 0xE0, 0x00, 0x00, 0x00, 0x00, 0x00,
1474  /* -INF     */	0xFF, 0xF0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
1475};
1476#else
1477static unsigned char tuc[] = {
1478  /* INF      */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x7F,
1479  /* 1234.75  */	0x00, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x93, 0x40,
1480  /*    4.0   */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x40,
1481  /*    1.0   */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0x3F,
1482  /*    0.375 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xD8, 0x3F,
1483  /*    0.0   */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
1484  /*   -0.625 */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xE4, 0xBF,
1485  /*   -1.0   */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xBF,
1486  /*   -8.0   */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x20, 0xC0,
1487  /*  -23.875 */	0x00, 0x00, 0x00, 0x00, 0x00, 0xE0, 0x37, 0xC0,
1488  /* -INF     */	0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF0, 0xFF
1489};
1490#endif
1491
1492static
1493#ifdef __cplusplus
1494int
1495test_double(double *dp, unsigned char *up)
1496#else
1497int
1498test_double(dp, up)
1499  double *dp;
1500  unsigned char *up;
1501#endif
1502{
1503  int	back = 0;
1504#if HAVE_MEMCMP
1505  if(memcmp(dp, up, 8) == 0) {
1506    back = 1;
1507  }
1508#else
1509#if HAVE_BCMP
1510  if(bcmp(dp, up, 8) == 0) {
1511    back = 1;
1512  }
1513#else
1514  unsigned char *cp1;
1515  unsigned char *cp2;
1516  size_t i;
1517  back = 1;
1518  cp1 = (unsigned char *)dp; cp2 = up;
1519  for(i = 0; i < 8; i++) {
1520    if(*(cp1++) != *(cp2++)) {
1521      back = 0;
1522    }
1523  }
1524#endif
1525#endif
1526  if(1 != back) {
1527    printf("ERROR: %lg not conforming to IEEE 754!\n", *dp);
1528  }
1529  return back;
1530}
1531
1532#ifdef __cplusplus
1533int main(int argc, char *argv[])
1534#else
1535int main(argc, argv)
1536  int argc;
1537  char *argv[];
1538#endif
1539{
1540  unsigned char	*ucp;
1541  double	*dp;
1542  size_t	 i;
1543  int		 ev = 1;
1544
1545  if(8 == sizeof(double)) {
1546    ev = 0;
1547    ucp = tuc; dp = td;
1548    for(i = 0; i < (sizeof(td)/sizeof(double)); i++) {
1549      if(!test_double(dp, ucp)) {
1550        ev = 1;
1551      }
1552      dp++;
1553      ucp += 8;
1554    }
1555  } else {
1556    printf("ERROR: Size of double is not 1!\n");
1557  }
1558  exit(ev);
1559}
1560
1561],[AC_MSG_RESULT(yes);IEEE_754_DOUBLE_FOUND='yes'],[AC_MSG_RESULT(no);IEEE_754_DOUBLE_FOUND='no'],[AC_MSG_RESULT(yes);IEEE_754_DOUBLE_FOUND='yes'])
1562if [[ "X$IEEE_754_DOUBLE_FOUND$IEEE_754_DOUBLE_WISHED" = "Xyesyes" ]]
1563then
1564  AC_DEFINE([HAVE_IEEE_754_DOUBLE],[1],[function found])
1565else
1566  IEEE_754_DOUBLE_FOUND='no'
1567fi
1568
1569dnl	Compiler and system features
1570dnl	============================
1571
1572dnl	Feature large file functions
1573dnl	----------------------------
1574AC_MSG_CHECKING(_LARGEFILE64_SOURCE)
1575FS64=''
1576AC_TRY_COMPILE([
1577#define _LARGEFILE64_SOURCE     1
1578#include <stdio.h>
1579#if HAVE_SYS_TYPES_H
1580#include <sys/types.h>
1581#endif
1582#if HAVE_SYS_STAT_H
1583#include <sys/stat.h>
1584#endif
1585#if HAVE_UNISTD_H
1586#include <unistd.h>
1587#endif
1588],[struct stat64 st;],[FS64='-D_LARGEFILE64_SOURCE=1'
1589AC_DEFINE([HAVE_LARGEFILE64_SOURCE],[1],[function found])
1590AC_DEFINE([HAVE_TYPE_STAT64],[1],[function found])
1591AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
1592
1593dnl	Block size and block count in stat data
1594dnl	---------------------------------------
1595AC_MSG_CHECKING(blocksize and blockcount in stat output)
1596AC_TRY_COMPILE([
1597#define _LARGEFILE64_SOURCE     1
1598#include <stdio.h>
1599#include <stdlib.h>
1600#if HAVE_SYS_TYPES_H
1601#include <sys/types.h>
1602#endif
1603#if HAVE_SYS_STAT_H
1604#include <sys/stat.h>
1605#endif
1606#if HAVE_UNISTD_H
1607#include <unistd.h>
1608#endif
1609],[
1610#if HAVE_TYPE_STAT64
1611  struct stat64	stb;
1612  stb.st_blksize = 0;
1613  stb.st_blocks = 0;
1614#else
1615  struct stat stb;
1616  stb.st_blksize = 0;
1617  stb.st_blocks = 0;
1618#endif
1619],[AC_MSG_RESULT(yes)
1620AC_DEFINE([HAVE_FILE_BLKSIZECNT],[1],[function found])],[AC_MSG_RESULT(no)])
1621
1622dnl	Functions
1623dnl	=========
1624
1625dnl	General functions
1626dnl	-----------------
1627AC_HAVE_FUNCS(memset bzero memcpy bcopy memcmp bcmp)
1628AC_HAVE_FUNCS(malloc calloc free)
1629AC_HAVE_FUNCS(strcpy_s strcat_s)
1630AC_HAVE_FUNCS(strcasecmp stricmp _stricmp)
1631AC_HAVE_FUNCS(wcslen wcscpy_s wcscpy wcscat_s wcscat wcschr wcsrchr)
1632AC_HAVE_FUNCS(wcscmp _wcscmp wcscasecmp _wcscasecmp wcsicmp _wcsicmp)
1633AC_HAVE_FUNCS(getpid readlink getexecname lstat stat64 lstat64 localtime_r)
1634AC_HAVE_FUNCS(geteuid fopen64 fopen_s _wfopen _wfopen64 _wfopen_s)
1635AC_HAVE_FUNCS(fputws fputwc)
1636AC_HAVE_FUNCS(setbuffer setbuf setvbuf)
1637AC_HAVE_FUNCS(fileno _fileno setmode _setmode isatty _isatty)
1638AC_HAVE_FUNCS(strtod _strtod wcstod _wcstod)
1639AC_HAVE_FUNCS(_snprintf_s _snprintf snprintf _snwprintf_s _snwprintf snwprintf)
1640AC_HAVE_FUNCS(swprintf)
1641AC_HAVE_FUNCS(unlink _unlink wunlink _wunlink)
1642AC_HAVE_FUNCS(rmdir _rmdir wrmdir _wrmdir)
1643AC_HAVE_FUNCS(mkdir _mkdir wmkdir _wmkdir)
1644AC_HAVE_FUNCS(strerror strerror_r)
1645AC_HAVE_FUNCS(sigaction sigset signal sigprocmask sigemptyset)
1646AC_HAVE_FUNCS(setpwent getpwent endpwent)
1647AC_HAVE_FUNCS(getenv getenv_s setlocale)
1648AC_HAVE_FUNCS(getcwd _getcwd _wgetcwd)
1649AC_HAVE_FUNCS(getuid setuid setgid)
1650AC_HAVE_FUNCS(chdir chmod chown)
1651AC_HAVE_FUNCS(opendir readdir closedir)
1652AC_HAVE_FUNCS(getgrent getgrgid getgrnam endgrent setgrent)
1653AC_HAVE_FUNCS(getpwuid getpwnam)
1654AC_HAVE_FUNCS(fopen fclose feof ferror fflush fread fwrite)
1655AC_HAVE_FUNCS(_fclose _feof _ferror _fflush _fopen _fread _fwrite)
1656AC_HAVE_FUNCS(_getenv_s _wgetenv _getpid)
1657AC_HAVE_FUNCS(fetestexcept _clearfp)
1658AC_HAVE_FUNCS(fork getrlimit setpgrp setsid syslog)
1659AC_HAVE_FUNCS(gethostname)
1660AC_HAVE_FUNCS(time localtime localtime_s)
1661AC_HAVE_FUNCS(stat stat32 lstat32)
1662AC_HAVE_FUNCS(_stat _stat32 _stat64 _lstat _lstat32 _lstat64)
1663AC_HAVE_FUNCS(mpctl sysconf sysctl)
1664AC_HAVE_FUNCS(popen _popen)
1665AC_HAVE_FUNCS(read write _read _write)
1666AC_HAVE_FUNCS(seed48)
1667AC_HAVE_FUNCS(sprintf_s sscanf_s swscanf_s)
1668AC_HAVE_FUNCS(strcat strchr strcmp strcpy strdup strlen strncmp strncpy _strdup)
1669AC_HAVE_FUNCS(strncpy_s strrchr strtoimax strtol strtoll strtoul strtoull)
1670AC_HAVE_FUNCS(strtoumax)
1671AC_HAVE_FUNCS(wcsdup wcsncmp wcsncpy wcsncpy_s wcstoimax wcstol wcstoll)
1672AC_HAVE_FUNCS(wcstoul wcstoull wcstoumax)
1673AC_HAVE_FUNCS(_wcscat _wcschr _wcscpy _wcsdup _wcslen _wcsncmp _wcsncpy)
1674AC_HAVE_FUNCS(_wcsrchr)
1675AC_HAVE_FUNCS(tcflush tcgetattr)
1676AC_HAVE_FUNCS(umask)
1677AC_HAVE_FUNCS(GetFinalPathNameByHandle)
1678
1679dnl	isgreater
1680dnl	---------
1681AC_MSG_CHECKING(isgreater)
1682AC_TRY_COMPILE([
1683#include <stdio.h>
1684#if HAVE_MATH_H
1685#include <math.h>
1686#endif
1687#if HAVE_FENV_H
1688#include <fenv.h>
1689#endif
1690#if HAVE_FLOAT_H
1691#include <float.h>
1692#endif
1693],[
1694  double x;
1695  int	 a = 0;
1696  x = 5.0;
1697  if (isgreater(x, 4.0)) {
1698    a = 1;
1699  }
1700],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_ISGREATER],[1],[function found])],[AC_MSG_RESULT(no)])
1701
1702dnl	isgreaterequal
1703dnl	--------------
1704AC_MSG_CHECKING(isgreaterequal)
1705AC_TRY_COMPILE([
1706#include <stdio.h>
1707#if HAVE_MATH_H
1708#include <math.h>
1709#endif
1710#if HAVE_FENV_H
1711#include <fenv.h>
1712#endif
1713#if HAVE_FLOAT_H
1714#include <float.h>
1715#endif
1716],[
1717  double x;
1718  int	 a = 0;
1719  x = 5.0;
1720  if (isgreaterequal(x, 4.0)) {
1721    a = 1;
1722  }
1723],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_ISGREATEREQUAL],[1],[function found])],[AC_MSG_RESULT(no)])
1724
1725dnl	isless
1726dnl	------
1727AC_MSG_CHECKING(isless)
1728AC_TRY_COMPILE([
1729#include <stdio.h>
1730#if HAVE_MATH_H
1731#include <math.h>
1732#endif
1733#if HAVE_FENV_H
1734#include <fenv.h>
1735#endif
1736#if HAVE_FLOAT_H
1737#include <float.h>
1738#endif
1739],[
1740  double x;
1741  int	 a = 0;
1742  x = 5.0;
1743  if (isless(x, 6.0)) {
1744    a = 1;
1745  }
1746],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_ISLESS],[1],[function found])],[AC_MSG_RESULT(no)])
1747
1748dnl	islessequal
1749dnl	-----------
1750AC_MSG_CHECKING(islessequal)
1751AC_TRY_COMPILE([
1752#include <stdio.h>
1753#if HAVE_MATH_H
1754#include <math.h>
1755#endif
1756#if HAVE_FENV_H
1757#include <fenv.h>
1758#endif
1759#if HAVE_FLOAT_H
1760#include <float.h>
1761#endif
1762],[
1763  double x;
1764  int	 a = 0;
1765  x = 5.0;
1766  if (islessequal(x, 6.0)) {
1767    a = 1;
1768  }
1769],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_ISLESSEQUAL],[1],[function found])],[AC_MSG_RESULT(no)])
1770
1771dnl	isfinite
1772dnl	--------
1773AC_MSG_CHECKING(isfinite)
1774AC_TRY_COMPILE([
1775#include <stdio.h>
1776#if HAVE_MATH_H
1777#include <math.h>
1778#endif
1779#if HAVE_FENV_H
1780#include <fenv.h>
1781#endif
1782#if HAVE_FLOAT_H
1783#include <float.h>
1784#endif
1785],[
1786  double x;
1787  int	 a = 0;
1788  x = 5.0;
1789  if (isfinite(x)) {
1790    a = 1;
1791  }
1792],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_ISFINITE],[1],[function found])],[AC_MSG_RESULT(no)])
1793
1794dnl	isnormal
1795dnl	--------
1796AC_MSG_CHECKING(isnormal)
1797AC_TRY_COMPILE([
1798#include <stdio.h>
1799#if HAVE_MATH_H
1800#include <math.h>
1801#endif
1802#if HAVE_FENV_H
1803#include <fenv.h>
1804#endif
1805#if HAVE_FLOAT_H
1806#include <float.h>
1807#endif
1808],[
1809  double x;
1810  int	 a = 0;
1811  x = 5.0;
1812  if (isnormal(x)) {
1813    a = 1;
1814  }
1815],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_ISNORMAL],[1],[function found])],[AC_MSG_RESULT(no)])
1816
1817dnl	_finite
1818dnl	-------
1819AC_MSG_CHECKING(_finite)
1820AC_TRY_COMPILE([
1821#include <stdio.h>
1822#if HAVE_MATH_H
1823#include <math.h>
1824#endif
1825#if HAVE_FENV_H
1826#include <fenv.h>
1827#endif
1828#if HAVE_FLOAT_H
1829#include <float.h>
1830#endif
1831],[
1832  double x;
1833  int	 a = 0;
1834  x = 5.0;
1835  if (_finite(x)) {
1836    a = 1;
1837  }
1838],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE__FINITE],[1],[function found])],[AC_MSG_RESULT(no)])
1839
1840dnl	fpclassify
1841dnl	----------
1842AC_MSG_CHECKING(fpclassify)
1843AC_TRY_COMPILE([
1844#include <stdio.h>
1845#if HAVE_MATH_H
1846#include <math.h>
1847#endif
1848],[
1849int cl;
1850cl = fpclassify(-0.5);
1851],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_FPCLASSIFY],[1],[function found])],[AC_MSG_RESULT(no)])
1852
1853dnl	mkdir with 2 arguments
1854dnl	----------------------
1855AC_MSG_CHECKING([mkdir(path,mode);])
1856AC_TRY_COMPILE([
1857#if HAVE_SYS_TYPES_H
1858#include <sys/types.h>
1859#endif
1860#if HAVE_SYS_STAT_H
1861#include <sys/stat.h>
1862#endif
1863#if HAVE_FCNTL_H
1864#include <fcntl.h>
1865#endif
1866#if HAVE_UNISTD_H
1867#include <unistd.h>
1868#endif
1869],[
1870mkdir("test", 0755);
1871],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_MKDIR2],[1],[function found])],[AC_MSG_RESULT(no)])
1872
1873dnl	qsort
1874dnl	-----
1875AC_MSG_CHECKING(qsort)
1876AC_TRY_COMPILE([
1877#if	HAVE_STDLIB_H
1878#include <stdlib.h>
1879#endif
1880
1881#if	HAVE_SEARCH_H
1882#include <search.h>
1883#endif
1884
1885typedef struct { int a; int b; } test_t;
1886
1887test_t testvar[] = {
1888  { 1, 1 },
1889  { 2, 2 }
1890};
1891
1892int testcmp(const void *l, const void *r)
1893{
1894	int		 back = 0;
1895	const test_t	*pl;
1896	const test_t	*pr;
1897	pl = (const test_t *)l;
1898	pr = (const test_t *)r;
1899	if (pl->a < pr->a) {
1900		back = -1;
1901	}
1902	else {
1903		if (pl->a > pr->a) {
1904			back = 1;
1905		}
1906	}
1907}
1908],[
1909qsort(testvar, 2, sizeof(test_t), testcmp);
1910],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_QSORT],[1],[function found])],[AC_MSG_RESULT(no)])
1911
1912dnl	bsearch
1913dnl	-------
1914AC_MSG_CHECKING(bsearch)
1915AC_TRY_COMPILE([
1916#if	HAVE_STDLIB_H
1917#include <stdlib.h>
1918#endif
1919
1920#if	HAVE_SEARCH_H
1921#include <search.h>
1922#endif
1923
1924typedef struct { int a; int b; } test_t;
1925
1926test_t testvar[] = {
1927  { 1, 1 },
1928  { 2, 2 }
1929};
1930
1931int testcmp(const void *l, const void *r)
1932{
1933	int		 back = 0;
1934	const test_t	*pl;
1935	const test_t	*pr;
1936	pl = (const test_t *)l;
1937	pr = (const test_t *)r;
1938	if (pl->a < pr->a) {
1939		back = -1;
1940	}
1941	else {
1942		if (pl->a > pr->a) {
1943			back = 1;
1944		}
1945	}
1946}
1947],[
1948bsearch(&(testvar[0]), testvar, 2, sizeof(test_t), testcmp);
1949],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_BSEARCH],[1],[function found])],[AC_MSG_RESULT(no)])
1950
1951
1952dnl	setgroups
1953dnl	---------
1954AC_MSG_CHECKING(setgroups)
1955AC_TRY_COMPILE([
1956#if HAVE_SYS_TYPES_H
1957#include <sys/types.h>
1958#endif
1959#if HAVE_UNISTD_H
1960#include <unistd.h>
1961#endif
1962],[
1963  gid_t		gid = 0;
1964  if (0 != setgroups(1, &gid)) {
1965  }
1966],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_SETGROUPS],[1],[function found])],[AC_MSG_RESULT(no)])
1967
1968dnl	initgroups
1969dnl	----------
1970AC_MSG_CHECKING(initgroups)
1971AC_TRY_COMPILE([
1972#if HAVE_SYS_TYPES_H
1973#include <sys/types.h>
1974#endif
1975#if HAVE_GRP_H
1976#include <grp.h>
1977#endif
1978],[
1979  gid_t		gid = 0;
1980  if (0 != initgroups("abcdefg", gid)) {
1981  }
1982],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_INITGROUPS],[1],[function found])],[AC_MSG_RESULT(no)])
1983
1984dnl	assert
1985dnl	------
1986AC_MSG_CHECKING(assert)
1987AC_TRY_COMPILE([
1988#include <stdio.h>
1989#include <assert.h>
1990],[
1991int i = -1;
1992assert(0 < i);
1993],[ASSERT_FOUND='yes';AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
1994
1995dnl	Mathematical functions
1996dnl	----------------------
1997AC_CHECK_LIB(m,acosh,AC_DEFINE([HAVE_ACOSH],[1],[acosh function found]))
1998AC_CHECK_LIB(m,acoshl,AC_DEFINE([HAVE_ACOSHL],[1],[acoshl function found]))
1999AC_CHECK_LIB(m,acosl,AC_DEFINE([HAVE_ACOSL],[1],[acosl function found]))
2000AC_CHECK_LIB(m,asinh,AC_DEFINE([HAVE_ASINH],[1],[asinh function found]))
2001AC_CHECK_LIB(m,asinhl,AC_DEFINE([HAVE_ASINHL],[1],[asinhl function found]))
2002AC_CHECK_LIB(m,asinl,AC_DEFINE([HAVE_ASINL],[1],[asinl function found]))
2003AC_CHECK_LIB(m,atan2,AC_DEFINE([HAVE_ATAN2],[1],[atan2 function found]))
2004AC_CHECK_LIB(m,atan2l,AC_DEFINE([HAVE_ATAN2L],[1],[atan2l function found]))
2005AC_CHECK_LIB(m,atanh,AC_DEFINE([HAVE_ATANH],[1],[atanh function found]))
2006AC_CHECK_LIB(m,atanhl,AC_DEFINE([HAVE_ATANHL],[1],[atanhl function found]))
2007AC_CHECK_LIB(m,atanl,AC_DEFINE([HAVE_ATANL],[1],[atanl function found]))
2008AC_CHECK_LIB(m,ceil,AC_DEFINE([HAVE_CEIL],[1],[ceil function found]))
2009AC_CHECK_LIB(m,ceill,AC_DEFINE([HAVE_CEILL],[1],[ceill function found]))
2010AC_CHECK_LIB(m,coshl,AC_DEFINE([HAVE_COSHL],[1],[coshl function found]))
2011AC_CHECK_LIB(m,cosl,AC_DEFINE([HAVE_COSL],[1],[cosl function found]))
2012AC_CHECK_LIB(m,expl,AC_DEFINE([HAVE_EXPL],[1],[expl function found]))
2013AC_CHECK_LIB(m,fabs,AC_DEFINE([HAVE_FABS],[1],[fabs function found]))
2014AC_CHECK_LIB(m,fabsl,AC_DEFINE([HAVE_FABSL],[1],[fabsl function found]))
2015AC_CHECK_LIB(m,floor,AC_DEFINE([HAVE_FLOOR],[1],[floor function found]))
2016AC_CHECK_LIB(m,floorl,AC_DEFINE([HAVE_FLOORL],[1],[floorl function found]))
2017AC_CHECK_LIB(m,labs,AC_DEFINE([HAVE_LABS],[1],[labs function found]))
2018AC_CHECK_LIB(m,logl,AC_DEFINE([HAVE_LOGL],[1],[logl function found]))
2019AC_CHECK_LIB(m,rint,AC_DEFINE([HAVE_RINT],[1],[rint function found]))
2020AC_CHECK_LIB(m,rintl,AC_DEFINE([HAVE_RINTL],[1],[rintl function found]))
2021AC_CHECK_LIB(m,sinhl,AC_DEFINE([HAVE_SINHL],[1],[sinhl function found]))
2022AC_CHECK_LIB(m,sqrt,AC_DEFINE([HAVE_SQRT],[1],[sqrt function found]))
2023AC_CHECK_LIB(m,sqrtl,AC_DEFINE([HAVE_SQRTL],[1],[sqrtl function found]))
2024AC_CHECK_LIB(m,sinl,AC_DEFINE([HAVE_SINL],[1],[sinl function found]))
2025AC_CHECK_LIB(m,tanhl,AC_DEFINE([HAVE_TANHL],[1],[tanhl function found]))
2026AC_CHECK_LIB(m,tanl,AC_DEFINE([HAVE_TANL],[1],[tanl function found]))
2027
2028dnl	Specific features of used libraries
2029dnl	===================================
2030
2031dnl	Real time library required for MySQL on some systems
2032dnl	----------------------------------------------------
2033AC_CHECK_LIB(rt,clock_gettime,[RTLIB='-lrt'])
2034
2035dnl	Defaults differing between POSIX and Windows
2036dnl	--------------------------------------------
2037case X$TARGETCLASS in
2038  Xwindows)
2039    AC_DEFINE([HAVE_BACKSLASH_AS_SEP],[1],[Use backslash as file name separator])
2040    AC_DEFINE([HAVE_LINE_END_CR_NL],[1],[function found])
2041    AC_DEFINE([HAVE_CASE_INSENSITIVE_PATHNAMES],[1],[function found])
2042    AC_DEFINE([HAVE_CASE_INSENSITIVE_USERNAMES],[1],[function found])
2043  ;;
2044  *)
2045    AC_DEFINE([HAVE_FILE_DEVINO],[1],[function found])
2046    AC_DEFINE([HAVE_FILE_UIDGID],[1],[function found])
2047    AC_DEFINE([HAVE_FILE_ATIMECTIME],[1],[function found])
2048  ;;
2049esac
2050
2051dnl	As long as software from DK tools 3 and 4 coexist, allow
2052dnl	backward compatibility in DK tools 4.
2053dnl	--------------------------------------------------------
2054AC_DEFINE([HAVE_COMPATDKTOOLS3],[1],[function found])
2055
2056dnl	Network functions and data types
2057dnl	================================
2058
2059dnl	Data type socklen_t
2060dnl	-------------------
2061AC_MSG_CHECKING(socklen_t)
2062AC_TRY_COMPILE([
2063#if HAVE_SYS_TYPES_H
2064#include <sys/types.h>
2065#endif
2066#if HAVE_SYS_SOCKET_H
2067#include <sys/socket.h>
2068#endif
2069#if HAVE_STDLIB_H
2070#include <stdlib.h>
2071#endif
2072#if HAVE_UNISTD_H
2073#include <unistd.h>
2074#endif
2075#if HAVE_WINSOCK2_H
2076#include <winsock2.h>
2077#endif
2078#if HAVE_WS2TCPIP_H
2079#include <ws2tcpip.h>
2080#endif
2081#if HAVE_NETINET_IN_H
2082#include <netinet/in.h>
2083#endif
2084#if HAVE_NETDB_H
2085#include <netdb.h>
2086#endif
2087],[
2088socklen_t sz;
2089],[
2090AC_MSG_RESULT(yes)
2091AC_DEFINE([HAVE_SOCKLEN_T],[1],[function found])
2092],[
2093AC_MSG_RESULT(no)
2094])
2095
2096dnl	Data type struct sockaddr_in
2097dnl	----------------------------
2098AC_MSG_CHECKING(struct sockaddr_in)
2099AC_TRY_COMPILE([
2100#if HAVE_SYS_TYPES_H
2101#include <sys/types.h>
2102#endif
2103#if HAVE_SYS_SOCKET_H
2104#include <sys/socket.h>
2105#endif
2106#if HAVE_NETDB_H
2107#include <netdb.h>
2108#endif
2109#if HAVE_STDLIB_H
2110#include <stdlib.h>
2111#endif
2112#if HAVE_UNISTD_H
2113#include <unistd.h>
2114#endif
2115#if HAVE_WINSOCK2_H
2116#include <winsock2.h>
2117#endif
2118#if HAVE_WS2TCPIP_H
2119#include <ws2tcpip.h>
2120#endif
2121#if HAVE_NETINET_IN_H
2122#include <netinet/in.h>
2123#endif
2124],[
2125struct sockaddr_in sain;
2126],[
2127AC_MSG_RESULT(yes)
2128AC_DEFINE([HAVE_STRUCT_SOCKADDR_IN],[1],[function found])
2129],[
2130AC_MSG_RESULT(no)
2131])
2132
2133dnl	Data type struct sockaddr_in6
2134dnl	-----------------------------
2135AC_MSG_CHECKING(struct sockaddr_in6)
2136AC_TRY_COMPILE([
2137#if HAVE_SYS_TYPES_H
2138#include <sys/types.h>
2139#endif
2140#if HAVE_SYS_SOCKET_H
2141#include <sys/socket.h>
2142#endif
2143#if HAVE_NETDB_H
2144#include <netdb.h>
2145#endif
2146#if HAVE_STDLIB_H
2147#include <stdlib.h>
2148#endif
2149#if HAVE_UNISTD_H
2150#include <unistd.h>
2151#endif
2152#if HAVE_WINSOCK2_H
2153#include <winsock2.h>
2154#endif
2155#if HAVE_WS2TCPIP_H
2156#include <ws2tcpip.h>
2157#endif
2158#if HAVE_NETINET_IN_H
2159#include <netinet/in.h>
2160#endif
2161],[
2162struct sockaddr_in6 sain;
2163],[
2164AC_MSG_RESULT(yes)
2165AC_DEFINE([HAVE_STRUCT_SOCKADDR_IN6],[1],[function found])
2166],[
2167AC_MSG_RESULT(no)
2168])
2169
2170dnl	Data type struct sockaddr_un
2171dnl	----------------------------
2172AC_MSG_CHECKING(struct sockaddr_un)
2173AC_TRY_COMPILE([
2174#if HAVE_SYS_TYPES_H
2175#include <sys/types.h>
2176#endif
2177#if HAVE_SYS_SOCKET_H
2178#include <sys/socket.h>
2179#endif
2180#if HAVE_SYS_UN_H
2181#include <sys/un.h>
2182#endif
2183#if HAVE_NETDB_H
2184#include <netdb.h>
2185#endif
2186#if HAVE_STDLIB_H
2187#include <stdlib.h>
2188#endif
2189#if HAVE_UNISTD_H
2190#include <unistd.h>
2191#endif
2192#if HAVE_WINSOCK2_H
2193#include <winsock2.h>
2194#endif
2195#if HAVE_WS2TCPIP_H
2196#include <ws2tcpip.h>
2197#endif
2198#if HAVE_NETINET_IN_H
2199#include <netinet/in.h>
2200#endif
2201],[
2202struct sockaddr_un sain;
2203],[
2204AC_MSG_RESULT(yes)
2205AC_DEFINE([HAVE_STRUCT_SOCKADDR_UN],[1],[function found])
2206],[
2207AC_MSG_RESULT(no)
2208])
2209
2210dnl	Data type struct addrinfo
2211dnl	-------------------------
2212AC_MSG_CHECKING(struct addrinfo)
2213AC_TRY_COMPILE([
2214#if HAVE_SYS_TYPES_H
2215#include <sys/types.h>
2216#endif
2217#if HAVE_SYS_SOCKET_H
2218#include <sys/socket.h>
2219#endif
2220#if HAVE_NETDB_H
2221#include <netdb.h>
2222#endif
2223#if HAVE_STDLIB_H
2224#include <stdlib.h>
2225#endif
2226#if HAVE_UNISTD_H
2227#include <unistd.h>
2228#endif
2229#if HAVE_WINSOCK2_H
2230#include <winsock2.h>
2231#endif
2232#if HAVE_WS2TCPIP_H
2233#include <ws2tcpip.h>
2234#endif
2235#if HAVE_NETINET_IN_H
2236#include <netinet/in.h>
2237#endif
2238],[
2239struct addrinfo adi;
2240],[
2241AC_MSG_RESULT(yes)
2242AC_DEFINE([HAVE_STRUCT_ADDRINFO],[1],[function found])
2243],[
2244AC_MSG_RESULT(no)
2245])
2246
2247dnl	Data type sockaddr_storage
2248dnl	--------------------------
2249AC_MSG_CHECKING(struct sockaddr_storage)
2250AC_TRY_COMPILE([
2251#if HAVE_SYS_TYPES_H
2252#include <sys/types.h>
2253#endif
2254#if HAVE_SYS_SOCKET_H
2255#include <sys/socket.h>
2256#endif
2257#if HAVE_NETDB_H
2258#include <netdb.h>
2259#endif
2260#if HAVE_ARPA_INET_H
2261#include <arpa/inet.h>
2262#endif
2263#if HAVE_NETINET_IN_H
2264#include <netinet/in.h>
2265#endif
2266#if HAVE_STDLIB_H
2267#include <stdlib.h>
2268#endif
2269#if HAVE_UNISTD_H
2270#include <unistd.h>
2271#endif
2272#if HAVE_WINSOCK2_H
2273#include <winsock2.h>
2274#endif
2275#if HAVE_WS2TCPIP_H
2276#include <ws2tcpip.h>
2277#endif
2278#if HAVE_NETINET_IN_H
2279#include <netinet/in.h>
2280#endif
2281],[
2282struct sockaddr_storage sain;
2283],[
2284AC_MSG_RESULT(yes)
2285AC_DEFINE([HAVE_STRUCT_SOCKADDR_STORAGE],[1],[function found])
2286],[
2287AC_MSG_RESULT(no)
2288])
2289
2290dnl	Typedef IN_ADDR
2291dnl	---------------
2292AC_MSG_CHECKING(IN_ADDR)
2293AC_TRY_COMPILE([
2294#if HAVE_SYS_TYPES_H
2295#include <sys/types.h>
2296#endif
2297#if HAVE_SYS_SOCKET_H
2298#include <sys/socket.h>
2299#endif
2300#if HAVE_STDLIB_H
2301#include <stdlib.h>
2302#endif
2303#if HAVE_UNISTD_H
2304#include <unistd.h>
2305#endif
2306#if HAVE_WINSOCK2_H
2307#include <winsock2.h>
2308#endif
2309#if HAVE_WS2TCPIP_H
2310#include <ws2tcpip.h>
2311#endif
2312#if HAVE_NETINET_IN_H
2313#include <netinet/in.h>
2314#endif
2315],[
2316IN_ADDR addr;
2317],[
2318AC_MSG_RESULT(yes)
2319AC_DEFINE([HAVE_IN_ADDR],[1],[function found])
2320],[
2321AC_MSG_RESULT(no)
2322])
2323
2324dnl	Typedef IN6_ADDR
2325dnl	----------------
2326AC_MSG_CHECKING(IN6_ADDR)
2327AC_TRY_COMPILE([
2328#if HAVE_SYS_TYPES_H
2329#include <sys/types.h>
2330#endif
2331#if HAVE_SYS_SOCKET_H
2332#include <sys/socket.h>
2333#endif
2334#if HAVE_STDLIB_H
2335#include <stdlib.h>
2336#endif
2337#if HAVE_UNISTD_H
2338#include <unistd.h>
2339#endif
2340#if HAVE_WINSOCK2_H
2341#include <winsock2.h>
2342#endif
2343#if HAVE_WS2TCPIP_H
2344#include <ws2tcpip.h>
2345#endif
2346#if HAVE_NETINET_IN_H
2347#include <netinet/in.h>
2348#endif
2349],[
2350IN6_ADDR addr;
2351],[
2352AC_MSG_RESULT(yes)
2353AC_DEFINE([HAVE_IN6_ADDR],[1],[function found])
2354],[
2355AC_MSG_RESULT(no)
2356])
2357
2358dnl	Function socket in standard library, -lxnet and -lsocket
2359dnl	--------------------------------------------------------
2360SOCKLIB=''
2361NSLLIB=''
2362FOUND_SOCKET='no'
2363AC_CHECK_FUNCS(socket,[
2364LIB_SHARED_RES_NET='$(LIB_SHARED_RES_NET)'
2365PRG_RES_NET='$(PRG_RES_NET)'
2366MAN_RES_NET='$(MAN_RES_NET)'
2367RES_RES_NET='$(RES_RES_NET)'
2368PRG_CLI_NET='$(PRG_CLI_NET)'
2369MAN_CLI_NET='$(MAN_CLI_NET)'
2370RES_CLI_NET='$(RES_CLI_NET)'
2371PRG_GUI_NET='$(PRG_GUI_NET)'
2372MAN_GUI_NET='$(MAN_GUI_NET)'
2373RES_GUI_NET='$(RES_GUI_NET)'
2374FOUND_SOCKET='yes'
2375AC_DEFINE([HAVE_SOCKET],[1],[function found])
2376],[
2377AC_CHECK_LIB(xnet,socket,[
2378PRG_RES_NET='$(PRG_RES_NET)'
2379MAN_RES_NET='$(MAN_RES_NET)'
2380RES_RES_NET='$(RES_RES_NET)'
2381PRG_CLI_NET='$(PRG_CLI_NET)'
2382MAN_CLI_NET='$(MAN_CLI_NET)'
2383RES_CLI_NET='$(RES_CLI_NET)'
2384PRG_GUI_NET='$(PRG_GUI_NET)'
2385MAN_GUI_NET='$(MAN_GUI_NET)'
2386RES_GUI_NET='$(RES_GUI_NET)'
2387FOUND_SOCKET='yes'
2388AC_DEFINE([HAVE_SOCKET],[1],[function found])
2389SOCKLIB='-lxnet'
2390],[
2391AC_CHECK_LIB(socket,socket,[
2392PRG_RES_NET='$(PRG_RES_NET)'
2393MAN_RES_NET='$(MAN_RES_NET)'
2394RES_RES_NET='$(RES_RES_NET)'
2395PRG_CLI_NET='$(PRG_CLI_NET)'
2396MAN_CLI_NET='$(MAN_CLI_NET)'
2397RES_CLI_NET='$(RES_CLI_NET)'
2398PRG_GUI_NET='$(PRG_GUI_NET)'
2399MAN_GUI_NET='$(MAN_GUI_NET)'
2400RES_GUI_NET='$(RES_GUI_NET)'
2401FOUND_SOCKET='yes'
2402AC_DEFINE([HAVE_SOCKET],[1],[function found])
2403SOCKLIB='-lsocket'
2404],[
2405AC_CHECK_LIB(ws2_32,socket,[
2406PRG_RES_NET='$(PRG_RES_NET)'
2407MAN_RES_NET='$(MAN_RES_NET)'
2408RES_RES_NET='$(RES_RES_NET)'
2409PRG_CLI_NET='$(PRG_CLI_NET)'
2410MAN_CLI_NET='$(MAN_CLI_NET)'
2411RES_CLI_NET='$(RES_CLI_NET)'
2412PRG_GUI_NET='$(PRG_GUI_NET)'
2413MAN_GUI_NET='$(MAN_GUI_NET)'
2414RES_GUI_NET='$(RES_GUI_NET)'
2415FOUND_SOCKET='yes'
2416AC_DEFINE([HAVE_SOCKET],[1],[function found])
2417SOCKLIB='-lws2_32'
2418])
2419])
2420])
2421])
2422
2423dnl	Function setsockopt
2424dnl	-------------------
2425AC_CHECK_FUNCS(setsockopt,[
2426AC_DEFINE([HAVE_SETSOCKOPT],[1],[function found])
2427],[
2428AC_CHECK_LIB(xnet,setsockopt,[
2429AC_DEFINE([HAVE_SETSOCKOPT],[1],[function found])
2430],[
2431AC_CHECK_LIB(socket,setsockopt,[
2432AC_DEFINE([HAVE_SETSOCKOPT],[1],[function found])
2433],[
2434AC_CHECK_LIB(ws2_32,setsockopt,[
2435AC_DEFINE([HAVE_SETSOCKOPT],[1],[function found])
2436])
2437])
2438])
2439])
2440
2441dnl	Function getaddrinfo
2442dnl	--------------------
2443AC_CHECK_FUNCS(getaddrinfo,[
2444AC_DEFINE([HAVE_GETADDRINFO],[1],[function found])
2445],[
2446AC_CHECK_LIB(xnet,getaddrinfo,[
2447NSLLIB='-lxnet'
2448AC_DEFINE([HAVE_GETADDRINFO],[1],[function found])
2449],[
2450AC_CHECK_LIB(nsl,getaddrinfo,[
2451NSLLIB='-lnsl'
2452AC_DEFINE([HAVE_GETADDRINFO],[1],[function found])
2453],[
2454AC_CHECK_LIB(socket,getaddrinfo,[
2455NSLLIB='-lsocket'
2456AC_DEFINE([HAVE_GETADDRINFO],[1],[function found])
2457],[
2458AC_CHECK_LIB(ws2_32,getaddrinfo,[
2459AC_DEFINE([HAVE_GETADDRINFO],[1],[function found])
2460])
2461])
2462])
2463])
2464])
2465
2466dnl	Function getnameinfo (reverse getaddrinfo)
2467dnl	------------------------------------------
2468AC_CHECK_FUNCS(getnameinfo,[
2469AC_DEFINE([HAVE_GETNAMEINFO],[1],[function found])
2470],[
2471AC_CHECK_LIB(xnet,getnameinfo,[
2472AC_DEFINE([HAVE_GETNAMEINFO],[1],[function found])
2473],[
2474AC_CHECK_LIB(nsl,getnameinfo,[
2475AC_DEFINE([HAVE_GETNAMEINFO],[1],[function found])
2476],[
2477AC_CHECK_LIB(socket,getnameinfo,[
2478AC_DEFINE([HAVE_GETNAMEINFO],[1],[function found])
2479],[
2480AC_CHECK_LIB(ws2_32,getnameinfo,[
2481AC_DEFINE([HAVE_GETNAMEINFO],[1],[function found])
2482])
2483])
2484])
2485])
2486])
2487
2488dnl	Function gethostbyname
2489dnl	----------------------
2490AC_CHECK_FUNCS(gethostbyname,[
2491AC_DEFINE([HAVE_GETHOSTBYNAME],[1],[function found])
2492],[
2493AC_CHECK_LIB(xnet,gethostbyname,[
2494AC_DEFINE([HAVE_GETHOSTBYNAME],[1],[function found])
2495],[
2496AC_CHECK_LIB(nsl,gethostbyname,[
2497AC_DEFINE([HAVE_GETHOSTBYNAME],[1],[function found])
2498],[
2499AC_CHECK_LIB(socket,gethostbyname,[
2500AC_DEFINE([HAVE_GETHOSTBYNAME],[1],[function found])
2501],[
2502AC_CHECK_LIB(ws3_32,gethostbyname,[
2503AC_DEFINE([HAVE_GETHOSTBYNAME],[1],[function found])
2504])
2505])
2506])
2507])
2508])
2509
2510dnl	Function or macro htons
2511dnl	-----------------------
2512AC_MSG_CHECKING(htons)
2513AC_TRY_COMPILE([
2514#if HAVE_STDINT_H
2515#include <stdint.h>
2516#endif
2517#if HAVE_SYS_TYPES_H
2518#include <sys/types.h>
2519#endif
2520#if HAVE_SYS_SOCKET_H
2521#include <sys/socket.h>
2522#endif
2523#if HAVE_ARPA_INET_H
2524#include <arpa/inet.h>
2525#endif
2526#if HAVE_NETINET_IN_H
2527#include <netinet/in.h>
2528#endif
2529],[
2530  unsigned short s;
2531  s = htons(5);
2532],[
2533AC_DEFINE([HAVE_HTONS],[1],[function found])
2534AC_MSG_RESULT(yes)
2535],[
2536AC_MSG_RESULT(no)
2537])
2538
2539dnl	Function or macro ntohs
2540dnl	-----------------------
2541AC_MSG_CHECKING(ntohs)
2542AC_TRY_COMPILE([
2543#if HAVE_STDINT_H
2544#include <stdint.h>
2545#endif
2546#if HAVE_SYS_TYPES_H
2547#include <sys/types.h>
2548#endif
2549#if HAVE_SYS_SOCKET_H
2550#include <sys/socket.h>
2551#endif
2552#if HAVE_ARPA_INET_H
2553#include <arpa/inet.h>
2554#endif
2555#if HAVE_NETINET_IN_H
2556#include <netinet/in.h>
2557#endif
2558],[
2559  unsigned short s;
2560  s = ntohs(5);
2561],[
2562AC_DEFINE([HAVE_NTOHS],[1],[function found])
2563AC_MSG_RESULT(yes)
2564],[
2565AC_MSG_RESULT(no)
2566])
2567
2568dnl	Function or macro htonl
2569dnl	-----------------------
2570AC_MSG_CHECKING(htonl)
2571AC_TRY_COMPILE([
2572#if HAVE_STDINT_H
2573#include <stdint.h>
2574#endif
2575#if HAVE_SYS_TYPES_H
2576#include <sys/types.h>
2577#endif
2578#if HAVE_SYS_SOCKET_H
2579#include <sys/socket.h>
2580#endif
2581#if HAVE_ARPA_INET_H
2582#include <arpa/inet.h>
2583#endif
2584#if HAVE_NETINET_IN_H
2585#include <netinet/in.h>
2586#endif
2587],[
2588  unsigned long s;
2589  s = htonl(5);
2590],[
2591AC_DEFINE([HAVE_HTONL],[1],[function found])
2592AC_MSG_RESULT(yes)
2593],[
2594AC_MSG_RESULT(no)
2595])
2596
2597dnl	Function or macro ntohl
2598dnl	-----------------------
2599AC_MSG_CHECKING(ntohl)
2600AC_TRY_COMPILE([
2601#if HAVE_STDINT_H
2602#include <stdint.h>
2603#endif
2604#if HAVE_SYS_TYPES_H
2605#include <sys/types.h>
2606#endif
2607#if HAVE_SYS_SOCKET_H
2608#include <sys/socket.h>
2609#endif
2610#if HAVE_ARPA_INET_H
2611#include <arpa/inet.h>
2612#endif
2613#if HAVE_NETINET_IN_H
2614#include <netinet/in.h>
2615#endif
2616],[
2617  unsigned long s;
2618  s = ntohl(5);
2619],[
2620AC_DEFINE([HAVE_NTOHL],[1],[function found])
2621AC_MSG_RESULT(yes)
2622],[
2623AC_MSG_RESULT(no)
2624])
2625
2626dnl	Function inet_addr
2627dnl	------------------
2628AC_CHECK_FUNCS(inet_addr,[
2629AC_DEFINE([HAVE_INET_ADDR],[1],[function found])
2630],[
2631AC_CHECK_LIB(xnet,inet_addr,[
2632AC_DEFINE([HAVE_INET_ADDR],[1],[function found])
2633],[
2634AC_CHECK_LIB(nsl,inet_addr,[
2635AC_DEFINE([HAVE_INET_ADDR],[1],[function found])
2636],[
2637AC_CHECK_LIB(socket,inet_addr,[
2638AC_DEFINE([HAVE_INET_ADDR],[1],[function found])
2639],[
2640AC_CHECK_LIB(ws2_32,inet_addr,[
2641AC_DEFINE([HAVE_INET_ADDR],[1],[function found])
2642])
2643])
2644])
2645])
2646])
2647
2648dnl	Function inet_aton
2649dnl	------------------
2650AC_CHECK_FUNCS(inet_aton,[
2651AC_DEFINE([HAVE_INET_ATON],[1],[function found])
2652],[
2653AC_CHECK_LIB(xnet,inet_aton,[
2654AC_DEFINE([HAVE_INET_ATON],[1],[function found])
2655],[
2656AC_CHECK_LIB(nsl,inet_aton,[
2657AC_DEFINE([HAVE_INET_ATON],[1],[function found])
2658],[
2659AC_CHECK_LIB(socket,inet_aton,[
2660AC_DEFINE([HAVE_INET_ATON],[1],[function found])
2661],[
2662AC_CHECK_LIB(ws2_32,inet_aton,[
2663AC_DEFINE([HAVE_INET_ATON],[1],[function found])
2664])
2665])
2666])
2667])
2668])
2669
2670dnl	Function inet_pton
2671dnl	------------------
2672AC_CHECK_FUNCS(inet_pton,[
2673AC_DEFINE([HAVE_INET_PTON],[1],[function found])
2674],[
2675AC_CHECK_LIB(xnet,inet_pton,[
2676AC_DEFINE([HAVE_INET_PTON],[1],[function found])
2677],[
2678AC_CHECK_LIB(nsl,inet_pton,[
2679AC_DEFINE([HAVE_INET_PTON],[1],[function found])
2680],[
2681AC_CHECK_LIB(socket,inet_pton,[
2682AC_DEFINE([HAVE_INET_PTON],[1],[function found])
2683],[
2684AC_CHECK_LIB(ws2_32,inet_pton,[
2685AC_DEFINE([HAVE_INET_PTON],[1],[function found])
2686])
2687])
2688])
2689])
2690])
2691
2692dnl	Function inet_ntop (reverse inet_pton)
2693dnl	--------------------------------------
2694AC_CHECK_FUNCS(inet_ntop,[
2695AC_DEFINE([HAVE_INET_NTOP],[1],[function found])
2696],[
2697AC_CHECK_LIB(xnet,inet_ntop,[
2698AC_DEFINE([HAVE_INET_NTOP],[1],[function found])
2699],[
2700AC_CHECK_LIB(nsl,inet_ntop,[
2701AC_DEFINE([HAVE_INET_NTOP],[1],[function found])
2702],[
2703AC_CHECK_LIB(socket,inet_ntop,[
2704AC_DEFINE([HAVE_INET_NTOP],[1],[function found])
2705],[
2706AC_CHECK_LIB(ws2_32,inet_ntop,[
2707AC_DEFINE([HAVE_INET_NTOP],[1],[function found])
2708])
2709])
2710])
2711])
2712])
2713
2714dnl	Function getpeername
2715dnl	--------------------
2716AC_CHECK_FUNCS(getpeername,[
2717AC_DEFINE([HAVE_GETPEERNAME],[1],[function found])
2718],[
2719AC_CHECK_LIB(xnet,getpeername,[
2720AC_DEFINE([HAVE_GETPEERNAME],[1],[function found])
2721],[
2722AC_CHECK_LIB(nsl,getpeername,[
2723AC_DEFINE([HAVE_GETPEERNAME],[1],[function found])
2724],[
2725AC_CHECK_LIB(socket,getpeername,[
2726AC_DEFINE([HAVE_GETPEERNAME],[1],[function found])
2727],[
2728AC_CHECK_LIB(ws2_32,getpeername,[AC_DEFINE([HAVE_GETPEERNAME],[1],[function found])])
2729])
2730])
2731])
2732])
2733
2734dnl	Function getsockname
2735dnl	--------------------
2736AC_CHECK_FUNCS(getsockname,[
2737AC_DEFINE([HAVE_GETSOCKNAME],[1],[function found])
2738],[
2739AC_CHECK_LIB(xnet,getsockname,[
2740AC_DEFINE([HAVE_GETSOCKNAME],[1],[function found])
2741],[
2742AC_CHECK_LIB(nsl,getsockname,[
2743AC_DEFINE([HAVE_GETSOCKNAME],[1],[function found])
2744],[
2745AC_CHECK_LIB(socket,getsockname,[
2746AC_DEFINE([HAVE_GETSOCKNAME],[1],[function found])
2747],[
2748AC_CHECK_LIB(ws2_32,getsockname,[AC_DEFINE([HAVE_GETSOCKNAME],[1],[function found])])
2749])
2750])
2751])
2752])
2753
2754dnl	Function select
2755dnl	---------------
2756AC_CHECK_FUNCS(select,[
2757AC_DEFINE([HAVE_SELECT],[1],[function found])
2758],[
2759AC_CHECK_LIB(xnet,select,[
2760AC_DEFINE([HAVE_SELECT],[1],[function found])
2761],[
2762AC_CHECK_LIB(nsl,select,[
2763AC_DEFINE([HAVE_SELECT],[1],[function found])
2764],[
2765AC_CHECK_LIB(socket,select,[
2766AC_DEFINE([HAVE_SELECT],[1],[function found])
2767],[
2768AC_CHECK_LIB(ws2_32,select,[AC_DEFINE([HAVE_SELECT],[1],[function found])])
2769])
2770])
2771])
2772])
2773
2774dnl	Some systems have socket and name service functionality in one library
2775dnl	----------------------------------------------------------------------
2776if [[ "X$SOCKLIB" = "X$NSLLIB" ]]
2777then
2778NSLLIB=''
2779fi
2780
2781dnl	Systemd
2782dnl	-------
2783rundir="$runstatedir"
2784
2785if [[ "X$ENA_SYSTEMD" = "Xauto" -a "X$systemddir" = "X" -a -d /lib/systemd/system ]]
2786then
2787	ENA_SYSTEMD='yes'
2788	systemddir='/lib/systemd/system'
2789	FOUND_SYSTEMD='yes'
2790	AC_DEFINE([HAVE_SYSTEMD],[1],[function found])
2791	rundir='/run'
2792elif [[ "X$ENA_SYSTEMD" = "Xauto" -a "X$systemddir" = "X" -a -d /usr/lib/systemd/system ]]
2793then
2794	ENA_SYSTEMD='yes'
2795	systemddir='/usr/lib/systemd/system'
2796	FOUND_SYSTEMD='yes'
2797	AC_DEFINE([HAVE_SYSTEMD],[1],[function found])
2798	rundir='/run'
2799elif [[ "X$ENA_SYSTEMD" = "Xauto" -a "X$systemddir" != "X" ]]
2800then
2801	ENA_SYSTEMD='yes'
2802	FOUND_SYSTEMD='yes'
2803	AC_DEFINE([HAVE_SYSTEMD],[1],[function found])
2804	rundir='/run'
2805elif [[ "X$ENA_SYSTEMD" = "Xyes" -a "X$systemddir" = "X" -a -d /lib/systemd/system ]]
2806then
2807	ENA_SYSTEMD='yes'
2808	systemddir='/lib/systemd/system'
2809	FOUND_SYSTEMD='yes'
2810	AC_DEFINE([HAVE_SYSTEMD],[1],[function found])
2811	rundir='/run'
2812elif [[ "X$ENA_SYSTEMD" = "Xyes" -a "X$systemddir" = "X" -a -d /usr/lib/systemd/system ]]
2813then
2814	ENA_SYSTEMD='yes'
2815	systemddir='/usr/lib/systemd/system'
2816	FOUND_SYSTEMD='yes'
2817	AC_DEFINE([HAVE_SYSTEMD],[1],[function found])
2818	rundir='/run'
2819elif [[ "X$ENA_SYSTEMD" = "Xyes" -a "X$systemddir" != "X" ]]
2820then
2821	ENA_SYSTEMD='yes'
2822	FOUND_SYSTEMD='yes'
2823	AC_DEFINE([HAVE_SYSTEMD],[1],[function found])
2824	rundir='/run'
2825elif [[ "X$systemddir" = "X" -a -d /lib/systemd/system ]]
2826then
2827	systemddir='/lib/systemd/system'
2828elif [[ "X$systemddir" = "X" -a -d /usr/lib/systemd/system ]]
2829then
2830	systemddir='/usr/lib/systemd/system'
2831elif [[ "X$systemddir" = "X" ]]
2832then
2833	systemddir='/lib/systemd/system'
2834fi
2835
2836
2837
2838
2839dnl	Find names of test programs
2840dnl	===========================
2841SEP=`cat config/sep.txt`
2842for i in test*.ctr
2843do
2844j=`echo $i | sed -e 's/\.ctr//g'`
2845if [[ "X$TESTPROGRAMS" = "X" ]]
2846then
2847  TESTPROGRAMS="$j"
2848else
2849  TESTPROGRAMS="${TESTPROGRAMS} ${SEP}$j"
2850fi
2851done
2852
2853
2854dnl	Used libraries
2855dnl	==============
2856LIBPNG=''
2857LIBJPEG=''
2858LIBTIFF=''
2859ANYDB=''
2860PTHREADLIB=''
2861LIBDK3WXOBJ=''
2862LIBDK4WXOBJ=''
2863LIBDK4WXTOBUILD=''
2864DBLIB=''
2865DBLIBSOCK=''
2866NETSNMP_LIBS=''
2867NETSNMP_CFLAGS=''
2868
2869dnl	NetSNMP
2870dnl	-------
2871TESTSNMPCONFIG=''
2872if [[ "X$CROSSBUILD" != "Xyes" ]]
2873then
2874	TESTSNMPCONFIG='net-snmp-config'
2875else
2876	CROSSPREFIX=`$PKG_CONFIG --variable=prefix zlib`
2877	TESTSNMPCONFIG=`find $CROSSPREFIX -name 'net-snmp-config'`
2878fi
2879if [[ "X$TESTSNMPCONFIG" != "X" ]]
2880then
2881	NETSNMP_LIBS=`$TESTSNMPCONFIG --libs`
2882	NETSNMP_CFLAGS=`$TESTSNMPCONFIG --cflags`
2883fi
2884
2885dnl	Database libraries
2886dnl	------------------
2887AC_HEADER_CHECK(gdbm.h, [FOUND_GDBM='yes'])
2888AC_HEADER_CHECK(ndbm.h, [FOUND_NDBM='yes'])
2889case "X${FOUND_NDBM}${USE_NDBM}${FOUND_GDBM}" in
2890  "Xyesyesyes")
2891    AC_DEFINE([HAVE_NDBM_H],[1],[function found])
2892    ANYDB='ndbm'
2893  ;;
2894  "Xyesyesno")
2895    AC_DEFINE([HAVE_NDBM_H],[1],[function found])
2896    ANYDB='ndbm'
2897  ;;
2898  "Xyesautono")
2899    AC_DEFINE([HAVE_NDBM_H],[1],[function found])
2900    ANYDB='ndbm'
2901  ;;
2902esac
2903if [[ "X$ANYDB" != "Xndbm" -a "X$FOUND_GDBM" = "Xyes" ]]
2904then
2905  AC_DEFINE([HAVE_GDBM_H],[1],[function found])
2906fi
2907AC_HEADER_CHECK(db.h, [FOUND_BDB='yes';ANYDB='db';DBLIB='-ldb';AC_DEFINE([HAVE_DB_H],[1],[function found])])
2908
2909
2910dnl	libpng
2911dnl	------
2912FOUND_PNG='no'
2913AC_HEADER_CHECK(png.h, [LIBPNG='-lpng';FOUND_PNG='yes';AC_DEFINE([HAVE_PNG_H],[1],[function found])])
2914FOUND_JPG='no'
2915
2916dnl	libjpeg
2917dnl	-------
2918AC_HEADER_CHECK(jpeglib.h, [LIBJPEG='-ljpeg';FOUND_JPG='yes';AC_DEFINE([HAVE_JPEGLIB_H],[1],[function found])])
2919
2920dnl	libtiff
2921dnl	-------
2922FOUND_TIFF='no'
2923AC_HEADER_CHECK(tiff.h, [LIBTIFF='-ltiff';FOUND_TIFF='yes';AC_DEFINE([HAVE_TIFF_H],[1],[function found])])
2924
2925dnl	wxWidgets
2926dnl	---------
2927WX_HEADER_FOUND='no'
2928WX_HEADER_FILENAME=''
2929AC_MSG_CHECKING(wx-config)
2930TESTWXCONFIG=''
2931if [[ "X$CROSSBUILD" = "Xyes" -a "X$PKG_CONFIG" != "X:" ]]
2932then
2933	CROSSPREFIX=`$PKG_CONFIG --variable=prefix zlib`
2934	WX_HEADER_FILENAME=`find $CROSSPREFIX -name 'wx.h'`
2935	[[ "X$TESTWXCONFIG" != "X" ]] || TESTWXCONFIG=`find $CROSSPREFIX -name 'wx-config-3.0'`
2936	[[ "X$TESTWXCONFIG" != "X" ]] || TESTWXCONFIG=`find $CROSSPREFIX -name 'wx-config-gtk3'`
2937	[[ "X$TESTWXCONFIG" != "X" ]] || TESTWXCONFIG=`find $CROSSPREFIX -name 'wx-config-gtk2'`
2938	[[ "X$TESTWXCONFIG" != "X" ]] || TESTWXCONFIG=`find $CROSSPREFIX -name 'wx-config'`
2939	[[ "X$TESTWXCONFIG" != "X" ]] || TESTWXCONFIG=`find $CROSSPREFIX -name 'wxconfig'`
2940elif [[ "X$CROSSBUILD" != "Xyes" ]]
2941then
2942	[[ "X$TESTWXCONFIG" != "X" ]] || TESTWXCONFIG=`which wx-config-3.0`
2943	[[ "X$TESTWXCONFIG" != "X" ]] || TESTWXCONFIG=`which wx-config-gtk3`
2944	[[ "X$TESTWXCONFIG" != "X" ]] || TESTWXCONFIG=`which wx-config-gtk2`
2945	[[ "X$TESTWXCONFIG" != "X" ]] || TESTWXCONFIG=`which wx-config`
2946	[[ "X$TESTWXCONFIG" != "X" ]] || TESTWXCONFIG=`which wxconfig`
2947fi
2948AC_MSG_RESULT($TESTWXCONFIG)
2949
2950dnl	Check for wxWidgets
2951dnl	-------------------
2952AC_MSG_CHECKING(wxWidgets)
2953if [[ "XWX_HEADER_FILENAME" != "X" ]]
2954then
2955	WX_HEADER_FOUND='yes'
2956fi
2957AC_CHECK_HEADER(wx/wx.h,[WX_HEADER_FOUND='yes'])
2958if [[ "X$WX_HEADER_FOUND" = "Xyes" -a "X$TESTWXCONFIG" != "X" ]]
2959then
2960	WXCPPFLAGS=`$TESTWXCONFIG --cppflags`
2961	WXCXXFLAGS=`$TESTWXCONFIG --cxxflags`
2962	WXVERSION=`$TESTWXCONFIG --version`
2963	WXCFLAGS=`$TESTWXCONFIG --cflags`
2964	WXLDFLAGS=`$TESTWXCONFIG --libs`
2965	WXCONFIGLIBS="$WXLDFLAGS"
2966elif [[ "X$WX_HEADER_FOUND" = "Xyes" ]]
2967then
2968	AC_MSG_WARN([wxWidgets headers found, bot no wx-config!])
2969fi
2970if [[ "X$TOOLCHAIN" = "Xgcc" -o "X$TOOLCHAIN" = "Xclang" ]]
2971then
2972	WXCPPFLAGS=`echo $WXCPPFLAGS | sed -e 's/\-I/-isystem /g'`
2973	WXCXXFLAGS=`echo $WXCXXFLAGS | sed -e 's/\-I/-isystem /g'`
2974	WXCFLAGS=`echo $WXCFLAGS | sed -e 's/\-I/-isystem /g'`
2975fi
2976FOUND_WX='no'
2977if [[ "X$WXLDFLAGS" != "X" ]]
2978then
2979	FOUND_WX='yes'
2980	AC_DEFINE([HAVE_WXWIDGETS],[1],[function found])
2981fi
2982WXMAJOR=''
2983WXMINOR=''
2984if [[ "X$WXVERSION" != "X" ]]
2985then
2986  WXMAJOR=`echo $WXVERSION | cut -f 1 -d .`
2987  WXMINOR=`echo $WXVERSION | cut -f 2 -d .`
2988fi
2989[[ "X$WXMAJOR" != "X" ]] || WXMAJOR='0'
2990
2991if [[ "$WXMAJOR" -ge 3 ]]
2992then
2993AC_DEFINE([HAVE_WX_DEFS_H],[1],[function found])
2994AC_DEFINE([HAVE_WX_CHARTYPE_H],[1],[function found])
2995elif [[ "$WXMAJOR" -ge 2 ]]
2996then
2997AC_DEFINE([HAVE_WX_DEFS_H],[1],[function found])
2998AC_DEFINE([HAVE_WX_WXCHAR_H],[1],[function found])
2999fi
3000AC_MSG_RESULT($FOUND_WX)
3001
3002dnl	MySQL / MariaDB
3003dnl	---------------
3004FOUND_MYSQL='no'
3005AC_HEADER_CHECK(mariadb/mysql.h, [
3006MYSQLLIB='-lmariadbclient'
3007FOUND_MYSQL='yes'
3008AC_DEFINE([HAVE_MARIADB_MYSQL_H],[1],[function found])
3009],[
3010AC_HEADER_CHECK(mysql/mysql.h, [
3011MYSQLLIB='-lmysqlclient'
3012FOUND_MYSQL='yes'
3013AC_DEFINE([HAVE_MYSQL_MYSQL_H],[1],[function found])
3014],[
3015AC_HEADER_CHECK(mysql.h, [
3016MYSQLLIB='-lmysqlclient'
3017FOUND_MYSQL='yes'
3018AC_DEFINE([HAVE_MYSQL_H],[1],[function found])
3019]
3020)
3021]
3022)
3023])
3024
3025dnl	Resolution information in PNG files
3026dnl	-----------------------------------
3027AC_CHECK_LIB(png, png_get_pixels_per_inch,AC_DEFINE([HAVE_PNG_GET_PIXELS_PER_INCH],[1],[function found]))
3028
3029dnl	HAVE_DB_CURSOR_C_GET
3030dnl	--------------------
3031AC_TRY_COMPILE([
3032#include <db.h>
3033],[
3034DBT  k;
3035DBT  v;
3036DBC *cp;
3037cp->c_get(cp, &k, &v, DB_FIRST);
3038],[AC_DEFINE([HAVE_DB_CURSOR_C_GET],[1],[function found])])
3039
3040dnl	Random number generation
3041dnl	========================
3042
3043dnl	Functions rand and srand
3044dnl	------------------------
3045AC_MSG_CHECKING(rand srand)
3046AC_TRY_COMPILE([
3047#include <stdio.h>
3048#include <stdlib.h>
3049],[
3050  srand(25);
3051  printf("%d\n", rand());
3052  printf("%d\n", RAND_MAX);
3053],[AC_MSG_RESULT(yes)
3054AC_DEFINE([HAVE_RAND],[1],[function found])
3055AC_DEFINE([HAVE_SRAND],[1],[function found])],[AC_MSG_RESULT(no)])
3056
3057dnl	Function family initstate setstat random
3058dnl	----------------------------------------
3059AC_MSG_CHECKING(initstate setstate random)
3060AC_TRY_COMPILE([
3061#include <stdio.h>
3062#include <stdlib.h>
3063],[
3064char rs[256];
3065initstate(25, rs, sizeof(rs));
3066setstate(rs);
3067printf("%ld\n", random());
3068],[
3069AC_MSG_RESULT(yes)
3070AC_DEFINE([HAVE_INITSTATE],[1],[function found])
3071AC_DEFINE([HAVE_SETSTATE],[1],[function found])
3072AC_DEFINE([HAVE_RANDOM],[1],[function found])
3073],[AC_MSG_RESULT(no)])
3074
3075dnl	Functions lrand48 nrand48 seed48
3076dnl	--------------------------------
3077AC_MSG_CHECKING(lrand48 nrand48 seed48)
3078AC_TRY_COMPILE([
3079#include <stdio.h>
3080#include <stdlib.h>
3081],[
3082unsigned short sv[3];
3083sv[0] = 0;
3084sv[1] = 1;
3085sv[2] = 2;
3086seed48(sv);
3087printf("%ld\n", lrand48());
3088printf("%ld\n", nrand48(sv));
3089],[
3090AC_MSG_RESULT(yes)
3091AC_DEFINE([HAVE_LRAND48],[1],[function found])
3092AC_DEFINE([HAVE_NRAND48],[1],[function found])
3093],[AC_MSG_RESULT(no)])
3094
3095dnl	RAND_egd function in OpenSSL
3096dnl	----------------------------
3097COMPILE_RAND_EGD=no
3098LIBCHECK_RAND_EGD=no
3099AC_CHECK_LIB(crypto, RAND_egd,LIBCHECK_RAND_EGD='yes')
3100AC_MSG_CHECKING([RAND_egd (compile test code)])
3101AC_TRY_COMPILE([
3102#include <openssl/rand.h>
3103],[
3104int i;
3105i = RAND_egd("/dev/egd");
3106],[COMPILE_RAND_EGD='yes';AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no)])
3107if [[ "X$COMPILE_RAND_EGD" = "Xyes" -a "X$LIBCHECK_RAND_EGD" = "Xyes" ]]
3108then
3109AC_DEFINE([HAVE_RAND_EGD],[1],[function found])
3110fi
3111
3112
3113dnl	/dev/random and /dev/urandom
3114dnl	----------------------------
3115if  test -b /dev/urandom
3116then
3117  AC_DEFINE([HAVE_DEV_URANDOM],[1],[function found])
3118fi
3119if test -c /dev/urandom
3120then
3121  AC_DEFINE([HAVE_DEV_URANDOM],[1],[function found])
3122fi
3123if test -b /dev/random
3124then
3125  AC_DEFINE([HAVE_DEV_RANDOM],[1],[function found])
3126fi
3127if test -c /dev/random
3128then
3129  AC_DEFINE([HAVE_DEV_RANDOM],[1],[function found])
3130fi
3131
3132dnl	Feature Checking for /proc/.../exe symbolic link
3133dnl	------------------------------------------------
3134dnl	http://stackoverflow.com/questions/1023306/finding-current-executables-path-without-proc-self-exe
3135AC_MSG_CHECKING(/proc/.../exe symbolic link)
3136AC_TRY_RUN([
3137#include <stdio.h>
3138#if HAVE_STDLIB_H
3139#include <stdlib.h>
3140#endif
3141#if HAVE_SYS_TYPES_H
3142#include <sys/types.h>
3143#endif
3144#if HAVE_SYS_STAT_H
3145#include <sys/stat.h>
3146#endif
3147#if HAVE_UNISTD_H
3148#include <unistd.h>
3149#endif
3150#if HAVE_STDINT_H
3151#include <stdint.h>
3152#endif
3153/* Buffer for result */
3154char	prog[1024];
3155#ifdef __cplusplus
3156int main(int argc, char *argv[])
3157#else
3158int main(argc, argv) int argc; char *argv[];
3159#endif
3160{
3161  char	buf[64];
3162  struct stat	stbuf;
3163  int	exv = 1;
3164  ssize_t	res;
3165#if HAVE_STDINT_H
3166  sprintf(buf, "/proc/%ju/exe", (uintmax_t)getpid());
3167#else
3168  sprintf(buf, "/proc/%lu/exe", (unsigned long)getpid());
3169#endif
3170  res = readlink(buf, prog, sizeof(prog));
3171  if ((0 < res) && (sizeof(prog) > res)) {
3172    prog[res] = '\0';
3173    if (0 == stat(prog, &stbuf)) {
3174      exv = 0;
3175    }
3176  }
3177  return exv;
3178}
3179],[AC_MSG_RESULT(yes);AC_DEFINE([HAVE_PROC_PID_EXE],[1],[function found])],[AC_MSG_RESULT(no)],[AC_MSG_RESULT(no)])
3180if [[ "X$CROSSBUILD" = "Xyes" ]]
3181then
3182AC_MSG_WARN([Test for /proc/.../exe not possible!])
3183AC_MSG_WARN([Result is guessed and may be wrong.])
3184AC_MSG_WARN([Correct HAVE_PROC_PID_EXE in config.h if necessary.])
3185fi
3186
3187dnl	NetSNMP library
3188dnl	---------------
3189FOUND_NETSNMP='no'
3190AC_TRY_COMPILE([
3191#include <net-snmp/net-snmp-config.h>
3192#include <net-snmp/net-snmp-includes.h>
3193#include <net-snmp/utilities.h>
3194],[
3195netsnmp_session session, *ss;
3196],[
3197FOUND_NETSNMP='yes'
3198AC_DEFINE([HAVE_LIBNETSNMP],[1],[function found])
3199])
3200AC_CHECK_LIB(netsnmp,snmp_enable_filelog,[AC_DEFINE([HAVE_SNMP_ENABLE_FILELOG],[1],[function found])])
3201AC_CHECK_LIB(netsnmp,snmp_disable_syslog,[AC_DEFINE([HAVE_SNMP_DISABLE_SYSLOG],[1],[function found])])
3202AC_CHECK_LIB(netsnmp,snmp_disable_stderrlog,[AC_DEFINE([HAVE_SNMP_DISABLE_STDERRLOG],[1],[function found])])
3203AC_CHECK_LIB(netsnmp,snmp_disable_filelog,[AC_DEFINE([HAVE_SNMP_DISABLE_FILELOG],[1],[function found])])
3204
3205dnl	Check for MySQL client library
3206dnl	------------------------------
3207AC_MSG_CHECKING(MySQL client library)
3208if [[ "X$FOUND_MYSQL" = "Xyes" ]]
3209then
3210  [[ ! -f /usr/lib/mysql/libmysqlclient.so ]] || LDFLAGS="$LDFLAGS -L/usr/lib/mysql"
3211  [[ ! -f /usr/lib/mysql/libmysqlclient.a ]] || LDFLAGS="$LDFLAGS -L/usr/lib/mysql"
3212  [[ ! -f /usr/lib/mysql/libmysqlclient.so ]] || MYSQLLDFLAGS="-L/usr/lib/mysql"
3213  [[ ! -f /usr/lib/mysql/libmysqlclient.a ]] || MYSQLLDFLAGS="-L/usr/lib/mysql"
3214  [[ ! -f /usr/lib64/mysql/libmysqlclient.so ]] || LDFLAGS="$LDFLAGS -L/usr/lib64/mysql"
3215  [[ ! -f /usr/lib64/mysql/libmysqlclient.a ]] || LDFLAGS="$LDFLAGS -L/usr/lib64/mysql"
3216  [[ ! -f /usr/lib64/mysql/libmysqlclient.so ]] || MYSQLLDFLAGS="-L/usr/lib64/mysql"
3217  [[ ! -f /usr/lib64/mysql/libmysqlclient.a ]] || MYSQLLDFLAGS="-L/usr/lib64/mysql"
3218fi
3219AC_MSG_RESULT(done)
3220
3221SOLIBZ=''
3222SOLIBBZ=''
3223SOLIBMATH=''
3224SOLIBCRYPTO=''
3225SOLIBNET=''
3226SOLIBIMG=''
3227SOLIBSDBI=''
3228SOLIBWX=''
3229SOLIBDK3PORT=''
3230SOLIBDK3C=''
3231SOLIBDK3OF=''
3232SOLIBDK3CSRND=''
3233SOLIBDK3BIF=''
3234SOLIBDK3DBI=''
3235SOLIBDK3FIG=''
3236SOLIBDK3BMEPS=''
3237SOLIBDK3NET=''
3238SOLIBDK4TRACE=''
3239SOLIBDK4BASE=''
3240SOLIBDK4MA=''
3241SOLIBDK4MAIO8H=''
3242SOLIBDK4MAIOWH=''
3243SOLIBDK4MAIODH=''
3244SOLIBDK4MAIO8D=''
3245SOLIBDK4MAIOWD=''
3246SOLIBDK4MAIODD=''
3247SOLIBDK4C=''
3248SOLIBDK4MDRND=''
3249SOLIBDK4PPPT=''
3250SOLIBDK4APP=''
3251SOLIBDK4LATA=''
3252SOLIBDK4LAT=''
3253SOLIBDK4SOCK=''
3254SOLIBDK4SOCKA=''
3255SOLIBDK4DBI=''
3256SOLIBDK4DBIA=''
3257LIBDK4TRACELIBF=''
3258LIBDK4TRACELIBS=''
3259LIBDK4BASELIBF=''
3260LIBDK4BASELIBS=''
3261LIBDK4MALIBF=''
3262LIBDK4MALIBS=''
3263LIBDK4MAIO8DLIBF=''
3264LIBDK4MAIO8DLIBS=''
3265LIBDK4MAIOWDLIBF=''
3266LIBDK4MAIOWDLIBS=''
3267LIBDK4MAIODDLIBF=''
3268LIBDK4MAIODDLIBS=''
3269LIBDK4MAIOXDLIBF=''
3270LIBDK4MAIOXDLIBS=''
3271LIBDK4MAIO8HLIBF=''
3272LIBDK4MAIO8HLIBS=''
3273LIBDK4MAIOWHLIBF=''
3274LIBDK4MAIOWHLIBS=''
3275LIBDK4MAIODHLIBF=''
3276LIBDK4MAIODHLIBS=''
3277LIBDK4DBILIBF=''
3278LIBDK4DBILIBS=''
3279LIBDK4CLIBF=''
3280LIBDK4CLIBS=''
3281LIBDK4LATALIBF=''
3282LIBDK4LATALIBS=''
3283LIBDK4LATLIBF=''
3284LIBDK4LATLIBS=''
3285LIBDK4BIFLIBF=''
3286LIBDK4BIFLIBS=''
3287LIBDK4GRALIBF=''
3288LIBDK4GRALIBS=''
3289LIBDK4SOCKLIBF=''
3290LIBDK4SOCKLIBS=''
3291LIBDK4MDRNDLIBF=''
3292LIBDK4MDRNDLIBS=''
3293LIBDK4PPPTLIBF=''
3294LIBDK4PPPTLIBS=''
3295LIBDK4APPLIBF=''
3296LIBDK4APPLIBS=''
3297LIBDK4PPPTALIBF=''
3298LIBDK4PPPTALIBS=''
3299LIBDK4SOCKALIBF=''
3300LIBDK4SOCKALIBS=''
3301LIBDK4DBIALIBF=''
3302LIBDK4DBIALIBS=''
3303LIBDK4BIFALIBF=''
3304LIBDK4BIFALIBS=''
3305LIBDK4GRAALIBF=''
3306LIBDK4GRAALIBS=''
3307LIBDK4WXLIBF=''
3308LIBDK4WXLIBS=''
3309LIBDK3TRACELIBF=''
3310LIBDK3TRACELIBS=''
3311LIBDK3CLIBF=''
3312LIBDK3CLIBS=''
3313LIBDK3OFLIBF=''
3314LIBDK3OFLIBS=''
3315LIBDK3CSRNDLIBF=''
3316LIBDK3CSRNDLIBS=''
3317LIBDK3BIFLIBF=''
3318LIBDK3BIFLIBS=''
3319LIBDK3DBILIBF=''
3320LIBDK3DBILIBS=''
3321LIBDK3BMEPSLIBF=''
3322LIBDK3BMEPSLIBS=''
3323LIBDK3FIGLIBF=''
3324LIBDK3FIGLIBS=''
3325LIBDK3WXLIBF=''
3326LIBDK3WXLIBS=''
3327
3328AC_MSG_CHECKING(Link shared libraries against shared libraries)
3329if [[ "X$ENA_SHARED" = "Xyes" -a "X$ENA_SOSO" = "Xyes" ]]
3330then
3331  AC_MSG_RESULT(yes)
3332  SOLIBZ="$ZLIB"
3333  SOLIBBZ="$BZLIB"
3334  SOLIBMATH='-lm'
3335  SOLIBCRYPTO="$CRYPTO"
3336  SOLIBNET="$NETLIB"
3337  SOLIBIMG="$IMGLIBS"
3338  SOLIBSDBI="$DKSDBILIBS"
3339  SOLIBWX="$WXCONFIGLIBS"
3340  SOLIBDK3PORT=''
3341  SOLIBDK3C='-ldk3c'
3342  SOLIBDK3OF='-ldk3of'
3343  SOLIBDK3CSRND='-ldk3csrnd'
3344  SOLIBDK3BIF='-ldk3bif'
3345  SOLIBDK3DBI='-ldk3dbi'
3346  SOLIBDK3FIG='-ldk3fig'
3347  SOLIBDK3BMEPS='-ldk3bmeps'
3348  SOLIBDK3NET='-ldk3net'
3349  SOLIBDK4BASE='-ldk4base'
3350  SOLIBDK4TRACE='-ldk4trace'
3351  SOLIBDK4MA='-ldk4ma'
3352  SOLIBDK4MAIO8H='-ldk4maio8h'
3353  SOLIBDK4MAIOWH='-ldk4maiowh'
3354  SOLIBDK4MAIODH='-ldk4maiodh'
3355  SOLIBDK4MAIO8D='-ldk4maio8d'
3356  SOLIBDK4MAIOWD='-ldk4maiowd'
3357  SOLIBDK4MAIODD='-ldk4maiodd'
3358  SOLIBDK4C='-ldk4c'
3359  SOLIBDK4MDRND='-ldk4mdrnd'
3360  SOLIBDK4PPPT='-ldk4pppt'
3361  SOLIBDK4APP='-ldk4app'
3362  SOLIBDK4LATA='-ldk4lata'
3363  SOLIBDK4LAT='-ldk4lat'
3364  SOLIBDK4SOCK='-ldk4sock'
3365  SOLIBDK4SOCKA='-ldk4socka'
3366  SOLIBDK4DBI='-ldk4dbi'
3367  SOLIBDK4DBIA='-ldk4dbia'
3368  LIBDK4TRACELIBF=''
3369  LIBDK4TRACELIBS=''
3370  LIBDK4BASELIBF=''
3371  LIBDK4BASELIBS=''
3372  LIBDK4MALIBF='libdk4base.so'
3373  LIBDK4MALIBS='-ldk4base'
3374  LIBDK4MAIO8DLIBF='libdk4base.so libdk4ma.so'
3375  LIBDK4MAIO8DLIBS='-ldk4ma -ldk4base'
3376  LIBDK4MAIOWDLIBF='libdk4base.so libdk4ma.so'
3377  LIBDK4MAIOWDLIBS='-ldk4ma -ldk4base'
3378  LIBDK4MAIODDLIBF='libdk4maio8d.so'
3379  LIBDK4MAIODDLIBS='-ldk4maio8d'
3380  LIBDK4MAIOXDLIBF='libdk4maio8d.so libdk4maiowd.so'
3381  LIBDK4MAIOXDLIBS='-ldk4maiowd -ldk4maio8d'
3382  LIBDK4MAIO8HLIBF='libdk4base.so'
3383  LIBDK4MAIO8HLIBS='-ldk4base'
3384  LIBDK4MAIOWHLIBF='libdk4base.so'
3385  LIBDK4MAIOWHLIBS='-ldk4base'
3386  LIBDK4MAIODHLIBF='libdk4base.so libdk4maio8h.so'
3387  LIBDK4MAIODHLIBS='-ldk4maio8h -ldk4base'
3388  LIBDK4CLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so'
3389  LIBDK4CLIBS='-ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(BZLIB) $(ZLIB)'
3390  LIBDK4DBILIBF='libdk4base.so libdk4ma.so libdk4c.so'
3391  LIBDK4DBILIBS='-ldk4c -ldk4ma -ldk4base $(DBLIB) $(DBLIBSOCK)'
3392  LIBDK4LATLIBF='libdk4base.so libdk4ma.so libdk4maio8h.so libdk4c.so'
3393  LIBDK4LATLIBS='-ldk4c -ldk4maio8h -ldk4ma -ldk4base'
3394  LIBDK4BIFLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4c.so'
3395  LIBDK4BIFLIBS='-ldk4c -ldk4maio8d -ldk4ma -ldk4base $(IMGLIBS)'
3396  LIBDK4GRALIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4lat.so libdk4bif.so'
3397  LIBDK4GRALIBS='-ldk4bif -ldk4lat -ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base -lm'
3398  LIBDK4SOCKLIBF='libdk4base.so libdk4maio8d.so libdk4c.so'
3399  LIBDK4SOCKLIBS='-ldk4c -ldk4maio8d -ldk4base $(SOCKLIB) $(NSLLIB)'
3400  LIBDK4MDRNDLIBF='libdk4base.so libdk4c.so'
3401  LIBDK4MDRNDLIBS='$(CRYPTO) -ldk4c -ldk4base $(CRYPTO)'
3402  LIBDK4PPPTLIBF='libdk4base.so libdk4c.so libdk4lat.so libdk4gra.so'
3403  LIBDK4PPPTLIBS='-ldk4gra -ldk4lat -ldk4c -ldk4base'
3404  LIBDK4APPLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so libdk4c.so'
3405  LIBDK4APPLIBS='-ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base'
3406  LIBDK4LATALIBF='libdk4base.so libdk4maio8d.so libdk4maio8h.so libdk4maiodd.so libdk4maiodh.so libdk4c.so libdk4app.so libdk4lat.so'
3407  LIBDK4LATALIBS='-ldk4app -ldk4lat -ldk4c -ldk4maiodh -ldk4maiodd -ldk4maio8h -ldk4maio8d -ldk4base'
3408  LIBDK4SOCKALIBF='libdk4base.so libdk4maio8d.so libdk4maiodd.so libdk4maiodh.so libdk4sock.so libdk4app.so'
3409  LIBDK4SOCKALIBS='-ldk4app -ldk4sock -ldk4maiodh -ldk4maiodd -ldk4maio8d -ldk4base'
3410  LIBDK4DBIALIBF='libdk4base.so libdk4dbi.so libdk4app.so'
3411  LIBDK4DBIALIBS='-ldk4app -ldk4dbi -ldk4base'
3412  LIBDK4BIFALIBF='libdk4base.so libdk4ma.so libdk4maiodd.so libdk4c.so libdk4bif.so libdk4app.so'
3413  LIBDK4BIFALIBS='-ldk4app -ldk4bif -ldk4c -ldk4maiodd -ldk4ma -ldk4base'
3414  LIBDK4GRAALIBF='libdk4base.so libdk4maiodd.so libdk4maiodh.so libdk4c.so libdk4bif.so libdk4gra.so libdk4app.so libdk4bifa.so'
3415  LIBDK4GRAALIBS='-ldk4bifa -ldk4app -ldk4gra -ldk4bif -ldk4c -ldk4maiodd -ldk4maiodh -ldk4base'
3416  LIBDK4PPPTALIBF='libdk4pppt.so libdk4app.so'
3417  LIBDK4PPPTALIBS='-ldk4app -ldk4pppt'
3418  LIBDK4WXLIBF='libdk4base.so libdk4maio8d.so libdk4maiowd.so libdk4c.so'
3419  LIBDK4WXLIBS='-ldk4c -ldk4base -ldk4maiowd -ldk4maio8d $(WXLDFLAGS)'
3420  LIBDK3TRACELIBF=''
3421  LIBDK3TRACELIBS=''
3422  LIBDK3CLIBF=''
3423  LIBDK3CLIBS='$(BZLIB) $(ZLIB) -lm'
3424  LIBDK3OFLIBF='libdk3c.so'
3425  LIBDK3OFLIBS='-ldk3c $(BZLIB) $(ZLIB)'
3426  LIBDK3CSRNDLIBF='libdk3c.so'
3427  LIBDK3CSRNDLIBS='-ldk3c $(CRYPTO)'
3428  LIBDK3BIFLIBF='libdk3c.so'
3429  LIBDK3BIFLIBS='-ldk3c $(IMGLIBS)'
3430  LIBDK3DBILIBF='libdk3c.so'
3431  LIBDK3DBILIBS='-ldk3c $(DBLIB) $(DBLIBSOCK)'
3432  LIBDK3BMEPSLIBF='libdk3c.so libdk3of.so libdk3bif.so'
3433  LIBDK3BMEPSLIBS='-ldk3bif -ldk3of -ldk3c -lm'
3434  LIBDK3FIGLIBF='libdk3c.so'
3435  LIBDK3FIGLIBS='-ldk3c -lm'
3436  LIBDK3WXLIBF='libdk3c.so'
3437  LIBDK3WXLIBS='-ldk3c $(WXLDFLAGS)'
3438else
3439  AC_MSG_RESULT(no)
3440fi
3441
3442
3443
3444dnl	FEATURE TESTS END
3445
3446
3447dnl	COMPONENTS TO BUILD AND INSTALL
3448
3449dnl	Further compiler setup
3450dnl	======================
3451
3452dnl	Position independent code and shared libraries
3453dnl	----------------------------------------------
3454MKSOLIB='echo "ERROR: Can not build shared libraries!" #'
3455MKSOLIBCPP='echo "ERROR: Can not build shared libraries!" #'
3456AC_MSG_CHECKING(toolchain specific options)
3457case X$TOOLCHAIN in
3458  Xgcc|Xclang)
3459    CFLAGS="$CFLAGS -fPIC -D_REENTRANT"
3460    CFL_CLI_C8="$CFL_CLI_C8 -fPIC -D_REENTRANT"
3461    CFL_CLI_DK="$CFL_CLI_DK -fPIC -D_REENTRANT"
3462    CXXFL_CLI_C8="$CXXFL_CLI_C8 -fPIC -D_REENTRANT"
3463    CXXFL_CLI_DK="$CXXFL_CLI_DK -fPIC -D_REENTRANT"
3464    CXXFL_CLI_WX="$CXXFL_CLI_WX -fPIC -D_REENTRANT"
3465    CXXFL_GUI="$CXXFL_GUI -fPIC -D_REENTRANT"
3466    if [[ "X$ENA_SHARED" = "Xyes" ]]
3467    then
3468      CXXFL_GUI="$CXXFL_GUI"
3469    fi
3470    MKSOLIB='$(CC) -shared -L. $(MKSORPATH) $(MKSOCHECKSYMBOLS) $(MKSORPATHLINK) $(LDFLAGS) -o $@.$(SOVERS) -Wl,-soname,$@.$(SOVERS)'
3471    MKSOLIBCPP='$(CXX) -shared -L. $(MKSORPATH) $(MKSOCHECKSYMBOLS) $(MKSORPATHLINK) $(LDFLAGS) -o $@.$(SOVERS) -Wl,-soname,$@.$(SOVERS)'
3472    if [[ "X$ENA_SHARED" = "Xyes" -a "X$ENA_SOSO" = "Xyes" ]]
3473    then
3474      MKSORPATHLINK='-Wl,-rpath-link,./'
3475      MKSOCHECKSYMBOLS='-Wl,-z,defs'
3476      RPATHLINK='-Wl,-rpath-link,./'
3477    fi
3478    AC_MSG_RESULT(gcc)
3479  ;;
3480  Xworkshop)
3481    if [[ "X$ENA_SHARED" = "Xyes" ]]
3482    then
3483      CFLAGS="-Bdynamic -dy $CFLAGS"
3484      CFL_CLI_C8="-Bdynamic -dy $CFL_CLI_C8"
3485      CFL_CLI_DK="-Bdynamic -dy $CFL_CLI_DK"
3486      CXXFL_CLI_C8="-Bdynamic -dy $CXXFL_CLI_C8"
3487      CXXFL_CLI_DK="-Bdynamic -dy $CXXFL_CLI_DK"
3488      CXXFL_CLI_WX="-Bdynamic -dy $CXXFL_CLI_WX"
3489      CXXFL_GUI="-Bdynamic -dy $CXXFL_GUI"
3490      LDFLAGS="-Bdynamic -dy $LDFLAGS"
3491      LDFLC_CLI_C8="-Bdynamic -dy $LDFLC_CLI_C8"
3492      LDFLC_CLI_DK="-Bdynamic -dy $LDFLC_CLI_DK"
3493      LDFLCXX_CLI_C8="-Bdynamic -dy $LDFLCXX_CLI_C8"
3494      LDFLCXX_CLI_DK="-Bdynamic -dy $LDFLCXX_CLI_DK"
3495      LDFLCXX_CLI_WX="-Bdynamic -dy $LDFLCXX_CLI_WX"
3496      LDFLCXX_GUI="-Bdynamic -dy $LDFLCXX_GUI"
3497    fi
3498    CFLAGS="$CFLAGS -xcode=pic32 -D_REENTRANT"
3499    CFL_CLI_C8="$CFL_CLI_C8 -xcode=pic32 -D_REENTRANT"
3500    CFL_CLI_DK="$CFL_CLI_DK -xcode=pic32 -D_REENTRANT"
3501    CXXFL_CLI_C8="$CXXFL_CLI_C8 -xcode=pic32 -D_REENTRANT"
3502    CXXFL_CLI_DK="$CXXFL_CLI_DK -xcode=pic32 -D_REENTRANT"
3503    CXXFL_CLI_WX="$CXXFL_CLI_WX -xcode=pic32 -D_REENTRANT"
3504    CXXFL_GUI="$CXXFL_GUI -xcode=pic32 -D_REENTRANT"
3505    MKSOLIB='$(CC) -L. $(MKSORPATH) $(MKSORPATHLINK) $(LDFLAGS) -G -h $@.$(SOVERS) -o $@.$(SOVERS)'
3506    MKSOLIBCPP='$(CXX) -L. $(MKSORPATH) $(MKSORPATHLINK) $(LDFLAGS) -G -h $@.$(SOVERS) -o $@.$(SOVERS)'
3507    AC_MSG_RESULT(workshop)
3508  ;;
3509  *)
3510    AC_MSG_RESULT(other)
3511  ;;
3512esac
3513
3514dnl	Create -R option for linker
3515AC_MSG_CHECKING(linker requires -R option)
3516if [[ "X$LD_LIBRARY_PATH" != "X" -a "X$TOOLCHAIN" = "Xworkshop" ]]
3517then
3518  RPATH="-R${LD_LIBRARY_PATH}"
3519  AC_MSG_RESULT(yes)
3520else
3521  AC_MSG_RESULT(no)
3522fi
3523
3524if [[ "X$ENA_RPATH" = "Xyes" -a "X$ENA_PACKAGE" = "Xyes" -a \( "X$TOOLCHAIN" = "Xgcc" -o "X$TOOLCHAIN" = "Xclang" \) ]]
3525then
3526	RPATH='-Wl,-rpath,$(libdir)'
3527fi
3528
3529dnl	Corrections for Solaris
3530dnl	-----------------------
3531DBLIBSOCK="$DBLIB"
3532case X$TARGETHOST in
3533  Xsparc-sun-solaris*)
3534    if [[ "X$ENA_SUNOS_CORR" = "Xyes" ]]
3535    then
3536      AC_MSG_CHECKING(corrections for Solaris)
3537      [[ "X$DBLIBSOCK" = "X" ]] || DBLIBSOCK="$DBLIB -lrt "'$(SOCKLIB)'
3538      [[ "X$DBLIB" = "X" ]] || DBLIB="$DBLIB -lrt"
3539      [[ "X$CRYPTO" = "X" ]] || CRYPTO="$CRYPTO -lssl "'$(SOCKLIB)'
3540      [[ "X$MYSQLLIB" = "X" ]] || MYSQLLIB="$MYSQLLIB -lrt "'$(SOCKLIB)'
3541      NETSNMP_LIBS=`echo $NETSNMP_LIBS | sed -f modsnmp.sed`
3542      SOCKLIB='-lsocket'
3543      NSLLIB='-lnsl'
3544      AC_MSG_RESULT(done)
3545      NETSNMP_LIBS=''
3546      FOUND_NETSNMP='no'
3547    fi
3548  ;;
3549esac
3550
3551dnl	Programs in suite
3552dnl	=================
3553
3554dnl	socket available
3555dnl	----------------
3556AC_MSG_CHECKING(availability of network functions)
3557if [[ "X$FOUND_SOCKET" = "Xyes" ]]
3558then
3559PRG_RES_NET='$(PRG_RES_NET)'
3560MAN_RES_NET='$(MAN_RES_NET)'
3561RES_RES_NET='$(RES_RES_NET)'
3562RES_RES_NET_EN='$(RES_RES_NET_EN)'
3563RES_RES_NET_DE='$(RES_RES_NET_DE)'
3564PRG_CLI_NET='$(PRG_CLI_NET)'
3565MAN_CLI_NET='$(MAN_CLI_NET)'
3566RES_CLI_NET='$(RES_CLI_NET)'
3567PRG_GUI_NET='$(PRG_GUI_NET)'
3568MAN_GUI_NET='$(MAN_GUI_NET)'
3569RES_GUI_NET='$(RES_GUI_NET)'
3570AC_MSG_RESULT(yes)
3571else
3572AC_MSG_RESULT(no)
3573fi
3574
3575dnl	socket available, target class posix
3576dnl	------------------------------------
3577AC_MSG_CHECKING(both network functions and POSIX)
3578if [[ "X$FOUND_SOCKET" = "Xyes" -a "X$TARGETCLASS" = "Xposix" ]]
3579then
3580PRG_CLI_NET_POSIX='$(PRG_CLI_NET_POSIX)'
3581MAN_CLI_NET_POSIX='$(MAN_CLI_NET_POSIX)'
3582RES_CLI_NET_POSIX='$(RES_CLI_NET_POSIX)'
3583AC_MSG_RESULT(yes)
3584else
3585AC_MSG_RESULT(no)
3586fi
3587
3588dnl	NetSNMP available
3589dnl	-----------------
3590AC_MSG_CHECKING(NetSNMP support)
3591if [[ "X$NETSNMP_LIBS" != "X" ]]
3592then
3593PRG_CLI_SNMP='$(PRG_CLI_SNMP)'
3594MAN_CLI_SNMP='$(MAN_CLI_SNMP)'
3595RES_CLI_SNMP='$(RES_CLI_SNMP)'
3596AC_MSG_RESULT(yes)
3597else
3598AC_MSG_RESULT(no)
3599fi
3600
3601dnl	MySQL or MariaDB available
3602dnl	--------------------------
3603AC_MSG_CHECKING(MySQL or MariaDB)
3604if [[ "X$MYSQLLIB" != "X" ]]
3605then
3606PRG_CLI_MYSQL='$(PRG_CLI_MYSQL)'
3607MAN_CLI_MYSQL='$(MAN_CLI_MYSQL)'
3608RES_CLI_MYSQL='$(RES_CLI_MYSQL)'
3609AC_MSG_RESULT(yes)
3610else
3611AC_MSG_RESULT(no)
3612fi
3613
3614dnl	OpenSSL available
3615dnl	-----------------
3616AC_MSG_CHECKING(OpenSSL)
3617if [[ "X$CRYPTO" != "X" ]]
3618then
3619PRG_CLI_SSL='$(PRG_CLI_SSL)'
3620MAN_CLI_SSL='$(MAN_CLI_SSL)'
3621RES_CLI_SSL='$(RES_CLI_SSL)'
3622PRG_GUI_SSL='$(PRG_GUI_SSL)'
3623MAN_GUI_SSL='$(MAN_GUI_SSL)'
3624RES_GUI_SSL='$(RES_GUI_SSL)'
3625AC_MSG_RESULT(yes)
3626else
3627AC_MSG_RESULT(no)
3628fi
3629
3630dnl	POSIX system
3631dnl	------------
3632MOD_DK4DMT=''
3633MOD_DKK3WREG=''
3634AC_MSG_CHECKING(target class POSIX)
3635if [[ "X$TARGETCLASS" = "Xposix" ]]
3636then
3637PRG_CLI_POSIX='$(PRG_CLI_POSIX)'
3638MAN_CLI_POSIX='$(MAN_CLI_POSIX)'
3639RES_CLI_POSIX='$(RES_CLI_POSIX)'
3640MOD_DK4DMT='src/libdk4c/dk4dmt.$(OBJEXT)'
3641AC_MSG_RESULT(yes)
3642else
3643AC_MSG_RESULT(no)
3644fi
3645
3646dnl	Windows system
3647dnl	--------------
3648AC_MSG_CHECKING(target class Windows)
3649if [[ "X$TARGETCLASS" = "Xwindows" ]]
3650then
3651PRG_CLI_WINDOWS='$(PRG_CLI_WINDOWS)'
3652MAN_CLI_WINDOWS='$(MAN_CLI_WINDOWS)'
3653RES_CLI_WINDOWS='$(RES_CLI_WINDOWS)'
3654PRG_GUI_WINDOWS='$(PRG_GUI_WINDOWS)'
3655MAN_GUI_WINDOWS='$(MAN_GUI_WINDOWS)'
3656RES_GUI_WINDOWS='$(RES_GUI_WINDOWS)'
3657MOD_DK3WREG='src/libdk3c/dk3wreg.$(OBJEXT)'
3658AC_MSG_RESULT(yes)
3659else
3660AC_MSG_RESULT(no)
3661fi
3662
3663if [[ "X$SUITE" = "Xauto" -a "X$FOUND_WX" = "Xyes" ]]
3664then
3665	SUITE='gui'
3666elif [[ "X$SUITE" = "Xauto" ]]
3667then
3668	SUITE='cli'
3669fi
3670
3671AC_MSG_CHECKING(components to install)
3672INSTALL_INDEP='i-ind-cli'
3673INSTALL_LIBS=''
3674LIBDK3WXOBJ=''
3675LIBDK4WXOBJ=''
3676if [[ "X$ENA_MAN" = "Xyes" ]]
3677then
3678	INSTALL_INDEP='i-ind-cli i-man-cli'
3679fi
3680case X$SUITE in
3681  Xrescue)
3682    BUILD_ARCH='$(PRG_RES)'
3683    INSTALL_INDEP='i-ind-res'
3684    INSTALL_PROGRAMS='i-prg-res'
3685    if [[ "X$ENA_MAN" = "Xyes" ]]
3686    then
3687      INSTALL_INDEP="$INSTALL_INDEP i-man-res"
3688    fi
3689    if [[ "X$ENA_PACKAGE" = "Xyes" -a "X$ENA_SHARED" = "Xyes" ]]
3690    then
3691      BUILD_ARCH='$(PRG_RES) $(LIB_SHARED_RES)'
3692      INSTALL_LIBS='i-lib-dyn-res'
3693    fi
3694  ;;
3695  Xcli)
3696    BUILD_ARCH='$(PRG_CLI)'
3697    INSTALL_INDEP='i-ind-cli'
3698    if [[ "X$ENA_MAN" = "Xyes" ]]
3699    then
3700      INSTALL_INDEP="$INSTALL_INDEP i-man-cli"
3701    fi
3702    if [[ "X$FOUND_SYSTEMD" = "Xyes" ]]
3703    then
3704      INSTALL_INDEP="$INSTALL_INDEP i-svc-sysd"
3705    else
3706      INSTALL_INDEP="$INSTALL_INDEP i-svc-init"
3707    fi
3708    INSTALL_PROGRAMS='i-prg-cli'
3709    if [[ "X$ENA_DEVEL" = "Xyes" -a "X$ENA_STATIC" = "Xyes" -a "X$ENA_SHARED" = "Xyes" ]]
3710    then
3711      BUILD_ARCH='$(PRG_CLI) $(LIB_STATIC_CLI) $(LIB_SHARED_CLI)'
3712      INSTALL_LIBS='i-lib-dyn-cli i-lib-stt-cli i-hdr-cli'
3713    elif [[ "X$ENA_DEVEL" = "Xyes" -a "X$ENA_SHARED" = "Xyes" ]]
3714    then
3715      BUILD_ARCH='$(PRG_CLI) $(LIB_SHARED_CLI)'
3716      INSTALL_LIBS='i-lib-dyn-cli i-hdr-cli'
3717    elif [[ "X$ENA_DEVEL" = "Xyes" -a "X$ENA_STATIC" = "Xyes" ]]
3718    then
3719      BUILD_ARCH='$(PRG_CLI) $(LIB_STATIC_CLI)'
3720      INSTALL_LIBS='i-lib-stt-cli i-hdr-cli'
3721    elif [[ "X$ENA_PACKAGE" = "Xyes" -a "X$ENA_SHARED" = "Xyes" ]]
3722    then
3723      BUILD_ARCH='$(PRG_CLI) $(LIB_SHARED_CLI)'
3724      INSTALL_LIBS='i-lib-dyn-cli'
3725    else
3726      BUILD_ARCH='$(PRG_CLI)'
3727    fi
3728    if [[ "X$TARGETCLASS" = "Xposix" -a "X$FOUND_SOCKET" = "Xyes" ]]
3729    then
3730      BUILD_ARCH="$BUILD_ARCH"' $(PRG_DAEMON_NET_POSIX)'
3731      INSTALL_PROGRAMS="$INSTALL_PROGRAMS i-prg-dae"
3732    fi
3733    if [[ "X$TARGETCLASS" = "Xposix" -a "X$FOUND_SOCKET" = "Xyes" -a "X$FOUND_NETSNMP" = "Xyes" ]]
3734    then
3735      BUILD_ARCH="$BUILD_ARCH"' $(PRG_FILTER_SNMP_POSIX)'
3736      INSTALL_PROGRAMS="$INSTALL_PROGRAMS i-prg-fil"
3737    fi
3738  ;;
3739  *)
3740    BUILD_ARCH='$(PRG_GUI)'
3741    INSTALL_INDEP='i-ind-gui'
3742    INSTALL_PROGRAMS='i-prg-gui'
3743    if [[ "X$ENA_MAN" = "Xyes" ]]
3744    then
3745      INSTALL_INDEP="$INSTALL_INDEP i-man-gui"
3746    fi
3747    if [[ "X$FOUND_SYSTEMD" = "Xyes" ]]
3748    then
3749      INSTALL_INDEP="$INSTALL_INDEP i-svc-sysd"
3750    else
3751      INSTALL_INDEP="$INSTALL_INDEP i-svc-init"
3752    fi
3753    if [[ "X$ENA_DEVEL" = "Xyes" -a "X$ENA_STATIC" = "Xyes" -a "X$ENA_SHARED" = "Xyes" ]]
3754    then
3755      BUILD_ARCH='$(PRG_GUI) $(LIB_STATIC_GUI) $(LIB_SHARED_GUI)'
3756      INSTALL_LIBS='i-lib-dyn-gui i-lib-stt-gui i-hdr-gui'
3757    elif [[ "X$ENA_DEVEL" = "Xyes" -a "X$ENA_SHARED" = "Xyes" ]]
3758    then
3759      BUILD_ARCH='$(PRG_GUI) $(LIB_SHARED_GUI)'
3760      INSTALL_LIBS='i-lib-dyn-gui i-hdr-gui'
3761    elif [[ "X$ENA_DEVEL" = "Xyes" -a "X$ENA_STATIC" = "Xyes" ]]
3762    then
3763      BUILD_ARCH='$(PRG_GUI) $(LIB_STATIC_GUI)'
3764      INSTALL_LIBS='i-lib-stt-gui i-hdr-gui'
3765    elif [[ "X$ENA_PACKAGE" = "Xyes" -a "X$ENA_SHARED" = "Xyes" ]]
3766    then
3767      BUILD_ARCH='$(PRG_GUI) $(LIB_SHARED_GUI)'
3768      INSTALL_LIBS='i-lib-dyn-gui'
3769    else
3770      BUILD_ARCH='$(PRG_GUI)'
3771    fi
3772    LIBDK3WXOBJ='$(LIBDK3WXOBJ)'
3773    LIBDK4WXOBJ='$(LIBDK4WXOBJ)'
3774    if [[ "X$TARGETCLASS" = "Xposix" -a "X$FOUND_SOCKET" = "Xyes" ]]
3775    then
3776      BUILD_ARCH="$BUILD_ARCH"' $(PRG_DAEMON_NET_POSIX)'
3777      INSTALL_PROGRAMS="$INSTALL_PROGRAMS i-prg-dae"
3778    fi
3779    if [[ "X$TARGETCLASS" = "Xposix" -a "X$FOUND_SOCKET" = "Xyes" -a "X$FOUND_NETSNMP" = "Xyes" ]]
3780    then
3781      BUILD_ARCH="$BUILD_ARCH"' $(PRG_FILTER_SNMP_POSIX)'
3782      INSTALL_PROGRAMS="$INSTALL_PROGRAMS i-prg-fil"
3783    fi
3784  ;;
3785esac
3786AC_MSG_RESULT(done)
3787
3788if [[ "X$ENA_DOCU" = "Xyes" ]]
3789then
3790	INSTALL_INDEP="$INSTALL_INDEP i-doc"
3791fi
3792
3793dnl	OpenSSL needs socket library on Windows with gcc
3794dnl	------------------------------------------------
3795case X$TARGETCLASS/X$ENA_PACKAGE/X$TOOLCHAIN in
3796	Xwindows/Xno/Xgcc)
3797		CRYPTO="$CRYPTO $SOCKLIB"
3798	;;
3799	Xwindows/Xno/Xclang)
3800		CRYPTO="$CRYPTO $SOCKLIB"
3801	;;
3802esac
3803
3804dnl	Objects and libraries per program
3805dnl	---------------------------------
3806
3807AC_MSG_CHECKING(default elements for programs and libraries)
3808DKCTLIBF='libdk3.a'
3809DKCTLIBS='libdk3.a $(CLILIB) $(BZLIB) $(ZLIB)'
3810ADDCTRLDLIBF=''
3811ADDCTRLDLIBS='$(CLILIB)'
3812DKDBTLIBF='libdk3.a'
3813DKDBTLIBS='libdk3.a $(CLILIB) $(BZLIB) $(ZLIB)'
3814ITADMINLIBF='libdk3.a'
3815ITADMINLIBS='libdk3.a $(MYSQLLIB) $(CLILIB) $(SOCKLIB) $(NSLLIB) $(BZLIB) $(ZLIB) $(RTLIB)'
3816FIG2LATLIBF='libdk3.a'
3817FIG2LATLIBS='libdk3.a $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
3818HTMLBOOKLIBF='libdk3.a'
3819HTMLBOOKLIBS='libdk3.a $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB)'
3820DK3INFOLIBF='libdk3.a'
3821DK3INFOLIBS='libdk3.a $(CLILIB) $(BZLIB) $(ZLIB)'
3822DKWTLIBF='libdk3.a'
3823DKWTLIBS='libdk3.a $(CLILIB) $(SOCKLIB) $(NSLLIB) $(BZLIB) $(ZLIB)'
3824WPRCLEANLIBF='libdk3.a'
3825WPRCLEANLIBS='libdk3.a $(CLILIB) $(BZLIB) $(ZLIB)'
3826DKWXWIZLIBF='libdk3.a'
3827DKWXWIZLIBS='libdk3.a $(CLILIB) $(BZLIB) $(ZLIB)'
3828DKWXPATHLIBF='libdk3.a'
3829DKWXPATHLIBS='libdk3.a $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB)'
3830WINPRINTLIBF='libdk3.a'
3831WINPRINTLIBS='libdk3.a $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB)'
3832CHSCRSZLIBF='libdk3.a'
3833CHSCRSZLIBS='libdk3.a $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB)'
3834WXDKCTLIBF='libdk3.a'
3835WXDKCTLIBS='libdk3.a $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB)'
3836WXIMGSZLIBF='libdk4.a'
3837WXIMGSZLIBS='libdk4.a $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB)'
3838WXDKCLOCKLIBF='libdk3.a'
3839WXDKCLOCKLIBS='libdk3.a $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB)'
3840WXDKHTBLIBF='libdk3.a'
3841WXDKHTBLIBS='libdk3.a $(WXLDFLAGS) $(GUILIB) $(CLILIB) $(BZLIB) $(ZLIB)'
3842PRINTQDILIBF='libdk3.a'
3843PRINTQDILIBS='libdk3.a $(CLILIB) $(BZLIB) $(ZLIB)'
3844PRINTQDALIBF='libdk3.a'
3845PRINTQDALIBS='libdk3.a $(CLILIB) $(BZLIB) $(ZLIB)'
3846
3847WXDKDRAWLIBF='libdk4.a libdk4maioxd.a libdk4wx.a'
3848WXDKDRAWLIBS='libdk4wx.a libdk4maioxd.a libdk4.a $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
3849WXBMPPLIBF='libdk4.a libdk4maioxd.a libdk4wx.a'
3850WXBMPPLIBS='libdk4wx.a libdk4maioxd.a libdk4.a $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
3851BMPPLIBF='libdk4.a'
3852BMPPLIBS='libdk4.a $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
3853PLPDFTEXLIBF='libdk4.a'
3854PLPDFTEXLIBS='libdk4.a $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
3855DKCATLIBF='libdk4.a'
3856DKCATLIBS='libdk4.a $(CLILIB) $(BZLIB) $(ZLIB)'
3857DKBLKSLIBF='libdk4.a'
3858DKBLKSLIBS='libdk4.a $(CLILIB) $(BZLIB) $(ZLIB)'
3859DKSQLSPLITLIBF='libdk4.a'
3860DKSQLSPLITLIBS='libdk4.a $(CLILIB) $(BZLIB) $(ZLIB)'
3861DKERADISKLIBF='libdk4.a'
3862DKERADISKLIBS='libdk4.a $(CLILIB) $(BZLIB) $(ZLIB)'
3863DKLSLIBF='libdk4.a'
3864DKLSLIBS='libdk4.a $(CRYPTO) $(CLILIB) $(BZLIB) $(ZLIB)'
3865DKSORTLIBF='libdk4.a'
3866DKSORTLIBS='libdk4.a $(CLILIB) $(BZLIB) $(ZLIB)'
3867DKLINESLIBF='libdk4.a'
3868DKLINESLIBS='libdk4.a $(CLILIB) $(BZLIB) $(ZLIB)'
3869DKFICLIBF='libdk4.a'
3870DKFICLIBS='libdk4.a $(CRYPTO) $(CLILIB) $(BZLIB) $(ZLIB)'
3871DKUIDLIBF='libdk4.a'
3872DKUIDLIBS='libdk4.a $(CLILIB) $(BZLIB) $(ZLIB)'
3873DKPWGENLIBF='libdk4.a'
3874DKPWGENLIBS='libdk4.a $(CRYPTO) $(CLILIB) $(BZLIB) $(ZLIB)'
3875DKRANDLIBF='libdk4.a'
3876DKRANDLIBS='libdk4.a $(CRYPTO) $(CLILIB) $(BZLIB) $(ZLIB)'
3877DKT2HLIBF='libdk4.a'
3878DKT2HLIBS='libdk4.a $(CLILIB) $(BZLIB) $(ZLIB)'
3879DKT2LLIBF='libdk4.a'
3880DKT2LLIBS='libdk4.a $(CLILIB) $(BZLIB) $(ZLIB)'
3881DKBIN2CLIBF='libdk4.a'
3882DKBIN2CLIBS='libdk4.a $(CLILIB) $(BZLIB) $(ZLIB)'
3883DKHEXLIBF='libdk4.a'
3884DKHEXLIBS='libdk4.a $(CLILIB) $(BZLIB) $(ZLIB)'
3885DKBMMLIBF='libdk4.a'
3886DKBMMLIBS='libdk4.a $(CLILIB) $(BZLIB) $(ZLIB)'
3887DKPWDLIBF='libdk4.a'
3888DKPWDLIBS='libdk4.a $(CLILIB) $(BZLIB) $(ZLIB)'
3889DKRECVLIBF='libdk4.a'
3890DKRECVLIBS='libdk4.a $(CLILIB) $(SOCKLIB) $(NSLLIB) $(BZLIB) $(ZLIB) -lm'
3891DKSENDLIBF='libdk4.a'
3892DKSENDLIBS='libdk4.a $(CLILIB) $(SOCKLIB) $(NSLLIB) $(BZLIB) $(ZLIB) -lm'
3893DKDBT2LIBF='libdk4.a'
3894DKDBT2LIBS='libdk4.a $(DBLIBSOCK) $(CLILIB) $(BZLIB) $(ZLIB)'
3895DK4INFOLIBF='libdk4.a'
3896DK4INFOLIBS='libdk4.a $(CLILIB) $(BZLIB) $(ZLIB)'
3897LPRNGCLLIBF='libdk4.a'
3898LPRNGCLLIBS='libdk4.a $(CLILIB) $(SOCKLIB) $(NSLLIB) $(BZLIB) $(ZLIB) -lm'
3899WXDKFCSLIBF='libdk4.a libdk4wx.a'
3900WXDKFCSLIBS='libdk4wx.a libdk4.a $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CRYPTO) $(CLILIB) $(BZLIB) $(ZLIB)'
3901WXPQDICLIBF='libdk4.a libdk4wx.a'
3902WXPQDICLIBS='libdk4wx.a libdk4.a $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB)'
3903PJSNMPLIBF='libdk4.a'
3904PJSNMPLIBS='libdk4.a $(CLILIB) $(NETSNMP_LIBS) $(SOCKLIB) $(NSLLIB) $(BZLIB) $(ZLIB)'
3905PRMONSNMPLIBF='libdk4.a'
3906PRMONSNMPLIBS='libdk4.a $(CLILIB) $(NETSNMP_LIBS) $(SOCKLIB) $(NSLLIB) $(BZLIB) $(ZLIB)'
3907PRINTQDLIBF='libdk4.a'
3908PRINTQDLIBS='libdk4.a $(DBLIB) $(SOCKLIB) $(NSLLIB)'
3909PRINTQDCLIBF='libdk4.a'
3910PRINTQDCLIBS='libdk4.a $(CLILIB) $(SOCKLIB) $(NSLLIB) $(BZLIB) $(ZLIB)'
3911RSHDOWNLIBF='libdk4.a'
3912RSHDOWNLIBS='libdk4.a $(CLILIB) $(SOCKLIB) $(NSLLIB) $(BZLIB) $(ZLIB)'
3913WXD2LATLIBF='libdk4.a'
3914WXD2LATLIBS='libdk4.a $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
3915AC_MSG_RESULT(done)
3916
3917AC_MSG_CHECKING(elements in programs and libraries)
3918case X$ENA_PACKAGE/X$ENA_SOSO in
3919  Xyes/Xyes)
3920    AC_MSG_RESULT([linking so with so])
3921    DKCTLIBF='libdk3c.so'
3922    DKCTLIBS='-ldk3c $(CLILIB)'
3923    ADDCTRLDLIBF=''
3924    ADDCTRLDLIBS='$(CLILIB)'
3925    DKDBTLIBF=''
3926    DKDBTLIBS=''
3927    ITADMINLIBF='libdk3c.so libdk3of.so'
3928    ITADMINLIBS='-ldk3of -ldk3c $(MYSQLLIB) $(CLILIB) $(BZLIB) $(ZLIB)'
3929    FIG2LATLIBF='libdk3c.so libdk3bif.so libdk3bmeps.so libdk3fig.so'
3930    FIG2LATLIBS='-ldk3fig -ldk3bmeps -ldk3bif -ldk3c $(CLILIB) -lm'
3931    HTMLBOOKLIBF='libdk3c.so libdk3bif.so'
3932    HTMLBOOKLIBS='-ldk3bif -ldk3c $(CLILIB)'
3933    DK3INFOLIBF='libdk3c.so'
3934    DK3INFOLIBS='-ldk3c $(CLILIB)'
3935    DKWXWIZLIBF='libdk3c.so'
3936    DKWXWIZLIBS='-ldk3c $(CLILIB)'
3937    WXDKCTLIBF='libdk3c.so libdk3wx.so'
3938    WXDKCTLIBS='-ldk3wx -ldk3c $(WXLDFLAGS) $(GUILIB) $(CLILIB)'
3939    WXIMGSZLIBF='libdk4base.so libdk4maio8d.so libdk4maiowd.so libdk4maiodd.so libdk4ma.so libdk4c.so libdk4bif.so libdk4maioxd.so libdk4wx.so'
3940    WXIMGSZLIBS='-ldk4wx -ldk4maioxd -ldk4bif -ldk4c -ldk4ma -ldk4maiodd -ldk4maiowd -ldk4maio8d -ldk4base $(WXLDFLAGS) $(GUILIB) $(CLILIB)'
3941    WXDKCLOCKLIBF='libdk3c.so libdk3wx.so'
3942    WXDKCLOCKLIBS='-ldk3wx -ldk3c $(WXLDFLAGS) $(GUILIB) $(CLILIB)'
3943    WXDKHTBLIBF='libdk3c.so libdk3wx.so'
3944    WXDKHTBLIBS='-ldk3wx -ldk3c $(WXLDFLAGS) $(GUILIB) $(CLILIB)'
3945    PRINTQDILIBF=''
3946    PRINTQDILIBS=''
3947    PRINTQDALIBF=''
3948    PRINTQDALIBS=''
3949    WXDKDRAWLIBF='libdk4base.so libdk4maio8d.so libdk4maio8h.so libdk4maiowd.so libdk4maiodd.so libdk4ma.so libdk4c.so libdk4bif.so libdk4lat.so libdk4gra.so libdk4wx.so'
3950    WXDKDRAWLIBS='-ldk4wx -ldk4gra -ldk4lat -ldk4bif -ldk4c -ldk4ma -ldk4maiodd -ldk4maiowd -ldk4maio8h -ldk4maio8d -ldk4base $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
3951    WXBMPPLIBF='libdk4base.so libdk4maio8h.so libdk4c.so libdk4bif.so libdk4gra.so libdk4app.so libdk4graa.so libdk4maioxd.so libdk4wx.so'
3952    WXBMPPLIBS='-ldk4wx -ldk4maioxd -ldk4graa -ldk4app -ldk4gra -ldk4bif -ldk4c -ldk4maio8h -ldk4base $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
3953    DKCATLIBF='libdk4base.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4app.so'
3954    DKCATLIBS='-ldk4app -ldk4c -ldk4maiodd -ldk4maio8d -ldk4base $(CLILIB)'
3955    DKBLKSLIBF='libdk4base.so libdk4app.so'
3956    DKBLKSLIBS='-ldk4app -ldk4base $(CLILIB) $(BZLIB) $(ZLIB)'
3957    DKSQLSPLITLIBF='libdk4app.so'
3958    DKSQLSPLITLIBS='-ldk4app $(CLILIB) $(BZLIB) $(ZLIB)'
3959    DKERADISKLIBF='libdk4base.so libdk4app.so'
3960    DKERADISKLIBS='-ldk4app -ldk4base $(CLILIB) $(BZLIB) $(ZLIB)'
3961    DKLSLIBF='libdk4base.so libdk4maiodd.so libdk4maiodh.so libdk4ma.so libdk4c.so libdk4mdrnd.so libdk4app.so'
3962    DKLSLIBS='-ldk4app -ldk4mdrnd -ldk4c -ldk4maiodh -ldk4maiodd -ldk4ma -ldk4base $(CLILIB)'
3963    BMPPLIBF='libdk4base.so libdk4maio8h.so libdk4maio8d.so libdk4c.so libdk4bif.so libdk4gra.so libdk4app.so libdk4bifa.so libdk4graa.so'
3964    BMPPLIBS='-ldk4graa -ldk4bifa -ldk4app -ldk4gra -ldk4bif -ldk4c -ldk4maio8d -ldk4maio8h -ldk4base $(CLILIB)'
3965    PLPDFTEXLIBF='libdk4base.so libdk4maio8d.so libdk4c.so libdk4lat.so libdk4gra.so libdk4pppt.so libdk4app.so libdk4lata.so libdk4graa.so'
3966    PLPDFTEXLIBS='-ldk4graa -ldk4lata -ldk4app -ldk4pppt -ldk4gra -ldk4lat -ldk4c -ldk4maio8d -ldk4base $(IMGLIBS) $(CLILIB)'
3967    DKSORTLIBF='libdk4base.so libdk4maiodd.so libdk4maiodh.so libdk4c.so libdk4app.so'
3968    DKSORTLIBS='-ldk4app -ldk4c -ldk4maiodd -ldk4maiodh -ldk4base $(CLILIB)'
3969    DKLINESLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4app.so'
3970    DKLINESLIBS='-ldk4app -ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(CLILIB)'
3971    DKFICLIBF='libdk4base.so libdk4ma.so libdk4maiodd.so libdk4c.so libdk4mdrnd.so libdk4app.so'
3972    DKFICLIBS='-ldk4app -ldk4mdrnd -ldk4c -ldk4maiodd -ldk4ma -ldk4base $(CLILIB)'
3973    DKUIDLIBF='libdk4base.so libdk4ma.so libdk4maiodd.so libdk4c.so libdk4app.so'
3974    DKUIDLIBS='-ldk4app -ldk4c -ldk4maiodd -ldk4ma -ldk4base $(CLILIB)'
3975    DKPWGENLIBF='libdk4base.so libdk4ma.so libdk4maiodd.so libdk4c.so libdk4mdrnd.so libdk4app.so'
3976    DKPWGENLIBS='-ldk4app -ldk4mdrnd -ldk4c -ldk4maiodd -ldk4ma -ldk4base $(CRYPTO) $(CLILIB)'
3977    DKRANDLIBF='libdk4base.so libdk4ma.so libdk4maiodd.so libdk4c.so libdk4mdrnd.so libdk4app.so'
3978    DKRANDLIBS='-ldk4app -ldk4mdrnd -ldk4c -ldk4maiodd -ldk4ma -ldk4base $(CRYPTO) $(CLILIB)'
3979    DKT2HLIBF='libdk4base.so libdk4maio8h.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4app.so'
3980    DKT2HLIBS='-ldk4app -ldk4c -ldk4maiodd -ldk4maio8d -ldk4maio8h -ldk4base $(CLILIB)'
3981    DKT2LLIBF='libdk4base.so libdk4maiodd.so libdk4maiodh.so libdk4c.so libdk4lat.so libdk4app.so libdk4lata.so'
3982    DKT2LLIBS='-ldk4lata -ldk4app -ldk4lat -ldk4c -ldk4maiodh -ldk4maiodd -ldk4base $(CLILIB)'
3983    DKBIN2CLIBF='libdk4base.so libdk4c.so libdk4app.so'
3984    DKBIN2CLIBS='-ldk4app -ldk4c -ldk4base $(CLILIB)'
3985    DKHEXLIBF='libdk4maiodh.so libdk4c.so libdk4app.so'
3986    DKHEXLIBS='-ldk4app -ldk4c -ldk4maiodh $(CLILIB)'
3987    DKBMMLIBF='libdk4base.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4app.so'
3988    DKBMMLIBS='-ldk4app -ldk4c -ldk4maiodd -ldk4maio8d -ldk4base $(CLILIB)'
3989    DKPWDLIBF='libdk4base.so libdk4c.so libdk4app.so'
3990    DKPWDLIBS='-ldk4app -ldk4c -ldk4base $(CLILIB)'
3991    DKRECVLIBF='libdk4base.so libdk4ma.so libdk4maiodd.so libdk4c.so libdk4sock.so libdk4app.so libdk4socka.so'
3992    DKRECVLIBS='-ldk4socka -ldk4app -ldk4sock -ldk4c -ldk4maiodd -ldk4ma -ldk4base $(CLILIB) -lm'
3993    DKSENDLIBF='libdk4base.so libdk4ma.so libdk4maiodh.so libdk4maiodd.so libdk4c.so libdk4sock.so libdk4app.so libdk4socka.so'
3994    DKSENDLIBS='-ldk4socka -ldk4app -ldk4sock -ldk4c -ldk4maiodd -ldk4maiodh -ldk4ma -ldk4base $(SOCKLIB) $(CLILIB) -lm'
3995    DKDBT2LIBF='libdk4base.so libdk4ma.so libdk4maiodd.so libdk4c.so libdk4dbi.so libdk4app.so libdk4dbia.so'
3996    DKDBT2LIBS='-ldk4dbia -ldk4app -ldk4dbi -ldk4c -ldk4maiodd -ldk4ma -ldk4base $(CLILIB)'
3997    DK4INFOLIBF='libdk4base.so libdk4maiodd.so libdk4c.so libdk4app.so'
3998    DK4INFOLIBS='-ldk4app -ldk4c -ldk4maiodd -ldk4base $(CLILIB)'
3999    LPRNGCLLIBF='libdk4base.so libdk4maiodh.so libdk4c.so libdk4sock.so libdk4app.so libdk4socka.so'
4000    LPRNGCLLIBS='-ldk4socka -ldk4app -ldk4sock -ldk4c -ldk4maiodh -ldk4base $(SOCKLIB) $(CLILIB) -lm'
4001    WXDKFCSLIBF='libdk4ma.so libdk4maiodd.so libdk4c.so libdk4wx.so'
4002    WXDKFCSLIBS='-ldk4wx -ldk4c -ldk4maiodd -ldk4ma $(WXLDFLAGS) $(CRYPTO) $(GUILIB) $(CLILIB)'
4003    WXPQDICLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiowd.so libdk4c.so libdk4sock.so libdk4wx.so'
4004    WXPQDICLIBS='-ldk4wx -ldk4sock -ldk4c -ldk4maiowd -ldk4maio8d -ldk4ma -ldk4base $(WXLDFLAGS) $(SOCKLIB) $(GUILIB) $(CLILIB)'
4005    PJSNMPLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maio8h.so libdk4c.so libdk4sock.so'
4006    PJSNMPLIBS='-ldk4sock -ldk4c -ldk4maio8d -ldk4maio8h -ldk4ma -ldk4base $(NETSNMP_LIBS) $(SOCKLIB) $(NSLLIB) $(CLILIB)'
4007    PRMONSNMPLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maio8h.so libdk4c.so libdk4sock.so'
4008    PRMONSNMPLIBS='-ldk4sock -ldk4c -ldk4maio8d -ldk4maio8h -ldk4ma -ldk4base $(NETSNMP_LIBS) $(SOCKLIB) $(NSLLIB) $(CLILIB)'
4009    PRINTQDLIBF='libdk4base.so libdk4maio8d.so libdk4c.so libdk4dbi.so libdk4sock.so'
4010    PRINTQDLIBS='-ldk4sock -ldk4dbi -ldk4c -ldk4maio8d -ldk4base $(SOCKLIB) $(NSLLIB) $(CLILIB)'
4011    PRINTQDCLIBF='libdk4base.so libdk4maio8d.so libdk4c.so libdk4sock.so'
4012    PRINTQDCLIBS='-ldk4sock -ldk4c -ldk4maio8d -ldk4base $(SOCKLIB) $(NSLLIB) $(CLILIB)'
4013    RSHDOWNLIBF='libdk4base.so libdk4maio8d.so libdk4c.so libdk4sock.so'
4014    RSHDOWNLIBS='-ldk4sock -ldk4c -ldk4maio8d -ldk4base $(SOCKLIB) $(NSLLIB) $(CLILIB)'
4015    WXD2LATLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4lat.so libdk4bif.so libdk4gra.so libdk4pppt.so libdk4app.so libdk4lata.so libdk4bifa.so libdk4graa.so'
4016    WXD2LATLIBS='-ldk4graa -ldk4lata -ldk4bifa -ldk4app -ldk4pppt -ldk4gra -ldk4bif -ldk4lat -ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(CLILIB) -lm'
4017  ;;
4018  Xyes/Xno)
4019    AC_MSG_RESULT([linking programs with all required libs])
4020    DKCTLIBF='libdk3c.so'
4021    DKCTLIBS='-ldk3c $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4022    ADDCTRLDLIBF=''
4023    ADDCTRLDLIBS='$(CLILIB)'
4024    DKDBTLIBF='libdk3c.so libdk3dbi.so'
4025    DKDBTLIBS='-ldk3dbi -ldk3c $(CLILIB) $(BZLIB) $(ZLIB)'
4026    ITADMINLIBF='libdk3c.so libdk3of.so'
4027    ITADMINLIBS='-ldk3of -ldk3c $(MYSQLLIB) $(CLILIB) $(SOCKLIB) $(NSLLIB) $(BZLIB) $(ZLIB) -lm'
4028    FIG2LATLIBF='libdk3c.so libdk3bif.so libdk3of.so libdk3bmeps.so libdk3fig.so'
4029    FIG2LATLIBS='-ldk3fig -ldk3bmeps -ldk3of -ldk3bif -ldk3c $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4030    HTMLBOOKLIBF='libdk3c.so libdk3bif.so libdk3of.so libdk3bmeps.so'
4031    HTMLBOOKLIBS='-ldk3bmeps -ldk3of -ldk3bif -ldk3c $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB)'
4032    DK3INFOLIBF='libdk3c.so'
4033    DK3INFOLIBS='-ldk3c $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4034    DKWXWIZLIBF='libdk3c.so'
4035    DKWXWIZLIBS='-ldk3c $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4036    WXDKCTLIBF='libdk3c.so libdk3wx.so'
4037    WXDKCTLIBS='-ldk3wx -ldk3c $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB)'
4038    WXIMGSZLIBF='libdk4base.so libdk4maio8d.so libdk4maiowd.so libdk4maiodd.so libdk4ma.so libdk4c.so libdk4bif.so libdk4maioxd.so libdk4wx.so'
4039    WXIMGSZLIBS='-ldk4wx -ldk4maioxd -ldk4bif -ldk4c -ldk4ma -ldk4maiodd -ldk4maiowd -ldk4maio8d -ldk4base $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB)'
4040    WXDKCLOCKLIBF='libdk3c.so libdk3wx.so'
4041    WXDKCLOCKLIBS='-ldk3wx -ldk3c $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB)'
4042    WXDKHTBLIBF='libdk3c.so libdk3wx.so'
4043    WXDKHTBLIBS='-ldk3wx -ldk3c $(WXLDFLAGS) $(GUILIB) $(CLILIB) $(BZLIB) $(ZLIB)'
4044    PRINTQDILIBF='libdk3c.so libdk3dbi.so'
4045    PRINTQDILIBS='-ldk3dbi -ldk3c $(CLILIB) $(BZLIB) $(ZLIB)'
4046    PRINTQDALIBF='libdk3c.so'
4047    PRINTQDALIBS='-ldk3c $(CLILIB) $(BZLIB) $(ZLIB)'
4048    WXDKDRAWLIBF='libdk4base.so libdk4maio8d.so libdk4maio8h.so libdk4maiowd.so libdk4maiodd.so libdk4ma.so libdk4c.so libdk4bif.so libdk4lat.so libdk4gra.so libdk4wx.so'
4049    WXDKDRAWLIBS='-ldk4wx -ldk4gra -ldk4lat -ldk4bif -ldk4c -ldk4ma -ldk4maiodd -ldk4maiowd -ldk4maio8h -ldk4maio8d -ldk4base $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4050    WXBMPPLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maio8h.so libdk4maiowd.so libdk4maiowh.so libdk4maiodd.so libdk4maiodh.so libdk4bif.so libdk4lat.so libdk4gra.so libdk4c.so libdk4app.so libdk4bifa.so libdk4graa.so libdk4wx.so libdk4maioxd.so'
4051    WXBMPPLIBS='-ldk4maioxd -ldk4wx -ldk4graa -ldk4bifa -ldk4app -ldk4c -ldk4gra -ldk4lat -ldk4bif -ldk4maiodh -ldk4maiodd -ldk4maiowh -ldk4maiowd -ldk4maio8h -ldk4maio8d -ldk4ma -ldk4base $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4052    BMPPLIBF='libdk4base.so libdk4ma.so libdk4maio8h.so libdk4maio8d.so libdk4maiowh.so libdk4maiowd.so libdk4maiodh.so libdk4maiodd.so libdk4c.so libdk4lat.so libdk4bif.so libdk4gra.so libdk4app.so libdk4lata.so libdk4bifa.so libdk4graa.so'
4053    BMPPLIBS='-ldk4graa -ldk4bifa -ldk4lata -ldk4app -ldk4gra -ldk4bif -ldk4lat -ldk4c -ldk4maiodh -ldk4maiodd -ldk4maiowh -ldk4maiowd -ldk4maio8h -ldk4maio8d -ldk4ma -ldk4base $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4054    PLPDFTEXLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiowd.so libdk4maiodd.so libdk4maio8h.so libdk4maiowh.so libdk4maiodh.so libdk4c.so libdk4lat.so libdk4bif.so libdk4gra.so libdk4pppt.so libdk4app.so libdk4bifa.so libdk4lata.so libdk4graa.so'
4055    PLPDFTEXLIBS='-ldk4graa -ldk4lata -ldk4bifa -ldk4app -ldk4pppt -ldk4gra -ldk4bif -ldk4lat -ldk4c -ldk4maiodd -ldk4maiodh -ldk4maiowd -ldk4maiowh -ldk4maio8d -ldk4maio8h -ldk4ma -ldk4base $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4056    DKCATLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4app.so'
4057    DKCATLIBS='-ldk4app -ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4058    DKBLKSLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4app.so'
4059    DKBLKSLIBS='-ldk4app -ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4060    DKSQLSPLITLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4app.so'
4061    DKSQLSPLITLIBS='-ldk4app -ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4062    DKERADISKLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4app.so'
4063    DKERADISKLIBS='-ldk4app -ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4064    DKLSLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maio8h.so libdk4maiodd.so libdk4maiodh.so libdk4c.so libdk4app.so libdk4mdrnd.so'
4065    DKLSLIBS='-ldk4app -ldk4mdrnd -ldk4c -ldk4maiodh -ldk4maiodd -ldk4maio8h -ldk4maio8d -ldk4ma -ldk4base $(CRYPTO) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4066    DKSORTLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maio8h.so libdk4maiodd.so libdk4maiodh.so libdk4c.so libdk4app.so'
4067    DKSORTLIBS='-ldk4app -ldk4c -ldk4maiodh -ldk4maiodd -ldk4maio8h -ldk4maio8d -ldk4ma -ldk4base $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4068    DKLINESLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maio8h.so libdk4maiodd.so libdk4maiodh.so libdk4ma.so libdk4c.so libdk4app.so'
4069    DKLINESLIBS='-ldk4app -ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4070    DKFICLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4app.so libdk4mdrnd.so'
4071    DKFICLIBS='-ldk4app -ldk4mdrnd -ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(CRYPTO) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4072    DKUIDLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4app.so'
4073    DKUIDLIBS='-ldk4app -ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4074    DKPWGENLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4app.so libdk4mdrnd.so'
4075    DKPWGENLIBS='-ldk4app -ldk4mdrnd -ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(CRYPTO) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4076    DKRANDLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4app.so libdk4mdrnd.so'
4077    DKRANDLIBS='-ldk4app -ldk4mdrnd -ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(CRYPTO) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4078    DKT2HLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maio8h.so libdk4maiodd.so libdk4c.so libdk4app.so'
4079    DKT2HLIBS='-ldk4app -ldk4c -ldk4maiodd -ldk4maio8h -ldk4maio8d -ldk4ma -ldk4base $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4080    DKT2LLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maio8h.so libdk4maiodd.so libdk4maiodh.so libdk4c.so libdk4lat.so libdk4app.so libdk4lata.so'
4081    DKT2LLIBS='-ldk4lata -ldk4app -ldk4lat -ldk4c -ldk4maiodh -ldk4maiodd -ldk4maio8h -ldk4maio8d -ldk4ma -ldk4base $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4082    DKBIN2CLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maio8h.so libdk4maiodd.so libdk4c.so libdk4app.so'
4083    DKBIN2CLIBS='-ldk4app -ldk4c -ldk4maiodd -ldk4maio8h -ldk4maio8d -ldk4ma -ldk4base $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4084    DKHEXLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maio8h.so libdk4maiodd.so libdk4maiodh.so libdk4c.so libdk4app.so'
4085    DKHEXLIBS='-ldk4app -ldk4c -ldk4maiodh -ldk4maiodd -ldk4maio8h -ldk4maio8d -ldk4ma -ldk4base $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4086    DKBMMLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4app.so'
4087    DKBMMLIBS='-ldk4app -ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4088    DKPWDLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4app.so'
4089    DKPWDLIBS='-ldk4app -ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4090    DKRECVLIBF='libdk4base.so libdk4c.so libdk4sock.so libdk4app.so libdk4socka.so libdk4maio8d.so libdk4maiodd.so libdk4maio8h.so libdk4maiowh.so libdk4maiodh.so libdk4ma.so'
4091    DKRECVLIBS='-ldk4socka -ldk4app -ldk4sock -ldk4c -ldk4maiodh -ldk4maiowh -ldk4maio8h -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(CLILIB) $(SOCKLIB) $(NSLLIB) $(BZLIB) $(ZLIB) -lm'
4092    DKSENDLIBF='libdk4base.so libdk4c.so libdk4sock.so libdk4app.so libdk4socka.so libdk4maio8d.so libdk4maiowd.so libdk4maiodd.so libdk4ma.so libdk4maiodh.so libdk4maiowh.so libdk4maio8h.so'
4093    DKSENDLIBS='-ldk4socka -ldk4app -ldk4sock -ldk4c -ldk4maiodd -ldk4maiowd -ldk4maio8d -ldk4maiodh -ldk4maiowh -ldk4maio8h -ldk4ma -ldk4base $(CLILIB) $(SOCKLIB) $(NSLLIB) $(BZLIB) $(ZLIB) -lm'
4094    DKDBT2LIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4dbi.so libdk4app.so libdk4dbia.so'
4095    DKDBT2LIBS='-ldk4dbia -ldk4app -ldk4dbi -ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(DBLIBSOCK) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4096    DK4INFOLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4app.so'
4097    DK4INFOLIBS='-ldk4app -ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4098    LPRNGCLLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maio8h.so libdk4maiowd.so libdk4maiowh.so libdk4maiodd.so libdk4maiodh.so libdk4c.so libdk4sock.so libdk4mdrnd.so libdk4app.so libdk4socka.so'
4099    LPRNGCLLIBS='-ldk4socka -ldk4app -ldk4sock -ldk4c -ldk4maiodd -ldk4maiowd -ldk4maio8d -ldk4maiodh -ldk4maiowh -ldk4maio8h -ldk4ma -ldk4base $(SOCKLIB) $(NSLLIB) $(BZLIB) $(ZLIB) -lm'
4100    WXDKFCSLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maio8h.so libdk4maiowd.so libdk4maiowh.so libdk4maiodd.so libdk4maiodh.so libdk4c.so libdk4mdrnd.so libdk4sock.so libdk4app.so libdk4socka.so libdk4wx.so'
4101    WXDKFCSLIBS='-ldk4wx -ldk4socka -ldk4app -ldk4sock -ldk4mdrnd -ldk4c -ldk4maiodd -ldk4maiodh -ldk4maiowd -ldk4maiowh -ldk4maio8d -ldk4maio8h -ldk4ma -ldk4base $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CRYPTO) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4102    WXPQDICLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maio8h.so libdk4maiowd.so libdk4maiowh.so libdk4maiodd.so libdk4maiodh.so libdk4c.so libdk4sock.so libdk4app.so libdk4socka.so libdk4wx.so'
4103    WXPQDICLIBS='-ldk4wx -ldk4socka -ldk4app -ldk4sock -ldk4c -ldk4maiodd -ldk4maiodh -ldk4maiowd -ldk4maiowh -ldk4maio8d -ldk4maio8h -ldk4ma -ldk4base $(WXLDFLAGS) $(GUILIB) $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4104    PJSNMPLIBF='libdk4base.so libdk4maio8h.so libdk4maio8d.so libdk4maiodd.so libdk4maiodh.so libdk4ma.so libdk4c.so libdk4sock.so libdk4app.so libdk4socka.so'
4105    PJSNMPLIBS='-ldk4socka -ldk4app -ldk4sock -ldk4c -ldk4maiodh -ldk4maiodd -ldk4maio8h -ldk4maio8d -ldk4ma -ldk4base $(NETSNMP_LIBS) $(SOCKLIB) $(NSLLIB) $(BZLIB) $(ZLIB) -lm'
4106    PRMONSNMPLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maio8h.so libdk4c.so libdk4maiodd.so libdk4maiodh.so libdk4sock.so libdk4app.so libdk4socka.so'
4107    PRMONSNMPLIBS='-ldk4socka -ldk4app -ldk4sock -ldk4c -ldk4maiodh -ldk4maiodd -ldk4maio8h -ldk4maio8d -ldk4ma -ldk4base $(NETSNMP_LIBS) $(SOCKLIB) $(NSLLIB) $(BZLIB) $(ZLIB) -lm'
4108    PRINTQDLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4dbi.so libdk4sock.so'
4109    PRINTQDLIBS='-ldk4sock -ldk4dbi -ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(DBLIB) $(SOCKLIB) $(NSLLIB) $(BZLIB) $(ZLIB) -lm'
4110    PRINTQDCLIBF='libdk4base.so libdk4ma.so libdk4maio8h.so libdk4maio8d.so libdk4maiodh.so libdk4maiodd.so libdk4c.so libdk4sock.so libdk4app.so libdk4socka.so'
4111    PRINTQDCLIBS='-ldk4socka -ldk4app -ldk4sock -ldk4c -ldk4maiodd -ldk4maiodh -ldk4maio8d -ldk4maio8h -ldk4ma -ldk4base $(SOCKLIB) $(NSLLIB) $(BZLIB) $(ZLIB) -lm'
4112    RSHDOWNLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiodd.so libdk4c.so libdk4sock.so'
4113    RSHDOWNLIBS='-ldk4sock -ldk4c -ldk4maiodd -ldk4maio8d -ldk4ma -ldk4base $(SOCKLIB) $(NSLLIB) $(BZLIB) $(ZLIB) -lm'
4114    WXD2LATLIBF='libdk4base.so libdk4ma.so libdk4maio8d.so libdk4maiowd.so libdk4maiodd.so libdk4maio8h.so libdk4maiowh.so libdk4maiodh.so libdk4c.so libdk4lat.so libdk4bif.so libdk4gra.so libdk4pppt.so libdk4app.so libdk4bifa.so libdk4lata.so libdk4graa.so'
4115    WXD2LATLIBS='-ldk4graa -ldk4lata -ldk4bifa -ldk4app -ldk4pppt -ldk4gra -ldk4bif -ldk4lat -ldk4c -ldk4maiodd -ldk4maiodh -ldk4maiowd -ldk4maiowh -ldk4maio8d -ldk4maio8h -ldk4ma -ldk4base $(IMGLIBS) $(CLILIB) $(BZLIB) $(ZLIB) -lm'
4116  ;;
4117  *)
4118    AC_MSG_RESULT(defaults)
4119  ;;
4120esac
4121
4122if [[ "X$TOOLCHAIN" = "Xgcc" -o "X$TOOLCHAIN" = "Xclang" -o "X$TOOLCHAIN" = "msvc" ]]
4123then
4124	case X$TARGETCLASS in
4125		Xwindows)
4126			ADDCTRLDRES='src/addctrld/addctrldres.$(RESEXT)'
4127			BMPPRES='src/bmpp/bmppres.$(RESEXT)'
4128			DK3INFORES='src/dk3info/dk3infores.$(RESEXT)'
4129			DK4INFORES='src/dk4info/dk4infores.$(RESEXT)'
4130			DKBIN2CRES='src/dk-bin2c/dk-bin2cres.$(RESEXT)'
4131			DKBLKSRES='src/dk-blks/dk-blksres.$(RESEXT)'
4132			DKBMMRES='src/dk-bmm/dk-bmmres.$(RESEXT)'
4133			DKCATRES='src/dk-cat/dk-catres.$(RESEXT)'
4134			DKCTRES='src/dkct/dkctres.$(RESEXT)'
4135			DKDB2TRES='src/dk-db2t/dk-db2tres.$(RESEXT)'
4136			DKDBCORES='src/dk-dbco/dk-dbcores.$(RESEXT)'
4137			DKDBTRES='dkdbtres.$(RESEXT)'
4138			DKERADISKRES='src/dk-eradisk/dk-eradiskres.$(RESEXT)'
4139			DKFICRES='src/dk-fic/dk-ficres.$(RESEXT)'
4140			DKHEXRES='src/dk-hex/dk-hexres.$(RESEXT)'
4141			DKLINESRES='src/dk-lines/dk-linesres.$(RESEXT)'
4142			DKLSRES='src/dk-ls/dk-lsres.$(RESEXT)'
4143			DKPWDRES='src/dk-pwd/dk-pwdres.$(RESEXT)'
4144			DKPWGENRES='src/dk-pwgen/dk-pwgenres.$(RESEXT)'
4145			DKRANDRES='src/dk-rand/dk-randres.$(RESEXT)'
4146			DKRECVRES='src/dk-recv/dk-recvres.$(RESEXT)'
4147			DKSENDRES='src/dk-send/dk-sendres.$(RESEXT)'
4148			DKSORTRES='src/dk-sort/dk-sortres.$(RESEXT)'
4149			DKSQLSPLITRES='src/dk-sqlsplit/dk-sqlsplitres.$(RESEXT)'
4150			DKT2DBRES='src/dk-t2db/dk-t2dbres.$(RESEXT)'
4151			DKT2HRES='src/dk-t2h/dk-t2hres.$(RESEXT)'
4152			DKT2LRES='src/dk-t2l/dk-t2lres.$(RESEXT)'
4153			DKWTADMRES='src/dkwt/dkwtadmres.$(RESEXT)'
4154			DKWTRES='dkwtres.$(RESEXT)'
4155			DKWXPATHRES='src/dkwxpath/dkwxpathres.$(RESEXT)'
4156			DKWXWIZRES='src/dkwxwiz/dkwxwizres.$(RESEXT)'
4157			FIG2LATRES='src/fig2lat/fig2latres.$(RESEXT)'
4158			HTMLBOOKRES='src/htmlbook/htmlbookres.$(RESEXT)'
4159			ITADMINRES='src/itadmin/itadminres.$(RESEXT)'
4160			LPRNGCLRES='src/lprngcl/lprngclres.$(RESEXT)'
4161			PLPDFTEXRES='src/plpdftex/plpdftexres.$(RESEXT)'
4162			WINPRINTRES='src/winprint/winprintres.$(RESEXT)'
4163			WPRCLEANRES='src/wprclean/wprcleanres.$(RESEXT)'
4164			WXBMPPRES='src/wxbmpp/wxbmppres.$(RESEXT)'
4165			WXDKCLOCKRES='src/wxdkclock/wxdkclockres.$(RESEXT)'
4166			WXDKCTRES='src/dkct/wxdkctres.$(RESEXT)'
4167			WXDKFCSRES='src/wxdkfcs/wxdkfcsres.$(RESEXT)'
4168			WXDKHTBRES='src/wxdkhtb/wxdkhtbres.$(RESEXT)'
4169			WXDKSCRSZRES='src/ChangeScreenSize/wxdkscrszres.$(RESEXT)'
4170			WXIMGSZRES='src/wximgszres/wximgszres.$(RESEXT)'
4171			WXPQDICRES='src/wxpqdic/wxpqdicres.$(RESEXT)'
4172			WXD2LATRES='src/wxd2lat/wxd2latres.$(RESEXT)'
4173		;;
4174	esac
4175fi
4176
4177AC_MSG_CHECKING(options for Windows)
4178WINCLILIB=''
4179WINGUILIB=''
4180CLILIB=''
4181GUILIB=''
4182if [[ "X$BUILDCLASS" = "Xwindows" ]]
4183then
4184	DELTARGET='@-IF EXIST "$@" DEL /F /Q "$@"'
4185	DELTARGETSO='@-IF EXIST "$@.$(SOVERS)" DEL /F /Q "$@.$(SOVERS)"'
4186else
4187	DELTARGET='@-[[ ! -f "$@" ]] || rm -f "$@"'
4188	DELTARGETSO='@-[[ ! -f "$@.$(SOVERS)" ]] || rm -f "$@.$(SOVERS)"'
4189fi
4190if [[ "X$TARGETCLASS" = "Xwindows" ]]
4191then
4192	WINCLILIB='-lkernel32 -lgdi32 -ladvapi32 -luser32 -lnetapi32 -lwinspool'
4193	WINGUILIB='-lole32 -loleaut32 -lshell32 -lcomctl32 -lcomdlg32'
4194	CLILIB='$(WINCLILIB)'
4195	GUILIB='$(WINGUILIB)'
4196fi
4197if [[ "X$TARGETCLASS" = "Xwindows" -a "X$TOOLCHAIN" = "Xgcc" ]]
4198then
4199	WINGUILIB="-lwinmm -limm32 -luuid $WINGUILIB"
4200	LDFLC_CLI_DK="$LDFLC_CLI_DK -municode"
4201fi
4202if [[ "X$TARGETCLASS" = "Xwindows" -a "X$TOOLCHAIN" = "Xclang" ]]
4203then
4204	WINGUILIB="-lwinmm -limm32 -luuid $WINGUILIB"
4205	LDFLC_CLI_DK="$LDFLC_CLI_DK -municode"
4206fi
4207if [[ "X$TOOLCHAIN" = "Xgcc" -o "X$TOOLCHAIN" = "Xclang" ]]
4208then
4209	case X$CROSSBUILD/X$ENA_PACKAGE in
4210		Xyes/Xno)
4211			LDFLC_CLI_C8="$LDFLC_CLI_C8 -static -static-libgcc -Wl,-Bstatic"
4212			LDFLC_CLI_DK="$LDFLC_CLI_DK -static -static-libgcc -Wl,-Bstatic"
4213			LDFLCXX_CLI_C8="$LDFLCXX_CLI_C8 -static -static-libstdc++ -static-libgcc -Wl,-Bstatic"
4214			LDFLCXX_CLI_DK="$LDFLCXX_CLI_DK -static -static-libstdc++ -static-libgcc -Wl,-Bstatic"
4215			LDFLCXX_CLI_WX="$LDFLCXX_CLI_WX -static -static-libstdc++ -static-libgcc -Wl,-Bstatic"
4216			LDFLCXX_GUI="$LDFLCXX_GUI -static -static-libstdc++ -static-libgcc -Wl,-Bstatic"
4217		;;
4218	esac
4219fi
4220AC_MSG_RESULT(done)
4221
4222dnl	Find user and group running the LPRng lpd process
4223dnl	-------------------------------------------------
4224dnl	Normally both should be lp but the Debian LPRng package
4225dnl	uses daemon.lp to run lpd.
4226dnl	The printqd daemon should use the same account and group.
4227
4228LPRNGUSER='lp'
4229LPRNGGROUP='lp'
4230if [[ -f /etc/debian_version ]]
4231then
4232	LPRNGUSER='daemon'
4233fi
4234
4235
4236dnl	OUTPUT GENERATION
4237
4238dnl	Substitue variables
4239dnl	===================
4240
4241dnl	Compiler toolchain
4242dnl	------------------
4243
4244AC_SUBST(DEFS)
4245AC_SUBST(CC)
4246AC_SUBST(CPP)
4247AC_SUBST(CXX)
4248AC_SUBST(WINDRES)
4249AC_SUBST(RCFLAGS)
4250AC_SUBST(MKDIR_P)
4251AC_SUBST(SED)
4252AC_SUBST(INSTALL)
4253AC_SUBST(LN_S)
4254AC_SUBST(RANLIB)
4255AC_SUBST(RDFIND)
4256AC_SUBST(AR)
4257AC_SUBST(NM)
4258AC_SUBST(MAKE)
4259AC_SUBST(DELTARGET)
4260AC_SUBST(DELTARGETSO)
4261AC_SUBST(MKSOLIB)
4262AC_SUBST(MKSOLIBCPP)
4263AC_SUBST(RPATH)
4264AC_SUBST(RPATHLINK)
4265AC_SUBST(MKSORPATH)
4266AC_SUBST(MKSORPATHLINK)
4267AC_SUBST(MKSOCHECKSYMBOLS)
4268
4269dnl	Compiler and linker flags
4270dnl	-------------------------
4271AC_SUBST(CFL_CLI_C8)
4272AC_SUBST(CFL_CLI_DK)
4273AC_SUBST(CXXFL_CLI_C8)
4274AC_SUBST(CXXFL_CLI_DK)
4275AC_SUBST(CXXFL_CLI_WX)
4276AC_SUBST(CXXFL_GUI)
4277AC_SUBST(LDFLC_CLI_C8)
4278AC_SUBST(LDFLC_CLI_DK)
4279AC_SUBST(LDFLCXX_CLI_C8)
4280AC_SUBST(LDFLCXX_CLI_DK)
4281AC_SUBST(LDFLCXX_CLI_WX)
4282AC_SUBST(LDFLCXX_GUI)
4283
4284dnl	Build system type
4285dnl	-----------------
4286AC_SUBST(BUILDHOST)
4287AC_SUBST(TARGETHOST)
4288AC_SUBST(BUILDCLASS)
4289AC_SUBST(TARGETCLASS)
4290AC_SUBST(CROSSBUILD)
4291AC_SUBST(UNAME)
4292AC_SUBST(TOOLCHAIN)
4293
4294dnl	Package version
4295dnl	---------------
4296AC_SUBST(VERSNO)
4297AC_SUBST(SOVERS)
4298
4299dnl	Select components to build
4300dnl	--------------------------
4301AC_SUBST(LIB_SHARED_RES_NET)
4302AC_SUBST(PRG_RES_NET)
4303AC_SUBST(MAN_RES_NET)
4304AC_SUBST(RES_RES_NET)
4305AC_SUBST(RES_RES_NET_EN)
4306AC_SUBST(RES_RES_NET_DE)
4307AC_SUBST(PRG_CLI_NET)
4308AC_SUBST(MAN_CLI_NET)
4309AC_SUBST(RES_CLI_NET)
4310AC_SUBST(PRG_GUI_NET)
4311AC_SUBST(MAN_GUI_NET)
4312AC_SUBST(RES_GUI_NET)
4313AC_SUBST(PRG_CLI_NET_POSIX)
4314AC_SUBST(MAN_CLI_NET_POSIX)
4315AC_SUBST(RES_CLI_NET_POSIX)
4316AC_SUBST(PRG_CLI_SNMP)
4317AC_SUBST(MAN_CLI_SNMP)
4318AC_SUBST(RES_CLI_SNMP)
4319AC_SUBST(PRG_CLI_MYSQL)
4320AC_SUBST(MAN_CLI_MYSQL)
4321AC_SUBST(RES_CLI_MYSQL)
4322AC_SUBST(PRG_CLI_SSL)
4323AC_SUBST(MAN_CLI_SSL)
4324AC_SUBST(RES_CLI_SSL)
4325AC_SUBST(PRG_GUI_SSL)
4326AC_SUBST(MAN_GUI_SSL)
4327AC_SUBST(RES_GUI_SSL)
4328AC_SUBST(PRG_CLI_POSIX)
4329AC_SUBST(MAN_CLI_POSIX)
4330AC_SUBST(RES_CLI_POSIX)
4331AC_SUBST(PRG_CLI_WINDOWS)
4332AC_SUBST(MAN_CLI_WINDOWS)
4333AC_SUBST(RES_CLI_WINDOWS)
4334AC_SUBST(PRG_GUI_WINDOWS)
4335AC_SUBST(MAN_GUI_WINDOWS)
4336AC_SUBST(RES_GUI_WINDOWS)
4337AC_SUBST(BUILD_ARCH)
4338AC_SUBST(INSTALL_PROGRAMS)
4339AC_SUBST(INSTALL_LIBS)
4340AC_SUBST(INSTALL_INDEP)
4341AC_SUBST(FOUND_SYSTEMD)
4342
4343# File name extensions
4344# --------------------
4345AC_SUBST(EXEEXT)
4346AC_SUBST(OBJEXT)
4347AC_SUBST(RCEXT)
4348AC_SUBST(RESEXT)
4349AC_SUBST(RESCRULE)
4350
4351# Detected run path
4352# -----------------
4353AC_SUBST(rundir)
4354
4355# Detected features
4356# -----------------
4357AC_SUBST(ZLIB)
4358AC_SUBST(BZLIB)
4359AC_SUBST(LIBPNG)
4360AC_SUBST(LIBJPEG)
4361AC_SUBST(LIBTIFF)
4362AC_SUBST(CRYPTO)
4363AC_SUBST(FS64)
4364AC_SUBST(SOCKLIB)
4365AC_SUBST(NSLLIB)
4366AC_SUBST(RTLIB)
4367AC_SUBST(PTHREADLIB)
4368AC_SUBST(DBLIB)
4369AC_SUBST(DBLIBSOCK)
4370AC_SUBST(MYSQLLIB)
4371AC_SUBST(MYSQLLDFLAGS)
4372AC_SUBST(NETSNMP_LIBS)
4373AC_SUBST(NETSNMP_CFLAGS)
4374AC_SUBST(WINCLILIB)
4375AC_SUBST(WINGUILIB)
4376AC_SUBST(CLILIB)
4377AC_SUBST(GUILIB)
4378AC_MSG_NOTICE([CPPFLAGS substituted: $CPPFLAGS])
4379AC_MSG_NOTICE([CFLAGS   substituted: $CFLAGS])
4380AC_MSG_NOTICE([LDFLAGS  substituted: $LDFLAGS])
4381AC_SUBST(CPPFLAGS)
4382AC_SUBST(CFLAGS)
4383AC_SUBST(LDFLAGS)
4384AC_SUBST(WXCPPFLAGS)
4385AC_SUBST(WXCFLAGS)
4386AC_SUBST(WXCXXFLAGS)
4387AC_SUBST(WXLDFLAGS)
4388AC_SUBST(WXVERSION)
4389AC_SUBST(MOD_DK3WREG)
4390AC_SUBST(MOD_DK4DMT)
4391AC_SUBST(LIBDK3WXOBJ)
4392AC_SUBST(LIBDK4WXOBJ)
4393AC_SUBST(LPRNGUSER)
4394AC_SUBST(LPRNGGROUP)
4395
4396dnl	Program objects and libraries
4397dnl	-----------------------------
4398AC_SUBST(SOLIBZ)
4399AC_SUBST(SOLIBBZ)
4400AC_SUBST(SOLIBMATH)
4401AC_SUBST(SOLIBCRYPTO)
4402AC_SUBST(SOLIBNET)
4403AC_SUBST(SOLIBIMG)
4404AC_SUBST(SOLIBSDBI)
4405AC_SUBST(SOLIBWX)
4406AC_SUBST(SOLIBDK3PORT)
4407AC_SUBST(SOLIBDK3C)
4408AC_SUBST(SOLIBDK3OF)
4409AC_SUBST(SOLIBDK3CSRND)
4410AC_SUBST(SOLIBDK3BIF)
4411AC_SUBST(SOLIBDK3DBI)
4412AC_SUBST(SOLIBDK3FIG)
4413AC_SUBST(SOLIBDK3BMEPS)
4414AC_SUBST(SOLIBDK3NET)
4415AC_SUBST(SOLIBDK4TRACE)
4416AC_SUBST(SOLIBDK4BASE)
4417AC_SUBST(SOLIBDK4MA)
4418AC_SUBST(SOLIBDK4MAIO8H)
4419AC_SUBST(SOLIBDK4MAIOWH)
4420AC_SUBST(SOLIBDK4MAIODH)
4421AC_SUBST(SOLIBDK4MAIO8D)
4422AC_SUBST(SOLIBDK4MAIOWD)
4423AC_SUBST(SOLIBDK4MAIODD)
4424AC_SUBST(SOLIBDK4C)
4425AC_SUBST(SOLIBDK4MDRND)
4426AC_SUBST(SOLIBDK4PPPT)
4427AC_SUBST(SOLIBDK4APP)
4428AC_SUBST(SOLIBDK4LATA)
4429AC_SUBST(SOLIBDK4LAT)
4430AC_SUBST(SOLIBDK4SOCK)
4431AC_SUBST(SOLIBDK4SOCKA)
4432AC_SUBST(SOLIBDK4DBI)
4433AC_SUBST(SOLIBDK4DBIA)
4434AC_SUBST(LIBDK4TRACELIBF)
4435AC_SUBST(LIBDK4TRACELIBS)
4436AC_SUBST(LIBDK4BASELIBF)
4437AC_SUBST(LIBDK4BASELIBS)
4438AC_SUBST(LIBDK4MALIBF)
4439AC_SUBST(LIBDK4MALIBS)
4440AC_SUBST(LIBDK4MAIO8DLIBF)
4441AC_SUBST(LIBDK4MAIO8DLIBS)
4442AC_SUBST(LIBDK4MAIOWDLIBF)
4443AC_SUBST(LIBDK4MAIOWDLIBS)
4444AC_SUBST(LIBDK4MAIODDLIBF)
4445AC_SUBST(LIBDK4MAIODDLIBS)
4446AC_SUBST(LIBDK4MAIOXDLIBF)
4447AC_SUBST(LIBDK4MAIOXDLIBS)
4448AC_SUBST(LIBDK4MAIO8HLIBF)
4449AC_SUBST(LIBDK4MAIO8HLIBS)
4450AC_SUBST(LIBDK4MAIOWHLIBF)
4451AC_SUBST(LIBDK4MAIOWHLIBS)
4452AC_SUBST(LIBDK4MAIODHLIBF)
4453AC_SUBST(LIBDK4MAIODHLIBS)
4454AC_SUBST(LIBDK4DBILIBF)
4455AC_SUBST(LIBDK4DBILIBS)
4456AC_SUBST(LIBDK4CLIBF)
4457AC_SUBST(LIBDK4CLIBS)
4458AC_SUBST(LIBDK4LATALIBF)
4459AC_SUBST(LIBDK4LATALIBS)
4460AC_SUBST(LIBDK4LATLIBF)
4461AC_SUBST(LIBDK4LATLIBS)
4462AC_SUBST(LIBDK4SOCKLIBF)
4463AC_SUBST(LIBDK4SOCKLIBS)
4464AC_SUBST(LIBDK4MDRNDLIBF)
4465AC_SUBST(LIBDK4MDRNDLIBS)
4466AC_SUBST(LIBDK4BIFLIBF)
4467AC_SUBST(LIBDK4BIFLIBS)
4468AC_SUBST(LIBDK4GRALIBF)
4469AC_SUBST(LIBDK4GRALIBS)
4470AC_SUBST(LIBDK4PPPTLIBF)
4471AC_SUBST(LIBDK4PPPTLIBS)
4472AC_SUBST(LIBDK4APPLIBF)
4473AC_SUBST(LIBDK4APPLIBS)
4474AC_SUBST(LIBDK4BIFALIBF)
4475AC_SUBST(LIBDK4BIFALIBS)
4476AC_SUBST(LIBDK4GRAALIBF)
4477AC_SUBST(LIBDK4GRAALIBS)
4478AC_SUBST(LIBDK4PPPTALIBF)
4479AC_SUBST(LIBDK4PPPTALIBS)
4480AC_SUBST(LIBDK4SOCKALIBF)
4481AC_SUBST(LIBDK4SOCKALIBS)
4482AC_SUBST(LIBDK4DBIALIBF)
4483AC_SUBST(LIBDK4DBIALIBS)
4484AC_SUBST(LIBDK4WXLIBF)
4485AC_SUBST(LIBDK4WXLIBS)
4486AC_SUBST(LIBDK3TRACELIBF)
4487AC_SUBST(LIBDK3TRACELIBS)
4488AC_SUBST(LIBDK3CLIBF)
4489AC_SUBST(LIBDK3CLIBS)
4490AC_SUBST(LIBDK3OFLIBF)
4491AC_SUBST(LIBDK3OFLIBS)
4492AC_SUBST(LIBDK3CSRNDLIBF)
4493AC_SUBST(LIBDK3CSRNDLIBS)
4494AC_SUBST(LIBDK3BIFLIBF)
4495AC_SUBST(LIBDK3BIFLIBS)
4496AC_SUBST(LIBDK3DBILIBF)
4497AC_SUBST(LIBDK3DBILIBS)
4498AC_SUBST(LIBDK3BMEPSLIBF)
4499AC_SUBST(LIBDK3BMEPSLIBS)
4500AC_SUBST(LIBDK3FIGLIBF)
4501AC_SUBST(LIBDK3FIGLIBS)
4502AC_SUBST(LIBDK3WXLIBF)
4503AC_SUBST(LIBDK3WXLIBS)
4504AC_SUBST(DKCATLIBF)
4505AC_SUBST(DKCATLIBS)
4506AC_SUBST(DKBLKSLIBF)
4507AC_SUBST(DKBLKSLIBS)
4508AC_SUBST(DKSQLSPLITLIBF)
4509AC_SUBST(DKSQLSPLITLIBS)
4510AC_SUBST(DKERADISKLIBF)
4511AC_SUBST(DKERADISKLIBS)
4512AC_SUBST(DKLSLIBF)
4513AC_SUBST(DKLSLIBS)
4514AC_SUBST(DKSORTLIBF)
4515AC_SUBST(DKSORTLIBS)
4516AC_SUBST(DKLINESLIBF)
4517AC_SUBST(DKLINESLIBS)
4518AC_SUBST(DKFICLIBF)
4519AC_SUBST(DKFICLIBS)
4520AC_SUBST(DKUIDLIBF)
4521AC_SUBST(DKUIDLIBS)
4522AC_SUBST(DKPWGENLIBF)
4523AC_SUBST(DKPWGENLIBS)
4524AC_SUBST(DKRANDLIBF)
4525AC_SUBST(DKRANDLIBS)
4526AC_SUBST(DKT2HLIBF)
4527AC_SUBST(DKT2HLIBS)
4528AC_SUBST(DKT2LLIBF)
4529AC_SUBST(DKT2LLIBS)
4530AC_SUBST(DKBIN2CLIBF)
4531AC_SUBST(DKBIN2CLIBS)
4532AC_SUBST(DKHEXLIBF)
4533AC_SUBST(DKHEXLIBS)
4534AC_SUBST(DKBMMLIBF)
4535AC_SUBST(DKBMMLIBS)
4536AC_SUBST(DKPWDLIBF)
4537AC_SUBST(DKPWDLIBS)
4538AC_SUBST(DKRECVLIBF)
4539AC_SUBST(DKRECVLIBS)
4540AC_SUBST(DKSENDLIBF)
4541AC_SUBST(DKSENDLIBS)
4542AC_SUBST(DKDBT2LIBF)
4543AC_SUBST(DKDBT2LIBS)
4544AC_SUBST(DK4INFOLIBS)
4545AC_SUBST(DK4INFOLIBF)
4546AC_SUBST(DKCTLIBF)
4547AC_SUBST(DKCTLIBS)
4548AC_SUBST(ADDCTRLDLIBF)
4549AC_SUBST(ADDCTRLDLIBS)
4550AC_SUBST(DKDBTLIBF)
4551AC_SUBST(DKDBTLIBS)
4552AC_SUBST(BMPPLIBF)
4553AC_SUBST(BMPPLIBS)
4554AC_SUBST(FIG2LATLIBF)
4555AC_SUBST(FIG2LATLIBS)
4556AC_SUBST(WXD2LATLIBF)
4557AC_SUBST(WXD2LATLIBS)
4558AC_SUBST(HTMLBOOKLIBF)
4559AC_SUBST(HTMLBOOKLIBS)
4560AC_SUBST(DKWTLIBF)
4561AC_SUBST(DKWTLIBS)
4562AC_SUBST(WPRCLEANLIBF)
4563AC_SUBST(WPRCLEANLIBS)
4564AC_SUBST(DK3INFOLIBF)
4565AC_SUBST(DK3INFOLIBS)
4566AC_SUBST(PLPDFTEXLIBF)
4567AC_SUBST(PLPDFTEXLIBS)
4568AC_SUBST(DKWXWIZLIBF)
4569AC_SUBST(DKWXWIZLIBS)
4570AC_SUBST(DKWXPATHLIBF)
4571AC_SUBST(DKWXPATHLIBS)
4572AC_SUBST(WINPRINTLIBF)
4573AC_SUBST(WINPRINTLIBS)
4574AC_SUBST(CHSCRSZLIBF)
4575AC_SUBST(CHSCRSZLIBS)
4576AC_SUBST(WXDKCTLIBF)
4577AC_SUBST(WXDKCTLIBS)
4578AC_SUBST(WXDKDRAWLIBF)
4579AC_SUBST(WXDKDRAWLIBS)
4580AC_SUBST(WXBMPPLIBF)
4581AC_SUBST(WXBMPPLIBS)
4582AC_SUBST(WXDKFCSLIBF)
4583AC_SUBST(WXDKFCSLIBS)
4584AC_SUBST(WXPQDICLIBF)
4585AC_SUBST(WXPQDICLIBS)
4586AC_SUBST(WXIMGSZLIBF)
4587AC_SUBST(WXIMGSZLIBS)
4588AC_SUBST(WXDKCLOCKLIBF)
4589AC_SUBST(WXDKCLOCKLIBS)
4590AC_SUBST(WXDKHTBLIBF)
4591AC_SUBST(WXDKHTBLIBS)
4592AC_SUBST(PRINTQDLIBF)
4593AC_SUBST(PRINTQDLIBS)
4594AC_SUBST(PRINTQDILIBF)
4595AC_SUBST(PRINTQDILIBS)
4596AC_SUBST(PRINTQDALIBF)
4597AC_SUBST(PRINTQDALIBS)
4598AC_SUBST(PJSNMPLIBF)
4599AC_SUBST(PJSNMPLIBS)
4600AC_SUBST(PRMONSNMPLIBF)
4601AC_SUBST(PRMONSNMPLIBS)
4602AC_SUBST(PRINTQDCLIBF)
4603AC_SUBST(PRINTQDCLIBS)
4604AC_SUBST(RSHDOWNLIBF)
4605AC_SUBST(RSHDOWNLIBS)
4606AC_SUBST(LPRNGCLLIBF)
4607AC_SUBST(LPRNGCLLIBS)
4608AC_SUBST(ITADMINLIBF)
4609AC_SUBST(ITADMINLIBS)
4610AC_SUBST(GETSOURCE)
4611
4612dnl	Resource files
4613dnl	--------------
4614AC_SUBST(ADDCTRLDRES)
4615AC_SUBST(BMPPRES)
4616AC_SUBST(DK3INFORES)
4617AC_SUBST(DK4INFORES)
4618AC_SUBST(DKBIN2CRES)
4619AC_SUBST(DKBLKSRES)
4620AC_SUBST(DKBMMRES)
4621AC_SUBST(DKCATRES)
4622AC_SUBST(DKCTRES)
4623AC_SUBST(DKDB2TRES)
4624AC_SUBST(DKDBCORES)
4625AC_SUBST(DKDBTRES)
4626AC_SUBST(DKERADISKRES)
4627AC_SUBST(DKFICRES)
4628AC_SUBST(DKHEXRES)
4629AC_SUBST(DKLINESRES)
4630AC_SUBST(DKLSRES)
4631AC_SUBST(DKPWDRES)
4632AC_SUBST(DKPWGENRES)
4633AC_SUBST(DKRANDRES)
4634AC_SUBST(DKRECVRES)
4635AC_SUBST(DKSENDRES)
4636AC_SUBST(DKSORTRES)
4637AC_SUBST(DKSQLSPLITRES)
4638AC_SUBST(DKT2DBRES)
4639AC_SUBST(DKT2HRES)
4640AC_SUBST(DKT2LRES)
4641AC_SUBST(DKWTADMRES)
4642AC_SUBST(DKWTRES)
4643AC_SUBST(DKWXPATHRES)
4644AC_SUBST(DKWXWIZRES)
4645AC_SUBST(FIG2LATRES)
4646AC_SUBST(HTMLBOOKRES)
4647AC_SUBST(ITADMINRES)
4648AC_SUBST(LPRNGCLRES)
4649AC_SUBST(PLPDFTEXRES)
4650AC_SUBST(WINPRINTRES)
4651AC_SUBST(WPRCLEANRES)
4652AC_SUBST(WXBMPPRES)
4653AC_SUBST(WXDKCLOCKRES)
4654AC_SUBST(WXDKCTRES)
4655AC_SUBST(WXDKFCSRES)
4656AC_SUBST(WXDKHTBRES)
4657AC_SUBST(WXDKSCRSZRES)
4658AC_SUBST(WXIMGSZRES)
4659AC_SUBST(WXPQDICRES)
4660AC_SUBST(WXD2LATRES)
4661LIBSPRIVATE="$CRYPTO $MYSQLLIB $DBLIB $LIBTIFF $LIBJPEG $BZLIB"
4662AC_SUBST(LIBSPRIVATE)
4663AC_SUBST(systemddir)
4664AC_SUBST(SUITE)
4665AC_SUBST(THISYEAR)
4666AC_SUBST(SRCIDIRS)
4667
4668
4669dnl	Produce Makefile and other files
4670dnl	================================
4671AC_CONFIG_FILES([
4672	Makefile
4673	config/etc/init.d/printqd
4674	config/etc/init.d/rshdown
4675	config/pkg-config/dktools.pc
4676	scripts/build-debian
4677	scripts/write-files
4678	debian/control
4679	debian/printqd.postinst
4680])
4681AC_OUTPUT
4682
4683chmod 755 scripts/build-debian
4684chmod 755 scripts/write-files
4685chmod 755 debian/printqd.postinst
4686
4687dnl	Correct permissions on scripts, run scripts
4688dnl	-------------------------------------------
4689export FOUND_SYSTEMD
4690chmod ugo+rx scripts/ config/etc/init.d/printqd config/etc/init.d/rshdown
4691
4692dnl	Create files
4693dnl	------------
4694scripts/build-debian
4695scripts/write-files
4696
4697dnl	Create configuration files if not yet present
4698dnl	---------------------------------------------
4699if [[ ! -f config/etc/rshdown.conf ]]
4700then
4701	cp config/etc/rshdown.conf.sample config/etc/rshdown.conf
4702fi
4703if [[ ! -f config/etc/printqd.conf ]]
4704then
4705	cp config/etc/printqd.conf.sample config/etc/printqd.conf
4706fi
4707
4708
4709dnl	Copy all source files to here
4710dnl	-----------------------------
4711# AC_MSG_NOTICE([Copying source files to current directory])
4712# scripts/sources-copy
4713
4714dnl	Fix configure script results
4715dnl	============================
4716if [[ "X$CROSSBUILD" = "Xyes" -o "X$MAKE" = "X" ]]
4717then
4718	AC_MSG_NOTICE([Fix configure results:             Use sed])
4719	(
4720		cat config/dk4conf.h.start
4721		grep '#define' config.h | awk '{print $2 " " $3;}' | grep -v CONFIG_H_INCLUDED | sort | sed -e 's/^/#define	DK4_/g'
4722		cat config/dk4conf.h.large
4723		cat config/dk4conf.h.end
4724	) > dk4conf.h
4725	(
4726		cat config/dk3conf.h.start
4727		grep '#define' config.h | awk '{print $2 " " $3;}' | grep -v CONFIG_H_INCLUDED | sort | sed -e 's/^/#define	DK3_/g'
4728		cat config/dk3conf.h.large
4729		cat config/dk3conf.h.end
4730	) > dk3conf.h
4731	cp config/dk4wxcs.cross dk4wxcs.h
4732else
4733	AC_MSG_NOTICE([Fix configure results:             Run programs])
4734	[[ ! -f "dk4config${EXEEXT}" ]] || rm -f "dk4config${EXEEXT}"
4735	[[ ! -f "dk4wxcs${EXEEXT}" ]] || rm -f "dk4wxcs${EXEEXT}"
4736	[[ ! -f "dk3config${EXEEXT}" ]] || rm -f "dk3config${EXEEXT}"
4737	${MAKE} dk4config${EXEEXT} dk3config${EXEEXT} dk4wxcs${EXEEXT}
4738	(
4739		cat config/dk4conf.h.start
4740		./dk4config${EXEEXT}
4741		cat config/dk4conf.h.end
4742	) > dk4conf.h
4743	./dk3config${EXEEXT} > dk3conf.h
4744	./dk4wxcs${EXEEXT} > dk4wxcs.h
4745	sed -e 's/DK4/DK3/g' < dk4wxcs.h > dk3wxcs.h
4746	[[ ! -f "dk4config${EXEEXT}" ]] || rm -f "dk4config${EXEEXT}"
4747	[[ ! -f "dk4wxcs${EXEEXT}" ]] || rm -f "dk4wxcs${EXEEXT}"
4748	[[ ! -f "dk3config${EXEEXT}" ]] || rm -f "dk3config${EXEEXT}"
4749fi
4750
4751
4752dnl	Summary output
4753dnl	==============
4754AC_MSG_NOTICE([
4755BUILD_ARCH:
4756${BUILD_ARCH}
4757INSTALL_PROGRAMS:
4758${INSTALL_PROGRAMS}
4759INSTALL_LIBS:
4760${INSTALL_LIBS}
4761INSTALL_INDEP:
4762${INSTALL_INDEP}
4763
4764])
4765
4766AC_MSG_NOTICE([Software suite:                    $SUITE])
4767AC_MSG_NOTICE([Build static libraries:            $ENA_STATIC])
4768AC_MSG_NOTICE([Build shared libraries:            $ENA_SHARED])
4769if [[ "X$ENA_SHARED" = "Xyes" ]]
4770then
4771AC_MSG_NOTICE([Build for package generation:      $ENA_PACKAGE])
4772fi
4773AC_MSG_NOTICE([Link shared libs with shared libs: $ENA_SOSO])
4774AC_MSG_NOTICE([Install man pages:                 $ENA_MAN])
4775AC_MSG_NOTICE([Activate more warnings:            $ENA_WARN])
4776AC_MSG_NOTICE([Allow debug information:           $ENA_DEBUG])
4777AC_MSG_NOTICE([Corrections for SunOS:             $ENA_SUNOS_CORR])
4778AC_MSG_NOTICE([Build host:                        $BUILDHOST])
4779AC_MSG_NOTICE([Build class:                       $BUILDCLASS])
4780AC_MSG_NOTICE([Target host:                       $TARGETHOST])
4781AC_MSG_NOTICE([Target class:                      $TARGETCLASS])
4782AC_MSG_NOTICE([Cross compilation build:           $CROSSBUILD])
4783AC_MSG_NOTICE([Tool chain:                        $TOOLCHAIN])
4784AC_MSG_NOTICE([C compiler:                        $CC])
4785AC_MSG_NOTICE([C++ compiler:                      $CXX])
4786AC_MSG_NOTICE([CPPFLAGS:                          $CPPFLAGS])
4787AC_MSG_NOTICE([CFLAGS:                            $CFLAGS])
4788AC_MSG_NOTICE([LDFLAGS:                           $LDFLAGS])
4789AC_MSG_NOTICE([])
4790AC_MSG_NOTICE([Libraries and functions:])
4791AC_MSG_NOTICE([socket                             $FOUND_SOCKET])
4792AC_MSG_NOTICE([zlib                               $FOUND_ZLIB])
4793AC_MSG_NOTICE([libbz2                             $FOUND_BZLIB])
4794AC_MSG_NOTICE([libpng                             $FOUND_PNG])
4795AC_MSG_NOTICE([libjpeg                            $FOUND_JPG])
4796AC_MSG_NOTICE([libtiff                            $FOUND_TIFF])
4797AC_MSG_NOTICE([OpenSSL                            $FOUND_OPENSSL])
4798AC_MSG_NOTICE([NetSNMP                            $FOUND_NETSNMP])
4799AC_MSG_NOTICE([MySQL / MariaDB                    $FOUND_MYSQL])
4800AC_MSG_NOTICE([wxWidgets                          $FOUND_WX])
4801
4802dnl	Special hints for cross-compilation builds
4803dnl	------------------------------------------
4804if [[ "X$CROSSBUILD" = "Xyes" ]]
4805then
4806AC_MSG_NOTICE([])
4807AC_MSG_NOTICE([CROSS-COMPILATION BUILD:])
4808AC_MSG_WARN([Test for twos complement not possible!])
4809AC_MSG_WARN([Test for IEEE 754 compliant double not possible!])
4810AC_MSG_WARN([Test for /proc/.../exe not possible!])
4811AC_MSG_WARN([Results for these tests are guessed and may be wrong.])
4812AC_MSG_WARN([Before you continue check the following settings,])
4813AC_MSG_WARN([apply corrections if necessary:])
4814AC_MSG_WARN([- HAVE_TWOS_COMPLEMENT in file config.h])
4815AC_MSG_WARN([- HAVE_IEEE_754_DOUBLE in file config.h])
4816AC_MSG_WARN([- HAVE_PROC_PID_EXE    in file config.h])
4817AC_MSG_WARN([Run "make confprogs" if corrections were necessary.])
4818AC_MSG_NOTICE([])
4819AC_MSG_NOTICE([Before running "make" and "make install" transfer the programs])
4820AC_MSG_NOTICE([dk3config${EXEEXT}, dk4config${EXEEXT} and dk4wxcs${EXEEXT}])
4821AC_MSG_NOTICE([to the target system and run the commands])
4822AC_MSG_NOTICE([  ./dk3config > dk3conf.h])
4823AC_MSG_NOTICE([  ./dk4config > dk4conf.h])
4824AC_MSG_NOTICE([  ./dk4wxcs > dk4wxcs.h])
4825AC_MSG_NOTICE([on the target system.])
4826AC_MSG_NOTICE([Transfer the files dk3conf.h, dk4conf.h and dk4wxcs.h back to])
4827AC_MSG_NOTICE([here. At the start of dk4conf.h insert the dk4conf.h.start file.])
4828AC_MSG_NOTICE([At the end of dk4conf.h insert the dk4conf.h.end file.])
4829AC_MSG_NOTICE([Now continue the build process.])
4830fi
4831