Added new configure --with-qtstatic to accomodate linking to a static Qt.

git-svn-id: http://voip.null.ro/svn/yate@3947 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
paulc 2010-12-15 16:50:56 +00:00
parent 8332b05320
commit 4115810d25
4 changed files with 61 additions and 18 deletions

View File

@ -15,6 +15,8 @@ QT4_INC := @QT4_INC@
QT4_LIB := @QT4_LIB@
QT4_INC_NET := @QT4_INC_NET@
QT4_LIB_NET := @QT4_LIB_NET@
QT4_CLIENT_DEPS := ../libyateqt4.so
QT4_CLIENT_LIBS := -lyateqt4
LIBTHR:= @THREAD_LIB@
INCLUDES := -I.. -I@top_srcdir@
CFLAGS := @CFLAGS@ @MODULE_CPPFLAGS@ @INLINE_FLAGS@
@ -34,10 +36,18 @@ SUBDIRS := $(SUBDIRS) qt4
PROGS := $(PROGS) yate-qt4
MENUFILES := $(MENUFILES) yate-qt4.menu
DESKFILES := $(DESKFILES) yate-qt4.desktop
ICONFILES := $(ICONFILES) null_team-16.png null_team-32.png null_team-48.png
ifneq (@QT4_STATIC_MODULES@,no)
ifeq (@QT4_STATIC_MODULES@,yes)
QT4_CLIENT_LIBS := customtable customtext customtree widgetlist
else
QT4_CLIENT_LIBS := $(strip @QT4_STATIC_MODULES@)
endif
QT4_CLIENT_LIBS := $(foreach mod,$(QT4_CLIENT_LIBS),../modules/qt4/$(mod).o) qt4/qt4client.a
QT4_CLIENT_DEPS := $(QT4_CLIENT_LIBS)
endif
ifneq (@HAVE_QT4@,no)
ICONFILES := $(ICONFILES) null_team-16.png null_team-32.png null_team-48.png
endif
LOCALFLAGS =
@ -123,6 +133,9 @@ uninstall: do-uninstall
rmdir "$(DESTDIR)$(icondir)" \
)
../modules/qt4/%.o: @top_srcdir@/modules/qt4/%.cpp
$(MAKE) -C ../modules qt4/$(notdir $@)
%.o: @srcdir@/%.cpp $(MKDEPS) $(INCFILES)
$(COMPILE) -c $<
@ -145,9 +158,12 @@ do-all do-strip do-clean do-install do-uninstall:
Makefile: @srcdir@/Makefile.in $(MKDEPS)
cd .. && ./config.status
yate-%: @srcdir@/main-%.cpp $(MKDEPS) ../libyate.so ../libyateqt4.so $(INCFILES)
$(COMPILE) -o $@ $(LOCALFLAGS) $< $(LDFLAGS) $(LIBTHR) $(LOCALLIBS) $(YATELIBS)
yate-qt4:
yate-qt4: $(QT4_CLIENT_DEPS)
yate-qt4: LOCALFLAGS = $(QT4_INC)
yate-qt4: LOCALLIBS = -lyateqt4 $(QT4_LIB)
yate-qt4: LOCALLIBS = $(QT4_CLIENT_LIBS) $(QT4_LIB)
qt4/qt4client.a: @srcdir@/qt4/qt4client.h @srcdir@/qt4/qt4client.cpp
$(MAKE) -C qt4 $(notdir $@)
yate-%: @srcdir@/main-%.cpp $(MKDEPS) ../libyate.so $(INCFILES)
$(COMPILE) -o $@ $(LOCALFLAGS) $< $(LDFLAGS) $(LIBTHR) $(LOCALLIBS) $(YATELIBS)

View File

@ -21,12 +21,16 @@ YATELIBS := -L../.. -lyate @LIBS@
INCFILES := @top_srcdir@/yateclass.h @top_srcdir@/yatecbase.h @srcdir@/qt4client.h
PROGS=
LIBS =
LIBS = qt4client.a
SOURCES = qt4client.cpp
OBJS = $(SOURCES:.cpp=.o) qt4client.moc.o
INST:=
LIBD_DEV:= libyateqt4.so
LIBD_VER:= $(LIBD_DEV).@PACKAGE_VERSION@
ifeq (@QT4_STATIC_MODULES@,no)
LIBD:= ../../$(LIBD_VER) ../../$(LIBD_DEV)
INST:= $(LIBD_VER) $(LIBD_DEV)
endif
LOCALFLAGS =
LOCALLIBS =
@ -70,23 +74,27 @@ clean:
.PHONY: install uninstall
install: all
$(if $(INST),\
@mkdir -p "$(DESTDIR)$(libdir)" && \
for i in $(LIBD_VER) $(LIBD_DEV) ; do \
for i in $(INST) ; do \
if [ -h "../../$$i" ]; then \
f=`readlink "../../$$i"` ; \
ln -sf "$$f" "$(DESTDIR)$(libdir)/$$i" ; \
else \
install ../../$$i "$(DESTDIR)$(libdir)/" ; \
fi \
done
@mkdir -p "$(DESTDIR)$(incdir)" && \
install -m 0644 @srcdir@/qt4client.h "$(DESTDIR)$(incdir)/"
done; \
mkdir -p "$(DESTDIR)$(incdir)" && \
install -m 0644 @srcdir@/qt4client.h "$(DESTDIR)$(incdir)/" \
)
uninstall:
@-for i in $(LIBD_VER) $(LIBD_DEV) ; do \
$(if $(INST),\
@-for i in $(INST) ; do \
rm "$(DESTDIR)$(libdir)/$$i" ; \
done
@-rm "$(DESTDIR)$(incdir)/qt4client.h" && rmdir "$(DESTDIR)$(libdir)"
done; \
rm "$(DESTDIR)$(incdir)/qt4client.h" && rmdir "$(DESTDIR)$(libdir)" \
)
%.o: @srcdir@/%.cpp $(INCFILES)
$(COMPILE) -c $<
@ -105,3 +113,6 @@ Makefile: @srcdir@/Makefile.in ../../config.status
../../$(LIBD_DEV): ../../$(LIBD_VER)
cd ../.. && ln -sf $(LIBD_VER) $(LIBD_DEV)
$(LIBS): $(OBJS)
$(AR) rcs $@ $^

