configure.ac: Disable various code when compiling for MinGW.
authorDavid Schleef <ds@schleef.org>
Wed, 14 Apr 2004 01:38:27 +0000 (01:38 +0000)
committerDavid Schleef <ds@schleef.org>
Wed, 14 Apr 2004 01:38:27 +0000 (01:38 +0000)
Original commit message from CVS:
* configure.ac:  Disable various code when compiling for MinGW.
* gst/elements/Makefile.am:
* gst/elements/gstelements.c:
* gst/elements/gstfdsrc.c: (gst_fdsrc_get):
* gst/elements/gstfilesrc.c: (gst_filesrc_init), (gst_filesrc_get):
* gst/registries/gstxmlregistry.c: (make_dir):

ChangeLog
configure.ac
gst/elements/Makefile.am
gst/elements/gstelements.c
gst/elements/gstfdsrc.c
gst/elements/gstfilesrc.c
gst/registries/gstxmlregistry.c
plugins/elements/Makefile.am
plugins/elements/gstelements.c
plugins/elements/gstfdsrc.c
plugins/elements/gstfilesrc.c

index 8141982..d86e18e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,14 @@
 2004-04-13  David Schleef  <ds@schleef.org>
 
+       * configure.ac:  Disable various code when compiling for MinGW.
+       * gst/elements/Makefile.am:
+       * gst/elements/gstelements.c:
+       * gst/elements/gstfdsrc.c: (gst_fdsrc_get):
+       * gst/elements/gstfilesrc.c: (gst_filesrc_init), (gst_filesrc_get):
+       * gst/registries/gstxmlregistry.c: (make_dir):
+
+2004-04-13  David Schleef  <ds@schleef.org>
+
        * gst/Makefile.am:
        * gst/gstcpu.c: (gst_cpuid_i386): Convert asm source into inline
        assembly.
index f25db12..bd3fc92 100644 (file)
@@ -233,6 +233,15 @@ if test "x$GST_CVS" = "xyes"; then
   AS_COMPILER_FLAG(-fno-common,GST_INT_CFLAGS="$GST_INT_CFLAGS -fno-common",)
 fi
 
+dnl HAVE_WIN32 currently means "disable POSIXisms".
+case "$host" in
+  *-*-mingw*)
+    AC_DEFINE_UNQUOTED(HAVE_WIN32, 1, [Defined if compiling for Windows])
+    ;;
+  *)
+    ;;
+esac
+
 dnl Check for essential libraries first:
 dnl ====================================
 
index bdab0ec..ffb4078 100644 (file)
@@ -8,6 +8,16 @@ plugindir = $(libdir)/gstreamer-@GST_MAJORMINOR@
 
 plugin_LTLIBRARIES = libgstelements.la
 
+# FIXME:
+# Disable multifilesrc on Windows, cause it uses mmap excessively
+# and I don't feel like fixing it yet.  See also the disablement
+# in gstelements.c.
+if AS_LIBTOOL_WIN32
+multifilesrc = 
+else
+multifilesrc = gstmultifilesrc.c
+endif
+
 libgstelements_la_DEPENDENCIES = ../libgstreamer-@GST_MAJORMINOR@.la
 libgstelements_la_SOURCES =    \
        gstaggregator.c         \
@@ -21,7 +31,7 @@ libgstelements_la_SOURCES =   \
        gstfdsrc.c              \
        gstidentity.c           \
        gstmd5sink.c            \
-       gstmultifilesrc.c       \
+       $(multifilesrc)         \
        gstpipefilter.c         \
        gstshaper.c             \
        gststatistics.c         \
index 8c9af2f..60f351f 100644 (file)
@@ -65,7 +65,9 @@ static struct _elements_entry _elements[] = {
   {"filesink", GST_RANK_NONE, gst_filesink_get_type},
   {"identity", GST_RANK_NONE, gst_identity_get_type},
   {"md5sink", GST_RANK_NONE, gst_md5sink_get_type},
+#ifndef HAVE_WIN32
   {"multifilesrc", GST_RANK_NONE, gst_multifilesrc_get_type},
+#endif
   {"pipefilter", GST_RANK_NONE, gst_pipefilter_get_type},
   {"shaper", GST_RANK_NONE, gst_shaper_get_type},
   {"statistics", GST_RANK_NONE, gst_statistics_get_type},
index 529b97b..ff884f5 100644 (file)
@@ -185,15 +185,19 @@ gst_fdsrc_get (GstPad * pad)
   GstFdSrc *src;
   GstBuffer *buf;
   glong readbytes;
+
+#ifndef HAVE_WIN32
   fd_set readfds;
   struct timeval t, *tp = &t;
   gint retval;
+#endif
 
   src = GST_FDSRC (gst_pad_get_parent (pad));
 
   /* create the buffer */
   buf = gst_buffer_new_and_alloc (src->blocksize);
 
+#ifndef HAVE_WIN32
   FD_ZERO (&readfds);
   FD_SET (src->fd, &readfds);
 
@@ -216,6 +220,7 @@ gst_fdsrc_get (GstPad * pad)
     gst_element_set_eos (GST_ELEMENT (src));
     return GST_DATA (gst_event_new (GST_EVENT_EOS));
   }
