From 29b1af417ae1a24b938ed24a4cbfd8639ab036c1 Mon Sep 17 00:00:00 2001 From: Nigel Stewart Date: Tue, 15 Feb 2011 10:21:17 -0600 Subject: [PATCH 01/11] Add support for #define GLEW_NO_GLU, contributed by Stefan Eilemann --- auto/src/glew_head.h | 10 ++++++---- src/visualinfo.c | 3 +++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/auto/src/glew_head.h b/auto/src/glew_head.h index 9f2cf2f..26b8808 100644 --- a/auto/src/glew_head.h +++ b/auto/src/glew_head.h @@ -1080,10 +1080,12 @@ GLAPI void GLAPIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei heigh /* ---------------------------------- GLU ---------------------------------- */ +#ifndef GLEW_NO_GLU /* this is where we can safely include GLU */ -#if defined(__APPLE__) && defined(__MACH__) -#include -#else -#include +# if defined(__APPLE__) && defined(__MACH__) +# include +# else +# include +# endif #endif diff --git a/src/visualinfo.c b/src/visualinfo.c index 177f765..52839c5 100644 --- a/src/visualinfo.c +++ b/src/visualinfo.c @@ -161,10 +161,13 @@ main (int argc, char** argv) fprintf(file, "OpenGL version string: %s\n", glGetString(GL_VERSION)); fprintf(file, "OpenGL extensions (GL_): \n"); PrintExtensions((char*)glGetString(GL_EXTENSIONS)); + +#ifndef GLEW_NO_GLU /* GLU extensions */ fprintf(file, "GLU version string: %s\n", gluGetString(GLU_VERSION)); fprintf(file, "GLU extensions (GLU_): \n"); PrintExtensions((char*)gluGetString(GLU_EXTENSIONS)); +#endif /* ---------------------------------------------------------------------- */ /* extensions string */ From 18455eb40fe2d71f5f78cce0bf44eb302c224016 Mon Sep 17 00:00:00 2001 From: Nigel Stewart Date: Fri, 18 Feb 2011 23:02:26 -0600 Subject: [PATCH 02/11] Update the GLEW build to build both vanilla and MX GLEW libraries. MX libraries now have mx suffix. Targets for building and installing are changed accordingly. Logic for glewmx.pc --- Makefile | 174 ++++++++++++++++++++++++---------- config/Makefile.cygming | 15 +-- config/Makefile.cygwin | 3 - config/Makefile.darwin | 15 +-- config/Makefile.freebsd | 15 +-- config/Makefile.gnu | 15 +-- config/Makefile.irix | 15 +-- config/Makefile.kfreebsd | 15 +-- config/Makefile.linux | 7 +- config/Makefile.linux-mingw32 | 15 +-- config/Makefile.linux-mingw64 | 15 +-- config/Makefile.mingw | 15 +-- config/Makefile.solaris | 15 +-- glew.pc.in | 4 +- 14 files changed, 211 insertions(+), 127 deletions(-) diff --git a/Makefile b/Makefile index 2499b8d..ebba21a 100644 --- a/Makefile +++ b/Makefile @@ -45,6 +45,7 @@ BINDIR ?= $(GLEW_DEST)/bin LIBDIR ?= $(GLEW_DEST)/lib INCDIR ?= $(GLEW_DEST)/include/GL SHARED_OBJ_EXT ?= o + TARDIR = ../glew-$(GLEW_VERSION) TARBALL = ../glew-$(GLEW_VERSION).tar.gz @@ -72,6 +73,9 @@ LIB.SOBJS = $(LIB.SRCS:.c=.$(SHARED_OBJ_EXT)) LIB.LDFLAGS = $(LDFLAGS.EXTRA) $(LDFLAGS.GL) LIB.LIBS = $(GL_LDFLAGS) +LIB.OBJS.MX = $(LIB.SRCS:.c=.mx.o) +LIB.SOBJS.MX = $(LIB.SRCS:.c=.mx.$(SHARED_OBJ_EXT)) + GLEWINFO.BIN = glewinfo$(BIN.SUFFIX) GLEWINFO.BIN.SRCS = src/glewinfo.c GLEWINFO.BIN.OBJS = $(GLEWINFO.BIN.SRCS:.c=.o) @@ -80,14 +84,18 @@ VISUALINFO.BIN.SRCS = src/visualinfo.c VISUALINFO.BIN.OBJS = $(VISUALINFO.BIN.SRCS:.c=.o) BIN.LIBS = -Llib $(LDFLAGS.DYNAMIC) -l$(NAME) $(LDFLAGS.EXTRA) $(LDFLAGS.GL) -all debug: lib bin lib/$(LIB.SHARED) lib/$(LIB.STATIC) bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN) glew.pc +all debug: glew.lib glew.lib.mx glew.bin + +%.o: %.c + $(CC) -c $(CFLAGS) -o $@ $< + +# GLEW libraries + +glew.lib: lib lib/$(LIB.SHARED) lib/$(LIB.STATIC) glew.pc lib: mkdir lib -bin: - mkdir bin - lib/$(LIB.STATIC): $(LIB.OBJS) $(AR) cr $@ $^ @@ -99,21 +107,6 @@ else $(LN) $(LIB.SHARED) lib/$(LIB.DEVLNK) endif -bin/$(GLEWINFO.BIN): $(GLEWINFO.BIN.OBJS) lib/$(LIB.SHARED) - $(CC) $(CFLAGS) -o $@ $(GLEWINFO.BIN.OBJS) $(BIN.LIBS) - -bin/$(VISUALINFO.BIN): $(VISUALINFO.BIN.OBJS) lib/$(LIB.SHARED) - $(CC) $(CFLAGS) -o $@ $(VISUALINFO.BIN.OBJS) $(BIN.LIBS) - -%.o: %.c - $(CC) -c $(CFLAGS) -o $@ $< - -src/glew.o: src/glew.c include/GL/glew.h include/GL/wglew.h include/GL/glxew.h - $(CC) $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< - -src/glew.pic_o: src/glew.c include/GL/glew.h include/GL/wglew.h include/GL/glxew.h - $(CC) $(CFLAGS) $(PICFLAG) $(CFLAGS.SO) -o $@ -c $< - glew.pc: glew.pc.in sed \ -e "s|@prefix@|$(GLEW_DEST)|g" \ @@ -121,14 +114,71 @@ glew.pc: glew.pc.in -e "s|@exec_prefix@|$(BINDIR)|g" \ -e "s|@includedir@|$(INCDIR)|g" \ -e "s|@version@|$(GLEW_VERSION)|g" \ + -e "s|@cflags@||g" \ + -e "s|@libname@|GLEW|g" \ < $< > $@ -install: all -# directories - $(INSTALL) -d -m 0755 $(BINDIR) - $(INSTALL) -d -m 0755 $(INCDIR) +src/glew.o: src/glew.c include/GL/glew.h include/GL/wglew.h include/GL/glxew.h + $(CC) -DGLEW_NO_GLU $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< + +src/glew.pic_o: src/glew.c include/GL/glew.h include/GL/wglew.h include/GL/glxew.h + $(CC) -DGLEW_NO_GLU $(CFLAGS) $(PICFLAG) $(CFLAGS.SO) -o $@ -c $< + +# GLEW MX libraries + +glew.lib.mx: lib lib/$(LIB.SHARED.MX) lib/$(LIB.STATIC.MX) glewmx.pc + +lib/$(LIB.STATIC.MX): $(LIB.OBJS.MX) + $(AR) cr $@ $^ + +lib/$(LIB.SHARED.MX): $(LIB.SOBJS.MX) + $(LD) $(LDFLAGS.SO) -o $@ $^ $(LIB.LDFLAGS) $(LIB.LIBS) +ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),) +else + $(LN) $(LIB.SHARED.MX) lib/$(LIB.SONAME.MX) + $(LN) $(LIB.SHARED.MX) lib/$(LIB.DEVLNK.MX) +endif + +glewmx.pc: glew.pc.in + sed \ + -e "s|@prefix@|$(GLEW_DEST)|g" \ + -e "s|@libdir@|$(LIBDIR)|g" \ + -e "s|@exec_prefix@|$(BINDIR)|g" \ + -e "s|@includedir@|$(INCDIR)|g" \ + -e "s|@version@|$(GLEW_VERSION)|g" \ + -e "s|@cflags@|-DGLEW_MX|g" \ + -e "s|@libname@|GLEWmx|g" \ + < $< > $@ + +src/glew.mx.o: src/glew.c include/GL/glew.h include/GL/wglew.h include/GL/glxew.h + $(CC) -DGLEW_NO_GLU -DGLEW_MX $(CFLAGS) $(CFLAGS.SO) -o $@ -c $< + +src/glew.mx.pic_o: src/glew.c include/GL/glew.h include/GL/wglew.h include/GL/glxew.h + $(CC) -DGLEW_NO_GLU -DGLEW_MX $(CFLAGS) $(PICFLAG) $(CFLAGS.SO) -o $@ -c $< + +# GLEW utilities + +bin: + mkdir bin + +glew.bin: glew.lib bin bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN) + +bin/$(GLEWINFO.BIN): $(GLEWINFO.BIN.OBJS) lib/$(LIB.SHARED) + $(CC) $(CFLAGS) -o $@ $(GLEWINFO.BIN.OBJS) $(BIN.LIBS) + +bin/$(VISUALINFO.BIN): $(VISUALINFO.BIN.OBJS) lib/$(LIB.SHARED) + $(CC) $(CFLAGS) -o $@ $(VISUALINFO.BIN.OBJS) $(BIN.LIBS) + +# Install targets + +install.all: install install.mx install.bin + +install: install.include install.lib install.pkgconfig + +install.mx: install.include install.lib.mx install.pkgconfig.mx + +install.lib: glew.lib $(INSTALL) -d -m 0755 $(LIBDIR) - $(INSTALL) -d -m 0755 $(LIBDIR)/pkgconfig # runtime ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),) $(STRIP) -x lib/$(LIB.SHARED) @@ -139,10 +189,6 @@ else $(LN) $(LIB.SHARED) $(LIBDIR)/$(LIB.SONAME) endif # development files - $(INSTALL) -m 0644 include/GL/wglew.h $(INCDIR)/ - $(INSTALL) -m 0644 include/GL/glew.h $(INCDIR)/ - $(INSTALL) -m 0644 include/GL/glxew.h $(INCDIR)/ - $(INSTALL) -m 0644 glew.pc $(LIBDIR)/pkgconfig/ ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),) $(INSTALL) -m 0644 lib/$(LIB.DEVLNK) $(LIBDIR)/ else @@ -150,29 +196,68 @@ else $(INSTALL) -m 0644 lib/$(LIB.STATIC) $(LIBDIR)/ $(LN) $(LIB.SHARED) $(LIBDIR)/$(LIB.DEVLNK) endif -# utilities + +install.lib.mx: glew.lib.mx + $(INSTALL) -d -m 0755 $(LIBDIR) +# runtime +ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),) + $(STRIP) -x lib/$(LIB.SHARED.MX) + $(INSTALL) -m 0644 lib/$(LIB.SHARED.MX) $(BINDIR)/ +else + $(STRIP) -x lib/$(LIB.SHARED.MX) + $(INSTALL) -m 0644 lib/$(LIB.SHARED.MX) $(LIBDIR)/ + $(LN) $(LIB.SHARED.MX) $(LIBDIR)/$(LIB.SONAME.MX) +endif +# development files +ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),) + $(INSTALL) -m 0644 lib/$(LIB.DEVLNK.MX) $(LIBDIR)/ +else + $(STRIP) -x lib/$(LIB.STATIC.MX) + $(INSTALL) -m 0644 lib/$(LIB.STATIC.MX) $(LIBDIR)/ + $(LN) $(LIB.SHARED.MX) $(LIBDIR)/$(LIB.DEVLNK.MX) +endif + +install.bin: glew.bin + $(INSTALL) -d -m 0755 $(BINDIR) $(INSTALL) -s -m 0755 bin/$(GLEWINFO.BIN) bin/$(VISUALINFO.BIN) $(BINDIR)/ +install.include: + $(INSTALL) -d -m 0755 $(INCDIR) + $(INSTALL) -m 0644 include/GL/wglew.h $(INCDIR)/ + $(INSTALL) -m 0644 include/GL/glew.h $(INCDIR)/ + $(INSTALL) -m 0644 include/GL/glxew.h $(INCDIR)/ + +install.pkgconfig: glew.pc + $(INSTALL) -d -m 0755 $(LIBDIR) + $(INSTALL) -d -m 0755 $(LIBDIR)/pkgconfig + $(INSTALL) -m 0644 glew.pc $(LIBDIR)/pkgconfig/ + +install.pkgconfig.mx: glewmx.pc + $(INSTALL) -d -m 0755 $(LIBDIR) + $(INSTALL) -d -m 0755 $(LIBDIR)/pkgconfig + $(INSTALL) -m 0644 glewmx.pc $(LIBDIR)/pkgconfig/ + uninstall: $(RM) $(INCDIR)/wglew.h $(RM) $(INCDIR)/glew.h $(RM) $(INCDIR)/glxew.h - $(RM) $(LIBDIR)/$(LIB.DEVLNK) + $(RM) $(LIBDIR)/$(LIB.DEVLNK) $(LIBDIR)/$(LIB.DEVLNK.MX) ifeq ($(filter-out mingw% cygwin,$(SYSTEM)),) - $(RM) $(BINDIR)/$(LIB.SHARED) + $(RM) $(BINDIR)/$(LIB.SHARED) $(BINDIR)/$(LIB.SHARED.MX) else - $(RM) $(LIBDIR)/$(LIB.SONAME) - $(RM) $(LIBDIR)/$(LIB.SHARED) - $(RM) $(LIBDIR)/$(LIB.STATIC) + $(RM) $(LIBDIR)/$(LIB.SONAME) $(LIBDIR)/$(LIB.SONAME.MX) + $(RM) $(LIBDIR)/$(LIB.SHARED) $(LIBDIR)/$(LIB.SHARED.MX) + $(RM) $(LIBDIR)/$(LIB.STATIC) $(LIBDIR)/$(LIB.STATIC.MX) endif $(RM) $(BINDIR)/$(GLEWINFO.BIN) $(BINDIR)/$(VISUALINFO.BIN) clean: - $(RM) $(LIB.OBJS) - $(RM) $(LIB.SOBJS) + $(RM) $(LIB.OBJS) $(LIB.OBJS.MX) + $(RM) $(LIB.SOBJS) $(LIB.SOBJS.MX) $(RM) lib/$(LIB.STATIC) lib/$(LIB.SHARED) lib/$(LIB.DEVLNK) lib/$(LIB.SONAME) $(LIB.STATIC) + $(RM) lib/$(LIB.STATIC.MX) lib/$(LIB.SHARED.MX) lib/$(LIB.DEVLNK.MX) lib/$(LIB.SONAME.MX) $(LIB.STATIC.MX) $(RM) $(GLEWINFO.BIN.OBJS) bin/$(GLEWINFO.BIN) $(VISUALINFO.BIN.OBJS) bin/$(VISUALINFO.BIN) - $(RM) glew.pc + $(RM) glew.pc glewmx.pc # Compiler droppings $(RM) so_locations $(RM) -r lib/ bin/ @@ -181,18 +266,7 @@ distclean: clean find . -name \*~ | xargs $(RM) find . -name .\*.sw\? | xargs $(RM) -tardist: - $(RM) -r $(TARDIR) - mkdir $(TARDIR) - cp -a . $(TARDIR) - find $(TARDIR) -name CVS -o -name .cvsignore | xargs $(RM) -r - find $(TARDIR) -name .svn | xargs $(RM) -r - find $(TARDIR) -name "*.patch" | xargs $(RM) -r - $(MAKE) -C $(TARDIR) distclean - $(MAKE) -C $(TARDIR) - $(MAKE) -C $(TARDIR) distclean - $(RM) -r $(TARDIR)/auto/registry - env GZIP=-9 tar -C `dirname $(TARDIR)` -cvzf $(TARBALL) `basename $(TARDIR)` +# Distributions dist-win32: $(RM) -r $(TARDIR) @@ -233,7 +307,9 @@ dist-src: cp -a Makefile $(TARDIR) cp -a glew.pc.in $(TARDIR) find $(TARDIR) -name '*.o' | xargs $(RM) -r + find $(TARDIR) -name '*.mx.o' | xargs $(RM) -r find $(TARDIR) -name '*.pic_o' | xargs $(RM) -r + find $(TARDIR) -name '*.mx.pic_o' | xargs $(RM) -r find $(TARDIR) -name '*~' | xargs $(RM) -r find $(TARDIR) -name CVS -o -name .cvsignore | xargs $(RM) -r find $(TARDIR) -name .svn | xargs $(RM) -r diff --git a/config/Makefile.cygming b/config/Makefile.cygming index d1d6062..df25279 100644 --- a/config/Makefile.cygming +++ b/config/Makefile.cygming @@ -6,9 +6,6 @@ INCDIR = /usr/include/mingw/GL CC = gcc -mno-cygwin # use gcc for linking, with ld it does not work LD = gcc -mno-cygwin -ifneq (undefined, $(origin GLEW_MX)) -CFLAGS.EXTRA = -DGLEW_MX -endif CFLAGS.SO = -DGLEW_BUILD LDFLAGS.SO = -shared -Wl,-soname,$(LIB.SONAME) -Wl,--out-implib,lib/$(LIB.DEVLNK) LDFLAGS.GL = -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32 @@ -16,7 +13,11 @@ LDFLAGS.EXTRA = -L$(LIBDIR) WARN = -Wall -W POPT = -O2 BIN.SUFFIX = .exe -LIB.SONAME = lib$(NAME).dll -LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib -LIB.SHARED = $(NAME).dll -LIB.STATIC = lib$(NAME).a # the static lib will be broken (see CFLAGS.SO) +LIB.SONAME = lib$(NAME).dll +LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib +LIB.SHARED = $(NAME).dll +LIB.STATIC = lib$(NAME).a # the static lib will be broken (see CFLAGS.SO) +LIB.SONAME.MX = lib$(NAME)mx.dll +LIB.DEVLNK.MX = lib$(NAME)mx.dll.a # for mingw this is the dll import lib +LIB.SHARED.MX = $(NAME)mx.dll +LIB.STATIC.MX = lib$(NAME)mx.a # the static lib will be broken (see CFLAGS.SO) diff --git a/config/Makefile.cygwin b/config/Makefile.cygwin index 9fbab8b..1af6c68 100644 --- a/config/Makefile.cygwin +++ b/config/Makefile.cygwin @@ -3,9 +3,6 @@ GLEW_DEST ?= /usr/X11R6 CC = cc # use gcc for linking, with ld it does not work LD = cc -ifneq (undefined, $(origin GLEW_MX)) -CFLAGS.EXTRA = -DGLEW_MX -endif LDFLAGS.SO = -shared -Wl,--out-implib,lib/$(LIB.DEVLNK) LDFLAGS.EXTRA = -L/usr/X11R6/lib LIBDIR = $(GLEW_DEST)/lib diff --git a/config/Makefile.darwin b/config/Makefile.darwin index a80acac..69a474f 100644 --- a/config/Makefile.darwin +++ b/config/Makefile.darwin @@ -2,9 +2,6 @@ NAME = $(GLEW_NAME) CC = cc LD = cc CFLAGS.EXTRA = -no-cpp-precomp -dynamic -fno-common -ifneq (undefined, $(origin GLEW_MX)) -CFLAGS.EXTRA += -DGLEW_MX -endif PICFLAG = -fPIC LDFLAGS.SO = -dynamiclib -install_name $(GLEW_DEST)/lib/$(LIB.SHARED) LDFLAGS.EXTRA = @@ -19,8 +16,12 @@ LDFLAGS.DYNAMIC = WARN = -Wall -W POPT = -O2 BIN.SUFFIX = -LIB.SONAME = lib$(NAME).$(SO_MAJOR).dylib -LIB.DEVLNK = lib$(NAME).dylib -LIB.SHARED = lib$(NAME).$(SO_VERSION).dylib -LIB.STATIC = lib$(NAME).a +LIB.SONAME = lib$(NAME).$(SO_MAJOR).dylib +LIB.DEVLNK = lib$(NAME).dylib +LIB.SHARED = lib$(NAME).$(SO_VERSION).dylib +LIB.STATIC = lib$(NAME).a +LIB.SONAME.MX = lib$(NAME)mx.$(SO_MAJOR).dylib +LIB.DEVLNK.MX = lib$(NAME)mx.dylib +LIB.SHARED.MX = lib$(NAME)mx.$(SO_VERSION).dylib +LIB.STATIC.MX = lib$(NAME)mx.a SHARED_OBJ_EXT = pic_o diff --git a/config/Makefile.freebsd b/config/Makefile.freebsd index 3bbc545..fe0c324 100644 --- a/config/Makefile.freebsd +++ b/config/Makefile.freebsd @@ -1,9 +1,6 @@ NAME = $(GLEW_NAME) CC = cc LD = ld -ifneq (undefined, $(origin GLEW_MX)) -CFLAGS.EXTRA = -DGLEW_MX -endif LDFLAGS.SO = -shared -soname $(LIB.SONAME) LDFLAGS.EXTRA = -L/usr/X11R6/lib LDFLAGS.GL = -lXmu -lXi -lGLU -lGL -lXext -lX11 @@ -14,7 +11,11 @@ NAME = GLEW WARN = -Wall -W POPT = -O2 BIN.SUFFIX = -LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) -LIB.DEVLNK = lib$(NAME).so -LIB.SHARED = lib$(NAME).so.$(SO_VERSION) -LIB.STATIC = lib$(NAME).a +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) +LIB.DEVLNK.MX = lib$(NAME)mx.so +LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) +LIB.STATIC.MX = lib$(NAME)mx.a diff --git a/config/Makefile.gnu b/config/Makefile.gnu index 69846ab..ac96c1d 100644 --- a/config/Makefile.gnu +++ b/config/Makefile.gnu @@ -1,9 +1,6 @@ NAME = $(GLEW_NAME) CC = cc LD = cc -ifneq (undefined, $(origin GLEW_MX)) -CFLAGS.EXTRA = -DGLEW_MX -endif PICFLAG = -fPIC LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) LDFLAGS.EXTRA = -L/usr/X11R6/lib @@ -14,8 +11,12 @@ NAME = GLEW WARN = -Wall -W POPT = -O2 BIN.SUFFIX = -LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) -LIB.DEVLNK = lib$(NAME).so -LIB.SHARED = lib$(NAME).so.$(SO_VERSION) -LIB.STATIC = lib$(NAME).a +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) +LIB.DEVLNK.MX = lib$(NAME)mx.so +LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) +LIB.STATIC.MX = lib$(NAME)mx.a SHARED_OBJ_EXT = pic_o diff --git a/config/Makefile.irix b/config/Makefile.irix index c618224..0125caf 100644 --- a/config/Makefile.irix +++ b/config/Makefile.irix @@ -4,9 +4,6 @@ LD = ld ABI = -64# -n32 CC += $(ABI) LD += $(ABI) -ifneq (undefined, $(origin GLEW_MX)) -CFLAGS.EXTRA = -DGLEW_MX -endif LDFLAGS.SO = -shared -soname $(LIB.SONAME) LDFLAGS.EXTRA = LDFLAGS.GL = -lGLU -lGL -lXext -lX11 @@ -14,7 +11,11 @@ NAME = GLEW WARN = -fullwarn -woff 1110,1498 POPT = -O2 -OPT:Olimit=0 BIN.SUFFIX = -LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) -LIB.DEVLNK = lib$(NAME).so -LIB.SHARED = lib$(NAME).so.$(SO_VERSION) -LIB.STATIC = lib$(NAME).a +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) +LIB.DEVLNK.MX = lib$(NAME)mx.so +LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) +LIB.STATIC.MX = lib$(NAME)mx.a diff --git a/config/Makefile.kfreebsd b/config/Makefile.kfreebsd index ace80ff..e816776 100644 --- a/config/Makefile.kfreebsd +++ b/config/Makefile.kfreebsd @@ -1,9 +1,6 @@ NAME = $(GLEW_NAME) CC = cc LD = cc -ifneq (undefined, $(origin GLEW_MX)) -CFLAGS.EXTRA = -DGLEW_MX -endif PICFLAG = -fPIC LDFLAGS.SO = -shared -Wl,-soname $(LIB.SONAME) LDFLAGS.EXTRA = -L/usr/X11R6/lib @@ -14,8 +11,12 @@ NAME = GLEW WARN = -Wall -W POPT = -O2 BIN.SUFFIX = -LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) -LIB.DEVLNK = lib$(NAME).so -LIB.SHARED = lib$(NAME).so.$(SO_VERSION) -LIB.STATIC = lib$(NAME).a +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) +LIB.DEVLNK.MX = lib$(NAME)mx.so +LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) +LIB.STATIC.MX = lib$(NAME)mx.a SHARED_OBJ_EXT = pic_o diff --git a/config/Makefile.linux b/config/Makefile.linux index fd8a2d1..b33c350 100644 --- a/config/Makefile.linux +++ b/config/Makefile.linux @@ -1,9 +1,6 @@ NAME = $(GLEW_NAME) CC = cc LD = cc -ifneq (undefined, $(origin GLEW_MX)) -CFLAGS.EXTRA = -DGLEW_MX -endif PICFLAG = -fPIC LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) M_ARCH ?= $(shell uname -m) @@ -25,4 +22,8 @@ LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) LIB.DEVLNK = lib$(NAME).so LIB.SHARED = lib$(NAME).so.$(SO_VERSION) LIB.STATIC = lib$(NAME).a +LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) +LIB.DEVLNK.MX = lib$(NAME)mx.so +LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) +LIB.STATIC.MX = lib$(NAME)mx.a SHARED_OBJ_EXT = pic_o diff --git a/config/Makefile.linux-mingw32 b/config/Makefile.linux-mingw32 index 85ad647..6fcec42 100644 --- a/config/Makefile.linux-mingw32 +++ b/config/Makefile.linux-mingw32 @@ -7,16 +7,17 @@ NAME = glew32 CC = i586-mingw32msvc-gcc LD = i586-mingw32msvc-ld -ifneq (undefined, $(origin GLEW_MX)) -CFLAGS.EXTRA = -DGLEW_MX -endif CFLAGS.SO = -DGLEW_BUILD LDFLAGS.SO = -shared -soname $(LIB.SONAME) --out-implib lib/$(LIB.DEVLNK) LDFLAGS.GL = -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32 WARN = -Wall -W POPT = -O2 BIN.SUFFIX = .exe -LIB.SONAME = lib$(NAME).dll -LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib -LIB.SHARED = $(NAME).dll -LIB.STATIC = lib$(NAME).a # the static lib will be broken (see CFLAGS.SO) +LIB.SONAME = lib$(NAME).dll +LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib +LIB.SHARED = $(NAME).dll +LIB.STATIC = lib$(NAME).a # the static lib will be broken (see CFLAGS.SO) +LIB.SONAME.MX = lib$(NAME)mx.dll +LIB.DEVLNK.MX = lib$(NAME)mx.dll.a # for mingw this is the dll import lib +LIB.SHARED.MX = $(NAME)mx.dll +LIB.STATIC.MX = lib$(NAME)mx.a # the static lib will be broken (see CFLAGS.SO) diff --git a/config/Makefile.linux-mingw64 b/config/Makefile.linux-mingw64 index 31c7821..028b1d0 100644 --- a/config/Makefile.linux-mingw64 +++ b/config/Makefile.linux-mingw64 @@ -7,16 +7,17 @@ NAME = glew32 CC = amd64-mingw32msvc-gcc LD = amd64-mingw32msvc-ld -ifneq (undefined, $(origin GLEW_MX)) -CFLAGS.EXTRA = -DGLEW_MX -endif CFLAGS.SO = -DGLEW_BUILD LDFLAGS.SO = -shared -soname $(LIB.SONAME) --out-implib lib/$(LIB.DEVLNK) LDFLAGS.GL = -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32 WARN = -Wall -W POPT = -O2 BIN.SUFFIX = .exe -LIB.SONAME = lib$(NAME).dll -LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib -LIB.SHARED = $(NAME).dll -LIB.STATIC = lib$(NAME).a # the static lib will be broken (see CFLAGS.SO) +LIB.SONAME = lib$(NAME).dll +LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib +LIB.SHARED = $(NAME).dll +LIB.STATIC = lib$(NAME).a # the static lib will be broken (see CFLAGS.SO) +LIB.SONAME.MX = lib$(NAME)mx.dll +LIB.DEVLNK.MX = lib$(NAME)mx.dll.a # for mingw this is the dll import lib +LIB.SHARED.MX = $(NAME)mx.dll +LIB.STATIC.MX = lib$(NAME)mx.a # the static lib will be broken (see CFLAGS.SO) diff --git a/config/Makefile.mingw b/config/Makefile.mingw index 6b98a44..6c06019 100644 --- a/config/Makefile.mingw +++ b/config/Makefile.mingw @@ -2,9 +2,6 @@ NAME = glew32 CC = gcc # use gcc for linking, with ld it does not work LD = gcc -ifneq (undefined, $(origin GLEW_MX)) -CFLAGS.EXTRA = -DGLEW_MX -endif 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) @@ -13,7 +10,11 @@ LDFLAGS.EXTRA = -L/mingw/lib WARN = -Wall -W POPT = -O2 BIN.SUFFIX = .exe -LIB.SONAME = lib$(NAME).dll -LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib -LIB.SHARED = $(NAME).dll -LIB.STATIC = lib$(NAME).a # the static lib will be broken (see CFLAGS.SO) +LIB.SONAME = lib$(NAME).dll +LIB.DEVLNK = lib$(NAME).dll.a # for mingw this is the dll import lib +LIB.SHARED = $(NAME).dll +LIB.STATIC = lib$(NAME).a # the static lib will be broken (see CFLAGS.SO) +LIB.SONAME.MX = lib$(NAME)mx.dll +LIB.DEVLNK.MX = lib$(NAME)mx.dll.a # for mingw this is the dll import lib +LIB.SHARED.MX = $(NAME)mx.dll +LIB.STATIC.MX = lib$(NAME)mx.a # the static lib will be broken (see CFLAGS.SO) diff --git a/config/Makefile.solaris b/config/Makefile.solaris index d7dfa9c..b5dfebb 100644 --- a/config/Makefile.solaris +++ b/config/Makefile.solaris @@ -2,16 +2,17 @@ NAME = $(GLEW_NAME) CC = cc LD = ld CFLAGS.EXTRA = -I/usr/openwin/include -ifneq (undefined, $(origin GLEW_MX)) -CFLAGS.EXTRA += -DGLEW_MX -endif LDFLAGS.SO = -G LDFLAGS.EXTRA = -L/usr/openwin/lib LDFLAGS.GL = -lXmu -lXi -lGLU -lGL -lXext -lX11 NAME = GLEW BIN.SUFFIX = POPT = -xO2 -LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) -LIB.DEVLNK = lib$(NAME).so -LIB.SHARED = lib$(NAME).so.$(SO_VERSION) -LIB.STATIC = lib$(NAME).a +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) +LIB.DEVLNK.MX = lib$(NAME)mx.so +LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) +LIB.STATIC.MX = lib$(NAME)mx.a diff --git a/glew.pc.in b/glew.pc.in index 4979fb0..10e946f 100644 --- a/glew.pc.in +++ b/glew.pc.in @@ -6,5 +6,5 @@ includedir=@includedir@ Name: glew Description: The OpenGL Extension Wrangler library Version: @version@ -Cflags: -I${includedir} -Libs: -L${libdir} -lGLEW +Cflags: -I${includedir} @cflags@ +Libs: -L${libdir} -l@libname@ From ff1aa067012799e9462305f762981cc1b4c574d2 Mon Sep 17 00:00:00 2001 From: Nigel Stewart Date: Fri, 11 Mar 2011 11:16:50 -0600 Subject: [PATCH 03/11] Patch ID: 3206528 Add support for NV_video_capture --- auto/bin/update_ext.sh | 19 +++++++++++++++++++ auto/blacklist | 1 - 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/auto/bin/update_ext.sh b/auto/bin/update_ext.sh index 8123bf8..f1320a1 100755 --- a/auto/bin/update_ext.sh +++ b/auto/bin/update_ext.sh @@ -42,6 +42,25 @@ if [ ! -d $1 ] ; then grep -v glGetIntegerIndexedvEXT $1/GL_EXT_transform_feedback > tmp mv tmp $1/GL_EXT_transform_feedback +# remove duplicates from GL_NV_video_capture and GLX_NV_video_capture + grep -v glX $1/GL_NV_video_capture > tmp + mv tmp $1/GL_NV_video_capture + +# add missing functions to GL_NV_video_capture + cat >> $1/GL_NV_video_capture <> $1/WGL_NV_video_capture < tmp mv tmp $1/GL_NV_present_video diff --git a/auto/blacklist b/auto/blacklist index e001284..6cd0e11 100644 --- a/auto/blacklist +++ b/auto/blacklist @@ -12,4 +12,3 @@ SGIX/video_source.txt SGIX/hyperpipe_group.txt OES/OES_fixed_point.txt OES/OES_query_matrix.txt -NV/video_capture.txt From c06a90bc59387305071d4d49fdc946bcc8f942a2 Mon Sep 17 00:00:00 2001 From: Nigel Stewart Date: Fri, 11 Mar 2011 12:39:50 -0600 Subject: [PATCH 04/11] GLX fixup for Patch ID: 3206528 Add support for NV_video_capture --- auto/bin/update_ext.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/auto/bin/update_ext.sh b/auto/bin/update_ext.sh index f1320a1..4ec2e2d 100755 --- a/auto/bin/update_ext.sh +++ b/auto/bin/update_ext.sh @@ -61,6 +61,11 @@ EOT DECLARE_HANDLE(HVIDEOINPUTDEVICENV); EOT +# fix GLX_NV_video_capture + cat >> $1/GLX_NV_video_capture < tmp mv tmp $1/GL_NV_present_video From 5de43d97fc35efffbe0709ef257c2deb5b0f1ef5 Mon Sep 17 00:00:00 2001 From: Nigel Stewart Date: Fri, 11 Mar 2011 15:43:25 -0600 Subject: [PATCH 05/11] mx fixups for Cygwin build. --- config/Makefile.cygwin | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/config/Makefile.cygwin b/config/Makefile.cygwin index 1af6c68..4a63891 100644 --- a/config/Makefile.cygwin +++ b/config/Makefile.cygwin @@ -12,7 +12,11 @@ LDFLAGS.DYNAMIC = -Wl,-Bdynamic WARN = -Wall -W POPT = -O2 BIN.SUFFIX = .exe -LIB.SONAME = cyg$(NAME)-$(SO_MAJOR).dll -LIB.DEVLNK = lib$(NAME).dll.a -LIB.SHARED = cyg$(NAME)-$(SO_MAJOR).dll -LIB.STATIC = lib$(NAME).a +LIB.SONAME = cyg$(NAME)-$(SO_MAJOR).dll +LIB.DEVLNK = lib$(NAME).dll.a +LIB.SHARED = cyg$(NAME)-$(SO_MAJOR).dll +LIB.STATIC = lib$(NAME).a +LIB.SONAME.MX = cyg$(NAME)mx-$(SO_MAJOR).dll +LIB.DEVLNK.MX = lib$(NAME)mx.dll.a +LIB.SHARED.MX = cyg$(NAME)mx-$(SO_MAJOR).dll +LIB.STATIC.MX = lib$(NAME)mx.a From 9bca6b44ea72eab1f1e3cb27ac6f3e4639ec4148 Mon Sep 17 00:00:00 2001 From: Nigel Stewart Date: Sun, 27 Mar 2011 23:21:43 -0500 Subject: [PATCH 06/11] Ungreedy prefix match for function name -> __glew prefixing --- auto/bin/make.pl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/auto/bin/make.pl b/auto/bin/make.pl index 80843bd..f382263 100755 --- a/auto/bin/make.pl +++ b/auto/bin/make.pl @@ -19,7 +19,7 @@ my %regex = ( sub prefixname($) { my $name = $_[0]; - $name =~ s/^(.*)gl/__$1glew/; + $name =~ s/^(.*?)gl/__$1glew/; return $name; } @@ -27,7 +27,7 @@ sub prefixname($) sub prefix_varname($) { my $name = $_[0]; - $name =~ s/^(.*)GL(X*)EW/__$1GL$2EW/; + $name =~ s/^(.*?)GL(X*?)EW/__$1GL$2EW/; return $name; } From 4a9b2a7b420a9499e896a8279cfe57145fb0f8df Mon Sep 17 00:00:00 2001 From: Nigel Stewart Date: Mon, 28 Mar 2011 20:21:13 -0500 Subject: [PATCH 07/11] Fix for setting the soname of GLEWmx shared libraries - Thanks to Adam Williamson (Fedora QA Community Monkey) --- Makefile | 2 +- config/Makefile.cygming | 3 ++- config/Makefile.cygwin | 3 ++- config/Makefile.darwin | 3 ++- config/Makefile.freebsd | 3 ++- config/Makefile.gnu | 3 ++- config/Makefile.irix | 3 ++- config/Makefile.kfreebsd | 3 ++- config/Makefile.linux | 3 ++- config/Makefile.linux-mingw32 | 3 ++- config/Makefile.linux-mingw64 | 3 ++- config/Makefile.mingw | 4 ++-- 12 files changed, 23 insertions(+), 13 deletions(-) diff --git a/Makefile b/Makefile index ebba21a..bb019a5 100644 --- a/Makefile +++ b/Makefile @@ -132,7 +132,7 @@ lib/$(LIB.STATIC.MX): $(LIB.OBJS.MX) $(AR) cr $@ $^ 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)),) else $(LN) $(LIB.SHARED.MX) lib/$(LIB.SONAME.MX) diff --git a/config/Makefile.cygming b/config/Makefile.cygming index df25279..6147717 100644 --- a/config/Makefile.cygming +++ b/config/Makefile.cygming @@ -7,7 +7,6 @@ CC = gcc -mno-cygwin # use gcc for linking, with ld it does not work LD = gcc -mno-cygwin 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.EXTRA = -L$(LIBDIR) 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.SHARED = $(NAME).dll 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.DEVLNK.MX = lib$(NAME)mx.dll.a # for mingw this is the dll import lib LIB.SHARED.MX = $(NAME)mx.dll 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) diff --git a/config/Makefile.cygwin b/config/Makefile.cygwin index 4a63891..068bc09 100644 --- a/config/Makefile.cygwin +++ b/config/Makefile.cygwin @@ -3,7 +3,6 @@ GLEW_DEST ?= /usr/X11R6 CC = cc # use gcc for linking, with ld it does not work LD = cc -LDFLAGS.SO = -shared -Wl,--out-implib,lib/$(LIB.DEVLNK) LDFLAGS.EXTRA = -L/usr/X11R6/lib LIBDIR = $(GLEW_DEST)/lib 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.SHARED = cyg$(NAME)-$(SO_MAJOR).dll LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -Wl,--out-implib,lib/$(LIB.DEVLNK) LIB.SONAME.MX = cyg$(NAME)mx-$(SO_MAJOR).dll LIB.DEVLNK.MX = lib$(NAME)mx.dll.a LIB.SHARED.MX = cyg$(NAME)mx-$(SO_MAJOR).dll LIB.STATIC.MX = lib$(NAME)mx.a +LDFLAGS.SO.MX = -shared -Wl,--out-implib,lib/$(LIB.DEVLNK.MX) diff --git a/config/Makefile.darwin b/config/Makefile.darwin index 69a474f..bdb0b49 100644 --- a/config/Makefile.darwin +++ b/config/Makefile.darwin @@ -3,7 +3,6 @@ CC = cc LD = cc CFLAGS.EXTRA = -no-cpp-precomp -dynamic -fno-common PICFLAG = -fPIC -LDFLAGS.SO = -dynamiclib -install_name $(GLEW_DEST)/lib/$(LIB.SHARED) LDFLAGS.EXTRA = ifneq (undefined, $(origin 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.SHARED = lib$(NAME).$(SO_VERSION).dylib 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.DEVLNK.MX = lib$(NAME)mx.dylib LIB.SHARED.MX = lib$(NAME)mx.$(SO_VERSION).dylib LIB.STATIC.MX = lib$(NAME)mx.a +LDFLAGS.SO.MX = -dynamiclib -install_name $(GLEW_DEST)/lib/$(LIB.SHARED.MX) SHARED_OBJ_EXT = pic_o diff --git a/config/Makefile.freebsd b/config/Makefile.freebsd index fe0c324..aa3a97d 100644 --- a/config/Makefile.freebsd +++ b/config/Makefile.freebsd @@ -1,7 +1,6 @@ NAME = $(GLEW_NAME) CC = cc LD = ld -LDFLAGS.SO = -shared -soname $(LIB.SONAME) LDFLAGS.EXTRA = -L/usr/X11R6/lib LDFLAGS.GL = -lXmu -lXi -lGLU -lGL -lXext -lX11 LDFLAGS.STATIC = -Wl,-Bstatic @@ -15,7 +14,9 @@ LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) LIB.DEVLNK = lib$(NAME).so LIB.SHARED = lib$(NAME).so.$(SO_VERSION) LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -soname $(LIB.SONAME) LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) LIB.DEVLNK.MX = lib$(NAME)mx.so LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) LIB.STATIC.MX = lib$(NAME)mx.a +LDFLAGS.SO.MX = -shared -soname $(LIB.SONAME.MX) diff --git a/config/Makefile.gnu b/config/Makefile.gnu index ac96c1d..01bed30 100644 --- a/config/Makefile.gnu +++ b/config/Makefile.gnu @@ -2,7 +2,6 @@ NAME = $(GLEW_NAME) CC = cc LD = cc PICFLAG = -fPIC -LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) LDFLAGS.EXTRA = -L/usr/X11R6/lib LDFLAGS.GL = -lXmu -lXi -lGLU -lGL -lXext -lX11 LDFLAGS.STATIC = -Wl,-Bstatic @@ -15,8 +14,10 @@ LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) LIB.DEVLNK = lib$(NAME).so LIB.SHARED = lib$(NAME).so.$(SO_VERSION) LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) LIB.DEVLNK.MX = lib$(NAME)mx.so LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) LIB.STATIC.MX = lib$(NAME)mx.a +LDFLAGS.SO.MX = -shared -Wl,-soname=$(LIB.SONAME.MX) SHARED_OBJ_EXT = pic_o diff --git a/config/Makefile.irix b/config/Makefile.irix index 0125caf..c165961 100644 --- a/config/Makefile.irix +++ b/config/Makefile.irix @@ -4,7 +4,6 @@ LD = ld ABI = -64# -n32 CC += $(ABI) LD += $(ABI) -LDFLAGS.SO = -shared -soname $(LIB.SONAME) LDFLAGS.EXTRA = LDFLAGS.GL = -lGLU -lGL -lXext -lX11 NAME = GLEW @@ -15,7 +14,9 @@ LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) LIB.DEVLNK = lib$(NAME).so LIB.SHARED = lib$(NAME).so.$(SO_VERSION) LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -soname $(LIB.SONAME) LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) LIB.DEVLNK.MX = lib$(NAME)mx.so LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) LIB.STATIC.MX = lib$(NAME)mx.a +LDFLAGS.SO.MX = -shared -soname $(LIB.SONAME.MX) diff --git a/config/Makefile.kfreebsd b/config/Makefile.kfreebsd index e816776..6dc7030 100644 --- a/config/Makefile.kfreebsd +++ b/config/Makefile.kfreebsd @@ -2,7 +2,6 @@ NAME = $(GLEW_NAME) CC = cc LD = cc PICFLAG = -fPIC -LDFLAGS.SO = -shared -Wl,-soname $(LIB.SONAME) LDFLAGS.EXTRA = -L/usr/X11R6/lib LDFLAGS.GL = -lXmu -lXi -lGLU -lGL -lXext -lX11 LDFLAGS.STATIC = -Wl,-Bstatic @@ -15,8 +14,10 @@ LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) LIB.DEVLNK = lib$(NAME).so LIB.SHARED = lib$(NAME).so.$(SO_VERSION) LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -Wl,-soname $(LIB.SONAME) LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) LIB.DEVLNK.MX = lib$(NAME)mx.so LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) LIB.STATIC.MX = lib$(NAME)mx.a +LDFLAGS.SO.MX = -shared -Wl,-soname $(LIB.SONAME.MX) SHARED_OBJ_EXT = pic_o diff --git a/config/Makefile.linux b/config/Makefile.linux index b33c350..79eb308 100644 --- a/config/Makefile.linux +++ b/config/Makefile.linux @@ -2,7 +2,6 @@ NAME = $(GLEW_NAME) CC = cc LD = cc PICFLAG = -fPIC -LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) M_ARCH ?= $(shell uname -m) ifeq (x86_64,${M_ARCH}) LDFLAGS.EXTRA = -L/usr/X11R6/lib64 @@ -22,8 +21,10 @@ LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) LIB.DEVLNK = lib$(NAME).so LIB.SHARED = lib$(NAME).so.$(SO_VERSION) LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) LIB.DEVLNK.MX = lib$(NAME)mx.so LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) LIB.STATIC.MX = lib$(NAME)mx.a +LDFLAGS.SO.MX = -shared -Wl,-soname=$(LIB.SONAME.MX) SHARED_OBJ_EXT = pic_o diff --git a/config/Makefile.linux-mingw32 b/config/Makefile.linux-mingw32 index 6fcec42..ead1ff4 100644 --- a/config/Makefile.linux-mingw32 +++ b/config/Makefile.linux-mingw32 @@ -8,7 +8,6 @@ NAME = glew32 CC = i586-mingw32msvc-gcc LD = i586-mingw32msvc-ld CFLAGS.SO = -DGLEW_BUILD -LDFLAGS.SO = -shared -soname $(LIB.SONAME) --out-implib lib/$(LIB.DEVLNK) LDFLAGS.GL = -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32 WARN = -Wall -W 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.SHARED = $(NAME).dll 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.DEVLNK.MX = lib$(NAME)mx.dll.a # for mingw this is the dll import lib LIB.SHARED.MX = $(NAME)mx.dll 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) diff --git a/config/Makefile.linux-mingw64 b/config/Makefile.linux-mingw64 index 028b1d0..f32a882 100644 --- a/config/Makefile.linux-mingw64 +++ b/config/Makefile.linux-mingw64 @@ -8,7 +8,6 @@ NAME = glew32 CC = amd64-mingw32msvc-gcc LD = amd64-mingw32msvc-ld CFLAGS.SO = -DGLEW_BUILD -LDFLAGS.SO = -shared -soname $(LIB.SONAME) --out-implib lib/$(LIB.DEVLNK) LDFLAGS.GL = -lglu32 -lopengl32 -lgdi32 -luser32 -lkernel32 WARN = -Wall -W 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.SHARED = $(NAME).dll 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.DEVLNK.MX = lib$(NAME)mx.dll.a # for mingw this is the dll import lib LIB.SHARED.MX = $(NAME)mx.dll 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) diff --git a/config/Makefile.mingw b/config/Makefile.mingw index 6c06019..1fbf3f6 100644 --- a/config/Makefile.mingw +++ b/config/Makefile.mingw @@ -3,8 +3,6 @@ CC = gcc # use gcc for linking, with ld it does not work LD = gcc 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.EXTRA = -L/mingw/lib 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.SHARED = $(NAME).dll 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.DEVLNK.MX = lib$(NAME)mx.dll.a # for mingw this is the dll import lib LIB.SHARED.MX = $(NAME)mx.dll 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) From 1b38b41837379649cc5f86b167b470be368c2a1d Mon Sep 17 00:00:00 2001 From: Nigel Stewart Date: Wed, 30 Mar 2011 11:38:25 -0500 Subject: [PATCH 08/11] Patch ID: 3260500 - Query extension string only once --- auto/bin/make_list.pl | 2 +- auto/src/glew_head.c | 20 ++++++++++++++++++++ auto/src/glew_init_gl.c | 35 ++++++++++++++++------------------- auto/src/glew_init_glx.c | 29 +++++++++++++++-------------- auto/src/glew_init_wgl.c | 33 +++++++++++++++++++-------------- 5 files changed, 71 insertions(+), 48 deletions(-) diff --git a/auto/bin/make_list.pl b/auto/bin/make_list.pl index ceaa479..5571ea9 100755 --- a/auto/bin/make_list.pl +++ b/auto/bin/make_list.pl @@ -46,7 +46,7 @@ if (@ARGV) if (length($extstring)) { - print " CONST_CAST(" . $extvar . ") = " . $extpre . "GetExtension(\"$extstring\");\n"; + print " CONST_CAST(" . $extvar . ") = _glewSearchExtension(\"$extstring\", start, end);\n"; } if (keys %$functions) diff --git a/auto/src/glew_head.c b/auto/src/glew_head.c index df16210..c6c50a7 100644 --- a/auto/src/glew_head.c +++ b/auto/src/glew_head.c @@ -217,3 +217,23 @@ static GLboolean _glewStrSame3 (GLubyte** a, GLuint* na, const GLubyte* b, GLuin } return GL_FALSE; } + +/* + * Search for name in the extensions string. Use of strstr() + * is not sufficient because extension names can be prefixes of + * other extension names. Could use strtok() but the constant + * string returned by glGetString might be in read-only memory. + */ +static GLboolean _glewSearchExtension (const char* name, const GLubyte *start, const GLubyte *end) +{ + const GLubyte* p; + GLuint len = _glewStrLen((const GLubyte*)name); + p = start; + while (p < end) + { + GLuint n = _glewStrCLen(p, ' '); + if (len == n && _glewStrSame((const GLubyte*)name, p, n)) return GL_TRUE; + p += n+1; + } + return GL_FALSE; +} diff --git a/auto/src/glew_init_gl.c b/auto/src/glew_init_gl.c index 33bd85e..0779939 100644 --- a/auto/src/glew_init_gl.c +++ b/auto/src/glew_init_gl.c @@ -1,26 +1,14 @@ /* ------------------------------------------------------------------------- */ -/* - * Search for name in the extensions string. Use of strstr() - * is not sufficient because extension names can be prefixes of - * other extension names. Could use strtok() but the constant - * string returned by glGetString might be in read-only memory. - */ GLboolean glewGetExtension (const char* name) { - GLubyte* p; - GLubyte* end; - GLuint len = _glewStrLen((const GLubyte*)name); - p = (GLubyte*)glGetString(GL_EXTENSIONS); - if (0 == p) return GL_FALSE; - end = p + _glewStrLen(p); - while (p < end) - { - GLuint n = _glewStrCLen(p, ' '); - if (len == n && _glewStrSame((const GLubyte*)name, p, n)) return GL_TRUE; - p += n+1; - } - return GL_FALSE; + const GLubyte* start; + const GLubyte* end; + start = (const GLubyte*)glGetString(GL_EXTENSIONS); + if (start == 0) + return GL_FALSE; + end = start + _glewStrLen(start); + return _glewSearchExtension(name, start, end); } /* ------------------------------------------------------------------------- */ @@ -33,6 +21,8 @@ GLenum glewContextInit (GLEW_CONTEXT_ARG_DEF_LIST) const GLubyte* s; GLuint dot; GLint major, minor; + const GLubyte* start; + const GLubyte* end; /* query opengl version */ s = glGetString(GL_VERSION); dot = _glewStrCLen(s, '.'); @@ -69,4 +59,11 @@ GLenum glewContextInit (GLEW_CONTEXT_ARG_DEF_LIST) CONST_CAST(GLEW_VERSION_1_2) = GLEW_VERSION_1_2_1 == GL_TRUE || ( major == 1 && minor >= 2 ) ? GL_TRUE : GL_FALSE; CONST_CAST(GLEW_VERSION_1_1) = GLEW_VERSION_1_2 == GL_TRUE || ( major == 1 && minor >= 1 ) ? GL_TRUE : GL_FALSE; } + + /* query opengl extensions string */ + start = glGetString(GL_EXTENSIONS); + if (start == 0) + start = (const GLubyte*)""; + end = start + _glewStrLen(start); + /* initialize extensions */ diff --git a/auto/src/glew_init_glx.c b/auto/src/glew_init_glx.c index c66e24c..37bbee1 100644 --- a/auto/src/glew_init_glx.c +++ b/auto/src/glew_init_glx.c @@ -2,27 +2,21 @@ GLboolean glxewGetExtension (const char* name) { - GLubyte* p; - GLubyte* end; - GLuint len; + const GLubyte* start; + const GLubyte* end; if (glXGetCurrentDisplay == NULL) return GL_FALSE; - len = _glewStrLen((const GLubyte*)name); - p = (GLubyte*)glXGetClientString(glXGetCurrentDisplay(), GLX_EXTENSIONS); - if (0 == p) return GL_FALSE; - end = p + _glewStrLen(p); - while (p < end) - { - GLuint n = _glewStrCLen(p, ' '); - if (len == n && _glewStrSame((const GLubyte*)name, p, n)) return GL_TRUE; - p += n+1; - } - return GL_FALSE; + start = (const GLubyte*)glXGetClientString(glXGetCurrentDisplay(), GLX_EXTENSIONS); + if (0 == start) return GL_FALSE; + end = start + _glewStrLen(start); + return _glewSearchExtension(name, start, end); } GLenum glxewContextInit (GLXEW_CONTEXT_ARG_DEF_LIST) { int major, minor; + const GLubyte* start; + const GLubyte* end; /* initialize core GLX 1.2 */ if (_glewInit_GLX_VERSION_1_2(GLEW_CONTEXT_ARG_VAR_INIT)) return GLEW_ERROR_GLX_VERSION_11_ONLY; /* initialize flags */ @@ -49,4 +43,11 @@ GLenum glxewContextInit (GLXEW_CONTEXT_ARG_DEF_LIST) break; } } + /* query GLX extension string */ + start = 0; + if (glXGetCurrentDisplay != NULL) + start = (const GLubyte*)glXGetClientString(glXGetCurrentDisplay(), GLX_EXTENSIONS); + if (start == 0) + start = (const GLubyte *)""; + end = start + _glewStrLen(start); /* initialize extensions */ diff --git a/auto/src/glew_init_wgl.c b/auto/src/glew_init_wgl.c index e66de42..c37e084 100644 --- a/auto/src/glew_init_wgl.c +++ b/auto/src/glew_init_wgl.c @@ -5,32 +5,37 @@ static PFNWGLGETEXTENSIONSSTRINGEXTPROC _wglewGetExtensionsStringEXT = NULL; GLboolean wglewGetExtension (const char* name) { - GLubyte* p; - GLubyte* end; - GLuint len = _glewStrLen((const GLubyte*)name); + const GLubyte* start; + const GLubyte* end; if (_wglewGetExtensionsStringARB == NULL) if (_wglewGetExtensionsStringEXT == NULL) return GL_FALSE; else - p = (GLubyte*)_wglewGetExtensionsStringEXT(); + start = (const GLubyte*)_wglewGetExtensionsStringEXT(); else - p = (GLubyte*)_wglewGetExtensionsStringARB(wglGetCurrentDC()); - if (0 == p) return GL_FALSE; - end = p + _glewStrLen(p); - while (p < end) - { - GLuint n = _glewStrCLen(p, ' '); - if (len == n && _glewStrSame((const GLubyte*)name, p, n)) return GL_TRUE; - p += n+1; - } - return GL_FALSE; + start = (const GLubyte*)_wglewGetExtensionsStringARB(wglGetCurrentDC()); + if (start == 0) + return GL_FALSE; + end = start + _glewStrLen(start); + return _glewSearchExtension(name, start, end); } GLenum wglewContextInit (WGLEW_CONTEXT_ARG_DEF_LIST) { GLboolean crippled; + const GLubyte* start; + const GLubyte* end; /* find wgl extension string query functions */ _wglewGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"wglGetExtensionsStringARB"); _wglewGetExtensionsStringEXT = (PFNWGLGETEXTENSIONSSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetExtensionsStringEXT"); + /* query wgl extension string */ + if (_wglewGetExtensionsStringARB == NULL) + if (_wglewGetExtensionsStringEXT == NULL) + start = (const GLubyte*)""; + else + start = (const GLubyte*)_wglewGetExtensionsStringEXT(); + else + start = (const GLubyte*)_wglewGetExtensionsStringARB(wglGetCurrentDC()); + end = start + _glewStrLen(start); /* initialize extensions */ crippled = _wglewGetExtensionsStringARB == NULL && _wglewGetExtensionsStringEXT == NULL; From 48e4e82de0168b044bced7555a208e960cebe2bc Mon Sep 17 00:00:00 2001 From: Nigel Stewart Date: Thu, 31 Mar 2011 07:49:53 -0500 Subject: [PATCH 09/11] Clarify name of extension string begin and end --- auto/bin/make_list.pl | 8 ++++---- auto/src/glew_init_gl.c | 12 ++++++------ auto/src/glew_init_glx.c | 14 +++++++------- auto/src/glew_init_wgl.c | 12 ++++++------ 4 files changed, 23 insertions(+), 23 deletions(-) diff --git a/auto/bin/make_list.pl b/auto/bin/make_list.pl index 5571ea9..a1eb665 100755 --- a/auto/bin/make_list.pl +++ b/auto/bin/make_list.pl @@ -44,10 +44,10 @@ if (@ARGV) print "#ifdef $extname\n"; - if (length($extstring)) - { - print " CONST_CAST(" . $extvar . ") = _glewSearchExtension(\"$extstring\", start, end);\n"; - } + if (length($extstring)) + { + print " CONST_CAST(" . $extvar . ") = _glewSearchExtension(\"$extstring\", extStart, extEnd);\n"; + } if (keys %$functions) { diff --git a/auto/src/glew_init_gl.c b/auto/src/glew_init_gl.c index 0779939..80fa341 100644 --- a/auto/src/glew_init_gl.c +++ b/auto/src/glew_init_gl.c @@ -21,8 +21,8 @@ GLenum glewContextInit (GLEW_CONTEXT_ARG_DEF_LIST) const GLubyte* s; GLuint dot; GLint major, minor; - const GLubyte* start; - const GLubyte* end; + const GLubyte* extStart; + const GLubyte* extEnd; /* query opengl version */ s = glGetString(GL_VERSION); dot = _glewStrCLen(s, '.'); @@ -61,9 +61,9 @@ GLenum glewContextInit (GLEW_CONTEXT_ARG_DEF_LIST) } /* query opengl extensions string */ - start = glGetString(GL_EXTENSIONS); - if (start == 0) - start = (const GLubyte*)""; - end = start + _glewStrLen(start); + extStart = glGetString(GL_EXTENSIONS); + if (extStart == 0) + extStart = (const GLubyte*)""; + extEnd = extStart + _glewStrLen(extStart); /* initialize extensions */ diff --git a/auto/src/glew_init_glx.c b/auto/src/glew_init_glx.c index 37bbee1..f5b393b 100644 --- a/auto/src/glew_init_glx.c +++ b/auto/src/glew_init_glx.c @@ -15,8 +15,8 @@ GLboolean glxewGetExtension (const char* name) GLenum glxewContextInit (GLXEW_CONTEXT_ARG_DEF_LIST) { int major, minor; - const GLubyte* start; - const GLubyte* end; + const GLubyte* extStart; + const GLubyte* extEnd; /* initialize core GLX 1.2 */ if (_glewInit_GLX_VERSION_1_2(GLEW_CONTEXT_ARG_VAR_INIT)) return GLEW_ERROR_GLX_VERSION_11_ONLY; /* initialize flags */ @@ -44,10 +44,10 @@ GLenum glxewContextInit (GLXEW_CONTEXT_ARG_DEF_LIST) } } /* query GLX extension string */ - start = 0; + extStart = 0; if (glXGetCurrentDisplay != NULL) - start = (const GLubyte*)glXGetClientString(glXGetCurrentDisplay(), GLX_EXTENSIONS); - if (start == 0) - start = (const GLubyte *)""; - end = start + _glewStrLen(start); + extStart = (const GLubyte*)glXGetClientString(glXGetCurrentDisplay(), GLX_EXTENSIONS); + if (extStart == 0) + extStart = (const GLubyte *)""; + extEnd = extStart + _glewStrLen(extStart); /* initialize extensions */ diff --git a/auto/src/glew_init_wgl.c b/auto/src/glew_init_wgl.c index c37e084..775c02a 100644 --- a/auto/src/glew_init_wgl.c +++ b/auto/src/glew_init_wgl.c @@ -23,19 +23,19 @@ GLboolean wglewGetExtension (const char* name) GLenum wglewContextInit (WGLEW_CONTEXT_ARG_DEF_LIST) { GLboolean crippled; - const GLubyte* start; - const GLubyte* end; + const GLubyte* extStart; + const GLubyte* extEnd; /* find wgl extension string query functions */ _wglewGetExtensionsStringARB = (PFNWGLGETEXTENSIONSSTRINGARBPROC)glewGetProcAddress((const GLubyte*)"wglGetExtensionsStringARB"); _wglewGetExtensionsStringEXT = (PFNWGLGETEXTENSIONSSTRINGEXTPROC)glewGetProcAddress((const GLubyte*)"wglGetExtensionsStringEXT"); /* query wgl extension string */ if (_wglewGetExtensionsStringARB == NULL) if (_wglewGetExtensionsStringEXT == NULL) - start = (const GLubyte*)""; + extStart = (const GLubyte*)""; else - start = (const GLubyte*)_wglewGetExtensionsStringEXT(); + extStart = (const GLubyte*)_wglewGetExtensionsStringEXT(); else - start = (const GLubyte*)_wglewGetExtensionsStringARB(wglGetCurrentDC()); - end = start + _glewStrLen(start); + extStart = (const GLubyte*)_wglewGetExtensionsStringARB(wglGetCurrentDC()); + extEnd = extStart + _glewStrLen(extStart); /* initialize extensions */ crippled = _wglewGetExtensionsStringARB == NULL && _wglewGetExtensionsStringEXT == NULL; From 158090aab59181fca8180723ffa2e8327826d475 Mon Sep 17 00:00:00 2001 From: Nigel Stewart Date: Fri, 1 Apr 2011 11:09:18 -0500 Subject: [PATCH 10/11] GLX_OML_sync_control is always needlessly disabled on many platforms without C99. Patch by Martin Lambers --- auto/Makefile | 7 +------ auto/bin/fix_OML_sync_control.sh | 18 ------------------ 2 files changed, 1 insertion(+), 24 deletions(-) delete mode 100755 auto/bin/fix_OML_sync_control.sh diff --git a/auto/Makefile b/auto/Makefile index 1016df4..7ec6bcd 100644 --- a/auto/Makefile +++ b/auto/Makefile @@ -26,7 +26,7 @@ ifeq (custom,$(MAKECMDGOALS)) GL_EXT_SPEC := $(shell grep "^[ \t]*GL_" custom.txt | grep -v GL_VERSION | sed -e 's/\(.*\)/$(EXT)\/\1/g;') WGL_EXT_SPEC := $(shell grep "^[ \t]*WGL_" custom.txt | sed -e 's/\(.*\)/$(EXT)\/\1/g;') #GLX_CORE_SPEC := $(shell grep GLX_VERSION custom.txt | sed -e 's/\(.*\)/$(CORE)\/\1/g;') -GLX_EXT_SPEC := $(shell grep "^[ \t]*GLX_" custom.txt | grep -v GLX_VERSION | grep -v GLX_OML_sync_control | sed -e 's/\(.*\)/$(EXT)\/\1/g;') +GLX_EXT_SPEC := $(shell grep "^[ \t]*GLX_" custom.txt | grep -v GLX_VERSION | sed -e 's/\(.*\)/$(EXT)\/\1/g;') else GL_EXT_SPEC := $(EXT)/GL_* WGL_EXT_SPEC := $(EXT)/WGL_* @@ -155,7 +155,6 @@ $(I.DEST)/glxew.h: $(EXT)/.dummy echo -e "\n#ifdef GLEW_MX\n}; /* GLXEWContextStruct */\n#endif /* GLEW_MX */\n" >> $@ perl -e 's/GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_2;/GLXEW_EXPORT GLboolean __GLXEW_VERSION_1_0;\nGLXEW_EXPORT GLboolean __GLXEW_VERSION_1_1;\nGLXEW_EXPORT GLboolean __GLXEW_VERSION_1_2;/' -pi $@ cat $(SRC)/glxew_tail.h >> $@ - $(BIN)/fix_OML_sync_control.sh $@ $(S.DEST)/glew.c: $(EXT)/.dummy @echo "--------------------------------------------------------------------" @@ -217,7 +216,6 @@ $(S.DEST)/glew.c: $(EXT)/.dummy perl -e "s/GLEW_VERSION_MICRO_STRING/$(GLEW_MICRO)/g" -pi $@ perl -e "s/GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader\(GLEW_CONTEXT_ARG_VAR_INIT\);/{ GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(GLEW_CONTEXT_ARG_VAR_INIT); _glewInit_GL_ARB_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); }/g" -pi $@ perl -e "s/\(\(glColorSubTable = /((glBlendEquation = (PFNGLBLENDEQUATIONPROC)glewGetProcAddress((const GLubyte*)\"glBlendEquation\")) == NULL) || r;\n r = ((glColorSubTable = /g" -pi $@ - $(BIN)/fix_OML_sync_control.sh $@ rm -f $@.bak $(S.DEST)/glew_def.c: $(EXT)/.dummy @@ -273,7 +271,6 @@ $(S.DEST)/glew_init.c: $(EXT)/.dummy perl -e "s/GLEW_VERSION_MICRO_STRING/$(GLEW_MICRO)/g" -pi $@ perl -e "s/GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader\(GLEW_CONTEXT_ARG_VAR_INIT\);/{ GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(GLEW_CONTEXT_ARG_VAR_INIT); _glewInit_GL_ARB_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); }/g" -pi $@ perl -e "s/\(\(glBlendColor = /((glBlendEquation = (PFNGLBLENDEQUATIONPROC)glewGetProcAddress((const GLubyte*)\"glBlendEquation\")) == NULL) || r;\n r = ((glBlendColor = /g" -pi $@ - $(BIN)/fix_OML_sync_control.sh $@ rm -f $@.bak $(S.DEST)/glew_str.c: $(EXT)/.dummy @@ -286,7 +283,6 @@ $(S.DEST)/glew_str.c: $(EXT)/.dummy cat $(SRC)/glew_str_glx.c >> $@ $(BIN)/make_str.pl $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@ cat $(SRC)/glew_str_tail.c >> $@ -# $(BIN)/fix_OML_sync_control.sh $@ # perl -e "s/GLEW_VERSION_STRING/$(GLEW_VERSION)/g" -pi $@ # perl -e "s/GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader\(GLEW_CONTEXT_ARG_VAR_INIT\);/{ GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(GLEW_CONTEXT_ARG_VAR_INIT); _glewInit_GL_ARB_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); }/g" -pi $@ rm -f $@.bak @@ -315,7 +311,6 @@ $(S.DEST)/glewinfo.c: $(EXT)/.dummy $(BIN)/make_info_list.pl $(GLX_CORE_SPEC) >> $@ $(BIN)/make_info_list.pl $(GLX_EXT_SPEC) >> $@ cat $(SRC)/glewinfo_tail.c >> $@ - $(BIN)/fix_OML_sync_control.sh $@ perl -e 's/"glColorSubTable"/"glBlendEquation", glBlendEquation == NULL);\n glewInfoFunc("glColorSubTable"/g' -pi $@ rm -f $@.bak diff --git a/auto/bin/fix_OML_sync_control.sh b/auto/bin/fix_OML_sync_control.sh deleted file mode 100755 index 2579ab4..0000000 --- a/auto/bin/fix_OML_sync_control.sh +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -## -## Copyright (C) 2002-2008, Marcelo E. Magallon -## Copyright (C) 2002-2008, Milan Ikits -## -## This program is distributed under the terms and conditions of the GNU -## General Public License Version 2 as published by the Free Software -## Foundation or, at your option, any later version. - -perl -e 's/#ifndef GLX_OML_sync_control/#if !defined(GLX_OML_sync_control) \&\& defined(__STDC_VERSION__) \&\& (__STDC_VERSION__ >= 199901L)\n#include /;' -pi $1 -perl -e 's/#ifdef GLX_OML_sync_control/#if defined(GLX_OML_sync_control) \&\& defined(__STDC_VERSION__) \&\& (__STDC_VERSION__ >= 199901L)\n#include /;' -pi $1 -perl -e 's/(extern PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML;)/#ifdef GLX_OML_sync_control\n\1/' -pi $1 -perl -e 's/(extern PFNGLXWAITFORSBCOMLPROC __glewXWaitForSbcOML;)/\1\n#endif/' -pi $1 -perl -e 's/(extern GLboolean __GLXEW_OML_sync_control;)/#ifdef GLX_OML_sync_control\n\1\n#endif/' -pi $1 -perl -e 's/(PFNGLXGETMSCRATEOMLPROC __glewXGetMscRateOML = NULL;)/#ifdef GLX_OML_sync_control\n\1/' -pi $1 -perl -e 's/(PFNGLXWAITFORSBCOMLPROC __glewXWaitForSbcOML = NULL;)/\1\n#endif/' -pi $1 -perl -e 's/(GLboolean __GLXEW_OML_sync_control = GL_FALSE;)/#ifdef GLX_OML_sync_control\n\1\n#endif/' -pi $1 -rm -f $1.bak From c604eb9d8f6fd035c2767d0e4ff23f1504fc9a7b Mon Sep 17 00:00:00 2001 From: Nigel Stewart Date: Fri, 1 Apr 2011 11:12:59 -0500 Subject: [PATCH 11/11] Add working solaris-gcc config for Open Solaris - gcc 3.4.3 --- config/Makefile.solaris-gcc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 config/Makefile.solaris-gcc diff --git a/config/Makefile.solaris-gcc b/config/Makefile.solaris-gcc new file mode 100644 index 0000000..538e507 --- /dev/null +++ b/config/Makefile.solaris-gcc @@ -0,0 +1,20 @@ +NAME = $(GLEW_NAME) +CC = gcc +LD = ld +CFLAGS.EXTRA = -I/usr/openwin/include +LDFLAGS.SO = -G +LDFLAGS.EXTRA = -L/usr/openwin/lib +LDFLAGS.GL = -lXmu -lXi -lGLU -lGL -lXext -lX11 +NAME = GLEW +BIN.SUFFIX = +POPT = -O2 +LIB.SONAME = lib$(NAME).so.$(SO_MAJOR) +LIB.DEVLNK = lib$(NAME).so +LIB.SHARED = lib$(NAME).so.$(SO_VERSION) +LIB.STATIC = lib$(NAME).a +LDFLAGS.SO = -shared -Wl,-soname=$(LIB.SONAME) +LIB.SONAME.MX = lib$(NAME)mx.so.$(SO_MAJOR) +LIB.DEVLNK.MX = lib$(NAME)mx.so +LIB.SHARED.MX = lib$(NAME)mx.so.$(SO_VERSION) +LIB.STATIC.MX = lib$(NAME)mx.a +LDFLAGS.SO.MX = -shared -Wl,-soname=$(LIB.SONAME.MX)