# (C) 2019 - Jaguar Land Rover.
#
# Build a library that, together with the header files generated by
# vspec2c provides a vehicle spec encoded in C.
#

CFLAGS ?=-fPIC -O2 -Wall  -I.
DESTDIR?=/usr/local
SO_TARGET=libvss.so
LIB_TARGET=libvss.a
OBJ=vehicle_signal_specification.o
HDR=vehicle_signal_specification.h
.PHONY=demo

all: ${LIB_TARGET} ${SO_TARGET}

${SO_TARGET}: ${OBJ}
	${CC} -shared ${CFLAGS} -o ${SO_TARGET} ${OBJ}

${LIB_TARGET}: ${OBJ}
	ar r $(LIB_TARGET) $(OBJ)

${OBJ}: ${HDR}

demo:
	@$(MAKE) -C example

install:  ${LIB_TARGET} ${SO_TARGET}
	install -d ${DESTDIR}/lib;
	install -d ${DESTDIR}/include;
	install -m 0644 ${LIB_TARGET}  ${DESTDIR}/lib;
	install -m 0644 ${SO_TARGET}  ${DESTDIR}/lib;
	install -m 0644 ${HDR}  ${DESTDIR}/include;
	@$(MAKE) DESTDIR=${DESTDIR} -C example install;

uninstall:
	rm -f ${DESTDIR}/lib/${LIB_TARGET};
	rm -f ${DESTDIR}/include/${HDR};
	rm -f ${DESTDIR}/lib/${SO_TARGET};
	@$(MAKE) DESTDIR=${DESTDIR} -C example uninstall;

clean:
	rm -f ${OBJ} ${LIB_TARGET} ${SO_TARGET} *~
	@$(MAKE) -C example clean
