Merge pull request #5104 from Montellese/win32_versioning
[vuplus_xbmc] / configure.in
index 1766ce1..ce82cd4 100644 (file)
@@ -84,8 +84,8 @@ AC_DEFUN([XB_FIND_SONAME],
       lib=[`ls -- $path/lib$2.dylib 2>/dev/null`]
       if test x$lib != x; then
         # we want the path/name that is embedded in the dylib 
-        $1_SONAME=[`otool -L $lib | grep -v lib$2.dylib | grep lib$2 | awk '{V=1; print $V}'`]
-        $1_SONAME=[`basename $$1_SONAME`]
+        $1_FILENAME=[`otool -L $lib | grep -v lib$2.dylib | grep lib$2 | awk '{V=1; print $V}'`]
+        $1_SONAME=[`basename $$1_FILENAME`]
       fi
     done
   fi
@@ -504,18 +504,6 @@ AC_ARG_ENABLE([libcec],
   [use_libcec=$enableval],
   [use_libcec=auto])
 
-AC_ARG_ENABLE([libmp3lame],
-  [AS_HELP_STRING([--enable-libmp3lame],
-  [enable lame mp3 encoder support (default is auto)])],
-  [use_libmp3lame=$enableval],
-  [use_libmp3lame=auto])
-
-AC_ARG_ENABLE([libvorbisenc],
-  [AS_HELP_STRING([--enable-libvorbisenc],
-  [enable vorbis encoder support (default is auto)])],
-  [use_libvorbisenc=$enableval],
-  [use_libvorbisenc=auto])
-
 AC_ARG_ENABLE([libcap],
   [AS_HELP_STRING([--enable-libcap],
   [enable libcap support (default is auto)])],
@@ -570,6 +558,8 @@ AC_PROG_MAKE_SET
 PKG_PROG_PKG_CONFIG
 MAKE="${MAKE:-make}"
 OBJDUMP="${OBJDUMP:-objdump}"
+READELF="${READELF:-readelf}"
+NM="${NM:-nm}"
 
 # host detection and setup
 case $host in
@@ -729,6 +719,27 @@ if test "$GIT_REV" = ""; then
 fi
 final_message="$final_message\n  git Rev.:\t${GIT_REV}"
 
+# detect Xbmc soname version
+# version can be overridden by setting the following as ENV vars when running configure
+APP_VERSION_MAJOR=${APP_VERSION_MAJOR-$(${AWK} '/VERSION_MAJOR/ {print $2}' version.txt)}
+APP_VERSION_MINOR=${APP_VERSION_MINOR-$(${AWK} '/VERSION_MINOR/ {print $2}' version.txt)}
+APP_VERSION_TAG=${APP_VERSION_TAG-$(${AWK} '/VERSION_TAG/ {print $2}' version.txt)}
+APP_VERSION_TAG_LC=$(echo $APP_VERSION_TAG | ${AWK} '{print tolower($0)}')
+APP_VERSION_CODE=${APP_VERSION_CODE-$(${AWK} '/VERSION_CODE/ {print $2}' version.txt)}
+APP_ADDON_API=${APP_ADDON_API-$(${AWK} '/ADDON_API/ {print $2}' version.txt)}
+if test "$APP_VERSION_MAJOR" != "" && test "$APP_VERSION_MINOR" != "" && test "$APP_VERSION_TAG" != "" \
+&& test "$APP_VERSION_CODE" != "" && test "$APP_ADDON_API" != ""; then
+  final_message="$final_message\n  Xbmc Version:\t${APP_VERSION_MAJOR}.${APP_VERSION_MINOR}-${APP_VERSION_TAG}"
+  AC_SUBST(APP_VERSION_MAJOR)
+  AC_SUBST(APP_VERSION_MINOR)
+  AC_SUBST(APP_VERSION_TAG)
+  AC_SUBST(APP_VERSION_TAG_LC)
+  AC_SUBST(APP_VERSION_CODE)
+  AC_SUBST(APP_ADDON_API)
+else
+  AC_MSG_ERROR(could not detect XBMC Version, make sure version.txt is complete)
+fi
+
 if test "$host_vendor" = "apple"; then
   echo "#define GIT_REV \"$GIT_REV\"" > git_revision.h
 else
@@ -1045,17 +1056,25 @@ AC_CHECK_HEADER([jpeglib.h],,        AC_MSG_ERROR($missing_library))
 AC_CHECK_HEADER([ogg/ogg.h],,        AC_MSG_ERROR($missing_library))
 AC_CHECK_HEADER([vorbis/vorbisfile.h],, AC_MSG_ERROR($missing_library))
 AC_CHECK_HEADER([libmodplug/modplug.h],, AC_MSG_ERROR($missing_library))
-AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
 AC_CHECK_HEADER([FLAC/stream_decoder.h],, AC_MSG_ERROR($missing_library))
 
-# we need to check for the header because if it exists we set the openssl
-# and gcrypt MT callback hooks. This is mostly so that libcurl operates 
-# in MT manner correctly.
-AC_MSG_CHECKING([for CRYPTO_set_locking_callback(0)])
-AC_TRY_LINK([],[CRYPTO_set_locking_callback(0);],
-                [have_curl_static=yes],
-                [have_curl_static=no])
-AC_MSG_RESULT($have_curl_static)
+AC_CHECK_HEADER([curl/curl.h],, AC_MSG_ERROR($missing_library))
+XB_FIND_SONAME([CURL], [curl])
+AC_MSG_CHECKING([for CRYPTO_set_locking_callback(0) in $CURL_SONAME])
+if test "$host_vendor" = "apple" ; then
+  libchecker="$NM"
+  searchpattern="T [_]?CRYPTO_set_locking_call"
+else
+  libchecker="$READELF -s"
+  searchpattern="CRYPTO_set_locking_call"
+fi
+if test $($libchecker $CURL_FILENAME  | grep -Eq "${searchpattern}" ; echo $?) -eq 0 ; then
+  AC_MSG_RESULT(yes)
+  AC_DEFINE([HAS_CURL_STATIC], [1], [Whether OpenSSL inside libcurl is static.])
+else
+  AC_MSG_RESULT(no)
+fi
+
 AC_CHECK_HEADER([openssl/crypto.h], AC_DEFINE([HAVE_OPENSSL],[1],[Define if we have openssl]),)
 AC_CHECK_HEADER([gcrypt.h], gcrypt_headers_available=yes,gcrypt_headers_available=no)
 if test "$gcrypt_headers_available" = "yes"; then
@@ -1200,7 +1219,6 @@ fi
 fi
 
 XB_FIND_SONAME([OGG],         [ogg])
-XB_FIND_SONAME([CURL],        [curl])
 XB_FIND_SONAME([FLAC],        [FLAC])
 XB_FIND_SONAME([VORBIS],      [vorbis])
 XB_FIND_SONAME([VORBISFILE],  [vorbisfile])
@@ -1208,37 +1226,6 @@ XB_FIND_SONAME([MODPLUG],     [modplug])
 XB_FIND_SONAME([ASS],         [ass])
 XB_FIND_SONAME([MPEG2],       [mpeg2])
 
-# Audio encoders
-if test "x$use_libmp3lame" != "xno"; then
-  XB_FIND_SONAME([LAMEENC], [mp3lame], [use_libmp3lame])
-  if test "x$use_libmp3lame" != "xno"; then
-    AC_CHECK_HEADER([lame/lame.h],, AC_MSG_ERROR($missing_headers))
-  fi
-fi
-AS_CASE([x$use_libmp3lame],
-  [xno],[
-    AC_SUBST([HAVE_LIBMP3LAME], 0)
-  ],
-  [
-    AC_DEFINE([HAVE_LIBMP3LAME], 1, [System has libmp3lame library])
-    AC_SUBST([HAVE_LIBMP3LAME], 1)
-  ]
-)
-if test "x$use_libvorbisenc" != "xno"; then
-  XB_FIND_SONAME([VORBISENC], [vorbisenc], [use_libvorbisenc])
-  if test "x$use_libvorbisenc" != "xno"; then
-    AC_CHECK_HEADER([vorbis/vorbisenc.h],, AC_MSG_ERROR($missing_headers))
-  fi
-fi
-AS_CASE([x$use_libvorbisenc],
-  [xno],[
-    AC_SUBST([HAVE_LIBVORBISENC], 0)
-  ],[
-    AC_DEFINE([HAVE_LIBVORBISENC], 1, [System has libvorbisenc library])
-    AC_SUBST([HAVE_LIBVORBISENC], 1)
-  ]
-)
-
 # WebServer
 if test "$use_webserver" = "yes"; then
   AC_CHECK_LIB([microhttpd],  [main],, AC_MSG_ERROR($missing_library))
@@ -1464,11 +1451,6 @@ else
   AC_DEFINE([HAVE_LIBSSH], [1], [Whether to use libSSH library.])
 fi
 
-# libcurl
-if test "x$have_curl_static" = "xyes"; then
-  AC_DEFINE([HAS_CURL_STATIC], [1], [Whether OpenSSL inside libcurl is static.])
-fi
-
 # libRTMP
 if test "$use_librtmp" != "no"; then
   AC_CHECK_HEADERS([librtmp/log.h librtmp/amf.h librtmp/rtmp.h],,
@@ -2407,7 +2389,7 @@ fi
 if test "x$use_upnp" != "xno"; then
   final_message="$final_message\n  UPnP support:\t\tYes"
   USE_UPNP=1
-  UPNP_DEFINES="-DNPT_CONFIG_ENABLE_LOGGING -DPLT_HTTP_DEFAULT_USER_AGENT="\"UPnP/1.0 DLNADOC/1.50 XBMC\"" -DPLT_HTTP_DEFAULT_SERVER="\"UPnP/1.0 DLNADOC/1.50 XBMC\"""
+  UPNP_DEFINES='-DNPT_CONFIG_ENABLE_LOGGING -DPLT_HTTP_DEFAULT_USER_AGENT="\"UPnP/1.0 DLNADOC/1.50 XBMC\"" -DPLT_HTTP_DEFAULT_SERVER="\"UPnP/1.0 DLNADOC/1.50 XBMC\""'
   AC_DEFINE([USE_UPNP], [1], [Define to 1 to enable UPnP support.])
 else
   USE_UPNP=0
@@ -2438,18 +2420,6 @@ else
   final_message="$final_message\n  libcec support:\tNo"
 fi
 
-if test "x$use_libmp3lame" != "xno"; then
-  final_message="$final_message\n  libmp3lame support:\tYes"
-else
-  final_message="$final_message\n  libmp3lame support:\tNo"
-fi
-
-if test "x$use_libvorbisenc" != "xno"; then
-  final_message="$final_message\n  libvorbisenc support:\tYes"
-else
-  final_message="$final_message\n  libvorbisenc support:\tNo"
-fi
-
 if test "x$use_libcap" != "xno"; then
   final_message="$final_message\n  libcap support:\tYes"
 else
@@ -2569,7 +2539,11 @@ OUTPUT_FILES="Makefile \
     tools/darwin/Configurations/Common.xcconfig \
     tools/darwin/packaging/xbmc-ios/mkdeb-xbmc-ios.sh \
     tools/darwin/packaging/xbmc-atv2/mkdeb-xbmc-atv2.sh \
-    project/cmake/xbmc-config.cmake"
+    tools/darwin/packaging/xbmc-osx/mkdmg-xbmc-osx.sh \
+    xbmc/osx/Info.plist \
+    project/cmake/xbmc-config.cmake \
+    tools/android/packaging/xbmc/AndroidManifest.xml \
+    addons/xbmc.addon/addon.xml"
 
 if test "$use_wayland" = "yes"; then
 OUTPUT_FILES="$OUTPUT_FILES xbmc/windowing/tests/wayland/Makefile"
@@ -2626,7 +2600,6 @@ AC_SUBST(LIBFLAC_BASENAME)
 AC_SUBST(LIBVORBISFILE_BASENAME)
 AC_SUBST(LIBMODPLUG_BASENAME)
 AC_SUBST(LIBOGG_BASENAME)
-AC_SUBST(LIBVORBISENC_BASENAME)
 AC_SUBST(LIBVORBIS_BASENAME)
 AC_SUBST(LIBASS_BASENAME)
 AC_SUBST(LIBMEPG2_BASENAME)