From 197afce93508d0c17ec8966fb96deed80c3c0f82 Mon Sep 17 00:00:00 2001 From: NRK Date: Fri, 22 Apr 2022 03:14:03 +0600 Subject: [PATCH] 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. --- Makefile | 41 ++++++++--------------------------------- README.md | 4 ++-- config.mk | 25 +++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 35 deletions(-) create mode 100644 config.mk 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