Fix for setting the soname of GLEWmx shared libraries - Thanks to Adam Williamson (Fedora QA Community Monkey)

This commit is contained in:
Nigel Stewart 2011-03-28 20:21:13 -05:00
parent 9bca6b44ea
commit 4a9b2a7b42
12 changed files with 23 additions and 13 deletions

View File

@ -132,7 +132,7 @@ lib/$(LIB.STATIC.MX): $(LIB.OBJS.MX)
$(AR) cr $@ $^ $(AR) cr $@ $^
lib/$(LIB.SHARED.MX): $(LIB.SOBJS.MX) lib/$(LIB.SHARED.MX): $(LIB.SOBJS.MX)
$(LD) $(LDFLAGS.SO) -o $@ $^ $(LIB.LDFLAGS) $(LIB.LIBS) $(LD) $(LDFLAGS.SO.MX) -o $@ $^ $(LIB.LDFLAGS) $(LIB.LIBS)
ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),) ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),)
else else
$(LN) $(LIB.SHARED.MX) lib/$(LIB.SONAME.MX) $(LN) $(LIB.SHARED.MX) lib/$(LIB.SONAME.MX)

View File

@ -7,7 +7,6 @@ CC = gcc -mno-cygwin
# use gcc for linking, with ld it does not work # use gcc for linking, with ld it does not work
LD = gcc -mno-cygwin LD = gcc -mno-cygwin
CFLAGS.SO = -DGLEW_BUILD CFLAGS.SO = -DGLEW_BUILD
LDFLAGS.SO = -shared -Wl,-soname,$(LIB.SONAME) -Wl,--out-implib,lib/$(LIB.DEVLNK)
LDFLAGS.GL = -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32 LDFLAGS.GL = -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32
LDFLAGS.EXTRA = -L$(LIBDIR) LDFLAGS.EXTRA = -L$(LIBDIR)
WARN = -Wall -W WARN = -Wall -W
@ -17,7 +16,9 @@ LIB.SONAME = lib$(NAME).dll
LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib
LIB.SHARED = $(NAME).dll LIB.SHARED = $(NAME).dll
LIB.STATIC = lib$(NAME).a # the static lib will be broken (see CFLAGS.SO) LIB.STATIC = lib$(NAME).a # the static lib will be broken (see CFLAGS.SO)
LDFLAGS.SO = -shared -Wl,-soname,$(LIB.SONAME) -Wl,--out-implib,lib/$(LIB.DEVLNK)
LIB.SONAME.MX = lib$(NAME)mx.dll LIB.SONAME.MX = lib$(NAME)mx.dll
LIB.DEVLNK.MX = lib$(NAME)mx.dll.a # for mingw this is the dll import lib LIB.DEVLNK.MX = lib$(NAME)mx.dll.a # for mingw this is the dll import lib
LIB.SHARED.MX = $(NAME)mx.dll LIB.SHARED.MX = $(NAME)mx.dll
LIB.STATIC.MX = lib$(NAME)mx.a # the static lib will be broken (see CFLAGS.SO) LIB.STATIC.MX = lib$(NAME)mx.a # the static lib will be broken (see CFLAGS.SO)
LDFLAGS.SO.MX = -shared -Wl,-soname,$(LIB.SONAME.MX) -Wl,--out-implib,lib/$(LIB.DEVLNK.MX)

View File

