# Global rules for building shared libraries     -*-Makefile-*-
#
# Each individual makefile should define the following variables:
# LIBRARY      : name of the library being built (without the lib prefix)
# SOVERSION    : the .so file version
#
# plus all variables required by the global Make.rules.in
#

DEFS      = $(EXTRADEFS)
DLLFLAGS  = @DLLFLAGS@
LIBEXT    = @LIBEXT@
LIBNAME   = lib$(LIBRARY)
DEFNAME   = $(LIBRARY).def
SONAME    = $(LIBNAME).so.$(SOVERSION)
DYNAME    = $(LIBNAME).$(SOVERSION).dylib
MODULE    = $(LIBNAME).$(LIBEXT)

all: $(MODULE) $(MODULE:.dll=.a)

@MAKE_RULES@

$(LIBNAME).so.$(SOVERSION): $(OBJS) $(VERSCRIPT) Makefile.in
	$(LDSHARED) $(OBJS) $(EXTRALIBS) $(LDFLAGS) $(LIBS) -o $@

$(LIBNAME).so: $(LIBNAME).so.$(SOVERSION)
	$(RM) $@ && $(LN_S) $(LIBNAME).so.$(SOVERSION) $@

$(LIBNAME).a: $(DEFNAME)
	$(DLLTOOL) -l $@ -d $(SRCDIR)/$(DEFNAME)

$(LIBNAME).dll: $(OBJS) $(DEFNAME) Makefile.in
	$(DLLWRAP) --def $(SRCDIR)/$(DEFNAME) -o $@ $(OBJS) $(EXTRALIBS)

$(LIBNAME).$(SOVERSION).dylib: $(OBJS) $(RELPATH) Makefile.in
	$(LDSHARED) $(OBJS) $(EXTRALIBS) $(LDFLAGS) $(LIBS) -o $@

$(LIBNAME).dylib: $(LIBNAME).$(SOVERSION).dylib
	$(RM) $@ && $(LN_S) $(LIBNAME).$(SOVERSION).dylib $@

.PHONY: install-lib-so install-lib-dll install-lib-dylib install-dev-so install-dev-dll install-dev-dylib

install-lib-so: $(LIBNAME).so.$(SOVERSION) dummy
	$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
	$(INSTALL_PROGRAM) $(LIBNAME).so.$(SOVERSION) $(DESTDIR)$(libdir)/$(LIBNAME).so.$(SOVERSION)

install-lib-dll: $(LIBNAME).dll dummy
	$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
	$(INSTALL_DATA) $(LIBNAME).dll $(DESTDIR)$(libdir)/$(LIBNAME).dll

install-lib-dylib: $(LIBNAME).$(SOVERSION).dylib dummy
	$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
	$(INSTALL_PROGRAM) $(LIBNAME).$(SOVERSION).dylib $(DESTDIR)$(libdir)/$(LIBNAME).$(SOVERSION).dylib

install-dev-so: dummy
	$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
	cd $(DESTDIR)$(libdir) && $(RM) $(LIBNAME).so && $(LN_S) $(LIBNAME).so.$(SOVERSION) $(LIBNAME).so

install-dev-dll: $(LIBNAME).a dummy
	$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
	$(INSTALL_DATA) $(LIBNAME).a $(DESTDIR)$(libdir)/$(LIBNAME).a

install-dev-dylib: dummy
	$(MKINSTALLDIRS) $(DESTDIR)$(libdir)
	cd $(DESTDIR)$(libdir) && $(RM) $(LIBNAME).dylib && $(LN_S) $(LIBNAME).$(SOVERSION).dylib $(LIBNAME).dylib

install install-lib:: $(LIBEXT:%=install-lib-%)
install install-dev:: $(LIBEXT:%=install-dev-%)

uninstall::
	-cd $(DESTDIR)$(libdir) && $(RM) $(LIBNAME).a $(LIBNAME).dll $(LIBNAME).so $(LIBNAME).so.$(SOVERSION) $(LIBNAME).dylib $(LIBNAME).$(SOVERSION).dylib

clean::
	$(RM) $(LIBNAME).so.$(SOVERSION) $(LIBNAME).dll $(LIBNAME).$(SOVERSION).dylib

$(RELPATH):
	@cd $(TOOLSDIR)/tools && $(MAKE) relpath
