]> git.sur5r.net Git - i3/i3/commitdiff
Cleanup makefiles, add version to i3 -v and i3 startup 3.a
authorMichael Stapelberg <michael+x200@stapelberg.de>
Sun, 15 Mar 2009 22:15:16 +0000 (23:15 +0100)
committerMichael Stapelberg <michael+x200@stapelberg.de>
Sun, 15 Mar 2009 22:15:16 +0000 (23:15 +0100)
Makefile
docs/Makefile
man/Makefile
src/mainx.c

index fba5af6b30d657c1a712edbc3dd6052bb85e32b3..74d4fb76cd80c2fa677c56ed0251fb1bf477936e 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -2,6 +2,8 @@ UNAME=$(shell uname)
 DEBUG=1
 INSTALL=install
 MAKE=make
+GIT_VERSION=$(shell git describe --tags --always)
+VERSION=$(shell git describe --tags --abbrev=0)
 
 CFLAGS += -std=c99
 CFLAGS += -pipe
@@ -9,6 +11,7 @@ CFLAGS += -Wall
 CFLAGS += -Wunused
 CFLAGS += -Iinclude
 CFLAGS += -I/usr/local/include
+CFLAGS += -DI3_VERSION=\"${GIT_VERSION}\"
 
 LDFLAGS += -lm
 LDFLAGS += -lxcb-wm
@@ -16,7 +19,9 @@ LDFLAGS += -lxcb-wm
 LDFLAGS += -lxcb-xinerama
 LDFLAGS += -lX11
 LDFLAGS += -L/usr/local/lib -L/usr/pkg/lib
+
 ifeq ($(UNAME),NetBSD)
+# We need -idirafter instead of -I to prefer the system’s iconv over GNU libiconv
 CFLAGS += -idirafter /usr/pkg/include
 LDFLAGS += -Wl,-rpath,/usr/local/lib -Wl,-rpath,/usr/pkg/lib
 endif
@@ -33,13 +38,23 @@ else
 CFLAGS += -O2
 endif
 
+# Don’t print command lines which are run
+.SILENT:
+
+# Always remake the following targets
+.PHONY: install clean dist distclean
+
+# Depend on the object files of all source-files in src/*.c and on all header files
 FILES=$(patsubst %.c,%.o,$(wildcard src/*.c))
 HEADERS=$(wildcard include/*.h)
 
+# Depend on the specific file (.c for each .o) and on all headers
 src/%.o: src/%.c ${HEADERS}
+       echo "CC $<"
        $(CC) $(CFLAGS) -c -o $@ $<
 
 all: ${FILES}
+       echo "LINK i3"
        $(CC) -o i3 ${FILES} $(LDFLAGS)
 
 install: all
@@ -48,8 +63,20 @@ install: all
        $(INSTALL) -m 0755 i3 $(DESTDIR)/usr/bin/
        test -e $(DESTDIR)/etc/i3/config || $(INSTALL) -m 0644 i3.config $(DESTDIR)/etc/i3/config
 
+dist: clean
+       [ ! -f i3-${VERSION} ] || rm -rf i3-${VERSION}
+       [ ! -e i3-${VERSION}.tar.bz2 ] || rm i3-${VERSION}.tar.bz2
+       mkdir i3-${VERSION}
+       cp Makefile DEPENDS GOALS LICENSE PACKAGE-MAINTAINER TODO i3.config i3-${VERSION}
+       cp -r src include docs man i3-${VERSION}
+       tar cf i3-${VERSION}.tar i3-${VERSION}
+       bzip2 -9 i3-${VERSION}.tar
+       rm -rf i3-${VERSION}
+
 clean:
        rm -f src/*.o
+       $(MAKE) -C docs clean
+       $(MAKE) -C man clean
 
 distclean: clean
        rm -f i3
index 276cc7ca7039e34708c6a56d624ff6ab8d62e090..448cd68b5cfccad38da5030eab2ca20a49802164 100644 (file)
@@ -2,3 +2,7 @@ hacking-howto.html: hacking-howto
        asciidoc -n $<
 
 all: hacking-howto.html
+
+clean:
+       rm -f */*.{aux,log,toc,bm,pdf,dvi}
+       rm -f *.log *.html
index cd977dd6d7aa9adaedb72cc5d5872218c40295d2..dec0389727128cf807b33a673a79a8158528401d 100644 (file)
@@ -1,2 +1,4 @@
 all:
        a2x -f manpage --asciidoc-opts="-f asciidoc.conf" i3.man
+clean:
+       rm -f i3.xml i3.1 i3.html
index 24e7d11c911eb17fc870e7cb9dbf9d2593354efd..bbd1efcd8c21155f6e15cc9f7a46320834ca7363 100644 (file)
@@ -340,17 +340,22 @@ int main(int argc, char *argv[], char *env[]) {
 
         application_path = sstrdup(argv[0]);
 
-        while ((opt = getopt(argc, argv, "c:")) != -1) {
+        while ((opt = getopt(argc, argv, "c:v")) != -1) {
                 switch (opt) {
                         case 'c':
                                 override_configpath = sstrdup(optarg);
                                 break;
+                        case 'v':
+                                printf("i3 version " I3_VERSION " © 2009 Michael Stapelberg and contributors\n");
+                                exit(EXIT_SUCCESS);
                         default:
                                 fprintf(stderr, "Usage: %s [-c configfile]\n", argv[0]);
                                 exit(EXIT_FAILURE);
                 }
         }
 
+        LOG("i3 version " I3_VERSION " starting\n");
+
         /* Initialize the table data structures for each workspace */
         init_table();