From 67932f829fbf7aaa269725e646d1c35f74d97be5 Mon Sep 17 00:00:00 2001
From: Philipp Gesang <phg42.2a@gmail.com>
Date: Tue, 11 Feb 2014 07:29:32 +0100
Subject: [*] adapt Makefile to ./scripts and ./build

---
 Makefile | 44 +++++++++++++++++++++++++++++---------------
 1 file changed, 29 insertions(+), 15 deletions(-)

diff --git a/Makefile b/Makefile
index 3ed893c..689d9da 100644
--- a/Makefile
+++ b/Makefile
@@ -3,17 +3,21 @@
 NAME		= luaotfload
 LUAOTFLOAD	= $(wildcard luaotfload-*.lua) luaotfload-blacklist.cnf
 
-GLYPHSCRIPT	= mkglyphlist
-GLYPHSOURCE	= glyphlist.txt
-CHARSCRIPT	= mkcharacters
-STATUSSCRIPT	= mkstatus
+DOCSRCDIR	= ./doc
+SCRIPTSRCDIR	= ./scripts
+BUILDDIR	= ./build
+
+GLYPHSCRIPT	= $(SCRIPTSRCDIR)/mkglyphlist
+CHARSCRIPT	= $(SCRIPTSRCDIR)/mkcharacters
+STATUSSCRIPT	= $(SCRIPTSRCDIR)/mkstatus
+
+GLYPHSOURCE	= $(BUILDDIR)/glyphlist.txt
 
 RESOURCESCRIPTS = $(GLYPHSCRIPT) $(CHARSCRIPT) $(STATUSSCRIPT)
 
 SCRIPTNAME	= luaotfload-tool
 SCRIPT		= $(SCRIPTNAME).lua
 
-DOCSRCDIR	= ./doc
 GRAPH		= filegraph
 DOCSRC		= $(DOCSRCDIR)/$(NAME).dtx
 GRAPHSRC	= $(DOCSRCDIR)/$(GRAPH).dot
@@ -26,15 +30,15 @@ MANPAGE		= $(DOCSRCDIR)/$(SCRIPTNAME).1
 DOCS		= $(DOCPDF) $(DOTPDF) $(MANPAGE)
 
 # Files grouped by generation mode
-GLYPHS		= luaotfload-glyphlist.lua
-CHARS		= luaotfload-characters.lua
-STATUS		= luaotfload-status.lua
+GLYPHS		= $(BUILDDIR)/$(NAME)-glyphlist.lua
+CHARS		= $(BUILDDIR)/$(NAME)-characters.lua
+STATUS		= $(BUILDDIR)/$(NAME)-status.lua
 RESOURCES	= $(GLYPHS) $(CHARS) $(STATUS)
 SOURCE		= $(DOCSRC) $(MANSRC) $(LUAOTFLOAD) README Makefile NEWS $(RESOURCESCRIPTS)
 
 # Files grouped by installation location
 SCRIPTSTATUS	= $(SCRIPT) $(OLDSCRIPT) $(RESOURCESCRIPTS)
-RUNSTATUS	= $(UNPACKED) $(filter-out $(SCRIPTSTATUS),$(LUAOTFLOAD))
+RUNSTATUS	= $(filter-out $(SCRIPTSTATUS),$(LUAOTFLOAD))
 DOCSTATUS	= $(DOCPDF) $(DOTPDF) README NEWS
 MANSTATUS	= $(MANPAGE)
 SRCSTATUS	= $(DOCSRC) $(MANSRC) $(GRAPHSRC) Makefile
@@ -61,15 +65,18 @@ ZIPS		= $(CTAN_ZIP) $(TDS_ZIP)
 
 LUA		= texlua
 
+## For now the $(BUILDDIR) is hardcoded in the scripts
+## but we might just as well pass it to them by as environment
+## variables.
 DO_GLYPHS	= $(LUA) $(GLYPHSCRIPT) > /dev/null
 DO_CHARS	= $(LUA) $(CHARSCRIPT)  > /dev/null
 DO_STATUS	= $(LUA) $(STATUSSCRIPT)  > /dev/null
 
 all: $(GENERATED)
-unpack: $(UNPACKED)
-resources: $(RESOURCES)
-chars: $(CHARS)
-status: $(STATUS)
+builddir: $(BUILDDIR)
+resources: builddir $(RESOURCES)
+chars: builddir $(CHARS)
+status: builddir $(STATUS)
 ctan: $(CTAN_ZIP)
 tds: $(TDS_ZIP)
 world: all ctan
@@ -97,6 +104,9 @@ $(CHARS): /dev/null
 $(STATUS): /dev/null
 	$(DO_STATUS)
 
+$(BUILDDIR): /dev/null
+	mkdir -p $(BUILDDIR)
+
 define make-ctandir
 @$(RM) -rf $(DISTDIR)
 @mkdir -p $(DISTDIR) && cp $(SOURCE) $(COMPILED) $(DISTDIR)
@@ -142,13 +152,17 @@ manifest:
 	@echo "Derived files:"
 	@for f in $(GENERATED); do echo $$f; done
 
+CLEANEXTS	= log aux toc idx ind ilg out
+CLEANME		= $(foreach ext,$(CLEANEXTS),$(wildcard *.$(ext)))
+CLEANME		+= $(foreach ext,$(CLEANEXTS),$(wildcard $(BUILDDIR)/*$(ext)))
+
 clean:
 	$(MAKE) -C $(DOCSRCDIR) $@
-	@$(RM) -- *.log *.aux *.toc *.idx *.ind *.ilg *.out
+	@$(RM) -- $(CLEANME)
 
 mrproper: clean
 	$(MAKE) -C $(DOCSRCDIR) $@
 	@$(RM) -- $(GENERATED) $(ZIPS) $(GLYPHSOURCE)
-	@$(RM) -r -- $(DISTDIR)
+	@$(RM) -r -- $(DISTDIR) $(BUILDDIR)
 
 # vim:set noexpandtab:tabstop=8:shiftwidth=2
-- 
cgit v1.2.3