ARCH='-m64'

ALL: libRingBuffer.so  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.so.0.0.1: ringbuffer.o bsif_libusb.o bsif_inject_socket_samples.o \
	bsif_socket_io.o bsif_tap_usb_samples.o
	rm -f libRingBuffer.so.0
	$(CXX) $(ARCH) -o $@ -fPIC -lc -shared -pthread -lrt -Wl,-soname,libRingBuffer.so.0 \
		$^ -L./lib -l usb-1.0

# make the linker name and soname pointers
libRingBuffer.so: libRingBuffer.so.0.0.1
	ln -sf $^ libRingBuffer.so
	/sbin/ldconfig -n .

clean:
	rm -f ringbuffer.o
	rm -f ringbuffer_synctest.o
	rm -f libRingBuffer.so.0
	rm -f libRingBuffer.so
	rm -f libRingBuffer.so.0.0.0
	rm -f RingBuffer_SyncTest
