OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [linux/] [linux-2.4/] [Rules.make] - Diff between revs 1275 and 1765

Only display areas with differences | Details | Blame | View Log

Rev 1275 Rev 1765
#
#
# This file contains rules which are shared between multiple Makefiles.
# This file contains rules which are shared between multiple Makefiles.
#
#
#
#
# False targets.
# False targets.
#
#
.PHONY: dummy
.PHONY: dummy
#
#
# Special variables which should not be exported
# Special variables which should not be exported
#
#
unexport EXTRA_AFLAGS
unexport EXTRA_AFLAGS
unexport EXTRA_CFLAGS
unexport EXTRA_CFLAGS
unexport EXTRA_LDFLAGS
unexport EXTRA_LDFLAGS
unexport EXTRA_ARFLAGS
unexport EXTRA_ARFLAGS
unexport SUBDIRS
unexport SUBDIRS
unexport SUB_DIRS
unexport SUB_DIRS
unexport ALL_SUB_DIRS
unexport ALL_SUB_DIRS
unexport MOD_SUB_DIRS
unexport MOD_SUB_DIRS
unexport O_TARGET
unexport O_TARGET
unexport ALL_MOBJS
unexport ALL_MOBJS
unexport obj-y
unexport obj-y
unexport obj-m
unexport obj-m
unexport obj-n
unexport obj-n
unexport obj-
unexport obj-
unexport export-objs
unexport export-objs
unexport subdir-y
unexport subdir-y
unexport subdir-m
unexport subdir-m
unexport subdir-n
unexport subdir-n
unexport subdir-
unexport subdir-
comma   := ,
comma   := ,
EXTRA_CFLAGS_nostdinc := $(EXTRA_CFLAGS) $(kbuild_2_4_nostdinc)
EXTRA_CFLAGS_nostdinc := $(EXTRA_CFLAGS) $(kbuild_2_4_nostdinc)
#
#
# Get things started.
# Get things started.
#
#
first_rule: sub_dirs
first_rule: sub_dirs
        $(MAKE) all_targets
        $(MAKE) all_targets
both-m          := $(filter $(mod-subdirs), $(subdir-y))
both-m          := $(filter $(mod-subdirs), $(subdir-y))
SUB_DIRS        := $(subdir-y)
SUB_DIRS        := $(subdir-y)
MOD_SUB_DIRS    := $(sort $(subdir-m) $(both-m))
MOD_SUB_DIRS    := $(sort $(subdir-m) $(both-m))
ALL_SUB_DIRS    := $(sort $(subdir-y) $(subdir-m) $(subdir-n) $(subdir-))
ALL_SUB_DIRS    := $(sort $(subdir-y) $(subdir-m) $(subdir-n) $(subdir-))
#
#
# Common rules
# Common rules
#
#
%.s: %.c
%.s: %.c
        $(CC) $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) $(CFLAGS_$@) -S $< -o $@
        $(CC) $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) $(CFLAGS_$@) -S $< -o $@
%.i: %.c
%.i: %.c
        $(CPP) $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) $(CFLAGS_$@) $< > $@
        $(CPP) $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) $(CFLAGS_$@) $< > $@
%.o: %.c
%.o: %.c
        $(CC) $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) $(CFLAGS_$@) -c -o $@ $<
        $(CC) $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) $(CFLAGS_$@) -c -o $@ $<
        @ ( \
        @ ( \
            echo 'ifeq ($(strip $(subst $(comma),:,$(CFLAGS) $(EXTRA_CFLAGS_nostdinc) $(CFLAGS_$@))),$$(strip $$(subst $$(comma),:,$$(CFLAGS) $$(EXTRA_CFLAGS_nostdinc) $$(CFLAGS_$@))))' ; \
            echo 'ifeq ($(strip $(subst $(comma),:,$(CFLAGS) $(EXTRA_CFLAGS_nostdinc) $(CFLAGS_$@))),$$(strip $$(subst $$(comma),:,$$(CFLAGS) $$(EXTRA_CFLAGS_nostdinc) $$(CFLAGS_$@))))' ; \
            echo 'FILES_FLAGS_UP_TO_DATE += $@' ; \
            echo 'FILES_FLAGS_UP_TO_DATE += $@' ; \
            echo 'endif' \
            echo 'endif' \
        ) > $(dir $@)/.$(notdir $@).flags
        ) > $(dir $@)/.$(notdir $@).flags
