2 * Amanda, The Advanced Maryland Automatic Network Disk Archiver
3 * Copyright (c) 1991-1999 University of Maryland at College Park
6 * Permission to use, copy, modify, distribute, and sell this software and its
7 * documentation for any purpose is hereby granted without fee, provided that
8 * the above copyright notice appear in all copies and that both that
9 * copyright notice and this permission notice appear in supporting
10 * documentation, and that the name of U.M. not be used in advertising or
11 * publicity pertaining to distribution of the software without specific,
12 * written prior permission. U.M. makes no representations about the
13 * suitability of this software for any purpose. It is provided "as is"
14 * without express or implied warranty.
16 * U.M. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL
17 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL U.M.
18 * BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
19 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION
20 * OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
21 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
23 * Authors: the Amanda Development Team. Its members are listed in a
24 * file named AUTHORS, in the root directory of this distribution.
27 * $Id: genversion.c,v 1.31 2003/10/07 17:09:46 martinea Exp $
29 * dump the current Amanda version info
33 #include "genversion.h"
40 #define startline(title) printf(" \"%-*s", LMARGIN, title); linelen = 0
41 #define endline() printf("\\n\",\n")
43 static void prstr P((const char *));
44 static void prvar P((const char *, const char *));
52 size_t len = strlen(string) + 1;
55 * If this string overflows this line, and there's other stuff
56 * on the line, create a new one.
58 if (linelen > 0 && linelen + len >= RMARGIN - LMARGIN) {
62 printf(" %s", string);
66 static char *buf = NULL;
67 static size_t buf_len = 0;
69 /* Print a text variable */
72 const char *var, *val;
81 if(new_len > buf_len) {
84 buf = malloc(new_len); /* let it die if malloc() fails */
86 sprintf(buf, "%s=\\\"%s\\\"", var, val); /* safe */
90 /* Print a undef variable */
100 if(new_len > buf_len) {
103 buf = malloc(new_len); /* let it die if malloc() fails */
105 sprintf(buf, "%s=UNDEF", var); /* safe */
109 /* Print a numeric variable */
115 static char number[NUM_STR_SIZE];
118 snprintf(number, sizeof(number), "%ld", val);
119 new_len = strlen(var)
123 if(new_len > buf_len) {
126 buf = malloc(new_len); /* let it die if malloc() fails */
128 sprintf(buf, "%s=%s", var, number); /* safe */
139 printf("/* version.c - generated by genversion.c - DO NOT EDIT! */\n");
140 printf("const char * const version_info[] = {\n");
144 v_len = sizeof("Amanda-") + strlen(v) + 1;
145 verstr = malloc(v_len);
146 sprintf(verstr, "Amanda-%s", v); /* safe */
147 prvar("VERSION", verstr);
151 prvar("BUILT_DATE", BUILT_DATE);
153 prundefvar("BUILT_DATE");
157 prvar("BUILT_MACH", BUILT_MACH);
159 prundefvar("BUILT_MACH");
169 prvar("CONFIGURE_COMMAND", CONFIGURE_COMMAND);
171 prundefvar("CONFIGURE_COMMAND");
178 prvar("bindir", bindir);
179 prvar("sbindir", sbindir);
180 prvar("libexecdir", libexecdir);
181 prvar("mandir", mandir);
182 prvar("AMANDA_TMPDIR", AMANDA_TMPDIR);
184 prvar("AMANDA_DBGDIR", AMANDA_DBGDIR);
186 prundefvar("AMANDA_DBGDIR");
188 prvar("CONFIG_DIR", CONFIG_DIR);
191 prvar("DEV_PREFIX", DEV_PREFIX);
193 prundefvar("DEV_PREFIX");
197 prvar("RDEV_PREFIX", RDEV_PREFIX);
199 prundefvar("RDEV_PREFIX");
204 prvar("RESTORE", RESTORE);
207 prundefvar("RESTORE");
211 prvar("VDUMP", VDUMP);
212 prvar("VRESTORE", VRESTORE);
215 prundefvar("VRESTORE");
219 prvar("XFSDUMP", XFSDUMP);
220 prvar("XFSRESTORE", XFSRESTORE);
222 prundefvar("XFSDUMP");
223 prundefvar("XFSRESTORE");
227 prvar("VXDUMP", VXDUMP);
228 prvar("VXRESTORE", VXRESTORE);
230 prundefvar("VXDUMP");
231 prundefvar("VXRESTORE");
235 prvar("SAMBA_CLIENT", SAMBA_CLIENT);
237 prundefvar("SAMBA_CLIENT");
241 prvar("GNUTAR", GNUTAR);
243 prundefvar("GNUTAR");
247 prvar("COMPRESS_PATH", COMPRESS_PATH);
249 prundefvar("COMPRESS_PATH");
252 #ifdef UNCOMPRESS_PATH
253 prvar("UNCOMPRESS_PATH", UNCOMPRESS_PATH);
255 prundefvar("UNCOMPRESS_PATH");
259 prvar("LPRCMD", LPRCMD);
261 prundefvar(" LPRCMD");
264 prvar("MAILER", MAILER);
266 #ifdef GNUTAR_LISTED_INCREMENTAL_DIR
267 prvar("listed_incr_dir", GNUTAR_LISTED_INCREMENTAL_DIR);
269 prundefvar("GNUTAR_LISTED_INCREMENTAL_DIR");
275 prvar("DEFAULT_SERVER", DEFAULT_SERVER);
276 prvar("DEFAULT_CONFIG", DEFAULT_CONFIG);
277 prvar("DEFAULT_TAPE_SERVER", DEFAULT_TAPE_SERVER);
278 prvar("DEFAULT_TAPE_DEVICE", DEFAULT_TAPE_DEVICE);
289 prstr("BROKEN_VOID");
292 #ifdef DUMP_RETURNS_1
293 prstr("DUMP_RETURNS_1");
300 #ifndef HAVE_STRERROR
301 prstr("NEED_STRERROR");
305 prstr("NEED_STRSTR");
309 prstr("HAVE_SYSVSHM");
312 #ifdef USE_POSIX_FCNTL
313 prstr("LOCKING=POSIX_FCNTL");
316 prstr("LOCKING=FLOCK");
319 prstr("LOCKING=LOCKF");
322 prstr("LOCKING=LNLOCK");
324 #if !defined(USE_POSIX_FCNTL) && !defined(USE_FLOCK) && !defined(USE_LOCK) && !defined(USE_LNLOCK)
325 prstr("LOCKING=**NONE**");
333 prstr("STATFS_OSF1");
337 prstr("STATFS_ULTRIX");
341 prstr("SETPGRP_VOID");
352 #ifdef AMANDA_DEBUG_DAYS
353 prnum("AMANDA_DEBUG_DAYS", AMANDA_DEBUG_DAYS);
357 prstr("BSD_SECURITY");
361 prstr("KRB4_SECURITY");
365 prstr("KRB5_SECURITY");
369 prstr("RSH_SECURITY");
372 #ifdef USE_AMANDAHOSTS
373 prstr("USE_AMANDAHOSTS");
377 prstr("USE_RUNDUMP");
380 prvar("CLIENT_LOGIN", CLIENT_LOGIN);
383 prstr("FORCE_USERID");
386 #ifdef USE_VERSION_SUFFIXES
387 prstr("USE_VERSION_SUFFIXES");
394 #ifdef COMPRESS_SUFFIX
395 prvar("COMPRESS_SUFFIX", COMPRESS_SUFFIX);
398 #ifdef COMPRESS_FAST_OPT
399 prvar("COMPRESS_FAST_OPT", COMPRESS_FAST_OPT);
402 #ifdef COMPRESS_BEST_OPT
403 prvar("COMPRESS_BEST_OPT", COMPRESS_BEST_OPT);
406 #ifdef UNCOMPRESS_OPT
407 prvar("UNCOMPRESS_OPT", UNCOMPRESS_OPT);