[arch-commits] Commit in llpp/trunk (Makefile Makefile PKGBUILD)

Eli Schwartz eschwartz at archlinux.org
Tue Jul 30 18:42:32 UTC 2019


    Date: Tuesday, July 30, 2019 @ 18:42:31
  Author: eschwartz
Revision: 495422

llpp: update Makefile to be more GNU-ish

Fixes a parallelism issue due to dependencies, makes the relations between
files clearer.

While we are at it, tweak the design to take more advantage of GNU Make
features since we use GNU Make anyway, and use some GNU idioms for defining
variable locations. Also emulate the COMPILE.foo / LINK.foo compiler
definitions as seen in the builtin rules.

Credit goes mostly to @earnestly.

Added:
  llpp/trunk/Makefile
Modified:
  llpp/trunk/PKGBUILD
Deleted:
  llpp/trunk/Makefile

----------+
 Makefile |  186 +++++++++++++++++++++++++++++++------------------------------
 PKGBUILD |    5 +
 2 files changed, 99 insertions(+), 92 deletions(-)

Deleted: Makefile
===================================================================
--- Makefile	2019-07-30 18:32:44 UTC (rev 495421)
+++ Makefile	2019-07-30 18:42:31 UTC (rev 495422)
@@ -1,91 +0,0 @@
-VERSION = $(shell test -d .git && git describe --tags --dirty 2>/dev/null)
-ifeq "$(VERSION)" ""
-VERSION = 31
-endif
-
-# paths
-PREFIX ?= /usr/local
-
-# includes and libs
-PKGCONF_DEPS := freetype2 harfbuzz libopenjp2 libjpeg x11 zlib
-CPPFLAGS += -D_GNU_SOURCE -DFFP
-CFLAGS += -g -std=c99 -pedantic -Wall -Wextra -Wshadow $(shell pkg-config --cflags $(PKGCONF_DEPS))
-LDLIBS = -lpthread -lmupdf -lmupdf-third -ljbig2dec $(shell pkg-config --libs $(PKGCONF_DEPS))
-
-# ocaml
-CAMLOPT = ocamlopt
-CAMLFLAGS = -g -w +a -safe-string -I +lablGL
-
-VPATH = wsi/x11
-
-C_SRC = cutils.c keysym2ucs.c link.c xlib.c version.c
-C_OBJ = $(C_SRC:.c=.o)
-OCAML_SRC = utils.ml wsi.ml confstruct.ml parser.ml config.ml ffi.ml glutils.ml help.ml keys.ml utf8syms.ml listview.ml main.ml
-OCAML_OBJ = $(OCAML_SRC:.ml=.cmx)
-MOD = unix.cmxa str.cmxa lablgl.cmxa
-SRCMANS = $(wildcard adoc/*.adoc)
-MANS = $(SRCMANS:.adoc=.1)
-
-DISTFILES := Makefile $(OCAML_SRC) link.c glfont.c keysym2ucs.c wsi.mli
-DISTFILES += $(wildcard *.sh) KEYS README BUILDING
-DISTFILES += misc/ adoc/
-
-all: llpp $(MANS)
-
-# dependency ordering
-config.cmx: wsi.cmi parser.cmx utils.cmx confstruct.cmx
-confstruct.cmx: wsi.cmx utils.cmx
-ffi.cmx: config.cmx
-glutils.cmx: ffi.cmx
-help.cmx: help.cmi config.cmx utils.cmx
-listview.cmx: utils.cmx glutils.cmx config.cmx utf8syms.cmx
-main.cmx: main.ml main.cmi utils.cmx config.cmx glutils.cmx listview.cmx ffi.cmx keys.cmx wsi.cmx
-main.cmx: CAMLFLAGS += -thread
-parser.cmx: utils.cmx
-wsi.cmi: utils.cmx keys.cmx
-wsi.cmx: wsi.cmi
-
-link.o: glfont.c
-version.o: CPPFLAGS += -DLLPP_VERSION=$(VERSION)
-
-# ordinary targets
-llpp: $(OCAML_OBJ) $(C_OBJ)
-	$(CAMLOPT) -o $@ $(CAMLFLAGS) $(C_OBJ) -ccopt '$(LDFLAGS)' -cclib '$(LDLIBS)' $(MOD) $(OCAML_OBJ)
-
-
-confstruct.ml: genconfstr.sh
-	sh $< >$@
-
-# pattern rules
-%.o: %.c
-	$(CAMLOPT) -c -o $@ $(CAMLFLAGS) -cc $(CC) -ccopt '$(CFLAGS) $(CPPFLAGS)' $<
-
-%.cmx: %.ml
-	$(CAMLOPT) -c -o $@ $(CAMLFLAGS) $<
-
-%.cmi: %.mli
-	$(CAMLOPT) -c -o $@ $(CAMLFLAGS) $<
-
-%.1: %.adoc adoc/asciidoc.conf
-	a2x -d manpage -f manpage --asciidoc-opts="-f adoc/asciidoc.conf --out-file=$@.xml" $<
-
-# special targets
-clean:
-	$(RM) llpp link.o help.ml $(OCAML_OBJ) $(OCAML_OBJ:.cmx=.cmi) $(OCAML_OBJ:.cmx=.o) $(MANS) $(MANS:.1=.xml)
-
-dist: clean
-	mkdir llpp-$(VERSION)
-	cp -r $(DISTFILES) llpp-$(VERSION)
-	tar czf llpp-$(VERSION).tar.gz llpp-$(VERSION)
-	rm -rf llpp-$(VERSION)
-
-install:
-	install -Dm755 llpp "$(DESTDIR)"$(PREFIX)/bin/llpp
-	install -Dm644 -t "$(DESTDIR)"$(PREFIX)/share/man/man1  $(MANS)
-	install -Dm755 misc/llppac "$(DESTDIR)"$(PREFIX)/bin/llppac
-	install -Dm755 misc/llpp.inotify "$(DESTDIR)"$(PREFIX)/bin/llpp.inotify
-	install -Dm755 misc/llpphtml "$(DESTDIR)"$(PREFIX)/bin/llpphtml
-	install -Dm644 misc/llpp.desktop "$(DESTDIR)"$(PREFIX)/share/applications/llpp.desktop
-	install -Dm644 README "$(DESTDIR)"$(PREFIX)/share/licenses/llpp/README
-
-.PHONY: all clean dist install

Added: Makefile
===================================================================
--- Makefile	                        (rev 0)
+++ Makefile	2019-07-30 18:42:31 UTC (rev 495422)
@@ -0,0 +1,95 @@
+MAKEFLAGS := -r
+
+VERSION = $(shell test -d .git && git describe --tags --dirty 2>/dev/null)
+ifeq ($(VERSION),)
+    VERSION = 31
+endif
+
+# paths
+PREFIX ?= /usr/local
+bindir ?= $(PREFIX)/bin
+datarootdir ?= $(PREFIX)/share
+mandir ?= $(datarootdir)/man
+
+# includes and libs
+PKGCONF_DEPS := freetype2 harfbuzz libopenjp2 libjpeg x11 zlib
+override CPPFLAGS += -D_GNU_SOURCE -DFFP
+override CFLAGS += -g -std=c99 -pedantic -Wall -Wextra -Wshadow $(shell pkg-config --cflags $(PKGCONF_DEPS))
+LDLIBS := -lpthread -lmupdf -lmupdf-third -ljbig2dec $(shell pkg-config --libs $(PKGCONF_DEPS))
+
+# ocaml
+override OCAMLFLAGS += -g -w +a -safe-string
+
+# Some source files are stored in an OS-specific directory here.
+# Divert them to the main srcdir.
+ifeq ($(shell uname -s),Linux)
+    VPATH := wsi/x11
+else
+    VPATH := wsi/cocoa # Darwin
+endif
+
+# Ensure main.cmx is last in this list:
+OCAML_OBJ := utils.cmx wsi.cmx confstruct.cmx parser.cmx config.cmx ffi.cmx glutils.cmx keys.cmx utf8syms.cmx listview.cmx help.cmx main.cmx
+C_OBJ := cutils.o keysym2ucs.o link.o xlib.o version.o
+MODULES := unix.cmxa str.cmxa lablgl.cmxa
+SRCMANS = $(wildcard adoc/*.adoc)
+MANS = $(SRCMANS:.adoc=.1)
+
+OCAMLC := ocamlopt
+COMPILE.ocaml = $(OCAMLC) $(OCAMLFLAGS) -c
+LINK.ocaml = $(OCAMLC) $(OCAMLFLAGS)
+
+all: llpp $(MANS)
+
+# dependency ordering
+main.cmx: private OCAMLFLAGS += -thread -I +lablGL
+main.cmx: main.cmi utils.cmx config.cmx glutils.cmx listview.cmx ffi.cmx help.cmx
+config.cmx: wsi.cmx confstruct.cmx parser.cmx
+confstruct.cmx: wsi.cmx
+parser.cmx: utils.cmx
+wsi.cmx: keys.cmx utils.cmx
+listview.cmx: private OCAMLFLAGS += -I +lablGL
+listview.cmx: utf8syms.cmx glutils.cmx
+glutils.cmx: private OCAMLFLAGS += -I +lablGL
+glutils.cmx: ffi.cmx
+ffi.cmx: config.cmx
+help.cmx: help.cmi utils.cmx ffi.cmx config.cmx
+help.cmi: config.cmx
+
+link.o: glfont.c
+version.o: private CPPFLAGS += -DLLPP_VERSION=$(VERSION)
+
+# ordinary targets
+llpp: private OCAMLFLAGS += -I +lablGL
+llpp: $(OCAML_OBJ) $(C_OBJ)
+	$(LINK.ocaml) $(OUTPUT_OPTION) $(C_OBJ) -ccopt '$(LDFLAGS)' -cclib '$(LDLIBS)' $(MODULES) $(OCAML_OBJ)
+
+confstruct.ml: genconfstr.sh
+	sh $< > $@
+
+# pattern rules
+%.o: %.c
+	$(COMPILE.ocaml) $(OUTPUT_OPTION) -cc '$(CC)' -ccopt '$(CFLAGS) $(CPPFLAGS)' $<
+
+%.cmx: %.ml
+	$(COMPILE.ocaml) $(OUTPUT_OPTION) $<
+
+%.cmi: %.mli
+	$(COMPILE.ocaml) $(OUTPUT_OPTION) $<
+
+%.1: %.adoc adoc/asciidoc.conf
+	a2x -d manpage -f manpage --asciidoc-opts="-f adoc/asciidoc.conf --out-file=$@.xml" $<
+
+# special targets
+clean:
+	$(RM) llpp confstruct.ml $(C_OBJ) $(OCAML_OBJ) $(OCAML_OBJ:.cmx=.cmi) $(OCAML_OBJ:.cmx=.o) $(MANS) $(MANS:.1=.xml)
+
+install:
+	install -Dm755 llpp "$(DESTDIR)$(bindir)"/llpp
+	install -Dm644 -t "$(DESTDIR)$(mandir)"/man1 $(MANS)
+	install -Dm755 misc/llppac "$(DESTDIR)$(bindir)"/llppac
+	install -Dm755 misc/llpp.inotify "$(DESTDIR)$(bindir)"/llpp.inotify
+	install -Dm755 misc/llpphtml "$(DESTDIR)$(bindir)"/llpphtml
+	install -Dm644 misc/llpp.desktop "$(DESTDIR)$(datarootdir)"/applications/llpp.desktop
+
+.PHONY: all clean install

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2019-07-30 18:32:44 UTC (rev 495421)
+++ PKGBUILD	2019-07-30 18:42:31 UTC (rev 495422)
@@ -37,7 +37,7 @@
 sha256sums=('SKIP'
             '5814846ad19d9ddd8e1412bf36d4c2dc1a32186261126ec63cdf19f308396458'
             'e6fa1df1e9451d4ffecc416676ad4697da21fc8809e20c78502b97805e4f4321'
-            'e1642c11f4cc6162784ba1c9a70d2573b48d56a9af9066216d86049683c94928')
+            'b764e6cc084ee472704faad2591f086beaf79c3c04dbf6f12711e050d9167028')
 
 pkgver() {
     cd "${srcdir}"/${pkgname}
@@ -54,6 +54,9 @@
     patch -Np1 -i "${srcdir}"/no-quit-on-escape.patch
     # apparently the desktop file went "stale"
     git revert --no-commit aad4b1e65e581ff7a096a3c3901b222a9c127a1c
+
+    # This symlink ruins all the fun
+    rm wsi/x11/wsi.mli
 }
 
 build() {


More information about the arch-commits mailing list