kcontrol/kdm:
[pardus-kurumsal-2-kde3:kdebase.git] / configure.in.in
1 #MIN_CONFIG
2
3 KDE_ENABLE_HIDDEN_VISIBILITY
4
5 dnl PAM, shadow passwords, libcrypt
6 KDE_PASSWDLIBS
7
8 DEF_PAM_SERVICE(kdm, kdm, KDM)
9 DEF_PAM_SERVICE(kcp, kcheckpass, KCHECKPASS)
10 DEF_PAM_SERVICE(kss, kscreensaver, KSCREENSAVER)
11
12 dnl Checks for header files.
13 AC_HEADER_DIRENT
14 AC_HEADER_STDC
15 AC_CHECK_HEADERS(sys/time.h crypt.h \
16         sys/select.h sys/ioctl.h sys/stropts.h stropts.h termio.h termios.h sys/termios.h \
17         lastlog.h sys/socket.h sys/sockio.h \
18         sys/m_wait.h ncurses.h paths.h login_cap.h syslog.h \
19         sys/wait.h sys/ucred.h sys/mount.h floatingpoint.h fstab.h mntent.h \
20         Alib.h libutil.h util.h time.h limits.h vfork.h string.h float.h \
21         math.h nan.h ieeefp.h
22 )
23 AC_CHECK_HEADER(pty.h)
24 AC_CHECK_FUNC(ptsname,,)
25
26
27 dnl Checks for Alib on HP-UX (added by deller, Apr 29 1999)
28 AC_CHECK_LIB(Alib, main, [LIBALIB="-lAlib"]) dnl HP-UX network audio server
29 AC_SUBST(LIBALIB)
30
31 dnl Checks for RPC functions
32 AC_CHECK_FUNC(clnttcp_create, , [
33   AC_CHECK_LIB(nsl, clnttcp_create, [LIBRPC="-lnsl"])])
34 AC_SUBST(LIBRPC)
35
36 dnl Check for ossaudio on NetBSD
37 AC_CHECK_LIB(ossaudio, main, [LIBOSSAUDIO="-lossaudio"])
38 AC_SUBST(LIBOSSAUDIO)
39
40 dnl Check for AIX stuff
41 AC_CHECK_LIB(cfg, main, [LIBCFG="-lcfg"]) dnl for AIX
42 AC_SUBST(LIBCFG)
43 AC_CHECK_LIB(odm, main, [LIBODM="-lodm"]) dnl for AIX
44 AC_SUBST(LIBODM)
45
46 dnl SMB checks moved to their own configure.in.in
47
48 kde_have_setupterm=yes
49 AC_CHECK_LIB(curses, setupterm, [LIBCURSES=-lcurses],
50   AC_CHECK_LIB(ncurses, setupterm, [LIBCURSES=-lncurses],
51     AC_CHECK_LIB(mytinfo, setupterm, [LIBCURSES=-lmytinfo],
52        kde_have_setupterm=no)))
53
54 AC_SUBST(LIBCURSES)
55
56 if test "$kde_have_setupterm" = "yes"; then
57   AC_DEFINE_UNQUOTED(HAVE_SETUPTERM, 1, [Define if you have setupterm in -l(n)curses])
58 fi
59
60 AC_CHECK_FUNC(res_init, ,
61   AC_CHECK_LIB(resolv, res_init, [LIBRESOLV="-lresolv"], , $LIBSOCKET)) dnl for Sun
62
63 AC_SUBST(LIBRESOLV)
64
65 dnl Checks for typedefs, structures, and compiler characteristics.
66 AC_LANG_CPLUSPLUS
67 AC_HEADER_TIME
68
69 dnl check if the compiler has bool
70 AC_CHECK_BOOL
71 AC_LANG_C
72 AC_C_LONG_DOUBLE
73 AC_TYPE_GETGROUPS
74
75 dnl for libsmb
76 AC_CHECK_SIZEOF(char,1)
77 AC_CHECK_SIZEOF(short,2)
78 AC_CHECK_SIZEOF(int,4)
79 AC_CHECK_SIZEOF(long,4)
80 AC_C_BIGENDIAN
81
82 AC_CHECK_FUNCS(socket powl sqrtl strdup getdtablesize setpgid nice seteuid vsyslog initgroups setgroups getgroups grantpt pw_encrypt setpriority getpt unlockpt ptsname waitpid getpassphrase)
83 AC_CHECK_MKSTEMPS
84 AC_CHECK_SETENV
85 AC_CHECK_UNSETENV
86 AC_CHECK_GETDOMAINNAME
87 AC_CHECK_GETHOSTNAME
88 AC_CHECK_USLEEP
89 AC_CHECK_RANDOM
90 AC_CHECK_S_ISSOCK
91 AC_CHECK_KDEMAXPATHLEN
92 AC_MSG_CHECKING([if it's safe to enable UTMP])
93
94 case "$host_os" in
95 linux*) utmp_support=yes;
96      ;;
97 freebsd*) utmp_support=yes;
98      ;;
99 kfreebsd*-gnu) utmp_support=yes;
100      ;;
101 *) utmp_support=no;
102 esac
103
104 AC_MSG_RESULT($utmp_support)
105
106 if test "$utmp_support" = yes; then
107    AC_DEFINE_UNQUOTED(UTMP_SUPPORT, 1, [Define if you want to use utmp entries])
108 fi
109
110 AC_CHECK_UTMP_FILE
111
112 dnl Checks for Solaris' libkstat
113 kde_have_kstat=yes
114 AC_CHECK_LIB(kstat, kstat_open, [LIBKSTAT=-lkstat], kde_have_kstat=no)
115 AC_SUBST(LIBKSTAT)
116 if test "$kde_have_kstat" = "yes"; then
117   AC_DEFINE(HAVE_KSTAT, 1, [Defines if you have Solaris' libkstat])
118 fi
119
120 dnl Checks for libdevinfo (Solaris 7 and later)
121 dnl since the library is available on earlier Solaris releases (but
122 dnl with a completely different and undocumented interface),
123 dnl we have to verfy that the required header is present as well
124 AC_CHECK_HEADER(libdevinfo.h,
125         kde_have_libdevinfo_h=yes,
126         kde_have_libdevinfo_h=no)
127 if test "$kde_have_libdevinfo_h" = "yes"; then
128    kde_have_libdevinfo_lib=yes
129    AC_CHECK_LIB(devinfo, di_init, [LIBDEVINFO=-ldevinfo], kde_have_libdevinfo_lib=no)
130    if test "$kde_have_libdevinfo_lib" = "yes"; then
131       AC_DEFINE(HAVE_LIBDEVINFO_H, 1, [Defines if you have libdevinfo of Solaris 7 or later])
132       AC_SUBST(LIBDEVINFO)
133    fi
134 fi
135
136 dnl check for java
137 KDE_CHECK_JAVA_DIR
138
139 dnl check for an md5sum implementation. the GNU versions
140 dnl produce different output from the FreeBSD / Solaris 
141 dnl versions, so MD5SUM_CUT shows how to retrieve the
142 dnl checksum from the output.
143 MD5SUM_CUT="-f 1"
144 AC_PATH_PROGS(MD5SUM, [md5sum gmd5sum], [])
145 if test -z "$MD5SUM" ; then
146   AC_PATH_PROG(MD5SUM, [md5], [])
147   if test -z "$MD5SUM" ; then
148     AC_PATH_PROG(MD5SUM, [md5], [], [/sbin])
149   fi
150   if test -z "$MD5SUM" ; then
151     AC_MSG_WARN([No md5sum, gmd5sum, or md5 was found. The fish IOSlave cannot be compiled.])
152     # Will fail anyway, but in a better way than a blank command.
153     MD5SUM="md5sum"
154     MD5SUM_CUT="-f 1"
155   else
156     MD5SUM_CUT="-f 4"
157   fi
158 fi
159 AC_SUBST(MD5SUM_CUT)
160
161 dnl -----  Checks for X11 extensions -----
162 ac_save_ldflags="$LDFLAGS"
163 LDFLAGS="$X_LDFLAGS"
164
165 dnl --- XTEST check
166 XTESTLIB=
167 KDE_CHECK_HEADER(X11/extensions/XTest.h,
168     [AC_CHECK_LIB( Xtst, XTestFakeKeyEvent,
169         [AC_DEFINE(HAVE_XTEST, 1, [Define if you have the XTest extension])
170          XTESTLIB=-lXtst],
171         , [ $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS ])
172     ])
173 AC_SUBST(XTESTLIB)
174
175 dnl --- XKB check
176 KDE_CHECK_HEADER(X11/XKBlib.h,
177     [AC_CHECK_LIB( X11, XkbLockModifiers,
178         [AC_DEFINE(HAVE_XKB, 1, [Define if you have the XKB extension])],
179         , [ $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS ])
180      AC_CHECK_LIB( X11, XkbSetPerClientControls,
181         [AC_DEFINE(HAVE_XKBSETPERCLIENTCONTROLS, 1, [Define if you have XkbSetPerClientControls])],
182         , [ $X_PRE_LIBS -lXext -lX11 $X_EXTRA_LIBS ])
183     ], [], [#include <X11/Xlib.h>])
184
185 dnl --- Xcursor check (not technically an extension)
186 KDE_CHECK_HEADERS(X11/Xcursor/Xcursor.h,
187     [KDE_CHECK_LIB(Xcursor, XcursorSupportsARGB, [
188         LIB_XCURSOR=-lXcursor
189         AC_DEFINE_UNQUOTED(HAVE_XCURSOR, 1, [Define to 1 if you have Xcursor])
190     ], [ LIB_XCURSOR= ], [ $X_PRE_LIBS -lX11 $X_EXTRA_LIBS ])],
191     [ LIB_XCURSOR= ], [#include <X11/Xlib.h>])
192 AC_SUBST(LIB_XCURSOR)
193 AM_CONDITIONAL(have_xcursor, test "$LIB_XCURSOR" = -lXcursor)
194
195 dnl XRender check
196 KDE_CHECK_HEADER(X11/extensions/Xrender.h, [xrender_h=yes], [xrender_h=no])
197 if test "$xrender_h" = yes; then
198   KDE_CHECK_LIB(Xrender, XRenderComposite, [
199     LIB_XRENDER=-lXrender
200     AC_DEFINE_UNQUOTED(HAVE_XRENDER, 1, [Defined if your system has XRender support])
201   ], [], -lXext -lX11 $X_EXTRA_LIBS)
202 else
203   LIB_XRENDER=
204 fi
205 AC_SUBST(LIB_XRENDER)
206
207 LDFLAGS="$ac_save_ldflags"
208 dnl ----- end of X11 extension checks -----
209
210
211 CXXFLAGS="$CXXFLAGS $KDE_DEFAULT_CXXFLAGS"
212
213 KDE_INIT_DOXYGEN([KDE base API Reference], [Version $VERSION])
214
215 dnl Ok, kdebase has _sooo_ many Makefiles, that the check for uniqueness
216 dnl of those filenames in the list of the files (done by autoconf macros
217 dnl itself) is taking more that nine minutes (!).  For kdebase only we take
218 dnl out that test.  (matz@kde.org)
219 m4_define([_AC_CONFIG_UNIQUE], [])dnl
220
221 AH_VERBATIM(_osf_stuff, [
222 #if !defined(HAVE_SETEUID)
223 #define seteuid(_eu) setresuid(-1, _eu, -1)
224 #endif
225 ])
226
227 AH_VERBATIM(_broken_xkb, [
228 #if defined(__osf__) || defined(__APPLE__)
229 #define AVOID_XKB                 /* for konsole to avoid XKB and XTEST */
230 #endif
231 ])
232
233 dnl this is for kdm and kcontrol
234 KDE_EXPAND_MAKEVAR(KDE_CONFDIR, kde_confdir)
235 AC_DEFINE_UNQUOTED(KDE_CONFDIR, "$KDE_CONFDIR", [KDE's configuration directory])
236 KDE_EXPAND_MAKEVAR(KDE_DATADIR, kde_datadir)
237 AC_DEFINE_UNQUOTED(KDE_DATADIR, "$KDE_DATADIR", [KDE's static data directory])
238 KDE_EXPAND_MAKEVAR(KDE_BINDIR, kde_bindir)
239 AC_DEFINE_UNQUOTED(KDE_BINDIR, "$KDE_BINDIR", [KDE's binaries directory])
240 AC_SUBST(KDE_BINDIR)
241
242 dnl libart is used by kdm, kcontrol and thumbnails code in kioslaves
243 KDE_FIND_PATH(libart2-config, LIBART_CONFIG, [${prefix}/bin ${exec_prefix}/bin /usr/local/bin /opt/local/bin], [
244   AC_MSG_WARN([Could not find libart anywhere, check http://www.levien.com/libart/])
245 ])
246
247 if test -n "$LIBART_CONFIG"; then
248   vers=`$LIBART_CONFIG --version 2>/dev/null | awk 'BEGIN { FS = "."; } { printf "%d", ($1 * 1000 + $2) * 1000 + $3;}'`
249   if test -n "$vers" && test "$vers" -ge 2003008
250   then
251      LIBART_LIBS="`$LIBART_CONFIG --libs`"
252      LIBART_RPATH=
253      for args in $LIBART_LIBS; do
254           case $args in
255             -L*)
256                LIBART_RPATH="$LIBART_RPATH $args"
257                ;;
258           esac
259      done
260      LIBART_RPATH=`echo $LIBART_RPATH | sed -e "s/-L/-R/g"`
261      LIBART_CFLAGS="`$LIBART_CONFIG --cflags`"
262
263      AC_DEFINE_UNQUOTED(HAVE_LIBART, 1, [Defines if your system has the libart library])
264   else
265      AC_MSG_WARN([You need at least libart 2.3.8])
266   fi
267 fi
268
269
270 AC_SUBST(LIBART_LIBS)
271 AC_SUBST(LIBART_CFLAGS)
272 AC_SUBST(LIBART_RPATH)
273
274 AC_ARG_WITH([composite],
275   AC_HELP_STRING([--without-composite], [Disable Xcomposite support (default: check)]) )
276
277 AC_TRY_RUN([
278 #include <sys/socket.h>
279 #include <sys/un.h>
280 #include <sys/stat.h>
281 #include <sys/types.h>
282 #include <string.h>
283 #include <unistd.h>
284 #include <errno.h>
285 int main()
286 {
287     int fd, fd2;
288     struct sockaddr_un sa;
289
290     if ((fd = socket(PF_UNIX, SOCK_STREAM, 0)) < 0)
291         return 2;
292     sa.sun_family = AF_UNIX;
293     strcpy(sa.sun_path, "testsock");
294     unlink(sa.sun_path);
295     if (bind(fd, (struct sockaddr *)&sa, sizeof(sa)))
296         return 2;
297     chmod(sa.sun_path, 0);
298     setuid(getuid() + 1000);
299     if ((fd2 = socket(PF_UNIX, SOCK_STREAM, 0)) < 0)
300         return 2;
301     connect(fd2, (struct sockaddr *)&sa, sizeof(sa));
302     return errno != EACCES;
303 }
304 ], AC_DEFINE_UNQUOTED(HONORS_SOCKET_PERMS, 1, [Define to 1 if OS honors permission bits on socket inodes]))