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_LDFLAGS
= -Wl
,--as-needed
14 MAINT_CPPFLAGS
= -I.
-D_GNU_SOURCE
-DSWM_LIB
=\"$(LIBDIR
)/libswmhack.so.
$(LIBVERSION
)\"
16 ifneq ("${BUILDVERSION}", "")
17 MAINT_CPPFLAGS
+= -DSPECTRWM_BUILDSTR
=\"$(BUILDVERSION
)\"
20 BIN_CPPFLAGS
= $(shell pkg-config
--cflags x11 x11-xcb xcb-icccm xcb-keysyms xcb-randr xcb-util xcb-xtest xcursor xft
)
21 BIN_LDLIBS
= $(shell pkg-config
--libs x11 x11-xcb xcb-icccm xcb-keysyms xcb-randr xcb-util xcb-xtest xcursor xft
)
22 LIB_CPPFLAGS
= $(shell pkg-config
--cflags x11
)
23 LIB_LDLIBS
= $(shell pkg-config
--libs x11
) -ldl
25 all: spectrwm libswmhack.so.
$(LIBVERSION
)
27 spectrwm
: spectrwm.o linux.o
28 $(CC
) $(MAINT_LDFLAGS
) $(LDFLAGS
) -o
$@
$+ $(BIN_LDLIBS
) $(LDLIBS
)
30 spectrwm.o
: ..
/spectrwm.c ..
/version.h tree.h util.h
31 $(CC
) $(MAINT_CFLAGS
) $(CFLAGS
) $(MAINT_CPPFLAGS
) $(BIN_CPPFLAGS
) $(CPPFLAGS
) -c
-o
$@
$<
33 linux.o
: linux.c util.h
34 $(CC
) $(MAINT_CFLAGS
) $(CFLAGS
) $(MAINT_CPPFLAGS
) $(BIN_CPPFLAGS
) $(CPPFLAGS
) -c
-o
$@
$<
36 libswmhack.so.
$(LIBVERSION
): swm_hack.so
37 $(CC
) $(MAINT_LDFLAGS
) $(LDFLAGS
) -Wl
,-soname
,$@
-shared
-fPIC
-o
$@
$+ $(LIB_LDLIBS
) $(LDLIBS
)
39 swm_hack.so
: ..
/lib
/swm_hack.c
40 $(CC
) $(MAINT_CFLAGS
) $(CFLAGS
) $(MAINT_CPPFLAGS
) $(LIB_CPPFLAGS
) $(CPPFLAGS
) -fPIC
-c
-o
$@
$<
43 rm -f spectrwm
*.o libswmhack.so.
* *.so
46 install -m
755 -d
$(DESTDIR
)$(BINDIR
)
47 install -m
755 -d
$(DESTDIR
)$(LIBDIR
)
48 install -m
755 -d
$(DESTDIR
)$(MANDIR
)/man1
49 install -m
755 -d
$(DESTDIR
)$(XSESSIONSDIR
)
50 install -m
755 spectrwm
$(DESTDIR
)$(BINDIR
)
51 ln
-sf spectrwm
$(DESTDIR
)$(BINDIR
)/scrotwm
52 install -m
644 libswmhack.so.
$(LIBVERSION
) $(DESTDIR
)$(LIBDIR
)
53 ln
-sf libswmhack.so.
$(LIBVERSION
) $(DESTDIR
)$(LIBDIR
)/libswmhack.so.
$(LIBMAJORVERSION
)
54 ln
-sf libswmhack.so.
$(LIBVERSION
) $(DESTDIR
)$(LIBDIR
)/libswmhack.so
55 install -m
644 ..
/spectrwm
.1 $(DESTDIR
)$(MANDIR
)/man1
/spectrwm
.1
56 install -m
644 spectrwm.desktop
$(DESTDIR
)$(XSESSIONSDIR
)
59 rm -f
$(DESTDIR
)$(BINDIR
)/spectrwm
60 rm -f
$(DESTDIR
)$(BINDIR
)/scrotwm
61 rm -f
$(DESTDIR
)$(LIBDIR
)/libswmhack.so.
$(LIBVERSION
)
62 rm -f
$(DESTDIR
)$(LIBDIR
)/libswmhack.so.
$(LIBMAJORVERSION
)
63 rm -f
$(DESTDIR
)$(LIBDIR
)/libswmhack.so
64 rm -f
$(DESTDIR
)$(MANDIR
)/man1
/spectrwm
.1
65 rm -f
$(DESTDIR
)$(XSESSIONSDIR
)/spectrwm.desktop
67 .PHONY
: all clean install uninstall