use LDFLAGS and LIBS properly, and allow dependencies to provide LDFLAGS if needed...
[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 ifeq ($(NOISY_BUILD),)
15
16 define ast_make_o_c
17 $(1): $(2)
18         @echo "   [CC] $$< -> $$@"
19         @$$(CC) -o $$@ -c $$< $$(CFLAGS)
20 endef
21
22 define ast_make_oo_cc
23 $(1): $(2)
24         @echo "   [CXX] $$< -> $$@"
25         @$$(CXX) -o $$@ -c $$< $$(CFLAGS)
26 endef
27
28 define ast_make_c_y
29 $(1): $(2)
30         @echo "   [BISON] $$< -> $$@"
31         @bison -o $$@ -d --name-prefix=ast_yy $$<
32 endef
33
34 define ast_make_c_fl
35 $(1): $(2)
36         @echo "   [FLEX] $$< -> $$@"
37         @flex -o $$@ --full $$<
38 endef
39
40 define ast_make_so_o
41 $(1): $(2)
42         @echo "   [LD] $$^ -> $$@"
43         @$$(CC) -o $$@ $$(LDFLAGS) $$(SOLINK) $$^ $$(LIBS)
44 endef
45
46 define ast_make_so_oo
47 $(1): $(2)
48         @echo "   [LDXX] $$^ -> $$@"
49         @$$(CXX) -o $$@ $$(LDFLAGS) $$(SOLINK) $$^ $$(LIBS)
50 endef
51
52 define ast_make_a_o
53 $(1): $(2)
54         @echo "   [AR] $$^ -> $$@"
55         @$$(AR) cr $$@ $$^
56         @$$(RANLIB) $$@
57 endef
58
59 define ast_make_final
60 $(1): $(2)
61         @echo "   [LD] $$^ -> $$@"
62         @$$(CC) -o $$@ $$(LDFLAGS) $$^ $$(LIBS)
63 endef
64
65 define ast_make_final_host
66 $(1): $(2)
67         @echo "   [LD] $$^ -> $$@"
68         @$$(HOST_CC) -o $$@ $$(CFLAGS) $$(LDFLAGS) $$^ $$(LIBS)
69 endef
70
71 else
72
73 define ast_make_o_c
74 $(1): $(2)
75         $$(CC) -o $$@ -c $$< $$(CFLAGS)
76 endef
77
78 define ast_make_oo_cc
79 $(1): $(2)
80         $$(CXX) -o $$@ -c $$< $$(CFLAGS)
81 endef
82
83 define ast_make_c_y
84 $(1): $(2)
85         bison -o $$@ -d --name-prefix=ast_yy $$<
86 endef
87
88 define ast_make_c_fl
89 $(1): $(2)
90         flex -o $$@ --full $$<
91 endef
92
93 define ast_make_so_o
94 $(1): $(2)
95         $$(CC) -o $$@ $$(LDFAGS) $$(SOLINK) $$^ $$(LIBS)
96 endef
97
98 define ast_make_so_oo
99 $(1): $(2)
100         $$(CXX) -o $$@ $$(LDFLAGS) $$(SOLINK) $$^ $$(LIBS)
101 endef
102
103 define ast_make_a_o
104 $(1): $(2)
105         $$(AR) cr $$@ $$^
106         $$(RANLIB) $$@
107 endef
108
109 define ast_make_final
110 $(1): $(2)
111         $$(CC) -o $$@ $$(LDFLAGS) $$^ $$(LIBS)
112 endef
113
114 define ast_make_final_host
115 $(1): $(2)
116         $$(HOST_CC) -o $$@ $$(CFLAGS) $$(LDFLAGS) $$^ $$(LIBS)
117 endef
118
119 endif
120
121 $(eval $(call ast_make_o_c,%.o,%.c))
122
123 $(eval $(call ast_make_oo_cc,%.oo,%.cc))
124
125 $(eval $(call ast_make_so_o,%.so,%.o))
126
127 $(eval $(call ast_make_so_oo,%.so,%.oo))
128
129 $(eval $(call ast_make_final,%,%.o))
130
131 $(eval $(call ast_make_c_y,%.c,%.y))
132
133 $(eval $(call ast_make_c_fl,%.c,%.fl))