@ -3,7 +3,6 @@ GLEW_DEST ?= /usr/X11R6
CC = cc CC = cc
# use gcc for linking, with ld it does not work # use gcc for linking, with ld it does not work
LD = cc LD = cc
LDFLAGS.SO = -shared -Wl,--out-implib,lib/$(LIB.DEVLNK)
LDFLAGS.EXTRA = -L/usr/X11R6/lib LDFLAGS.EXTRA = -L/usr/X11R6/lib
LIBDIR = $(GLEW_DEST)/lib LIBDIR = $(GLEW_DEST)/lib
LDFLAGS.GL = -lXmu -lXi -lGLU -lGL -lXext -lX11 LDFLAGS.GL = -lXmu -lXi -lGLU -lGL -lXext -lX11
@ -16,7 +15,9 @@ LIB.SONAME = cyg$(NAME)-$(SO_MAJOR).dll
LIB.DEVLNK = lib$(NAME).dll.a LIB.DEVLNK = lib$(NAME).dll.a
LIB.SHARED = cyg$(NAME)-$(SO_MAJOR).dll LIB.SHARED = cyg$(NAME)-$(SO_MAJOR).dll
LIB.STATIC = lib$(NAME).a LIB.STATIC = lib$(NAME).a
LDFLAGS.SO = -shared -Wl,--out-implib,lib/$(LIB.DEVLNK)
LIB.SONAME.MX = cyg$(NAME)mx-$(SO_MAJOR).dll LIB.SONAME.MX = cyg$(NAME)mx-$(SO_MAJOR).dll
LIB.DEVLNK.MX = lib$(NAME)mx.dll.a LIB.DEVLNK.MX = lib$(NAME)mx.dll.a
LIB.SHARED.MX = cyg$(NAME)mx-$(SO_MAJOR).dll LIB.SHARED.MX = cyg$(NAME)mx-$(SO_MAJOR).dll
LIB.STATIC.MX = lib$(NAME)mx.a LIB.STATIC.MX = lib$(NAME)mx.a
LDFLAGS.SO.MX = -shared -Wl,--out-implib,lib/$(LIB.DEVLNK.MX)

View File

@ -3,7 +3,6 @@ CC = cc
LD = cc LD = cc
CFLAGS.EXTRA = -no-cpp-precomp -dynamic -fno-common CFLAGS.EXTRA = -no-cpp-precomp -dynamic -fno-common
PICFLAG = -fPIC PICFLAG = -fPIC
LDFLAGS.SO = -dynamiclib -install_name $(GLEW_DEST)/lib/$(LIB.SHARED)
LDFLAGS.EXTRA = LDFLAGS.EXTRA =
ifneq (undefined, $(origin GLEW_APPLE_GLX)) ifneq (undefined, $(origin GLEW_APPLE_GLX))
CFLAGS.EXTRA += -I/usr/X11R6/include -D'GLEW_APPLE_GLX' CFLAGS.EXTRA += -I/usr/X11R6/include -D'GLEW_APPLE_GLX'
@ -20,8 +19,10 @@ LIB.SONAME = lib$(NAME).$(SO_MAJOR).dylib
LIB.DEVLNK = lib$(NAME).dylib LIB.DEVLNK = lib$(NAME).dylib
LIB.SHARED = lib$(NAME).$(SO_VERSION).dylib LIB.SHARED = lib$(NAME).$(SO_VERSION).dylib
LIB.STATIC = lib$(NAME).a LIB.STATIC = lib$(NAME).a
LDFLAGS.SO = -dynamiclib -install_name $(GLEW_DEST)/lib/$(LIB.SHARED)
LIB.SONAME.MX = lib$(NAME)mx.$(SO_MAJOR).dylib LIB.SONAME.MX = lib$(NAME)mx.$(SO_MAJOR).dylib
LIB.DEVLNK.MX = lib$(NAME)mx.dylib LIB.DEVLNK.MX = lib$(NAME)mx.dylib
LIB.SHARED.MX = lib$(NAME)mx.$(SO_VERSION).dylib LIB.SHARED.MX = lib$(NAME)mx.$(SO_VERSION).dylib
LIB.STATIC.MX = lib$(NAME)mx.a LIB.STATIC.MX = lib$(NAME)mx.a
LDFLAGS.SO.MX = -dynamiclib -install_name $(GLEW_DEST)/lib/$(LIB.SHARED.MX)
SHARED_OBJ_EXT = pic_o SHARED_OBJ_EXT = pic_o

View File

@ -1,7 +1,6 @@
NAME = $(GLEW_NAME) NAME = $(GLEW_NAME)
CC = cc CC = cc
LD = ld LD = ld
LDFLAGS.SO = -shared -soname $(LIB.SONAME)
LDFLAGS.EXTRA = -L/usr/X11R6/lib LDFLAGS.EXTRA = -L/usr/X11R6/lib
LDFLAGS.GL = -lXmu -lXi -lGLU -lGL -lXext -lX11 LDFLAGS.GL = -lXmu -lXi -lGLU -lGL -lXext -lX11
LDFLAGS.STATIC = -Wl,-Bstatic LDFLAGS.STATIC = -Wl,-Bstatic
@ -15,7 +14,9 @@ LIB.SONAME = lib$(NAME).so.$(SO_MAJOR)
LIB.DEVLNK = lib$(NAME).so LIB.DEVLNK = lib$(NAME).so
LIB.SHARED = lib$(NAME).so.$(SO_VERSION) LIB.SHARED = lib$(NAME).so.$(SO_VERSION)
LIB.STATIC = lib$(NAME).a LIB.STATIC = lib$(NAME).a
LDFLAGS.SO = -shared -soname $(LIB.SONAME)
LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR)
LIB.DEVLNK.MX = lib$(NAME)mx.so LIB.DEVLNK.MX = lib$(NAME)mx.so
LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION)
LIB.STATIC.MX = lib$(NAME)mx.a LIB.STATIC.MX = lib$(NAME)mx.a
LDFLAGS.SO.MX = -shared -soname $(LIB.SONAME.MX)

