2
LIBTCL = @TCL_LIB_FLAG@
8
CPPFLAGS = -D_GNU_SOURCE -I/usr/include/slang @CPPFLAGS@
12
TAG = r$(subst .,-,$(VERSION))
15
PYTHONVERS = $(shell pyversions --supported; py3versions --supported)
16
WHIPTCLSO = @WHIPTCLSO@
18
PROGS = test whiptail $(WHIPTCLSO) testgrid testtree showchars showkey
19
TESTOBJS = test.o testgrid.o testtree.o showchars.o showkey.o
20
NDIALOGOBJS = whiptail.o dialogboxes.o
21
WHIPTCLOBJS = shared/whiptcl.o shared/dialogboxes.o
23
LIBNEWTSH = libnewt.so.$(VERSION)
24
LIBNEWTSONAME = libnewt.so.$(SONAME)
25
LIBOBJS = newt.o button.o form.o checkbox.o entry.o label.o listbox.o \
26
scrollbar.o textbox.o scale.o grid.o windows.o buttonbar.o \
30
SHLIBFLAGS= -Wl,--version-script,newt.0.52.ver -Wl,-soname,$(LIBNEWTSONAME)
38
includedir = @includedir@
39
exec_prefix = @exec_prefix@
43
datarootdir = @datarootdir@
45
man1dir = $(mandir)/man1
46
pkgconfigdir = $(libdir)/pkgconfig
47
instroot ?= $(DESTDIR)
49
#--------------------------------------
51
SOURCES = $(subst .o,.c,$(TESTOBJS) $(NDIALOGOBJS) $(LIBOBJS))
54
SHAREDOBJS = $(patsubst %,$(SHAREDDIR)/%, $(LIBOBJS))
56
ifeq (.depend,$(wildcard .depend))
59
TARGET=depend $(PROGS)
62
all: $(TARGET) _snackmodule.so whiptcl.so
64
test: test.o $(LIBNEWT)
65
$(CC) -g -o test test.o $(LIBNEWT) $(LDFLAGS) $(LIBS)
67
testgrid: testgrid.o $(LIBNEWT)
68
$(CC) -g -o testgrid testgrid.o $(LIBNEWT) $(LDFLAGS) $(LIBS)
70
testtree: testtree.o $(LIBNEWT)
71
$(CC) -g -o testtree testtree.o $(LIBNEWT) $(LDFLAGS) $(LIBS)
73
showchars: showchars.o $(LIBNEWT)
74
$(CC) -g -o showchars showchars.o $(LIBNEWT) $(LDFLAGS) $(LIBS)
76
showkey: showkey.o $(LIBNEWT)
77
$(CC) -g -o showkey showkey.o $(LIBNEWT) $(LDFLAGS) $(LIBS)
79
_snackmodule.so: snackmodule.c $(LIBNEWTSH)
80
@[ -n "$(PYTHONVERS)" ] && for ver in $(PYTHONVERS); do \
81
pyconfig=$$ver-config; \
82
if ! $$pyconfig --cflags > /dev/null 2>&1 && \
83
python-config --cflags > /dev/null 2>&1; then \
84
echo $$pyconfig not found, using python-config; \
85
pyconfig=python-config; \
88
PCFLAGS=`$$pyconfig --cflags`; \
89
PIFLAGS=`$$pyconfig --includes`; \
90
PLDFLAGS=`$$pyconfig --ldflags`; \
91
PLFLAGS=`$$pyconfig --libs`; \
92
echo $(CC) $(SHCFLAGS) $(CPPFLAGS) $$PIFLAGS $$PCFLAGS -c -o $$ver/snackmodule.o snackmodule.c; \
93
$(CC) $(SHCFLAGS) $(CPPFLAGS) $$PIFLAGS $$PCFLAGS -c -o $$ver/snackmodule.o snackmodule.c; \
94
echo $(CC) --shared $$PLDFLAGS $$PLFLAGS $(LDFLAGS) -o $$ver/_snackmodule.so $$ver/snackmodule.o -L. -lnewt $(LIBS); \
95
$(CC) --shared $$PLDFLAGS $$PLFLAGS $(LDFLAGS) -o $$ver/_snackmodule.so $$ver/snackmodule.o -L. -lnewt $(LIBS); \
99
whiptail: $(NDIALOGOBJS) $(LIBNEWTSH)
100
$(CC) -g -o whiptail $(NDIALOGOBJS) -L. $(LDFLAGS) -lnewt $(LIBS) -lpopt
102
whiptcl.so: $(WHIPTCLOBJS) $(LIBNEWTSH)
103
$(CC) -shared $(SHCFLAGS) $(LDFLAGS) -o whiptcl.so $(WHIPTCLOBJS) -L. -lnewt $(LIBTCL) -lpopt $(LIBS)
105
$(LIBNEWT): $(LIBOBJS)
108
newt.o $(SHAREDDIR)/newt.o: newt.c Makefile
114
rm -f $(PROGS) *.o $(LIBNEWT) core $(LIBNEWTSH) \
115
$(SHAREDDIR)/*.o *.so*
118
$(CPP) $(CFLAGS) $(CPPFLAGS) -M $(SOURCES) > .depend
121
mkdir -p $(SHAREDDIR)
123
sharedlib: $(LIBNEWTSH)
125
$(LIBNEWTSH): $(SHAREDDIR) $(SHAREDOBJS)
126
$(CC) -shared -o $(LIBNEWTSH) $(SHLIBFLAGS) $(SHAREDOBJS) $(LDFLAGS) $(LIBS)
127
ln -fs $(LIBNEWTSONAME) libnewt.so
128
ln -fs $(LIBNEWTSH) $(LIBNEWTSONAME)
130
$(SHAREDDIR)/%.o : %.c
131
$(CC) $(SHCFLAGS) -c $(CFLAGS) $(CPPFLAGS) -o $@ $<
133
install: $(LIBNEWT) install-sh whiptail
134
[ -d $(instroot)/$(bindir) ] || install -m 755 -d $(instroot)/$(bindir)
135
[ -d $(instroot)/$(libdir) ] || install -m 755 -d $(instroot)/$(libdir)
136
[ -d $(instroot)/$(includedir) ] || install -m 755 -d $(instroot)/$(includedir)
137
[ -d $(instroot)/$(man1dir) ] || install -m 755 -d $(instroot)/$(man1dir)
138
[ -d $(instroot)/$(pkgconfigdir) ] || install -m 755 -d $(instroot)/$(pkgconfigdir)
139
install -m 644 newt.h $(instroot)/$(includedir)
140
install -m 644 $(LIBNEWT) $(instroot)/$(libdir)
141
install -m 755 whiptail $(instroot)/$(bindir)
142
install -m 644 whiptail.1 $(instroot)/$(man1dir)
143
make -C po datadir=$(instroot)/$(datadir) install
144
install -m 644 libnewt.pc $(instroot)/$(pkgconfigdir)
146
install-sh: sharedlib $(WHIPTCLSO) _snackmodule.so
147
[ -d $(instroot)/$(libdir) ] || install -m 755 -d $(instroot)/$(libdir)
148
install -m 755 $(LIBNEWTSH) $(instroot)/$(libdir)
149
ln -sf $(LIBNEWTSONAME) $(instroot)/$(libdir)/libnewt.so
150
ln -sf $(LIBNEWTSH) $(instroot)/$(libdir)/$(LIBNEWTSONAME)
151
[ -n "$(WHIPTCLSO)" ] && install -m 755 whiptcl.so $(instroot)/$(libdir) || :
152
[ -n "$(PYTHONVERS)" ] && for ver in $(PYTHONVERS) ; do \
153
[ -d $(instroot)/$(libdir)/$$ver/site-packages ] || install -m 755 -d $(instroot)/$(libdir)/$$ver/site-packages ;\
154
install -m 755 $$ver/_snackmodule.so $(instroot)/$(libdir)/$$ver/site-packages ;\
155
install -m 644 snack.py $(instroot)/$(libdir)/$$ver/site-packages ;\
159
echo "You need to rerun ./configure before continuing"
162
create-archive: Makefile
163
@rm -rf /tmp/newt-$(VERSION)
164
@git archive --prefix=newt-$(VERSION)/ $(TAG) | tar x -C /tmp
165
@cd /tmp/newt-$(VERSION) && ./autogen.sh && rm -rf autom4te.cache .tx
166
@cd /tmp; tar czSpf newt-$(VERSION).tar.gz newt-$(VERSION)
167
@rm -rf /tmp/newt-$(VERSION)
168
@cp /tmp/newt-$(VERSION).tar.gz .
169
@rm -f /tmp/newt-$(VERSION).tar.gz
171
@echo "The final archive is ./newt-$(VERSION).tar.gz."
173
tag-archive: Makefile
176
archive: tag-archive create-archive
178
ifeq (.depend,$(wildcard .depend))