configure.ac 8.08 KB
Newer Older
1
dnl Autoconf settings for npapi-vlc
2

3
AC_COPYRIGHT([Copyright 2002-2011 VLC authors and VideoLAN])
4

5
AC_INIT(npapi-vlc, 1.2.0-rc)
6 7 8 9 10 11
VERSION_MAJOR="1"
AC_SUBST(VERSION_MAJOR)
VERSION_MINOR="2"
AC_SUBST(VERSION_MINOR)
VERSION_REVISION="0"
AC_SUBST(VERSION_REVISION)
12
VERSION_EXTRA="-rc"
13
AC_SUBST(VERSION_EXTRA)
14 15 16 17 18 19 20
dnl Win32 need s a numerical version_extra.
case $( echo ${VERSION_EXTRA}|wc -m ) in
       "1") VERSION_EXTRA_RC="0";;
       "2") VERSION_EXTRA_RC=$( echo ${VERSION_EXTRA}|tr "abcdefghi" "123456789") ;;
       *) if test ${VERSION_EXTRA} = "-git"; then VERSION_EXTRA_RC="666"; else VERSION_EXTRA_RC="99"; fi
esac
AC_SUBST(VERSION_EXTRA_RC)
21
COPYRIGHT_YEARS="2002-2011"
22
AC_SUBST(COPYRIGHT_YEARS)
23
COPYRIGHT_MESSAGE="Copyright © ${COPYRIGHT_YEARS} VLC authors and VideoLAN"
24
AC_SUBST(COPYRIGHT_MESSAGE)
25

Cheng Sun's avatar
Cheng Sun committed
26
AC_CONFIG_SRCDIR(npapi/vlcshell.cpp)
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
AC_CONFIG_AUX_DIR(autotools)
AC_CONFIG_MACRO_DIR(m4)
AC_CANONICAL_BUILD
AC_CANONICAL_HOST
AC_PRESERVE_HELP_ORDER

AM_INIT_AUTOMAKE(tar-ustar color-tests)
AM_CONFIG_HEADER(config.h)

# Disable with "./configure --disable-silent-rules" or "make V=1"
AM_SILENT_RULES([yes])

dnl
dnl Check for tools
dnl
AC_PROG_CC_C99
AC_USE_SYSTEM_EXTENSIONS
AC_DEFINE([_FORTIFY_SOURCE], 2, [Define to '2' to get glibc warnings.])
AC_PROG_CXX

47 48 49 50 51 52
dnl override platform specific check for dependent libraries
dnl otherwise libtool linking of shared libraries will
dnl fail on anything other than pass_all.
AC_CACHE_VAL(lt_cv_deplibs_check_method,
    [lt_cv_deplibs_check_method=pass_all])

53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
AC_DISABLE_STATIC
AC_LIBTOOL_DLOPEN
AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL

AC_PROG_INSTALL
PKG_PROG_PKG_CONFIG
AC_CHECK_TOOL(DLLTOOL, dlltool, :)

dnl Check for compiler properties
AC_C_CONST

dnl
dnl  Check the operating system
dnl
case "${host_os}" in
  darwin*)
    SYS=darwin

    dnl Force gcc "-arch" flag
    ARCH_flag=""
    case "${host}" in
      i386*)
        ARCH_flag="-arch i386"
      ;;
      ppc64*)
        ARCH_flag="-arch ppc64"
      ;;
      ppc*)
        ARCH_flag="-arch ppc"
      ;;
      x86_64*)
        ARCH_flag="-arch x86_64"
      ;;
    esac

Rafaël Carré's avatar
Rafaël Carré committed
89 90 91 92
    CFLAGS="${CFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
    CXXFLAGS="${CXXFLAGS} -D_INTL_REDIRECT_MACROS ${ARCH_flag}"
    CPPFLAGS="${CPPFLAGS} ${ARCH_flag}"
    LDFLAGS="${LDFLAGS} -Wl,-headerpad_max_install_names ${ARCH_flag}"
93 94 95 96 97
    ;;
  *mingw32*)
    SYS=mingw32
    AC_CHECK_TOOL(WINDRES, windres, :)
    AC_DEFINE([_WIN32_WINNT], 0x0501, [Define to '0x0501' for Windows XP APIs.])
98
    AC_DEFINE([_WIN32_IE], 0x0600, [Define to '0x0600' for IE6.0 APIs.])
Rafaël Carré's avatar
Rafaël Carré committed
99
    AC_DEFINE([_WIN32], 1, [Define to 1 if targetting Windows.])
