|
@@ -32,6 +32,19 @@ LDFLAGS =
|
|
|
AR = ar
|
|
|
CC = gcc
|
|
|
|
|
|
+# Which build system to use; use 'ninja' or 'make' (in lower case). Leave
|
|
|
+# blank to autodetect.
|
|
|
+
|
|
|
+BUILDSYSTEM =
|
|
|
+
|
|
|
+# Build flags for ninja.
|
|
|
+
|
|
|
+NINJAFLAGS =
|
|
|
+
|
|
|
+# Build flags for make.
|
|
|
+
|
|
|
+MAKEFLAGS = -r
|
|
|
+
|
|
|
# ======================================================================= #
|
|
|
# END OF CONFIGURATION #
|
|
|
# ======================================================================= #
|
|
@@ -51,39 +64,26 @@ PLATDEP = $(INSDIR)/lib/ack
|
|
|
MAKECMDGOALS ?= +ack
|
|
|
BUILD_FILES = $(shell find * -name '*.lua')
|
|
|
|
|
|
-NINJA := $(shell which ninja)
|
|
|
-ifneq ($(findstring +, $(MAKECMDGOALS)),)
|
|
|
-ifneq ($(NINJA),)
|
|
|
-
|
|
|
-$(MAKECMDGOALS): $(BUILDDIR)/build.ninja
|
|
|
- @ninja -f $(BUILDDIR)/build.ninja $(MAKECMDGOALS)
|
|
|
-
|
|
|
+ifneq ($(shell which ninja),)
|
|
|
+BUILDSYSTEM = ninja
|
|
|
+BUILDFLAGS = $(NINJAFLAGS)
|
|
|
else
|
|
|
+BUILDSYSTEM = make
|
|
|
+BUILDFLAGS = $(MAKEFLAGS)
|
|
|
+endif
|
|
|
|
|
|
-$(MAKECMDGOALS): $(BUILDDIR)/rules.mk
|
|
|
- +@make -r -f $(BUILDDIR)/rules.mk $@ \
|
|
|
- $(MAKEFLAGS)
|
|
|
+ifneq ($(findstring +, $(MAKECMDGOALS)),)
|
|
|
|
|
|
-endif
|
|
|
-endif
|
|
|
+$(MAKECMDGOALS): $(BUILDDIR)/build.$(BUILDSYSTEM)
|
|
|
+ @$(BUILDSYSTEM) $(BUILDFLAGS) -f $^ $(MAKECMDGOALS)
|
|
|
|
|
|
-$(BUILDDIR)/build.ninja: first/ackbuilder.lua Makefile $(BUILD_FILES)
|
|
|
- @mkdir -p $(BUILDDIR)
|
|
|
- @lua5.1 first/ackbuilder.lua first/build.lua build.lua --ninja \
|
|
|
- OBJDIR=$(OBJDIR) \
|
|
|
- BINDIR=$(BINDIR) \
|
|
|
- LIBDIR=$(LIBDIR) \
|
|
|
- INCDIR=$(INCDIR) \
|
|
|
- INSDIR=$(INSDIR) \
|
|
|
- PLATIND=$(PLATIND) \
|
|
|
- PLATDEP=$(PLATDEP) \
|
|
|
- AR=$(AR) \
|
|
|
- CC=$(CC) \
|
|
|
- > $(BUILDDIR)/build.ninja
|
|
|
+endif
|
|
|
|
|
|
-$(BUILDDIR)/rules.mk: first/ackbuilder.lua Makefile $(BUILD_FILES)
|
|
|
+$(BUILDDIR)/build.$(BUILDSYSTEM): first/ackbuilder.lua Makefile $(BUILD_FILES)
|
|
|
@mkdir -p $(BUILDDIR)
|
|
|
- @lua5.1 first/ackbuilder.lua first/build.lua build.lua --make \
|
|
|
+ @lua5.1 first/ackbuilder.lua \
|
|
|
+ first/build.lua build.lua \
|
|
|
+ --$(BUILDSYSTEM) \
|
|
|
OBJDIR=$(OBJDIR) \
|
|
|
BINDIR=$(BINDIR) \
|
|
|
LIBDIR=$(LIBDIR) \
|
|
@@ -93,7 +93,7 @@ $(BUILDDIR)/rules.mk: first/ackbuilder.lua Makefile $(BUILD_FILES)
|
|
|
PLATDEP=$(PLATDEP) \
|
|
|
AR=$(AR) \
|
|
|
CC=$(CC) \
|
|
|
- > $(BUILDDIR)/rules.mk
|
|
|
+ > $(BUILDDIR)/build.$(BUILDSYSTEM)
|
|
|
|
|
|
clean:
|
|
|
@rm -rf $(BUILDDIR)
|