%.o: %.s
%.o: %.s
        $(AS) $(AFLAGS) $(EXTRA_CFLAGS) -o $@ $<
        $(AS) $(AFLAGS) $(EXTRA_CFLAGS) -o $@ $<
# Old makefiles define their own rules for compiling .S files,
# Old makefiles define their own rules for compiling .S files,
# but these standard rules are available for any Makefile that
# but these standard rules are available for any Makefile that
# wants to use them.  Our plan is to incrementally convert all
# wants to use them.  Our plan is to incrementally convert all
# the Makefiles to these standard rules.  -- rmk, mec
# the Makefiles to these standard rules.  -- rmk, mec
ifdef USE_STANDARD_AS_RULE
ifdef USE_STANDARD_AS_RULE
%.s: %.S
%.s: %.S
        $(CPP) $(AFLAGS) $(EXTRA_AFLAGS) $(AFLAGS_$@) $< > $@
        $(CPP) $(AFLAGS) $(EXTRA_AFLAGS) $(AFLAGS_$@) $< > $@
%.o: %.S
%.o: %.S
        $(CC) $(AFLAGS) $(EXTRA_AFLAGS) $(AFLAGS_$@) -c -o $@ $<
        $(CC) $(AFLAGS) $(EXTRA_AFLAGS) $(AFLAGS_$@) -c -o $@ $<
endif
endif
%.lst: %.c
%.lst: %.c
        $(CC) $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) $(CFLAGS_$@) -g -c -o $*.o $<
        $(CC) $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) $(CFLAGS_$@) -g -c -o $*.o $<
        $(TOPDIR)/scripts/makelst $* $(TOPDIR) $(OBJDUMP)
        $(TOPDIR)/scripts/makelst $* $(TOPDIR) $(OBJDUMP)
#
#
#
#
#
#
all_targets: $(O_TARGET) $(L_TARGET)
all_targets: $(O_TARGET) $(L_TARGET)
#
#
# Rule to compile a set of .o files into one .o file
# Rule to compile a set of .o files into one .o file
#
#
ifdef O_TARGET
ifdef O_TARGET
$(O_TARGET): $(obj-y)
$(O_TARGET): $(obj-y)
        rm -f $@
        rm -f $@
    ifneq "$(strip $(obj-y))" ""
    ifneq "$(strip $(obj-y))" ""
        $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) -r -o $@ $(filter $(obj-y), $^)
        $(LD) $(LDFLAGS) $(EXTRA_LDFLAGS) -r -o $@ $(filter $(obj-y), $^)
    else
    else
        $(AR) rcs $@
        $(AR) rcs $@
    endif
    endif
        @ ( \
        @ ( \
            echo 'ifeq ($(strip $(subst $(comma),:,$(LDFLAGS) $(EXTRA_LDFLAGS) $(obj-y))),$$(strip $$(subst $$(comma),:,$$(LDFLAGS) $$(EXTRA_LDFLAGS) $$(obj-y))))' ; \
            echo 'ifeq ($(strip $(subst $(comma),:,$(LDFLAGS) $(EXTRA_LDFLAGS) $(obj-y))),$$(strip $$(subst $$(comma),:,$$(LDFLAGS) $$(EXTRA_LDFLAGS) $$(obj-y))))' ; \
            echo 'FILES_FLAGS_UP_TO_DATE += $@' ; \
            echo 'FILES_FLAGS_UP_TO_DATE += $@' ; \
            echo 'endif' \
            echo 'endif' \
        ) > $(dir $@)/.$(notdir $@).flags
        ) > $(dir $@)/.$(notdir $@).flags
