# Makefile.rules - OCERA make framework common project rules -*- makefile -*-
#
# (C) Copyright 2003 by Pavel Pisa - OCERA team member
+# (C) Copyright 2006 by Michal Sojka - Czech Technical University, FEE, DCE
+#
#
# input variables
# V .. if set to 1, full command text is shown else short form is used
#=========================
# Include the config file
-ifneq ($(READ_CONFIG_FILE),no)
+ifneq ($(CONFIG_FILE_OK),y)
ifndef CONFIG_FILE
CONFIG_FILE := $(MAKERULES_DIR)/config.omk
endif
include $(CONFIG_FILE)
CONFIG_FILE_OK = y
endif
-endif #$(READ_CONFIG_FILE)
+endif #$(CONFIG_FILE_OK)
export SOURCES_DIR MAKERULES_DIR RELATIVE_DIR
export CONFIG_FILE OMK_SERIALIZE_INCLUDED OMK_VERBOSE OMK_SILENT
-# FIXME: Is it correct to export OMK_SERIALIZE_INCLUDED to submakes???
+# OMK_SERIALIZE_INCLUDED has to be exported to submakes because passes
+# must to be serialized only in the toplevel make.
ifndef RELATIVE_DIR
RELATIVE_DIR := $(SOURCES_DIR:$(MAKERULES_DIR)%=%)
OMK_SILENT = 1
else
QUIET_CMD_ECHO = echo
- CP_FLAGS += -v
endif
# ===================================================================
RELATIVE_DIR=$(RELATIVE_DIR)/$(dir) -C $(2)/$(dir) \
-f $(SOURCES_DIR)/$(dir)/Makefile $$@ || exit 1 ;)
$(5)
- @echo " MAKE $$@ in $(RELATIVE_DIR)"
+@if [ $(4) ] || [ -z "$(subst ",\",$(4))" ]; then \
+ echo " MAKE $$@ in $(RELATIVE_DIR)"; \
$(call mkdir_def,$(2)); \
$(MAKE) --no-print-directory -C $(2) \
-f $(SOURCES_DIR)/Makefile $(3) $$(@:%=%-local); \
RELATIVE_DIR="" SOURCES_DIR=$(MAKERULES_DIR) \
-f $(MAKERULES_DIR)/Makefile default-config-pass
-$(eval $(call omk_pass_template,default-config-pass))
+$(eval $(call omk_pass_template,default-config-pass,$$(LOCAL_BUILD_DIR)))
default-config-pass-local:
- @echo Default config for $(RELATIVE_DIR)
+# @echo Default config for $(RELATIVE_DIR)
@echo "# Config for $(RELATIVE_DIR)" >> "$(CONFIG_FILE)-default"
@$(foreach x, $(default_CONFIG), echo $(x) | \
sed -e 's/^.*=x$$/#\0/' >> "$(CONFIG_FILE)-default" ; )