# This file contains rules for Linux with GCC.

LIBNAME = lib$(PACKAGE)

STATICLIB = $(LIBNAME).a

SHAREDLIB = $(LIBNAME).so
SONAME = $(LIBNAME).so.$(MAJOR)
SOVERSION = $(LIBNAME).so.$(VERSION)

.SUFFIXES: .lo

.c.lo:
	$(CC) $(CFLAGS) -fPIC -o $@ -c $<

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

$(SHAREDOBJ): $(HEADERS)
$(STATICOBJ): $(HEADERS)

$(STATICLIB): $(STATICOBJ)
	ar cru $(STATICLIB) $(STATICOBJ)

$(SHAREDLIB): $(SHAREDOBJ)
	rm -f $(SHAREDLIB)
	gcc -fPIC -shared -lc -Wl,-soname -Wl,$(SONAME) \
		-o $(SOVERSION) $(SHAREDOBJ)
	ln -s $(SOVERSION) $(SHAREDLIB)

install-lib: $(STATICLIB) $(SHAREDLIB)
	make uninstall-lib
	make all
	mkdir -p $(LIBDIR)
	cp $(SOVERSION) $(LIBDIR)
	cp $(STATICLIB) $(LIBDIR)
	cd $(LIBDIR) && ln -s $(SOVERSION) $(SHAREDLIB)
	cd $(LIBDIR) && ln -s $(SOVERSION) $(SONAME)
	/sbin/ldconfig

uninstall-lib:
	cd $(LIBDIR) && rm -f $(SHAREDLIB) $(STATICLIB) $(SOVERSION) $(SONAME)
