@@ -26,9 +26,23 @@ OBJS = $(patsubst %.f,%.f.o,\
2626 $(patsubst % .S,% .S.o,\
2727 $(patsubst % .c,% .c.o,$(filter-out $(addprefix src/,$(DUPLICATE_SRCS ) ) ,$(SRCS ) ) ) ) )
2828
29+ # If we're on windows, don't do versioned shared libraries. If we're on OSX,
30+ # put the version number before the .dylib. Otherwise, put it after.
31+ ifeq ($(OS ) , WINNT)
32+ OLM_MAJOR_MINOR_SHLIB_EXT := $(SHLIB_EXT )
33+ else
34+ ifeq ($(OS ) , Darwin)
35+ OLM_MAJOR_MINOR_SHLIB_EXT := $(SOMAJOR ) .$(SOMINOR ) .$(SHLIB_EXT )
36+ OLM_MAJOR_SHLIB_EXT := $(SOMAJOR ) .$(SHLIB_EXT )
37+ else
38+ OLM_MAJOR_MINOR_SHLIB_EXT := $(SHLIB_EXT ) .$(SOMAJOR ) .$(SOMINOR )
39+ OLM_MAJOR_SHLIB_EXT := $(SHLIB_EXT ) .$(SOMAJOR )
40+ endif
41+ endif
42+
2943.PHONY : all check test clean distclean install
3044
31- all : libopenlibm.a libopenlibm.$(SHLIB_EXT )
45+ all : libopenlibm.a libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT )
3246
3347check test : test/test-double test/test-float
3448 test/test-double
@@ -37,24 +51,22 @@ check test: test/test-double test/test-float
3751libopenlibm.a : $(OBJS )
3852 $(AR ) -rcs libopenlibm.a $(OBJS )
3953
40- libopenlibm.$(SHLIB_EXT ) : $(OBJS )
41- ifeq ($(OS ) ,WINNT)
42- $(CC) -shared $(OBJS) $(LDFLAGS) $(LDFLAGS_add) -Wl,$(SONAME_FLAG),libopenlibm.$(SHLIB_EXT) -o libopenlibm.$(SHLIB_EXT)
43- else
44- $(CC) -shared $(OBJS) $(LDFLAGS) $(LDFLAGS_add) -Wl,$(SONAME_FLAG),libopenlibm.$(SHLIB_EXT).$(SOMAJOR) -o libopenlibm.$(SHLIB_EXT).$(SOMAJOR).$(SOMINOR)
45- ln -sf libopenlibm.$(SHLIB_EXT).$(SOMAJOR).$(SOMINOR) libopenlibm.$(SHLIB_EXT).$(SOMAJOR)
46- ln -sf libopenlibm.$(SHLIB_EXT).$(SOMAJOR).$(SOMINOR) libopenlibm.$(SHLIB_EXT)
54+ libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT ) : $(OBJS )
55+ $(CC ) -shared $(OBJS ) $(LDFLAGS ) $(LDFLAGS_add ) -Wl,$(SONAME_FLAG ) ,libopenlibm.$(OLM_MAJOR_SHLIB_EXT ) -o $@
56+ ifneq ($(OS ) ,WINNT)
57+ ln -sf $@ libopenlibm.$(OLM_MAJOR_SHLIB_EXT)
58+ ln -sf $@ libopenlibm.$(SHLIB_EXT)
4759endif
4860
49- test/test-double : libopenlibm.$(SHLIB_EXT )
61+ test/test-double : libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT )
5062 $(MAKE ) -C test test-double
5163
52- test/test-float : libopenlibm.$(SHLIB_EXT )
64+ test/test-float : libopenlibm.$(OLM_MAJOR_MINOR_SHLIB_EXT )
5365 $(MAKE ) -C test test-float
5466
5567clean :
5668 rm -f amd64/* .o arm/* .o bsdsrc/* .o i387/* .o ld128/* .o ld80/* .o src/* .o
57- rm -f libopenlibm.a libopenlibm.$(SHLIB_EXT ) *
69+ rm -f libopenlibm.a libopenlibm.* $(SHLIB_EXT ) *
5870 $(MAKE ) -C test clean
5971
6072openlibm.pc : openlibm.pc.in Make.inc Makefile
@@ -66,7 +78,7 @@ install: all openlibm.pc
6678 mkdir -p $(DESTDIR )$(shlibdir )
6779 mkdir -p $(DESTDIR )$(pkgconfigdir )
6880 mkdir -p $(DESTDIR )$(includedir ) /openlibm
69- cp -f -a libopenlibm.$(SHLIB_EXT ) * $(DESTDIR )$(shlibdir ) /
81+ cp -f -a libopenlibm.* $(SHLIB_EXT ) * $(DESTDIR )$(shlibdir ) /
7082 cp -f -a libopenlibm.a $(DESTDIR )$(libdir ) /
7183 cp -f -a include/* .h $(DESTDIR )$(includedir ) /openlibm
7284 cp -f -a src/* .h $(DESTDIR )$(includedir ) /openlibm
0 commit comments