* configure.in: added missing mcs51 in status output
[fw/sdcc] / device / lib / pic16 / Makefile.rules
1 ###########################################################
2 ### Makefile.rules for the GNU PIC Library
3 ###
4 ### Copyright (C) 2005 by Raphael Neider <rneider AT web.de>
5 ###
6 ### The GNU PIC Library was originally designed and
7 ### implemented by
8 ###     Vangelis Rokas <vrokas@otenet.gr>
9 ###
10 ### It is currently maintained by
11 ###     Raphael Neider <rneider AT web.de>
12 ###
13 ### This file may be distributed under the terms of the the
14 ### GNU General Public License (GPL). See COPYING for details.
15 ###
16 ### $Id$
17 ###
18
19 # update dependencies
20 $(top_builddir)/$(builddir)/%.d : %.c
21 ifndef SILENT
22         @echo "[  CPP  ] ==> $(patsubst $(top_builddir)/%,%,$@)"
23 endif
24         $(Q)$(CPP) $(CPPFLAGS) -o "$@" "$<"
25
26 # assemble
27 $(top_builddir)/$(builddir)/%.o : %.S
28 ifndef SILENT
29         @echo "[  AS   ] ==> $(patsubst $(top_builddir)/%,%,$@)"
30 endif
31         $(Q)$(AS) $(ASFLAGS) -o "$@" -c "$<"
32
33 # compile
34 $(top_builddir)/$(builddir)/%.o : %.c
35 ifndef SILENT
36         @echo "[  CC   ] ==> $(patsubst $(top_builddir)/%,%,$@)"
37 endif
38         $(Q)$(CC) $(CFLAGS) -o "$@" -c "$<"
39
40 # create library
41 ifneq (,$(strip $(LIB_O)))
42 %.lib : $(LIB_O)
43 ifndef SILENT
44         @echo "[  LIB  ] $(patsubst $(top_builddir)/%,%,$@) <== $(patsubst $(top_builddir)/$(builddir)/%,%,$^)"
45 endif
46         $(Q)$(RM) "$@"; $(LIB) $(LIBFLAGS) "$@" $^
47 else
48 %.lib : recurse
49 ifndef SILENT
50         @echo "[  LIB  ] $(patsubst $(top_builddir)/%,%,$@) <== **/*.o"
51         $(Q)$(RM) "$@"; LIB_O=`find "$(top_builddir)/$(builddir)" -name "*.o"`; echo $${LIB_O}; [ "x$${LIB_O}" = "x" ] || $(LIB) $(LIBFLAGS) "$@" $${LIB_O}
52 else
53         $(Q)$(RM) "$@"; LIB_O=`find "$(top_builddir)/$(builddir)" -name "*.o"`;                 [ "x$${LIB_O}" = "x" ] || $(LIB) $(LIBFLAGS) "$@" $${LIB_O}
54 endif
55 endif
56
57 .PHONY : recurse force
58
59 # build sub-directories
60 ifneq (,$(strip $(SUBDIRS)))
61 recurse : force
62         $(Q)+for DIR in $(SUBDIRS) ; do \
63                 $(GREP) "^$${ARCH}$$" "$(srcdir)/$${DIR}.ignore" &> /dev/null || ( \
64                         $(MKDIR) "$(top_builddir)/$(builddir)/$${DIR}"; \
65                         $(MAKE) -C "$${DIR}" builddir="$(builddir)/$${DIR}" $(MAKECMDGOALS); \
66                 ) || exit 1; \
67         done
68 else
69 recurse :
70         @# nothing to do
71 endif
72
73 # target to force remaking of (seemingly) independent targets
74 force :