View File

@ -1063,7 +1063,14 @@ QT4_INC_NET=""
QT4_LIB_NET=""
QT4_MOC=""
QT4_VER=""
QT4_STATIC_MODULES=""
AC_ARG_WITH(libqt4,AC_HELP_STRING([--with-libqt4],[use Qt for graphical clients (default)]),[ac_cv_use_libqt4=$withval],[ac_cv_use_libqt4=yes])
AC_ARG_WITH(qtstatic,AC_HELP_STRING([--with-qtstatic=MODULES],[link specific modules with static Qt]),[ac_cv_use_qtstatic=$withval],[ac_cv_use_qtstatic=no])
qtstatic=""
if [[ "x$ac_cv_use_qtstatic" != "xno" ]]; then
qtstatic="--static"
fi
QT4_STATIC_MODULES=`echo "$ac_cv_use_qtstatic" | sed 's/,/ /g'`
if [[ "x$ac_cv_use_libqt4" = "xyes" ]]; then
AC_MSG_CHECKING([for Qt4 >= 4.3.0 using pkg-config])
pkgd="/usr/lib/qt4/$ARCHLIB/pkgconfig"
@ -1073,7 +1080,7 @@ if [[ "x$ac_cv_use_libqt4" = "xyes" ]]; then
verqt=`pkg-config --modversion QtCore 2>/dev/null`
fi
incqt=`pkg-config --cflags QtNetwork QtGui QtXml QtCore 2>/dev/null | sed 's/QtNetwork/QtUiTools/'`
libqt=`pkg-config --libs QtNetwork QtGui QtXml QtCore 2>/dev/null | sed 's/QtNetwork/QtUiTools/'`
libqt=`pkg-config --libs $qtstatic QtNetwork QtGui QtXml QtCore 2>/dev/null | sed 's/QtNetwork/QtUiTools/'`
if [[ "x$incqt" != "x" -a "x$libqt" != "x" ]]; then
HAVE_QT4=yes
QT4_INC="$incqt"
@ -1121,7 +1128,7 @@ if [[ "x$ac_cv_use_libqt4" = "xyes" ]]; then
QT4_INC_NET="-I$libqt/QtNetwork.framework/Headers"
QT4_LIB_NET="-framework QtNetwork"
;;
esac
esac
QT4_MOC=`qmake -query QT_INSTALL_BINS 2>/dev/null`
QT4_MOC="$QT4_MOC/moc"
verqt=`qmake -query QT_VERSION 2>/dev/null`
@ -1136,6 +1143,7 @@ if [[ "x$ac_cv_use_libqt4" = "xyes" ]]; then
AC_MSG_RESULT([$verqt])
fi
fi
AC_SUBST(HAVE_QT4)
AC_SUBST(QT4_INC)
AC_SUBST(QT4_LIB)
@ -1143,6 +1151,7 @@ AC_SUBST(QT4_INC_NET)
AC_SUBST(QT4_LIB_NET)
AC_SUBST(QT4_MOC)
AC_SUBST(QT4_VER)
AC_SUBST(QT4_STATIC_MODULES)
HAVE_COREDUMPER=no

View File

@ -14,6 +14,7 @@ QT4_INC := @QT4_INC@
QT4_LIB := @QT4_LIB@
QT4_INC_NET := @QT4_INC_NET@
QT4_LIB_NET := @QT4_LIB_NET@
QT4_STATIC_MODULES :=
HAVE_PGSQL := @HAVE_PGSQL@
PGSQL_INC := @PGSQL_INC@
PGSQL_LIB := -lpq
@ -103,8 +104,10 @@ PROGS := $(PROGS) client/coreaudio.yate
endif
ifneq (@HAVE_QT4@,no)
ifeq (@QT4_STATIC_MODULES@,no)
PROGS := $(PROGS) qt4/updater.yate qt4/customtable.yate qt4/customtext.yate qt4/customtree.yate qt4/widgetlist.yate
endif
endif
ifneq (@HAVE_ZAP@,no)
PROGS := $(PROGS) server/zapcard.yate
@ -195,7 +198,7 @@ strip: all do-strip
.PHONY: clean
clean: do-clean
@-$(RM) $(PROGS) $(LIBS) *.o qt4/*.moc core 2>/dev/null
@-$(RM) $(PROGS) $(LIBS) *.o qt4/*.o qt4/*.moc core 2>/dev/null
@-for i in $(PROGS) ; do \
$(RM) -rf $$i.dSYM 2>/dev/null; \
done;
@ -224,6 +227,10 @@ uninstall: do-uninstall
subdirs:
@mkdir -p $(DIRS)
qt4/%.o: @srcdir@/qt4/%.cpp $(MKDEPS) $(INCFILES)
$(MAKE) $(patsubst %.o,%.moc,$@)
$(COMPILE) -c -o $@ $(QT4_INC) -I@top_srcdir@/clients/qt4 -I@srcdir@/qt4 $<
%.o: @srcdir@/%.cpp $(MKDEPS) $(INCFILES)
$(COMPILE) -c $<