summaryrefslogtreecommitdiff
path: root/menuselect/Makefile
blob: d949efd5597d9a5a1bfaa369580d207f12f0c800 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#
# Asterisk -- A telephony toolkit for Linux.
#
# Makefile for Menuselect
#
# Copyright (C) 2005-2008, Digium, Inc.
#
# Russell Bryant <russell@digium.com>
#
# This program is free software, distributed under the terms of
# the GNU General Public License
#

# even though we could use '-include makeopts' here, use a wildcard
# lookup anyway, so that make won't try to build makeopts if it doesn't
# exist (other rules will force it to be built if needed)
ifneq ($(wildcard makeopts),)
  include makeopts
endif

.PHONY: clean dist-clean distclean test ntest ctest gtest

# Basic set of sources and flags/libraries/includes
OBJS:=menuselect.o strcompat.o
CFLAGS+=-g -D_GNU_SOURCE -Wall

ifneq ($(findstring dragonfly,$(OSARCH)),)
  CFLAGS += -isystem /usr/local/include
else ifneq ($(findstring netbsd,$(OSARCH)),)
  CFLAGS += -isystem /usr/pkg/include
else ifneq ($(findstring bsd,$(OSARCH)),)
  CFLAGS += -isystem /usr/local/include
endif

ifeq ($(MENUSELECT_DEBUG),yes)
  CFLAGS += -DMENUSELECT_DEBUG
endif

ifdef NCURSES_LIB
  C_OBJS += menuselect_curses.o
  C_LIBS +=$(NCURSES_LIB)
  C_INCLUDE += $(NCURSES_INCLUDE)
  ALL_TGTS += cmenuselect
else
  ifdef CURSES_LIB
    C_OBJS += menuselect_curses.o
    C_LIBS +=$(CURSES_LIB)
    C_INCLUDE += $(CURSES_INCLUDE)
    ALL_TGTS += cmenuselect
  endif
endif

ifdef GTK2_LIB
  G_OBJS += menuselect_gtk.o
  G_LIBS += $(GTK2_LIB)
  G_INCLUDE += $(GTK2_INCLUDE)
  ALL_TGTS += gmenuselect
endif

ifdef NEWT_LIB
  N_OBJS += menuselect_newt.o
  N_LIBS += $(NEWT_LIB)
  N_INCLUDE += $(NEWT_INCLUDE)
  ALL_TGTS += nmenuselect
endif

M_OBJS += menuselect_stub.o
M_LIBS += $(LIBXML2_LIB)
ALL_TGTS += menuselect

all: $(ALL_TGTS)

$(OBJS) $(C_OBJS) $(N_OBJS) $(G_OBJS) $(M_OBJS): autoconfig.h menuselect.h

makeopts: configure
	@./configure $(CONFIGURE_SILENT)
	@echo "****"
	@echo "**** The configure script was just executed, so 'make' needs to be"
	@echo "**** restarted."
	@echo "****"
	@exit 1

ifdef C_OBJS
menuselect_curses.o: CFLAGS+=$(C_INCLUDE)
cmenuselect: $(OBJS) $(C_OBJS)
	$(CC) $(LDFLAGS) -o $@ $^ $(C_LIBS) $(LIBXML2_LIB)
else
cmenuselect:
endif

ifdef G_OBJS
menuselect_gtk.o: CFLAGS+=$(G_INCLUDE)
gmenuselect: $(OBJS) $(G_OBJS)
	$(CC) $(LDFLAGS) -o $@ $^ $(G_LIBS) $(LIBXML2_LIB)
else
gmenuselect:
endif

ifdef N_OBJS
menuselect_newt.o: CFLAGS+=$(N_INCLUDE)
nmenuselect: $(OBJS) $(N_OBJS)
	$(CC) $(LDFLAGS) -o $@ $^ $(N_LIBS) $(LIBXML2_LIB)
else
nmenuselect:
endif

menuselect.o: CFLAGS+=$(LIBXML2_INCLUDE)

menuselect: $(OBJS) $(M_OBJS)
	$(CC) $(LDFLAGS) -o $@ $^ $(M_LIBS)

test: menuselect
	(cd test; ../$< menuselect.makeopts)

ctest: cmenuselect
	(cd test; ../$< menuselect.makeopts)

gtest: gmenuselect
	(cd test; ../$< menuselect.makeopts)

ntest: nmenuselect
	(cd test; ../$< menuselect.makeopts)

clean:
	rm -f menuselect cmenuselect gmenuselect nmenuselect $(OBJS) $(M_OBJS) $(C_OBJS) $(G_OBJS) $(N_OBJS)

dist-clean: distclean

distclean: clean
	rm -f autoconfig.h config.status config.log makeopts
	rm -rf autom4te.cache