ack/Makefile

101 lines
2.4 KiB
Makefile
Raw Normal View History

# ======================================================================= #
# ACK CONFIGURATION #
# (Edit this before building) #
# ======================================================================= #
# What platform to build for by default?
DEFAULT_PLATFORM = pc86
# Where should the ACK put its temporary files?
ACK_TEMP_DIR = /tmp
# Where is the ACK going to be installed, eventually? If you don't want to
# install it and just want to run the ACK from the build directory
# (/tmp/ack-build/staging, by default), leave this as $(INSDIR).
#PREFIX = /usr/local
PREFIX = $(INSDIR)
# Where do you want to put the object files used when building?
BUILDDIR = $(ACK_TEMP_DIR)/ack-build
# What build flags do you want to use?
CFLAGS = -g
LDFLAGS =
# Various commands.
AR = ar
CC = gcc
2016-09-01 21:36:39 +00:00
# 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 #
# ======================================================================= #
# You shouldn't need to change anything below this point unless you are
# actually developing ACK.
OBJDIR = $(abspath $(BUILDDIR)/obj)
BINDIR = $(abspath $(BUILDDIR)/bin)
LIBDIR = $(abspath $(BUILDDIR)/lib)
INCDIR = $(abspath $(BUILDDIR)/include)
INSDIR = $(abspath $(BUILDDIR)/staging)
PLATIND = $(INSDIR)/share/ack
PLATDEP = $(INSDIR)/lib/ack
MAKECMDGOALS ?= +ack
BUILD_FILES = $(shell find * -name '*.lua')
2016-09-01 21:36:39 +00:00
ifneq ($(shell which ninja),)
BUILDSYSTEM = ninja
BUILDFLAGS = $(NINJAFLAGS)
else
2016-09-01 21:36:39 +00:00
BUILDSYSTEM = make
BUILDFLAGS = $(MAKEFLAGS)
endif
2016-09-01 21:36:39 +00:00
ifneq ($(findstring +, $(MAKECMDGOALS)),)
2016-09-01 21:36:39 +00:00
$(MAKECMDGOALS): $(BUILDDIR)/build.$(BUILDSYSTEM)
@$(BUILDSYSTEM) $(BUILDFLAGS) -f $^ $(MAKECMDGOALS)
2016-09-01 21:36:39 +00:00
endif
2016-09-01 21:36:39 +00:00
$(BUILDDIR)/build.$(BUILDSYSTEM): first/ackbuilder.lua Makefile $(BUILD_FILES)
@mkdir -p $(BUILDDIR)
2016-09-01 21:36:39 +00:00
@lua5.1 first/ackbuilder.lua \
first/build.lua build.lua \
--$(BUILDSYSTEM) \
OBJDIR=$(OBJDIR) \
BINDIR=$(BINDIR) \
LIBDIR=$(LIBDIR) \
INCDIR=$(INCDIR) \
INSDIR=$(INSDIR) \
PLATIND=$(PLATIND) \
PLATDEP=$(PLATDEP) \
AR=$(AR) \
CC=$(CC) \
2016-09-01 21:36:39 +00:00
> $(BUILDDIR)/build.$(BUILDSYSTEM)
clean:
@rm -rf $(BUILDDIR)