[PATCH] simplify external module check with macro

Björn Michaelsen (via_Code_Review) gerrit at gerrit.libreoffice.org
Sat Feb 16 06:53:25 PST 2013


Hi,

I have submitted a patch for review:

    https://gerrit.libreoffice.org/2185

To pull it, you can do:

    git pull ssh://gerrit.libreoffice.org:29418/core refs/changes/85/2185/1

simplify external module check with macro

- a >12.000 LOC configure.ac is more than enough for everybody
- removing some 100 lines cant hurt
- the SYSTEM_LIBCDR=$SYSTEM_CDR stuff should be removed in a later step,
  by renaming them in the build

Change-Id: I5c065c5c341561258800a124b0fc1f40b3d59211
---
M configure.ac
1 file changed, 65 insertions(+), 165 deletions(-)



diff --git a/configure.ac b/configure.ac
index 5b0853415..a864745 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7134,6 +7134,26 @@
 fi
 AC_SUBST(SYSTEM_STDLIBS)
 
+AC_DEFUN([libo_PUBLISH_MODULE], [
+AC_SUBST(SYSTEM_$1)
+AC_SUBST($1_CFLAGS)
+AC_SUBST($1_LIBS)
+])
+
+AC_DEFUN([libo_CHECK_SYSTEM_MODULE], [
+AC_MSG_CHECKING([which $1 to use])
+if test "$with_system_$1" = "yes"; then
+    AC_MSG_RESULT([external])
+    SYSTEM_$2=YES
+    PKG_CHECK_MODULES([$2], [$3])
+else
+    AC_MSG_RESULT([internal])
+    SYSTEM_$2=NO
+    BUILD_TYPE="$BUILD_TYPE $2"
+fi
+libo_PUBLISH_MODULE([$2])
+])
+
 dnl ===================================================================
 dnl Check for system zlib
 dnl ===================================================================
@@ -7148,24 +7168,11 @@
     esac
 fi
 
-AC_MSG_CHECKING([which zlib to use])
-if test "$with_system_zlib" = "yes"; then
-    AC_MSG_RESULT([external])
-    SYSTEM_ZLIB=YES
-    AC_CHECK_HEADER(zlib.h, [],
-        [AC_MSG_ERROR(zlib.h not found. install zlib)], [])
-    AC_CHECK_LIB(z, deflate, [ ZLIB=-lz ],
-        [AC_MSG_ERROR(zlib not found or functional)], [])
-else
-    AC_MSG_RESULT([internal])
-    SYSTEM_ZLIB=NO
-    BUILD_TYPE="$BUILD_TYPE ZLIB"
+if test "$with_system_zlib" = "no"; then
     ZLIB_CFLAGS="-I${OUTDIR}/inc/external/zlib"
     ZLIB_LIBS="-L${OUTDIR}/lib -lz"
 fi
-AC_SUBST(ZLIB_CFLAGS)
-AC_SUBST(ZLIB_LIBS)
-AC_SUBST(SYSTEM_ZLIB)
+libo_CHECK_SYSTEM_MODULE([zlib],[ZLIB],[zlib])
 
 dnl ===================================================================
 dnl Check for system jpeg
@@ -7198,15 +7205,12 @@
 AC_SUBST(SYSTEM_JPEG)
 AC_SUBST([MINGW_JPEG_DLL])
 
+
 dnl ===================================================================
 dnl Check for system clucene
 dnl ===================================================================
-AC_MSG_CHECKING([which clucene to use])
+libo_CHECK_SYSTEM_MODULE([clucence],[CLUCENE],[liblucence-core])
 if test "$with_system_clucene" = "yes"; then
-    AC_MSG_RESULT([external])
-    SYSTEM_CLUCENE=YES
-    PKG_CHECK_MODULES(CLUCENE, libclucene-core)
-
     AC_LANG_PUSH([C++])
     save_CXXFLAGS=$CXXFLAGS
     save_CPPFLAGS=$CPPFLAGS
@@ -7221,175 +7225,95 @@
     AC_LANG_POP([C++])
 
     CLUCENE_LIBS="$CLUCENE_LIBS -lclucene-contribs-lib"
-else
-    AC_MSG_RESULT([internal])
-    SYSTEM_CLUCENE=NO
-    BUILD_TYPE="$BUILD_TYPE CLUCENE"
 fi
-AC_SUBST(SYSTEM_CLUCENE)
-AC_SUBST(CLUCENE_CFLAGS)
-AC_SUBST(CLUCENE_LIBS)
 
 dnl ===================================================================
 dnl Check for system expat
 dnl ===================================================================
