add support for per-module version numbers
[asterisk/asterisk.git] / funcs / Makefile
1 #
2 # Asterisk -- A telephony toolkit for Linux.
3
4 # Makefile for dialplan functions
5 #
6 # Copyright (C) 2005, 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 FUNCS=pbx_functions.so
15
16 BUILTINS=func_md5.o \
17          func_groupcount.o \
18          func_strings.o \
19          func_cdr.o \
20          func_logic.o \
21          func_env.o \
22          func_db.o \
23          func_timeout.o \
24          func_language.o \
25
26 STANDALONE_FUNCS=$(filter-out $(BUILTINS),$(patsubst %.c,%.o,$(wildcard func*.c)))
27
28 FUNCS+=$(STANDALONE_FUNCS:.o=.so)
29
30 FUNC_STRUCTS=$(shell grep 'struct ast_custom_function' $(BUILTINS:.o=.c) | awk '{print $$3};')
31
32 CFLAGS+=-fPIC
33
34 FUNC_SOURCES=$(BUILTINS:.o=.c)
35
36 all: $(FUNCS)
37
38 clean:
39         rm -f *.so *.o .depend pbx_functions.h
40
41 %.so : %.o
42         $(CC) $(SOLINK) -o $@ $<
43
44 #$(BUILTINS) : CFLAGS += -DBUILTIN_FUNC
45
46 pbx_functions.h: $(BUILTINS:.o=.c)
47         @echo "/* Automatically generated - do not edit */" > $@
48         @for f in $(FUNC_SOURCES); do echo "#include \"$$f\"" >> $@; done
49         @echo "static struct ast_custom_function *builtins[] = {" >> $@
50         @for f in $(FUNC_STRUCTS); do echo "&$$f," >> $@; done
51         @echo "};" >> $@
52
53 pbx_functions.so: pbx_functions.o #$(BUILTINS)
54         $(CC) $(SOLINK) -o $@ $<
55
56 install: all
57         for x in $(FUNCS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
58
59 ifneq ($(wildcard .depend),)
60 include .depend
61 endif
62
63 depend: .depend
64
65 .depend: pbx_functions.h
66         ../mkdep $(CFLAGS) `ls *.c`
67
68 env:
69         env