endif # O_TARGET
endif # O_TARGET
#
#
# Rule to compile a set of .o files into one .a file
# Rule to compile a set of .o files into one .a file
#
#
ifdef L_TARGET
ifdef L_TARGET
$(L_TARGET): $(obj-y)
$(L_TARGET): $(obj-y)
        rm -f $@
        rm -f $@
        $(AR) $(EXTRA_ARFLAGS) rcs $@ $(obj-y)
        $(AR) $(EXTRA_ARFLAGS) rcs $@ $(obj-y)
        @ ( \
        @ ( \
            echo 'ifeq ($(strip $(subst $(comma),:,$(EXTRA_ARFLAGS) $(obj-y))),$$(strip $$(subst $$(comma),:,$$(EXTRA_ARFLAGS) $$(obj-y))))' ; \
            echo 'ifeq ($(strip $(subst $(comma),:,$(EXTRA_ARFLAGS) $(obj-y))),$$(strip $$(subst $$(comma),:,$$(EXTRA_ARFLAGS) $$(obj-y))))' ; \
            echo 'FILES_FLAGS_UP_TO_DATE += $@' ; \
            echo 'FILES_FLAGS_UP_TO_DATE += $@' ; \
            echo 'endif' \
            echo 'endif' \
        ) > $(dir $@)/.$(notdir $@).flags
        ) > $(dir $@)/.$(notdir $@).flags
endif
endif
#
#
# This make dependencies quickly
# This make dependencies quickly
#
#
fastdep: dummy
fastdep: dummy
        $(TOPDIR)/scripts/mkdep $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) -- $(wildcard *.[chS]) > .depend
        $(TOPDIR)/scripts/mkdep $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) -- $(wildcard *.[chS]) > .depend
ifdef ALL_SUB_DIRS
ifdef ALL_SUB_DIRS
        $(MAKE) $(patsubst %,_sfdep_%,$(ALL_SUB_DIRS)) _FASTDEP_ALL_SUB_DIRS="$(ALL_SUB_DIRS)"
        $(MAKE) $(patsubst %,_sfdep_%,$(ALL_SUB_DIRS)) _FASTDEP_ALL_SUB_DIRS="$(ALL_SUB_DIRS)"
endif
endif
ifdef _FASTDEP_ALL_SUB_DIRS
ifdef _FASTDEP_ALL_SUB_DIRS
$(patsubst %,_sfdep_%,$(_FASTDEP_ALL_SUB_DIRS)):
$(patsubst %,_sfdep_%,$(_FASTDEP_ALL_SUB_DIRS)):
        $(MAKE) -C $(patsubst _sfdep_%,%,$@) fastdep
        $(MAKE) -C $(patsubst _sfdep_%,%,$@) fastdep
endif
endif
#
#
# A rule to make subdirectories
# A rule to make subdirectories
#
#
subdir-list = $(sort $(patsubst %,_subdir_%,$(SUB_DIRS)))
subdir-list = $(sort $(patsubst %,_subdir_%,$(SUB_DIRS)))
sub_dirs: dummy $(subdir-list)
sub_dirs: dummy $(subdir-list)
ifdef SUB_DIRS
ifdef SUB_DIRS
$(subdir-list) : dummy
$(subdir-list) : dummy
        $(MAKE) -C $(patsubst _subdir_%,%,$@)
        $(MAKE) -C $(patsubst _subdir_%,%,$@)
