source: to-imperative/trunk/rules.mk @ 1233

Last change on this file since 1233 was 842, checked in by pooh, 17 years ago
  • Reorganized samples and tests making process.
  • Added new make targets samples', tests' and `check'.
  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 2.0 KB
Line 
1TOPDIR ?= .
2CURRENTDIR ?= .
3DISTLIST ?= dist.list
4
5-include $(TOPDIR)/config.mk
6
7ifndef NODEPS
8
9%.dep: %.c
10        @echo Generating dependencies for $<
11        @$(CC) $(CPPFLAGS) -M $< | \
12          sed 's/\($*\)\.o[ :]*/\1.o \1.dbg.o $@ : /g' > $@;
13
14%.dep: %.cc
15        @echo Generating dependencies for $<
16        @echo ifndef NODEPS > $@
17        @$(CXX) $(CPPFLAGS) -M $< | \
18          sed 's?$(notdir $*)\.o[ :]*?$*.o $*.dbg.o $@ : ?g' >> $@;
19        @echo endif >> $@
20
21endif
22
23#%.o: %.rf Makefile $(TOPDIR)/config.mk
24#       $(RFPC) $<
25
26%.o: %.c Makefile $(TOPDIR)/config.mk
27        $(CC) $(CPPFLAGS) $(WFLAGS) $(OFLAGS) $(CFLAGS) -c -o $@ $<
28
29%.o: %.cc Makefile $(TOPDIR)/config.mk
30        $(CXX) $(CPPFLAGS) $(WFLAGS) $(OFLAGS) $(CFLAGS) $(CXXFLAGS) -c -o $@ $<
31
32%.dbg.o: %.c Makefile $(TOPDIR)/config.mk
33        $(CC) $(CPPFLAGS) $(WFLAGS) $(DFLAGS) $(CFLAGS) -c -o $@ $<
34
35%.dbg.o: %.cc Makefile $(TOPDIR)/config.mk
36        $(CXX) $(CPPFLAGS) $(WFLAGS) $(DFLAGS) $(CFLAGS) $(CXXFLAGS) -c -o $@ $<
37
38DO_SUBDIRS=$(foreach dir,$(SUBDIRS),$(MAKE) -C $(dir) \
39  TOPDIR=$(TOPDIR)/.. INSTALL_DIR=$(INSTALL_DIR) $@ \
40  CURRENTDIR=$(CURRENTDIR)/$(dir) DISTNAME="$(DISTNAME)" \
41  || exit 1; )
42
43DO_SUBDIRS_NODEPS=$(foreach dir,$(SUBDIRS),$(MAKE) -C $(dir) NODEPS=yes \
44  TOPDIR=$(TOPDIR)/.. INSTALL_DIR=$(INSTALL_DIR) $@ \
45  CURRENTDIR=$(CURRENTDIR)/$(dir) DISTNAME="$(DISTNAME)" \
46  || exit 1; )
47
48all::
49        $(DO_SUBDIRS)
50
51clean::
52        $(DO_SUBDIRS_NODEPS)
53        rm -f core
54
55distclean:: clean
56        $(DO_SUBDIRS_NODEPS)
57
58dist::
59        if [ -f "$(DISTLIST)" ]; then rm $(DISTLIST); fi
60        $(DO_SUBDIRS_NODEPS)
61        echo $(foreach file, $(DISTFILES), $(CURRENTDIR)/$(file)) \
62          >>$(TOPDIR)/$(DISTLIST)
63
64snapshot::
65        if [ -f "$(DISTLIST)" ]; then rm $(DISTLIST); fi
66        $(DO_SUBDIRS_NODPES)
67        echo $(foreach file, $(DISTFILES), $(CURRENTDIR)/$(file)) \
68          >>$(TOPDIR)/$(DISTLIST)
69
70docs:: all
71        $(DO_SUBDIRS)
72
73samples:: all
74        $(DO_SUBDIRS)
75
76tests:: all
77        $(DO_SUBDIRS)
78
79check:: tests
80        $(DO_SUBDIRS)
81
82publish:: all
83        $(DO_SUBDIRS)
84
85install:: all
86        $(DO_SUBDIRS)
87
88uninstall::
89        $(DO_SUBDIRS)
90
91.PHONY: all install uninstall clean dist snapshot distclean
92.PHONY: samples tests check
Note: See TracBrowser for help on using the repository browser.