# - 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
-#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
-# [?]AUTORECONF : Set to non-empty to regenerate ./configure
-
-
-BTARGETS ?= all
-ITARGETS ?= install
-
-_VERS := $(wildcard $(TARBALL_PATTERN))
-_VERS := $(sort $(_VERS))
-_LATEST := $(lastword $(_VERS))
-
-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)
-else
- BDIR := $(DIR)
-endif
-SDIR := ../$(DIR)
+include $(dir $(lastword $(MAKEFILE_LIST)))/core.mk
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)
+CONFIGSCRIPT := $(BDIR)/$(firstword $(CONFIGURE_LINE))
+PATCHED_ACFILES := $(filter %/configure.in %/config.sub, $(PATCHED_FILES))
+$(warning $(CONFIGSCRIPT): $(PATCHED_ACFILES))
-$(DIR)/%: patches/%.patch
- @echo [PATCH] $@
- @patch $@ $<
-
-$(DIR)/%: patches/%
- @echo [CP] $@
- @cp $< $@
-
-_patch: $(DIR) $(addprefix $(DIR)/,$(PATCHES))
-
-_autoreconf: _patch
+$(CONFIGSCRIPT): $(PATCHED_ACFILES)
ifeq ($(AUTORECONF),)
else
cd $(DIR) && autoreconf --force --install
endif
-$(BDIR)/Makefile: _autoreconf ../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)
+