configure: check for -lcrypt, add dtlogin/Makefile.am
[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 LT_INIT
6 AC_PREFIX_DEFAULT(/usr/dt)
7
8 AC_ENABLE_STATIC([no])
9
10 PKG_PROG_PKG_CONFIG
11
12 dnl todo: determine what version of autoconf we depend on
13 dnl AC_PREREQ()
14
15 AC_CANONICAL_HOST
16
17 dnl global CDE versioning
18
19 CDE_VERSION_MAJOR=2
20 CDE_VERSION_MINOR=3
21 CDE_VERSION_MICRO=0
22
23 AC_SUBST(CDE_VERSION_MAJOR)
24 AC_SUBST(CDE_VERSION_MINOR)
25 AC_SUBST(CDE_VERSION_MICRO)
26
27 dnl SOURCE_DEFINES - start with CDE project default
28 SOURCE_CPP_DEFINES="-DANSICPP -DMULTIBYTE -DNLS16"
29
30 dnl CPP_COMPILER_FLAGS - CPP/C/C++ compiler flags
31 CPP_COMPILER_FLAGS=""
32
33 dnl CXX_COMPILER_FLAGS - C++ compiler flags
34 CXX_COMPILER_FLAGS=""
35
36 dnl C_COMPILER_FLAGS - C compiler flags
37 C_COMPILER_FLAGS=""
38
39
40 dnl These OS version checks are deprecated and should be replaced with
41 dnl feature checks where appropriate
42
43 build_linux=no
44 bsd=no
45 build_freebsd=no
46 build_openbsd=no
47 build_netbsd=no
48 build_solaris=no
49 build_hpux=no
50 build_aix=no
51
52 dnl For now, we need to fake the OSMAJORVERSION, OSMINORVERSION.  In Linux
53 dnl this never mattered anyway as it was always the kernel version.  We will
54 dnl choose defaults here.  These need to be removed in the code in favor
55 dnl of actual checks for functionality. So this should be considered
56 dnl temporary.
57
58 OSMAJORVERSION=4
59 OSMINORVERSION=15
60
61 case "${host_os}" in
62         linux*)
63                 build_linux=yes
64                 OSMAJORVERSION=4
65                 OSMINORVERSION=15
66                 SOURCE_CPP_DEFINES="${SOURCE_CPP_DEFINES} -D_POSIX_SOURCE \
67 -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_SVID_SOURCE"
68                 CPP_COMPILER_FLAGS="-fno-strict-aliasing -Wno-write-strings \
69 -Wno-unused-result"
70                  ;;
71         freebsd*)
72                 build_freebsd=yes
73                 bsd=yes
74                 OSMAJORVERSION=10
75                 OSMINORVERSION=0
76                 ;;
77         openbsd*)
78                 build_openbsd=yes
79                 bsd=yes
80                 OSMAJORVERSION=6
81                 OSMINORVERSION=2
82                 ;;
83         netbsd*)
84                 build_netbsd=yes
85                 bsd=yes
86                 OSMAJORVERSION=8
87                 OSMINORVERSION=0
88                 ;;
89         solaris*|sun*)
90                 build_solaris=yes
91                 OSMAJORVERSION=5
92                 OSMINORVERSION=10
93                 ;;
94         aix*)
95                 build_aix=yes
96                 ;;
97         hpux*)
98                 build_hpux=yes
99                 ;;
100 esac
101
102 AM_CONDITIONAL([LINUX], [test "$build_linux" = "yes"])
103 AM_CONDITIONAL([BSD], [test "$build_bsd" = "yes"])
104 AM_CONDITIONAL([FREEBSD], [test "$build_freebsd" = "yes"])
105 AM_CONDITIONAL([OPENBSD], [test "$build_openbsd" = "yes"])
106 AM_CONDITIONAL([NETBSD], [test "$build_netbsd" = "yes"])
107 AM_CONDITIONAL([SOLARIS], [test "$build_solaris" = "yes"])
108 AM_CONDITIONAL([AIX], [test "$build_aix" = "yes"])
109 AM_CONDITIONAL([HPUX], [test "$build_hpux" = "yes"])
110
111 dnl Add osmajor/minor version to cppflags.
112 OSVERSION="-DOSMAJORVERSION=$OSMAJORVERSION -DOSMINORVERSION=$OSMINORVERSION"
113
114 dnl set CSRG_BASED define for the BSD's
115 if test "$build_bsd" = "yes"
116 then
117         SOURCE_CPP_DEFINES="${SOURCE_CPP_DEFINES} -DCSRG_BASED"
118 fi
119
120 is_x86_64=no
121 is_i386=no
122 is_sparc=no
123 is_mips=no
124 is_arm=no
125 is_ppc=no
126
127 case "$target_or_host" in
128         i*86-*-*)
129                 is_i386=yes
130                 ;;
131         x86_64-*)
132                 is_x86_64=yes
133                 ;;
134         *arm*)
135                 is_arm=yes
136                 ;;
137         *mips*)
138                 is_mips=yes
139                 ;;
140         *sparc*)
141                 is_sparc=yes
142                 ;;
143         ppc-*-linux* | powerpc-*)
144                 is_ppc=yes
145                 ;;
146 esac
147
148 AM_CONDITIONAL([I386], [test "$is_i386" = yes])
149 AM_CONDITIONAL([X86_64], [test "$is_x86_64" = yes])
150 AM_CONDITIONAL([ARM], [test "$is_arm" = yes])
151 AM_CONDITIONAL([SPARC], [test "$is_sparc" = yes])
152 AM_CONDITIONAL([MIPS], [test "is_mips" = yes])
153 AM_CONDITIONAL([PPC], [test "is_ppc" = yes])
154
155 dnl our main libraries
156 dnl we use single quotes so that $top_builder is evaluated in the makefiles,
157 dnl not here.
158 AC_SUBST(LIBTT, '$(top_builddir)/lib/tt/lib/libtt.la')
159 AC_SUBST(LIBXIN, '$(top_builddir)/lib/DtXinerama/libDtXinerama.la')
160 AC_SUBST(LIBWIDGET, '$(top_builddir)/lib/DtWidget/libDtWidget.la')
161 AC_SUBST(LIBTERM, '$(top_builddir)/lib/DtTerm/libDtTerm.la')
162 AC_SUBST(LIBSVC, '$(top_builddir)/lib/DtSvc/libDtSvc.la')
163 AC_SUBST(LIBSEARCH, '$(top_builddir)/lib/DtSearch/lbiDtSearch.la')
164 AC_SUBST(LIBPRINT, '$(top_builddir)/lib/DtPrint/libDtPrint.la')
165 AC_SUBST(LIBMRM, '$(top_builddir)/lib/DtMrm/libDtMrm.la')
166 AC_SUBST(LIBMMDB, '$(top_builddir)/lib/DtMmdb/libDtMmdb.la')
167 AC_SUBST(LIBHELP, '$(top_builddir)/lib/DtHelp/libDtHelp.la')
168 AC_SUBST(LIBCSA, '$(top_builddir)/lib/csa/libcsa.la')
169
170 AC_SUBST(DTCLIENTLIBS, '$(LIBPRINT) $(LIBHELP) $(LIBWIDGET) $(LIBSVC) \
171 $(LIBTT) $(LIBXIN)')
172
173 dnl set up come convenience replacements for global include dirs
174 AC_SUBST(DT_INCDIR, '-I$(top_builddir)/include/Dt')
175 AC_SUBST(DTI_INCDIR, '-I$(top_builddir)/include/DtI')
176 AC_SUBST(TT_INCDIR, '-I$(top_builddir)/include/Tt')
177 AC_SUBST(XM_INCDIR, '-I$(top_builddir)/include/Xm')
178 AC_SUBST(CSA_INCDIR, '-I$(top_builddir)/include/csa')
179 AC_SUBST(SPC_INCDIR, '-I$(top_builddir)/include/SPC')
180
181 AC_ARG_ENABLE(japanese, [--build-japanese    Build Japanese (default=no)])
182 AM_CONDITIONAL([JAPANESE], [test "build_japanese" = "yes"])
183
184 AC_ARG_ENABLE(german, [--build-german    Build German    (default=no)])
185 AM_CONDITIONAL([GERMAN], [test "build_german" = "yes"])
186
187 AC_ARG_ENABLE(italian, [--build-italian    Build Italian    (default=no)])
188 AM_CONDITIONAL([ITALIAN], [test "build_italian" = "yes"])
189
190 AC_ARG_ENABLE(french, [--build-french    Build French    (default=no)])
191 AM_CONDITIONAL([FRENCH], [test "build_french" = "yes"])
192
193 AC_ARG_ENABLE(spanish, --build-spanish    Build Spanish    (default=no)])
194 AM_CONDITIONAL([SPANISH], [test "build_spanish" = "yes"])
195
196 RM="rm -f"
197 AC_SUBST(RM)
198
199 CDE_LOGFILES_TOP=/var/dt
200 CDE_CONFIGURATION_TOP=/etc/dt
201 CDE_USER_TOP=.dt
202
203 AC_SUBST(CDE_CONFIGURATION_TOP)
204 AC_SUBST(CDE_LOGFILES_TOP)
205 AC_SUBST(CDE_USER_TOP)
206
207 AC_PROG_CC
208 AC_PROG_CXX
209 AC_PROG_CPP
210 AM_PROG_LIBTOOL
211 AC_PROG_YACC
212 AM_PROG_LEX
213 AC_PROG_INSTALL
214 AC_PROG_LN_S
215 AC_PROG_MAKE_SET
216 AC_PROG_SED
217 AC_PROG_AWK
218 AC_PROG_GREP
219
220 dnl AC_PROG_AR
221 AC_PROG_RANLIB
222
223 AC_C_CONST
224 AC_C_BIGENDIAN
225 AC_C_INLINE
226 AC_C_CHAR_UNSIGNED
227 AC_C_STRINGIZE
228 AC_C_FLEXIBLE_ARRAY_MEMBER
229 AC_SYS_POSIX_TERMIOS
230
231 AX_PTHREAD
232
233 AC_PROG_CC_C99
234
235 AC_PATH_X
236 AC_PATH_XTRA
237
238 AC_FUNC_FORK
239
240 dnl programs
241 AC_CHECK_PROGS(KSH, ksh)
242 AC_CHECK_PROGS(BDFTOPCF, bdftopcf)
243 AC_CHECK_PROGS(MKFONTIDR, mkfontdir)
244 AC_CHECK_PROGS(GZIP, gzip)
245 AC_CHECK_PROGS(M4, m4)
246 AC_CHECK_PROGS(RPCGEN, rpcgen)
247
248 dnl headers
249 AC_HEADER_STDC
250 AC_CHECK_HEADERS([locale.h])
251
252 dnl libraries
253 AC_CHECK_LIB(m, cosf)
254 AC_CHECK_LIB(crypt, crypt)
255 AC_CHECK_LIB(tirpc, main, [TIRPCINC="-DOPT_TIRPC -I/usr/include/tirpc"; TIRPCLIB=-ltirpc])
256 AC_SUBST(TIRPCINC)
257 AC_SUBST(TIRPCLIB)
258 AC_CHECK_LIB(Xinerama, XineramaQueryScreens, ,[AC_MSG_ERROR([libXinerama not found])])
259
260 dnl Setup XTOOLLIB
261 XTOOLLIB=""
262 AC_CHECK_LIB(X11, XOpenDisplay, [XTOOLLIB="-lX11"])
263 AC_CHECK_LIB(Xt, XtInitialize, [XTOOLLIB="-lXt ${XTOOLLIB}"])
264 AC_CHECK_LIB(ICE, IceCloseConnection, [XTOOLLIB="-lICE ${XTOOLLIB}"])
265 AC_CHECK_LIB(SM, SmcOpenConnection, [XTOOLLIB="-lSM ${XTOOLLIB}"])
266 AC_SUBST([XTOOLLIB])
267
268 dnl Add -DUSE_XINERAMA to SOURCE_CPP_DEFINES for now.  Eventually this
269 dnl should be configurable.
270 SOURCE_CPP_DEFINES="${SOURCE_CPP_DEFINES} -DUSE_XINERAMA"
271
272 dnl set CPPFLAGS, CFLAGS, and CXXFLAGS.
273 dnl The Autoconf manual says that these are user variables and
274 dnl shouldn't be modified.  It suggests that you create a special
275 dnl variable and presumably add those to your Makefile.am files.  We
276 dnl have 192 of these currently, so... The user will just have to
277 dnl deal, or modify them here directly.
278 CPPFLAGS="${CPPFLAGS} ${SOURCE_CPP_DEFINES} ${CPP_COMPILER_FLAGS} ${OSVERSION}"
279 CFLAGS="${CFLAGS} ${C_COMPILER_FLAGS} ${PTHREAD_CFLAGS}"
280 CXXFLAGS="${CXXFLAGS} ${CXX_COMPILER_FLAGS} ${PTHREAD_CFLAGS}"
281 LIBS="${LIBS} ${PTHREAD_LIBS}"
282
283 dnl All of the makefiles we need to generate go here...
284 AC_CONFIG_FILES([
285 Makefile
286
287 lib/Makefile
288
289 lib/DtXinerama/Makefile
290
291 lib/tt/Makefile
292 lib/tt/mini_isam/Makefile
293 lib/tt/slib/Makefile
294 lib/tt/lib/Makefile
295 lib/tt/lib/api/Makefile
296 lib/tt/lib/api/dnd/Makefile
297 lib/tt/lib/api/c/Makefile
298 lib/tt/lib/tttk/Makefile
299 lib/tt/lib/db/Makefile
300 lib/tt/lib/mp/Makefile
301 lib/tt/lib/util/Makefile
302 lib/tt/bin/Makefile
303 lib/tt/bin/shell/Makefile
304 lib/tt/bin/ttauth/Makefile
305 lib/tt/bin/scripts/Makefile
306 lib/tt/bin/tttar/Makefile
307 lib/tt/bin/tt_type_comp/Makefile
308 lib/tt/bin/tttrace/Makefile
309 lib/tt/bin/dbck/Makefile
310 lib/tt/bin/ttdbserverd/Makefile
311 lib/tt/bin/ttsession/Makefile
312
313 lib/DtSvc/Makefile
314
315 lib/DtSearch/Makefile
316 lib/DtSearch/raima/Makefile
317
318 lib/DtWidget/Makefile
319
320 lib/DtHelp/Makefile
321 lib/DtHelp/il/Makefile
322
323 lib/DtPrint/Makefile
324
325 lib/DtTerm/Term/Makefile
326 lib/DtTerm/Makefile
327 lib/DtTerm/TermView/Makefile
328 lib/DtTerm/util/Makefile
329 lib/DtTerm/TermPrim/Makefile
330
331 lib/DtMrm/Makefile
332
333 lib/csa/Makefile
334
335 programs/Makefile
336
337 programs/backdrops/Makefile
338
339 programs/icons/Makefile
340
341 programs/dthelp/Makefile
342 programs/dthelp/dthelpgen/Makefile
343 programs/dthelp/dthelpprint/Makefile
344 programs/dthelp/parser/pass1/helptag/Makefile
345 programs/dthelp/parser/pass1/Makefile
346 programs/dthelp/parser/pass1/eltdef/Makefile
347 programs/dthelp/parser/pass1/build/Makefile
348 programs/dthelp/parser/Makefile
349 programs/dthelp/parser/canon1/Makefile
350 programs/dthelp/parser/pass2/Makefile
351 programs/dthelp/dthelpview/Makefile
352
353 programs/dsdm/Makefile
354
355 programs/dtmail/Makefile
356 programs/dtmail/dtmail/Makefile
357 programs/dtmail/MotifApp/Makefile
358 programs/dtmail/dtmailpr/Makefile
359 programs/dtmail/libDtMail/Makefile
360 programs/dtmail/libDtMail/RFC/Makefile
361 programs/dtmail/libDtMail/Common/Makefile
362
363 programs/dtpad/Makefile
364
365 programs/dtfile/Makefile
366 programs/dtfile/dtcopy/Makefile
367
368 programs/dtwm/Makefile
369
370 programs/dtlogin/Makefile
371
372 ])
373
374 AC_OUTPUT
375