don't blow up in the sub Makefiles if menuselect.makeopts is not present. This
[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 ifneq ($(wildcard ../menuselect.makeopts),)
15   include ../menuselect.makeopts
16 endif
17
18 SELECTED_MODS:=$(filter-out $(MENUSELECT_PBX),$(patsubst %.c,%,$(wildcard pbx_*.c)))
19
20 MOC=$(QTDIR)/bin/moc
21 KDE_FLAGS=-I$(KDEDIR)/include -I$(KDEDIR)/include/kde -I$(QTDIR)/include
22 KDE_LIBS=-L$(KDEDIR)/lib -L$(QTDIR)/lib -lqt -lkdecore -lkdeui
23
24 KDE_CONSOLE_OBJS=pbx_kdeconsole_main.o pbx_kdeconsole.o 
25
26 MODS:=$(patsubst %,%.so,$(SELECTED_MODS))
27
28 all: $(MODS)
29
30 clean-depend:
31         rm -f .depend
32
33 clean: clean-depend
34         rm -f *.so *.o
35         rm -f ael/*.o
36
37 pbx_gtkconsole.o: pbx_gtkconsole.c
38         $(CC) $(CFLAGS) $(GTK_FLAGS) -c -o $@ $<
39
40 pbx_gtkconsole.so: pbx_gtkconsole.o
41         $(CC) $(SOLINK) -o $@ $< $(GTK_LIBS)
42
43 pbx_kdeconsole.o: pbx_kdeconsole.cc pbx_kdeconsole.moc
44         $(CXX) $(CFLAGS) $(KDE_FLAGS) -c -o $@ $<
45
46 pbx_kdeconsole_main.o: pbx_kdeconsole_main.cc pbx_kdeconsole.h
47         $(CXX) $(CFLAGS) $(KDE_FLAGS) -c -o $@ $<
48
49 pbx_kdeconsole.so: $(KDE_CONSOLE_OBJS)
50         $(CC) $(SOLINK) -o $@ $(KDE_CONSOLE_OBJS) $(KDE_LIBS)
51
52 pbx_dundi.so: pbx_dundi.o dundi-parser.o
53         $(CC) $(SOLINK) -o $@ $< dundi-parser.o $(Z_LIB)
54
55 pbx_dundi.o: pbx_dundi.c
56         $(CC) -c -o $@ $(CFLAGS) $(Z_INCLUDE) $<
57
58 pbx_ael.o: ael/aelflex.o ael/aelbison.o ../include/asterisk/ael_structs.h
59
60 pbx_ael.so: pbx_ael.o ael/aelbison.o ael/aelflex.o
61         $(CC) $(SOLINK) -o $@ pbx_ael.o ael/aelbison.o ael/aelflex.o
62
63 ael/aelflex.o: ael/ael_lex.c ../include/asterisk/ael_structs.h ael/ael.tab.h
64         $(CC) $(CFLAGS) -I. -c -o ael/aelflex.o ael/ael_lex.c
65
66 ael/aelbison.o: ael/ael.tab.c ael/ael.tab.h ../include/asterisk/ael_structs.h
67         $(CC) $(CFLAGS) -I. -c -o ael/aelbison.o ael/ael.tab.c
68
69 ael/ael_lex.c:
70         (cd ael; flex ael.flex; sed -i -e "/begin standard C headers/i#include \"asterisk.h\"" ael_lex.c)
71
72 ael/ael.tab.c ael/ael.tab.h:
73         (cd ael; bison -v -d ael.y)
74
75 %.moc : %.h
76         $(MOC) $< -o $@
77
78 %.so : %.o
79         $(CC) $(SOLINK) -o $@ $<
80
81 ifneq ($(wildcard .depend),)
82   include .depend
83 endif
84
85 install: all
86         for x in $(MODS); do $(INSTALL) -m 755 $$x $(DESTDIR)$(MODULES_DIR) ; done
87
88 uninstall:
89
90 depend: .depend
91
92 .depend:
93         ../build_tools/mkdep $(CFLAGS) `ls *.c`