summaryrefslogtreecommitdiff
path: root/device/non-free/lib/pic14/Makefile.rules
diff options
context:
space:
mode:
Diffstat (limited to 'device/non-free/lib/pic14/Makefile.rules')
-rw-r--r--device/non-free/lib/pic14/Makefile.rules70
1 files changed, 70 insertions, 0 deletions
diff --git a/device/non-free/lib/pic14/Makefile.rules b/device/non-free/lib/pic14/Makefile.rules
new file mode 100644
index 0000000..25cb047
--- /dev/null
+++ b/device/non-free/lib/pic14/Makefile.rules
@@ -0,0 +1,70 @@
+###########################################################
+### Makefile.rules for the SDCC/PIC14 Library
+###
+### Copyright (C) 2005 by Raphael Neider <rneider AT web.de>
+###
+### The library is currently maintained by
+### 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.
+###
+### $Id: Makefile.rules 5205 2008-08-07 21:44:41Z borutr $
+###
+
+# update dependencies
+$(top_builddir)/$(builddir)/%.d : %.c
+ifndef SILENT
+ @echo "[ CPP ] ==> $(patsubst $(top_builddir)/%,%,$@)"
+endif
+ $(Q)$(CPP) $(CPPFLAGS) -o "$@" "$<"
+
+# assemble
+$(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
+$(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)
+ifndef SILENT
+ @echo "[ LIB ] $(patsubst $(top_builddir)/%,%,$@) <== $(patsubst $(top_builddir)/$(builddir)/%,%,$^)"
+endif
+ $(Q)$(RM) "$@"; $(LIB) $(LIBFLAGS) "$@" $^
+else
+%.lib : recurse
+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
+
+# build sub-directories
+ifneq (,$(strip $(SUBDIRS)))
+recurse : force
+ $(Q)+for DIR in $(SUBDIRS) ; do \
+ [ -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
+recurse :
+ @# nothing to do
+endif
+
+# target to force remaking of (seemingly) independent targets
+force :