diff -ruN ttxtsubs-0.0.9/Makefile ttxtsubs-0.0.9-darwin/Makefile
--- ttxtsubs-0.0.9/Makefile	2009-04-03 11:55:39.000000000 +0300
+++ ttxtsubs-0.0.9-darwin/Makefile	2010-04-19 21:58:59.000000000 +0300
@@ -9,6 +9,8 @@
 #
 PLUGIN = ttxtsubs
 
+APPLE_DARWIN = $(shell gcc -dumpmachine | grep -q 'apple-darwin' && echo "1" || echo "0")
+
 ### The version number of this plugin (taken from the main source file):
 
 VERSION = $(shell grep 'static const char \*VERSION *=' $(PLUGIN).c | awk '{ print $$6 }' | sed -e 's/[";]//g')
@@ -16,7 +18,11 @@
 ### The C++ compiler and options:
 
 CXX      ?= g++
+ifeq ($(APPLE_DARWIN), 1)
+CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual -fno-common -bundle -flat_namespace -undefined suppress -arch i386
+else
 CXXFLAGS ?= -fPIC -g -O2 -Wall -Woverloaded-virtual
+endif
 
 ### The directory environment:
 
@@ -42,6 +48,9 @@
 ### Includes and Defines (add further entries here):
 
 INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include
+ifeq ($(APPLE_DARWIN), 1)
+INCLUDES += -I/sw/include -I/opt/local/include
+endif
 
 DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
 
@@ -97,8 +106,13 @@
 all: libvdr-$(PLUGIN).so i18n
 
 libvdr-$(PLUGIN).so: $(OBJS)
+ifeq ($(APPLE_DARWIN), 1)
+	$(CXX) $(CXXFLAGS) $(OBJS) -o $@
+	@cp $@ $(LIBDIR)/$@.$(APIVERSION)
+else
 	$(CXX) $(CXXFLAGS) -shared $(OBJS) -o $@
 	@cp --remove-destination $@ $(LIBDIR)/$@.$(APIVERSION)
+endif
 
 dist: clean
 	@-rm -rf $(TMPDIR)/$(ARCHIVE)
diff -ruN ttxtsubs-0.0.9/siinfo.c ttxtsubs-0.0.9-darwin/siinfo.c
--- ttxtsubs-0.0.9/siinfo.c	2008-12-14 22:34:49.000000000 +0200
+++ ttxtsubs-0.0.9-darwin/siinfo.c	2010-04-18 11:37:46.000000000 +0300
@@ -192,7 +192,11 @@
   snprintf(name, sizeof(name), "/dev/dvb/adapter%d/demux0", card_no);
 
   memset(sects, 0, sizeof(char*) * 256);
-  
+
+#ifdef __APPLE__
+  return -1;
+#endif  
+
   if((fd = open(name, O_RDWR)) < 0){
     perror("DEMUX DEVICE 1: ");
     return -1;
@@ -272,6 +276,10 @@
 
   snprintf(name, sizeof(name), "/dev/dvb/adapter%d/demux0", card_no);
 
+#ifdef __APPLE__
+  return;
+#endif
+
   if((fd = open(name, O_RDWR)) < 0){
     perror("DEMUX DEVICE 1: ");
     return;

