ARCH='-m64'

ALL: libRingBuffer.dylib  RingBuffer_SyncTest

ringbuffer_synctest.o: ringbuffer_synctest.cpp
	$(CXX) $(ARCH) -Wall -c -o $@ $^

RingBuffer_SyncTest: ringbuffer_synctest.o
	$(CXX)  $(ARCH) -o $@ $^ -L. -lRingBuffer

ringbuffer.o: ringbuffer.cpp
	$(CXX) $(ARCH) -Wall -fPIC -c -o $@ $^

libRingBuffer.0.0.1.dylib: ringbuffer.o bsif_libusb.o bsif_tap_usb_samples.o \
	bsif_inject_socket_samples.o bsif_socket_io.o
ifdef LIBUSB_PREFIX
	$(CXX) $(ARCH) -o $@ -fPIC -lc -dynamiclib -Wl \
		$^ -L${LIBUSB_PREFIX}/lib -l usb-1.0
else
	$(CXX) $(ARCH) -o $@ -fPIC -lc -dynamiclib -Wl \
		$^ -L./lib -l usb-1.0
endif

# make the linker name and soname pointers
libRingBuffer.0.dylib: libRingBuffer.0.0.1.dylib
	rm -f libRingBuffer.0.dylib
	ln -s libRingBuffer.0.0.1.dylib libRingBuffer.0.dylib

libRingBuffer.dylib: libRingBuffer.0.0.1.dylib
	rm -f libRingBuffer.dylib
	ln -s libRingBuffer.0.0.1.dylib libRingBuffer.dylib

clean:
	rm -f ringbuffer.o
	rm -f ringbuffer_synctest.o
	rm -f libRingBuffer.0.dylib
	rm -f libRingBuffer.dylib
	rm -f libRingBuffer.0.0.1.dylib
	rm -f RingBuffer_SyncTest
