X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=common.mk;h=a9bab084c7bb0e4b34369072b827de0e9dd09993;hb=01365edb300436e478779857c3131c2ed09e8534;hp=2e167c9eea9a682d13a6874e7fb987552fb44027;hpb=a8352a8988ea68d71dfe7669f1bdcca36e793803;p=i3%2Fi3 diff --git a/common.mk b/common.mk index 2e167c9e..a9bab084 100644 --- a/common.mk +++ b/common.mk @@ -1,43 +1,59 @@ UNAME=$(shell uname) DEBUG=1 INSTALL=install -GIT_VERSION=$(shell git describe --tags --always) -VERSION=$(shell git describe --tags --abbrev=0) +PREFIX=/usr +ifeq ($(PREFIX),/usr) +SYSCONFDIR=/etc +else +SYSCONFDIR=$(PREFIX)/etc +endif +# The escaping is absurd, but we need to escape for shell, sed, make, define +GIT_VERSION:="$(shell git describe --tags --always) ($(shell git log --pretty=format:%cd --date=short -n1), branch $(shell [ -f .git/HEAD ] && sed 's/ref: refs\/heads\/\(.*\)/\\\\\\"\1\\\\\\"/g' .git/HEAD || echo 'unknown'))" +VERSION:=$(shell git describe --tags --abbrev=0) + +# An easier way to get CFLAGS and LDFLAGS falling back in case there's +# no pkg-config support for certain libraries +cflags_for_lib = $(shell pkg-config --silence-errors --cflags $(1)) +ldflags_for_lib = $(shell pkg-config --exists $(1) && pkg-config --libs $(1) || echo -l$(2)) CFLAGS += -std=c99 CFLAGS += -pipe CFLAGS += -Wall -CFLAGS += -Wunused +# unused-function, unused-label, unused-variable are turned on by -Wall +# We don’t want unused-parameter because of the use of many callbacks +CFLAGS += -Wunused-value CFLAGS += -Iinclude CFLAGS += -I/usr/local/include +CFLAGS += $(call cflags_for_lib, xcb-event) +CFLAGS += $(call cflags_for_lib, xcb-property) +CFLAGS += $(call cflags_for_lib, xcb-keysyms) +CFLAGS += $(call cflags_for_lib, xcb-atom) +CFLAGS += $(call cflags_for_lib, xcb-aux) +CFLAGS += $(call cflags_for_lib, xcb-icccm) +CFLAGS += $(call cflags_for_lib, xcb-xinerama) +CFLAGS += $(call cflags_for_lib, xcb-randr) +CFLAGS += $(call cflags_for_lib, xcb) +CFLAGS += $(call cflags_for_lib, xcursor) +CFLAGS += $(call cflags_for_lib, x11) +CFLAGS += $(call cflags_for_lib, yajl) +CFLAGS += $(call cflags_for_lib, libev) CFLAGS += -DI3_VERSION=\"${GIT_VERSION}\" - -# Check if pkg-config is installed, because without pkg-config, the following -# check for the version of libxcb cannot be done. -ifeq ($(shell which pkg-config 2>/dev/null 1>/dev/null || echo 1),1) -$(error "pkg-config was not found") -endif - -ifeq ($(shell pkg-config --exists xcb-keysyms || echo 1),1) -$(error "pkg-config could not find xcb-keysyms.pc") -endif - -ifeq ($(shell pkg-config --exact-version=0.3.3 xcb-keysyms && echo 1),1) -# xcb-keysyms fixed API from 0.3.3 to 0.3.4, so for some months, we will -# have this here. Distributions should upgrade their libxcb in the meantime. -CFLAGS += -DOLD_XCB_KEYSYMS_API -endif +CFLAGS += -DSYSCONFDIR=\"${SYSCONFDIR}\" LDFLAGS += -lm -LDFLAGS += -lxcb-event -LDFLAGS += -lxcb-property -LDFLAGS += -lxcb-keysyms -LDFLAGS += -lxcb-atom -LDFLAGS += -lxcb-aux -LDFLAGS += -lxcb-icccm -LDFLAGS += -lxcb-xinerama -LDFLAGS += -lX11 -LDFLAGS += -lev +LDFLAGS += $(call ldflags_for_lib, xcb-event, xcb-event) +LDFLAGS += $(call ldflags_for_lib, xcb-property, xcb-property) +LDFLAGS += $(call ldflags_for_lib, xcb-keysyms, xcb-keysyms) +LDFLAGS += $(call ldflags_for_lib, xcb-atom, xcb-atom) +LDFLAGS += $(call ldflags_for_lib, xcb-aux, xcb-aux) +LDFLAGS += $(call ldflags_for_lib, xcb-icccm, xcb-icccm) +LDFLAGS += $(call ldflags_for_lib, xcb-xinerama, xcb-xinerama) +LDFLAGS += $(call ldflags_for_lib, xcb-randr, xcb-randr) +LDFLAGS += $(call ldflags_for_lib, xcb, xcb) +LDFLAGS += $(call ldflags_for_lib, xcursor, Xcursor) +LDFLAGS += $(call ldflags_for_lib, x11, X11) +LDFLAGS += $(call ldflags_for_lib, yajl, yajl) +LDFLAGS += $(call ldflags_for_lib, libev, ev) LDFLAGS += -L/usr/local/lib -L/usr/pkg/lib ifeq ($(UNAME),NetBSD) @@ -47,7 +63,6 @@ LDFLAGS += -Wl,-rpath,/usr/local/lib -Wl,-rpath,/usr/pkg/lib endif ifeq ($(UNAME),OpenBSD) -CFLAGS += -ftrampolines CFLAGS += -I${X11BASE}/include LDFLAGS += -liconv LDFLAGS += -L${X11BASE}/lib @@ -67,6 +82,7 @@ CFLAGS += -gdwarf-2 CFLAGS += -g3 else CFLAGS += -O2 +CFLAGS += -freorder-blocks-and-partition endif # Don’t print command lines which are run