Index: trunk/MagicSoft/Mars/Makefile
===================================================================
--- trunk/MagicSoft/Mars/Makefile	(revision 4024)
+++ trunk/MagicSoft/Mars/Makefile	(revision 4025)
@@ -98,14 +98,20 @@
 	@echo " Linking $(SOLIB) ..."
 	$(CXX) $(CXXFLAGS) $(SOFLAG) $(OBJS) $(SUBDIRS:=/*.o) $(ROOTGLIBS) -o $@
+
 # This is a special workaround to create the shared object (bundle, plugin)
 # for root and the dynlib (to be linked with the executable) on Mac OSX
 ifdef DYFLAG
-	@echo " Linking $(DYLIB) ..."
-	$(CXX) $(CXXFLAGS) $(DYFLAG) $(OBJS) $(SUBDIRS:=/*.o) $(ROOTGLIBS) -o $(@:.so=.dylib)
-endif
+$(DYLIB): $(LIBRARIES) $(OBJS) $(HEADERS)
+	@echo " Linking $(SOLIB) ..."
+	$(CXX) $(CXXFLAGS) $(DYFLAG) $(OBJS) $(SUBDIRS:=/*.o) $(ROOTGLIBS) -o $@
 
+$(PROGRAMS): $(DYLIB) $(PROGRAMS:=.o)
+	@echo " Linking $@ ..." 
+	$(CXX) $(CXXFLAGS) $(ROOTGLIBS) $(DYLIB) $@.o $(MARS_LIB) -o $@
+else
 $(PROGRAMS): $(SOLIB) $(PROGRAMS:=.o)
 	@echo " Linking $@ ..." 
 	$(CXX) $(CXXFLAGS) $(ROOTGLIBS) $(SOLIB) $@.o $(MARS_LIB) -o $@
+endif        
 
 dox: $(SOLIB)
