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 2031 2009-07-09 14:44:32Z djmitche $
29 * dump the current Amanda version info
33 /* distribution-time information */
36 /* build-time information */
37 #include "genversion.h"
42 static size_t linelen;
44 #define startline(title) g_printf(" \"%-*s", LMARGIN, title); linelen = 0
45 #define endline() g_printf("\\n\",\n")
47 static void prstr(const char *);
48 static void prvar(const char *, const char *);
49 static void prundefvar(const char *var);
50 static void prnum(const char *var, long val);
52 int main(int, char **);
59 size_t len = strlen(string) + 1;
62 * If this string overflows this line, and there's other stuff
63 * on the line, create a new one.
65 if (linelen > 0 && linelen + len >= RMARGIN - LMARGIN) {
69 g_printf(" %s", string);
73 static char *buf = NULL;
74 static size_t buf_len = 0;
76 /* Print a text variable */
89 if(new_len > buf_len) {
92 buf = malloc(new_len);
94 g_fprintf(stderr, _("genversion: Not enough memory"));
99 g_snprintf(buf, buf_len, "%s=\\\"%s\\\"", var, val); /* safe */
103 /* Print a undef variable */
110 new_len = strlen(var)
113 if(new_len > buf_len) {
116 buf = malloc(new_len); /* let it die if malloc() fails */
118 g_fprintf(stderr, _("genversion: Not enough memory"));
123 g_snprintf(buf, buf_len, "%s=UNDEF", var); /* safe */
127 /* Print a numeric variable */
133 static char number[NUM_STR_SIZE];
136 g_snprintf(number, SIZEOF(number), "%ld", val);
137 new_len = strlen(var)
141 if(new_len > buf_len) {
144 buf = malloc(new_len); /* let it die if malloc() fails */
146 g_fprintf(stderr, _("genversion: Not enough memory"));
151 g_snprintf(buf, buf_len, "%s=%s", var, number); /* safe */
164 (void)argc; /* Quiet unused parameter warning */
165 (void)argv; /* Quiet unused parameter warning */
168 * Configure program for internationalization:
169 * 1) Only set the message locale for now.
170 * 2) Set textdomain for all amanda related programs to "amanda"
171 * We don't want to be forced to support dozens of message catalogs.
173 setlocale(LC_MESSAGES, "C");
174 textdomain("amanda");
176 g_printf(_("/* version.c - generated by genversion.c - DO NOT EDIT! */\n"));
177 g_printf("const char * const version_info[] = {\n");
181 v_len = SIZEOF("Amanda-") + strlen(v) + 1;
182 verstr = malloc(v_len);
184 g_fprintf(stderr, _("genversion: Not enough memory"));
188 g_snprintf(verstr, v_len, "Amanda-%s", v); /* safe */
189 prvar("VERSION", verstr);
193 prvar("BUILT_DATE", BUILT_DATE);
195 prundefvar("BUILT_DATE");
199 prvar("BUILT_MACH", BUILT_MACH);
201 prundefvar("BUILT_MACH");
205 prvar("BUILT_REV", BUILT_REV);
207 prundefvar("BUILT_REV");
211 prvar("BUILT_BRANCH", BUILT_BRANCH);
213 prundefvar("BUILT_BRANCH");
226 prvar("bindir", bindir);
227 prvar("sbindir", sbindir);
228 prvar("libexecdir", libexecdir);
229 prvar("amlibexecdir", amlibexecdir);
230 prvar("mandir", mandir);
231 prvar("AMANDA_TMPDIR", AMANDA_TMPDIR);
233 prvar("AMANDA_DBGDIR", AMANDA_DBGDIR);
235 prundefvar("AMANDA_DBGDIR");
237 prvar("CONFIG_DIR", CONFIG_DIR);
240 prvar("DEV_PREFIX", DEV_PREFIX);
242 prundefvar("DEV_PREFIX");
246 prvar("RDEV_PREFIX", RDEV_PREFIX);
248 prundefvar("RDEV_PREFIX");
253 prvar("RESTORE", RESTORE);
256 prundefvar("RESTORE");
260 prvar("VDUMP", VDUMP);
261 prvar("VRESTORE", VRESTORE);
264 prundefvar("VRESTORE");
268 prvar("XFSDUMP", XFSDUMP);
269 prvar("XFSRESTORE", XFSRESTORE);
271 prundefvar("XFSDUMP");
272 prundefvar("XFSRESTORE");
276 prvar("VXDUMP", VXDUMP);
277 prvar("VXRESTORE", VXRESTORE);
279 prundefvar("VXDUMP");
280 prundefvar("VXRESTORE");
284 prvar("SAMBA_CLIENT", SAMBA_CLIENT);
286 prundefvar("SAMBA_CLIENT");
290 prvar("GNUTAR", GNUTAR);
292 prundefvar("GNUTAR");
296 prvar("COMPRESS_PATH", COMPRESS_PATH);
298 prundefvar("COMPRESS_PATH");
301 #ifdef UNCOMPRESS_PATH
302 prvar("UNCOMPRESS_PATH", UNCOMPRESS_PATH);
304 prundefvar("UNCOMPRESS_PATH");
308 prvar("LPRCMD", LPRCMD);
310 prundefvar(" LPRCMD");
314 prvar("MAILER", MAILER);
316 prundefvar(" MAILER");
319 #ifdef GNUTAR_LISTED_INCREMENTAL_DIR
320 prvar("listed_incr_dir", GNUTAR_LISTED_INCREMENTAL_DIR);
322 prundefvar("GNUTAR_LISTED_INCREMENTAL_DIR");
328 prvar("DEFAULT_SERVER", DEFAULT_SERVER);
329 prvar("DEFAULT_CONFIG", DEFAULT_CONFIG);
330 prvar("DEFAULT_TAPE_SERVER", DEFAULT_TAPE_SERVER);
332 #ifdef DEFAULT_TAPE_DEVICE
333 prvar("DEFAULT_TAPE_DEVICE", DEFAULT_TAPE_DEVICE);
341 prstr("BROKEN_VOID");
344 #ifdef DUMP_RETURNS_1
345 prstr("DUMP_RETURNS_1");
352 #ifndef HAVE_STRERROR
353 prstr("NEED_STRERROR");
357 prstr("NEED_STRSTR");
361 prstr("HAVE_SYSVSHM");
364 #ifdef WANT_AMFLOCK_POSIX
365 prstr("AMFLOCK_POSIX");
367 #ifdef WANT_AMFLOCK_FLOCK
368 prstr("AMFLOCK_FLOCK");
370 #ifdef WANT_AMFLOCK_LOCKF
371 prstr("AMFLOCK_LOCKF");
373 #ifdef WANT_AMFLOCK_LNLOCK
374 prstr("AMFLOCK_LNLOCK");
382 prstr("STATFS_OSF1");
386 prstr("STATFS_ULTRIX");
390 prstr("SETPGRP_VOID");
397 #ifdef AMANDA_DEBUG_DAYS
398 prnum("AMANDA_DEBUG_DAYS", AMANDA_DEBUG_DAYS);
402 prstr("BSD_SECURITY");
406 prstr("KRB5_SECURITY");
410 prstr("RSH_SECURITY");
413 #ifdef USE_AMANDAHOSTS
414 prstr("USE_AMANDAHOSTS");
418 prstr("USE_RUNDUMP");
421 prvar("CLIENT_LOGIN", CLIENT_LOGIN);
424 prstr("CHECK_USERID");
431 #ifdef COMPRESS_SUFFIX
432 prvar("COMPRESS_SUFFIX", COMPRESS_SUFFIX);
435 #ifdef COMPRESS_FAST_OPT
436 prvar("COMPRESS_FAST_OPT", COMPRESS_FAST_OPT);
439 #ifdef COMPRESS_BEST_OPT
440 prvar("COMPRESS_BEST_OPT", COMPRESS_BEST_OPT);
443 #ifdef UNCOMPRESS_OPT
444 prvar("UNCOMPRESS_OPT", UNCOMPRESS_OPT);
449 g_printf(" 0\n};\n");
451 return (0); /* exit */