100 101 102 103
    ;;
esac
AM_CONDITIONAL(HAVE_DARWIN, test "${SYS}" = "darwin")
AM_CONDITIONAL(HAVE_WIN32, test "${SYS}" = "mingw32")
104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

dnl
dnl Check widl/midl tools for win32
WIDL="no"
MIDL="no"
AS_IF([test "${SYS}" = "mingw32"],[
    AC_CHECK_PROGS(MIDL, [midl], no)

    dnl FIXME
    dnl AC_CHECK_PROGS(WIDL, [widl], no)
    dnl

    AC_LANG_PUSH(C++)
    AC_CHECK_HEADER(ole2.h,,[AC_MSG_ERROR([required OLE header ole2.h is missing from your system])])
    AC_CHECK_HEADER(olectl.h,,[AC_MSG_ERROR([required OLE header olectl.h is missing from your system])])
    AC_CHECK_HEADERS(objsafe.h,,,[#include <ole2.h>])
    AC_LANG_POP(C++)
])

AM_CONDITIONAL(HAS_MIDL_COMPILER, test "${MIDL}" != "no")
AM_CONDITIONAL(HAS_WIDL_COMPILER, test "${WIDL}" != "no")

126 127 128 129 130 131
dnl
dnl Buggy glibc prevention. Purposedly not cached.
dnl See sourceware.org bugs 5058 and 5443.
dnl Ubuntu alone has 20 bug numbers for this...
dnl
AC_MSG_CHECKING(for buggy GNU/libc versions)
132
AC_PREPROC_IFELSE([AC_LANG_SOURCE([
133 134 135 136 137
#include <limits.h>
#if defined (__GLIBC__) && (__GLIBC__ == 2) \
  && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
# error GNU/libc with dcgettext killer bug!
#endif
138
])], [
139 140 141 142 143 144 145 146
  AC_MSG_RESULT([not present])
], [
  AC_MSG_RESULT([found])
  AC_MSG_ERROR([Buggy GNU/libc (version 2.5 - 2.7) present. VLC would crash; there is no viable
work-around for this. Check with your distribution vendor on how to update the
glibc run-time.])
])

147 148
dnl
dnl libraries checks
149
AC_PATH_XTRA
150
PKG_CHECK_MODULES([LIBVLC], [libvlc >= 1.1.0])
151

152 153 154 155 156 157 158

dnl
dnl ActiveX
AC_ARG_ENABLE(activex, AS_HELP_STRING([--enable-activex], [ActiveX plugin [default=yes (on Windows)]]))
AM_CONDITIONAL(BUILD_ACTIVEX, test "${SYS}" = "mingw32" -a "${enable_activex}" != "no")


159 160
dnl
dnl NPAPI headers
161
AC_ARG_ENABLE(npapi, AS_HELP_STRING([--enable-npapi], [NPAPI/Mozilla plugin [default=yes]]))
162 163 164
AC_ARG_VAR([MOZILLA_CFLAGS], [C compiler flags for Mozilla, overriding pkg-config])
AC_ARG_VAR([MOZILLA_LIBS], [linker flags for Mozilla, overriding pkg-config])

165
AS_IF([test "x${enable_npapi}" != x"no"],[
166

167
AC_LANG_PUSH(C++)
168
AC_MSG_CHECKING([Mozilla headers])
169

170
found=0
171 172 173
dnl pkg-config
dnl As we want to do a loop due to the number of name possible for the .pc
dnl we can't use the pkg-config macros.
174
  for i in "${with_mozilla_pkg}" npapi-sdk seamonkey-plugin iceape-plugin xulrunner-plugin firefox-plugin iceweasel-plugin mozilla-plugin libxul; do
175 176
    if test -n "$i"; then
      echo "Trying to find $i package" >&AS_MESSAGE_LOG_FD
177 178 179
      AS_IF([test $i = npapi-sdk], [moz_ver=0.27], [moz_ver=1.9.2])
      AC_MSG_CHECKING([for $i >= $moz_ver])
      if $PKG_CONFIG --exists --print-errors "$i >= $moz_ver" 2>&AS_MESSAGE_LOG_FD
180 181 182 183
      then
        echo "Using $i pkg-config package." >&AS_MESSAGE_LOG_FD
        MOZILLA_CFLAGS=$(eval $PKG_CONFIG --cflags "$i" )
        MOZILLA_LIBS=$(eval $PKG_CONFIG --libs "$i" )
184
        AC_MSG_RESULT([yes])
185
        found=1
186
        break
187 188
      else
        AC_MSG_RESULT([no])
189 190 191
      fi
    fi
  done
192

193
test "$found" = 0 && AC_MSG_RESULT([no])
194

195
CPPFLAGS="${CPPFLAGS} ${MOZILLA_CFLAGS}"
196

197 198
AC_CHECK_HEADERS(npapi.h)
AC_CHECK_HEADERS(npruntime.h, [
199 200 201 202
    dnl if found
  ],[
    dnl if not found
    AC_MSG_ERROR([Please install the Mozilla development tools, required headers were not found.])
203
  ], [
204 205 206 207
    #include <stdint.h>
    #if HAVE_NPAPI_H
     #include <npapi.h>
    #endif
208 209
  ]
)
210

211

212 213
dnl
dnl check the const-ness of GetMIMEDesc, since it changed in latest npapi headers
214 215 216 217 218 219 220 221 222 223
AC_MSG_CHECKING([if NPP_GetMIMEDescription() returns const])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([
   #ifdef WIN32
   # define XP_WIN 1
   #else
   # ifdef __APPLE__
   #  define XP_MACOSX 1
   # endif
   # define XP_UNIX 1
   #endif
224
   #include <stdint.h>
225 226 227 228
   #include <npapi.h>
  const char *NPP_GetMIMEDescription(void);
])],[
  AC_MSG_RESULT(yes)
Cheng Sun's avatar
Cheng Sun committed
229
  AC_DEFINE(NPP_GET_MIME_CONST, [const], [Whether NPP_GetMIMEDescription returns const])
230 231
],[
  AC_MSG_RESULT(no)
Cheng Sun's avatar
Cheng Sun committed
232
  AC_DEFINE(NPP_GET_MIME_CONST, [], [Whether NPP_GetMIMEDescription returns const])
233 234
])

235 236
AC_LANG_POP(C++)

237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264
])
dnl end of NPAPI
AM_CONDITIONAL(BUILD_NPAPI, test "${enable_npapi}" != "no")

