- updated Makefiles ( gcc-3.0 specific options, arch. specific defines section,
[sip-router] / Makefile.rules
1 #
2 # $Id$
3 #
4 #
5 # common Makefile rules, included by main Makefile & the  modules
6 #
7
8 #
9 # Uses: NAME, ALLDEP, CC, CFLAGS, DEFS, LIBS, MKDEP, auto_gen, depends, objs,
10 # extra_objs, static_modules, static_modules_path
11 # (all this must  be defined previously!,  see Makefile.defs & Makefile)
12 #
13
14
15
16 #implicit rules
17 %.o:%.c  $(ALLDEP)
18         $(CC) $(CFLAGS) $(DEFS) -c $< -o $@
19
20 %.d: %.c $(ALLDEP)
21         @set -e; $(MKDEP) $< \
22         |  sed 's#\($*\)\.o[ :]*#\1.o $@ : #g' > $@; \
23         [ -s $@ ] || rm -f $@
24
25
26 # normal rules
27 $(NAME): $(objs) $(ALLDEP)
28         $(LD) $(LDFLAGS) $(objs) $(extra_objs) $(LIBS) -o $(NAME) 
29
30
31 .PHONY: all
32 all: $(NAME) modules
33
34 .PHONY: dep
35 dep: $(depends)
36
37 .PHONY: static
38 static: $(objs)
39
40 .PHONY: clean
41 clean:
42         -@rm -f $(objs) $(NAME) 2>/dev/null
43         -@for r in $(modules) $(static_modules_path); do \
44                 $(MAKE) -C $$r clean ; \
45         done
46
47
48
49 .PHONY: proper
50 .PHONY: distclean
51 .PHONY: realclean
52 proper realclean distclean: clean 
53         -@rm -f $(depends) 2>/dev/null
54         -@for r in $(modules); do $(MAKE) -C $$r proper ; done
55
56 .PHONY: mantainer-cleaan
57 mantainer-clean: distclean
58         -rm -f $(auto_gen) TAGS tags *.dbg .*.swp
59         -@for r in $(modules); do $(MAKE) -C $$r mantainer-clean ; done
60
61 .PHONY: TAGS
62 TAGS:
63         $(MKTAGS) 
64         
65 ifeq (,$(MAKECMDGOALS))
66 include $(depends)
67 endif
68 ifneq (,$(filter-out clean proper distclean realclean mantainer-clean TAGS \
69                 tar modules, $(MAKECMDGOALS)))
70 include $(depends)
71 endif