Skip to content

Commit

Permalink
Replace nop hack, explain substitution reasoning
Browse files Browse the repository at this point in the history
  • Loading branch information
aidanhs committed Jun 13, 2015
1 parent b1e9ed3 commit fca6670
Showing 1 changed file with 14 additions and 11 deletions.
25 changes: 14 additions & 11 deletions mk/prepare.mk
Original file line number Diff line number Diff line change
Expand Up @@ -30,32 +30,33 @@ DEFAULT_PREPARE_MAN_CMD = install -m644
# Create a directory
# $(1) is the directory
#
# Gee, what's up with that $(nop)? See comment below.
# XXX: These defines are called to generate make steps.
# Adding blank lines means two steps from different defines will not end up on
# the same line.
define PREPARE_DIR
$(nop)

@$(call E, prepare: $(1))
$(Q)$(PREPARE_DIR_CMD) $(1)

endef

# Copy an executable
# $(1) is the filename/libname-glob
#
# Gee, what's up with that $(nop)? See comment below.
# See above for an explanation on the surrounding blank lines
define PREPARE_BIN
$(nop)

@$(call E, prepare: $(PREPARE_DEST_BIN_DIR)/$(1))
$(Q)$(PREPARE_BIN_CMD) $(PREPARE_SOURCE_BIN_DIR)/$(1) $(PREPARE_DEST_BIN_DIR)/$(1)

endef

# Copy a dylib or rlib
# $(1) is the filename/libname-glob
#
# XXX: Don't remove the $(nop) command below!
# Yeah, that's right, it's voodoo. Something in the way this macro is being expanded
# causes it to parse incorrectly. Throwing in that empty command seems to fix the
# problem. I'm sorry, just don't remove the $(nop), alright?
# See above for an explanation on the surrounding blank lines
define PREPARE_LIB
$(nop)

@$(call E, prepare: $(PREPARE_WORKING_DEST_LIB_DIR)/$(1))
$(Q)LIB_NAME="$(notdir $(lastword $(wildcard $(PREPARE_WORKING_SOURCE_LIB_DIR)/$(1))))"; \
MATCHES="$(filter-out %$(notdir $(lastword $(wildcard $(PREPARE_WORKING_SOURCE_LIB_DIR)/$(1)))), \
Expand All @@ -67,16 +68,18 @@ define PREPARE_LIB
echo $$MATCHES ; \
fi
$(Q)$(PREPARE_LIB_CMD) `ls -drt1 $(PREPARE_WORKING_SOURCE_LIB_DIR)/$(1)` $(PREPARE_WORKING_DEST_LIB_DIR)/

endef

# Copy a man page
# $(1) - source dir
#
# Gee, what's up with that $(nop)? See comment above.
# See above for an explanation on the surrounding blank lines
define PREPARE_MAN
$(nop)

@$(call E, prepare: $(PREPARE_DEST_MAN_DIR)/$(1))
$(Q)$(PREPARE_MAN_CMD) $(PREPARE_SOURCE_MAN_DIR)/$(1) $(PREPARE_DEST_MAN_DIR)/$(1)

endef

PREPARE_TOOLS = $(filter-out compiletest rustbook error-index-generator, $(TOOLS))
Expand Down

0 comments on commit fca6670

Please sign in to comment.