* file named AUTHORS, in the root directory of this distribution.
*/
/*
- * $Id: genversion.c,v 1.31 2003/10/07 17:09:46 martinea Exp $
+ * $Id: genversion.c 1168 2008-07-03 14:15:21Z djmitche $
*
* dump the current Amanda version info
*/
#include "amanda.h"
#include "version.h"
+
+/* distribution-time information */
+#include "svn-info.h"
+
+/* build-time information */
#include "genversion.h"
#define LMARGIN 6
#define RMARGIN 70
-static int linelen;
+static size_t linelen;
-#define startline(title) printf(" \"%-*s", LMARGIN, title); linelen = 0
-#define endline() printf("\\n\",\n")
+#define startline(title) g_printf(" \"%-*s", LMARGIN, title); linelen = 0
+#define endline() g_printf("\\n\",\n")
-static void prstr P((const char *));
-static void prvar P((const char *, const char *));
-int main P((void));
+static void prstr(const char *);
+static void prvar(const char *, const char *);
+static void prundefvar(const char *var);
+static void prnum(const char *var, long val);
+
+int main(int, char **);
/* Print a string */
static void
-prstr(string)
- const char *string;
+prstr(
+ const char *string)
{
size_t len = strlen(string) + 1;
endline();
startline("");
}
- printf(" %s", string);
+ g_printf(" %s", string);
linelen += len;
}
/* Print a text variable */
static void
-prvar(var, val)
- const char *var, *val;
+prvar(
+ const char *var,
+ const char *val)
{
size_t new_len;
new_len = strlen(var)
- + sizeof("=\\\"")
+ + SIZEOF("=\\\"")
+ strlen(val)
- + sizeof("\\\"")
+ + SIZEOF("\\\"")
+ 1;
if(new_len > buf_len) {
free(buf);
buf_len = new_len;
- buf = malloc(new_len); /* let it die if malloc() fails */
+ buf = malloc(new_len);
+ if (!buf) {
+ g_fprintf(stderr, _("genversion: Not enough memory"));
+ abort();
+ /*NOTREACHED*/
+ }
}
- sprintf(buf, "%s=\\\"%s\\\"", var, val); /* safe */
+ g_snprintf(buf, buf_len, "%s=\\\"%s\\\"", var, val); /* safe */
prstr(buf);
}
/* Print a undef variable */
static void
-prundefvar(var)
- const char *var;
+prundefvar(
+ const char *var)
{
size_t new_len;
new_len = strlen(var)
- + sizeof("=UNDEF")
+ + SIZEOF("=UNDEF")
+ 1;
if(new_len > buf_len) {
free(buf);
buf_len = new_len;
buf = malloc(new_len); /* let it die if malloc() fails */
+ if (!buf) {
+ g_fprintf(stderr, _("genversion: Not enough memory"));
+ abort();
+ /*NOTREACHED*/
+ }
}
- sprintf(buf, "%s=UNDEF", var); /* safe */
+ g_snprintf(buf, buf_len, "%s=UNDEF", var); /* safe */
prstr(buf);
}
/* Print a numeric variable */
static void
-prnum(var, val)
- const char *var;
- long val;
+prnum(
+ const char *var,
+ long val)
{
static char number[NUM_STR_SIZE];
size_t new_len;
- snprintf(number, sizeof(number), "%ld", val);
+ g_snprintf(number, SIZEOF(number), "%ld", val);
new_len = strlen(var)
- + sizeof("=")
+ + SIZEOF("=")
+ strlen(number)
+ 1;
if(new_len > buf_len) {
free(buf);
buf_len = new_len;
buf = malloc(new_len); /* let it die if malloc() fails */
+ if (!buf) {
+ g_fprintf(stderr, _("genversion: Not enough memory"));
+ abort();
+ /*NOTREACHED*/
+ }
}
- sprintf(buf, "%s=%s", var, number); /* safe */
+ g_snprintf(buf, buf_len, "%s=%s", var, number); /* safe */
prstr(buf);
}
int
-main()
+main(
+ int argc,
+ char ** argv)
{
const char *v;
char *verstr;
size_t v_len;
- printf("/* version.c - generated by genversion.c - DO NOT EDIT! */\n");
- printf("const char * const version_info[] = {\n");
+ (void)argc; /* Quiet unused parameter warning */
+ (void)argv; /* Quiet unused parameter warning */
+
+ /*
+ * Configure program for internationalization:
+ * 1) Only set the message locale for now.
+ * 2) Set textdomain for all amanda related programs to "amanda"
+ * We don't want to be forced to support dozens of message catalogs.
+ */
+ setlocale(LC_MESSAGES, "C");
+ textdomain("amanda");
+
+ g_printf(_("/* version.c - generated by genversion.c - DO NOT EDIT! */\n"));
+ g_printf("const char * const version_info[] = {\n");
startline("build:");
v = version();
- v_len = sizeof("Amanda-") + strlen(v) + 1;
+ v_len = SIZEOF("Amanda-") + strlen(v) + 1;
verstr = malloc(v_len);
- sprintf(verstr, "Amanda-%s", v); /* safe */
+ if (!verstr) {
+ g_fprintf(stderr, _("genversion: Not enough memory"));
+ abort();
+ /*NOTREACHED*/
+ }
+ g_snprintf(verstr, v_len, "Amanda-%s", v); /* safe */
prvar("VERSION", verstr);
free(verstr);
prundefvar("BUILT_MACH");
#endif
-#ifdef CC
- prvar("CC", CC);
+#ifdef BUILT_REV
+ prvar("BUILT_REV", BUILT_REV);
#else
- prundefvar("CC");
+ prundefvar("BUILT_REV");
+#endif
+
+#ifdef BUILT_BRANCH
+ prvar("BUILT_BRANCH", BUILT_BRANCH);
+#else
+ prundefvar("BUILT_BRANCH");
#endif
#ifdef CC
- prvar("CONFIGURE_COMMAND", CONFIGURE_COMMAND);
+ prvar("CC", CC);
#else
- prundefvar("CONFIGURE_COMMAND");
+ prundefvar("CC");
#endif
endline();
prvar("bindir", bindir);
prvar("sbindir", sbindir);
prvar("libexecdir", libexecdir);
+ prvar("amlibexecdir", amlibexecdir);
prvar("mandir", mandir);
prvar("AMANDA_TMPDIR", AMANDA_TMPDIR);
#ifdef AMANDA_DBGDIR
prundefvar(" LPRCMD");
#endif
+#ifdef MAILER
prvar("MAILER", MAILER);
+#else
+ prundefvar(" MAILER");
+#endif
#ifdef GNUTAR_LISTED_INCREMENTAL_DIR
prvar("listed_incr_dir", GNUTAR_LISTED_INCREMENTAL_DIR);
prvar("DEFAULT_SERVER", DEFAULT_SERVER);
prvar("DEFAULT_CONFIG", DEFAULT_CONFIG);
prvar("DEFAULT_TAPE_SERVER", DEFAULT_TAPE_SERVER);
+
+#ifdef DEFAULT_TAPE_DEVICE
prvar("DEFAULT_TAPE_DEVICE", DEFAULT_TAPE_DEVICE);
+#endif
#ifdef AIX_BACKUP
prstr("AIX_BACKUP");
#endif
-#ifdef AIX_TAPEIO
- prstr("AIX_TAPEIO");
-#endif
-
#ifdef BROKEN_VOID
prstr("BROKEN_VOID");
#endif
prstr("HAVE_SYSVSHM");
#endif
-#ifdef USE_POSIX_FCNTL
- prstr("LOCKING=POSIX_FCNTL");
+#ifdef WANT_AMFLOCK_POSIX
+ prstr("AMFLOCK_POSIX");
#endif
-#ifdef USE_FLOCK
- prstr("LOCKING=FLOCK");
+#ifdef WANT_AMFLOCK_FLOCK
+ prstr("AMFLOCK_FLOCK");
#endif
-#ifdef USE_LOCKF
- prstr("LOCKING=LOCKF");
+#ifdef WANT_AMFLOCK_LOCKF
+ prstr("AMFLOCK_LOCKF");
#endif
-#ifdef USE_LNLOCK
- prstr("LOCKING=LNLOCK");
-#endif
-#if !defined(USE_POSIX_FCNTL) && !defined(USE_FLOCK) && !defined(USE_LOCK) && !defined(USE_LNLOCK)
- prstr("LOCKING=**NONE**");
+#ifdef WANT_AMFLOCK_LNLOCK
+ prstr("AMFLOCK_LNLOCK");
#endif
#ifdef STATFS_BSD
prstr("ASSERTIONS");
#endif
-#ifdef DEBUG_CODE
- prstr("DEBUG_CODE");
-#endif
-
#ifdef AMANDA_DEBUG_DAYS
prnum("AMANDA_DEBUG_DAYS", AMANDA_DEBUG_DAYS);
#endif
prvar("CLIENT_LOGIN", CLIENT_LOGIN);
-#ifdef FORCE_USERID
- prstr("FORCE_USERID");
+#ifdef CHECK_USERID
+ prstr("CHECK_USERID");
#endif
#ifdef USE_VERSION_SUFFIXES
endline();
- printf(" 0\n};\n");
+ g_printf(" 0\n};\n");
- exit(0);
+ return (0); /* exit */
}