summaryrefslogtreecommitdiff
path: root/libtiff/mkversion.c
diff options
context:
space:
mode:
Diffstat (limited to 'libtiff/mkversion.c')
-rwxr-xr-xlibtiff/mkversion.c97
1 files changed, 81 insertions, 16 deletions
diff --git a/libtiff/mkversion.c b/libtiff/mkversion.c
index f52665cb..674ba87a 100755
--- a/libtiff/mkversion.c
+++ b/libtiff/mkversion.c
@@ -1,4 +1,4 @@
-/* "$Header: /usr/people/sam/tiff/libtiff/RCS/mkversion.c,v 1.5 1996/05/21 18:19:48 sam Exp $ */
+/* "$Header: /usr/people/sam/tiff/libtiff/RCS/mkversion.c,v 1.4 1996/01/10 19:34:25 sam Exp $ */
/*
* Copyright (c) 1995-1996 Sam Leffler
@@ -25,39 +25,104 @@
*/
/*
- * Generate a library version string.
+ * Generate a library version string for systems that
+ * do not have a shell (by default this is done with
+ * awk and echo from the Makefile).
*
- * Syntax: mkversion major minor alpha type [outfile]
+ * This was written by Peter Greenham for Acorn systems.
+ *
+ * Syntax: mkversion [-v version-file] [-a alpha-file] [<outfile>]
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+static void
+usage(void)
+{
+ fprintf(stderr,
+ "usage: mkversion [-v version-file] [-a alpha-file] [outfile]\n");
+ exit(-1);
+}
+
+static FILE*
+openFile(char* filename)
+{
+ FILE* fd = fopen(filename, "r");
+ if (fd == NULL) {
+ fprintf(stderr, "mkversion: %s: Could not open for reading.\n",
+ filename);
+ exit(-1);
+ }
+ return (fd);
+}
+
int
main(int argc, char* argv[])
{
+ char* versionFile = "../VERSION";
+ char* alphaFile = "../dist/tiff.alpha";
+ char version[128];
+ char alpha[128];
FILE* fd;
+ char* cp;
- if (argc != 5 && argc != 6) {
- fprintf(stderr, "usage: %s major minor alpha type [outfile]\n",
- argv[0]);
+ argc--, argv++;
+ while (argc > 0 && argv[0][0] == '-') {
+ if (strcmp(argv[0], "-v") == 0) {
+ if (argc < 1)
+ usage();
+ argc--, argv++;
+ versionFile = argv[0];
+ } else if (strcmp(argv[0], "-a") == 0) {
+ if (argc < 1)
+ usage();
+ argc--, argv++;
+ alphaFile = argv[0];
+ } else
+ usage();
+ argc--, argv++;
+ }
+ fd = openFile(versionFile);
+ if (fgets(version, sizeof (version)-1, fd) == NULL) {
+ fprintf(stderr, "mkversion: No version information in %s.\n",
+ versionFile);
+ exit(-1);
+ }
+ cp = strchr(version, '\n');
+ if (cp)
+ *cp = '\0';
+ fclose(fd);
+ fd = openFile(alphaFile);
+ if (fgets(alpha, sizeof (alpha)-1, fd) == NULL) {
+ fprintf(stderr, "mkversion: No alpha information in %s.\n", alphaFile);
+ exit(-1);
+ }
+ fclose(fd);
+ cp = strchr(alpha, ' '); /* skip to 3rd blank-separated field */
+ if (cp)
+ cp = strchr(cp+1, ' ');
+ if (cp) { /* append alpha to version */
+ char* tp;
+ for (tp = strchr(version, '\0'), cp++; *tp = *cp; tp++, cp++)
+ ;
+ if (tp[-1] == '\n')
+ tp[-1] = '\0';
+ } else {
+ fprintf(stderr, "mkversion: Malformed alpha information in %s.\n",
+ alphaFile);
exit(-1);
}
- if (argc == 6) {
- fd = fopen(argv[5], "w");
+ if (argc > 0) {
+ fd = fopen(argv[0], "w");
if (fd == NULL) {
- fprintf(stderr, "%s: %s: Could not open for writing.\n",
- argv[0], argv[5]);
+ fprintf(stderr, "mkversion: %s: Could not open for writing.\n",
+ argv[0]);
exit(-1);
}
} else
fd = stdout;
- if (strcmp(argv[4], "beta") == 0)
- fprintf(fd, "#define VERSION \"LIBTIFF, Version %s.%sbeta%s\\n",
- argv[1], argv[2], argv[3]);
- else
- fprintf(fd, "#define VERSION \"LIBTIFF, Version %s.%s%s (alpha %s)\\n",
- argv[1], argv[2], argv[4], argv[3]);
+ fprintf(fd, "#define VERSION \"LIBTIFF, Version %s\\n", version);
fprintf(fd, "Copyright (c) 1988-1996 Sam Leffler\\n");
fprintf(fd, "Copyright (c) 1991-1996 Silicon Graphics, Inc.\"\n");