| # | |
| # (C) Copyright 2006 | |
| # Wolfgang Denk, DENX Software Engineering, wd@denx.de. | |
| # | |
| # See file CREDITS for list of people who contributed to this | |
| # project. | |
| # | |
| # This program is free software; you can redistribute it and/or | |
| # modify it under the terms of the GNU General Public License as | |
| # published by the Free Software Foundation; either version 2 of | |
| # the License, or (at your option) any later version. | |
| # | |
| # This program is distributed in the hope that it will be useful, | |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
| # GNU General Public License for more details. | |
| # | |
| # You should have received a copy of the GNU General Public License | |
| # along with this program; if not, write to the Free Software | |
| # Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
| # MA 02111-1307 USA | |
| # | |
| ######################################################################### | |
| _depend: $(obj).depend | |
| # 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_<fname> | |
| # 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 | |
| ######################################################################### |