ack/Makefile

208 lines
5.1 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
# ======================================================================= #
# 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')
NINJA := $(shell which ninja)
ifneq ($(findstring +, $(MAKECMDGOALS)),)
ifneq ($(NINJA),)
$(MAKECMDGOALS): $(BUILDDIR)/build.ninja $(BUILDDIR)/rules.ninja
@ninja -f $(BUILDDIR)/build.ninja $(MAKECMDGOALS)
$(BUILDDIR)/build.ninja: Makefile
@mkdir -p $(BUILDDIR)
2016-07-19 21:43:14 +00:00
@echo "OBJDIR = $(OBJDIR)" > $@
@echo "BINDIR = $(BINDIR)" >> $@
@echo "LIBDIR = $(LIBDIR)" >> $@
@echo "INCDIR = $(INCDIR)" >> $@
@echo "INSDIR = $(INSDIR)" >> $@
@echo "PLATIND = $(PLATIND)" >> $@
@echo "PLATDEP = $(PLATDEP)" >> $@
@echo "AR = $(AR)" >> $@
@echo "CC = $(CC)" >> $@
@echo "subninja $(BUILDDIR)/rules.ninja" >> $@
else
$(MAKECMDGOALS): $(BUILDDIR)/rules.mk
+@make -r -f $(BUILDDIR)/rules.mk $@ \
$(MAKEFLAGS) \
OBJDIR=$(OBJDIR) \
BINDIR=$(BINDIR) \
LIBDIR=$(LIBDIR) \
INCDIR=$(INCDIR) \
INSDIR=$(INSDIR) \
PLATIND=$(PLATIND) \
PLATDEP=$(PLATDEP) \
AR=$(AR) \
CC=$(CC)
endif
endif
$(BUILDDIR)/rules.ninja: first/ackbuilder.lua $(BUILD_FILES)
@mkdir -p $(BUILDDIR)
@lua5.1 first/ackbuilder.lua first/build.lua build.lua --ninja > $(BUILDDIR)/rules.ninja
$(BUILDDIR)/rules.mk: first/ackbuilder.lua $(BUILD_FILES)
@mkdir -p $(BUILDDIR)
@lua5.2 first/ackbuilder.lua first/build.lua build.lua --make > $(BUILDDIR)/rules.mk
clean:
@rm -rf $(BUILDDIR)
#
#CC = gcc
#AR = ar
#RM = rm -f
#CP = cp
#
#hide = @
#
#CFLAGS += \
# -I$(INCDIR) \
# -Imodules/h \
# -Ih
#
#LDFLAGS +=
#
#ACKFLAGS = -Ih
#
#all: installables
#
#.DELETE_ON_ERROR:
#
#include first/core.mk
#
#include modules/src/object/build.mk
#include modules/src/alloc/build.mk
#include modules/src/input/build.mk
#include modules/src/idf/build.mk
#include modules/src/system/build.mk
#include modules/src/string/build.mk
#include modules/src/print/build.mk
#include modules/src/flt_arith/build.mk
#include modules/src/em_code/build.mk
#include modules/src/em_mes/build.mk
#include modules/src/read_em/build.mk
#
#include util/amisc/build.mk
#include util/cmisc/build.mk
#include util/ack/build.mk
#include util/LLgen/build.mk
#include util/data/build.mk
#include util/opt/build.mk
#include util/ncgg/build.mk
#include util/arch/build.mk
#include util/misc/build.mk
#include util/led/build.mk
#include util/topgen/build.mk
#include util/ego/build.mk
#
#include lang/cem/build.mk
#include lang/basic/build.mk
#include lang/pc/build.mk
#include lang/m2/build.mk
#
#include mach/proto/as/build.mk
#include mach/proto/ncg/build.mk
#include mach/proto/top/build.mk
#
#include plat/linux/liblinux/build.mk
#
#include mach/i80/build.mk
#include mach/i386/build.mk
#include mach/i86/build.mk
#include mach/m68020/build.mk
## include mach/powerpc/build.mk
#include mach/vc4/build.mk
#
#include plat/build.mk
#include plat/pc86/build.mk
#include plat/cpm/build.mk
#include plat/linux386/build.mk
#include plat/linux68k/build.mk
## include plat/linuxppc/build.mk
#include plat/rpi/build.mk
#
#.PHONY: installables
#installables: $(INSTALLABLES)
# @echo ""
# @echo "Build completed successfully."
#
#.PHONY: install
#install: installables
# @echo INSTALLING into $(PREFIX)
# $(hide) tar cf - -C $(INSDIR) . | tar xvf - -C $(PREFIX)
#
#.PHONY: clean
#clean:
# @echo CLEAN
# $(hide) $(RM) $(CLEANABLES)
#
#$(INCDIR)/local.h:
# @echo LOCAL
# @mkdir -p $(dir $@)
# $(hide) echo '#define VERSION 3' > $@
# $(hide) echo '#define ACKM "$(DEFAULT_PLATFORM)"' >> $@
# $(hide) echo '#define BIGMACHINE 1' >> $@
# $(hide) echo '#define SYS_5' >> $@
#
#$(INCDIR)/em_path.h:
# @echo EM_PATH
# @mkdir -p $(dir $@)
# $(hide) echo '#define TMP_DIR "$(ACK_TEMP_DIR)"' > $@
# $(hide) echo '#define EM_DIR "$(PREFIX)"' >> $@
# $(hide) echo '#define ACK_PATH "share/ack/descr"' >> $@
#
#-include $(DEPENDS)