Hello, We are used to this concept of staging a set of header files from
our components during build. So, each sub-system/component specifies a list of header files that needs to be staged. They also specify a staging directory. Now, I am creating a dependency between the original header and the staged header so that the staging takes place only when the original header changes. (Otherwise, a blind copy breaks the dependency and leads to unnecessary rebuilds. So, when I do this based on the following, I expect only the changed file to be staged. However, looks like every file gets staged from a component even though only one file is staged. Here is my Makefile. When I do make all it exports all file even if only one file is changed. # Default target must appear before any include lines .PHONY: all # # Customizations for this local Makefile EXPORT_HDR_PATH := $(CLUSTER_OS_ROOT)/BUILD/inc/common/clos_sdk EXPORT_HDRS := \ ../include/clos_api_socket_funcs.h \ ../include/clos_api_cerrno.h \ ../include/clos_api_services.h EXPORT_LIB_PATH := EXPORT_LIBS := EXPORTED_HDRS := $(addprefix $(EXPORT_HDR_PATH)/,$(notdir $(EXPORT_HDRS))) $(EXPORTED_HDRS): $(EXPORT_HDRS) @echo "updating header: $? "; cp $? $(EXPORT_HDR_PATH) install: $(EXPORTED_HDRS) all: install clean: rm -f $(ARCH)/* distclean: clean rm -f $(EXPORT_HDR_PATH)/*.h
_______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make