From d62163188a21e5afc3d0f476eaf7856d91f715b2 Mon Sep 17 00:00:00 2001 From: Brian Anderson Date: Mon, 24 Mar 2014 12:04:27 -0700 Subject: [PATCH] Revert "mk: Run 'make install' through install.sh" This reverts commit e93709a911637194835268420e67d768ee19b5df. --- Makefile.in | 13 +++++------ mk/dist.mk | 2 +- mk/install.mk | 65 +++++++++++++++++++++++++++++++++++++++++++++------ 3 files changed, 65 insertions(+), 15 deletions(-) diff --git a/Makefile.in b/Makefile.in index 660aeae6217..04ff606d0b9 100644 --- a/Makefile.in +++ b/Makefile.in @@ -232,20 +232,19 @@ ifneq ($(strip $(findstring prepare,$(MAKECMDGOALS)) \ include $(CFG_SRC_DIR)mk/prepare.mk endif +# (Unix) Installation from the build directory +ifneq ($(findstring install,$(MAKECMDGOALS)),) + CFG_INFO := $(info cfg: including install rules) + include $(CFG_SRC_DIR)mk/install.mk +endif + # Source and binary distribution artifacts ifneq ($(strip $(findstring dist,$(MAKECMDGOALS)) \ - $(findstring install,$(MAKECMDGOALS)) \ $(findstring clean,$(MAKECMDGOALS))),) CFG_INFO := $(info cfg: including dist rules) include $(CFG_SRC_DIR)mk/dist.mk endif -# (Unix) Installation from the build directory -ifneq ($(findstring install,$(MAKECMDGOALS)),) - CFG_INFO := $(info cfg: including install rules) - include $(CFG_SRC_DIR)mk/install.mk -endif - # Cleaning ifneq ($(findstring clean,$(MAKECMDGOALS)),) CFG_INFO := $(info cfg: including clean rules) diff --git a/mk/dist.mk b/mk/dist.mk index 9dd54e3ebe2..80bd048b8b4 100644 --- a/mk/dist.mk +++ b/mk/dist.mk @@ -22,7 +22,7 @@ # * dist-tar-bins - Ad-hoc Unix binary installers # * dist-docs - Stage docs for upload -PKG_NAME := $(CFG_PACKAGE_NAME) +PKG_NAME = $(CFG_PACKAGE_NAME) # License suitable for displaying in a popup LICENSE.txt: $(S)COPYRIGHT $(S)LICENSE-APACHE $(S)LICENSE-MIT diff --git a/mk/install.mk b/mk/install.mk index 7bae272b47a..6e56767a9d7 100644 --- a/mk/install.mk +++ b/mk/install.mk @@ -8,17 +8,68 @@ # option. This file may not be copied, modified, or distributed # except according to those terms. +# FIXME: Docs are currently not installed from the stageN dirs. +# For consistency it might be desirable for stageN to be an exact +# mirror of the installation directory structure. -install: dist-install-dir-$(CFG_BUILD) - $(Q)sh tmp/dist/$(PKG_NAME)-$(CFG_BUILD)/install.sh --prefix="$(CFG_PREFIX)" +# The stage we install from +ISTAGE = $(PREPARE_STAGE) -uninstall: dist-install-dir-$(CFG_BUILD) - $(Q)sh tmp/dist/$(PKG_NAME)-$(CFG_BUILD)/install.sh --prefix="$(CFG_PREFIX)" --uninstall +install: PREPARE_HOST=$(CFG_BUILD) +install: PREPARE_TARGETS=$(CFG_TARGET) +install: PREPARE_DIR_CMD=$(DEFAULT_PREPARE_DIR_CMD) +install: PREPARE_BIN_CMD=$(DEFAULT_PREPARE_BIN_CMD) +install: PREPARE_LIB_CMD=$(DEFAULT_PREPARE_LIB_CMD) +install: PREPARE_MAN_CMD=$(DEFAULT_PREPARE_MAN_CMD) +install: PREPARE_SOURCE_DIR=$(PREPARE_HOST)/stage$(PREPARE_STAGE) +install: PREPARE_SOURCE_BIN_DIR=$(PREPARE_SOURCE_DIR)/bin +install: PREPARE_SOURCE_LIB_DIR=$(PREPARE_SOURCE_DIR)/$(CFG_LIBDIR_RELATIVE) +install: PREPARE_SOURCE_MAN_DIR=$(S)/man +install: PREPARE_DEST_BIN_DIR=$(DESTDIR)$(CFG_PREFIX)/bin +install: PREPARE_DEST_LIB_DIR=$(DESTDIR)$(CFG_LIBDIR) +install: PREPARE_DEST_MAN_DIR=$(DESTDIR)$(CFG_MANDIR)/man1 +install: prepare-everything -###################################################################### -# Android remote installation -###################################################################### +# Uninstall code + +PREFIX_ROOT = $(CFG_PREFIX) +PREFIX_BIN = $(PREFIX_ROOT)/bin +PREFIX_LIB = $(CFG_LIBDIR) + +INSTALL_TOOLS := $(PREPARE_TOOLS) + +# Shorthand for build/stageN/bin +HB = $(HBIN$(ISTAGE)_H_$(CFG_BUILD)) +HB2 = $(HBIN2_H_$(CFG_BUILD)) +# Shorthand for build/stageN/lib +HL = $(HLIB$(ISTAGE)_H_$(CFG_BUILD)) +# Shorthand for the prefix bin directory +PHB = $(PREFIX_BIN) +# Shorthand for the prefix bin directory +PHL = $(PREFIX_LIB) + +HOST_LIB_FROM_HL_GLOB = \ + $(patsubst $(HL)/%,$(PHL)/%,$(wildcard $(HL)/$(1))) + +uninstall: $(foreach tool,$(INSTALL_TOOLS),uninstall-tool-$(tool)) + $(Q)rm -Rf $(PHL)/$(CFG_RUSTLIBDIR) + +define UNINSTALL_TOOL +uninstall-tool-$(1): $$(foreach dep,$$(TOOL_DEPS_$(1)),uninstall-lib-$$(dep)) + $$(Q)rm -f $$(PHB)/$(1)$$(X_$$(CFG_BUILD)) + $$(Q)rm -f $$(CFG_MANDIR)/man1/$(1).1 +endef + +$(foreach tool,$(INSTALL_TOOLS),$(eval $(call UNINSTALL_TOOL,$(tool)))) + +define UNINSTALL_LIB +uninstall-lib-$(1): $$(foreach dep,$$(RUST_DEPS_$(1)),uninstall-lib-$$(dep)) + $$(Q)rm -f $$(call HOST_LIB_FROM_HL_GLOB,$$(call CFG_LIB_GLOB_$$(CFG_BUILD),$(1))) +endef + +$(foreach lib,$(CRATES),$(eval $(call UNINSTALL_LIB,$(lib)))) + # Android runtime setup # FIXME: This probably belongs somewhere else -- 2.44.0