adds version number and changes build system

Tue, 23 Aug 2016 12:05:41 +0200

author
Mike Becker <universe@uap-core.de>
date
Tue, 23 Aug 2016 12:05:41 +0200
changeset 37
1a67185e5496
parent 36
be60c22cddfe
child 38
77c158821738

adds version number and changes build system

Makefile file | annotate | diff | comparison | revisions
clang.mk file | annotate | diff | comparison | revisions
conf.mk file | annotate | diff | comparison | revisions
gcc.mk file | annotate | diff | comparison | revisions
src/Makefile file | annotate | diff | comparison | revisions
src/c2html.c file | annotate | diff | comparison | revisions
src/c2html.h file | annotate | diff | comparison | revisions
--- a/Makefile	Fri Mar 04 15:02:22 2016 +0100
+++ b/Makefile	Tue Aug 23 12:05:41 2016 +0200
@@ -26,17 +26,31 @@
 # POSSIBILITY OF SUCH DAMAGE.
 #
 
-include conf.mk
+# available configs: gcc, clang
+CONF=gcc
+
+include $(CONF).mk
+
 
-all: clean compile
+SRC  = c2html.c
+SRC += codegens.c
+SRC += ccodegen.c
+SRC += javacodegen.c
+
+OBJ = $(SRC:%.c=build/%$(OBJ_EXT))
+
+all: build build/$(BIN)
 	
-compile: build
-	cd src; $(MAKE)
-
+build/$(BIN): $(OBJ)
+	$(LD) -o $@ $^ $(LDFLAGS)
+	
+build/%$(OBJ_EXT): src/%.c
+	$(CC) -o $@ $(CFLAGS) -c $<
+	
 build:
 	$(MKDIR) build
 	
-test: compile
+test: build/$(BIN)
 	./build/$(BIN) test/ctestfile.c -o build/ctest.html \
 	-H test/header.html -F test/footer.html
 	./build/$(BIN) -j test/javatestfile.java -o build/javatest.html \
@@ -46,4 +60,4 @@
 	./build/$(BIN) -p test/plain.csp -o build/plain.html \
 	-H test/header.html -F test/footer.html
 clean:
-	$(RM) -f -R build
+	$(RM) $(RMFLAGS) build
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/clang.mk	Tue Aug 23 12:05:41 2016 +0200
@@ -0,0 +1,40 @@
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+#
+# Copyright 2016 Mike Becker. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+#   1. Redistributions of source code must retain the above copyright
+#      notice, this list of conditions and the following disclaimer.
+#
+#   2. Redistributions in binary form must reproduce the above copyright
+#      notice, this list of conditions and the following disclaimer in the
+#      documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+# system related
+MKDIR   = mkdir
+RM      = rm
+RMFLAGS = -fR
+
+# build related
+BIN     = c2html
+CC      = clang
+CFLAGS  = -O2
+LD      = clang
+LDFLAGS =
+OBJ_EXT = .o
--- a/conf.mk	Fri Mar 04 15:02:22 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
-#
-# Copyright 2016 Mike Becker. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-#   1. Redistributions of source code must retain the above copyright
-#      notice, this list of conditions and the following disclaimer.
-#
-#   2. Redistributions in binary form must reproduce the above copyright
-#      notice, this list of conditions and the following disclaimer in the
-#      documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-
-# system related
-MKDIR   = mkdir
-RM      = rm
-
-# build related
-BIN     = c2html
-CC      = gcc
-CFLAGS  = -O2 -std=gnu99
-LD      = gcc
-LDFLAGS =
-OBJ_EXT = .o
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gcc.mk	Tue Aug 23 12:05:41 2016 +0200
@@ -0,0 +1,40 @@
+#
+# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+#
+# Copyright 2016 Mike Becker. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are met:
+#
+#   1. Redistributions of source code must retain the above copyright
+#      notice, this list of conditions and the following disclaimer.
+#
+#   2. Redistributions in binary form must reproduce the above copyright
+#      notice, this list of conditions and the following disclaimer in the
+#      documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+
+# system related
+MKDIR   = mkdir
+RM      = rm
+RMFLAGS = -fR
+
+# build related
+BIN     = c2html
+CC      = gcc
+CFLAGS  = -O2 -std=gnu99
+LD      = gcc
+LDFLAGS =
+OBJ_EXT = .o
--- a/src/Makefile	Fri Mar 04 15:02:22 2016 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,44 +0,0 @@
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
-#
-# Copyright 2016 Mike Becker. All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are met:
-#
-#   1. Redistributions of source code must retain the above copyright
-#      notice, this list of conditions and the following disclaimer.
-#
-#   2. Redistributions in binary form must reproduce the above copyright
-#      notice, this list of conditions and the following disclaimer in the
-#      documentation and/or other materials provided with the distribution.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-# AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-# ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
-# LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-# CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-# SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-# INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-# CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-# POSSIBILITY OF SUCH DAMAGE.
-#
-
-include ../conf.mk
-
-SRC  = c2html.c
-SRC += codegens.c
-SRC += ccodegen.c
-SRC += javacodegen.c
-
-OBJ = $(SRC:%.c=../build/%$(OBJ_EXT))
-
-all: $(OBJ)
-	$(LD) -o ../build/$(BIN) $^ $(LDFLAGS)
-	
-
-../build/%$(OBJ_EXT): %.c
-	$(CC) -o $@ $(CFLAGS) -c $<
-
--- a/src/c2html.c	Fri Mar 04 15:02:22 2016 +0100
+++ b/src/c2html.c	Tue Aug 23 12:05:41 2016 +0200
@@ -111,9 +111,8 @@
         "  -F <footer>           Append footer file\n"
         "  -p                    Disable highlighting (plain text)\n"
         "  -l                    Disable line numbers\n"
+        "  -V, -v                Prints version and exits\n"
         "\n");
-
-
 }
 
 int lnint(size_t lnc) {
@@ -221,7 +220,7 @@
     int lang = C2HTML_C;
 
     char optc;
-    while ((optc = getopt(argc, argv, "hljo:pH:F:")) != -1) {
+    while ((optc = getopt(argc, argv, "hljo:pH:F:vV")) != -1) {
         switch (optc) {
             case 'o':
                 if (!(optarg[0] == '-' && optarg[1] == 0)) {
@@ -246,6 +245,14 @@
             case 'h':
                 printhelp();
                 return 0;
+            case 'v':
+            case 'V':
+#ifdef VERSION_DEVELOP
+                printf("%d.%d (unstable)\n", VERSION_MAJOR, VERSION_MINOR);
+#else
+                printf("%d.%d\n", VERSION_MAJOR, VERSION_MINOR);
+#endif
+                return 0;
             default:
                 return 1;
         }
--- a/src/c2html.h	Fri Mar 04 15:02:22 2016 +0100
+++ b/src/c2html.h	Tue Aug 23 12:05:41 2016 +0200
@@ -43,6 +43,10 @@
 #ifdef	__cplusplus
 extern "C" {
 #endif
+    
+#define VERSION_MAJOR   2
+#define VERSION_MINOR   0
+#define VERSION_DEVELOP 1 // set this to zero for release version
 
 
 #define INPUTBUF_SIZE 2048

mercurial