PREFIX ?= /usr/local
LIBDIR ?= $(PREFIX)/lib
INCLUDEDIR ?= $(PREFIX)/include
PKGCONFIGDIR ?= $(LIBDIR)/pkgconfig
CC ?= cc
CFLAGS ?= -O2 -Wall -Wextra -fPIC
CPPFLAGS += -Iinclude $(shell pkg-config --cflags libusb-1.0 libcurl sqlite3)
LDLIBS += $(shell pkg-config --libs libusb-1.0 libcurl sqlite3) -lm -lpthread
VERSION = 0.1.16
SONAME = libadsb-reader.so.0
SRC = src/core.c src/modes.c src/driver_radarbox.c src/driver_sbs1.c src/acarsd.c
OBJ = $(SRC:.c=.o)

all: libadsb-reader.so.$(VERSION) adsb-reader

libadsb-reader.so.$(VERSION): $(OBJ)
	$(CC) -shared -Wl,-soname,$(SONAME) -o $@ $(OBJ) $(LDLIBS)
	ln -sf $@ $(SONAME)
	ln -sf $(SONAME) libadsb-reader.so

adsb-reader: tools/adsb-reader.o libadsb-reader.so.$(VERSION)
	$(CC) -o $@ tools/adsb-reader.o -L. -Wl,-rpath,'$$ORIGIN' -ladsb-reader $(LDLIBS)

install: all
	install -d $(DESTDIR)$(LIBDIR) $(DESTDIR)$(INCLUDEDIR)/adsb-reader $(DESTDIR)$(PREFIX)/bin $(DESTDIR)$(PKGCONFIGDIR)
	install -m755 libadsb-reader.so.$(VERSION) $(DESTDIR)$(LIBDIR)/
	ln -sf libadsb-reader.so.$(VERSION) $(DESTDIR)$(LIBDIR)/$(SONAME)
	ln -sf $(SONAME) $(DESTDIR)$(LIBDIR)/libadsb-reader.so
	install -m644 include/adsb-reader/adsb_reader.h $(DESTDIR)$(INCLUDEDIR)/adsb-reader/
	install -m755 adsb-reader $(DESTDIR)$(PREFIX)/bin/
	sed 's|@PREFIX@|$(PREFIX)|g' pkgconfig/libadsb-reader.pc.in > $(DESTDIR)$(PKGCONFIGDIR)/libadsb-reader.pc

clean:
	rm -f $(OBJ) tools/adsb-reader.o libadsb-reader.so libadsb-reader.so.0 libadsb-reader.so.$(VERSION) adsb-reader
.PHONY: all install clean
