Merged revisions 74515 via svnmerge from
[asterisk/asterisk.git] / Makefile.rules
1 #
2 # Asterisk -- A telephony toolkit for Linux.
3
4 # Makefile rules
5 #
6 # Copyright (C) 2006, Digium, Inc.
7 #
8 # Kevin P. Fleming <kpfleming@digium.com>
9 #
10 # This program is free software, distributed under the terms of
11 # the GNU General Public License
12 #
13
14 # Each command is preceded by a short comment on what to do.
15 # Prefixing one or the other with @\# or @ or nothing makes the desired
16 # behaviour. ECHO_PREFIX prefixes the comment, CMD_PREFIX prefixes the command.
17
18 -include $(ASTTOPDIR)/makeopts
19
20 ifeq ($(NOISY_BUILD),)
21    ECHO_PREFIX=@
22    CMD_PREFIX=@
23 else
24    ECHO_PREFIX=@\# 
25    CMD_PREFIX=
26 endif
27
28 ifeq ($(findstring DONT_OPTIMIZE,$(MENUSELECT_CFLAGS)),)
29 # More GSM codec optimization
30 # Uncomment to enable MMXTM optimizations for x86 architecture CPU's
31 # which support MMX instructions.  This should be newer pentiums,
32 # ppro's, etc, as well as the AMD K6 and K7.  
33 #K6OPT=-DK6OPT
34
35 OPTIMIZE?=-O6
36 ASTCFLAGS+=$(OPTIMIZE)
37 endif
38
39 %.o: %.c
40         $(ECHO_PREFIX) echo "   [CC] $< -> $@"
41 ifeq ($(AST_DEVMODE),yes)
42         $(CMD_PREFIX) $(CC) -o $@ -c $< $(PTHREAD_CFLAGS) $(ASTCFLAGS) -MMD -MT $@ -MF .$(subst /,_,$@).d -MP
43 else
44         $(CMD_PREFIX) $(CC) -o $@ -c $< $(PTHREAD_CFLAGS) $(ASTCFLAGS)
45 endif
46
47 %.o: %.i
48         $(ECHO_PREFIX) echo "   [CC] $< -> $@"
49 ifeq ($(AST_DEVMODE),yes)
50         $(CMD_PREFIX) $(CC) -o $@ -c $< $(PTHREAD_CFLAGS) $(ASTCFLAGS) -MMD -MT $@ -MF .$(subst /,_,$@).d -MP
51 else
52         $(CMD_PREFIX) $(CC) -o $@ -c $< $(PTHREAD_CFLAGS) $(ASTCFLAGS)
53 endif
54
55 %.i: %.c
56         $(ECHO_PREFIX) echo "   [CC] $< -> $@"
57 ifeq ($(AST_DEVMODE),yes)
58         $(CMD_PREFIX) $(CC) -o $@ -E $< $(PTHREAD_CFLAGS) $(ASTCFLAGS) -MMD -MT $@ -MF .$(subst /,_,$@).d -MP
59 else
60         $(CMD_PREFIX) $(CC) -o $@ -E $< $(PTHREAD_CFLAGS) $(ASTCFLAGS)
61 endif
62
63 %.o: %.s
64         $(ECHO_PREFIX) echo "   [AS] $< -> $@"
65 ifeq ($(AST_DEVMODE),yes)
66         $(CMD_PREFIX) $(CC) -o $@ -c $< $(PTHREAD_CFLAGS) $(ASTCFLAGS) -MMD -MT $@ -MF .$(subst /,_,$@).d -MP
67 else
68         $(CMD_PREFIX) $(CC) -o $@ -c $< $(PTHREAD_CFLAGS) $(ASTCFLAGS)
69 endif
70
71 %.oo: %.cc
72         $(ECHO_PREFIX) echo "   [CXX] $< -> $@"
73 ifeq ($(AST_DEVMODE),yes)
74         $(CMD_PREFIX) $(CXX) -o $@ -c $< $(PTHREAD_CFLAGS) $(filter-out -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations,$(ASTCFLAGS)) -MMD -MT $@ -MF .$(subst /,_,$@).d -MP
75 else
76         $(CMD_PREFIX) $(CXX) -o $@ -c $< $(PTHREAD_CFLAGS) $(filter-out -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations,$(ASTCFLAGS))
77 endif
78
79 %.c: %.y
80         $(ECHO_PREFIX) echo "   [BISON] $< -> $@"
81         $(CMD_PREFIX) bison -o $@ -d --name-prefix=ast_yy $<
82
83 %.c: %.fl
84         $(ECHO_PREFIX) echo "   [FLEX] $< -> $@"
85         $(CMD_PREFIX) flex -o $@ --full $<
86
87 %.so: %.o
88         $(ECHO_PREFIX) echo "   [LD] $^ -> $@"
89         $(CMD_PREFIX) $(CC) $(STATIC_BUILD) -o $@ $(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK) $^ $(PTHREAD_LIBS) $(LIBS)
90
91 %.so: %.oo
92         $(ECHO_PREFIX) echo "   [LDXX] $^ -> $@"
93         $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(PTHREAD_CFLAGS) $(ASTLDFLAGS) $(SOLINK) $^ $(PTHREAD_LIBS) $(LIBS)
94
95 %.eo: %.o
96         $(ECHO_PREFIX) echo "   [EMBED] $< -> $@"
97         $(CMD_PREFIX) $(ASTTOPDIR)/build_tools/make_linker_eo_script $* > .$@.ld
98         $(CMD_PREFIX) $(LD) -r -T .$@.ld -o $@ $<
99         $(CMD_PREFIX) rm -f .$@.ld
100
101 %.eoo: %.o
102         $(ECHO_PREFIX) echo "   [EMBED] $< -> $@"
103         $(CMD_PREFIX) $(ASTTOPDIR)/build_tools/make_linker_eo_script $* > .$@.ld
104         $(CMD_PREFIX) $(LD) -r -T .$@.ld -o $@ $<
105         $(CMD_PREFIX) rm -f .$@.ld
106
107 %: %.o
108         $(ECHO_PREFIX) echo "   [LD] $^ -> $@"
109         $(CMD_PREFIX) $(CXX) $(STATIC_BUILD) -o $@ $(PTHREAD_CFLAGS) $(ASTLDFLAGS) $^ $(PTHREAD_LIBS) $(LIBS)