a82fc99be2d61fe4da967739ea8c70bceaba9be7
[asterisk/asterisk.git] / Makefile.moddir_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 define module_o_template
15 $(1).o: $(1).c
16         $$(CC) -c -o $$@ $$< $$(CFLAGS) $$(MENUSELECT_OPTS_$(1):%=-D%) $(foreach dep,$(MENUSELECT_DEPENDS_$(1)),$$(value $(dep)_INCLUDE))
17 endef
18
19 define module_so_template
20 $(1).so: $(1).o
21         $$(CC) $$(SOLINK) -o $$@ $$^ $(foreach dep,$(MENUSELECT_DEPENDS_$(1)),$$(value $(dep)_LIB))
22 endef
23
24 %.o: %.c
25         $(CC) -c -o $@ $< $(CFLAGS)
26
27 $(foreach mod,$(SELECTED_MODS),$(eval $(call module_o_template,$(mod))))
28
29 $(foreach mod,$(SELECTED_MODS),$(eval $(call module_so_template,$(mod))))
30
31 .PHONY: clean clean-depend depend uninstall _all
32
33 _all: $(SELECTED_MODS:%=%.so)
34
35 clean-depend::
36         rm -f .depend
37
38 clean:: clean-depend
39         rm -f *.so *.o
40
41 install:: all
42         for x in $(SELECTED_MODS:%=%.so); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
43
44 uninstall::
45
46 ifneq ($(wildcard .depend),)
47  include .depend
48 endif
49
50 depend: .depend
51
52 .depend:
53         ../build_tools/mkdep $(CFLAGS) `ls *.c`