X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=common.mk;h=e99f93c8bd90dad1357e1c712cd45f91c8569df4;hb=b668d62cfcd04a3a0ea1da5ad06a2e57187f6058;hp=b086bc8535ff5f349bebcfb3d0036a69f608aeb5;hpb=13db56255134a71acd2fd5a7e254adfbd0c2983b;p=i3%2Fi3 diff --git a/common.mk b/common.mk index b086bc85..e99f93c8 100644 --- a/common.mk +++ b/common.mk @@ -1,11 +1,15 @@ UNAME=$(shell uname) DEBUG=1 -COVERAGE=0 +ASAN=0 INSTALL=install LN=ln +PKG_CONFIG=pkg-config ifndef PREFIX PREFIX=/usr endif +ifndef EXEC_PREFIX + EXEC_PREFIX=$(PREFIX) +endif ifndef SYSCONFDIR ifeq ($(PREFIX),/usr) SYSCONFDIR=/etc @@ -14,12 +18,14 @@ ifndef SYSCONFDIR endif endif -# In dist tarballs, the version is stored in the I3_VERSION and VERSION files. -I3_VERSION := '$(shell [ -f $(TOPDIR)/I3_VERSION ] && cat $(TOPDIR)/I3_VERSION)' -VERSION := '$(shell [ -f $(TOPDIR)/VERSION ] && cat $(TOPDIR)/VERSION)' -ifeq ('',$(I3_VERSION)) -VERSION := $(shell git describe --tags --abbrev=0) -I3_VERSION := '$(shell git describe --tags --always) ($(shell git log --pretty=format:%cd --date=short -n1), branch \"$(shell git describe --tags --always --all | sed s:heads/::)\")' +# In dist and snapshot tarballs, use the I3_VERSION and VERSION files. Otherwise use git information. +ifeq ($(wildcard .git),) + # not in git repository + VERSION := $(shell [ -f $(TOPDIR)/I3_VERSION ] && cat $(TOPDIR)/I3_VERSION | cut -d '-' -f 1) + I3_VERSION := $(shell [ -f $(TOPDIR)/I3_VERSION ] && cat $(TOPDIR)/I3_VERSION) +else + VERSION := $(shell git describe --tags --abbrev=0) + I3_VERSION := '$(shell git describe --tags --always) ($(shell git log --pretty=format:%cd --date=short -n1), branch \"$(shell git describe --tags --always --all | sed s:heads/::)\")' endif MAJOR_VERSION := $(shell echo ${VERSION} | cut -d '.' -f 1) @@ -39,6 +45,11 @@ else CFLAGS ?= -pipe -O2 -freorder-blocks-and-partition endif +ifeq ($(ASAN),1) +CFLAGS += -fsanitize=address -DI3_ASAN_ENABLED +LDFLAGS += -fsanitize=address +endif + # Default LDFLAGS that users should be able to override LDFLAGS ?= $(as_needed_LDFLAG) @@ -60,7 +71,7 @@ I3_CPPFLAGS += -DI3__FILE__=__FILE__ ## Libraries flags -ifeq ($(shell which pkg-config 2>/dev/null 1>/dev/null || echo 1),1) +ifeq ($(shell which $(PKG_CONFIG) 2>/dev/null 1>/dev/null || echo 1),1) $(error "pkg-config was not found") endif @@ -74,15 +85,15 @@ endif # # We redirect stderr to /dev/null because pkg-config prints an error if support # for gnome-config was enabled but gnome-config is not actually installed. -cflags_for_lib = $(shell pkg-config --silence-errors --cflags $(1) 2>/dev/null) -ldflags_for_lib = $(shell pkg-config --exists 2>/dev/null $(1) && pkg-config --libs $(1) 2>/dev/null || echo -l$(2)) +cflags_for_lib = $(shell $(PKG_CONFIG) --silence-errors --cflags $(1) 2>/dev/null) +ldflags_for_lib = $(shell $(PKG_CONFIG) --exists 2>/dev/null $(1) && $(PKG_CONFIG) --libs $(1) 2>/dev/null || echo -l$(2)) # XCB common stuff XCB_CFLAGS := $(call cflags_for_lib, xcb) XCB_CFLAGS += $(call cflags_for_lib, xcb-event) XCB_LIBS := $(call ldflags_for_lib, xcb,xcb) XCB_LIBS += $(call ldflags_for_lib, xcb-event,xcb-event) -ifeq ($(shell pkg-config --exists xcb-util 2>/dev/null || echo 1),1) +ifeq ($(shell $(PKG_CONFIG) --exists xcb-util 2>/dev/null || echo 1),1) XCB_CFLAGS += $(call cflags_for_lib, xcb-atom) XCB_CFLAGS += $(call cflags_for_lib, xcb-aux) XCB_LIBS += $(call ldflags_for_lib, xcb-atom,xcb-atom) @@ -92,6 +103,7 @@ else XCB_CFLAGS += $(call cflags_for_lib, xcb-util) XCB_LIBS += $(call ldflags_for_lib, xcb-util) endif +XCB_XKB_LIBS := $(call ldflags_for_lib, xcb-xkb,xcb-xkb) # XCB keyboard stuff XCB_KBD_CFLAGS := $(call cflags_for_lib, xcb-keysyms) @@ -105,13 +117,18 @@ XCB_WM_LIBS := $(call ldflags_for_lib, xcb-icccm,xcb-icccm) XCB_WM_LIBS += $(call ldflags_for_lib, xcb-xinerama,xcb-xinerama) XCB_WM_LIBS += $(call ldflags_for_lib, xcb-randr,xcb-randr) -# Xlib -X11_CFLAGS := $(call cflags_for_lib, x11) -X11_LIBS := $(call ldflags_for_lib, x11,X11) +# XCB cursor +XCB_CURSOR_CFLAGS := $(call cflags_for_lib, xcb-cursor) +XCB_CURSOR_LIBS := $(call ldflags_for_lib, xcb-cursor,xcb-cursor) -# Xcursor -XCURSOR_CFLAGS := $(call cflags_for_lib, xcb-cursor) -XCURSOR_LIBS := $(call ldflags_for_lib, xcb-cursor,xcb-cursor) +XKB_COMMON_CFLAGS := $(call cflags_for_lib, xkbcommon,xkbcommon) +XKB_COMMON_LIBS := $(call ldflags_for_lib, xkbcommon,xkbcommon) +XKB_COMMON_X11_CFLAGS := $(call cflags_for_lib, xkbcommon-x11,xkbcommon-x11) +XKB_COMMON_X11_LIBS := $(call ldflags_for_lib, xkbcommon-x11,xkbcommon-x11) + +# XCB xrm +XCB_XRM_CFLAGS := $(call cflags_for_lib, xcb-xrm) +XCB_XRM_LIBS := $(call ldflags_for_lib, xcb-xrm,xcb-xrm) # yajl YAJL_CFLAGS := $(call cflags_for_lib, yajl) @@ -123,7 +140,7 @@ LIBEV_LIBS := $(call ldflags_for_lib, libev,ev) # libpcre PCRE_CFLAGS := $(call cflags_for_lib, libpcre) -ifeq ($(shell pkg-config --atleast-version=8.10 libpcre 2>/dev/null && echo 1),1) +ifeq ($(shell $(PKG_CONFIG) --atleast-version=8.10 libpcre 2>/dev/null && echo 1),1) I3_CPPFLAGS += -DPCRE_HAS_UCP=1 endif PCRE_LIBS := $(call ldflags_for_lib, libpcre,pcre) @@ -136,6 +153,9 @@ LIBSN_LIBS := $(call ldflags_for_lib, libstartup-notification-1.0,startup-noti PANGO_CFLAGS := $(call cflags_for_lib, cairo) PANGO_CFLAGS += $(call cflags_for_lib, pangocairo) I3_CPPFLAGS += -DPANGO_SUPPORT=1 +ifeq ($(shell $(PKG_CONFIG) --atleast-version=1.14.4 cairo 2>/dev/null && echo 1),1) +I3_CPPFLAGS += -DCAIRO_SUPPORT=1 +endif PANGO_LIBS := $(call ldflags_for_lib, cairo) PANGO_LIBS += $(call ldflags_for_lib, pangocairo) @@ -173,6 +193,10 @@ else ifneq ($(UNAME),OpenBSD) LIBS += -lrt endif +ifeq ($(UNAME),SunOS) +LIBS += -lsocket -liconv -lgen +endif + ifneq (,$(filter Linux GNU GNU/%, $(UNAME))) I3_CPPFLAGS += -D_GNU_SOURCE endif