#
# Matrix Library
# (C) Anton Voronin (anton@urc.ac.ru)
#
# This file is for use on Unix systems.
#
CC = /usr/bin/cc
AR = /usr/bin/ar -rcv
CP = /bin/cp -i
RM = /bin/rm -f
LS = /bin/ls
LN = /bin/ln -sf
MKDIR = /bin/mkdir -p
LDCONFIG = /sbin/ldconfig -m

SRCS != $(LS) *.cpp
OBJS = $(SRCS:R:S/$/.o/)
LIB = lib$(SRCS:R:S/$//)
CFLAGS = -Wall

PREFIX ?= /usr/local
LIBVERSION ?= 1

all: $(LIB)

$(LIB):	$(OBJS)
	$(CC) $(CFLAGS) -shared -lm $(.ALLSRC) -o $(.TARGET).so.$(LIBVERSION)
	$(AR) $(.TARGET).a $(.ALLSRC) /usr/lib/libm.a

clean:
	$(RM) *.o $(LIB).so.$(LIBVERSION) $(LIB).a

install:
	$(MKDIR) $(PREFIX)/share/doc/matrix
	$(MKDIR) $(PREFIX)/include
	$(MKDIR) $(PREFIX)/lib
	$(CP) *.html $(PREFIX)/share/doc/matrix
	$(CP) *.h $(PREFIX)/include
	$(CP) *.a $(PREFIX)/lib
	$(CP) $(LIB).so.$(LIBVERSION) $(PREFIX)/lib
	cd $(PREFIX)/lib && $(LN) $(LIB).so.$(LIBVERSION) $(LIB).so
	$(LDCONFIG) $(PREFIX)/lib

