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

Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
3
AC_COPYRIGHT([Copyright 2002-2012 VLC authors and VideoLAN])
4

5
AC_INIT(npapi-vlc, 2.0.2)
6
VERSION_MAJOR="2"
7
AC_SUBST(VERSION_MAJOR)
8
VERSION_MINOR="0"
9
AC_SUBST(VERSION_MINOR)
10
VERSION_REVISION="2"
11
AC_SUBST(VERSION_REVISION)
12
VERSION_EXTRA=""
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)
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
21
COPYRIGHT_YEARS="2002-2012"
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

dnl
dnl Check widl/midl tools for win32
AS_IF([test "${SYS}" = "mingw32"],[
    AC_CHECK_PROGS(MIDL, [midl], no)
109
    AC_CHECK_PROGS(WIDL, [widl], no)
110 111 112 113 114 115

    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++)
116 117 118
],[
    MIDL="no"
    WIDL="no"
119 120 121 122 123
])

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

124 125 126 127 128 129
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)
130
AC_PREPROC_IFELSE([AC_LANG_SOURCE([
131 132 133 134 135
#include <limits.h>
#if defined (__GLIBC__) && (__GLIBC__ == 2) \
  && (__GLIBC_MINOR__ >= 5) && (__GLIBC_MINOR__ <= 7)
# error GNU/libc with dcgettext killer bug!
#endif
136
])], [
137 138 139 140 141 142 143 144
  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.])
])

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

150 151 152 153 154 155 156

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")


157 158
dnl
dnl NPAPI headers
159
AC_ARG_ENABLE(npapi, AS_HELP_STRING([--enable-npapi], [NPAPI/Mozilla plugin [default=yes]]))
160 161 162
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])

163
AS_IF([test "x${enable_npapi}" != x"no"],[
164

165
AC_LANG_PUSH(C++)
166
AC_MSG_CHECKING([Mozilla headers])
167

168
found=0
169 170 171
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.
172
  for i in "${with_mozilla_pkg}" npapi-sdk seamonkey-plugin iceape-plugin xulrunner-plugin firefox-plugin iceweasel-plugin mozilla-plugin libxul; do
173 174
    if test -n "$i"; then
      echo "Trying to find $i package" >&AS_MESSAGE_LOG_FD
175 176 177
      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
178 179 180 181
      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" )
182
        AC_MSG_RESULT([yes])
183
        found=1
184
        break
185 186
      else
        AC_MSG_RESULT([no])
187 188 189
      fi
    fi
  done
190

191
test "$found" = 0 && AC_MSG_RESULT([no])
192

193
CPPFLAGS="${CPPFLAGS} ${MOZILLA_CFLAGS}"
194

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

209

210 211
dnl
dnl check the const-ness of GetMIMEDesc, since it changed in latest npapi headers
212 213 214 215 216 217 218 219 220 221
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
222
   #include <stdint.h>
223 224 225 226
   #include <npapi.h>
  const char *NPP_GetMIMEDescription(void);
])],[
  AC_MSG_RESULT(yes)
Cheng Sun's avatar
Cheng Sun committed
227
  AC_DEFINE(NPP_GET_MIME_CONST, [const], [Whether NPP_GetMIMEDescription returns const])
228 229
],[
  AC_MSG_RESULT(no)
Cheng Sun's avatar
Cheng Sun committed
230
  AC_DEFINE(NPP_GET_MIME_CONST, [], [Whether NPP_GetMIMEDescription returns const])
231 232
])

233 234
AC_LANG_POP(C++)

235 236 237 238 239 240 241 242 243 244 245
])
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" ],
    [
246
       PKG_CHECK_MODULES(GTK, [gtk+-2.0], [gtk_found=yes])
247
    ])
248 249
  AS_IF([ test "x$gtk_found" == "xno" ],
    [
250 251
      PKG_CHECK_MODULES(XCB, [xcb],, [
        AC_MSG_ERROR([Please install the libxcb development files, or re-run configure with --with-gtk])
252
      ])
253
    ])
254
])
255 256 257
AS_IF([ test "x$gtk_found" = "xyes" ],
    AC_DEFINE([USE_GTK], [1], [Define to 1 if using GTK+]))
AM_CONDITIONAL(WITH_GTK, [ test "x$gtk_found" = "xyes" ])
258

259 260
dnl
dnl final flags for ActiveX
261 262 263 264
AM_COND_IF([HAVE_WIN32], [
  ACTIVEX_CPPFLAGS="${CPPFLAGS} -DUNICODE -D_UNICODE -D_MIDL_USE_GUIDDEF_"
  ACTIVEX_CXXFLAGS="${CXXFLAGS} -fno-exceptions"

265
  AC_ARG_VAR([ACTIVEX_LIBS], [linker flags for ActiveX])
266 267 268
  ACTIVEX_LIBS="${ACTIVEX_LIBS} -lole32 -loleaut32 -luuid -lshlwapi -lgdi32"
])

269 270 271
AC_CONFIG_FILES([
  Makefile
  share/Makefile
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
272
  npapi/Makefile
273
  activex/Makefile
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
274 275 276
  npapi/install.js
  npapi/install.rdf
  npapi/manifest.json
277
])
278

279 280
AM_COND_IF([HAVE_WIN32], [
  AC_CONFIG_FILES([
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
281
    npapi/npvlc_rc.rc
282 283
    activex/axvlc.inf
    activex/axvlc_rc.rc
284 285 286 287
  ])
])
AM_COND_IF([HAVE_DARWIN], [
  AC_CONFIG_FILES([
Jean-Baptiste Kempf's avatar
Jean-Baptiste Kempf committed
288
    npapi/vlc.r
289 290
    extras/macosx/Info.plist
    extras/macosx/InstallerInfo.plist
291 292 293
  ])
])
AC_OUTPUT