aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMattias Andrée <maandree@kth.se>2023-07-02 09:09:58 +0200
committerMattias Andrée <maandree@kth.se>2023-07-02 09:09:58 +0200
commit2ab5473fc48d91ecce1f11c49e5decdcf821e3d4 (patch)
tree990bb8866d207f8ba7626e7574a323fbadf9c6d0
parentAdd documentation to config.h (diff)
downloadxkbdbind-2ab5473fc48d91ecce1f11c49e5decdcf821e3d4.tar.gz
xkbdbind-2ab5473fc48d91ecce1f11c49e5decdcf821e3d4.tar.bz2
xkbdbind-2ab5473fc48d91ecce1f11c49e5decdcf821e3d4.tar.xz
Improve makefile and add man page1.2
Signed-off-by: Mattias Andrée <maandree@kth.se>
-rw-r--r--.gitignore9
-rw-r--r--LICENSE2
-rw-r--r--Makefile34
-rw-r--r--README6
-rw-r--r--config.mk10
-rw-r--r--xkbdbind.114
6 files changed, 64 insertions, 11 deletions
diff --git a/.gitignore b/.gitignore
index 66d9ded..069d7c5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,4 +1,11 @@
+*\#*
*~
-\#*\#
*.o
+*.a
+*.lo
+*.so
+*.su
+*.gcov
+*.gcno
+*.gcda
/xkbdbind
diff --git a/LICENSE b/LICENSE
index 05839b1..91bd2c1 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,6 +1,6 @@
ISC License
-© 2018, 2021 Mattias Andrée <maandree@kth.se>
+© 2018, 2021, 2023 Mattias Andrée <maandree@kth.se>
Permission to use, copy, modify, and/or distribute this software for any
purpose with or without fee is hereby granted, provided that the above
diff --git a/Makefile b/Makefile
index 6eb1f43..018f97c 100644
--- a/Makefile
+++ b/Makefile
@@ -1,17 +1,39 @@
.POSIX:
-CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700
-CFLAGS = -std=c99 -Wall -Wextra -pedantic -O2 $(CPPFLAGS)
-LDFLAGS = -s -lxcb -lxcb-keysyms
+OBJ = xkbdbind.o
+HDR = config.h
+
+CONFIGFILE = config.mk
+include $(CONFIGFILE)
all: xkbdbind
+$(OBJ): $(HDR)
+
+xkbdbind: $(OBJ) $(HDR)
+ $(CC) -o $@ $(OBJ) $(LDFLAGS)
+
+.c.o:
+ $(CC) -c -o $@ $< $(CFLAGS)
+
+install: xkbdbind
+ mkdir -p -- "$(DESTDIR)$(PREFIX)/bin"
+ mkdir -p -- "$(DESTDIR)$(PREFIX)/src/$(PACKAGE)"
+ mkdir -p -- "$(DESTDIR)$(MANPREFIX)/man1"
+ cp -- xkbdbind "$(DESTDIR)$(PREFIX)/bin/"
+ cp -- $(OBJ:.o=.c) $(HDR) Makefile "$(DESTDIR)$(PREFIX)/src/$(PACKAGE)/"
+ test ! -e -- "$(DESTDIR)$(PREFIX)/src/$(PACKAGE)/config.mk"
+ cp -- $(CONFIGFILE) "$(DESTDIR)$(PREFIX)/src/$(PACKAGE)/config.mk"
+ cp -- xkbdbind.1 "$(DESTDIR)$(MANPREFIX)/man1/"
-xkbdbind: xkbdbind.c config.h
- $(CC) -o $@ $@.c $(CFLAGS) $(LDFLAGS)
+uninstall:
+ -rm -f -- "$(DESTDIR)$(PREFIX)/bin/xkbdbind"
+ -rm -rf -- "$(DESTDIR)$(PREFIX)/src/$(PACKAGE)"
+ -rm -f -- "$(DESTDIR)$(MANPREFIX)/man1/xkbdbind.1"
clean:
-rm -f -- xkbdbind *.o
.SUFFIXES:
+.SUFFIXES: .c .o
-.PHONY: all clean
+.PHONY: all install uninstall clean
diff --git a/README b/README
index 55a0bc3..bdbcfb7 100644
--- a/README
+++ b/README
@@ -12,9 +12,9 @@ DESCRIPTION
config.h source file and recompiling the program. The
user shall therefore have a local copy of the software,
and a personal installation of it. Thus, xkbdbind is
- not a program that is top be installed system-wide.
+ not a program that is to be installed system-wide.
Download xkbdbind to ~/.local/src/xkbdbind, run make(1)
in ~/.local/src/xkbdbind, link ~/.local/bin/xkbdbind to
- ~/.local/src/xkbdbind/xkbdbind, and ~/.local/bin to the
- PATH environment variable if you haven't already.
+ ~/.local/src/xkbdbind/xkbdbind, and add ~/.local/bin to
+ PATthe H environment variable if you haven't already.
diff --git a/config.mk b/config.mk
new file mode 100644
index 0000000..e8e1344
--- /dev/null
+++ b/config.mk
@@ -0,0 +1,10 @@
+PREFIX = /usr
+MANPREFIX = $(PREFIX)/share/man
+
+PACKAGE = xkbdbind
+
+CC = c99
+
+CPPFLAGS = -D_DEFAULT_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=700
+CFLAGS = -Wall -O2 $(CPPFLAGS)
+LDFLAGS = -lxcb -lxcb-keysyms
diff --git a/xkbdbind.1 b/xkbdbind.1
new file mode 100644
index 0000000..1694789
--- /dev/null
+++ b/xkbdbind.1
@@ -0,0 +1,14 @@
+.TH XKBDBIND 1 xkbdbind
+.SH NAME
+xkbdbind - global hotkeys for X
+.SH SYNOPSIS
+.B xkbdbind
+.SH DESCRIPTION
+.B xkbdbind
+lets the user configure keybindings to start programs.
+.PP
+xkbdbind is a configured by the user by editing the
+.I config.h
+source file and recompiling the program. The user shall
+therefore have a local copy of the software, and a personal
+installation of it.