PREFIX?= /usr/local

LIB = ttime
MAJOR = 1

CFLAGS = -I. -Wall -g

ARNAME = libttime.a
SOBASE = libttime.so
SONAME = $(SOBASE).$(MAJOR)

LIBDIR = $(PREFIX)/lib
LIBOWN = root
LIBGRP = bin
LIBMOD = 644

INCLUD = ttime.h

INCDIR = $(PREFIX)/include
INCOWN = root
INXGRP = bin
INCMOD = 644

SRCS = add.c cmp.c common.c mul.c sub.c
OBJS = add.o cmp.o common.o mul.o sub.o
SOBJS = add.so cmp.so common.so mul.so sub.so

PROG = regress
ROBJS = regress.o $(ARNAME)

all: $(ARNAME) $(SONAME)

$(PROG): $(ROBJS)
	$(CC) $(CFLAGS) -o $@ $(ROBJS)

$(ARNAME): $(OBJS)
	$(AR) cr $@ $(OBJS) $(LIBS)
	ranlib $@

$(SONAME): $(SOBJS)
	$(CC) -shared -o $@ $(SOBJS) $(LIBS)

install: $(ARNAME) $(SONAME) $(INCLUD)
	for i in $(ARNAME) $(SONAME); do \
		cp $$i $(LIBDIR); \
		chown $(LIBOWN):$(LIBGRP) $(LIBDIR)/$$i; \
		chmod $(LIBMOD) $(LIBDIR)/$$i; \
	done
	ln -s $(SONAME) $(LIBDIR)/$(SOBASE)
	for i in $(INCLUD); do \
		cp $$i $(INCDIR); \
		chown $(INCOWN):$(INCGRP) $(INCDIR)/$$i; \
		chmod $(INCMOD) $(INCDIR)/$$i; \
	done
	ldconfig -R

clean:
	rm -f .depend $(ARNAME) $(OBJS) $(SONAME) $(SOBJS) regress $(ROBJS)

depend:
	mkdep $(CFLAGS) $(SRCS)

.SUFFIXES: .so
.c.so:
	$(CC) -fpic $(CFLAGS) -c $< -o $@
