X-Git-Url: https://git.kernelconcepts.de/?p=karo-tx-uboot.git;a=blobdiff_plain;f=rules.mk;h=fa929f9f5078593affca9c5ca166bd3fa2d1403b;hp=a77451bd7f7f439c72a6e8c0b7234c88ce3edff4;hb=c97b6df1ae92679d67f94c1cfef51323782a506d;hpb=fb883a521e04437acfe989de3e152b2e4866856b diff --git a/rules.mk b/rules.mk index a77451bd7f..fa929f9f50 100644 --- a/rules.mk +++ b/rules.mk @@ -25,11 +25,44 @@ _depend: $(obj).depend -$(obj).depend: $(src)Makefile $(TOPDIR)/config.mk $(SRCS) - @rm -f $@ - @for f in $(SRCS); do \ - g=`basename $$f | sed -e 's/\(.*\)\.\w/\1.o/'`; \ - $(CC) -M $(HOST_CFLAGS) $(CPPFLAGS) -MQ $(obj)$$g $$f >> $@ ; \ - done +# Split the source files into two camps: those in the current directory, and +# those somewhere else. For the first camp we want to support CPPFLAGS_ +# and for the second we don't / can't. +PWD_SRCS := $(filter $(notdir $(SRCS)),$(SRCS)) +OTHER_SRCS := $(filter-out $(notdir $(SRCS)),$(SRCS)) + +# This is a list of dependency files to generate +DEPS := $(basename $(patsubst %,$(obj).depend.%,$(PWD_SRCS))) + +# Join all the dependencies into a single file, in three parts +# 1 .Concatenate all the generated depend files together +# 2. Add in the deps from OTHER_SRCS which we couldn't process +# 3. Add in the HOSTSRCS +$(obj).depend: $(src)Makefile $(TOPDIR)/config.mk $(DEPS) $(OTHER_SRCS) \ + $(HOSTSRCS) + cat /dev/null $(DEPS) >$@ + @for f in $(OTHER_SRCS); do \ + g=`basename $$f | sed -e 's/\(.*\)\.[[:alnum:]_]/\1.o/'`; \ + $(CC) -M $(CPPFLAGS) -MQ $(obj)$$g $$f >> $@ ; \ + done + @for f in $(HOSTSRCS); do \ + g=`basename $$f | sed -e 's/\(.*\)\.[[:alnum:]_]/\1.o/'`; \ + $(HOSTCC) -M $(HOSTCPPFLAGS) -MQ $(obj)$$g $$f >> $@ ; \ + done + +MAKE_DEPEND = $(CC) -M $(CPPFLAGS) $(EXTRA_CPPFLAGS_DEP) \ + -MQ $(addsuffix .o,$(obj)$(basename $<)) $< >$@ + + +$(obj).depend.%: %.c + $(MAKE_DEPEND) + +$(obj).depend.%: %.S + $(MAKE_DEPEND) + +$(HOSTOBJS): $(obj)%.o: %.c + $(HOSTCC) $(HOSTCFLAGS) $(HOSTCFLAGS_$(@F)) $(HOSTCFLAGS_$(BCURDIR)) -o $@ $< -c +$(NOPEDOBJS): $(obj)%.o: %.c + $(HOSTCC) $(HOSTCFLAGS_NOPED) $(HOSTCFLAGS_$(@F)) $(HOSTCFLAGS_$(BCURDIR)) -o $@ $< -c #########################################################################