Import menuselect r1110
[dahdi/tools.git] / menuselect / Makefile
1 #
2 # Asterisk -- A telephony toolkit for Linux.
3
4 # Makefile for Menuselect
5 #
6 # Copyright (C) 2005-2008, Digium, Inc.
7 #
8 # Russell Bryant <russell@digium.com>
9 #
10 # This program is free software, distributed under the terms of
11 # the GNU General Public License
12 #
13
14 # even though we could use '-include makeopts' here, use a wildcard
15 # lookup anyway, so that make won't try to build makeopts if it doesn't
16 # exist (other rules will force it to be built if needed)
17 ifneq ($(wildcard makeopts),)
18   include makeopts
19 endif
20
21 .PHONY: clean dist-clean distclean test ntest ctest gtest
22
23 # Basic set of sources and flags/libraries/includes
24 OBJS:=menuselect.o strcompat.o
25 CFLAGS+=-g -D_GNU_SOURCE -Wall
26
27 ifeq ($(MENUSELECT_DEBUG),yes)
28   CFLAGS += -DMENUSELECT_DEBUG
29 endif
30
31 ifdef NCURSES_LIB
32   C_OBJS += menuselect_curses.o
33   C_LIBS +=$(NCURSES_LIB)
34   C_INCLUDE += $(NCURSES_INCLUDE)
35   ALL_TGTS += cmenuselect
36 else
37   ifdef CURSES_LIB
38     C_OBJS += menuselect_curses.o
39     C_LIBS +=$(CURSES_LIB)
40     C_INCLUDE += $(CURSES_INCLUDE)
41     ALL_TGTS += cmenuselect
42   endif
43 endif
44
45 ifdef GTK2_LIB
46   G_OBJS += menuselect_gtk.o
47   G_LIBS += $(GTK2_LIB)
48   G_INCLUDE += $(GTK2_INCLUDE)
49   ALL_TGTS += gmenuselect
50 endif
51
52 ifdef NEWT_LIB
53   N_OBJS += menuselect_newt.o
54   N_LIBS += $(NEWT_LIB)
55   N_INCLUDE += $(NEWT_INCLUDE)
56   ALL_TGTS += nmenuselect
57 endif
58
59 M_OBJS += menuselect_stub.o
60 ALL_TGTS += menuselect
61
62 all: $(ALL_TGTS)
63
64 $(OBJS) $(C_OBJS) $(N_OBJS) $(G_OBJS) $(M_OBJS): autoconfig.h menuselect.h
65
66 makeopts autoconfig.h: autoconfig.h.in makeopts.in
67         @./configure $(CONFIGURE_SILENT)
68
69 $(ALL_TGTS): mxml/libmxml.a
70
71 ifdef C_OBJS
72 menuselect_curses.o: CFLAGS+=$(C_INCLUDE)
73 cmenuselect: $(OBJS) $(C_OBJS)
74         $(CC) $(LDFLAGS) -o $@ $^ $(C_LIBS)
75 else
76 cmenuselect:
77 endif
78
79 ifdef G_OBJS
80 menuselect_gtk.o: CFLAGS+=$(G_INCLUDE)
81 gmenuselect: $(OBJS) $(G_OBJS)
82         $(CC) $(LDFLAGS) -o $@ $^ $(G_LIBS)
83 else
84 gmenuselect:
85 endif
86
87 ifdef N_OBJS
88 menuselect_newt.o: CFLAGS+=$(N_INCLUDE)
89 nmenuselect: $(OBJS) $(N_OBJS)
90         $(CC) $(LDFLAGS) -o $@ $^ $(N_LIBS)
91 else
92 nmenuselect:
93 endif
94
95 menuselect: $(OBJS) $(M_OBJS)
96         $(CC) $(LDFLAGS) -o $@ $^ $(M_LIBS)
97
98 mxml/libmxml.a:
99         @if test ! -f mxml/Makefile ; then cd mxml && ./configure ; fi
100         @$(MAKE) -C mxml libmxml.a
101
102 test: menuselect
103         (cd test; ../$< menuselect.makeopts)
104
105 ctest: cmenuselect
106         (cd test; ../$< menuselect.makeopts)
107
108 gtest: gmenuselect
109         (cd test; ../$< menuselect.makeopts)
110
111 ntest: nmenuselect
112         (cd test; ../$< menuselect.makeopts)
113
114 clean:
115         rm -f menuselect cmenuselect gmenuselect nmenuselect $(OBJS) $(M_OBJS) $(C_OBJS) $(G_OBJS) $(N_OBJS)
116         @if test -f mxml/Makefile ; then $(MAKE) -C mxml clean ; fi
117
118 dist-clean: distclean
119
120 distclean: clean
121         @if test -f mxml/Makefile ; then $(MAKE) -C mxml distclean ; fi
122         rm -f autoconfig.h config.status config.log makeopts
123         rm -rf autom4te.cache