DOWNSTREAM_SO_NUMBER = YOU_MUST_SET_THIS

CC = gcc
CFLAGS ?= -O2 -Wall -Wextra -Wshadow -Wformat-nonliteral -Wformat-security
CFLAGS += -D_LARGEFILE64_SOURCE -D_LARGEFILE_SOURCE
LDFLAGS ?=
LDFLAGS += -Wl,-soname,libedf.so.0.$(DOWNSTREAM_SO_NUMBER)
LDLIBS = -lm

INSTALL = install -p
PREFIX ?= /usr/local
LIBDIR ?= $(PREFIX)/lib
INCLUDEDIR ?= $(PREFIX)/include

programs = sine_generator sweep_generator test_edflib test_generator

all: $(programs) lib

$(programs): edflib.o

edflib.o: edflib.c
	$(CC) $(CFLAGS) -fpic -c -o $@ $^

libedf.so.0.$(DOWNSTREAM_SO_NUMBER): edflib.o
	$(CC) $(LDFLAGS) -shared -o $@ $^

lib: libedf.so.0.$(DOWNSTREAM_SO_NUMBER)

clean:
	$(RM) *.so *.o $(programs) *.[be]df

install:
	$(INSTALL) -d $(DESTDIR)$(LIBDIR)
	$(INSTALL) -t $(DESTDIR)$(LIBDIR) libedf.so.0.$(DOWNSTREAM_SO_NUMBER)
	ln -s libedf.so.0.$(DOWNSTREAM_SO_NUMBER) $(DESTDIR)$(LIBDIR)/libedf.so
	$(INSTALL) -d $(DESTDIR)$(INCLUDEDIR)
	$(INSTALL) -t $(DESTDIR)$(INCLUDEDIR) -m 0644 edflib.h

.PHONY: clean lib install
