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

Last change on this file since 129 was 129, checked in by pooh, 19 years ago

* empty log message *

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