Makelib.rules.in 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. # Global rules for building shared libraries -*-Makefile-*-
  2. #
  3. # Each individual makefile should define the following variables:
  4. # LIBRARY : name of the library being built (without the lib prefix)
  5. # SOVERSION : the .so file version
  6. #
  7. # plus all variables required by the global Make.rules.in
  8. #
  9. DEFS = $(EXTRADEFS)
  10. DLLFLAGS = @DLLFLAGS@
  11. LIBEXT = @LIBEXT@
  12. LIBNAME = lib$(LIBRARY)
  13. DEFNAME = $(LIBRARY).def
  14. SONAME = $(LIBNAME).so.$(SOVERSION)
  15. MODULE = $(LIBNAME).$(LIBEXT)
  16. all: $(MODULE) $(MODULE:.dll=.a)
  17. @MAKE_RULES@
  18. $(LIBNAME).so.$(SOVERSION): $(OBJS) $(VERSCRIPT) Makefile.in
  19. $(LDSHARED) $(OBJS) $(EXTRALIBS) $(LDFLAGS) $(LIBS) -o $@
  20. $(LIBNAME).so: $(LIBNAME).so.$(SOVERSION)
  21. $(RM) $@ && $(LN_S) $(LIBNAME).so.$(SOVERSION) $@
  22. $(LIBNAME).a: $(DEFNAME)
  23. $(DLLTOOL) -l $@ -d $(SRCDIR)/$(DEFNAME)
  24. $(LIBNAME).dll: $(OBJS) $(DEFNAME) Makefile.in
  25. $(DLLWRAP) --def $(SRCDIR)/$(DEFNAME) -o $@ $(OBJS) $(EXTRALIBS)
  26. $(LIBNAME).$(SOVERSION).dylib: $(OBJS) Makefile.in
  27. $(LDSHARED) -install_name $(libdir)/$(LIBNAME).$(SOVERSION).dylib $(OBJS) $(EXTRALIBS) $(LDFLAGS) $(LIBS) -o $@
  28. $(LIBNAME).dylib: $(LIBNAME).$(SOVERSION).dylib
  29. $(RM) $@ && $(LN_S) $(LIBNAME).$(SOVERSION).dylib $@
  30. .PHONY: install-lib-so install-lib-dll install-lib-dylib install-dev-so install-dev-dll install-dev-dylib
  31. install-lib-so: $(LIBNAME).so.$(SOVERSION) dummy
  32. $(MKINSTALLDIRS) $(libdir)
  33. $(INSTALL_PROGRAM) $(LIBNAME).so.$(SOVERSION) $(libdir)/$(LIBNAME).so.$(SOVERSION)
  34. install-lib-dll: $(LIBNAME).dll dummy
  35. $(MKINSTALLDIRS) $(libdir)
  36. $(INSTALL_DATA) $(LIBNAME).dll $(libdir)/$(LIBNAME).dll
  37. install-lib-dylib: $(LIBNAME).$(SOVERSION).dylib dummy
  38. $(MKINSTALLDIRS) $(libdir)
  39. $(INSTALL_PROGRAM) $(LIBNAME).$(SOVERSION).dylib $(libdir)/$(LIBNAME).$(SOVERSION).dylib
  40. install-dev-so: dummy
  41. $(MKINSTALLDIRS) $(libdir)
  42. cd $(libdir) && $(RM) $(LIBNAME).so && $(LN_S) $(LIBNAME).so.$(SOVERSION) $(LIBNAME).so
  43. install-dev-dll: $(LIBNAME).a dummy
  44. $(MKINSTALLDIRS) $(libdir)
  45. $(INSTALL_DATA) $(LIBNAME).a $(libdir)/$(LIBNAME).a
  46. install-dev-dylib: dummy
  47. $(MKINSTALLDIRS) $(libdir)
  48. cd $(libdir) && $(RM) $(LIBNAME).dylib && $(LN_S) $(LIBNAME).$(SOVERSION).dylib $(LIBNAME).dylib
  49. install install-lib:: $(LIBEXT:%=install-lib-%)
  50. install install-dev:: $(LIBEXT:%=install-dev-%)
  51. uninstall::
  52. $(RM) $(libdir)/$(LIBNAME).a $(libdir)/$(LIBNAME).dll $(libdir)/$(LIBNAME).so $(libdir)/$(LIBNAME).so.$(SOVERSION) $(libdir)/$(LIBNAME).dylib $(libdir)/$(LIBNAME).$(SOVERSION).dylib
  53. clean::
  54. $(RM) $(LIBNAME).so.$(SOVERSION) $(LIBNAME).dll $(LIBNAME).$(SOVERSION).dylib