137501b9ac
that does't exist when gcc -MM is used. Thus we do one more work-around that creates the file before depedency generation and then removes it again afterwards... git-svn-id: svn://svn.rockbox.org/rockbox/trunk@8355 a1c6a512-1295-4272-9138-f99709370657
54 lines
1.6 KiB
Makefile
54 lines
1.6 KiB
Makefile
# -*- Makefile -*-
|
|
|
|
ifndef V
|
|
SILENT=@
|
|
endif
|
|
|
|
$(OBJDIR)/%.o: %.c
|
|
$(SILENT)mkdir -p `dirname $@`
|
|
@echo "CC $<"
|
|
$(SILENT)$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
$(OBJDIR)/%.o: %.S
|
|
$(SILENT)mkdir -p `dirname $@`
|
|
@echo "CC $<"
|
|
$(SILENT)$(CC) $(CFLAGS) -c $< -o $@
|
|
|
|
# The echo stuff last in the dep update shell magic is to prevent any compiler
|
|
# errors/warnings to cause an error code to get returned and thus stop the
|
|
# build
|
|
#
|
|
# This script checks for the presence of $(BUILDDIR)/lang.h and if it doesn't
|
|
# alreay exist, it is created. This is because lots of files include this
|
|
# *generated* file and if it doesn't exist when we generate the deps it is no
|
|
# good. There's a -MG compiler option to cover for this case, but it doesn't
|
|
# play nicely into this as it then adds a dependency to the lang.h file
|
|
# without the proper path.
|
|
#
|
|
$(DEPFILE): $(SOURCES)
|
|
$(SILENT)mkdir -p `dirname $(DEPFILE)`
|
|
$(SILENT)rm -f $(DEPFILE)
|
|
$(SILENT)(if test ! -f $(BUILDDIR)/lang.h; then \
|
|
del="$(BUILDDIR)/lang.h"; \
|
|
touch $(BUILDDIR)/lang.h; \
|
|
fi; \
|
|
for each in $(SOURCES) x; do \
|
|
if test "$$each" = "credits.c"; then \
|
|
del="$$del$(BUILDDIR)/credits.raw"; \
|
|
touch $(BUILDDIR)/credits.raw; \
|
|
fi; \
|
|
if test "x" != "$$each"; then \
|
|
obj=`echo $$each | sed -e 's/\.[cS]/.o/'`; \
|
|
$(CC) -MM -MT "$(OBJDIR)/$$obj" $(CFLAGS) $$each >> $(DEPFILE) 2>/dev/null; \
|
|
fi; \
|
|
if test -n "$$del"; then \
|
|
rm $$del; \
|
|
del=""; \
|
|
fi \
|
|
done; \
|
|
echo "oo" >/dev/null )
|
|
|
|
tags:
|
|
$(SILENT)(for d in $(DIRS); do \
|
|
etags -o $(OBJDIR)/TAGS -a $$d/*.[ch]; \
|
|
done)
|