endif
endif
#
#
# A rule to make modules
# A rule to make modules
#
#
ALL_MOBJS = $(filter-out $(obj-y), $(obj-m))
ALL_MOBJS = $(filter-out $(obj-y), $(obj-m))
ifneq "$(strip $(ALL_MOBJS))" ""
ifneq "$(strip $(ALL_MOBJS))" ""
MOD_DESTDIR := $(shell $(CONFIG_SHELL) $(TOPDIR)/scripts/pathdown.sh)
MOD_DESTDIR := $(shell $(CONFIG_SHELL) $(TOPDIR)/scripts/pathdown.sh)
endif
endif
unexport MOD_DIRS
unexport MOD_DIRS
MOD_DIRS := $(MOD_SUB_DIRS) $(MOD_IN_SUB_DIRS)
MOD_DIRS := $(MOD_SUB_DIRS) $(MOD_IN_SUB_DIRS)
ifneq "$(strip $(MOD_DIRS))" ""
ifneq "$(strip $(MOD_DIRS))" ""
.PHONY: $(patsubst %,_modsubdir_%,$(MOD_DIRS))
.PHONY: $(patsubst %,_modsubdir_%,$(MOD_DIRS))
$(patsubst %,_modsubdir_%,$(MOD_DIRS)) : dummy
$(patsubst %,_modsubdir_%,$(MOD_DIRS)) : dummy
        $(MAKE) -C $(patsubst _modsubdir_%,%,$@) modules
        $(MAKE) -C $(patsubst _modsubdir_%,%,$@) modules
.PHONY: $(patsubst %,_modinst_%,$(MOD_DIRS))
.PHONY: $(patsubst %,_modinst_%,$(MOD_DIRS))
$(patsubst %,_modinst_%,$(MOD_DIRS)) : dummy
$(patsubst %,_modinst_%,$(MOD_DIRS)) : dummy
        $(MAKE) -C $(patsubst _modinst_%,%,$@) modules_install
        $(MAKE) -C $(patsubst _modinst_%,%,$@) modules_install
endif
endif
.PHONY: modules
.PHONY: modules
modules: $(ALL_MOBJS) dummy \
modules: $(ALL_MOBJS) dummy \
         $(patsubst %,_modsubdir_%,$(MOD_DIRS))
         $(patsubst %,_modsubdir_%,$(MOD_DIRS))
.PHONY: _modinst__
.PHONY: _modinst__
_modinst__: dummy
_modinst__: dummy
ifneq "$(strip $(ALL_MOBJS))" ""
ifneq "$(strip $(ALL_MOBJS))" ""
        mkdir -p $(MODLIB)/kernel/$(MOD_DESTDIR)
        mkdir -p $(MODLIB)/kernel/$(MOD_DESTDIR)
        cp $(sort $(ALL_MOBJS)) $(MODLIB)/kernel/$(MOD_DESTDIR)
        cp $(sort $(ALL_MOBJS)) $(MODLIB)/kernel/$(MOD_DESTDIR)
endif
endif
.PHONY: modules_install
.PHONY: modules_install
modules_install: _modinst__ \
modules_install: _modinst__ \
         $(patsubst %,_modinst_%,$(MOD_DIRS))
         $(patsubst %,_modinst_%,$(MOD_DIRS))
#
#
# A rule to do nothing
# A rule to do nothing
#
#
dummy:
dummy:
#
#
# This is useful for testing
# This is useful for testing
#
#
script:
script:
        $(SCRIPT)
        $(SCRIPT)
