2 BINDIR ?
= $(PREFIX
)/bin
3 LIBDIR ?
= $(PREFIX
)/lib
4 DATAROOTDIR ?
= $(PREFIX
)/share
5 MANDIR ?
= $(DATAROOTDIR
)/man
6 XSESSIONSDIR ?
= $(DATAROOTDIR
)/xsessions
8 BUILDVERSION
= $(shell sh
$(CURDIR
)/..
/buildver.sh
)
9 LIBVERSION
= $(shell .
$(CURDIR
)/..
/lib
/shlib_version
; echo
$$major.
$$minor)
10 LIBMAJORVERSION
= $(shell .
$(CURDIR
)/..
/lib
/shlib_version
; echo
$$major)
12 MAINT_CFLAGS
= -std
=c99
-Wmissing-prototypes
-Wall
-Wextra
-Wshadow
-Wno-uninitialized
-g
13 MAINT_CPPFLAGS
= -I.
-D_GNU_SOURCE
-DSWM_LIB
=\"$(LIBDIR
)/libswmhack.so.
$(LIBVERSION
)\"
15 ifneq ("${BUILDVERSION}", "")
16 MAINT_CPPFLAGS
+= -DSPECTRWM_BUILDSTR
=\"$(BUILDVERSION
)\"
19 BIN_CPPFLAGS
= $(shell pkg-config
--cflags x11 x11-xcb xcb-icccm xcb-keysyms xcb-randr xcb-util xcb-xtest xcursor xft
)
20 BIN_LDLIBS
= $(shell pkg-config
--libs x11 x11-xcb xcb-icccm xcb-keysyms xcb-randr xcb-util xcb-xtest xcursor xft
)
21 LIB_CPPFLAGS
= $(shell pkg-config
--cflags x11
)
22 LIB_LDLIBS
= $(shell pkg-config
--libs x11
) -ldl
24 all: spectrwm libswmhack.so.
$(LIBVERSION
)
26 spectrwm
: spectrwm.o linux.o
27 $(CC
) $(MAINT_LDFLAGS
) $(LDFLAGS
) -o
$@
$+ $(BIN_LDLIBS
) $(LDLIBS
)
29 spectrwm.o
: ..
/spectrwm.c ..
/version.h tree.h util.h
30 $(CC
) $(MAINT_CFLAGS
) $(CFLAGS
) $(MAINT_CPPFLAGS
) $(BIN_CPPFLAGS
) $(CPPFLAGS
) -c
-o
$@
$<
32 linux.o
: linux.c util.h
33 $(CC
) $(MAINT_CFLAGS
) $(CFLAGS
) $(MAINT_CPPFLAGS
) $(BIN_CPPFLAGS
) $(CPPFLAGS
) -c
-o
$@
$<
35 libswmhack.so.
$(LIBVERSION
): swm_hack.so
36 $(CC
) $(MAINT_LDFLAGS
) $(LDFLAGS
) -Wl
,-soname
,$@
-shared
-fpic
-o
$@
$+ $(LIB_LDLIBS
) $(LDLIBS
)
38 swm_hack.so
: ..
/lib
/swm_hack.c
39 $(CC
) $(MAINT_CFLAGS
) $(CFLAGS
) $(MAINT_CPPFLAGS
) $(LIB_CPPFLAGS
) $(CPPFLAGS
) -fpic
-DPIC
-c
-o
$@
$<
42 rm -f spectrwm
*.o libswmhack.so.
* *.so
45 install -m
755 -d
$(DESTDIR
)$(BINDIR
)
46 install -m
755 -d
$(DESTDIR
)$(LIBDIR
)
47 install -m
755 -d
$(DESTDIR
)$(MANDIR
)/man1
48 install -m
755 -d
$(DESTDIR
)$(XSESSIONSDIR
)
49 install -m
755 spectrwm
$(DESTDIR
)$(BINDIR
)
50 ln
-sf spectrwm
$(DESTDIR
)$(BINDIR
)/scrotwm
51 install -m
644 libswmhack.so.
$(LIBVERSION
) $(DESTDIR
)$(LIBDIR
)
52 ln
-sf libswmhack.so.
$(LIBVERSION
) $(DESTDIR
)$(LIBDIR
)/libswmhack.so.
$(LIBMAJORVERSION
)
53 ln
-sf libswmhack.so.
$(LIBVERSION
) $(DESTDIR
)$(LIBDIR
)/libswmhack.so
54 install -m
644 ..
/spectrwm
.1 $(DESTDIR
)$(MANDIR
)/man1
/spectrwm
.1
55 install -m
644 spectrwm.desktop
$(DESTDIR
)$(XSESSIONSDIR
)
58 rm -f
$(DESTDIR
)$(BINDIR
)/spectrwm
59 rm -f
$(DESTDIR
)$(BINDIR
)/scrotwm
60 rm -f
$(DESTDIR
)$(LIBDIR
)/libswmhack.so.
$(LIBVERSION
)
61 rm -f
$(DESTDIR
)$(LIBDIR
)/libswmhack.so.
$(LIBMAJORVERSION
)
62 rm -f
$(DESTDIR
)$(LIBDIR
)/libswmhack.so
63 rm -f
$(DESTDIR
)$(MANDIR
)/man1
/spectrwm
.1
64 rm -f
$(DESTDIR
)$(XSESSIONSDIR
)/spectrwm.desktop
66 .PHONY
: all clean install uninstall