chiark / gitweb /
include configure and compiler details in version output
authorRichard Kettlewell <rjk@greenend.org.uk>
Sat, 15 Dec 2007 12:03:08 +0000 (12:03 +0000)
committerRichard Kettlewell <rjk@greenend.org.uk>
Sat, 15 Dec 2007 12:03:08 +0000 (12:03 +0000)
23 files changed:
.bzrignore
clients/disorder.c
clients/disorderfm.c
clients/playrtp.c
disobedience/disobedience.c
lib/Makefile.am
lib/defs.c
lib/defs.h
scripts/make-version-string [new file with mode: 0755]
scripts/text2c
server/dbupgrade.c
server/dcgi.c
server/deadlock.c
server/decode.c
server/disorderd.c
server/dump.c
server/normalize.c
server/rescan.c
server/server.c
server/speaker.c
server/stats.c
server/trackname.c
tests/udplog.c

index e34c30c..0ca950c 100644 (file)
@@ -140,3 +140,5 @@ lib/index.html
 server/index.html
 .DS_Store
 tests/disorder-udplog
+lib/version-string
+lib/version.h
index 6278295..7ee9865 100644 (file)
@@ -84,7 +84,7 @@ static void help(void) {
 
 /* display version number and terminate */
 static void version(void) {
-  xprintf("disorder version %s\n", disorder_version_string);
+  xprintf("%s", disorder_version_string);
   xfclose(stdout);
   exit(0);
 }
index ccb2472..d8dffb6 100644 (file)
@@ -129,7 +129,7 @@ static void help(void) {
 
 /* display version number and terminate */
 static void version(void) {
-  xprintf("disorderfm version %s\n", disorder_version_string);
+  xprintf("%s", disorder_version_string);
   xfclose(stdout);
   exit(0);
 }
index 54107da..484d265 100644 (file)
@@ -533,7 +533,7 @@ static void help(void) {
 
 /* display version number and terminate */
 static void version(void) {
-  xprintf("disorder-playrtp version %s\n", disorder_version_string);
+  xprintf("%s", disorder_version_string);
   xfclose(stdout);
   exit(0);
 }
index 5efcc00..de71101 100644 (file)
@@ -409,7 +409,7 @@ static void help(void) {
 
 /* display version number and terminate */
 static void version(void) {
-  xprintf("disorder version %s\n", disorder_version_string);
+  xprintf("%s", disorder_version_string);
   xfclose(stdout);
   exit(0);
 }
index ab856a7..cf53878 100644 (file)
@@ -71,6 +71,19 @@ libdisorder_a_SOURCES=charset.c charset.h            \
        wstat.c wstat.h                                 \
        disorder.h
 
+version-string: ../config.status ${top_srcdir}/scripts/make-version-string
+       CC="${CC}" ${top_srcdir}/scripts/make-version-string > $@.new
+       @if cmp $@.new $@; then \
+               echo rm -f $@.new; rm -f $@.new; else \
+               echo mv $@.new $@; mv $@.new $@; fi
+
+version.h: version-string ${top_srcdir}/scripts/text2c
+       ${top_srcdir}/scripts/text2c -extern disorder_version_string \
+               version-string > $@.new
+       @if cmp $@.new $@; then \
+               echo rm -f $@.new; rm -f $@.new; else \
+               echo mv $@.new $@; mv $@.new $@; fi
+
 definitions.h: Makefile
        rm -f $@.new
        echo "#define PKGLIBDIR \"${pkglibdir}\"" > $@.new
@@ -84,8 +97,8 @@ definitions.h: Makefile
        @if cmp $@.new $@; then \
                echo rm -f $@.new; rm -f $@.new; else \
                echo mv $@.new $@; mv $@.new $@; fi
-defs.o: definitions.h
-defs.lo: definitions.h
+defs.o: definitions.h version.h
+defs.lo: definitions.h version.h
 
 test_SOURCES=test.c memgc.c
 test_LDADD=libdisorder.a $(LIBPCRE) $(LIBICONV) $(LIBGC)
index c9668c0..19987cb 100644 (file)
@@ -30,7 +30,7 @@
 #include "definitions.h"
 
 /** @brief Software version number */
-const char disorder_version_string[] = VERSION;
+const char disorder_short_version_string[] = VERSION;
 
 /** @brief Package library directory */
 const char pkglibdir[] = PKGLIBDIR;
@@ -59,6 +59,8 @@ const char finkbindir[] = FINKBINDIR;
 /** @brief Package documentation directory */
 const char docdir[] = DOCDIR;
 
+#include "version.h"
+
 /*
 Local Variables:
 c-basic-offset:2
index c340e8e..dd75209 100644 (file)
@@ -21,6 +21,7 @@
 #ifndef DEFS_H
 #define DEFS_H
 
+extern const char disorder_short_version_string[];
 extern const char disorder_version_string[];
 extern const char pkglibdir[];
 extern const char pkgconfdir[];
diff --git a/scripts/make-version-string b/scripts/make-version-string
new file mode 100755 (executable)
index 0000000..210e84f
--- /dev/null
@@ -0,0 +1,31 @@
+#! /usr/bin/perl -w
+use strict;
+sub output {
+    print @_ or die "$0: stdout: $!\n";
+}
+my @csv = `../config.status --version`;
+my $version;
+my $options;
+my $cc;
+my $compiler;
+for(@csv) {
+    chomp;
+    if(/disorder config\.status (\S+)/) {
+       $version = $1;
+    }
+    if(/with options \"(.*)\"/) {
+       $options = $1;
+    }
+}
+if(exists $ENV{CC}) {
+    $cc = $ENV{CC};
+    $cc =~ s/\s+/ /g;
+    my @cv = `$cc --version`;
+    $compiler = $cv[0];
+}
+die "no version found\n" unless defined $version;
+output("DisOrder $version\n");
+output(" configure options: $options\n") if defined $options;
+output(" compiler: $cc\n") if defined $compiler;
+output(" version: $compiler\n") if defined $cc;
+close STDOUT or die "$0: stdout: $!\n";
index 46b2276..95d2181 100755 (executable)
@@ -1,7 +1,12 @@
 #! /usr/bin/perl -w
+my $class = "static";
+if($ARGV[0] eq '-extern') {
+    $class = "";
+    shift;
+}
 my $name = shift;
 push(@out, "/* autogenerated file, do not edit */\n\n");
-push(@out, "static const char $name\[] = \n");
+push(@out, "$class const char $name\[] = \n");
 while(<>) {
     next if /arch-tag/;
     s/[\\\"\?]/\\$&/g;
index b856ae5..b4cf58e 100644 (file)
@@ -86,7 +86,7 @@ static void help(void) {
 
 /* display version number and terminate */
 static void version(void) {
-  xprintf("disorder-dbupgrade version %s\n", disorder_version_string);
+  xprintf("%s", disorder_version_string);
   xfclose(stdout);
   exit(0);
 }
index 07e1825..6e71ef0 100644 (file)
@@ -446,7 +446,7 @@ static void exp_version(int attribute((unused)) nargs,
                        char attribute((unused)) **args,
                        cgi_sink *output,
                        void attribute((unused)) *u) {
-  cgi_output(output, "%s", disorder_version_string);
+  cgi_output(output, "%s", disorder_short_version_string);
 }
 
 static void exp_nonce(int attribute((unused)) nargs,
index e45694f..bce3eee 100644 (file)
@@ -72,7 +72,7 @@ static void help(void) {
 
 /* display version number and terminate */
 static void version(void) {
-  xprintf("disorder-deadlock version %s\n", disorder_version_string);
+  xprintf("%s", disorder_version_string);
   xfclose(stdout);
   exit(0);
 }
index 47227a2..639ad15 100644 (file)
@@ -440,7 +440,7 @@ static void help(void) {
 
 /* Display version number and terminate. */
 static void version(void) {
-  xprintf("disorder-decode version %s\n", disorder_version_string);
+  xprintf("%s", disorder_version_string);
   xfclose(stdout);
   exit(0);
 }
index b8f8010..ba18c23 100644 (file)
@@ -94,7 +94,7 @@ static void help(void) {
 
 /* display version number and terminate */
 static void version(void) {
-  xprintf("disorderd version %s\n", disorder_version_string);
+  xprintf("%s", disorder_version_string);
   xfclose(stdout);
   exit(0);
 }
index 7e49111..119875f 100644 (file)
@@ -82,7 +82,7 @@ static void help(void) {
 
 /* display version number and terminate */
 static void version(void) {
-  xprintf("disorder-dump version %s\n", disorder_version_string);
+  xprintf("%s", disorder_version_string);
   xfclose(stdout);
   exit(0);
 }
index 085d4df..87b0f3d 100644 (file)
@@ -73,7 +73,7 @@ static void help(void) {
 
 /* display version number and terminate */
 static void version(void) {
-  xprintf("disorder-normalize version %s\n", disorder_version_string);
+  xprintf("%s", disorder_version_string);
   xfclose(stdout);
   exit(0);
 }
index b878929..e45eaa6 100644 (file)
@@ -84,7 +84,7 @@ static void help(void) {
 
 /* display version number and terminate */
 static void version(void) {
-  xprintf("disorder-rescan version %s\n", disorder_version_string);
+  xprintf("%s", disorder_version_string);
   xfclose(stdout);
   exit(0);
 }
index 413b43e..a369964 100644 (file)
@@ -346,7 +346,7 @@ static int c_version(struct conn *c,
                     char attribute((unused)) **vec,
                     int attribute((unused)) nvec) {
   /* VERSION had better only use the basic character set */
-  sink_printf(ev_writer_sink(c->w), "251 %s\n", disorder_version_string);
+  sink_printf(ev_writer_sink(c->w), "251 %s\n", disorder_short_version_string);
   return 1;                    /* completed */
 }
 
index a6c5f43..d21ad7c 100644 (file)
@@ -142,7 +142,7 @@ static void help(void) {
 
 /* Display version number and terminate. */
 static void version(void) {
-  xprintf("disorder-speaker version %s\n", disorder_version_string);
+  xprintf("%s", disorder_version_string);
   xfclose(stdout);
   exit(0);
 }
index a12b8f6..c397be8 100644 (file)
@@ -65,7 +65,7 @@ static void help(void) {
 
 /* display version number and terminate */
 static void version(void) {
-  xprintf("disorder-stats version %s\n", disorder_version_string);
+  xprintf("%s", disorder_version_string);
   xfclose(stdout);
   exit(0);
 }
index 1e0bb45..b14e9e5 100644 (file)
@@ -57,7 +57,7 @@ static void help(void) {
 
 /* display version number and terminate */
 static void version(void) {
-  xprintf("disorder version %s\n", disorder_version_string);
+  xprintf("%s", disorder_version_string);
   xfclose(stdout);
   exit(0);
 }
index 4d52efc..eb87651 100644 (file)
@@ -61,7 +61,7 @@ static void help(void) {
 
 /* display version number and terminate */
 static void version(void) {
-  xprintf("disorder-udplog version %s\n", disorder_version_string);
+  xprintf("%s", disorder_version_string);
   xfclose(stdout);
   exit(0);
 }