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