
CC = gcc
CFLAGS = -Wall -fPIC -g -Iinclude -fvisibility=hidden
LDFLAGS = -shared

LIBNAME = libqcom-example
MAJOR = 1
MINOR = 0
PATCH = 0
VERSION = $(MAJOR).$(MINOR).$(PATCH)

LIB = $(LIBNAME).so.$(VERSION)
SONAME = $(LIBNAME).so.$(MAJOR)

OBJECTS = qcom_example.o print.o

all: $(LIB) symlinks

$(LIB): $(OBJECTS)
	$(CC) $(LDFLAGS) -Wl,-soname,$(SONAME) $(OBJECTS) -o $(LIB)

symlinks:
	ln -sf $(LIB) $(SONAME)
	ln -sf $(SONAME) $(LIBNAME).so

%.o: src/%.c
	$(CC) $(CFLAGS) -c $< -o $@

clean:
	rm -f $(OBJECTS) $(LIB) $(SONAME) $(LIBNAME).so

install:
	install -d $(DESTDIR)/usr/lib
	install -m 644 $(LIB) $(DESTDIR)/usr/lib
	ln -sf $(LIB) $(DESTDIR)/usr/lib/$(SONAME)
	ln -sf $(SONAME) $(DESTDIR)/usr/lib/$(LIBNAME).so
	install -d $(DESTDIR)/usr/include/qcom
	install -m 644 include/qcom_example.h $(DESTDIR)/usr/include/qcom