#
#
# This sets version suffixes on exported symbols
# This sets version suffixes on exported symbols
# Separate the object into "normal" objects and "exporting" objects
# Separate the object into "normal" objects and "exporting" objects
# Exporting objects are: all objects that define symbol tables
# Exporting objects are: all objects that define symbol tables
#
#
ifdef CONFIG_MODULES
ifdef CONFIG_MODULES
multi-used      := $(filter $(list-multi), $(obj-y) $(obj-m))
multi-used      := $(filter $(list-multi), $(obj-y) $(obj-m))
multi-objs      := $(foreach m, $(multi-used), $($(basename $(m))-objs))
multi-objs      := $(foreach m, $(multi-used), $($(basename $(m))-objs))
active-objs     := $(sort $(multi-objs) $(obj-y) $(obj-m))
active-objs     := $(sort $(multi-objs) $(obj-y) $(obj-m))
ifdef CONFIG_MODVERSIONS
ifdef CONFIG_MODVERSIONS
ifneq "$(strip $(export-objs))" ""
ifneq "$(strip $(export-objs))" ""
MODINCL = $(TOPDIR)/include/linux/modules
MODINCL = $(TOPDIR)/include/linux/modules
# The -w option (enable warnings) for genksyms will return here in 2.1
# The -w option (enable warnings) for genksyms will return here in 2.1
# So where has it gone?
# So where has it gone?
#
#
# Added the SMP separator to stop module accidents between uniprocessor
# Added the SMP separator to stop module accidents between uniprocessor
# and SMP Intel boxes - AC - from bits by Michael Chastain
# and SMP Intel boxes - AC - from bits by Michael Chastain
#
#
ifdef CONFIG_SMP
ifdef CONFIG_SMP
        genksyms_smp_prefix := -p smp_
        genksyms_smp_prefix := -p smp_
else
else
        genksyms_smp_prefix :=
        genksyms_smp_prefix :=
endif
endif
$(MODINCL)/%.ver: %.c
$(MODINCL)/%.ver: %.c
        @if [ ! -r $(MODINCL)/$*.stamp -o $(MODINCL)/$*.stamp -ot $< ]; then \
        @if [ ! -r $(MODINCL)/$*.stamp -o $(MODINCL)/$*.stamp -ot $< ]; then \
                echo '$(CC) $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) -E -D__GENKSYMS__ $<'; \
                echo '$(CC) $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) -E -D__GENKSYMS__ $<'; \
                echo '| $(GENKSYMS) $(genksyms_smp_prefix) -k $(VERSION).$(PATCHLEVEL).$(SUBLEVEL) > $@.tmp'; \
                echo '| $(GENKSYMS) $(genksyms_smp_prefix) -k $(VERSION).$(PATCHLEVEL).$(SUBLEVEL) > $@.tmp'; \
                $(CC) $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) -E -D__GENKSYMS__ $< \
                $(CC) $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) -E -D__GENKSYMS__ $< \
                | $(GENKSYMS) $(genksyms_smp_prefix) -k $(VERSION).$(PATCHLEVEL).$(SUBLEVEL) > $@.tmp; \
                | $(GENKSYMS) $(genksyms_smp_prefix) -k $(VERSION).$(PATCHLEVEL).$(SUBLEVEL) > $@.tmp; \
                if [ -r $@ ] && cmp -s $@ $@.tmp; then echo $@ is unchanged; rm -f $@.tmp; \
                if [ -r $@ ] && cmp -s $@ $@.tmp; then echo $@ is unchanged; rm -f $@.tmp; \
                else echo mv $@.tmp $@; mv -f $@.tmp $@; fi; \
                else echo mv $@.tmp $@; mv -f $@.tmp $@; fi; \
        fi; touch $(MODINCL)/$*.stamp
        fi; touch $(MODINCL)/$*.stamp
