Merge branch 'master' into autotools-conversion
[oweals/cde.git] / cde / configure.ac
1 AC_INIT([cde-desktop], [2.3.1], [jon@radscan.com])
2 AC_CONFIG_HEADERS([include/autotools_config.h])
3 AC_CONFIG_MACRO_DIRS([m4])
4 AM_INIT_AUTOMAKE([foreign subdir-objects])
5
6 dnl These must be up here for the compiler search list to actually work
7 AC_PROG_CC([cc gcc clang])
8 AC_PROG_CXX([c++ g++ clang++])
9
10 LT_INIT
11 AC_PREFIX_DEFAULT(/usr/dt)
12
13 AC_ENABLE_STATIC([no])
14
15 PKG_PROG_PKG_CONFIG
16
17 dnl todo: determine what version of autoconf we depend on
18 dnl AC_PREREQ()
19
20 AC_CANONICAL_HOST
21 AC_CANONICAL_BUILD
22
23 dnl global CDE versioning
24
25 CDE_VERSION_MAJOR=2
26 CDE_VERSION_MINOR=3
27 CDE_VERSION_MICRO=0
28
29 AC_SUBST(CDE_VERSION_MAJOR)
30 AC_SUBST(CDE_VERSION_MINOR)
31 AC_SUBST(CDE_VERSION_MICRO)
32
33 dnl SOURCE_DEFINES - start with CDE project default
34 SOURCE_CPP_DEFINES="-DANSICPP -DMULTIBYTE -DNLS16"
35
36 dnl CPP_COMPILER_FLAGS - CPP/C/C++ compiler flags
37 CPP_COMPILER_FLAGS=""
38
39 dnl CXX_COMPILER_FLAGS - C++ compiler flags
40 CXX_COMPILER_FLAGS=""
41
42 dnl C_COMPILER_FLAGS - C compiler flags
43 C_COMPILER_FLAGS=""
44
45
46 dnl These OS version checks are deprecated and should be replaced with
47 dnl feature checks where appropriate
48
49 build_linux=no
50 bsd=no
51 build_freebsd=no
52 build_openbsd=no
53 build_netbsd=no
54 build_solaris=no
55 build_hpux=no
56 build_aix=no
57
58 dnl For now, we need to fake the OSMAJORVERSION, OSMINORVERSION.  In Linux
59 dnl this never mattered anyway as it was always the kernel version.  We will
60 dnl choose defaults here.  These need to be removed in the code in favor
61 dnl of actual checks for functionality. So this should be considered
62 dnl temporary.
63
64 OSMAJORVERSION=4
65 OSMINORVERSION=15
66
67 dnl locations of libs/includes if not in 'standard' places like on
68 dnl linux
69 MOTIF_LIB=""
70 MOTIF_INC=""
71
72 case "${host_os}" in
73         linux*)
74                 build_linux=yes
75                 OSMAJORVERSION=4
76                 OSMINORVERSION=15
77                 SOURCE_CPP_DEFINES="${SOURCE_CPP_DEFINES} -D_POSIX_SOURCE \
78 -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE"
79                 CPP_COMPILER_FLAGS="-fno-strict-aliasing -Wno-write-strings \
80 -Wno-unused-result"
81                  ;;
82         freebsd*)
83                 build_freebsd=yes
84                 bsd=yes
85                 OSMAJORVERSION=10
86                 OSMINORVERSION=0
87                 ;;
88         openbsd*)
89                 build_openbsd=yes
90                 bsd=yes
91                 OSMAJORVERSION=6
92                 OSMINORVERSION=2
93                 ;;
94         netbsd*)
95                 build_netbsd=yes
96                 bsd=yes
97                 OSMAJORVERSION=8
98                 OSMINORVERSION=0
99                 ;;
100         solaris*|sun*)
101                 build_solaris=yes
102                 OSMAJORVERSION=5
103                 OSMINORVERSION=10
104                 ;;
105         aix*)
106                 build_aix=yes
107                 ;;
108         hpux*)
109                 build_hpux=yes
110                 ;;
111 esac
112
113 AM_CONDITIONAL([LINUX], [test "$build_linux" = "yes"])
114 AM_CONDITIONAL([BSD], [test "$bsd" = "yes"])
115 AM_CONDITIONAL([FREEBSD], [test "$build_freebsd" = "yes"])
116 AM_CONDITIONAL([OPENBSD], [test "$build_openbsd" = "yes"])
117 AM_CONDITIONAL([NETBSD], [test "$build_netbsd" = "yes"])
118 AM_CONDITIONAL([SOLARIS], [test "$build_solaris" = "yes"])
119 AM_CONDITIONAL([AIX], [test "$build_aix" = "yes"])
120 AM_CONDITIONAL([HPUX], [test "$build_hpux" = "yes"])
121
122 dnl Add osmajor/minor version to cppflags.
123 OSVERSION="-DOSMAJORVERSION=$OSMAJORVERSION -DOSMINORVERSION=$OSMINORVERSION"
124
125 dnl set CSRG_BASED define for the BSD's
126 if test "$bsd" = "yes"
127 then
128         SOURCE_CPP_DEFINES="${SOURCE_CPP_DEFINES} -DCSRG_BASED"
129         MOTIF_LIB="-L/usr/local/lib -R/usr/local/lib"
130         MOTIF_INC="-I/usr/local/include -I/usr/X11R6/include/freetype2"
131 fi
132
133 is_x86_64=no
134 is_i386=no
135 is_sparc=no
136 is_mips=no
137 is_arm=no
138 is_ppc=no
139
140 case "${host_cpu}" in
141         i[3456]86*)
142                 is_i386=yes
143                 ;;
144         x86_64* | amd64*)
145                 is_x86_64=yes
146                 ;;
147         arm*)
148                 is_arm=yes
149                 ;;
150         mips*)
151                 is_mips=yes
152                 ;;
153         sparc*)
154                 is_sparc=yes
155                 ;;
156         ppc* | powerpc*)
157                 is_ppc=yes
158                 ;;
159 esac
160
161 AM_CONDITIONAL([I386], [test "$is_i386" = yes])
162 AM_CONDITIONAL([X86_64], [test "$is_x86_64" = yes])
163 AM_CONDITIONAL([ARM], [test "$is_arm" = yes])
164 AM_CONDITIONAL([SPARC], [test "$is_sparc" = yes])
165 AM_CONDITIONAL([MIPS], [test "is_mips" = yes])
166 AM_CONDITIONAL([PPC], [test "is_ppc" = yes])
167
168 dnl our main libraries
169 dnl we use single quotes so that $top_buildir is evaluated in the makefiles,
170 dnl not here.
171 AC_SUBST(LIBTT, '$(top_builddir)/lib/tt/lib/libtt.la')
172 AC_SUBST(LIBXIN, '$(top_builddir)/lib/DtXinerama/libDtXinerama.la')
173 AC_SUBST(LIBWIDGET, '$(top_builddir)/lib/DtWidget/libDtWidget.la')
174 AC_SUBST(LIBTERM, '$(top_builddir)/lib/DtTerm/libDtTerm.la')
175 AC_SUBST(LIBSVC, '$(top_builddir)/lib/DtSvc/libDtSvc.la')
176 AC_SUBST(LIBSEARCH, '$(top_builddir)/lib/DtSearch/lbiDtSearch.la')
177 AC_SUBST(LIBPRINT, '$(top_builddir)/lib/DtPrint/libDtPrint.la')
178 AC_SUBST(LIBMRM, '$(top_builddir)/lib/DtMrm/libDtMrm.la')
179 AC_SUBST(LIBMMDB, '$(top_builddir)/lib/DtMmdb/libDtMmdb.la')
180 AC_SUBST(LIBHELP, '$(top_builddir)/lib/DtHelp/libDtHelp.la')
181 AC_SUBST(LIBCSA, '$(top_builddir)/lib/csa/libcsa.la')
182
183 AC_SUBST(DTCLIENTLIBS, '$(LIBPRINT) $(LIBHELP) $(LIBWIDGET) $(LIBSVC) \
184 $(LIBTT) $(LIBXIN)')
185
186 dnl set up come convenience replacements for global include dirs
187 AC_SUBST(DT_INCDIR, '-I$(top_builddir)/include/Dt')
188 AC_SUBST(DTI_INCDIR, '-I$(top_builddir)/include/DtI')
189 AC_SUBST(TT_INCDIR, '-I$(top_builddir)/include/Tt')
190 AC_SUBST(XM_INCDIR, '-I$(top_builddir)/include/Xm')
191 AC_SUBST(CSA_INCDIR, '-I$(top_builddir)/include/csa')
192 AC_SUBST(SPC_INCDIR, '-I$(top_builddir)/include/SPC')
193
194 AC_ARG_ENABLE(japanese, [--build-japanese    Build Japanese (default=no)])
195 AM_CONDITIONAL([JAPANESE], [test "build_japanese" = "yes"])
196
197 AC_ARG_ENABLE(german, [--build-german    Build German    (default=no)])
198 AM_CONDITIONAL([GERMAN], [test "build_german" = "yes"])
199
200 AC_ARG_ENABLE(italian, [--build-italian    Build Italian    (default=no)])
201 AM_CONDITIONAL([ITALIAN], [test "build_italian" = "yes"])
202
203 AC_ARG_ENABLE(french, [--build-french    Build French    (default=no)])
204 AM_CONDITIONAL([FRENCH], [test "build_french" = "yes"])
205
206 AC_ARG_ENABLE(spanish, --build-spanish    Build Spanish    (default=no)])
207 AM_CONDITIONAL([SPANISH], [test "build_spanish" = "yes"])
208
209 dnl hmmm...
210 RM="rm -f"
211 AC_SUBST(RM)
212 CP="cp -f"
213 AC_SUBST(CP)
214
215 dnl these should be configurable someday...
216 CDE_INSTALLATION_TOP="$ac_default_prefix"
217 CDE_LOGFILES_TOP=/var/dt
218 CDE_CONFIGURATION_TOP=/etc/dt
219 CDE_USER_TOP=.dt
220
221 AC_SUBST(CDE_INSTALLATION_TOP)
222 AC_SUBST(CDE_CONFIGURATION_TOP)
223 AC_SUBST(CDE_LOGFILES_TOP)
224 AC_SUBST(CDE_USER_TOP)
225
226 AC_PROG_CPP
227
228 dnl we need a real preprocessor, not gcc -E.  We will call it GENCPP.
229 dnl We will go with BSD's tradcpp here...  This is used for
230 dnl pre-processing during building of CDE - in the way imake used to
231 dnl do.  This is not a replacement for cpp, used at runtime by
232 dnl software such as tt_type_comp.
233 AC_SUBST(GENCPP, '$(top_builddir)/util/tradcpp/tradcpp')
234
235 AM_PROG_LIBTOOL
236 AC_PROG_YACC
237 AM_PROG_LEX
238 AC_PROG_INSTALL
239 AC_PROG_LN_S
240 AC_PROG_MAKE_SET
241 AC_PROG_SED
242 AC_PROG_AWK
243 AC_PROG_GREP
244
245 dnl AC_PROG_AR
246 AC_PROG_RANLIB
247
248 AC_C_CONST
249 AC_C_BIGENDIAN
250 AC_C_INLINE
251 AC_C_CHAR_UNSIGNED
252 AC_C_STRINGIZE
253 AC_C_FLEXIBLE_ARRAY_MEMBER
254 AC_SYS_POSIX_TERMIOS
255
256 AX_PTHREAD
257
258 AC_PROG_CC_C99
259
260 AC_PATH_X
261 AC_PATH_XTRA
262
263 AC_FUNC_FORK
264
265 dnl programs with full paths
266
267 AC_PATH_PROG(KSH, ksh)
268 AC_PATH_PROG(XRDB, xrdb)
269 dnl we need to use cpp for some things, like tooltalk and other
270 dnl runtime uses.  So look for the system's cpp.  NOTE: this is NOT
271 dnl the CPP (gcc -E) set by AC_PROG_CPP.  At this point I don't know
272 dnl if we should even bother looking for that as we can't really use
273 dnl it.
274 AC_PATH_PROG(CPP_PROGRAM, cpp, ,
275        [/lib:/usr/bin:/usr/ccs/lib/:/usr/lib:/usr/libexec:/opt/langtools/lbin:$PATH])
276
277 dnl programs
278 AC_CHECK_PROGS(BDFTOPCF, bdftopcf)
279 AC_CHECK_PROGS(MKFONTDIR, mkfontdir)
280 AC_CHECK_PROGS(GZIP, gzip)
281 AC_CHECK_PROGS(M4, m4)
282 AC_CHECK_PROGS(RPCGEN, rpcgen)
283 AC_CHECK_PROGS(GENCAT, gencat)
284
285 dnl headers
286 AC_HEADER_STDC
287 AC_CHECK_HEADERS([locale.h])
288
289 dnl libraries
290 AC_CHECK_LIB(m, cosf)
291 AC_CHECK_LIB(crypt, crypt)
292 dnl this should be configurable, for now it is required
293 AC_CHECK_LIB(Xinerama, XineramaQueryScreens,
294                 [SOURCE_CPP_DEFINES="${SOURCE_CPP_DEFINES} -DUSE_XINERAMA"],
295                 [AC_MSG_ERROR([libXinerama not found])], $X_LIBS)
296
297 dnl Special check for tirpc...
298 AC_CHECK_LIB(tirpc, svc_register,
299       [CFLAGS="${CFLAGS} -DOPT_TIRPC -I/usr/include/tirpc";
300        CXXFLAGS="${CXXFLAGS} -DOPT_TIRPC -I/usr/include/tirpc";
301        TIRPCLIB=-ltirpc])
302 AC_SUBST(TIRPCLIB)
303
304 dnl Setup XTOOLLIB - we do it in this specific order to avoid ordering
305 dnl issues
306 XTOOLLIB=""
307 AC_CHECK_LIB(X11, XOpenDisplay, [XTOOLLIB="-lX11"], , $X_LIBS)
308 AC_CHECK_LIB(Xau, XauReadAuth, [XTOOLLIB="-lXau ${XTOOLLIB}"], , $X_LIBS)
309 AC_CHECK_LIB(Xt, XtInitialize, [XTOOLLIB="-lXt ${XTOOLLIB}"], , $X_LIBS)
310 AC_CHECK_LIB(ICE, IceCloseConnection, [XTOOLLIB="-lICE ${XTOOLLIB}"], , $X_LIBS)
311 AC_CHECK_LIB(SM, SmcOpenConnection, [XTOOLLIB="-lSM ${XTOOLLIB}"], , $X_LIBS)
312 AC_CHECK_LIB(Xm, XmTextSetString, [XTOOLLIB="-lXm ${XTOOLLIB}"], , [$MOTIF_LIB $X_LIBS])
313 XTOOLLIB="$X_LIBS $MOTIF_LIB ${XTOOLLIB}"
314 AC_SUBST([XTOOLLIB])
315
316 dnl set CPPFLAGS, CFLAGS, and CXXFLAGS.
317 dnl The Autoconf manual says that these are user variables and
318 dnl shouldn't be modified.  It suggests that you create a special
319 dnl variable and presumably add those to your Makefile.am files.  We
320 dnl have 192 of these currently, so... The user will just have to
321 dnl deal, or modify them here directly.
322 CPPFLAGS="${CPPFLAGS} ${SOURCE_CPP_DEFINES} ${CPP_COMPILER_FLAGS} ${OSVERSION}"
323 CFLAGS="${CFLAGS} ${C_COMPILER_FLAGS} ${X_CFLAGS} ${MOTIF_INC} ${PTHREAD_CFLAGS}"
324 CXXFLAGS="${CXXFLAGS} ${CXX_COMPILER_FLAGS} ${X_CFLAGS} ${MOTIF_INC} ${PTHREAD_CFLAGS}"
325 LIBS="${X_LIBS} ${LIBS} ${PTHREAD_LIBS}"
326
327 dnl All of the makefiles we need to generate go here...
328 AC_CONFIG_FILES([
329 Makefile
330
331 util/Makefile
332 util/tradcpp/Makefile
333
334 lib/Makefile
335
336 lib/DtXinerama/Makefile
337
338 lib/tt/Makefile
339 lib/tt/mini_isam/Makefile
340 lib/tt/slib/Makefile
341 lib/tt/lib/Makefile
342 lib/tt/lib/api/Makefile
343 lib/tt/lib/api/dnd/Makefile
344 lib/tt/lib/api/c/Makefile
345 lib/tt/lib/tttk/Makefile
346 lib/tt/lib/db/Makefile
347 lib/tt/lib/mp/Makefile
348 lib/tt/lib/util/Makefile
349 lib/tt/bin/Makefile
350 lib/tt/bin/shell/Makefile
351 lib/tt/bin/ttauth/Makefile
352 lib/tt/bin/scripts/Makefile
353 lib/tt/bin/tttar/Makefile
354 lib/tt/bin/tt_type_comp/Makefile
355 lib/tt/bin/tttrace/Makefile
356 lib/tt/bin/dbck/Makefile
357 lib/tt/bin/ttdbserverd/Makefile
358 lib/tt/bin/ttsession/Makefile
359
360 lib/DtSvc/Makefile
361
362 lib/DtSearch/Makefile
363 lib/DtSearch/raima/Makefile
364
365 lib/DtWidget/Makefile
366
367 lib/DtHelp/Makefile
368 lib/DtHelp/il/Makefile
369
370 lib/DtPrint/Makefile
371
372 lib/DtTerm/Term/Makefile
373 lib/DtTerm/Makefile
374 lib/DtTerm/TermView/Makefile
375 lib/DtTerm/util/Makefile
376 lib/DtTerm/TermPrim/Makefile
377
378 lib/DtMrm/Makefile
379
380 lib/csa/Makefile
381
382 programs/Makefile
383
384 programs/backdrops/Makefile
385
386 programs/palettes/Makefile
387
388 programs/icons/Makefile
389
390 programs/dthelp/Makefile
391 programs/dthelp/dthelpgen/Makefile
392 programs/dthelp/dthelpprint/Makefile
393 programs/dthelp/parser/pass1/helptag/Makefile
394 programs/dthelp/parser/pass1/Makefile
395 programs/dthelp/parser/pass1/eltdef/Makefile
396 programs/dthelp/parser/pass1/build/Makefile
397 programs/dthelp/parser/Makefile
398 programs/dthelp/parser/canon1/Makefile
399 programs/dthelp/parser/pass2/Makefile
400 programs/dthelp/dthelpview/Makefile
401
402 programs/dsdm/Makefile
403
404 programs/dtmail/Makefile
405 programs/dtmail/dtmail/Makefile
406 programs/dtmail/MotifApp/Makefile
407 programs/dtmail/dtmailpr/Makefile
408 programs/dtmail/libDtMail/Makefile
409 programs/dtmail/libDtMail/RFC/Makefile
410 programs/dtmail/libDtMail/Common/Makefile
411
412 programs/dtpad/Makefile
413
414 programs/dtfile/Makefile
415 programs/dtfile/dtcopy/Makefile
416
417 programs/dtwm/Makefile
418
419 programs/dtlogin/Makefile
420 programs/dtlogin/config/Makefile
421
422 programs/dtsession/Makefile
423
424 programs/dthello/Makefile
425
426 programs/dtstyle/Makefile
427
428 programs/dtexec/Makefile
429
430 programs/dtdbcache/Makefile
431
432 programs/dticon/Makefile
433
434 programs/dtterm/Makefile
435
436 programs/dtcalc/Makefile
437
438 programs/dtaction/Makefile
439
440 programs/dtspcd/Makefile
441
442 programs/dtscreen/Makefile
443
444 programs/dtcm/Makefile
445 programs/dtcm/libDtCmP/Makefile
446 programs/dtcm/server/Makefile
447 programs/dtcm/dtcm/Makefile
448
449 programs/dtsearchpath/Makefile
450 programs/dtsearchpath/libCliSrv/Makefile
451 programs/dtsearchpath/dtsp/Makefile
452 programs/dtsearchpath/dtappg/Makefile
453
454 programs/dtappintegrate/Makefile
455
456 programs/dtprintegrate/Makefile
457
458 programs/dtconfig/Makefile
459 programs/dtconfig/sun/Makefile
460
461 programs/dtcreate/Makefile
462
463 programs/dtprintinfo/Makefile
464
465 programs/fontaliases/Makefile
466 programs/fontaliases/bdf/Makefile
467 programs/fontaliases/linux/Makefile
468 programs/fontaliases/linux/C/Makefile
469 programs/fontaliases/linux/en_US.UTF-8/Makefile
470 programs/fontaliases/sun/Makefile
471 programs/fontaliases/sun/C/Makefile
472 programs/fontaliases/netbsd/Makefile
473 programs/fontaliases/netbsd/C/Makefile
474 programs/fontaliases/openbsd/Makefile
475 programs/fontaliases/openbsd/C/Makefile
476 programs/fontaliases/freebsd/Makefile
477 programs/fontaliases/freebsd/C/Makefile
478
479 programs/dtdspmsg/Makefile
480
481 programs/dtimsstart/Makefile
482
483 programs/dtpdm/Makefile
484
485 programs/dtsr/Makefile
486
487 programs/dtpdmd/Makefile
488
489 programs/types/Makefile
490
491 programs/tttypes/Makefile
492
493 programs/util/Makefile
494 programs/util/dttypes/Makefile
495
496 programs/dtopen/Makefile
497
498 programs/localized/Makefile
499 programs/localized/util/Makefile
500 programs/localized/C/Makefile
501 programs/localized/C/app-defaults/Makefile
502 programs/localized/C/config/Makefile
503 programs/localized/C/backdrops/Makefile
504 programs/localized/C/types/Makefile
505 programs/localized/C/palettes/Makefile
506 programs/localized/C/msg/Makefile
507 programs/localized/de_DE.UTF-8/Makefile
508 programs/localized/de_DE.UTF-8/app-defaults/Makefile
509 programs/localized/de_DE.UTF-8/config/Makefile
510 programs/localized/de_DE.UTF-8/backdrops/Makefile
511 programs/localized/de_DE.UTF-8/types/Makefile
512 programs/localized/de_DE.UTF-8/palettes/Makefile
513 programs/localized/de_DE.UTF-8/msg/Makefile
514 programs/localized/fr_FR.UTF-8/Makefile
515 programs/localized/fr_FR.UTF-8/app-defaults/Makefile
516 programs/localized/fr_FR.UTF-8/config/Makefile
517 programs/localized/fr_FR.UTF-8/backdrops/Makefile
518 programs/localized/fr_FR.UTF-8/types/Makefile
519 programs/localized/fr_FR.UTF-8/palettes/Makefile
520 programs/localized/fr_FR.UTF-8/msg/Makefile
521 programs/localized/it_IT.UTF-8/Makefile
522 programs/localized/it_IT.UTF-8/app-defaults/Makefile
523 programs/localized/it_IT.UTF-8/config/Makefile
524 programs/localized/it_IT.UTF-8/backdrops/Makefile
525 programs/localized/it_IT.UTF-8/types/Makefile
526 programs/localized/it_IT.UTF-8/palettes/Makefile
527 programs/localized/it_IT.UTF-8/msg/Makefile
528 programs/localized/es_ES.UTF-8/Makefile
529 programs/localized/es_ES.UTF-8/app-defaults/Makefile
530 programs/localized/es_ES.UTF-8/config/Makefile
531 programs/localized/es_ES.UTF-8/backdrops/Makefile
532 programs/localized/es_ES.UTF-8/types/Makefile
533 programs/localized/es_ES.UTF-8/palettes/Makefile
534 programs/localized/es_ES.UTF-8/msg/Makefile
535
536 ])
537
538 AC_OUTPUT
539