Reorganize lib-glob code to avoid accidentally duplicating lib/ subdirectory.

This commit is contained in:
Graydon Hoare 2012-07-11 12:10:54 -07:00
parent aa7b3cc929
commit 2cf6bf87c3
5 changed files with 41 additions and 52 deletions

View File

@ -118,14 +118,10 @@ CFG_STDLIB :=$(call CFG_LIB_NAME,std)
CFG_LIBRUSTC :=$(call CFG_LIB_NAME,rustc)
CFG_LIBSYNTAX :=$(call CFG_LIB_NAME,syntax)
STDLIB_GLOB :=$(call CFG_LIB_GLOB,std)
CORELIB_GLOB :=$(call CFG_LIB_GLOB,core)
LIBRUSTC_GLOB :=$(call CFG_LIB_GLOB,rustc)
LIBSYNTAX_GLOB :=$(call CFG_LIB_GLOB,syntax)
STDLIB_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,std)
CORELIB_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,core)
LIBRUSTC_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,rustc)
LIBSYNTAX_DSYM_GLOB :=$(call CFG_LIB_DSYM_GLOB,syntax)
STDLIB_GLOB =$(call CFG_LIB_GLOB,$(1),std)
CORELIB_GLOB =$(call CFG_LIB_GLOB,$(1),core)
LIBRUSTC_GLOB =$(call CFG_LIB_GLOB,$(1),rustc)
LIBSYNTAX_GLOB =$(call CFG_LIB_GLOB,$(1),syntax)
# version-string calculation
CFG_GIT_DIR := $(CFG_SRC_DIR).git

View File

@ -62,10 +62,10 @@ clean$(1)_H_$(2):
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_STDLIB)
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_LIBRUSTC)
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_LIBSYNTAX)
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CORELIB_GLOB)
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(STDLIB_GLOB)
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(LIBRUSTC_GLOB)
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(LIBSYNTAX_GLOB)
$(Q)rm -f $$(call CORELIB_GLOB,$$(HLIB$(1)_H_$(2)))
$(Q)rm -f $$(call STDLIB_GLOB,$$(HLIB$(1)_H_$(2))))
$(Q)rm -f $$(call LIBRUSTC_GLOB,$$(HLIB$(1)_H_$(2)))
$(Q)rm -f $$(call LIBSYNTAX_GLOB,$$(HLIB$(1)_H_$(2)))
$(Q)rm -f $$(HLIB$(1)_H_$(2))/$(CFG_RUSTLLVM)
$(Q)rm -f $$(HLIB$(1)_H_$(2))/libstd.rlib
@ -88,10 +88,10 @@ clean$(1)_T_$(2)_H_$(3):
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_STDLIB)
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBRUSTC)
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_LIBSYNTAX)
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CORELIB_GLOB)
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(STDLIB_GLOB)
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBRUSTC_GLOB)
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(LIBSYNTAX_GLOB)
$(Q)rm -f $$(call CORELIB_GLOB,$$(TLIB$(1)_T_$(2)_H_$(3)))
$(Q)rm -f $$(call STDLIB_GLOB,$$(TLIB$(1)_T_$(2)_H_$(3)))
$(Q)rm -f $$(call LIBRUSTC_GLOB,$$(TLIB$(1)_T_$(2)_H_$(3)))
$(Q)rm -f $$(call LIBSYNTAX_GLOB,$$(TLIB$(1)_T_$(2)_H_$(3)))
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/$(CFG_RUSTLLVM)
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/libstd.rlib
$(Q)rm -f $$(TLIB$(1)_T_$(2)_H_$(3))/libmorestack.a

View File

