-ifeq ($(uname_s),Linux)
- # On Linux, the following conventions apply (see dhweeler's Program
- # Library HOWTO):
- #
- # The soname has the prefix ``lib'', the name of the library, the
- # phrase ``.so'', followed by a period and a version number that is
- # incremented whenever the interface changes.
- soname := lib$(libname).so.$(x)
-
- # The real name adds to the soname a period, a minor number, another
- # period, and the release number.
- realname := $(soname).$(y).$(z)
-
- # In addition, there's the name that the compiler uses when requesting
- # a library, (I'll call it the ``linker name''), which is simply the
- # soname without any version number.
- linkername := lib$(libname).so
-
- LDFLAGS += --shared
- LDFLAGS += -Wl,-soname,$(soname)
- # disallow undefined symbols
- LDFLAGS += -Wl,-z,defs
-endif
-ifeq ($(uname_s),Darwin)
- # Darwin has its own idea on version numbers:
- #
- realname := lib$(libname).$(x).dylib
- soname := $(realname)
- linkername := lib$(libname).so
- # The minor version number is an incremental number using the format
- # X[.Y[.Z]]. To set the minor version number of a dynamic library, use
- # the gcc -current_version option.
- LDFLAGS += -current_version $(y).$(z)
- #
- # The compatibility version number of a library release specifies the
- # earliest minor version of the clients linked against that release can
- # use.
- LDFLAGS += -compatibility_version $(y).0
- LDFLAGS += -dynamiclib
-endif
-ifeq ($(uname_s),SunOS)
- # Solaris needs another set of flags
- LDFLAGS += --shared
- LDFLAGS += -z text
- LDFLAGS += -z defs
- realname := lib$(libname).so.$(major_version).$(minor_version).$(patchlevel_version)
- CPPFLAGS += -I/opt/csw/include
-endif