Introduction
Introduction Statistics Contact Development Disclaimer Help
Make Makefile strictly POSIX compliant - farbfeld - suckless image format with …
git clone git://git.suckless.org/farbfeld
Log
Files
Refs
README
LICENSE
---
commit bbe28227eb80da62fec59aa79ba7a97f5c3937b4
parent 65829635d9f5f9f4a23c2f890c60c315bcbafee2
Author: Laslo Hunhold <[email protected]>
Date: Thu, 30 Mar 2017 08:41:17 +0200
Make Makefile strictly POSIX compliant
Thanks Hiltjo for the feedback! GNUisms need to be avoided like a
plague, even if it means having to be a little more creative.
Strict POSIX compliance means that I just worked within the bounds of
the POSIX specification, hopefully without using any GNU or BSD
extensions. If I did, please let me know.
Tip to all Linux users: Test your Makefiles with pmake(1) instead of
make(1) (= GNU make) and refer to the newest POSIX 2016 make
specification[0].
[0]: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/make.html
Diffstat:
M Makefile | 27 +++++++++++++--------------
M config.mk | 6 ++++--
2 files changed, 17 insertions(+), 16 deletions(-)
---
diff --git a/Makefile b/Makefile
@@ -1,31 +1,32 @@
-# farbfeld - suckless image format with conversion tools
# See LICENSE file for copyright and license details
+# farbfeld - suckless image format with conversion tools
+.POSIX:
+
include config.mk
-REQ =
HDR = arg.h
BIN = png2ff ff2png jpg2ff ff2jpg ff2pam ff2ppm
-SCRIPTS = 2ff
+SCR = 2ff
MAN1 = 2ff.1 $(BIN:=.1)
MAN5 = farbfeld.5
all: $(BIN)
-$(BIN): % : %.o $(REQ:=.o)
- $(CC) $^ $(LDFLAGS) -o $@
+.o: $(REQ:=.o)
+ $(CC) $(CFLAGS) $($*-LDFLAGS) -o $@ $< $(REQ:=.o)
-$(BIN:=.o): $(HDR) $(REQ:=.h)
-
-%.o: %.c config.mk
+.c.o:
$(CC) $(CPPFLAGS) $(CFLAGS) -c $<
+$(BIN:=.o): config.mk $(HDR) $(REQ:=.h)
+
clean:
rm -f $(BIN) $(BIN:=.o) $(REQ:=.o)
dist:
rm -rf "farbfeld-$(VERSION)"
mkdir -p "farbfeld-$(VERSION)"
- cp -R FORMAT LICENSE Makefile README TODO config.mk $(SCRIPTS) \
+ cp -R FORMAT LICENSE Makefile README TODO config.mk $(SCR) \
$(HDR) $(BIN:=.c) $(REQ:=.c) $(REQ:=.h) \
$(MAN1) $(MAN5) "farbfeld-$(VERSION)"
tar -cf - "farbfeld-$(VERSION)" | gzip -c > "farbfeld-$(VERSION).tar.g…
@@ -33,8 +34,8 @@ dist:
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"…
+ cp -f $(SCR) $(BIN) "$(DESTDIR)$(PREFIX)/bin"
+ for f in $(BIN) $(SCR); do chmod 755 "$(DESTDIR)$(PREFIX)/bin/$$f"; do…
mkdir -p "$(DESTDIR)$(MANPREFIX)/man1"
cp -f $(MAN1) "$(DESTDIR)$(MANPREFIX)/man1"
for m in $(MAN1); do chmod 644 "$(DESTDIR)$(MANPREFIX)/man1/$$m"; done
@@ -43,8 +44,6 @@ install: all
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 f in $(BIN) $(SCR); do rm -f "$(DESTDIR)$(PREFIX)/bin/$$f"; done
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
@@ -12,8 +12,10 @@ CPPFLAGS = -D_DEFAULT_SOURCE
CFLAGS = -std=c89 -pedantic -Wall -Os
LDFLAGS = -s
-png2ff ff2png: LDFLAGS += -lpng
-jpg2ff ff2jpg: LDFLAGS += -ljpeg
+png2ff-LDFLAGS = -lpng
+ff2png-LDFLAGS = -lpng
+jpg2ff-LDFLAGS = -ljpeg
+ff2jpg-LDFLAGS = -ljpeg
# compiler and linker
CC = cc
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.