ifdef DIRS
all install clean test bytecode ::
$(VERB) for dir in ${DIRS}; do \
- (cd $$dir; $(MAKE) $@) || exit 1; \
+ ($(MAKE) -C $$dir $@) || exit 1; \
done
endif
bytecode :: $(addsuffix /.makebytecode, $(PARALLEL_DIRS))
%/.makeall %/.makeinstall %/.makeclean %/.maketest %/.makebytecode:
- $(VERB) cd $(@D); $(MAKE) $(subst $(@D)/.make,,$@)
+ $(VERB) $(MAKE) -C $(@D) $(subst $(@D)/.make,,$@)
endif
# Handle directories that may or may not exist
$(VERB) for dir in ${OPTIONAL_DIRS}; do \
if [ -d $$dir ]; \
then\
- (cd $$dir; $(MAKE) $@) || exit 1; \
+ ($(MAKE) -C$$dir $@) || exit 1; \
fi \
done
endif
@${ECHO} "****************************************************************"
$(VERB) exit 1
+# If the Makefile in the source tree has been updated, copy it over into the
+# build tree.
+Makefile :: $(BUILD_SRC_DIR)/Makefile
+ @${ECHO} "===== Updating Makefile from source dir: `dirname $<` ====="
+ cp -f $< $@
+
#
# Include dependencies generated from C/C++ source files, but not if we
# are cleaning (this example taken from the GNU Make Manual).