VERSION = @VERSION@
TAG = r$(subst .,-,$(VERSION))
SONAME = @SONAME@
+SOEXT = so
PYTHONVERS = @PYTHONVERS@
-WHIPTCLSO = @WHIPTCLSO@
+WHIPTCLLIB = @WHIPTCLLIB@
+ifneq ($(WHIPTCLLIB),)
+WHIPTCLSO = $(WHIPTCLLIB).$(SOEXT)
+else
+WHIPTCLSO =
+endif
PROGS = test whiptail $(WHIPTCLSO) testgrid testtree showchars showkey
TESTOBJS = test.o testgrid.o testtree.o showchars.o showkey.o
NDIALOGOBJS = whiptail.o dialogboxes.o
WHIPTCLOBJS = shared/whiptcl.o shared/dialogboxes.o
LIBNEWT = libnewt.a
-LIBNEWTSH = libnewt.so.$(VERSION)
-LIBNEWTSONAME = libnewt.so.$(SONAME)
+LIBNEWTSH = libnewt.$(SOEXT).$(VERSION)
+LIBNEWTSONAME = libnewt.$(SOEXT).$(SONAME)
LIBOBJS = newt.o button.o form.o checkbox.o entry.o label.o listbox.o \
scrollbar.o textbox.o scale.o grid.o windows.o buttonbar.o \
checkboxtree.o
TARGET=depend $(PROGS)
endif
-all: $(TARGET) _snackmodule.so
+all: $(TARGET) _snackmodule.$(SOEXT)
test: test.o $(LIBNEWT)
$(CC) -g -o test test.o $(LIBNEWT) $(LDFLAGS) $(LIBS)
showkey: showkey.o $(LIBNEWT)
$(CC) -g -o showkey showkey.o $(LIBNEWT) $(LDFLAGS) $(LIBS)
-_snackmodule.so: snackmodule.c $(LIBNEWTSH)
+_snackmodule.$(SOEXT): snackmodule.c $(LIBNEWTSH)
@[ -n "$(PYTHONVERS)" ] && for ver in $(PYTHONVERS); do \
pyconfig=$$ver-config; \
if ! $$pyconfig --cflags > /dev/null 2>&1 && \
PLFLAGS=`$$pyconfig --libs`; \
echo $(CC) $(SHCFLAGS) $(CPPFLAGS) $$PIFLAGS $$PCFLAGS -c -o $$ver/snackmodule.o snackmodule.c; \
$(CC) $(SHCFLAGS) $(CPPFLAGS) $$PIFLAGS $$PCFLAGS -c -o $$ver/snackmodule.o snackmodule.c; \
- echo $(CC) --shared $$PLDFLAGS $$PLFLAGS $(LDFLAGS) -o $$ver/_snackmodule.so $$ver/snackmodule.o -L. -lnewt $(LIBS); \
- $(CC) --shared $$PLDFLAGS $$PLFLAGS $(LDFLAGS) -o $$ver/_snackmodule.so $$ver/snackmodule.o -L. -lnewt $(LIBS); \
+ echo $(CC) --shared $$PLDFLAGS $$PLFLAGS $(LDFLAGS) -o $$ver/_snackmodule.$(SOEXT) $$ver/snackmodule.o -L. -lnewt $(LIBS); \
+ $(CC) --shared $$PLDFLAGS $$PLFLAGS $(LDFLAGS) -o $$ver/_snackmodule.$(SOEXT) $$ver/snackmodule.o -L. -lnewt $(LIBS); \
done || :
touch $@
whiptail: $(NDIALOGOBJS) $(LIBNEWTSH)
$(CC) -g -o whiptail $(NDIALOGOBJS) -L. $(LDFLAGS) -lnewt $(LIBS) -lpopt
-whiptcl.so: $(WHIPTCLOBJS) $(LIBNEWTSH)
- $(CC) -shared $(SHCFLAGS) $(LDFLAGS) -o whiptcl.so $(WHIPTCLOBJS) -L. -lnewt $(LIBTCL) -lpopt $(LIBS)
+whiptcl.$(SOEXT): $(WHIPTCLOBJS) $(LIBNEWTSH)
+ $(CC) -shared $(SHCFLAGS) $(LDFLAGS) -o whiptcl.$(SOEXT) $(WHIPTCLOBJS) -L. -lnewt $(LIBTCL) -lpopt $(LIBS)
$(LIBNEWT): $(LIBOBJS)
ar rv $@ $^
clean:
rm -f $(PROGS) *.o $(LIBNEWT) core $(LIBNEWTSH) \
- $(SHAREDDIR)/*.o *.so*
+ $(SHAREDDIR)/*.o *.$(SOEXT)*
depend:
$(CPP) $(CFLAGS) $(CPPFLAGS) -M $(SOURCES) > .depend
$(LIBNEWTSH): $(SHAREDDIR) $(SHAREDOBJS)
$(CC) -shared -o $(LIBNEWTSH) $(SHLIBFLAGS) $(SHAREDOBJS) $(LDFLAGS) $(LIBS)
- ln -fs $(LIBNEWTSONAME) libnewt.so
+ ln -fs $(LIBNEWTSONAME) libnewt.$(SOEXT)
ln -fs $(LIBNEWTSH) $(LIBNEWTSONAME)
$(SHAREDDIR)/%.o : %.c
make -C po datadir=$(instroot)/$(datadir) install
install -m 644 libnewt.pc $(instroot)/$(pkgconfigdir)
-install-sh: sharedlib $(WHIPTCLSO) _snackmodule.so
+install-sh: sharedlib $(WHIPTCLSO) _snackmodule.$(SOEXT)
[ -d $(instroot)/$(libdir) ] || install -m 755 -d $(instroot)/$(libdir)
install -m 755 $(LIBNEWTSH) $(instroot)/$(libdir)
- ln -sf $(LIBNEWTSONAME) $(instroot)/$(libdir)/libnewt.so
+ ln -sf $(LIBNEWTSONAME) $(instroot)/$(libdir)/libnewt.$(SOEXT)
ln -sf $(LIBNEWTSH) $(instroot)/$(libdir)/$(LIBNEWTSONAME)
- [ -n "$(WHIPTCLSO)" ] && install -m 755 whiptcl.so $(instroot)/$(libdir) || :
+ [ -n "$(WHIPTCLSO)" ] && install -m 755 whiptcl.$(SOEXT) $(instroot)/$(libdir) || :
[ -n "$(PYTHONVERS)" ] && for ver in $(PYTHONVERS) ; do \
[ -d $(instroot)/$(libdir)/$$ver/site-packages ] || install -m 755 -d $(instroot)/$(libdir)/$$ver/site-packages ;\
- install -m 755 $$ver/_snackmodule.so $(instroot)/$(libdir)/$$ver/site-packages ;\
+ install -m 755 $$ver/_snackmodule.$(SOEXT) $(instroot)/$(libdir)/$$ver/site-packages ;\
install -m 644 snack.py $(instroot)/$(libdir)/$$ver/site-packages ;\
done || :