Introduction
Introduction Statistics Contact Development Disclaimer Help
Overhaul Build-system - farbfeld - suckless image format with conversion tools
git clone git://git.suckless.org/farbfeld
Log
Files
Refs
README
LICENSE
---
commit 416f39e3d68a6b12a05751930a609cfbbde483ff
parent 2ae075c04cff633eddefd3c07363d60bd05a3129
Author: Laslo Hunhold <[email protected]>
Date: Wed, 29 Mar 2017 17:51:41 +0200
Overhaul Build-system
I didn't like the current Makefiles. They were too crufted and not
elegant. Additionally, given I'm planning to put some utility functions
into a util.{c|h}-prerequisite, I wrote this new Makefile with PREREQs
in mind.
Diffstat:
M Makefile | 60 +++++++++++++++--------------…
M config.mk | 30 +++++-------------------------
2 files changed, 34 insertions(+), 56 deletions(-)
---
diff --git a/Makefile b/Makefile
@@ -2,51 +2,49 @@
# See LICENSE file for copyright and license details
include config.mk
+PREREQ =
+HDR = arg.h
BIN = png2ff ff2png jpg2ff ff2jpg ff2pam ff2ppm
SCRIPTS = 2ff
-SRC = ${BIN:=.c}
-HDR = arg.h
-MAN1 = 2ff.1 ${BIN:=.1}
+MAN1 = 2ff.1 $(BIN:=.1)
MAN5 = farbfeld.5
-all: ${BIN}
-
-${BIN}: ${@:=.o}
-
-OBJ = ${SRC:.c=.o}
+all: $(BIN)
-${OBJ}: config.mk ${HDR}
+$(BIN): % : %.o $(PREREQ:=.o)
+ $(CC) $^ $(LDFLAGS) -o $@
-.o:
- ${CC} ${CFLAGS} ${$*-LDFLAGS} -o $@ $<
+$(BIN:=.o): $(HDR) $(PREREQ:=.h)
-.c.o:
- ${CC} ${CFLAGS} ${$*-CFLAGS} ${CPPFLAGS} -c $<
+%.o: %.c config.mk
+ $(CC) $(CPPFLAGS) $(CFLAGS) -c $<
clean:
- rm -f ${BIN} ${OBJ}
+ rm -f $(BIN) $(BIN:=.o) $(PREREQ:=.o)
dist:
- rm -rf "farbfeld-${VERSION}"
- mkdir -p "farbfeld-${VERSION}"
- cp -R FORMAT LICENSE Makefile README TODO config.mk ${SCRIPTS} ${HDR} …
- tar -cf - "farbfeld-${VERSION}" | gzip -c > "farbfeld-${VERSION}.tar.g…
- rm -rf "farbfeld-${VERSION}"
+ rm -rf "farbfeld-$(VERSION)"
+ mkdir -p "farbfeld-$(VERSION)"
+ cp -R FORMAT LICENSE Makefile README TODO config.mk $(SCRIPTS) \
+ $(HDR) $(BIN:=.c) $(PREREQ:=.c) $(PREREQ:=.h) \
+ $(MAN1) $(MAN5) "farbfeld-$(VERSION)"
+ tar -cf - "farbfeld-$(VERSION)" | gzip -c > "farbfeld-$(VERSION).tar.g…
+ rm -rf "farbfeld-$(VERSION)"
install: all
- mkdir -p "${DESTDIR}${PREFIX}/bin"
- cp -f ${SCRIPTS} ${BIN} "${DESTDIR}${PREFIX}/bin"
- for f in $(BIN) $(SCRIPTS); do chmod 755 "${DESTDIR}${PREFIX}/bin/$$f"…
- mkdir -p "${DESTDIR}${MANPREFIX}/man1"
- cp -f ${MAN1} "${DESTDIR}${MANPREFIX}/man1"
- for m in $(MAN1); do chmod 644 "${DESTDIR}${MANPREFIX}/man1/$$m"; done
- mkdir -p "${DESTDIR}${MANPREFIX}/man5"
- cp -f ${MAN5} "${DESTDIR}${MANPREFIX}/man5"
- for m in $(MAN5); do chmod 644 "${DESTDIR}${MANPREFIX}/man5/$$m"; done
+ mkdir -p "$(DESTDIR)$(PREFIX)/bin"
+ cp -f $(SCRIPTS) $(BIN) "$(DESTDIR)$(PREFIX)/bin"
+ for f in $(BIN) $(SCRIPTS); do chmod 755 "$(DESTDIR)$(PREFIX)/bin/$$f"…
+ mkdir -p "$(DESTDIR)$(MANPREFIX)/man1"
+ cp -f $(MAN1) "$(DESTDIR)$(MANPREFIX)/man1"
+ for m in $(MAN1); do chmod 644 "$(DESTDIR)$(MANPREFIX)/man1/$$m"; done
+ mkdir -p "$(DESTDIR)$(MANPREFIX)/man5"
+ cp -f $(MAN5) "$(DESTDIR)$(MANPREFIX)/man5"
+ for m in $(MAN5); do chmod 644 "$(DESTDIR)$(MANPREFIX)/man5/$$m"; done
uninstall:
- for f in $(BIN) $(SCRIPTS); do rm -f "${DESTDIR}${PREFIX}/bin/$$f"; do…
- for m in $(MAN1); do rm -f "${DESTDIR}${MANPREFIX}/man1/$$m"; done
- for m in $(MAN5); do rm -f "${DESTDIR}${MANPREFIX}/man5/$$m"; done
+ for f in $(BIN) $(SCRIPTS); do rm -f "$(DESTDIR)$(PREFIX)/bin/$$f"; do…
+ for m in $(MAN1); do rm -f "$(DESTDIR)$(MANPREFIX)/man1/$$m"; done
+ for m in $(MAN5); do rm -f "$(DESTDIR)$(MANPREFIX)/man5/$$m"; done
.PHONY: all clean dist install uninstall
diff --git a/config.mk b/config.mk
@@ -7,33 +7,13 @@ VERSION = 2
PREFIX = /usr/local
MANPREFIX = ${PREFIX}/man
-PNGLIB = /usr/local/lib
-PNGINC = /usr/local/include
-
-JPGLIB = /usr/local/lib
-JPGINC = /usr/local/include
-
-INCS =
-LIBS =
-
# flags
CPPFLAGS = -D_DEFAULT_SOURCE
-CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS}
-LDFLAGS = -s ${LIBS}
+CFLAGS = -std=c89 -pedantic -Wall -Os
+LDFLAGS = -s
+
+png2ff ff2png: LDFLAGS += -lpng
+jpg2ff ff2jpg: LDFLAGS += -ljpeg
# compiler and linker
CC = cc
-
-# flags per tool.
-
-png2ff-CFLAGS := -I${PNGINC}
-png2ff-LDFLAGS := -L${PNGLIB} -lpng
-
-ff2png-CFLAGS := -I${PNGINC}
-ff2png-LDFLAGS := -L${PNGLIB} -lpng
-
-jpg2ff-CFLAGS := -I${JPGINC}
-jpg2ff-LDFLAGS := -L${JPGLIB} -ljpeg
-
-ff2jpg-CFLAGS := -I${JPGINC}
-ff2jpg-LDFLAGS := -L${JPGLIB} -ljpeg
You are viewing proxied material from suckless.org. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.