- convert the 'uninstall' target to use separate targets to process each
[asterisk/asterisk.git] / pbx / Makefile
1 #
2 # Asterisk -- A telephony toolkit for Linux.
3
4 # Makefile for PBX modules
5 #
6 # Copyright (C) 1999-2006, Digium, Inc.
7 #
8 # Mark Spencer <markster@digium.com>
9 #
10 # This program is free software, distributed under the terms of
11 # the GNU General Public License
12 #
13
14 .PHONY: clean clean-depend all depend uninstall
15
16 ifneq ($(wildcard ../menuselect.makeopts),)
17   include ../menuselect.makeopts
18 endif
19
20 SELECTED_MODS:=$(filter-out $(MENUSELECT_PBX),$(patsubst %.c,%,$(wildcard pbx_*.c)))
21
22 MOC=$(QTDIR)/bin/moc
23 KDE_FLAGS=-I$(KDEDIR)/include -I$(KDEDIR)/include/kde -I$(QTDIR)/include
24 KDE_LIBS=-L$(KDEDIR)/lib -L$(QTDIR)/lib -lqt -lkdecore -lkdeui
25
26 KDE_CONSOLE_OBJS=pbx_kdeconsole_main.o pbx_kdeconsole.o 
27
28 MODS:=$(patsubst %,%.so,$(SELECTED_MODS))
29
30 all: $(MODS)
31
32 clean-depend:
33         rm -f .depend
34
35 clean: clean-depend
36         rm -f *.so *.o
37         rm -f ael/*.o
38
39 pbx_gtkconsole.o: pbx_gtkconsole.c
40         $(CC) $(CFLAGS) $(GTK_FLAGS) -c -o $@ $<
41
42 pbx_gtkconsole.so: pbx_gtkconsole.o
43         $(CC) $(SOLINK) -o $@ $< $(GTK_LIBS)
44
45 pbx_kdeconsole.o: pbx_kdeconsole.cc pbx_kdeconsole.moc
46         $(CXX) $(CFLAGS) $(KDE_FLAGS) -c -o $@ $<
47
48 pbx_kdeconsole_main.o: pbx_kdeconsole_main.cc pbx_kdeconsole.h
49         $(CXX) $(CFLAGS) $(KDE_FLAGS) -c -o $@ $<
50
51 pbx_kdeconsole.so: $(KDE_CONSOLE_OBJS)
52         $(CC) $(SOLINK) -o $@ $(KDE_CONSOLE_OBJS) $(KDE_LIBS)
53
54 pbx_dundi.so: pbx_dundi.o dundi-parser.o
55         $(CC) $(SOLINK) -o $@ $< dundi-parser.o $(Z_LIB)
56
57 pbx_dundi.o: pbx_dundi.c
58         $(CC) -c -o $@ $(CFLAGS) $(Z_INCLUDE) $<
59
60 pbx_ael.o: ael/aelflex.o ael/aelbison.o ../include/asterisk/ael_structs.h
61
62 pbx_ael.so: pbx_ael.o ael/aelbison.o ael/aelflex.o
63         $(CC) $(SOLINK) -o $@ pbx_ael.o ael/aelbison.o ael/aelflex.o
64
65 ael/aelflex.o: ael/ael_lex.c ../include/asterisk/ael_structs.h ael/ael.tab.h
66         $(CC) $(CFLAGS) -I. -c -o ael/aelflex.o ael/ael_lex.c
67
68 ael/aelbison.o: ael/ael.tab.c ael/ael.tab.h ../include/asterisk/ael_structs.h
69         $(CC) $(CFLAGS) -I. -c -o ael/aelbison.o ael/ael.tab.c
70
71 ael/ael_lex.c:
72         (cd ael; flex ael.flex; sed -i -e "/begin standard C headers/i#include \"asterisk.h\"" ael_lex.c)
73
74 ael/ael.tab.c ael/ael.tab.h:
75         (cd ael; bison -v -d ael.y)
76
77 %.moc : %.h
78         $(MOC) $< -o $@
79
80 %.so : %.o
81         $(CC) $(SOLINK) -o $@ $<
82
83 ifneq ($(wildcard .depend),)
84   include .depend
85 endif
86
87 install: all
88         for x in $(MODS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
89
90 uninstall:
91
92 depend: .depend
93
94 .depend:
95         ../build_tools/mkdep $(CFLAGS) `ls *.c`