summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNRK <nrk@disroot.org>2022-04-21 23:14:03 +0200
committerN-R-K <nrk@disroot.org>2022-05-30 14:07:01 +0200
commit197afce93508d0c17ec8966fb96deed80c3c0f82 (patch)
treecc9ee932218caa2243215a88a010f1494cb74855
parent450797c573ef4ae42e93de5571319a5318142df9 (diff)
downloadnsxiv-197afce93508d0c17ec8966fb96deed80c3c0f82.tar.zst
introduce config.mk
this moves all the build variables intended to be modified by the user over to `config.mk` similar to other suckless software. also move CPPFLAGS down below for cosmetic purposes.
-rw-r--r--Makefile41
-rw-r--r--README.md4
-rw-r--r--config.mk25
3 files changed, 35 insertions, 35 deletions
diff --git a/Makefile b/Makefile
index 5c08ed0..d54cbc2 100644
--- a/Makefile
+++ b/Makefile
@@ -1,39 +1,9 @@
.POSIX:
-# nsxiv version
-VERSION = 29
-
-# PREFIX for install
-PREFIX = /usr/local
-MANPREFIX = $(PREFIX)/share/man
-EGPREFIX = $(PREFIX)/share/doc/nsxiv/examples
-
-# default value for optional dependencies. 1 = enabled, 0 = disabled
-OPT_DEP_DEFAULT = 1
-
-# autoreload backend: 1 = inotify, 0 = none
-HAVE_INOTIFY = $(OPT_DEP_DEFAULT)
-
-# optional dependencies, see README for more info
-HAVE_LIBFONTS = $(OPT_DEP_DEFAULT)
-HAVE_LIBGIF = $(OPT_DEP_DEFAULT)
-HAVE_LIBEXIF = $(OPT_DEP_DEFAULT)
-HAVE_LIBWEBP = $(OPT_DEP_DEFAULT)
-
-# CFLAGS, any optimization flags goes here
-CFLAGS = -std=c99 -Wall -pedantic
-
-# icons that will be installed via `make icon`
-ICONS = 16x16.png 32x32.png 48x48.png 64x64.png 128x128.png
+include config.mk
inc_fonts_0 =
inc_fonts_1 = -I/usr/include/freetype2 -I$(PREFIX)/include/freetype2
-
-CPPFLAGS = -D_XOPEN_SOURCE=700 \
- -DHAVE_LIBGIF=$(HAVE_LIBGIF) -DHAVE_LIBEXIF=$(HAVE_LIBEXIF) \
- -DHAVE_LIBWEBP=$(HAVE_LIBWEBP) -DHAVE_LIBFONTS=$(HAVE_LIBFONTS) \
- -DHAVE_INOTIFY=$(HAVE_INOTIFY) $(inc_fonts_$(HAVE_LIBFONTS))
-
lib_fonts_0 =
lib_fonts_1 = -lXft -lfontconfig
lib_exif_0 =
@@ -43,6 +13,11 @@ lib_gif_1 = -lgif
lib_webp_0 =
lib_webp_1 = -lwebpdemux -lwebp
+CPPFLAGS = -D_XOPEN_SOURCE=700 \
+ -DHAVE_LIBGIF=$(HAVE_LIBGIF) -DHAVE_LIBEXIF=$(HAVE_LIBEXIF) \
+ -DHAVE_LIBWEBP=$(HAVE_LIBWEBP) -DHAVE_LIBFONTS=$(HAVE_LIBFONTS) \
+ -DHAVE_INOTIFY=$(HAVE_INOTIFY) $(inc_fonts_$(HAVE_LIBFONTS))
+
NSXIV_LDLIBS = -lImlib2 -lX11 \
$(lib_exif_$(HAVE_LIBEXIF)) $(lib_gif_$(HAVE_LIBGIF)) \
$(lib_webp_$(HAVE_LIBWEBP)) $(lib_fonts_$(HAVE_LIBFONTS))
@@ -63,7 +38,7 @@ nsxiv: $(OBJS)
@echo "CC $@"
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
-$(OBJS): Makefile nsxiv.h config.h commands.h
+$(OBJS): Makefile config.mk nsxiv.h config.h commands.h
options.o: version.h
window.o: icon/data.h
@@ -71,7 +46,7 @@ config.h:
@echo "GEN $@"
cp config.def.h $@
-version.h: Makefile .git/index
+version.h: config.mk .git/index
@echo "GEN $@"
v="$$(git describe 2>/dev/null || true)"; \
echo "#define VERSION \"$${v:-$(VERSION)}\"" >$@
diff --git a/README.md b/README.md
index 4857866..c1cfe1a 100644
--- a/README.md
+++ b/README.md
@@ -99,8 +99,8 @@ For example:
$ make HAVE_LIBEXIF=0
will disable `libexif` support. Alternatively they can be disabled via editing
-the `Makefile` directly. `OPT_DEP_DEFAULT=0` can be used to disable all
-optional dependencies.
+`config.mk`. `OPT_DEP_DEFAULT=0` can be used to disable all optional
+dependencies.
Installing nsxiv:
diff --git a/config.mk b/config.mk
new file mode 100644
index 0000000..c303e4b
--- /dev/null
+++ b/config.mk
@@ -0,0 +1,25 @@
+# nsxiv version
+VERSION = 29
+
+# PREFIX for install
+PREFIX = /usr/local
+MANPREFIX = $(PREFIX)/share/man
+EGPREFIX = $(PREFIX)/share/doc/nsxiv/examples
+
+# default value for optional dependencies. 1 = enabled, 0 = disabled
+OPT_DEP_DEFAULT = 1
+
+# autoreload backend: 1 = inotify, 0 = none
+HAVE_INOTIFY = $(OPT_DEP_DEFAULT)
+
+# optional dependencies, see README for more info
+HAVE_LIBFONTS = $(OPT_DEP_DEFAULT)
+HAVE_LIBGIF = $(OPT_DEP_DEFAULT)
+HAVE_LIBEXIF = $(OPT_DEP_DEFAULT)
+HAVE_LIBWEBP = $(OPT_DEP_DEFAULT)
+
+# CFLAGS, any optimization flags goes here
+CFLAGS = -std=c99 -Wall -pedantic
+
+# icons that will be installed via `make icon`
+ICONS = 16x16.png 32x32.png 48x48.png 64x64.png 128x128.png