$(addprefix $(MODINCL)/,$(export-objs:.o=.ver)): $(TOPDIR)/include/linux/autoconf.h
$(addprefix $(MODINCL)/,$(export-objs:.o=.ver)): $(TOPDIR)/include/linux/autoconf.h
# updates .ver files but not modversions.h
# updates .ver files but not modversions.h
fastdep: $(addprefix $(MODINCL)/,$(export-objs:.o=.ver))
fastdep: $(addprefix $(MODINCL)/,$(export-objs:.o=.ver))
# updates .ver files and modversions.h like before (is this needed?)
# updates .ver files and modversions.h like before (is this needed?)
dep: fastdep update-modverfile
dep: fastdep update-modverfile
endif # export-objs
endif # export-objs
# update modversions.h, but only if it would change
# update modversions.h, but only if it would change
update-modverfile:
update-modverfile:
        @(echo "#ifndef _LINUX_MODVERSIONS_H";\
        @(echo "#ifndef _LINUX_MODVERSIONS_H";\
          echo "#define _LINUX_MODVERSIONS_H"; \
          echo "#define _LINUX_MODVERSIONS_H"; \
          echo "#include "; \
          echo "#include "; \
          cd $(TOPDIR)/include/linux/modules; \
          cd $(TOPDIR)/include/linux/modules; \
          for f in *.ver; do \
          for f in *.ver; do \
            if [ -f $$f ]; then echo "#include "; fi; \
            if [ -f $$f ]; then echo "#include "; fi; \
          done; \
          done; \
          echo "#endif"; \
          echo "#endif"; \
        ) > $(TOPDIR)/include/linux/modversions.h.tmp
        ) > $(TOPDIR)/include/linux/modversions.h.tmp
        @if [ -r $(TOPDIR)/include/linux/modversions.h ] && cmp -s $(TOPDIR)/include/linux/modversions.h $(TOPDIR)/include/linux/modversions.h.tmp; then \
        @if [ -r $(TOPDIR)/include/linux/modversions.h ] && cmp -s $(TOPDIR)/include/linux/modversions.h $(TOPDIR)/include/linux/modversions.h.tmp; then \
                echo $(TOPDIR)/include/linux/modversions.h was not updated; \
                echo $(TOPDIR)/include/linux/modversions.h was not updated; \
                rm -f $(TOPDIR)/include/linux/modversions.h.tmp; \
                rm -f $(TOPDIR)/include/linux/modversions.h.tmp; \
        else \
        else \
                echo $(TOPDIR)/include/linux/modversions.h was updated; \
                echo $(TOPDIR)/include/linux/modversions.h was updated; \
                mv -f $(TOPDIR)/include/linux/modversions.h.tmp $(TOPDIR)/include/linux/modversions.h; \
                mv -f $(TOPDIR)/include/linux/modversions.h.tmp $(TOPDIR)/include/linux/modversions.h; \
        fi
        fi
$(active-objs): $(TOPDIR)/include/linux/modversions.h
$(active-objs): $(TOPDIR)/include/linux/modversions.h
else
else
$(TOPDIR)/include/linux/modversions.h:
$(TOPDIR)/include/linux/modversions.h:
        @echo "#include " > $@
        @echo "#include " > $@
endif # CONFIG_MODVERSIONS
endif # CONFIG_MODVERSIONS
ifneq "$(strip $(export-objs))" ""
ifneq "$(strip $(export-objs))" ""
$(export-objs): $(export-objs:.o=.c) $(TOPDIR)/include/linux/modversions.h
$(export-objs): $(export-objs:.o=.c) $(TOPDIR)/include/linux/modversions.h
        $(CC) $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) $(CFLAGS_$@) -DEXPORT_SYMTAB -c $(@:.o=.c)
        $(CC) $(CFLAGS) $(EXTRA_CFLAGS_nostdinc) -DKBUILD_BASENAME=$(subst $(comma),_,$(subst -,_,$(*F))) $(CFLAGS_$@) -DEXPORT_SYMTAB -c $(@:.o=.c)
        @ ( \
        @ ( \
            echo 'ifeq ($(strip $(subst $(comma),:,$(CFLAGS) $(EXTRA_CFLAGS_nostdinc) $(CFLAGS_$@) -DEXPORT_SYMTAB)),$$(strip $$(subst $$(comma),:,$$(CFLAGS) $$(EXTRA_CFLAGS_nostdinc) $$(CFLAGS_$@) -DEXPORT_SYMTAB)))' ; \
            echo 'ifeq ($(strip $(subst $(comma),:,$(CFLAGS) $(EXTRA_CFLAGS_nostdinc) $(CFLAGS_$@) -DEXPORT_SYMTAB)),$$(strip $$(subst $$(comma),:,$$(CFLAGS) $$(EXTRA_CFLAGS_nostdinc) $$(CFLAGS_$@) -DEXPORT_SYMTAB)))' ; \
            echo 'FILES_FLAGS_UP_TO_DATE += $@' ; \
            echo 'FILES_FLAGS_UP_TO_DATE += $@' ; \
            echo 'endif' \
            echo 'endif' \
        ) > $(dir $@)/.$(notdir $@).flags
        ) > $(dir $@)/.$(notdir $@).flags
