X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Externals%2Fcommon.mk;h=575c51a96aee94c636706e8b24eb470f80b74cce;hb=bab64c9385b85c8a9ef99a20a240f68459983964;hp=7a86c40e473ac05b7e12d35c94a86259cd80666b;hpb=fe53470758da8b50623c8cc07d3dc897edb8ce37;p=tpg%2Facess2.git diff --git a/Externals/common.mk b/Externals/common.mk index 7a86c40e..575c51a9 100644 --- a/Externals/common.mk +++ b/Externals/common.mk @@ -3,95 +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 +include $(dir $(lastword $(MAKEFILE_LIST)))/core.mk -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 -#EPREFIX=$(ACESSDIR)/Externals/Output/$(BFD) -PREFIX=$(ACESSDIR)/Externals/Output/$(ARCH) -EPREFIX=$(PREFIX) -SYSROOT=$(ACESSDIR)/Externals/Output/sysroot-$(BFD) -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 - - -BTARGETS ?= all -ITARGETS ?= install - -_VERS := $(wildcard $(TARBALL_PATTERN)) -_VERS := $(sort $(_VERS)) -_LATEST := $(lastword $(_VERS)) +CONFIGURE_LINE ?= $(SDIR)/configure --host=$(HOST) --prefix=$(PREFIX) --exec-prefix=$(EPREFIX) $(CONFIGURE_ARGS) -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)) +CONFIGSCRIPT := $(BDIR)/$(firstword $(CONFIGURE_LINE)) +PATCHED_ACFILES := $(filter %/configure.in %/config.sub, $(PATCHED_FILES)) +$(warning $(CONFIGSCRIPT): $(PATCHED_ACFILES)) -ifeq ($(NOBDIR),) - BDIR := build-$(DIR) +$(CONFIGSCRIPT): $(PATCHED_ACFILES) +ifeq ($(AUTORECONF),) else - BDIR := $(DIR) + cd $(DIR) && autoreconf --force --install endif -SDIR := ../$(DIR) - -CONFIGURE_LINE ?= $(SDIR)/configure --host=$(HOST) --prefix=$(PREFIX) --exec-prefix=$(EPREFIX) $(CONFIGURE_ARGS) - -.PHONY: all clean install _patch _build -install: all - cd $(BDIR) && make $(ITARGETS) - -all: $(DIR) _patch _build - -clean: - rm -rf $(DIR) $(BDIR) - -$(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) +