View File

@ -2,7 +2,6 @@ NAME = $(GLEW_NAME)
CC = cc CC = cc
LD = cc LD = cc
PICFLAG = -fPIC PICFLAG = -fPIC
LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME)
LDFLAGS.EXTRA = -L/usr/X11R6/lib LDFLAGS.EXTRA = -L/usr/X11R6/lib
LDFLAGS.GL = -lXmu -lXi -lGLU -lGL -lXext -lX11 LDFLAGS.GL = -lXmu -lXi -lGLU -lGL -lXext -lX11
LDFLAGS.STATIC = -Wl,-Bstatic LDFLAGS.STATIC = -Wl,-Bstatic
@ -15,8 +14,10 @@ LIB.SONAME = lib$(NAME).so.$(SO_MAJOR)
LIB.DEVLNK = lib$(NAME).so LIB.DEVLNK = lib$(NAME).so
LIB.SHARED = lib$(NAME).so.$(SO_VERSION) LIB.SHARED = lib$(NAME).so.$(SO_VERSION)
LIB.STATIC = lib$(NAME).a LIB.STATIC = lib$(NAME).a
LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME)
LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR)
LIB.DEVLNK.MX = lib$(NAME)mx.so LIB.DEVLNK.MX = lib$(NAME)mx.so
LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION)
LIB.STATIC.MX = lib$(NAME)mx.a LIB.STATIC.MX = lib$(NAME)mx.a
LDFLAGS.SO.MX = -shared -Wl,-soname=$(LIB.SONAME.MX)
SHARED_OBJ_EXT = pic_o SHARED_OBJ_EXT = pic_o

View File

@ -4,7 +4,6 @@ LD = ld
ABI = -64# -n32 ABI = -64# -n32
CC += $(ABI) CC += $(ABI)
LD += $(ABI) LD += $(ABI)
LDFLAGS.SO = -shared -soname $(LIB.SONAME)
LDFLAGS.EXTRA = LDFLAGS.EXTRA =
LDFLAGS.GL = -lGLU -lGL -lXext -lX11 LDFLAGS.GL = -lGLU -lGL -lXext -lX11
NAME = GLEW NAME = GLEW
@ -15,7 +14,9 @@ LIB.SONAME = lib$(NAME).so.$(SO_MAJOR)
LIB.DEVLNK = lib$(NAME).so LIB.DEVLNK = lib$(NAME).so
LIB.SHARED = lib$(NAME).so.$(SO_VERSION) LIB.SHARED = lib$(NAME).so.$(SO_VERSION)
LIB.STATIC = lib$(NAME).a LIB.STATIC = lib$(NAME).a
LDFLAGS.SO = -shared -soname $(LIB.SONAME)
LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR)
LIB.DEVLNK.MX = lib$(NAME)mx.so LIB.DEVLNK.MX = lib$(NAME)mx.so
LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION)
LIB.STATIC.MX = lib$(NAME)mx.a LIB.STATIC.MX = lib$(NAME)mx.a
LDFLAGS.SO.MX = -shared -soname $(LIB.SONAME.MX)

View File

