Marian Balakowicz | d62379d | 2006-09-01 19:49:50 +0200 | [diff] [blame] | 1 | # |
| 2 | # (C) Copyright 2006 |
| 3 | # Wolfgang Denk, DENX Software Engineering, wd@denx.de. |
| 4 | # |
| 5 | # See file CREDITS for list of people who contributed to this |
| 6 | # project. |
| 7 | # |
| 8 | # This program is free software; you can redistribute it and/or |
| 9 | # modify it under the terms of the GNU General Public License as |
| 10 | # published by the Free Software Foundation; either version 2 of |
| 11 | # the License, or (at your option) any later version. |
| 12 | # |
| 13 | # This program is distributed in the hope that it will be useful, |
| 14 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 15 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 16 | # GNU General Public License for more details. |
| 17 | # |
| 18 | # You should have received a copy of the GNU General Public License |
| 19 | # along with this program; if not, write to the Free Software |
| 20 | # Foundation, Inc., 59 Temple Place, Suite 330, Boston, |
| 21 | # MA 02111-1307 USA |
| 22 | # |
| 23 | |
| 24 | ######################################################################### |
| 25 | |
| 26 | _depend: $(obj).depend |
| 27 | |
Simon Glass | 935c5bc | 2011-10-07 13:53:49 +0000 | [diff] [blame] | 28 | # Split the source files into two camps: those in the current directory, and |
| 29 | # those somewhere else. For the first camp we want to support CPPFLAGS_<fname> |
| 30 | # and for the second we don't / can't. |
| 31 | PWD_SRCS := $(filter $(notdir $(SRCS)),$(SRCS)) |
| 32 | OTHER_SRCS := $(filter-out $(notdir $(SRCS)),$(SRCS)) |
| 33 | |
| 34 | # This is a list of dependency files to generate |
| 35 | DEPS := $(basename $(patsubst %,$(obj).depend.%,$(PWD_SRCS))) |
| 36 | |
| 37 | # Join all the dependencies into a single file, in three parts |
| 38 | # 1 .Concatenate all the generated depend files together |
| 39 | # 2. Add in the deps from OTHER_SRCS which we couldn't process |
| 40 | # 3. Add in the HOSTSRCS |
Simon Glass | 0d4c62e | 2011-10-18 05:50:42 +0000 | [diff] [blame] | 41 | $(obj).depend: $(src)Makefile $(TOPDIR)/config.mk $(DEPS) $(OTHER_SRCS) \ |
| 42 | $(HOSTSRCS) |
Simon Glass | 935c5bc | 2011-10-07 13:53:49 +0000 | [diff] [blame] | 43 | cat /dev/null $(DEPS) >$@ |
| 44 | @for f in $(OTHER_SRCS); do \ |
| 45 | g=`basename $$f | sed -e 's/\(.*\)\.[[:alnum:]_]/\1.o/'`; \ |
| 46 | $(CC) -M $(CPPFLAGS) -MQ $(obj)$$g $$f >> $@ ; \ |
| 47 | done |
| 48 | @for f in $(HOSTSRCS); do \ |
| 49 | g=`basename $$f | sed -e 's/\(.*\)\.[[:alnum:]_]/\1.o/'`; \ |
| 50 | $(HOSTCC) -M $(HOSTCPPFLAGS) -MQ $(obj)$$g $$f >> $@ ; \ |
| 51 | done |
| 52 | |
| 53 | MAKE_DEPEND = $(CC) -M $(CPPFLAGS) $(EXTRA_CPPFLAGS_DEP) \ |
| 54 | -MQ $(addsuffix .o,$(obj)$(basename $<)) $< >$@ |
| 55 | |
| 56 | |
| 57 | $(obj).depend.%: %.c |
| 58 | $(MAKE_DEPEND) |
| 59 | |
| 60 | $(obj).depend.%: %.S |
| 61 | $(MAKE_DEPEND) |
Marian Balakowicz | d62379d | 2006-09-01 19:49:50 +0200 | [diff] [blame] | 62 | |
Scott Wood | 16c91a1 | 2009-11-04 18:41:41 -0600 | [diff] [blame] | 63 | $(HOSTOBJS): $(obj)%.o: %.c |
| 64 | $(HOSTCC) $(HOSTCFLAGS) $(HOSTCFLAGS_$(@F)) $(HOSTCFLAGS_$(BCURDIR)) -o $@ $< -c |
| 65 | $(NOPEDOBJS): $(obj)%.o: %.c |
| 66 | $(HOSTCC) $(HOSTCFLAGS_NOPED) $(HOSTCFLAGS_$(@F)) $(HOSTCFLAGS_$(BCURDIR)) -o $@ $< -c |
| 67 | |
Marian Balakowicz | d62379d | 2006-09-01 19:49:50 +0200 | [diff] [blame] | 68 | ######################################################################### |