Fixed the support for DTrace so that it also builds on Mac OSX
[awesomized/libmemcached] / libmemcached / Makefile.am
index ec62fb2e4505d02f28d60021e8927b750faacf9c..7e117b94a5a6704d9cd459db1d82c1ce05375198 100644 (file)
@@ -1,5 +1,7 @@
 EXTRA_DIST = libmemcached_probes.d memcached/README.txt
 
+BUILT_SOURCES= @DTRACE_HEADER@
+
 INCLUDES = -I$(top_builddir)
 LIBS = @LIBS@
 
@@ -73,18 +75,23 @@ libmemcached_la_SOURCES = crc.c \
                          jenkins_hash.c \
                           byteorder.c
 
-libmemcached_la_LIBADD =
+libmemcached_la_DEPENDENCIES = @DTRACE_OBJ@
+libmemcached_la_LIBADD = @DTRACE_OBJ@
 libmemcached_la_LDFLAGS = -version-info $(MEMCACHED_LIBRARY_VERSION)
 
-if HAVE_DTRACE
-  libmemcached_la_LIBADD += libmemcached_probes.o
-endif
+dtrace_probes.h: libmemcached_probes.d
+       $(DTRACE) $(DTRACEFLAGS) -o dtrace_probes.tmp -h -s libmemcached_probes.d
+       sed "s/#include <unistd.h>//g" dtrace_probes.tmp > dtrace_probes.h
+       rm dtrace_probes.tmp
+
+
+# So libtool doesn't support dtrace, but just copy one of the existing
+# lo-file and replace the file name ;-) 
+libmemcached_probes.lo: libmemcached_probes.o
+       sed "s,jenkins_hash,libmemcached_probes,g" jenkins_hash.lo > libmemcached_probes.tmp
+       mv libmemcached_probes.tmp libmemcached_probes.lo
 
-libmemcached_probes.h: libmemcached_probes.d
-       $(DTRACE) $(DTRACEFLAGS) -h -s libmemcached_probes.d
-       mv libmemcached_probes.h libmemcached_probes.h.bak
-       sed "s/#include <unistd.h>//g" libmemcached_probes.h.bak > libmemcached_probes.h
-       rm libmemcached_probes.h.bak
+libmemcached_probes.o: $(libmemcached_la_OBJECTS)
+       $(DTRACE) $(DTRACEFLAGS) -o .libs/libmemcached_probes.o -G -s libmemcached_probes.d `grep pic_object *.lo | cut -f 2 -d\' | grep -v non_pic_object`
+       $(DTRACE) $(DTRACEFLAGS) -o libmemcached_probes.o -G -s libmemcached_probes.d `grep non_pic_object *.lo | cut -f 2 -d\' `
 
-libmemcached_probes.o:
-       $(DTRACE) $(DTRACEFLAGS) -G -s libmemcached_probes.d $(DTRACEFILES)