-AC_MSG_CHECKING([which expat to use])
+libo_CHECK_SYSTEM_MODULE([expat],[EXPAT],[expat])
 if test "$with_system_expat" = "yes"; then
-    AC_MSG_RESULT([external])
-    SYSTEM_EXPAT=YES
-    AC_CHECK_HEADER(expat.h, [],
-        [AC_MSG_ERROR(expat.h not found. install expat)], [])
-    AC_CHECK_LIB([expat], [XML_ParserCreate], [:],
-    [AC_MSG_RESULT(expat library not found or functional.)], [])
     libo_MINGW_CHECK_DLL([EXPAT], [libexpat])
-else
-    AC_MSG_RESULT([internal])
-    SYSTEM_EXPAT=NO
-    BUILD_TYPE="$BUILD_TYPE EXPAT"
 fi
-AC_SUBST(SYSTEM_EXPAT)
-AC_SUBST([MINGW_EXPAT_DLL])
 
 dnl ===================================================================
 dnl Check for system libcdr
 dnl ===================================================================
-AC_MSG_CHECKING([which libcdr to use])
-if test "$with_system_libcdr" = "yes"; then
-    AC_MSG_RESULT([external])
-    SYSTEM_LIBCDR=YES
-    PKG_CHECK_MODULES( CDR, libcdr-0.0 >= 0.0.5 )
-elif test $_os = iOS; then
-    # libcdr depends on libwpd and libwpg and those are LGPL
-    AC_MSG_RESULT([none])
+if test $_os = iOS; then
+    # libcdr depends on libwpd and libwpg and those are LGPL, publishing empty flags
+    libo_PUBLISH_MODULE([CDR])
 else
-    AC_MSG_RESULT([internal])
-    SYSTEM_LIBCDR=NO
-    BUILD_TYPE="$BUILD_TYPE CDR"
+    libo_CHECK_SYSTEM_MODULE([libcdr],[CDR],[libcdr-0.0 >= 0.0.5])
 fi
+SYSTEM_LIBCDR=$SYSTEM_CDR
 AC_SUBST(SYSTEM_LIBCDR)
-AC_SUBST(CDR_CFLAGS)
-AC_SUBST(CDR_LIBS)
 
 dnl ===================================================================
 dnl Check for system libmspub
 dnl ===================================================================
-AC_MSG_CHECKING([which libmspub to use])
-if test "$with_system_libmspub" = "yes"; then
-    AC_MSG_RESULT([external])
-    SYSTEM_LIBMSPUB=YES
-    PKG_CHECK_MODULES( MSPUB, libmspub-0.0 )
-elif test $_os = iOS; then
-    # libmspub depends on libwpd and libwpg and those are LGPL
-    AC_MSG_RESULT([none])
+if test $_os = iOS; then
+    # libmspub depends on libwpd and libwpg and those are LGPL, publishing empty flags
+    libo_PUBLISH_MODULE([MSPUB])
 else
-    AC_MSG_RESULT([internal])
-    SYSTEM_LIBMSPUB=NO
-    BUILD_TYPE="$BUILD_TYPE MSPUB"
+    libo_CHECK_SYSTEM_MODULE([libmspub],[MSPUB],[libmspub-0.0])
 fi
+SYSTEM_LIBMSPUB=$SYSTEM_MSPUB
 AC_SUBST(SYSTEM_LIBMSPUB)
-AC_SUBST(MSPUB_CFLAGS)
-AC_SUBST(MSPUB_LIBS)
 
 dnl ===================================================================
 dnl Check for system libvisio
 dnl ===================================================================
-AC_MSG_CHECKING([which libvisio to use])
-if test "$with_system_libvisio" = "yes"; then
-    AC_MSG_RESULT([external])
-    SYSTEM_LIBVISIO=YES
-    PKG_CHECK_MODULES( VISIO, libvisio-0.0 )
-elif test $_os = iOS; then
-    # libvisio depends on libwpd and libwpg and those are LGPL
-    AC_MSG_RESULT([none])
+if test $_os = iOS; then
+    # libvisio depends on libwpd and libwpg and those are LGPL, publishing empty flags
+    libo_PUBLISH_MODULE([VISIO])
 else
-    AC_MSG_RESULT([internal])
-    SYSTEM_LIBVISIO=NO
-    BUILD_TYPE="$BUILD_TYPE VISIO"
+    libo_CHECK_SYSTEM_MODULE([libvisio],[VISIO],[libvisio-0.0])
 fi
+SYSTEM_LIBVISIO=$SYSTEM_VISIO
 AC_SUBST(SYSTEM_LIBVISIO)
-AC_SUBST(VISIO_CFLAGS)
-AC_SUBST(VISIO_LIBS)
 
 dnl ===================================================================
 dnl Check for system libcmis
 dnl ===================================================================