+#endif
 
   do {
     readbytes = read (src->fd, GST_BUFFER_DATA (buf), src->blocksize);
index 4ee66f1..eac08fa 100644 (file)
@@ -230,7 +230,9 @@ gst_filesrc_init (GstFileSrc * src)
   gst_pad_set_formats_function (src->srcpad, gst_filesrc_get_formats);
   gst_element_add_pad (GST_ELEMENT (src), src->srcpad);
 
+#ifdef HAVE_MMAP
   src->pagesize = getpagesize ();
+#endif
 
   src->filename = NULL;
   src->fd = 0;
index d7dd9ec..d08bc4e 100644 (file)
@@ -301,7 +301,7 @@ get_time (const char *path, gboolean * is_dir)
 }
 
 /* same as 0755 */
-#define dirmode \
+#define DIRMODE \
   (S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH)
 
 static gboolean
@@ -316,15 +316,19 @@ make_dir (gchar * filename)
   dirname = g_strndup (filename, strrchr (filename, '/') - filename);
 
   if (stat (dirname, &dirstat) == -1 && errno == ENOENT) {
-    if (mkdir (dirname, dirmode) != 0) {
+#ifndef HAVE_WIN32
+    if (mkdir (dirname, DIRMODE) != 0) {
       if (make_dir (dirname) != TRUE) {
         g_free (dirname);
         return FALSE;
       } else {
-        if (mkdir (dirname, dirmode) != 0)
+        if (mkdir (dirname, DIRMODE) != 0)
           return FALSE;
       }
     }
+#else
+    return FALSE;
+#endif
   }
 
   g_free (dirname);
index bdab0ec..ffb4078 100644 (file)
@@ -8,6 +8,16 @@ plugindir = $(libdir)/gstreamer-@GST_MAJORMINOR@
 
 plugin_LTLIBRARIES = libgstelements.la
 
+# FIXME:
+# Disable multifilesrc on Windows, cause it uses mmap excessively
+# and I don't feel like fixing it yet.  See also the disablement
+# in gstelements.c.
+if AS_LIBTOOL_WIN32
+multifilesrc = 
+else
+multifilesrc = gstmultifilesrc.c
+endif
+
 libgstelements_la_DEPENDENCIES = ../libgstreamer-@GST_MAJORMINOR@.la
 libgstelements_la_SOURCES =    \
        gstaggregator.c         \
@@ -21,7 +31,7 @@ libgstelements_la_SOURCES =   \
        gstfdsrc.c              \
        gstidentity.c           \
        gstmd5sink.c            \
-       gstmultifilesrc.c       \
+       $(multifilesrc)         \
        gstpipefilter.c         \
        gstshaper.c             \
        gststatistics.c         \
index 8c9af2f..60f351f 100644 (file)
@@ -65,7 +65,9 @@ static struct _elements_entry _elements[] = {
   {"filesink", GST_RANK_NONE, gst_filesink_get_type},
   {"identity", GST_RANK_NONE, gst_identity_get_type},
   {"md5sink", GST_RANK_NONE, gst_md5sink_get_type},
+#ifndef HAVE_WIN32
   {"multifilesrc", GST_RANK_NONE, gst_multifilesrc_get_type},
+#endif
   {"pipefilter", GST_RANK_NONE, gst_pipefilter_get_type},
   {"shaper", GST_RANK_NONE, gst_shaper_get_type},
   {"statistics", GST_RANK_NONE, gst_statistics_get_type},
index 529b97b..ff884f5 100644 (file)
@@ -185,15 +185,19 @@ gst_fdsrc_get (GstPad * pad)
   GstFdSrc *src;
   GstBuffer *buf;
   glong readbytes;
+
+#ifndef HAVE_WIN32
   fd_set readfds;
   struct timeval t, *tp = &t;
   gint retval;
+#endif
 
   src = GST_FDSRC (gst_pad_get_parent (pad));
 
   /* create the buffer */
   buf = gst_buffer_new_and_alloc (src->blocksize);
 
+#ifndef HAVE_WIN32
   FD_ZERO (&readfds);
   FD_SET (src->fd, &readfds);
 
@@ -216,6 +220,7 @@ gst_fdsrc_get (GstPad * pad)
     gst_element_set_eos (GST_ELEMENT (src));
     return GST_DATA (gst_event_new (GST_EVENT_EOS));
   }
+#endif
 
   do {
     readbytes = read (src->fd, GST_BUFFER_DATA (buf), src->blocksize);
index 4ee66f1..eac08fa 100644 (file)
@@ -230,7 +230,9 @@ gst_filesrc_init (GstFileSrc * src)
   gst_pad_set_formats_function (src->srcpad, gst_filesrc_get_formats);
   gst_element_add_pad (GST_ELEMENT (src), src->srcpad);
 
+#ifdef HAVE_MMAP
   src->pagesize = getpagesize ();
+#endif
 
   src->filename = NULL;
   src->fd = 0;