+dnl Check for dynamic plugins
+ac_cv_have_plugins=no
+
+# OS X style
+AC_CHECK_HEADERS(mach-o/dyld.h,
+ [AC_CHECK_FUNCS(NSLinkModule,
+ [AC_DEFINE(HAVE_DL_DYLD, 1, [Define if you have the Darwin dyld API])
+ ac_cv_have_plugins=yes])])
+
+# HP-UX style
+if test "${ac_cv_have_plugins}" = "no"; then
+ AC_CHECK_HEADERS(dl.h)
+ ac_cv_my_have_shl_load=no
+ AC_CHECK_FUNC(shl_load,
+ [ac_cv_my_have_shl_load=yes,
+ AC_CHECK_LIB(dld, shl_load,
+ [ac_cv_my_have_shl_load=yes
+ AX_ADD_LDFLAGS([vlc],[-ldld])])])
+ if test "${ac_cv_my_have_shl_load}" = "yes"; then
+ AC_DEFINE(HAVE_DL_SHL_LOAD, 1, [Define if you have the shl_load API])
+ ac_cv_have_plugins=yes
+ fi
+fi
+
+# Whatever style
+if test "${ac_cv_have_plugins}" = "no"; then
+ AC_CHECK_LIB(dld, dld_link,
+ [AX_ADD_LDFLAGS([vlc],[-ldld])
+ AC_DEFINE(HAVE_DL_DLD_LINK, 1, [Define if you have the GNU dld library])
+ ac_cv_have_plugins=yes])
+fi
+
+# Win32 style
+if test "${ac_cv_have_plugins}" = "no"; then
+ if test "${SYS}" = "mingw32" -o "${SYS}" = "cygwin"; then
+ AC_CHECK_LIB(kernel32, main,
+ [AX_ADD_LDFLAGS([vlc],[-lkernel32])
+ AC_DEFINE(HAVE_DL_WINDOWS, 1, [Define if you have Windows' LoadLibrary])
+ ac_cv_have_plugins=yes])
+ fi
+fi
+
+# BeOS style
+if test "${ac_cv_have_plugins}" = "no"; then
+ AC_CHECK_HEADERS(image.h)
+ AC_CHECK_FUNCS(load_add_on,
+ [AC_DEFINE(HAVE_DL_BEOS, 1, [Define if you have the BeOS dl])
+ ac_cv_have_plugins=yes])
+fi
+
+# Only test for dlopen() if the others didn't work
+if test "${ac_cv_have_plugins}" = "no"; then
+ AC_CHECK_HEADERS(dlfcn.h sys/dl.h)
+ ac_cv_my_have_dlopen=no
+ AC_CHECK_FUNC(dlopen,
+ ac_cv_my_have_dlopen=yes,
+ AC_CHECK_LIB(dl, dlopen,
+ ac_cv_my_have_dlopen=yes
+ AX_ADD_LDFLAGS([vlc],[-ldl]),
+ AC_CHECK_LIB(svld, dlopen,
+ ac_cv_my_have_dlopen=yes
+ AX_ADD_LDFLAGS([vlc],[-lsvld]))))
+ if test "${ac_cv_my_have_dlopen}" = "yes"; then
+ AC_DEFINE(HAVE_DL_DLOPEN, 1, [Define if you have the dlopen API])
+ ac_cv_have_plugins=yes
+ fi
+fi
+