1 /* config.h.in --- xscreensaver, Copyright (c) 1998-2000 Jamie Zawinski.
3 * The best way to set these parameters is by running the included `configure'
4 * script. That examines your system, and generates `config.h' from
7 * If something goes very wrong, you can edit `config.h' directly, but beware
8 * that your changes will be lost if you ever run `configure' again.
12 /* *************************************************************************
13 CONFIGURING SERVER EXTENSIONS
14 ************************************************************************* */
16 /* Define this if you have the XReadDisplay extension (I think this is an
17 SGI-only thing; it's in <X11/extensions/readdisplay.h>.) A few of the
18 screenhacks will take advantage of this if it's available.
20 #undef HAVE_READ_DISPLAY_EXTENSION
22 /* Define this if you have the XHPDisableReset function (an HP only thing
23 which allows the Ctrl-Sh-Reset key sequence to be temporarily disabled.)
25 #undef HAVE_XHPDISABLERESET
27 /* First, some background: there are three distinct server extensions which
28 * are useful to a screen saver program: they are XIDLE, MIT-SCREEN-SAVER,
31 * The XIDLE extension resides in .../contrib/extensions/xidle/ on the X11R5
32 * contrib tape. This extension lets the client get accurate idle-time
33 * information from the X server in a potentially more reliable way than by
34 * simply watching for keyboard and mouse activity. However, the XIDLE
35 * extension has apparently not been ported to X11R6.
37 * The SCREEN_SAVER extension is found (as far as I know) only in the SGI
38 * X server, and it exists in all releases since (at least) Irix 5. The
39 * relevant header file is /usr/include/X11/extensions/XScreenSaver.h.
41 * The similarly-named MIT-SCREEN-SAVER extension came into existence long
42 * after the SGI SCREEN_SAVER extension was already in use, and resides in
43 * .../contrib/extensions/screensaver/ on the X11R6 contrib tape. It is
44 * also found in certain recent X servers built in to NCD X terminals.
46 * The MIT extension does basically the same thing that the XIDLE extension
47 * does, but there are two things wrong with it: first, because of the way
48 * the extension was designed, the `fade' option to XScreenSaver will be
49 * uglier: just before the screen fades out, there will be an unattractive
50 * flicker to black, because this extension blanks the screen *before*
51 * telling us that it is time to do so. Second, this extension is known to
52 * be buggy; on the systems I use, it works, but some people have reported
53 * X server crashes as a result of using it. XScreenSaver uses this
54 * extension rather conservatively, because when I tried to use any of its
55 * more complicated features, I could get it to crash the server at the
58 * In short, the MIT-SCREEN-SAVER extension is a piece of junk. The older
59 * SGI SCREEN_SAVER extension works great, as does XIDLE. It would be nice
60 * If those two existed on more systems, that is, would be adopted by the
61 * X Consortium in favor of their inferior "not-invented-here" entry.
64 /* Define this if you have the XIDLE extension installed. If you have the
65 * XIDLE extension, this is recommended. (You have this extension if the
66 * file /usr/include/X11/extensions/xidle.h exists.) Turning on this flag
67 * lets XScreenSaver work better with servers which support this extension;
68 * but it will still work with servers which do not suport it, so it's a good
69 * idea to compile in support for it if you can.
71 #undef HAVE_XIDLE_EXTENSION
73 /* Define this if you have the MIT-SCREEN-SAVER extension installed. See the
74 * caveats about this extension, above. (It's available if the file
75 * /usr/include/X11/extensions/scrnsaver.h exists.)
77 #undef HAVE_MIT_SAVER_EXTENSION
79 /* Define this if you have the SGI SCREEN_SAVER extension. This is standard
80 * on Irix systems, and not available elsewhere.
82 #undef HAVE_SGI_SAVER_EXTENSION
84 /* Define this if you have the SGI-VIDEO-CONTROL extension. This is standard
85 * on Irix systems, and not available elsewhere.
87 #undef HAVE_SGI_VC_EXTENSION
89 /* Define this if you have the XDPMS extension. This is standard on
90 * sufficiently-recent XFree86 systems, and possibly elsewhere. (It's
91 * available if the file /usr/include/X11/extensions/dpms.h exists.)
93 #undef HAVE_DPMS_EXTENSION
95 /* Define this if you have the functions XF86VidModeGetModeLine() and
96 * XF86VidModeGetViewPort(), in support of virtual desktops where the
97 * X server's root window is bigger than the actual screen. This is
98 * an XFree86 thing, and probably doesn't exist elsewhere. (It's
99 * available if the file /usr/include/X11/extensions/xf86vmode.h exists.)
101 #undef HAVE_XF86VMODE
103 /* Define this if you have the functions XF86VidModeGetGamma() and
104 * XF86VidModeSetGamma(), which allow clients to change the gamma
105 * response of the monitor. This is an XFree86 4.0.x thing, and
106 * probably doesn't exist elsewhere. (It's available if the file
107 * /usr/include/X11/extensions/xf86vmode.h exists and has stuff about
110 #undef HAVE_XF86VMODE_GAMMA
112 /* Define this if you have the functions XF86VidModeGetGammaRamp() and
113 * XF86VidModeSetGammaRamp(), which provide finer-grained control than
114 * XF86VidMode[GS]etGamma(). These appeared in XFree86 4.1.0.
116 #undef HAVE_XF86VMODE_GAMMA_RAMP
118 /* Define this if you have the Xinerama extension. This is standard on
119 * sufficiently-recent XFree86 systems, and possibly elsewhere. (It's
120 * available if the file /usr/include/X11/extensions/Xinerama.h exists.)
124 /* Define this if you have the XF86MiscSetGrabKeysState function (which allows
125 the Ctrl-Alt-KP_star and Ctrl-Alt-KP_slash key sequences to be temporarily
126 disabled. Sadly, it doesn't affect Ctrl-Alt-BS or Ctrl-Alt-F1.)
128 #undef HAVE_XF86MISCSETGRABKEYSSTATE
130 /* Define this if you have a Linux-like /proc/interrupts file which can be
131 * examined to determine when keyboard activity has occurred.
133 #undef HAVE_PROC_INTERRUPTS
137 /* *************************************************************************
138 CONFIGURING GRAPHICS TOOLKITS
139 ************************************************************************* */
141 /* Define this if you have Motif.
145 /* Define this if you have the XmComboBox Motif widget (Motif 2.0.)
147 #undef HAVE_XMCOMBOBOX
149 /* Define this if you have Gtk (any version.)
153 /* Define this if you have Gtk 2.x.
157 /* Define this if you have Gnome and want to build support for the
158 xscreensaver control panel in the Gnome Control Center (gnomecc).
159 (This is needed only with Gtk 1.x.)
163 /* Define this if HAVE_CRAPPLET is defined, and the function
164 capplet_widget_changes_are_immediate() is available.
166 #undef HAVE_CRAPPLET_IMMEDIATE
168 /* Define this if you have the XML library.
172 /* Define this if you have the XML library headers in their old,
173 * non-namespaced location (you lack the gnome-xml/libxml symlink)
175 #undef HAVE_OLD_XML_HEADERS
177 /* Define this if you have the XPM library installed. Some of the demos can
178 * make use of this if it is available.
182 /* Define this if you have the GDK_Pixbuf library installed. Some of the
183 * demos can make use of this if it is available.
185 #undef HAVE_GDK_PIXBUF
187 /* Define this if you have the Independent JPEG Group's JPEG library
188 * installed. Some of the demos can make use of this if it is available.
192 /* Define this if you have the Xmu library. This is standard part of X, and
193 * if your vendor doesn't ship it, you should report that as a bug.
197 /* Define this if you have OpenGL. Some of the demos require it, so if you
198 * don't have it, then those particular demos won't be built. (This won't
199 * affect the screen saver as a whole.)
203 /* Define this if you have OpenGL, but it's the MesaGL variant. (The
204 libraries have different names.) (HAVE_GL should be defined too.)
208 /* Define this if your version of OpenGL has the glBindTexture() routine.
209 This is the case for OpenGL 1.1, but not for OpenGL 1.0.
211 #undef HAVE_GLBINDTEXTURE
213 /* Define this if you have the -lgle and -lmatrix libraries (GL extrusion.)
217 /* Define this if you have the -lgle from GLE version 3
221 /* Define this if you have the X Shared Memory Extension.
223 #undef HAVE_XSHM_EXTENSION
225 /* Define this if you have the X Double Buffer Extension.
227 #undef HAVE_DOUBLE_BUFFER_EXTENSION
229 /* Some screenhacks like to run an external program to generate random pieces
230 of text; set this to the one you like. Note that this is just the
231 default; X resources can be used to override it.
233 #define FORTUNE_PROGRAM "fortune"
235 /* Set the name of the password helper program, if any
237 #undef PASSWD_HELPER_PROGRAM
241 /* *************************************************************************
242 CONFIGURING PASSWORD AUTHENTICATION
243 ************************************************************************* */
245 /* Define this to remove the option of locking the screen at all.
249 /* Define this if you want to use Kerberos authentication to lock/unlock the
250 * screen instead of your local password. This currently uses Kerberos V4,
251 * but a V5 server with V4 compatibility will work. WARNING: DO NOT USE AFS
252 * string-to-key passwords with this option. This option currently *only*
253 * works with standard Kerberos des_string_to_key. If your password is an
254 * AFS password and not a kerberos password, it will not authenticate
255 * properly. See the comments in driver/kpasswd.c for more information if you
260 /* Define this if you have Kerberos 5, meaning we need to use the Kerberos 4
261 * compatibility layer.
263 #undef HAVE_KERBEROS5
265 /* Define this if you want to use PAM (Pluggable Authentication Modules)
266 * to lock/unlock the screen, instead of standard /etc/passwd authentication.
270 /* If PAM is being used, this is the name of the PAM service that xscreensaver
271 * will authenticate as. The default is "xscreensaver", which means that the
272 * PAM library will look for an "xscreensaver" line in /etc/pam.conf, or (on
273 * recent Linux systems) will look for a file called /etc/pam.d/xscreensaver.
274 * Some systems might already have a PAM installation that is configured for
275 * xlock, so setting this to "xlock" would also work in that case.
277 #define PAM_SERVICE_NAME "xscreensaver"
279 /* Define if you have PAM and pam_strerror() requires two arguments. */
280 #undef PAM_STRERROR_TWO_ARGS
282 /* Define this if your system uses `shadow' passwords, that is, the passwords
283 * live in /etc/shadow instead of /etc/passwd, and one reads them with
284 * getspnam() instead of getpwnam(). (Note that SCO systems do some random
285 * other thing; others might as well. See the ifdefs in driver/passwd-pwent.c
286 * if you're having trouble related to reading passwords.)
288 #undef HAVE_SHADOW_PASSWD
290 /* Define this if your system is Digital or SCO Unix with so-called ``Enhanced
291 Security'', that is, the passwords live in /tcb/files/auth/<x>/<xyz>
292 instead of in /etc/passwd, and one reads them with getprpwnam() instead
295 #undef HAVE_ENHANCED_PASSWD
297 /* Define this if your system is Solaris with ``adjunct'' passwords (this is
298 the version where one gets at the passwords with getpwanam() instead of
299 getpwnam().) I haven't tested this one, let me know if it works.
301 #undef HAVE_ADJUNCT_PASSWD
303 /* Define this if you are running HPUX with so-called ``Secure Passwords''
304 (if you have /usr/include/hpsecurity.h, you probably have this.) I
305 haven't tested this one, let me know if it works.
307 #undef HAVE_HPUX_PASSWD
309 /* Define this if you are on a system that supports the VT_LOCKSWITCH and
310 VT_UNLOCKSWITCH ioctls. If this is defined, then when the screen is
311 locked, switching to another virtual terminal will also be prevented.
312 That is, the whole console will be locked, rather than just the VT on
313 which X is running. (Well, that's the theory anyway -- in practice,
314 I haven't yet figured out how to make that work.)
316 #undef HAVE_VT_LOCKSWITCH
319 /* Define this if you the openlog(), syslog(), and closelog() functions.
320 This is used for logging failed login attempts.
325 /* *************************************************************************
326 OTHER C ENVIRONMENT JUNK
327 ************************************************************************* */
329 /* Define this to void* if you're using X11R4 or earlier. */
332 /* Define if you have the nice function. */
335 /* Define if you have the setpriority function. */
336 #undef HAVE_SETPRIORITY
338 /* Define to empty if the keyword does not work. */
341 /* Define if you have <sys/wait.h> that is POSIX.1 compatible. */
342 #undef HAVE_SYS_WAIT_H
344 /* Define as __inline if that's what the C compiler calls it. */
347 /* Define to `int' if <sys/types.h> doesn't define. */
350 /* Define to `int' if <sys/types.h> doesn't define. */
353 /* Define as the return type of signal handlers (int or void). */
356 /* Define to `unsigned' if <sys/types.h> doesn't define. */
359 /* Define if you have the ANSI C header files. */
362 /* Define if you can safely include both <sys/time.h> and <time.h>. */
363 #undef TIME_WITH_SYS_TIME
365 /* Define if you have the gettimeofday function. */
366 #undef HAVE_GETTIMEOFDAY
368 /* Define if gettimeofday requires two arguments. */
369 #undef GETTIMEOFDAY_TWO_ARGS
371 /* Define if you have the putenv function. */
374 /* Define if you have the select function. */
377 /* Define if you have the getcwd function. */
380 /* Define if you have the getcwd function. */
383 /* Define if you have the realpath function. */
386 /* Define if you have the uname function. */
389 /* Define if you have the fcntl function. */
392 /* Define if you have the sigaction function. */
393 #undef HAVE_SIGACTION
395 /* Define this if you have the setrlimit function. */
396 #undef HAVE_SETRLIMIT
398 /* Define if you have the sbrk function. */
401 /* Define if you have the forkpty function. */
404 /* Define if you have the <unistd.h> header file. */
407 /* Define if you have the <crypt.h> header file. */
410 /* Define if you have <sys/select.h> that defines fd_set and FD_SET. */
411 #undef HAVE_SYS_SELECT_H
413 /* Define this if you do pings with a `struct icmp' and a `icmp_id' slot.
417 /* Define this if you do pings with a `struct icmphdr' and a `un.echo.id' slot.
421 /* This is the name of the gettext package to use.
423 #undef GETTEXT_PACKAGE
425 /* This is the same as GETTEXT_PACKAGE, but for the glade generated
430 /* Define this if you want to build with NLS support