@ -30,8 +30,7 @@ $$(HLIB$(2)_H_$(4))/$$(CFG_LIBRUSTC): \
$$(HSTDLIB_DEFAULT$(2)_H_$(3))
@$$(call E, cp: $$@)
$$(Q)cp $$< $$@
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTC_GLOB) \
$$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBRUSTC_DSYM_GLOB) \
$$(Q)cp -R $$(call LIBRUSTC_GLOB,$$(TLIB$(1)_T_$(4)_H_$(3))) \
$$(HLIB$(2)_H_$(4))
$$(HLIB$(2)_H_$(4))/$$(CFG_LIBSYNTAX): \
@ -42,8 +41,7 @@ $$(HLIB$(2)_H_$(4))/$$(CFG_LIBSYNTAX): \
$$(HSTDLIB_DEFAULT$(2)_H_$(3))
@$$(call E, cp: $$@)
$$(Q)cp $$< $$@
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBSYNTAX_GLOB) \
$$(TLIB$(1)_T_$(4)_H_$(3))/$(LIBSYNTAX_DSYM_GLOB) \
$$(Q)cp -R $$(call LIBSYNTAX_GLOB,$$(TLIB$(1)_T_$(4)_H_$(3))) \
$$(HLIB$(2)_H_$(4))
$$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME): \
@ -56,15 +54,7 @@ $$(HLIB$(2)_H_$(4))/$$(CFG_CORELIB): \
$$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME)
@$$(call E, cp: $$@)
$$(Q)cp $$< $$@
# Subtle: We do not let the shell expand $(CORELIB_DSYM_GLOB) directly rather
# we use Make's $$(wildcard) facility. The reason is that, on mac, when using
# USE_SNAPSHOT_CORELIB, we copy the core.dylib file out of the snapshot.
# In that case, there is no .dSYM file. Annoyingly, bash then refuses to expand
# glob, and cp reports an error because libcore-*.dylib.dsym does not exist.
# Make instead expands the glob to nothing, which gives us the correct behavior.
# (Copy .dsym file if it exists, but do nothing otherwise)
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(CORELIB_GLOB) \
$$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(CORELIB_DSYM_GLOB)) \
$$(Q)cp -R $$(call CORELIB_GLOB,$$(TLIB$(1)_T_$(4)_H_$(3))) \
$$(HLIB$(2)_H_$(4))
$$(HLIB$(2)_H_$(4))/$$(CFG_STDLIB): \
@ -73,8 +63,7 @@ $$(HLIB$(2)_H_$(4))/$$(CFG_STDLIB): \
$$(HLIB$(2)_H_$(4))/$$(CFG_RUNTIME)
@$$(call E, cp: $$@)
$$(Q)cp $$< $$@
$$(Q)cp -R $$(TLIB$(1)_T_$(4)_H_$(3))/$(STDLIB_GLOB) \
$$(wildcard $$(TLIB$(1)_T_$(4)_H_$(3))/$(STDLIB_DSYM_GLOB)) \
$$(Q)cp -R $$(call STDLIB_GLOB,$$(TLIB$(1)_T_$(4)_H_$(3))) \
$$(HLIB$(2)_H_$(4))
$$(HLIB$(2)_H_$(4))/libcore.rlib: \

View File

@ -6,11 +6,12 @@
# destination directory as arg 2, and filename/libname-glob as arg 3
ifdef VERBOSE
INSTALL = install -m755 $(1)/$(3) $(2)/$(3)
INSTALL_LIB = install -m644 `ls -rt1 $(1)/$(3) | tail -1` $(2)/
INSTALL_LIB = install -m644 $(3) $(2)/
else
INSTALL = $(Q)$(call E, install: $(2)/$(3)) && install -m755 $(1)/$(3) $(2)/$(3)
INSTALL_LIB = $(Q)$(call E, install_lib: $(2)/$(3)) && \
install -m644 `ls -rt1 $(1)/$(3) | tail -1` $(2)/
INSTALL_LIB = $(Q)$(call E, install_lib: \
$(addprefix $(2)/,$(basename $(3)))) && \
install -m644 $(3) $(2)/
endif
# The stage we install from
@ -37,13 +38,17 @@ install-target-$(1)-host-$(2): $$(SREQ$$(ISTAGE)_T_$(1)_H_$(2))
$$(Q)mkdir -p $$(PTL$(1)$(2))
$$(Q)$$(call INSTALL,$$(TL$(1)$(2)),$$(PTL$(1)$(2)),$$(CFG_RUNTIME))
$$(Q)$$(call INSTALL_LIB, \
$$(TL$(1)$(2)),$$(PTL$(1)$(2)),$$(CORELIB_GLOB))
$$(TL$(1)$(2)),$$(PTL$(1)$(2)),\
$$(call CORELIB_GLOB,$$(TL$(1)$(2))))
$$(Q)$$(call INSTALL_LIB, \
$$(TL$(1)$(2)),$$(PTL$(1)$(2)),$$(STDLIB_GLOB))
$$(TL$(1)$(2)),$$(PTL$(1)$(2)),\
$$(call STDLIB_GLOB,$$(TL$(1)$(2))))
$$(Q)$$(call INSTALL_LIB, \
$$(TL$(1)$(2)),$$(PTL$(1)$(2)),$$(LIBRUSTC_GLOB))
$$(TL$(1)$(2)),$$(PTL$(1)$(2)),\
$$(call LIBRUSTC_GLOB,$$(TL$(1)$(2))))
$$(Q)$$(call INSTALL_LIB, \
$$(TL$(1)$(2)),$$(PTL$(1)$(2)),$$(LIBSYNTAX_GLOB))
$$(TL$(1)$(2)),$$(PTL$(1)$(2)),\
$$(call LIBSYNTAX_GLOB,$$(TL$(1)$(2))))
$$(Q)$$(call INSTALL,$$(TL$(1)$(2)),$$(PTL$(1)$(2)),libmorestack.a)
endef
@ -74,10 +79,10 @@ install-host: $(SREQ$(ISTAGE)_T_$(CFG_HOST_TRIPLE)_H_$(CFG_HOST_TRIPLE))
$(Q)$(call INSTALL,$(HB2),$(PHB),cargo$(X))
$(Q)$(call INSTALL,$(HB2),$(PHB),rustdoc$(X))
$(Q)$(call INSTALL,$(HL),$(PHL),$(CFG_RUNTIME))
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(CORELIB_GLOB))
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(STDLIB_GLOB))
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(LIBRUSTC_GLOB))
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(LIBSYNTAX_GLOB))
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(call CORELIB_GLOB,$(PHL)))
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(call STDLIB_GLOB,$(PHL)))
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(call LIBRUSTC_GLOB,$(PHL)))
$(Q)$(call INSTALL_LIB,$(HL),$(PHL),$(call LIBSYNTAX_GLOB,$(PHL)))
$(Q)$(call INSTALL,$(HL),$(PHL),$(CFG_RUSTLLVM))
$(Q)$(call INSTALL,$(S)/man, \
$(PREFIX_ROOT)/share/man/man1,rustc.1)
@ -86,7 +91,7 @@ install-targets: $(INSTALL_TARGET_RULES)
HOST_LIB_FROM_HL_GLOB = \
$(patsubst $(HL)/%,$(PHL)/%,$(wildcard $(HL)/$(1)))
$(patsubst $(HL)/%,$(PHL)/%,$(1))
uninstall:
$(Q)rm -f $(PHB)/rustc$(X)
@ -95,10 +100,10 @@ uninstall:
$(Q)rm -f $(PHL)/$(CFG_RUSTLLVM)
$(Q)rm -f $(PHL)/$(CFG_RUNTIME)
$(Q)for i in \
$(call HOST_LIB_FROM_HL_GLOB,$(CORELIB_GLOB)) \
$(call HOST_LIB_FROM_HL_GLOB,$(STDLIB_GLOB)) \
$(call HOST_LIB_FROM_HL_GLOB,$(LIBRUSTC_GLOB)) \
$(call HOST_LIB_FROM_HL_GLOB,$(LIBSYNTAX_GLOB)) \
$(call HOST_LIB_FROM_HL_GLOB,$(call CORELIB_GLOB,$(HL))) \
$(call HOST_LIB_FROM_HL_GLOB,$(call STDLIB_GLOB,$(HL))) \
$(call HOST_LIB_FROM_HL_GLOB,$(call LIBRUSTC_GLOB,$(HL))) \
$(call HOST_LIB_FROM_HL_GLOB,$(call LIBSYNTAX_GLOB,$(HL))) \
; \
do rm -f $$i ; \
done