@ -2,7 +2,6 @@ NAME = $(GLEW_NAME)
CC = cc CC = cc
LD = cc LD = cc
PICFLAG = -fPIC PICFLAG = -fPIC
LDFLAGS.SO = -shared -Wl,-soname $(LIB.SONAME)
LDFLAGS.EXTRA = -L/usr/X11R6/lib LDFLAGS.EXTRA = -L/usr/X11R6/lib
LDFLAGS.GL = -lXmu -lXi -lGLU -lGL -lXext -lX11 LDFLAGS.GL = -lXmu -lXi -lGLU -lGL -lXext -lX11
LDFLAGS.STATIC = -Wl,-Bstatic LDFLAGS.STATIC = -Wl,-Bstatic
@ -15,8 +14,10 @@ LIB.SONAME = lib$(NAME).so.$(SO_MAJOR)
LIB.DEVLNK = lib$(NAME).so LIB.DEVLNK = lib$(NAME).so
LIB.SHARED = lib$(NAME).so.$(SO_VERSION) LIB.SHARED = lib$(NAME).so.$(SO_VERSION)
LIB.STATIC = lib$(NAME).a LIB.STATIC = lib$(NAME).a
LDFLAGS.SO = -shared -Wl,-soname $(LIB.SONAME)
LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR)
LIB.DEVLNK.MX = lib$(NAME)mx.so LIB.DEVLNK.MX = lib$(NAME)mx.so
LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION)
LIB.STATIC.MX = lib$(NAME)mx.a LIB.STATIC.MX = lib$(NAME)mx.a
LDFLAGS.SO.MX = -shared -Wl,-soname $(LIB.SONAME.MX)
SHARED_OBJ_EXT = pic_o SHARED_OBJ_EXT = pic_o

View File

@ -2,7 +2,6 @@ NAME = $(GLEW_NAME)
CC = cc CC = cc
LD = cc LD = cc
PICFLAG = -fPIC PICFLAG = -fPIC
LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME)
M_ARCH ?= $(shell uname -m) M_ARCH ?= $(shell uname -m)
ifeq (x86_64,${M_ARCH}) ifeq (x86_64,${M_ARCH})
LDFLAGS.EXTRA = -L/usr/X11R6/lib64 LDFLAGS.EXTRA = -L/usr/X11R6/lib64
@ -22,8 +21,10 @@ LIB.SONAME = lib$(NAME).so.$(SO_MAJOR)
LIB.DEVLNK = lib$(NAME).so LIB.DEVLNK = lib$(NAME).so
LIB.SHARED = lib$(NAME).so.$(SO_VERSION) LIB.SHARED = lib$(NAME).so.$(SO_VERSION)
LIB.STATIC = lib$(NAME).a LIB.STATIC = lib$(NAME).a
LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME)
LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR)
LIB.DEVLNK.MX = lib$(NAME)mx.so LIB.DEVLNK.MX = lib$(NAME)mx.so
LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION)
LIB.STATIC.MX = lib$(NAME)mx.a LIB.STATIC.MX = lib$(NAME)mx.a
LDFLAGS.SO.MX = -shared -Wl,-soname=$(LIB.SONAME.MX)
SHARED_OBJ_EXT = pic_o SHARED_OBJ_EXT = pic_o

View File

@ -8,7 +8,6 @@ NAME = glew32
CC = i586-mingw32msvc-gcc CC = i586-mingw32msvc-gcc
LD = i586-mingw32msvc-ld LD = i586-mingw32msvc-ld
CFLAGS.SO = -DGLEW_BUILD CFLAGS.SO = -DGLEW_BUILD
LDFLAGS.SO = -shared -soname $(LIB.SONAME) --out-implib lib/$(LIB.DEVLNK)
LDFLAGS.GL = -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32 LDFLAGS.GL = -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32
WARN = -Wall -W WARN = -Wall -W
POPT = -O2 POPT = -O2
@ -17,7 +16,9 @@ LIB.SONAME = lib$(NAME).dll
LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib
LIB.SHARED = $(NAME).dll LIB.SHARED = $(NAME).dll
LIB.STATIC = lib$(NAME).a # the static lib will be broken (see CFLAGS.SO) LIB.STATIC = lib$(NAME).a # the static lib will be broken (see CFLAGS.SO)
LDFLAGS.SO = -shared -soname $(LIB.SONAME) --out-implib lib/$(LIB.DEVLNK)
LIB.SONAME.MX = lib$(NAME)mx.dll LIB.SONAME.MX = lib$(NAME)mx.dll
LIB.DEVLNK.MX = lib$(NAME)mx.dll.a # for mingw this is the dll import lib LIB.DEVLNK.MX = lib$(NAME)mx.dll.a # for mingw this is the dll import lib
LIB.SHARED.MX = $(NAME)mx.dll LIB.SHARED.MX = $(NAME)mx.dll
LIB.STATIC.MX = lib$(NAME)mx.a # the static lib will be broken (see CFLAGS.SO) LIB.STATIC.MX = lib$(NAME)mx.a # the static lib will be broken (see CFLAGS.SO)
LDFLAGS.SO.MX = -shared -soname $(LIB.SONAME.MX) --out-implib lib/$(LIB.DEVLNK.MX)

