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