include ../../../config.mak
+include config.mak
TARGET = ../libmltgtk2$(LIBSUF)
-OBJS = factory.o \
- consumer_gtk2.o \
- producer_pixbuf.o \
- producer_pango.o \
- pixops.o \
- filter_rescale.o
+OBJS = factory.o
+
+ifdef USE_GTK2
+OBJS += consumer_gtk2.o
+CFLAGS += `pkg-config gtk+-2.0 --cflags`
+LDFLAGS += `pkg-config gtk+-2.0 --libs`
+endif
+
+ifdef USE_PIXBUF
+OBJS += producer_pixbuf.o pixops.o filter_rescale.o
+CFLAGS += `pkg-config gdk-pixbuf-2.0 --cflags`
+LDFLAGS += `pkg-config gdk-pixbuf-2.0 --libs`
+endif
ifdef MMX_FLAGS
ASM_OBJS = have_mmx.o scale_line_22_yuv_mmx.o
endif
-CFLAGS += `pkg-config gtk+-2.0 --cflags` `pkg-config gdk-pixbuf-2.0 --cflags` `pkg-config pangoft2 --cflags` -I../..
-
-LDFLAGS += `pkg-config gtk+-2.0 --libs` `pkg-config gdk-pixbuf-2.0 --libs` `pkg-config pangoft2 --libs`
+ifdef USE_PANGO
+OBJS += producer_pango.o
+CFLAGS += `pkg-config pangoft2 --cflags`
+LDFLAGS += `pkg-config pangoft2 --libs`
+endif
+CFLAGS += -I../..
LDFLAGS+=-L../../framework -lmlt
SRCS := $(OBJS:.o=.c)
if [ "$help" != "1" ]
then
-cat << EOF >> ../producers.dat
-pixbuf libmltgtk2$LIBSUF
-pango libmltgtk2$LIBSUF
-EOF
+ pkg-config gtk+-2.0 2> /dev/null
+ disable_gtk2=$?
-cat << EOF >> ../filters.dat
-gtkrescale libmltgtk2$LIBSUF
-EOF
+ pkg-config gdk-pixbuf-2.0 2> /dev/null
+ disable_pixbuf=$?
-cat << EOF >> ../consumers.dat
-gtk2_preview libmltgtk2$LIBSUF
-EOF
+ pkg-config pangoft2 2> /dev/null
+ disable_pango=$?
+ if [ "$disable_gtk2" != "0" -a "$disable_pixbuf" != 0 -a "$disable_pango" != "0" ]
+ then
+ echo No GTK2 components found - disabling
+ touch ../disable-gtk2
+ exit 0
+ fi
+
+ [ "$disable_gtk2" != "0" ] && echo "- gtk2 not found: gtk2 preview disabled"
+ [ "$disable_pixbuf" != "0" ] && echo "- pixbuf not found: pixbuf loader and rescaler disabled"
+ [ "$disable_pango" != "0" ] && echo "- pango not found: pango titler disabled"
+
+ echo > config.h
+ [ "$disable_gtk2" == "0" ] && echo "#define USE_GTK2" >> config.h
+ [ "$disable_pixbuf" == "0" ] && echo "#define USE_PIXBUF" >> config.h
+ [ "$disable_pango" == "0" ] && echo "#define USE_PANGO" >> config.h
+
+ echo > config.mak
+ [ "$disable_gtk2" == "0" ] && echo "USE_GTK2=1" >> config.mak
+ [ "$disable_pixbuf" == "0" ] && echo "USE_PIXBUF=1" >> config.mak
+ [ "$disable_pango" == "0" ] && echo "USE_PANGO=1" >> config.mak
+
+ [ "$disable_pixbuf" == "0" ] && echo "pixbuf libmltgtk2$LIBSUF" >> ../producers.dat
+ [ "$disable_pango" == "0" ] && echo "pango libmltgtk2$LIBSUF" >> ../producers.dat
+ [ "$disable_pixbuf" == "0" ] && echo "gtkrescale libmltgtk2$LIBSUF" >> ../filters.dat
+ [ "$disable_gtk2" == "0" ] && echo "gtk2_preview libmltgtk2$LIBSUF" >> ../consumers.dat
+
+ exit 0
fi
* Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#include "config.h"
#include <string.h>
+
+#ifdef USE_PIXBUF
#include <gdk-pixbuf/gdk-pixbuf.h>
-#include "consumer_gtk2.h"
#include "producer_pixbuf.h"
-#include "producer_pango.h"
#include "filter_rescale.h"
+#endif
+
+#ifdef USE_GTK2
+#include "consumer_gtk2.h"
+#endif
+
+#ifdef USE_PANGO
+#include "producer_pango.h"
+#endif
static void initialise( )
{
void *mlt_create_producer( char *id, void *arg )
{
initialise( );
+
+#ifdef USE_PIXBUF
if ( !strcmp( id, "pixbuf" ) )
return producer_pixbuf_init( arg );
- else if ( !strcmp( id, "pango" ) )
+#endif
+
+#ifdef USE_PANGO
+ if ( !strcmp( id, "pango" ) )
return producer_pango_init( arg );
+#endif
+
return NULL;
}
void *mlt_create_filter( char *id, void *arg )
{
initialise( );
+
+#ifdef USE_PIXBUF
if ( !strcmp( id, "gtkrescale" ) )
return filter_rescale_init( arg );
+#endif
+
return NULL;
}
void *mlt_create_consumer( char *id, void *arg )
{
initialise( );
+
+#ifdef USE_GTK2
if ( !strcmp( id, "gtk2_preview" ) )
return consumer_gtk2_preview_init( arg );
+#endif
+
return NULL;
}