View File

@ -8,7 +8,6 @@ NAME = glew32
CC = amd64-mingw32msvc-gcc CC = amd64-mingw32msvc-gcc
LD = amd64-mingw32msvc-ld LD = amd64-mingw32msvc-ld
CFLAGS.SO = -DGLEW_BUILD CFLAGS.SO = -DGLEW_BUILD
LDFLAGS.SO = -shared -soname $(LIB.SONAME) --out-implib lib/$(LIB.DEVLNK)
LDFLAGS.GL = -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32 LDFLAGS.GL = -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32
WARN = -Wall -W WARN = -Wall -W
POPT = -O2 POPT = -O2
@ -17,7 +16,9 @@ LIB.SONAME = lib$(NAME).dll
LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib
LIB.SHARED = $(NAME).dll LIB.SHARED = $(NAME).dll
LIB.STATIC = lib$(NAME).a # the static lib will be broken (see CFLAGS.SO) LIB.STATIC = lib$(NAME).a # the static lib will be broken (see CFLAGS.SO)
LDFLAGS.SO = -shared -soname $(LIB.SONAME) --out-implib lib/$(LIB.DEVLNK)
LIB.SONAME.MX = lib$(NAME)mx.dll LIB.SONAME.MX = lib$(NAME)mx.dll
LIB.DEVLNK.MX = lib$(NAME)mx.dll.a # for mingw this is the dll import lib LIB.DEVLNK.MX = lib$(NAME)mx.dll.a # for mingw this is the dll import lib
LIB.SHARED.MX = $(NAME)mx.dll LIB.SHARED.MX = $(NAME)mx.dll
LIB.STATIC.MX = lib$(NAME)mx.a # the static lib will be broken (see CFLAGS.SO) LIB.STATIC.MX = lib$(NAME)mx.a # the static lib will be broken (see CFLAGS.SO)
LDFLAGS.SO.MX = -shared -soname $(LIB.SONAME.MX) --out-implib lib/$(LIB.DEVLNK.MX)

View File

@ -3,8 +3,6 @@ CC = gcc
# use gcc for linking, with ld it does not work # use gcc for linking, with ld it does not work
LD = gcc LD = gcc
CFLAGS.SO = -DGLEW_BUILD CFLAGS.SO = -DGLEW_BUILD
#LDFLAGS.SO = -shared -soname $(LIB.SONAME) --out-implib lib/$(LIB.DEVLNK)
LDFLAGS.SO = -shared -Wl,-soname,$(LIB.SONAME) -Wl,--out-implib,lib/$(LIB.DEVLNK)
LDFLAGS.GL = -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32 LDFLAGS.GL = -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32
LDFLAGS.EXTRA = -L/mingw/lib LDFLAGS.EXTRA = -L/mingw/lib
WARN = -Wall -W WARN = -Wall -W
@ -14,7 +12,9 @@ LIB.SONAME = lib$(NAME).dll
LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib
LIB.SHARED = $(NAME).dll LIB.SHARED = $(NAME).dll
LIB.STATIC = lib$(NAME).a # the static lib will be broken (see CFLAGS.SO) LIB.STATIC = lib$(NAME).a # the static lib will be broken (see CFLAGS.SO)
LDFLAGS.SO = -shared -Wl,-soname,$(LIB.SONAME) -Wl,--out-implib,lib/$(LIB.DEVLNK)
LIB.SONAME.MX = lib$(NAME)mx.dll LIB.SONAME.MX = lib$(NAME)mx.dll
LIB.DEVLNK.MX = lib$(NAME)mx.dll.a # for mingw this is the dll import lib LIB.DEVLNK.MX = lib$(NAME)mx.dll.a # for mingw this is the dll import lib
LIB.SHARED.MX = $(NAME)mx.dll LIB.SHARED.MX = $(NAME)mx.dll
LIB.STATIC.MX = lib$(NAME)mx.a # the static lib will be broken (see CFLAGS.SO) LIB.STATIC.MX = lib$(NAME)mx.a # the static lib will be broken (see CFLAGS.SO)
LDFLAGS.SO.MX = -shared -Wl,-soname,$(LIB.SONAME.MX) -Wl,--out-implib,lib/$(LIB.DEVLNK.MX)