* device/lib/pic/libdev/Makefile.in: build device-specific
[fw/sdcc] / device / lib / pic / Makefile.rules
index 1f2978124a924e0cbb69c34dcccfec784ea2a372..6813ae0304985f05444c07f56ca3cdd4b08c7d04 100644 (file)
@@ -1,10 +1,10 @@
 ###########################################################
 ### Makefile.rules for the SDCC/PIC14 Library
 ###
-### Copyright (C) 2005 by Raphael Neider <rneider@web.de>
+### Copyright (C) 2005 by Raphael Neider <rneider AT web.de>
 ###
 ### The library is currently maintained by
-###    Raphael Neider <rneider@web.de>
+###    Raphael Neider <rneider AT web.de>
 ###
 ### This file may be distributed under the terms of the the
 ### GNU General Public License (GPL). See GPL for details.
 ###
 
 # update dependencies
-$(topsrcdir)/$(builddir)/%.d : %.c
-       @echo "[  CPP  ] ==> $(patsubst $(topsrcdir)/%,%,$@)";
-       $(Q)$(CPP) $(CPPFLAGS) -o "$@" "$<";
+$(top_builddir)/$(builddir)/%.d : %.c
+ifndef SILENT
+       @echo "[  CPP  ] ==> $(patsubst $(top_builddir)/%,%,$@)"
+endif
+       $(Q)$(CPP) $(CPPFLAGS) -o "$@" "$<"
 
 # assemble
-$(topsrcdir)/$(builddir)/%.o : %.S
-       @echo "[  AS   ] ==> $(patsubst $(topsrcdir)/%,%,$@)";
-       $(Q)$(AS) $(ASFLAGS) -o "$@" -c "$<";
+$(top_builddir)/$(builddir)/%.o : %.S
+ifndef SILENT
+       @echo "[  AS   ] ==> $(patsubst $(top_builddir)/%,%,$@)"
+endif
+       $(Q)$(CPP) $(CPPFLAGS) -P -o "$*.Spp" "$<"
+       $(Q)$(AS) $(ASFLAGS) -o "$@" -c "$*.Spp"
+       $(Q)$(RM) "$*.Spp"
 
 # compile
-$(topsrcdir)/$(builddir)/%.o : %.c
-       @echo "[  CC   ] ==> $(patsubst $(topsrcdir)/%,%,$@)";
-       $(Q)$(CC) $(CFLAGS) -o "$@" -c "$<";
+$(top_builddir)/$(builddir)/%.o : %.c
+ifndef SILENT
+       @echo "[  CC   ] ==> $(patsubst $(top_builddir)/%,%,$@)"
+endif
+       $(Q)$(CC) $(CFLAGS) -o "$@" -c "$<"
 
 # create library
 ifneq (,$(strip $(LIB_O)))
 %.lib : $(LIB_O)
-       @echo "[  LIB  ] $(patsubst $(topsrcdir)/%,%,$@) <== $(patsubst $(topsrcdir)/$(builddir)/%,%,$^)";
-       $(Q)$(RM) "$@"; $(LIB) $(LIBFLAGS) "$@" $^;
+ifndef SILENT
+       @echo "[  LIB  ] $(patsubst $(top_builddir)/%,%,$@) <== $(patsubst $(top_builddir)/$(builddir)/%,%,$^)"
+endif
+       $(Q)$(RM) "$@"; $(LIB) $(LIBFLAGS) "$@" $^
 else
 %.lib : recurse
-       @echo "[  LIB  ] $(patsubst $(topsrcdir)/%,%,$@) <== **/*.o";
-       $(Q)$(RM) "$@"; LIB_O=`find "$(topsrcdir)/$(builddir)" -name "*.o"`; [ "x$${LIB_O}" = "x" ] || $(LIB) $(LIBFLAGS) "$@" $${LIB_O};
+ifndef SILENT
+       @echo "[  LIB  ] $(patsubst $(top_builddir)/%,%,$@) <== **/*.o"
+endif
+       $(Q)$(RM) "$@"; LIB_O=`find "$(top_builddir)/$(builddir)" -name "*.o"`; [ "x$${LIB_O}" = "x" ] || $(LIB) $(LIBFLAGS) "$@" $${LIB_O}
 endif
 
 .PHONY : recurse force
@@ -44,9 +56,9 @@ endif
 ifneq (,$(strip $(SUBDIRS)))
 recurse : force
        $(Q)+for DIR in $(SUBDIRS) ; do \
-               $(GREP) "^$${ARCH}$$" "$${DIR}.ignore" &> /dev/null || ( \
-                       [ -d "$(topsrcdir)/$(builddir)/$${DIR}" ] || $(MKDIR) "$(topsrcdir)/$(builddir)/$${DIR}"; \
-                       $(MAKE) -C "$${DIR}" builddir="$(builddir)/$${DIR}" $(MAKECMDGOALS); \
+               [ -f "$(srcdir)/$${DIR}.ignore" ] && $(GREP) "^$${ARCH}$$" "$${DIR}.ignore" > /dev/null 2>&1 || ( \
+                       $(MKDIR) "$(top_builddir)/$(builddir)/$${DIR}"; \
+                       CFLAGS="$(CFLAGS)" $(MAKE) -C "$${DIR}" builddir="$(builddir)/$${DIR}" $(MAKECMDGOALS); \
                ) || exit 1; \
        done
 else