menuselect: Tweak check for recently run configure.
[asterisk/asterisk.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 M_LIBS += $(LIBXML2_LIB)
61 ALL_TGTS += menuselect
62
63 all: $(ALL_TGTS)
64
65 $(OBJS) $(C_OBJS) $(N_OBJS) $(G_OBJS) $(M_OBJS): autoconfig.h menuselect.h
66
67 makeopts: makeopts.in
68 autoconfig.h: autoconfig.h.in
69
70 makeopts autoconfig.h:
71         @./configure $(CONFIGURE_SILENT)
72         @echo "****"
73         @echo "**** The configure script was just executed, so 'make' needs to be"
74         @echo "**** restarted."
75         @echo "****"
76         @exit 1
77
78 ifdef C_OBJS
79 menuselect_curses.o: CFLAGS+=$(C_INCLUDE)
80 cmenuselect: $(OBJS) $(C_OBJS)
81         $(CC) $(LDFLAGS) -o $@ $^ $(C_LIBS) $(LIBXML2_LIB)
82 else
83 cmenuselect:
84 endif
85
86 ifdef G_OBJS
87 menuselect_gtk.o: CFLAGS+=$(G_INCLUDE)
88 gmenuselect: $(OBJS) $(G_OBJS)
89         $(CC) $(LDFLAGS) -o $@ $^ $(G_LIBS) $(LIBXML2_LIB)
90 else
91 gmenuselect:
92 endif
93
94 ifdef N_OBJS
95 menuselect_newt.o: CFLAGS+=$(N_INCLUDE)
96 nmenuselect: $(OBJS) $(N_OBJS)
97         $(CC) $(LDFLAGS) -o $@ $^ $(N_LIBS) $(LIBXML2_LIB)
98 else
99 nmenuselect:
100 endif
101
102 menuselect.o: CFLAGS+=$(LIBXML2_INCLUDE)
103
104 menuselect: $(OBJS) $(M_OBJS)
105         $(CC) $(LDFLAGS) -o $@ $^ $(M_LIBS)
106
107 test: menuselect
108         (cd test; ../$< menuselect.makeopts)
109
110 ctest: cmenuselect
111         (cd test; ../$< menuselect.makeopts)
112
113 gtest: gmenuselect
114         (cd test; ../$< menuselect.makeopts)
115
116 ntest: nmenuselect
117         (cd test; ../$< menuselect.makeopts)
118
119 clean:
120         rm -f menuselect cmenuselect gmenuselect nmenuselect $(OBJS) $(M_OBJS) $(C_OBJS) $(G_OBJS) $(N_OBJS)
121
122 dist-clean: distclean
123
124 distclean: clean
125         rm -f autoconfig.h config.status config.log makeopts
126         rm -rf autom4te.cache