1 ###########################################################
2 ### Makefile.rules for the GNU PIC Library
4 ### Copyright (C) 2005 by Raphael Neider <rneider@web.de>
6 ### The GNU PIC Library was originally designed and
8 ### Vangelis Rokas <vrokas@otenet.gr>
10 ### It is currently maintained by
11 ### Raphael Neider <rneider@web.de>
13 ### This file may be distributed under the terms of the the
14 ### GNU General Public License (GPL). See COPYING for details.
20 $(topsrcdir)/$(builddir)/%.d : %.c
21 @echo "[ CPP ] ==> $(patsubst $(topsrcdir)/%,%,$@)";
22 $(Q)$(CPP) $CPPFLAGS) -o "$@" "$<";
25 $(topsrcdir)/$(builddir)/%.o : %.S
26 @echo "[ AS ] ==> $(patsubst $(topsrcdir)/%,%,$@)";
27 $(Q)$(AS) $(ASFLAGS) -o "$@" -c "$<";
30 $(topsrcdir)/$(builddir)/%.o : %.c
31 @echo "[ CC ] ==> $(patsubst $(topsrcdir)/%,%,$@)";
32 $(Q)$(CC) $(CFLAGS) -o "$@" -c "$<";
35 ifneq (,$(strip $(LIB_O)))
37 @echo "[ LIB ] $(patsubst $(topsrcdir)/%,%,$@) <== $(patsubst $(topsrcdir)/$(builddir)/%,%,$^)";
38 $(Q)$(RM) "$@"; $(LIB) $(LIBFLAGS) "$@" $^;
41 @echo "[ LIB ] $(patsubst $(topsrcdir)/%,%,$@) <== **/*.o";
42 $(Q)$(RM) "$@"; LIB_O=`find "$(topsrcdir)/$(builddir)" -name "*.o"`; [ "x$${LIB_O}" = "x" ] || $(LIB) $(LIBFLAGS) "$@" $${LIB_O};
45 .PHONY : builddir recurse force
49 $(Q)[ -d "$(topsrcdir)/$(builddir)" ] || $(MKDIR) "$(topsrcdir)/$(builddir)";
51 # build sub-directories
53 $(Q)for DIR in $(SUBDIRS) . ; do \
54 [ "$${DIR}" = "." ] || $(GREP) "^$${ARCH}$$" "$${DIR}.ignore" &> /dev/null || $(MAKE) -C "$${DIR}" builddir="$(builddir)/$${DIR}" $(MAKECMDGOALS) || exit 1; \
57 # target to force remaking of (seemingly) independent targets