X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Externals%2Fcommon.mk;h=575c51a96aee94c636706e8b24eb470f80b74cce;hb=bc164a02c6f5f9fdcc66bd66d2d6a02dcfff8bec;hp=e74b4942f46ba34130e23d345d9d532a855b16b1;hpb=3848feb1df64622ad05cbc6b4e6ac3b550e8d805;p=tpg%2Facess2.git diff --git a/Externals/common.mk b/Externals/common.mk index e74b4942..575c51a9 100644 --- a/Externals/common.mk +++ b/Externals/common.mk @@ -3,93 +3,30 @@ # - By John Hodge (thePowersGang) # # common.mk -# - Common makefile code for imported code +# - Common makefile code for many autoconf(-like) externals --include ../../Makefile.cfg - -ifeq ($(ARCH),x86) - BFD := i586 -else ifeq ($(ARCH),x86_64) - BFD := x86_64 -else - $(error No BFD translation for $(ARCH) in Externals/common.mk) -endif - -PREFIX=$(ACESSDIR)/Externals/Output/common -EPREFIX=$(ACESSDIR)/Externals/Output/$(ARCH) -SYSROOT=$(ACESSDIR)/Externals/Output/sysroot-$(ARCH) -HOST=$(BFD)-acess_proxy-elf - -# -# DEPS : Dependencies for this program/library -# TARBALL_PATTERN : $(wildcard ) format [glob] pattern -# TARBALL_TO_DIR : $(patsubst ) format conversion -# PATCHES : List of altered files in the source -# > If patches/%.patch exists, the original is patched, else patches/% is copied in -# CONFIGURE_ARGS : Extra arguments to ./configure (ignoring host and prefix) -# [?]BTARGETS : Build targets (Defaults to all) -# [?]ARCHIVE : Optional forced archive (Defaults to latest) -# [?]CONFIGURE_LINE : Command to create makefile (defaults to autotools configure) -# [?]NOBDIR : Set to non-empty to disable use of a separate build dir +include $(dir $(lastword $(MAKEFILE_LIST)))/core.mk +CONFIGURE_LINE ?= $(SDIR)/configure --host=$(HOST) --prefix=$(PREFIX) --exec-prefix=$(EPREFIX) $(CONFIGURE_ARGS) -BTARGETS ?= all -ITARGETS ?= install -_VERS := $(wildcard $(TARBALL_PATTERN)) -_VERS := $(sort $(_VERS)) -_LATEST := $(lastword $(_VERS)) +CONFIGSCRIPT := $(BDIR)/$(firstword $(CONFIGURE_LINE)) +PATCHED_ACFILES := $(filter %/configure.in %/config.sub, $(PATCHED_FILES)) +$(warning $(CONFIGSCRIPT): $(PATCHED_ACFILES)) -ifeq ($(ARCHIVE),) - ifeq ($(_LATEST),) - $(warning Unable to find an archive matching $(TARBALL_PATTERN)) - $(error No archive found) - endif - - ifneq ($(_LATEST),$(_VERS)) - $(warning Multiple archvies found, picked $(_LATEST)) - endif - ARCHIVE := $(_LATEST) -endif - -DIR := $(patsubst $(TARBALL_TO_DIR_L),$(TARBALL_TO_DIR_R),$(ARCHIVE)) - -ifeq ($(NOBDIR),) - BDIR := build-$(DIR) +$(CONFIGSCRIPT): $(PATCHED_ACFILES) +ifeq ($(AUTORECONF),) else - BDIR := $(DIR) + cd $(DIR) && autoreconf --force --install endif -SDIR := ../$(DIR) - -CONFIGURE_LINE ?= ./configure --host=$(HOST) --prefx=$(PREFIX) --eprefix=$(EPREFIX) $(CONFIGURE_ARGS) - -.PHONY: all clean install _patch _build - -all: $(DIR) _patch _build -clean: - rm -rf $(DIR) $(BDIR) - -install: all - cd $(BDIR) && make $(ITARGETS) - -$(DIR): $(ARCHIVE) - tar -xf $(ARCHIVE) - -$(DIR)/%: patches/%.patch - @echo [PATCH] $@ - @patch $@ $< - -$(DIR)/%: patches/% - @echo [CP] $@ - @cp $< $@ - -_patch: $(DIR) $(addprefix $(DIR)/,$(PATCHES)) - -$(BDIR)/Makefile: _patch ../common.mk Makefile +$(BDIR)/Makefile: _patch $(CONFIGSCRIPT) ../common.mk Makefile mkdir -p $(BDIR) - cd $(BDIR) && $(CONFIGURE_LINE) + cd $(BDIR) && PATH=$(PREFIX)-BUILD/bin:$(PATH) $(CONFIGURE_LINE) _build: $(BDIR)/Makefile cd $(BDIR) && make $(BTARGETS) +install: all + cd $(BDIR) && make $(ITARGETS) +