-AC_MSG_CHECKING([which libcmis to use])
-if test "$with_system_libcmis" = "yes"; then
-    AC_MSG_RESULT([external])
-    SYSTEM_LIBCMIS=YES
-    PKG_CHECK_MODULES( CMIS, libcmis-0.3 >= 0.3.0 )
-else
-    AC_MSG_RESULT([internal])
-    SYSTEM_LIBCMIS=NO
-    BUILD_TYPE="$BUILD_TYPE CMIS"
-fi
+libo_CHECK_SYSTEM_MODULE([libcmis],[CMIS],[libcmis-0.3 >= 0.3.0])
+SYSTEM_LIBCMIS=$SYSTEM_CMIS
 AC_SUBST(SYSTEM_LIBCMIS)
-AC_SUBST(CMIS_CFLAGS)
-AC_SUBST(CMIS_LIBS)
 
 
 dnl ===================================================================
 dnl Check for system libwpd
 dnl ===================================================================
-AC_MSG_CHECKING([which libwpd to use])
-if test "$with_system_libwpd" = "yes"; then
-    AC_MSG_RESULT([external])
-    SYSTEM_LIBWPD=YES
-    PKG_CHECK_MODULES( WPD, libwpd-0.9 libwpd-stream-0.9 )
-elif test $_os = iOS; then
-    AC_MSG_RESULT([none])
+if test $_os = iOS; then
+    libo_PUBLISH_MODULE([WPD])
 else
-    AC_MSG_RESULT([internal])
-    SYSTEM_LIBWPD=NO
-    WPD_CFLAGS="-I${OUTDIR}/inc/external"
-    WPD_LIBS="-L${OUTDIR}/lib -lwpdlib"
-    BUILD_TYPE="$BUILD_TYPE WPD"
+    if test "$with_system_libwpd" = "no"; then
+        WPD_CFLAGS="-I${OUTDIR}/inc/external"
+        WPD_LIBS="-L${OUTDIR}/lib -lwpdlib"
+    fi
+    libo_CHECK_SYSTEM_MODULE([libwpd],[WPD],[libwpd-0.9 libwpd-stream-0.9])
 fi
+SYSTEM_LIBWPD=$SYSTEM_WPD
 AC_SUBST(SYSTEM_LIBWPD)
-AC_SUBST(WPD_CFLAGS)
-AC_SUBST(WPD_LIBS)
 
 dnl ===================================================================
 dnl Check for system lcms2
 dnl ===================================================================
-AC_MSG_CHECKING([which littlecms v2 to use])
 if test "$with_system_lcms2" = "yes"; then
-    AC_MSG_RESULT([external])
-    SYSTEM_LCMS2=YES
-    PKG_CHECK_MODULES( LCMS2, lcms2 )
     libo_MINGW_CHECK_DLL([LCMS2], [liblcms2])
 else
-    AC_MSG_RESULT([internal])
     SYSTEM_LCMS2=NO
     LCMS2_LIBS="-L${OUTDIR}/lib -llcms2"
     LCMS2_CFLAGS="-I${WORKDIR}/UnpackedTarball/lcms2/include"
     if test "$GCC" = "yes"; then
         LCMS2_CFLAGS="${LCMS2_CFLAGS} -Wno-long-long"
     fi
-    BUILD_TYPE="$BUILD_TYPE LCMS2"
 fi
-AC_SUBST(SYSTEM_LCMS2)
-AC_SUBST(LCMS2_CFLAGS)
-AC_SUBST(LCMS2_LIBS)
+libo_CHECK_SYSTEM_MODULE([lcms2],[LCMS2],[lcms2])
 AC_SUBST([MINGW_LCMS2_DLL])
 
 dnl ===================================================================
 dnl Check for system cppunit
 dnl ===================================================================
-AC_MSG_CHECKING([which cppunit to use])
-if test "$with_system_cppunit" = "yes"; then
-    AC_MSG_RESULT([external])
-    SYSTEM_CPPUNIT=YES
-    # might work for earlier, too but go sure:
-    PKG_CHECK_MODULES( CPPUNIT, cppunit >= 1.12.0 )
-else
-    AC_MSG_RESULT([internal])
-    SYSTEM_CPPUNIT=NO
-    BUILD_TYPE="$BUILD_TYPE CPPUNIT"
-fi
-AC_SUBST(SYSTEM_CPPUNIT)
-AC_SUBST(CPPUNIT_CFLAGS)
-AC_SUBST(CPPUNIT_LIBS)
+libo_CHECK_SYSTEM_MODULE([cppunit],[CPPUNIT],[cppunit >= 1.12.0])
 
 dnl ===================================================================
 dnl Check whether freetype is available
