move tools used during build into build_tools subdirectory
[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
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_math.o \
18          func_groupcount.o \
19          func_strings.o \
20          func_cdr.o \
21          func_logic.o \
22          func_env.o \
23          func_db.o \
24          func_timeout.o \
25          func_language.o \
26
27 STANDALONE_FUNCS=$(filter-out $(BUILTINS),$(patsubst %.c,%.o,$(wildcard func*.c)))
28
29 FUNCS+=$(STANDALONE_FUNCS:.o=.so)
30
31 FUNC_STRUCTS=$(shell grep 'struct ast_custom_function' $(BUILTINS:.o=.c) | awk '{print $$3};')
32
33 CFLAGS+=-fPIC
34
35 FUNC_SOURCES=$(BUILTINS:.o=.c)
36
37 all: $(FUNCS)
38
39 clean:
40         rm -f *.so *.o .depend pbx_functions.h
41
42 %.so : %.o
43         $(CC) $(SOLINK) -o $@ $<
44
45 #$(BUILTINS) : CFLAGS += -DBUILTIN_FUNC
46
47 pbx_functions.h: $(BUILTINS:.o=.c)
48         @echo "/* Automatically generated - do not edit */" > $@
49         @for f in $(FUNC_SOURCES); do echo "#include \"$$f\"" >> $@; done
50         @echo "static struct ast_custom_function *builtins[] = {" >> $@
51         @for f in $(FUNC_STRUCTS); do echo "&$$f," >> $@; done
52         @echo "};" >> $@
53
54 pbx_functions.so: pbx_functions.o #$(BUILTINS)
55         $(CC) $(SOLINK) -o $@ $<
56
57 install: all
58         for x in $(FUNCS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
59
60 ifneq ($(wildcard .depend),)
61 include .depend
62 endif
63
64 depend: .depend
65
66 .depend: pbx_functions.h
67         ../build_tools/mkdep $(CFLAGS) `ls *.c`
68
69 env:
70         env