Check for dlfcn.h presence
[idzebra-moved-to-github.git] / recctrl / recctrl.c
index c4dbdbc..6678a00 100644 (file)
@@ -1,4 +1,4 @@
-/* $Id: recctrl.c,v 1.13 2004-11-19 10:27:12 heikki Exp $
+/* $Id: recctrl.c,v 1.15 2005-01-05 00:10:19 adam Exp $
    Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004
    Index Data Aps
 
@@ -24,7 +24,9 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
 #include <stdio.h>
 #include <assert.h>
 #include <string.h>
+#if HAVE_DLFCN_H
 #include <dlfcn.h>
+#endif
 
 #include <direntz.h>
 #include <zebrautl.h>
@@ -65,6 +67,9 @@ struct recTypes {
 #ifdef IDZEBRA_STATIC_GRS_DANBIB
     extern RecType idzebra_filter_grs_danbib[];
 #endif
+#ifdef IDZEBRA_STATIC_SAFARI
+    extern RecType idzebra_filter_safari[];
+#endif
 
 static void recTypeClass_add (struct recTypeClass **rts, RecType *rt,
                              NMEM nmem, void *module_handle);
@@ -94,7 +99,11 @@ RecTypeClass recTypeClass_create (Res res, NMEM nmem)
 #ifdef IDZEBRA_STATIC_GRS_DANBIB
     recTypeClass_add (&rts, idzebra_filter_grs_danbib, nmem, 0);
 #endif
+#ifdef IDZEBRA_STATIC_SAFARI
+    recTypeClass_add (&rts, idzebra_filter_safari, nmem, 0);
+#endif
 
+#if HAVE_DLFCN_H
     if (module_path)
     {
        DIR *dir = opendir(module_path);
@@ -140,6 +149,7 @@ RecTypeClass recTypeClass_create (Res res, NMEM nmem)
            closedir(dir);
        }
     }
+#endif
     return rts;
 }
 
@@ -174,8 +184,10 @@ void recTypeClass_destroy(RecTypeClass rtc)
 {
     for (; rtc; rtc = rtc->next)
     {
+#if HAVE_DLFCN_H
        if (rtc->module_handle)
            dlclose(rtc->module_handle);
+#endif
     }
 }