2 Unix SMB/Netbios implementation.
4 Build Options for Samba Suite
5 Copyright (C) Vance Lankhaar <vlankhaar@hotmail.com> 2001
6 Copyright (C) Andrew Bartlett <abartlet@samba.org> 2001
8 This program is free software; you can redistribute it and/or modify
9 it under the terms of the GNU General Public License as published by
10 the Free Software Foundation; either version 2 of the License, or
11 (at your option) any later version.
13 This program is distributed in the hope that it will be useful,
14 but WITHOUT ANY WARRANTY; without even the implied warranty of
15 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 GNU General Public License for more details.
18 You should have received a copy of the GNU General Public License
19 along with this program; if not, write to the Free Software
20 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
24 #include "build_env.h"
25 #include "dynconfig.h"
27 static void output(BOOL screen, char *format, ...) PRINTF_ATTRIBUTE(2,3);
30 #define OUTPUT(x) snprintf(outstring,sizeof(outstring),x); output(screen,outstring);
32 /****************************************************************************
33 helper function for build_options
34 ****************************************************************************/
35 static void output(BOOL screen, char *format, ...)
41 vasprintf(&ptr,format,ap);
53 /****************************************************************************
54 options set at build time for the samba suite
55 ****************************************************************************/
56 void build_options(BOOL screen)
58 if ((DEBUGLEVEL < 4) && (!screen)) {
63 /* Output information about the build environment */
64 output(screen,"Build environment:\n");
65 output(screen," Built by: %s@%s\n",BUILD_ENV_USER,BUILD_ENV_HOST);
66 output(screen," Built on: %s\n",BUILD_ENV_DATE);
68 output(screen," Built using: %s\n",BUILD_ENV_COMPILER);
69 output(screen," Build host: %s\n",BUILD_ENV_UNAME);
70 output(screen," SRCDIR: %s\n",BUILD_ENV_SRCDIR);
71 output(screen," BUILDDIR: %s\n",BUILD_ENV_BUILDDIR);
76 /* Output various options (most correspond to --with options) */
77 output(screen,"\nBuild options:\n");
78 #ifdef WITH_SMBWRAPPER
79 output(screen," WITH_SMBWRAPPER\n");
82 output(screen," WITH_AFS\n");
85 output(screen," WITH_DFS\n");
88 output(screen," KRB4_AUTH");
91 output(screen," HAVE_KRB5");
94 output(screen," WITH_AUTOMOUNT\n");
97 output(screen," WITH_SMBMOUNT\n");
100 output(screen," WITH_PAM\n");
103 output(screen," WITH_TDB_SAM\n");
106 output(screen," WITH_LDAP_SAM\n");
108 #ifdef WITH_SMBPASSWD_SAM
109 output(screen," WITH_SMBPASSWD_SAM\n");
111 #ifdef WITH_NISPLUS_SAM
112 output(screen," WITH_NISPLUS_SAM\n");
114 #ifdef WITH_NISPLUS_HOME
115 output(screen," WITH_NISPLUS_HOME\n");
118 output(screen," WITH_SSL\n");
121 output(screen," SSL_DIR: %s\n",SSL_DIR);
124 output(screen," WITH_SYSLOG\n");
127 output(screen," WITH_PROFILE\n");
130 output(screen," WITH_QUOTAS\n");
133 output(screen," WITH_MSDFS\n");
136 output(screen," WITH_VFS\n");
139 output(screen," USE_SPINLOCKS\n");
141 #ifdef SPARC_SPINLOCKS
142 output(screen," SPARC_SPINLOCKS\n");
144 #ifdef INTEL_SPINLOCKS
145 output(screen," INTEL_SPINLOCKS\n");
147 #ifdef MIPS_SPINLOCKS
148 output(screen," MIPS_SPINLOCKS\n");
150 #ifdef POWERPC_SPINLOCKS
151 output(screen," POWERPC_SPINLOCKS\n");
153 #ifdef HAVE_UNIXWARE_ACLS
154 output(screen," HAVE_UNIXWARE_ACLS\n");
156 #ifdef HAVE_SOLARIS_ACLS
157 output(screen," HAVE_SOLARIS_ACLS\n");
159 #ifdef HAVE_IRIX_ACLS
160 output(screen," HAVE_IRIX_ACLS\n");
163 output(screen," HAVE_AIX_ACLS\n");
165 #ifdef HAVE_POSIX_ACLS
166 output(screen," HAVE_POSIX_ACLS\n");
168 #ifdef HAVE_TRU64_ACLS
169 output(screen," HAVE_TRU64_ACLS\n");
172 #ifdef HAVE_ACL_GET_PERM_NP
173 output(screen," HAVE_ACL_GET_PERM_NP\n");
176 output(screen," HAVE_NO_ACLS\n");
178 #ifdef HAVE_LIBREADLINE
179 output(screen," HAVE_LIBREADLINE\n");
182 output(screen," WITH_LIBICONV: %s\n",WITH_LIBICONV);
186 /* Output various paths to files and directories */
187 output(screen,"\nPaths:\n");
188 output(screen," CONFIGFILE: %s\n", dyn_CONFIGFILE);
190 output(screen," PRIVATE_DIR: %s\n",PRIVATE_DIR);
193 output(screen," LMHOSTSFILE: %s\n",LMHOSTSFILE);
195 output(screen," SBINDIR: %s\n", dyn_SBINDIR);
196 output(screen," BINDIR: %s\n", dyn_BINDIR);
197 output(screen," LOCKDIR: %s\n",dyn_LOCKDIR);
199 output(screen," DRIVERFILE: %s\n",DRIVERFILE);
201 output(screen," LOGFILEBASE: %s\n", dyn_LOGFILEBASE);
203 output(screen," FORMSFILE: %s\n",FORMSFILE);
206 output(screen," NTDRIVERSDIR: %s\n",NTDRIVERSDIR);
209 /*Output various other options (most map to defines in the configure script*/
210 output(screen,"\nOther Build Options:\n");
212 output(screen," HAVE_VOLATILE\n");
215 output(screen," HAVE_SHADOW_H\n");
218 output(screen," HAVE_CRYPT\n");
220 #ifdef USE_BOTH_CRYPT_CALLS
221 output(screen," USE_BOTH_CRYPT_CALLS\n");
223 #ifdef HAVE_TRUNCATED_SALT
224 output(screen," HAVE_TRUNCATED_SALT\n");
227 output(screen," HAVE_CUPS\n");
229 #ifdef HAVE_CUPS_CUPS_H
230 output(screen," HAVE_CUPS_CUPS_H\n");
232 #ifdef HAVE_CUPS_LANGUAGE_H
233 output(screen," HAVE_CUPS_LANGUAGE_H\n");
236 output(screen," HAVE_LIBDL\n");
238 #ifdef HAVE_UNIXSOCKET
239 output(screen," HAVE_UNIXSOCKET\n");
241 #ifdef HAVE_SOCKLEN_T_TYPE
242 output(screen," HAVE_SOCKLEN_T_TYPE\n");
244 #ifdef HAVE_SIG_ATOMIC_T_TYPE
245 output(screen," HAVE_SIG_ATOMIC_T_TYPE\n");
247 #ifdef HAVE_SETRESUID
248 output(screen," HAVE_SETRESUID\n");
250 #ifdef HAVE_SETRESGID
251 output(screen," HAVE_SETRESGID\n");
254 output(screen," HAVE_CONNECT\n");
256 #ifdef HAVE_YP_GET_DEFAULT_DOMAIN
257 output(screen," HAVE_YP_GET_DEFAULT_DOMAIN\n");
260 output(screen," HAVE_STAT64\n");
263 output(screen," HAVE_LSTAT64\n");
266 output(screen," HAVE_FSTAT64\n");
268 #ifdef HAVE_STRCASECMP
269 output(screen," HAVE_STRCASECMP\n");
272 output(screen," HAVE_MEMSET\n");
275 output(screen," HAVE_LONGLONG\n");
277 #ifdef COMPILER_SUPPORTS_LL
278 output(screen," COMPILER_SUPPORTS_LL\n");
281 output(screen," SIZEOF_OFF_T: %d\n",SIZEOF_OFF_T);
284 output(screen," HAVE_OFF64_T\n");
287 output(screen," SIZEOF_INO_T: %d\n",SIZEOF_INO_T);
290 output(screen," HAVE_INO64_T\n");
292 #ifdef HAVE_STRUCT_DIRENT64
293 output(screen," HAVE_STRUCT_DIRENT64\n");
295 #ifdef HAVE_UNSIGNED_CHAR
296 output(screen," HAVE_UNSIGNED_CHAR\n");
298 #ifdef HAVE_SOCK_SIN_LEN
299 output(screen," HAVE_SOCK_SIN_LEN\n");
301 #ifdef SEEKDIR_RETURNS_VOID
302 output(screen," SEEKDIR_RETURNS_VOID\n");
304 #ifdef HAVE_FILE_MACRO
305 output(screen," HAVE_FILE_MACRO\n");
307 #ifdef HAVE_FUNCTION_MACRO
308 output(screen," HAVE_FUNCTION_MACRO\n");
310 #ifdef HAVE_GETTIMEOFDAY
311 output(screen," HAVE_GETTIMEOFDAY\n");
313 #ifdef HAVE_C99_VSNPRINTF
314 output(screen," HAVE_C99_VSNPRINTF\n");
316 #ifdef HAVE_BROKEN_READDIR
317 output(screen," HAVE_BROKEN_READDIR\n");
319 #ifdef HAVE_NATIVE_ICONV
320 output(screen," HAVE_NATIVE_ICONV\n");
322 #ifdef HAVE_KERNEL_OPLOCKS_LINUX
323 output(screen," HAVE_KERNEL_OPLOCKS_LINUX\n");
325 #ifdef HAVE_KERNEL_CHANGE_NOTIFY
326 output(screen," HAVE_KERNEL_CHANGE_NOTIFY\n");
328 #ifdef HAVE_KERNEL_SHARE_MODES
329 output(screen," HAVE_KERNEL_SHARE_MODES\n");
331 #ifdef HAVE_KERNEL_OPLOCKS_IRIX
332 output(screen," HAVE_KERNEL_OPLOCKS_IRIX\n");
334 #ifdef HAVE_IRIX_SPECIFIC_CAPABILITIES
335 output(screen," HAVE_IRIX_SPECIFIC_CAPABILITIES\n");
337 #ifdef HAVE_INT16_FROM_RPC_RPC_H
338 output(screen," HAVE_INT16_FROM_RPC_RPC_H\n");
340 #ifdef HAVE_UINT16_FROM_RPC_RPC_H
341 output(screen," HAVE_UINT16_FROM_RPC_RPC_H\n");
343 #ifdef HAVE_INT32_FROM_RPC_RPC_H
344 output(screen," HAVE_INT16_FROM_RPC_RPC_H\n");
346 #ifdef HAVE_UINT32_FROM_RPC_RPC_H
347 output(screen," HAVE_UINT32_FROM_RPC_RPC_H\n");
349 #ifdef HAVE_RPC_AUTH_ERROR_CONFLICT
350 output(screen," HAVE_RPC_AUTH_ERROR_CONFLICT\n");
352 #ifdef HAVE_FTRUNCATE_EXTEND
353 output(screen," HAVE_FTRUNCATE_EXTEND\n");
355 #ifdef HAVE_WORKING_AF_LOCAL
356 output(screen," HAVE_WORKING_AF_LOCAL\n");
358 #ifdef HAVE_BROKEN_GETGROUPS
359 output(screen," HAVE_BROKEN_GETGROUPS\n");
361 #ifdef REPLACE_GETPASS
362 output(screen," REPLACE_GETPASS\n");
364 #ifdef REPLACE_INET_NTOA
365 output(screen," REPLACE_INET_NTOA\n");
367 #ifdef HAVE_SECURE_MKSTEMP
368 output(screen," HAVE_SECURE_MKSTEMP\n");
370 #ifdef SYSCONF_SC_NGROUPS_MAX
371 output(screen," SYSCONF_SC_NGROUPS_MAX\n");
373 #ifdef HAVE_IFACE_AIX
374 output(screen," HAVE_IFACE_AIX\n");
376 #ifdef HAVE_IFACE_IFCONF
377 output(screen," HAVE_IFACE_IFCONF\n");
379 #ifdef HAVE_IFACE_IFREQ
380 output(screen," HAVE_IFACE_IFREQ\n");
383 output(screen," USE_SETRESUID\n");
386 output(screen," USE_SETREUID\n");
389 output(screen," USE_SETEUID\n");
392 output(screen," USE_SETUIDX\n");
395 output(screen," HAVE_MMAP\n");
397 #ifdef MMAP_BLACKLIST
398 output(screen," MMAP_BLACKLIST\n");
400 #ifdef FTRUNCATE_NEEDS_ROOT
401 output(screen," FTRUNCATE_NEEDS_ROOT\n");
403 #ifdef HAVE_FCNTL_LOCK
404 output(screen," HAVE_FCNTL_LOCK\n");
406 #ifdef HAVE_BROKEN_FCNTL64_LOCKS
407 output(screen," HAVE_BROKEN_FCNTL64_LOCKS\n");
409 #ifdef HAVE_STRUCT_FLOCK64
410 output(screen," HAVE_STRUCT_FLOCK64\n");
412 #ifdef BROKEN_NISPLUS_INCLUDE_FILES
413 output(screen," BROKEN_NISPLUS_INCLUDE_FILES\n");
416 output(screen," HAVE_LIBPAM\n");
418 #ifdef STAT_STATVFS64
419 output(screen," STAT_STATVFS64\n");
422 output(screen," STAT_STATVFS\n");
424 #ifdef STAT_STATFS3_OSF1
425 output(screen," STAT_STATFS3_OSF1\n");
427 #ifdef STAT_STATFS2_BSIZE
428 output(screen," STAT_STATFS2_BSIZE\n");
431 output(screen," STAT_STATFS4\n");
433 #ifdef STAT_STATFS2_FSIZE
434 output(screen," STAT_STATFS2_FSIZE\n");
436 #ifdef STAT_STATFS2_FS_DATA
437 output(screen," STAT_STATFS2_FS_DATA\n");
439 #ifdef HAVE_EXPLICIT_LARGEFILE_SUPPORT
440 output(screen," HAVE_EXPLICIT_LARGEFILE_SUPPORT\n");
444 /* Output UTMP Stuff */
445 output(screen,"\nUTMP Related:\n");
446 output(screen," WITH_UTMP\n");
449 output(screen," HAVE_UTIMBUF\n");
451 #ifdef HAVE_UT_UT_NAME
452 output(screen," HAVE_UT_UT_NAME\n");
454 #ifdef HAVE_UT_UT_USER
455 output(screen," HAVE_UT_UT_USER\n");
458 output(screen," HAVE_UT_UT_ID\n");
460 #ifdef HAVE_UT_UT_HOST
461 output(screen," HAVE_UT_UT_HOST\n");
463 #ifdef HAVE_UT_UT_TIME
464 output(screen," HAVE_UT_UT_TIME\n");
467 output(screen," HAVE_UT_UT_TV\n");
469 #ifdef HAVE_UT_UT_TYPE
470 output(screen," HAVE_UT_UT_TYPE\n");
472 #ifdef HAVE_UT_UT_PID
473 output(screen," HAVE_UT_UT_PID\n");
475 #ifdef HAVE_UT_UT_EXIT
476 output(screen," HAVE_UT_UT_EXIT\n");
478 #ifdef HAVE_UT_UT_ADDR
479 output(screen," HAVE_UT_UT_ADDR\n");
481 #ifdef PUTUTLINE_RETURNS_UTMP
482 output(screen," PUTUTLINE_RETURNS_UTMP\n");
484 #ifdef HAVE_UX_UT_SYSLEN
485 output(screen," HAVE_UX_UT_SYSLEN\n");
487 #endif /* WITH_UTMP */
489 /* Output Build OS */
490 output(screen,"\nBuilt for host os:\n");
492 output(screen," LINUX\n");
495 output(screen," SUNOS5\n");
498 output(screen," SUNOS4\n");
500 /* BSD Isn't Defined in the configure script, but there is something about it in include/config.h.in (and I guess acconfig.h) */
502 output(screen," BSD\n");
505 output(screen," IRIX\n");
508 output(screen," IRIX6\n");
511 output(screen," AIX\n");
514 output(screen," HPUX\n");
517 output(screen," QNX\n");
520 output(screen," OSF1\n");
523 output(screen," SCO\n");
526 output(screen," UNIXWARE\n");
529 output(screen," NEXT2\n");
532 output(screen," RELIANTUNIX\n");
535 /* Output the sizes of the various types */
536 output(screen,"\nType sizes:\n");
537 output(screen," sizeof(char): %d\n",sizeof(char));
538 output(screen," sizeof(int): %d\n",sizeof(int));
539 output(screen," sizeof(long): %d\n",sizeof(long));
540 output(screen," sizeof(uint8): %d\n",sizeof(uint8));
541 output(screen," sizeof(uint16): %d\n",sizeof(uint16));
542 output(screen," sizeof(uint32): %d\n",sizeof(uint32));
543 output(screen," sizeof(short): %d\n",sizeof(short));
544 output(screen," sizeof(void*): %d\n",sizeof(void*));