Commit bd9141bb authored by Paul Brook's avatar Paul Brook
Browse files

Include directives in default configs



Allow default configs to be split into several files.

Signed-off-by: default avatarPaul Brook <paul@codesourcery.com>
parent 6e14404a
Loading
Loading
Loading
Loading
+6 −5
Original line number Diff line number Diff line
@@ -39,18 +39,19 @@ endif

SUBDIR_MAKEFLAGS=$(if $(V),,--no-print-directory)
SUBDIR_DEVICES_MAK=$(patsubst %, %/config-devices.mak, $(TARGET_DIRS))
SUBDIR_DEVICES_MAK_DEP=$(patsubst %, %/config-devices.mak.d, $(TARGET_DIRS))

config-all-devices.mak: $(SUBDIR_DEVICES_MAK)
	$(call quiet-command,cat $(SUBDIR_DEVICES_MAK) | grep =y | sort -u > $@,"  GEN   $@")

-include $(SUBDIR_DEVICES_MAK_DEP)

%/config-devices.mak: default-configs/%.mak
	$(call quiet-command,cat $< > $@.tmp, "  GEN   $@")
	$(call quiet-command,$(SHELL) $(SRC_PATH)/make_device_config.sh $@ $<, "  GEN   $@")
	@if test -f $@; then \
	  if cmp -s $@.old $@; then \
	    if ! cmp -s $@ $@.tmp; then \
	    mv $@.tmp $@; \
	    cp -p $@ $@.old; \
	    fi; \
	  else \
	    if test -f $@.old; then \
	      echo "WARNING: $@ (user modified) out of date.";\
+2 −1
Original line number Diff line number Diff line
@@ -160,7 +160,8 @@ user-obj-y += cutils.o cache-utils.o
hw-obj-y =
hw-obj-y += vl.o loader.o
hw-obj-y += virtio.o virtio-console.o
hw-obj-y += fw_cfg.o pci.o pci_host.o pcie_host.o pci_bridge.o
hw-obj-y += fw_cfg.o
hw-obj-$(CONFIG_PCI) += pci.o pci_host.o pcie_host.o pci_bridge.o
hw-obj-y += ioh3420.o xio3130_upstream.o xio3130_downstream.o
hw-obj-y += watchdog.o
hw-obj-$(CONFIG_ISA_MMIO) += isa_mmio.o

make_device_config.sh

0 → 100644
+27 −0
Original line number Diff line number Diff line
#! /bin/sh
# Construct a target device config file from a default, pulling in any
# files from include directives.

dest=$1.tmp
dep=$1.d
src=$2
src_dir=`dirname $src`
all_includes=

process_includes () {
  cat $1 | grep '^include' | \
  while read include file ; do
    all_includes="$all_includes $src_dir/$file"
    process_includes $src_dir/$file
  done
}

f=$src
while [ -n "$f" ] ; do
  f=`awk '/^include / {print "'$src_dir'/" $2}' $f`
  all_includes="$all_includes $f"
done
process_includes $src > $dest

cat $src $all_includes | grep -v '^include' > $dest
echo "$1: $all_includes" > $dep