| # |
| # (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 |
| |
| ######################################################################### |