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.36 2006/07/13 03:22:20 paddy_s Exp $
29 * dump the current Amanda version info
33 #include "genversion.h"
38 static size_t linelen;
40 #define startline(title) printf(" \"%-*s", LMARGIN, title); linelen = 0
41 #define endline() printf("\\n\",\n")
43 static void prstr(const char *);
44 static void prvar(const char *, const char *);
45 static void prundefvar(const char *var);
46 static void prnum(const char *var, long val);
48 int main(int, char **);
55 size_t len = strlen(string) + 1;
58 * If this string overflows this line, and there's other stuff
59 * on the line, create a new one.
61 if (linelen > 0 && linelen + len >= RMARGIN - LMARGIN) {
65 printf(" %s", string);
69 static char *buf = NULL;
70 static size_t buf_len = 0;
72 /* Print a text variable */
85 if(new_len > buf_len) {
88 buf = malloc(new_len);
90 fprintf(stderr, "genversion: Not enough memory");
95 snprintf(buf, buf_len, "%s=\\\"%s\\\"", var, val); /* safe */
99 /* Print a undef variable */
106 new_len = strlen(var)
109 if(new_len > buf_len) {
112 buf = malloc(new_len); /* let it die if malloc() fails */
114 fprintf(stderr, "genversion: Not enough memory");
119 snprintf(buf, buf_len, "%s=UNDEF", var); /* safe */
123 /* Print a numeric variable */
129 static char number[NUM_STR_SIZE];
132 snprintf(number, SIZEOF(number), "%ld", val);
133 new_len = strlen(var)
137 if(new_len > buf_len) {
140 buf = malloc(new_len); /* let it die if malloc() fails */
142 fprintf(stderr, "genversion: Not enough memory");
147 snprintf(buf, buf_len, "%s=%s", var, number); /* safe */
160 (void)argc; /* Quiet unused parameter warning */
161 (void)argv; /* Quiet unused parameter warning */
163 printf("/* version.c - generated by genversion.c - DO NOT EDIT! */\n");
164 printf("const char * const version_info[] = {\n");
168 v_len = SIZEOF("Amanda-") + strlen(v) + 1;
169 verstr = malloc(v_len);
171 fprintf(stderr, "genversion: Not enough memory");
175 snprintf(verstr, v_len, "Amanda-%s", v); /* safe */
176 prvar("VERSION", verstr);
180 prvar("BUILT_DATE", BUILT_DATE);
182 prundefvar("BUILT_DATE");
186 prvar("BUILT_MACH", BUILT_MACH);
188 prundefvar("BUILT_MACH");
198 prvar("CONFIGURE_COMMAND", CONFIGURE_COMMAND);
200 prundefvar("CONFIGURE_COMMAND");
207 prvar("bindir", bindir);
208 prvar("sbindir", sbindir);
209 prvar("libexecdir", libexecdir);
210 prvar("mandir", mandir);
211 prvar("AMANDA_TMPDIR", AMANDA_TMPDIR);
213 prvar("AMANDA_DBGDIR", AMANDA_DBGDIR);
215 prundefvar("AMANDA_DBGDIR");
217 prvar("CONFIG_DIR", CONFIG_DIR);
220 prvar("DEV_PREFIX", DEV_PREFIX);
222 prundefvar("DEV_PREFIX");
226 prvar("RDEV_PREFIX", RDEV_PREFIX);
228 prundefvar("RDEV_PREFIX");
233 prvar("RESTORE", RESTORE);
236 prundefvar("RESTORE");
240 prvar("VDUMP", VDUMP);
241 prvar("VRESTORE", VRESTORE);
244 prundefvar("VRESTORE");
248 prvar("XFSDUMP", XFSDUMP);
249 prvar("XFSRESTORE", XFSRESTORE);
251 prundefvar("XFSDUMP");
252 prundefvar("XFSRESTORE");
256 prvar("VXDUMP", VXDUMP);
257 prvar("VXRESTORE", VXRESTORE);
259 prundefvar("VXDUMP");
260 prundefvar("VXRESTORE");
264 prvar("SAMBA_CLIENT", SAMBA_CLIENT);
266 prundefvar("SAMBA_CLIENT");
270 prvar("GNUTAR", GNUTAR);
272 prundefvar("GNUTAR");
276 prvar("COMPRESS_PATH", COMPRESS_PATH);
278 prundefvar("COMPRESS_PATH");
281 #ifdef UNCOMPRESS_PATH
282 prvar("UNCOMPRESS_PATH", UNCOMPRESS_PATH);
284 prundefvar("UNCOMPRESS_PATH");
288 prvar("LPRCMD", LPRCMD);
290 prundefvar(" LPRCMD");
293 prvar("MAILER", MAILER);
295 #ifdef GNUTAR_LISTED_INCREMENTAL_DIR
296 prvar("listed_incr_dir", GNUTAR_LISTED_INCREMENTAL_DIR);
298 prundefvar("GNUTAR_LISTED_INCREMENTAL_DIR");
304 prvar("DEFAULT_SERVER", DEFAULT_SERVER);
305 prvar("DEFAULT_CONFIG", DEFAULT_CONFIG);
306 prvar("DEFAULT_TAPE_SERVER", DEFAULT_TAPE_SERVER);
308 #ifdef DEFAULT_TAPE_DEVICE
309 prvar("DEFAULT_TAPE_DEVICE", DEFAULT_TAPE_DEVICE);
321 prstr("BROKEN_VOID");
324 #ifdef DUMP_RETURNS_1
325 prstr("DUMP_RETURNS_1");
332 #ifndef HAVE_STRERROR
333 prstr("NEED_STRERROR");
337 prstr("NEED_STRSTR");
341 prstr("HAVE_SYSVSHM");
344 #ifdef USE_POSIX_FCNTL
345 prstr("LOCKING=POSIX_FCNTL");
348 prstr("LOCKING=FLOCK");
351 prstr("LOCKING=LOCKF");
354 prstr("LOCKING=LNLOCK");
356 #if !defined(USE_POSIX_FCNTL) && !defined(USE_FLOCK) && !defined(USE_LOCK) && !defined(USE_LNLOCK)
357 prstr("LOCKING=**NONE**");
365 prstr("STATFS_OSF1");
369 prstr("STATFS_ULTRIX");
373 prstr("SETPGRP_VOID");
384 #ifdef AMANDA_DEBUG_DAYS
385 prnum("AMANDA_DEBUG_DAYS", AMANDA_DEBUG_DAYS);
389 prstr("BSD_SECURITY");
393 prstr("KRB4_SECURITY");
397 prstr("KRB5_SECURITY");
401 prstr("RSH_SECURITY");
404 #ifdef USE_AMANDAHOSTS
405 prstr("USE_AMANDAHOSTS");
409 prstr("USE_RUNDUMP");
412 prvar("CLIENT_LOGIN", CLIENT_LOGIN);
415 prstr("FORCE_USERID");
418 #ifdef USE_VERSION_SUFFIXES
419 prstr("USE_VERSION_SUFFIXES");
426 #ifdef COMPRESS_SUFFIX
427 prvar("COMPRESS_SUFFIX", COMPRESS_SUFFIX);
430 #ifdef COMPRESS_FAST_OPT
431 prvar("COMPRESS_FAST_OPT", COMPRESS_FAST_OPT);
434 #ifdef COMPRESS_BEST_OPT
435 prvar("COMPRESS_BEST_OPT", COMPRESS_BEST_OPT);
438 #ifdef UNCOMPRESS_OPT
439 prvar("UNCOMPRESS_OPT", UNCOMPRESS_OPT);
446 return (0); /* exit */