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
CFLAGS += -Wunused
CFLAGS += -Iinclude
CFLAGS += -I/usr/local/include
+CFLAGS += -DI3_VERSION=\"${GIT_VERSION}\"
LDFLAGS += -lm
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
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
$(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
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();