diff -ruN softdevice-cvs20080912/Makefile softdevice-cvs20080912-darwin/Makefile
--- softdevice-cvs20080912/Makefile	2008-04-14 05:52:10.000000000 +0300
+++ softdevice-cvs20080912-darwin/Makefile	2008-09-12 22:13:04.000000000 +0300
@@ -9,6 +9,9 @@
 #
 PLUGIN = softdevice
 
+APPLE_DARWIN = $(shell gcc -dumpmachine | grep -q 'apple-darwin' && echo "1" || echo "0")
+MAC_OS_X_VERSION_10_5 = $(shell gcc -dumpmachine | grep -q 'apple-darwin9' && 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')
@@ -27,6 +30,10 @@
 TMPDIR     = /tmp
 PLUGINLIBDIR = ./PLUGINS/lib
 
+ifeq ($(MAC_OS_X_VERSION_10_5), 1)
+LDFLAGS = -Wl,-dylib_file,/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib:/System/Library/Frameworks/OpenGL.framework/Versions/A/Libraries/libGL.dylib
+endif
+
 # for older file-utils, option -f had the same effect
 CPOPTS = --remove-destination
 
@@ -211,7 +218,7 @@
 ### The version number of VDR (taken from VDR's "config.h"):
 
 VDRVERSION = $(shell grep 'define VDRVERSION ' $(VDRDIR)/config.h | awk '{ print $$3 }' | sed -e 's/"//g')
-APIVERSION = $(shell sed -ne '/define APIVERSION/ { s/^.*"\(.*\)".*$$/\1/; p }' $(VDRDIR)/config.h)
+APIVERSION = $(shell sed -ne '/define APIVERSION/s/^.*"\(.*\)".*$$/\1/p' $(VDRDIR)/config.h)
 
 ifeq ($(APIVERSION),)
 	APIVERSION = $(VDRVERSION)
@@ -225,6 +232,9 @@
 ### Includes and Defines (add further entries here):
 
 INCLUDES += -I$(VDRDIR)/include -I$(DVBDIR)/include $(FFMPEGCFLAGS)
+ifeq ($(APPLE_DARWIN), 1)
+INCLUDES += -I/sw/include
+endif
 
 DEFINES += -DPLUGIN_NAME_I18N='"$(PLUGIN)"' -D_GNU_SOURCE
 DEFINES += -DPLUGINLIBDIR='"$(PLUGINLIBDIR)"'
@@ -330,7 +340,7 @@
 
 
 %.o: %.c
-	$(CXX) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
+	$(CXX) $(LDFLAGS) $(CXXFLAGS) -c $(DEFINES) $(INCLUDES) $<
 
 # Dependencies:
 
@@ -371,29 +381,29 @@
 all: $(TARGETS) i18n
 
 libvdr-$(PLUGIN).so: $(OBJS)
-	$(CXX) $(CXXFLAGS) $(SHARED_FLAG) $(OBJS) $(LIBS) -o $@
+	$(CXX) $(LDFLAGS) $(CXXFLAGS) $(SHARED_FLAG) $(OBJS) $(LIBS) -o $@
 	@cp $(CPOTS) $@ $(LIBDIR)/$@.$(APIVERSION)
 
 ifdef USE_SUBPLUGINS
 
 lib$(PLUGIN)-dfb.so: $(DFB_OBJS)
-	$(CXX) $(CXXFLAGS) $(SHARED_FLAG) $(DFB_OBJS) $(DFB_LIBS) -o $@
+	$(CXX) $(LDFLAGS) $(CXXFLAGS) $(SHARED_FLAG) $(DFB_OBJS) $(DFB_LIBS) -o $@
 	@cp $(CPOPTS) $@ $(LIBDIR)/$@.$(APIVERSION)
 
 lib$(PLUGIN)-fb.so: $(FB_OBJS)
-	$(CXX) $(CXXFLAGS) $(SHARED_FLAG) $(FB_OBJS) $(FB_LIBS) -o $@
+	$(CXX) $(LDFLAGS) $(CXXFLAGS) $(SHARED_FLAG) $(FB_OBJS) $(FB_LIBS) -o $@
 	@cp $(CPOPTS) $@ $(LIBDIR)/$@.$(APIVERSION)
 
 lib$(PLUGIN)-xv.so: $(XV_OBJS)
-	$(CXX) $(CXXFLAGS) $(SHARED_FLAG) $(XV_OBJS) $(XV_LIBS) -o $@
+	$(CXX) $(LDFLAGS) $(CXXFLAGS) $(SHARED_FLAG) $(XV_OBJS) $(XV_LIBS) -o $@
 	@cp $(CPOPTS) $@ $(LIBDIR)/$@.$(APIVERSION)
 
 lib$(PLUGIN)-vidix.so: $(VIDIX_OBJS)
-	$(CXX) $(CXXFLAGS) $(SHARED_FLAG) $(VIDIX_OBJS) $(VIDIX_LIBS) -o $@
+	$(CXX) $(LDFLAGS) $(CXXFLAGS) $(SHARED_FLAG) $(VIDIX_OBJS) $(VIDIX_LIBS) -o $@
 	@cp $(CPOPTS) $@ $(LIBDIR)/$@.$(APIVERSION)
 
 lib$(PLUGIN)-shm.so: $(SHM_OBJS)
-	$(CXX) $(CXXFLAGS) $(SHARED_FLAG) $(SHM_OBJS) $(SHM_LIBS) -o $@
+	$(CXX) $(LDFLAGS) $(CXXFLAGS) $(SHARED_FLAG) $(SHM_OBJS) $(SHM_LIBS) -o $@
 	@cp $(CPOPTS) $@ $(LIBDIR)/$@.$(APIVERSION)
 
 endif
@@ -423,10 +433,10 @@
 		   ShmClient_shm.o PicBuffer_shm.o
 
 %_shm.o: %.c
-	$(CXX) $(CXXFLAGS) -c $(DEFINES) -DSTAND_ALONE $(INCLUDES) $< -o $@
+	$(CXX) $(LDFLAGS) $(CXXFLAGS) -c $(DEFINES) -DSTAND_ALONE $(INCLUDES) $< -o $@
 
 ShmClient: $(SHM_CLIENT_OBJS)
-	$(CXX) $(CXXFLAGS) $(XV_LIBS)  $(SHM_CLIENT_OBJS) -lpthread -o $@
+	$(CXX) $(LDFLAGS) $(CXXFLAGS) $(XV_LIBS)  $(SHM_CLIENT_OBJS) -lpthread -o $@
 
 
 MacVdrClient_obj = video_shm.o video-quartz_shm.o setup-softdevice_shm.o utils_shm.o VdrReplacements_shm.o PicBuffer_shm.o setup-softlog_shm.o MacVdrClient_shm.o
diff -ruN softdevice-cvs20080912/PicBuffer.c softdevice-cvs20080912-darwin/PicBuffer.c
--- softdevice-cvs20080912/PicBuffer.c	2008-07-27 20:34:42.000000000 +0300
+++ softdevice-cvs20080912-darwin/PicBuffer.c	2008-09-12 22:13:04.000000000 +0300
@@ -318,7 +318,13 @@
         if ( !isPlanar(pix_fmt) ) {
                 buf->stride[0]=ALIGN(pixel_size*w,16);
 
+#ifndef __APPLE__
                 if (posix_memalign((void **) &buf->pixel[0], 16, buf->stride[0]*h+16)) {
+#else
+                buf->pixel[0]=(uint8_t*)malloc((buf->stride[0]*h)+16);
+                
+                if (buf->pixel[0]==NULL) {
+#endif
                     printf("could not allocate memory for picture buffer!\n") ;
                     exit(-1);
                     return false;
@@ -337,7 +343,13 @@
             buf->stride[i]= ALIGN(pixel_size*w>>h_shift,
                             STRIDE_ALIGN<<(h_chroma_shift-h_shift));
 
+#ifndef __APPLE__
             if(posix_memalign((void **) &buf->pixel[i], 16, (buf->stride[i]*h>>v_shift)+16)) { //FIXME 16
+#else
+            buf->pixel[i]= (uint8_t*)malloc((buf->stride[i]*h>>v_shift)+16); //FIXME 16
+
+            if(buf->pixel[i]==NULL) {
+#endif
                     printf("could not allocate memory for picture buffer!\n") ;
                     exit(-1);
                     return false;
diff -ruN softdevice-cvs20080912/utils.c softdevice-cvs20080912-darwin/utils.c
--- softdevice-cvs20080912/utils.c	2007-05-11 00:57:26.000000000 +0300
+++ softdevice-cvs20080912-darwin/utils.c	2008-09-12 22:13:04.000000000 +0300
@@ -163,9 +163,14 @@
    }
 #endif
    for ( ; i>=2; i-=2 ) {
+#ifdef __i386__
+	*((uint32_t *)dest1) = (yc1[1] << 24)+ (vc[0] << 16) + (yc1[0] << 8) + (uc[0] << 0);
+	*((uint32_t *)dest2) = (yc2[1] << 24)+ (vc[0] << 16) + (yc2[0] << 8) + (uc[0] << 0);
+#else
       *((uint32_t *)dest1) = (yc1[0] << 0)+ (uc[0] << 8) + (yc1[1] << 16) + (vc[0] << 24);
       *((uint32_t *)dest2) = (yc2[0] << 0)+ (uc[0] << 8) + (yc2[1] << 16) + (vc[0] << 24);
       //*idst++ = (yc[0] << 0)+ (uc[0] << 8) + (yc[1] << 16) + (vc[0] << 24);
+#endif
       dest1+=4;
       dest2+=4;
       yc1 += 2;
diff -ruN softdevice-cvs20080912/utils.h softdevice-cvs20080912-darwin/utils.h
--- softdevice-cvs20080912/utils.h	2007-05-11 00:57:26.000000000 +0300
+++ softdevice-cvs20080912-darwin/utils.h	2008-09-12 22:13:04.000000000 +0300
@@ -13,6 +13,10 @@
 #include "config.h"
 #include "mmx.h"
 
+#ifdef __APPLE__
+typedef unsigned long long   vuint64_t; // temp fix
+#endif
+
 // for MMX2 CPU's
 #ifdef USE_MMX2
 #define movntq(src,dest) do { movntq_r2m (src, dest); } while (0);
@@ -129,11 +133,17 @@
        uint8_t *alpha,uint16_t count);
    // performes alpha blending in software
 
+#ifndef __APPLE__ // temp fix
 uint64_t  getTimeMilis(void);
 char      *getFBName(void);
 bool  CatchRemoteKey(const char *remoteName, uint64_t key, 
                 const int ToggleKey);
-
+#else
+vuint64_t  getTimeMilis(void);
+char      *getFBName(void);
+bool  CatchRemoteKey(const char *remoteName, vuint64_t key, 
+                const int ToggleKey);
+#endif
 
 void fast_memcpy(void * to, const void * from, size_t len);
 
diff -ruN softdevice-cvs20080912/video-quartz.c softdevice-cvs20080912-darwin/video-quartz.c
--- softdevice-cvs20080912/video-quartz.c	2007-05-10 22:54:44.000000000 +0300
+++ softdevice-cvs20080912-darwin/video-quartz.c	2008-09-12 22:13:04.000000000 +0300
@@ -530,7 +530,7 @@
 					
 	windowAttrs &= (~kWindowResizableAttribute);
 					
-        CreateWindow(IMAGE_WIDTH/2, IMAGE_HEIGHT/2, windowAttrs);
+        CreateWindow(IMAGE_WIDTH, IMAGE_HEIGHT, windowAttrs);
 		
         if (theWindow == NULL) {
                 esyslog("Quartz error: Couldn't create window !!!!!\n");
@@ -687,7 +687,7 @@
 
         aglEnable(aglCtx, AGL_SWAP_INTERVAL);
         
-        long interval = 1;
+        const GLint interval = 1;
         aglSetInteger(aglCtx, AGL_SWAP_INTERVAL, &interval);
         
 
diff -ruN softdevice-cvs20080912/video-quartz.h softdevice-cvs20080912-darwin/video-quartz.h
--- softdevice-cvs20080912/video-quartz.h	2007-05-10 22:54:44.000000000 +0300
+++ softdevice-cvs20080912-darwin/video-quartz.h	2008-09-12 22:13:04.000000000 +0300
@@ -13,6 +13,9 @@
 
 #undef always_inline
 namespace MacOs {
+#ifdef __i386__
+#undef Status
+#endif
 #include <Carbon/Carbon.h>
 #include <OpenGL/gl.h>
 #include <OpenGL/glext.h>