dnl
dnl GTK+ for linux toolbar
AC_ARG_WITH([gtk], AS_HELP_STRING([--with-gtk], [Build the GTK+ toolbars in NPAPI plugin [default=auto]]),, [with_gtk=yes])
gtk_found=no
AS_IF([ test "${SYS}" != "mingw32" -a "${SYS}" != "darwin" ], [
  AS_IF([ test "x$with_gtk" != "xno" ],
    [
       PKG_CHECK_MODULES(GTK, [gtk+-2.0],
       [gtk_found=yes],
       [
         AC_MSG_WARN([GTK+ >=2 not found. Re-run configure with --without-gtk.])
         PKG_CHECK_MODULES(XPM, [xpm],, [
           AC_MSG_ERROR([Please install the libXpm development files, or re-run configure with --with-gtk])
         ])
       ])
    ], [
      PKG_CHECK_MODULES(XPM, [xpm],, [
        AC_MSG_ERROR([Please install the libXpm development files, or re-run configure with --with-gtk])
      ])
    ])
])
AM_CONDITIONAL(USE_GTK, [ test "x$gtk_found" = "xyes" ])


265 266
dnl
dnl final flags for ActiveX
267 268 269 270 271 272 273 274
AM_COND_IF([HAVE_WIN32], [
  ACTIVEX_CPPFLAGS="${CPPFLAGS} -DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_"
  ACTIVEX_CXXFLAGS="${CXXFLAGS} -fno-exceptions"

  AC_ARG_VAR([ACTIVEX_LIBS], [linker flags for Activex])
  ACTIVEX_LIBS="${ACTIVEX_LIBS} -lole32 -loleaut32 -luuid -lshlwapi -lgdi32"
])

275 276 277
AC_CONFIG_FILES([
  Makefile
  share/Makefile
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
278 279 280 281
  npapi/Makefile
  npapi/install.js
  npapi/install.rdf
  npapi/manifest.json
282
])
283

284 285
AM_COND_IF([HAVE_WIN32], [
  AC_CONFIG_FILES([
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
286
    npapi/npvlc_rc.rc
287 288 289
    activex/Makefile
    activex/axvlc.inf
    activex/axvlc_rc.rc
290 291 292 293
  ])
])
AM_COND_IF([HAVE_DARWIN], [
  AC_CONFIG_FILES([
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
294
    npapi/vlc.r
295 296
    extras/macosx/Info.plist
    extras/macosx/InstallerInfo.plist
297 298 299
  ])
])
AC_OUTPUT