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.
This commit is contained in:
NRK 2022-04-22 03:14:03 +06:00 committed by N-R-K
parent 450797c573
commit 197afce935
3 changed files with 35 additions and 35 deletions

View File

@ -1,39 +1,9 @@
.POSIX: .POSIX:
# nsxiv version include config.mk
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
inc_fonts_0 = inc_fonts_0 =
inc_fonts_1 = -I/usr/include/freetype2 -I$(PREFIX)/include/freetype2 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_0 =
lib_fonts_1 = -lXft -lfontconfig lib_fonts_1 = -lXft -lfontconfig
lib_exif_0 = lib_exif_0 =
@ -43,6 +13,11 @@ lib_gif_1 = -lgif
lib_webp_0 = lib_webp_0 =
lib_webp_1 = -lwebpdemux -lwebp 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 \ NSXIV_LDLIBS = -lImlib2 -lX11 \
$(lib_exif_$(HAVE_LIBEXIF)) $(lib_gif_$(HAVE_LIBGIF)) \ $(lib_exif_$(HAVE_LIBEXIF)) $(lib_gif_$(HAVE_LIBGIF)) \
$(lib_webp_$(HAVE_LIBWEBP)) $(lib_fonts_$(HAVE_LIBFONTS)) $(lib_webp_$(HAVE_LIBWEBP)) $(lib_fonts_$(HAVE_LIBFONTS))
@ -63,7 +38,7 @@ nsxiv: $(OBJS)
@echo "CC $@" @echo "CC $@"
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $< $(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 options.o: version.h
window.o: icon/data.h window.o: icon/data.h
@ -71,7 +46,7 @@ config.h:
@echo "GEN $@" @echo "GEN $@"
cp config.def.h $@ cp config.def.h $@
version.h: Makefile .git/index version.h: config.mk .git/index
@echo "GEN $@" @echo "GEN $@"
v="$$(git describe 2>/dev/null || true)"; \ v="$$(git describe 2>/dev/null || true)"; \
echo "#define VERSION \"$${v:-$(VERSION)}\"" >$@ echo "#define VERSION \"$${v:-$(VERSION)}\"" >$@

View File

@ -99,8 +99,8 @@ For example:
$ make HAVE_LIBEXIF=0 $ make HAVE_LIBEXIF=0
will disable `libexif` support. Alternatively they can be disabled via editing will disable `libexif` support. Alternatively they can be disabled via editing
the `Makefile` directly. `OPT_DEP_DEFAULT=0` can be used to disable all `config.mk`. `OPT_DEP_DEFAULT=0` can be used to disable all optional
optional dependencies. dependencies.
Installing nsxiv: Installing nsxiv:

25
config.mk Normal file
View File

@ -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