1 ###########################################################
2 ### Makefile.rules for the SDCC/PIC14 Library
4 ### Copyright (C) 2005 by Raphael Neider <rneider@web.de>
6 ### The library is currently maintained by
7 ### Raphael Neider <rneider@web.de>
9 ### This file may be distributed under the terms of the the
10 ### GNU General Public License (GPL). See GPL for details.
16 $(topsrcdir)/$(builddir)/%.d : %.c
18 @echo "[ CPP ] ==> $(patsubst $(topsrcdir)/%,%,$@)";
20 $(Q)$(CPP) $(CPPFLAGS) -o "$@" "$<";
23 $(topsrcdir)/$(builddir)/%.o : %.S
25 @echo "[ AS ] ==> $(patsubst $(topsrcdir)/%,%,$@)";
27 $(Q)$(CPP) $(CPPFLAGS) -P -o "$*.Spp" "$<";
28 $(Q)$(AS) $(ASFLAGS) -o "$@" -c "$*.Spp";
32 $(topsrcdir)/$(builddir)/%.o : %.c
34 @echo "[ CC ] ==> $(patsubst $(topsrcdir)/%,%,$@)";
36 $(Q)$(CC) $(CFLAGS) -o "$@" -c "$<";
39 ifneq (,$(strip $(LIB_O)))
42 @echo "[ LIB ] $(patsubst $(topsrcdir)/%,%,$@) <== $(patsubst $(topsrcdir)/$(builddir)/%,%,$^)";
44 $(Q)$(RM) "$@"; $(LIB) $(LIBFLAGS) "$@" $^;
48 @echo "[ LIB ] $(patsubst $(topsrcdir)/%,%,$@) <== **/*.o";
50 $(Q)$(RM) "$@"; LIB_O=`find "$(topsrcdir)/$(builddir)" -name "*.o"`; [ "x$${LIB_O}" = "x" ] || $(LIB) $(LIBFLAGS) "$@" $${LIB_O};
53 .PHONY : recurse force
55 # build sub-directories
56 ifneq (,$(strip $(SUBDIRS)))
58 $(Q)+for DIR in $(SUBDIRS) ; do \
59 $(GREP) "^$${ARCH}$$" "$${DIR}.ignore" &> /dev/null || ( \
60 [ -d "$(topsrcdir)/$(builddir)/$${DIR}" ] || $(MKDIR) "$(topsrcdir)/$(builddir)/$${DIR}"; \
61 $(MAKE) -C "$${DIR}" builddir="$(builddir)/$${DIR}" $(MAKECMDGOALS); \
69 # target to force remaking of (seemingly) independent targets