View File

@ -21,7 +21,7 @@ CFG_DSYMUTIL := true
ifneq ($(findstring freebsd,$(CFG_OSTYPE)),)
CFG_LIB_NAME=lib$(1).so
CFG_LIB_GLOB=lib$(1)-*.so
CFG_LIB_GLOB=$(wildcard $(1)/lib$(2)-*.so)
CFG_GCCISH_CFLAGS += -fPIC -I/usr/local/include
CFG_GCCISH_LINK_FLAGS += -shared -fPIC -lpthread -lrt
CFG_GCCISH_DEF_FLAG := -Wl,--export-dynamic,--dynamic-list=
@ -40,7 +40,7 @@ endif
ifneq ($(findstring linux,$(CFG_OSTYPE)),)
CFG_LIB_NAME=lib$(1).so
CFG_LIB_GLOB=lib$(1)-*.so
CFG_LIB_GLOB=$(wildcard $(1)/lib$(2)-*.so)
CFG_GCCISH_CFLAGS += -fPIC
CFG_GCCISH_LINK_FLAGS += -shared -fPIC -ldl -lpthread -lrt
CFG_GCCISH_DEF_FLAG := -Wl,--export-dynamic,--dynamic-list=
@ -76,8 +76,7 @@ endif
ifneq ($(findstring darwin,$(CFG_OSTYPE)),)
CFG_LIB_NAME=lib$(1).dylib
CFG_LIB_GLOB=lib$(1)-*.dylib
CFG_LIB_DSYM_GLOB=lib$(1)-*.dylib.dSYM
CFG_LIB_GLOB=$(wildcard $(1)/lib$(2)-*.dylib $(1)/lib$(2)-*.dylib.dSYM)
CFG_UNIXY := 1
CFG_LDENV := DYLD_LIBRARY_PATH
CFG_GCCISH_LINK_FLAGS += -dynamiclib -lpthread -framework CoreServices -Wl,-no_compact_unwind
@ -174,7 +173,7 @@ ifdef CFG_WINDOWSY
CFG_EXE_SUFFIX := .exe
CFG_LIB_NAME=$(1).dll
CFG_LIB_GLOB=$(1)-*.dll
CFG_LIB_GLOB=$(wildcard $(1)/$(2)-*.dll)
CFG_DEF_SUFFIX := .def
ifdef MSYSTEM
CFG_LDPATH :=$(CFG_LDPATH):$$PATH