Cleanup makefiles, add version to i3 -v and i3 startup

This commit is contained in:
Michael Stapelberg 2009-03-15 23:15:16 +01:00
parent 21f7b7a724
commit eb2ceb95bf
4 changed files with 39 additions and 1 deletions

View File

@ -2,6 +2,8 @@ UNAME=$(shell uname)
DEBUG=1 DEBUG=1
INSTALL=install INSTALL=install
MAKE=make MAKE=make
GIT_VERSION=$(shell git describe --tags --always)
VERSION=$(shell git describe --tags --abbrev=0)
CFLAGS += -std=c99 CFLAGS += -std=c99
CFLAGS += -pipe CFLAGS += -pipe
@ -9,6 +11,7 @@ CFLAGS += -Wall
CFLAGS += -Wunused CFLAGS += -Wunused
CFLAGS += -Iinclude CFLAGS += -Iinclude
CFLAGS += -I/usr/local/include CFLAGS += -I/usr/local/include
CFLAGS += -DI3_VERSION=\"${GIT_VERSION}\"
LDFLAGS += -lm LDFLAGS += -lm
LDFLAGS += -lxcb-wm LDFLAGS += -lxcb-wm
@ -16,7 +19,9 @@ LDFLAGS += -lxcb-wm
LDFLAGS += -lxcb-xinerama LDFLAGS += -lxcb-xinerama
LDFLAGS += -lX11 LDFLAGS += -lX11
LDFLAGS += -L/usr/local/lib -L/usr/pkg/lib LDFLAGS += -L/usr/local/lib -L/usr/pkg/lib
ifeq ($(UNAME),NetBSD) ifeq ($(UNAME),NetBSD)
# We need -idirafter instead of -I to prefer the systems iconv over GNU libiconv
CFLAGS += -idirafter /usr/pkg/include CFLAGS += -idirafter /usr/pkg/include
LDFLAGS += -Wl,-rpath,/usr/local/lib -Wl,-rpath,/usr/pkg/lib LDFLAGS += -Wl,-rpath,/usr/local/lib -Wl,-rpath,/usr/pkg/lib
endif endif
@ -33,13 +38,23 @@ else
CFLAGS += -O2 CFLAGS += -O2
endif endif
# Dont 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)) FILES=$(patsubst %.c,%.o,$(wildcard src/*.c))
HEADERS=$(wildcard include/*.h) HEADERS=$(wildcard include/*.h)
# Depend on the specific file (.c for each .o) and on all headers
src/%.o: src/%.c ${HEADERS} src/%.o: src/%.c ${HEADERS}
echo "CC $<"
$(CC) $(CFLAGS) -c -o $@ $< $(CC) $(CFLAGS) -c -o $@ $<
all: ${FILES} all: ${FILES}
echo "LINK i3"
$(CC) -o i3 ${FILES} $(LDFLAGS) $(CC) -o i3 ${FILES} $(LDFLAGS)
install: all install: all
@ -48,8 +63,20 @@ install: all
$(INSTALL) -m 0755 i3 $(DESTDIR)/usr/bin/ $(INSTALL) -m 0755 i3 $(DESTDIR)/usr/bin/
test -e $(DESTDIR)/etc/i3/config || $(INSTALL) -m 0644 i3.config $(DESTDIR)/etc/i3/config 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: clean:
rm -f src/*.o rm -f src/*.o
$(MAKE) -C docs clean
$(MAKE) -C man clean
distclean: clean distclean: clean
rm -f i3 rm -f i3

View File

@ -2,3 +2,7 @@ hacking-howto.html: hacking-howto
asciidoc -n $< asciidoc -n $<
all: hacking-howto.html all: hacking-howto.html
clean:
rm -f */*.{aux,log,toc,bm,pdf,dvi}
rm -f *.log *.html

View File

@ -1,2 +1,4 @@
all: all:
a2x -f manpage --asciidoc-opts="-f asciidoc.conf" i3.man a2x -f manpage --asciidoc-opts="-f asciidoc.conf" i3.man
clean:
rm -f i3.xml i3.1 i3.html

View File

@ -340,17 +340,22 @@ int main(int argc, char *argv[], char *env[]) {
application_path = sstrdup(argv[0]); application_path = sstrdup(argv[0]);
while ((opt = getopt(argc, argv, "c:")) != -1) { while ((opt = getopt(argc, argv, "c:v")) != -1) {
switch (opt) { switch (opt) {
case 'c': case 'c':
override_configpath = sstrdup(optarg); override_configpath = sstrdup(optarg);
break; break;
case 'v':
printf("i3 version " I3_VERSION " © 2009 Michael Stapelberg and contributors\n");
exit(EXIT_SUCCESS);
default: default:
fprintf(stderr, "Usage: %s [-c configfile]\n", argv[0]); fprintf(stderr, "Usage: %s [-c configfile]\n", argv[0]);
exit(EXIT_FAILURE); exit(EXIT_FAILURE);
} }
} }
LOG("i3 version " I3_VERSION " starting\n");
/* Initialize the table data structures for each workspace */ /* Initialize the table data structures for each workspace */
init_table(); init_table();