@@ -7410,44 +7334,28 @@
 dnl ===================================================================
 dnl Check for system libwps
 dnl ===================================================================
-AC_MSG_CHECKING([which libwps to use])
-if test "$with_system_libwps" = "yes"; then
-    AC_MSG_RESULT([external])
-    SYSTEM_LIBWPS=YES
-    PKG_CHECK_MODULES( WPS, libwps-0.2 )
-elif test $_os = iOS; then
-    AC_MSG_RESULT([none])
-else
-    AC_MSG_RESULT([internal])
-    SYSTEM_LIBWPS=NO
+#elif test $_os = iOS; then
+#    AC_MSG_RESULT([none])
+if test "$with_system_libwps" = "no"; then
     WPS_CFLAGS="-I${OUTDIR}/inc/external"
     WPS_LIBS="-L${OUTDIR}/lib -lwpslib"
-    BUILD_TYPE="$BUILD_TYPE WPS"
 fi
+libo_CHECK_SYSTEM_MODULE([libwps],[WPS],[libwps-0.2])
+SYSTEM_LIBWPS=$SYSTEM_WPS
 AC_SUBST(SYSTEM_LIBWPS)
-AC_SUBST(WPS_CFLAGS)
-AC_SUBST(WPS_LIBS)
 
 dnl ===================================================================
 dnl Check for system libwpg
 dnl ===================================================================
-AC_MSG_CHECKING([which libwpg to use])
-if test "$with_system_libwpg" = "yes"; then
-    AC_MSG_RESULT([external])
-    SYSTEM_LIBWPG=YES
-    PKG_CHECK_MODULES( WPG, libwpg-0.2 )
-elif test $_os = iOS; then
-    AC_MSG_RESULT([none])
-else
-    AC_MSG_RESULT([internal])
-    SYSTEM_LIBWPG=NO
+#elif test $_os = iOS; then
+#    AC_MSG_RESULT([none])
+if test "$with_system_libwpg" = "no"; then
     WPG_CFLAGS="-I${OUTDIR}/inc/external"
     WPG_LIBS="-L${OUTDIR}/lib -lwpglib"
-    BUILD_TYPE="$BUILD_TYPE WPG"
 fi
+libo_CHECK_SYSTEM_MODULE([libwpg],[WPG],[libwpg-0.2])
+SYSTEM_LIBWPG=$SYSTEM_WPG
 AC_SUBST(SYSTEM_LIBWPG)
-AC_SUBST(WPG_CFLAGS)
-AC_SUBST(WPG_LIBS)
 
 dnl ===================================================================
 dnl Check whether freetype2 supports emboldening
@@ -9132,24 +9040,16 @@
 AC_SUBST(SYSTEM_LPSOLVE)
 AC_SUBST([MINGW_LPSOLVE_DLL])
 
+
+
 dnl ===================================================================
 dnl Checking for libexttextcat
 dnl ===================================================================
-AC_MSG_CHECKING([which libexttextcat to use])
+libo_CHECK_SYSTEM_MODULE([libexttextcat],[LIBEXTTEXTCAT],[libexttextcat >= 3.1.1])
 if test "$with_system_libexttextcat" = "yes"; then
-    AC_MSG_RESULT([external])
-    SYSTEM_LIBEXTTEXTCAT=YES
-    PKG_CHECK_MODULES([LIBEXTTEXTCAT], [libexttextcat >= 3.1.1])
     SYSTEM_LIBEXTTEXTCAT_DATA=file://`$PKG_CONFIG --variable=pkgdatadir libexttextcat`
-else
-    AC_MSG_RESULT([internal])
-    SYSTEM_LIBEXTTEXTCAT=NO
-    BUILD_TYPE="$BUILD_TYPE LIBEXTTEXTCAT"
 fi
-AC_SUBST(SYSTEM_LIBEXTTEXTCAT)
 AC_SUBST(SYSTEM_LIBEXTTEXTCAT_DATA)
-AC_SUBST(LIBEXTTEXTCAT_CFLAGS)
-AC_SUBST(LIBEXTTEXTCAT_LIBS)
 
 dnl ***************************************
 dnl testing libc version for Linux...

-- 
To view, visit https://gerrit.libreoffice.org/2185
To unsubscribe, visit https://gerrit.libreoffice.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I5c065c5c341561258800a124b0fc1f40b3d59211
Gerrit-PatchSet: 1
Gerrit-Project: core
Gerrit-Branch: master
Gerrit-Owner: Björn Michaelsen <bjoern.michaelsen at canonical.com>


More information about the LibreOffice mailing list