818e02ef35
Thanks to Merovius for doing a proof of concept on this one and being a driving force behind the idea. Using RandR instead of Xinerama means that we are now able to use the full potential of the modern way of configuring screens. That means, i3 now has an idea of the outputs your graphic driver provides, which allowed us to get rid of the ugly way of detecting changes in the screen configuration which we used before. Now, your workspaces should not be confused when changing output modes anymore. Also, instead of having ugly heuristics to assign your workspaces to (the screen at position X or the second screen in the list of screens) you will be able to just specify an output name. As this change basically touches everything, you should be prepared for bugs. Please test and report them!
79 lines
2.0 KiB
Makefile
79 lines
2.0 KiB
Makefile
UNAME=$(shell uname)
|
||
DEBUG=1
|
||
INSTALL=install
|
||
GIT_VERSION:="$(shell git describe --tags --always) ($(shell git log --pretty=format:%cd --date=short -n1))"
|
||
VERSION:=$(shell git describe --tags --abbrev=0)
|
||
|
||
CFLAGS += -std=c99
|
||
CFLAGS += -pipe
|
||
CFLAGS += -Wall
|
||
CFLAGS += -Wunused
|
||
CFLAGS += -Iinclude
|
||
CFLAGS += -I/usr/local/include
|
||
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
|
||
|
||
LDFLAGS += -lm
|
||
LDFLAGS += -lxcb-event
|
||
LDFLAGS += -lxcb-property
|
||
LDFLAGS += -lxcb-keysyms
|
||
LDFLAGS += -lxcb-atom
|
||
LDFLAGS += -lxcb-aux
|
||
LDFLAGS += -lxcb-icccm
|
||
LDFLAGS += -lxcb-randr
|
||
LDFLAGS += -lxcb
|
||
LDFLAGS += -lX11
|
||
LDFLAGS += -lev
|
||
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
|
||
|
||
ifeq ($(UNAME),OpenBSD)
|
||
CFLAGS += -ftrampolines
|
||
CFLAGS += -I${X11BASE}/include
|
||
LDFLAGS += -liconv
|
||
LDFLAGS += -L${X11BASE}/lib
|
||
endif
|
||
|
||
ifeq ($(UNAME),FreeBSD)
|
||
LDFLAGS += -liconv
|
||
endif
|
||
|
||
ifneq (,$(filter Linux GNU GNU/%, $(UNAME)))
|
||
CFLAGS += -D_GNU_SOURCE
|
||
endif
|
||
|
||
ifeq ($(DEBUG),1)
|
||
# Extended debugging flags, macros shall be available in gcc
|
||
CFLAGS += -gdwarf-2
|
||
CFLAGS += -g3
|
||
else
|
||
CFLAGS += -O2
|
||
endif
|
||
|
||
# Don’t print command lines which are run
|
||
.SILENT:
|
||
|
||
# Always remake the following targets
|
||
.PHONY: install clean dist distclean
|
||
|