diff options
author | Laslo Hunhold <dev@frign.de> | 2017-03-30 08:41:17 +0200 |
---|---|---|
committer | Laslo Hunhold <dev@frign.de> | 2017-03-30 08:43:42 +0200 |
commit | bbe28227eb80da62fec59aa79ba7a97f5c3937b4 (patch) | |
tree | 93112dc100ab16896bd9aba53837b732b1c16a5b /Makefile | |
parent | 65829635d9f5f9f4a23c2f890c60c315bcbafee2 (diff) |
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 (limited to 'Makefile')
-rw-r--r-- | Makefile | 27 |
1 files changed, 13 insertions, 14 deletions
@@ -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.gz" @@ -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"; done + cp -f $(SCR) $(BIN) "$(DESTDIR)$(PREFIX)/bin" + for f in $(BIN) $(SCR); do chmod 755 "$(DESTDIR)$(PREFIX)/bin/$$f"; done 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"; done + 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 |