Skip to content

Commit 07f61f3

Browse files
committed
Merge pull request #135 from JuliaLang/sf/versioning
Version libopenlibm properly
2 parents 045dfd8 + 4d0bc52 commit 07f61f3

1 file changed

Lines changed: 24 additions & 12 deletions

File tree

Makefile

Lines changed: 24 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

3347
check test: test/test-double test/test-float
3448
test/test-double
@@ -37,24 +51,22 @@ check test: test/test-double test/test-float
3751
libopenlibm.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)
4759
endif
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

5567
clean:
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

6072
openlibm.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

Comments
 (0)