endif
endif
endif # CONFIG_MODULES
endif # CONFIG_MODULES
#
#
# include dependency files if they exist
# include dependency files if they exist
#
#
ifneq ($(wildcard .depend),)
ifneq ($(wildcard .depend),)
include .depend
include .depend
endif
endif
ifneq ($(wildcard $(TOPDIR)/.hdepend),)
ifneq ($(wildcard $(TOPDIR)/.hdepend),)
include $(TOPDIR)/.hdepend
include $(TOPDIR)/.hdepend
endif
endif
#
#
# Find files whose flags have changed and force recompilation.
# Find files whose flags have changed and force recompilation.
# For safety, this works in the converse direction:
# For safety, this works in the converse direction:
#   every file is forced, except those whose flags are positively up-to-date.
#   every file is forced, except those whose flags are positively up-to-date.
#
#
FILES_FLAGS_UP_TO_DATE :=
FILES_FLAGS_UP_TO_DATE :=
# For use in expunging commas from flags, which mung our checking.
# For use in expunging commas from flags, which mung our checking.
comma = ,
comma = ,
FILES_FLAGS_EXIST := $(wildcard .*.flags)
FILES_FLAGS_EXIST := $(wildcard .*.flags)
ifneq ($(FILES_FLAGS_EXIST),)
ifneq ($(FILES_FLAGS_EXIST),)
include $(FILES_FLAGS_EXIST)
include $(FILES_FLAGS_EXIST)
endif
endif
FILES_FLAGS_CHANGED := $(strip \
FILES_FLAGS_CHANGED := $(strip \
    $(filter-out $(FILES_FLAGS_UP_TO_DATE), \
    $(filter-out $(FILES_FLAGS_UP_TO_DATE), \
        $(O_TARGET) $(L_TARGET) $(active-objs) \
        $(O_TARGET) $(L_TARGET) $(active-objs) \
        ))
        ))
# A kludge: .S files don't get flag dependencies (yet),
# A kludge: .S files don't get flag dependencies (yet),
#   because that will involve changing a lot of Makefiles.  Also
#   because that will involve changing a lot of Makefiles.  Also
#   suppress object files explicitly listed in $(IGNORE_FLAGS_OBJS).
#   suppress object files explicitly listed in $(IGNORE_FLAGS_OBJS).
#   This allows handling of assembly files that get translated into
#   This allows handling of assembly files that get translated into
#   multiple object files (see arch/ia64/lib/idiv.S, for example).
#   multiple object files (see arch/ia64/lib/idiv.S, for example).
FILES_FLAGS_CHANGED := $(strip \
FILES_FLAGS_CHANGED := $(strip \
    $(filter-out $(patsubst %.S, %.o, $(wildcard *.S) $(IGNORE_FLAGS_OBJS)), \
    $(filter-out $(patsubst %.S, %.o, $(wildcard *.S) $(IGNORE_FLAGS_OBJS)), \
    $(FILES_FLAGS_CHANGED)))
    $(FILES_FLAGS_CHANGED)))
ifneq ($(FILES_FLAGS_CHANGED),)
ifneq ($(FILES_FLAGS_CHANGED),)
$(FILES_FLAGS_CHANGED): dummy
$(FILES_FLAGS_CHANGED): dummy
endif
endif
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.