From 0f68032a7cebe740421e5de4586d13c99a8728ab Mon Sep 17 00:00:00 2001 From: Kristian Høgsberg Date: Tue, 27 Apr 2010 13:42:33 -0400 Subject: configure.ac: Add options to enable GLES1/2 API support --- configure.ac | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) (limited to 'configure.ac') diff --git a/configure.ac b/configure.ac index 0e777074339..abb655135f5 100644 --- a/configure.ac +++ b/configure.ac @@ -711,6 +711,37 @@ if test "x$with_dri_drivers" = x; then with_dri_drivers=no fi +dnl Determine which APIs to support +AC_ARG_ENABLE([opengl], + [AS_HELP_STRING([--disable-opengl], + [disable support for standard OpenGL API @<:@default=no@:>@])], + [enable_opengl="$enableval"], + [enable_opengl=yes]) +AC_ARG_ENABLE([gles1], + [AS_HELP_STRING([--enable-gles1], + [enable support for OpenGL ES 1.x API @<:@default=no@:>@])], + [enable_gles1="$enableval"], + [enable_gles1=no]) +AC_ARG_ENABLE([gles2], + [AS_HELP_STRING([--enable-gles2], + [enable support for OpenGL ES 2.x API @<:@default=no@:>@])], + [enable_gles2="$enableval"], + [enable_gles2=no]) + +API_DEFINES="" +if test "x$enable_opengl" = xno; then + API_DEFINES="$API_DEFINES -DFEATURE_GL=0" +else + API_DEFINES="$API_DEFINES -DFEATURE_GL=1" +fi +if test "x$enable_gles1" = xyes; then + API_DEFINES="$API_DEFINES -DFEATURE_ES1=1" +fi +if test "x$enable_gles2" = xyes; then + API_DEFINES="$API_DEFINES -DFEATURE_ES2=1" +fi +AC_SUBST([API_DEFINES]) + dnl If $with_dri_drivers is yes, directories will be added through dnl platform checks DRI_DIRS="" -- cgit v1.2.3 From 9339c1291d73ada1a85b994cb076a9a0bf3c8110 Mon Sep 17 00:00:00 2001 From: Kristian Høgsberg Date: Fri, 5 Mar 2010 19:01:43 -0500 Subject: gles: Build libGLESv1_CM.so and libGLESv2.so from glapi files --- configs/autoconf.in | 8 ++++++ configure.ac | 16 ++++++++++++ src/gles/Makefile | 70 +++++++++++++++++++++++++++++++++++++++++++++++++++++ src/mesa/Makefile | 24 ++++++++++++++++++ 4 files changed, 118 insertions(+) create mode 100644 src/gles/Makefile (limited to 'configure.ac') diff --git a/configs/autoconf.in b/configs/autoconf.in index c89441b2518..afd51a370bb 100644 --- a/configs/autoconf.in +++ b/configs/autoconf.in @@ -50,6 +50,8 @@ GLU_LIB = GLU GLUT_LIB = glut GLW_LIB = GLw OSMESA_LIB = @OSMESA_LIB@ +GLESv1_CM_LIB = GLESv1_CM +GLESv2_LIB = GLESv2 # Library names (actual file names) GL_LIB_NAME = @GL_LIB_NAME@ @@ -58,6 +60,8 @@ GLUT_LIB_NAME = @GLUT_LIB_NAME@ GLW_LIB_NAME = @GLW_LIB_NAME@ OSMESA_LIB_NAME = @OSMESA_LIB_NAME@ EGL_LIB_NAME = @EGL_LIB_NAME@ +GLESv1_CM_LIB_NAME = @GLESv1_CM_LIB_NAME@ +GLESv2_LIB_NAME = @GLESv2_LIB_NAME@ # Globs used to install the lib and all symlinks GL_LIB_GLOB = @GL_LIB_GLOB@ @@ -66,6 +70,8 @@ GLUT_LIB_GLOB = @GLUT_LIB_GLOB@ GLW_LIB_GLOB = @GLW_LIB_GLOB@ OSMESA_LIB_GLOB = @OSMESA_LIB_GLOB@ EGL_LIB_GLOB = @EGL_LIB_GLOB@ +GLESv1_CM_LIB_GLOB = @GLESv1_CM_LIB_GLOB@ +GLESv2_LIB_GLOB = @GLESv2_LIB_GLOB@ # Directories to build LIB_DIR = @LIB_DIR@ @@ -107,6 +113,8 @@ GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLUT_MESA_DEPS@ \ GLW_LIB_DEPS = -L$(TOP)/$(LIB_DIR) @GLW_MESA_DEPS@ \ $(EXTRA_LIB_PATH) @GLW_LIB_DEPS@ APP_LIB_DEPS = $(EXTRA_LIB_PATH) @APP_LIB_DEPS@ +GLESv1_CM_LIB_DEPS = $(EXTRA_LIB_PATH) @GLESv1_LIB_DEPS@ +GLESv2_LIB_DEPS = $(EXTRA_LIB_PATH) @GLESv2_LIB_DEPS@ # DRI dependencies DRI_LIB_DEPS = $(EXTRA_LIB_PATH) @DRI_LIB_DEPS@ diff --git a/configure.ac b/configure.ac index abb655135f5..05cf6f82eb5 100644 --- a/configure.ac +++ b/configure.ac @@ -279,6 +279,8 @@ GLUT_LIB_NAME='lib$(GLUT_LIB).'${LIB_EXTENSION} GLW_LIB_NAME='lib$(GLW_LIB).'${LIB_EXTENSION} OSMESA_LIB_NAME='lib$(OSMESA_LIB).'${LIB_EXTENSION} EGL_LIB_NAME='lib$(EGL_LIB).'${LIB_EXTENSION} +GLESv1_CM_LIB_NAME='lib$(GLESv1_CM_LIB).'${LIB_EXTENSION} +GLESv2_LIB_NAME='lib$(GLESv2_LIB).'${LIB_EXTENSION} GL_LIB_GLOB='lib$(GL_LIB).*'${LIB_EXTENSION}'*' GLU_LIB_GLOB='lib$(GLU_LIB).*'${LIB_EXTENSION}'*' @@ -286,6 +288,8 @@ GLUT_LIB_GLOB='lib$(GLUT_LIB).*'${LIB_EXTENSION}'*' GLW_LIB_GLOB='lib$(GLW_LIB).*'${LIB_EXTENSION}'*' OSMESA_LIB_GLOB='lib$(OSMESA_LIB).*'${LIB_EXTENSION}'*' EGL_LIB_GLOB='lib$(EGL_LIB).*'${LIB_EXTENSION}'*' +GLESv1_CM_LIB_GLOB='lib$(GLESv1_CM_LIB).*'${LIB_EXTENSION}'*' +GLESv2_LIB_GLOB='lib$(GLESv2_LIB).*'${LIB_EXTENSION}'*' AC_SUBST([GL_LIB_NAME]) AC_SUBST([GLU_LIB_NAME]) @@ -293,6 +297,8 @@ AC_SUBST([GLUT_LIB_NAME]) AC_SUBST([GLW_LIB_NAME]) AC_SUBST([OSMESA_LIB_NAME]) AC_SUBST([EGL_LIB_NAME]) +AC_SUBST([GLESv1_CM_LIB_NAME]) +AC_SUBST([GLESv2_LIB_NAME]) AC_SUBST([GL_LIB_GLOB]) AC_SUBST([GLU_LIB_GLOB]) @@ -300,6 +306,8 @@ AC_SUBST([GLUT_LIB_GLOB]) AC_SUBST([GLW_LIB_GLOB]) AC_SUBST([OSMESA_LIB_GLOB]) AC_SUBST([EGL_LIB_GLOB]) +AC_SUBST([GLESv1_CM_LIB_GLOB]) +AC_SUBST([GLESv2_LIB_GLOB]) dnl dnl Arch/platform-specific settings @@ -653,6 +661,9 @@ dri) # need DRM libs, -lpthread, etc. GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS" GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS" + GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS" + GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS" + ;; osmesa) # No libGL for osmesa @@ -664,6 +675,8 @@ AC_SUBST([GL_PC_REQ_PRIV]) AC_SUBST([GL_PC_LIB_PRIV]) AC_SUBST([GL_PC_CFLAGS]) AC_SUBST([DRI_PC_REQ_PRIV]) +AC_SUBST([GLESv1_LIB_DEPS]) +AC_SUBST([GLESv2_LIB_DEPS]) dnl dnl More X11 setup @@ -740,6 +753,9 @@ fi if test "x$enable_gles2" = xyes; then API_DEFINES="$API_DEFINES -DFEATURE_ES2=1" fi +if test "x$enable_gles1" = xyes -o "x$enable_gles2"; then + SRC_DIRS="$SRC_DIRS gles" +fi AC_SUBST([API_DEFINES]) dnl If $with_dri_drivers is yes, directories will be added through diff --git a/src/gles/Makefile b/src/gles/Makefile new file mode 100644 index 00000000000..5fbd90b98fa --- /dev/null +++ b/src/gles/Makefile @@ -0,0 +1,70 @@ +TOP = ../.. +MESA = $(TOP)/src/mesa +include $(TOP)/configs/current +include $(MESA)/sources.mak + +GLESv1_CM_ASM := $(addprefix $(MESA)/es/glapi/glapi-es1/,$(GLAPI_ASM_SOURCES)) +GLESv2_ASM := $(addprefix $(MESA)/es/glapi/glapi-es2/,$(GLAPI_ASM_SOURCES)) +API_SOURCES := $(addprefix $(MESA)/,$(GLAPI_SOURCES)) + +$(TOP)/$(LIB_DIR)/$(GLESv1_CM_LIB_NAME) : PREFIX = es1 +$(TOP)/$(LIB_DIR)/$(GLESv1_CM_LIB_NAME) : NAME = GLESv1_CM + +$(TOP)/$(LIB_DIR)/$(GLESv2_LIB_NAME) : PREFIX = es2 +$(TOP)/$(LIB_DIR)/$(GLESv2_LIB_NAME) : NAME = GLESv2 + +INCLUDES = -I$(MESA)/es/glapi/glapi-$(PREFIX) -I$(MESA) + +OBJECTS = \ + $(notdir $(GLAPI_ASM_SOURCES:%.S=%.o)) \ + $(notdir $(GLAPI_SOURCES:%.c=%.o)) + +GLESv1_CM_OBJECTS = $(addprefix es1-,$(OBJECTS)) +GLESv2_OBJECTS = $(addprefix es2-,$(OBJECTS)) + +es1-%.o: $(dir $(GLESv1_CM_ASM))%.S + $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $< +es1-%.o: $(MESA)/glapi/%.c + $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $< + +es2-%.o: $(dir $(GLESv2_ASM))%.S + $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $< +es2-%.o: $(MESA)/glapi/%.c + $(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $< + +default: depend \ + $(TOP)/$(LIB_DIR)/$(GLESv1_CM_LIB_NAME) \ + $(TOP)/$(LIB_DIR)/$(GLESv2_LIB_NAME) + +$(TOP)/$(LIB_DIR)/$(GLESv1_CM_LIB_NAME) : $(GLESv1_CM_OBJECTS) +$(TOP)/$(LIB_DIR)/$(GLESv2_LIB_NAME) : $(GLESv2_OBJECTS) + +$(TOP)/$(LIB_DIR)/$(GLESv1_CM_LIB_NAME) \ +$(TOP)/$(LIB_DIR)/$(GLESv2_LIB_NAME) : Makefile + $(MKLIB) -o $($(NAME)_LIB) -linker '$(CC)' -ldflags '$(LDFLAGS)' \ + -major 1 -minor 2 $(MKLIB_OPTIONS) \ + -install $(TOP)/$(LIB_DIR) -id \ + $(INSTALL_LIB_DIR)/lib$($(NAME)_LIB).1.dylib \ + $($(NAME)_LIB_DEPS) $($(NAME)_OBJECTS) + +depend: Makefile + rm -f depend + touch depend + $(MKDEP) $(MKDEP_OPTIONS) $(INCLUDES) $(API_SOURCES) \ + $(ES1_API_ASM) $(ES2_API_ASM) + +# Emacs tags +tags: + etags `find . -name \*.[ch]` `find $(TOP)/include` + +install: $(TOP)/$(LIB_DIR)/$(GLESv1_CM_LIB_NAME) $(TOP)/$(LIB_DIR)/$(GLESv2_LIB_NAME) + $(MAKE) -C $(TOP)/src/mesa install-es2 install-es1 + +# Remove .o and backup files +clean: + -rm -f $(TOP)/$(LIB_DIR)/$(GLESv1_CM_LIB_GLOB) + -rm -f $(TOP)/$(LIB_DIR)/$(GLESv2_LIB_GLOB) + -rm -f *.o *~ + -rm -f depend depend.bak + +-include depend diff --git a/src/mesa/Makefile b/src/mesa/Makefile index 44e091f2407..c0500630173 100644 --- a/src/mesa/Makefile +++ b/src/mesa/Makefile @@ -146,6 +146,30 @@ install-libgl: default gl.pc install-headers $(DESTDIR)$(INSTALL_LIB_DIR) $(INSTALL) -m 644 gl.pc $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig +install-headers-es1: + $(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GLES + $(INSTALL) -m 644 $(TOP)/include/GLES/*.h \ + $(DESTDIR)$(INSTALL_INC_DIR)/GLES + +install-es1: default glesv1_cm.pc install-headers-es1 + $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR) + $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig + $(MINSTALL) $(TOP)/$(LIB_DIR)/$(GLESv1_CM_LIB_GLOB) \ + $(DESTDIR)$(INSTALL_LIB_DIR) + $(INSTALL) -m 644 glesv1_cm.pc $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig + +install-headers-es2: + $(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/GLES2 + $(INSTALL) -m 644 $(TOP)/include/GLES2/*.h \ + $(DESTDIR)$(INSTALL_INC_DIR)/GLES2 + +install-es2: default glesv2.pc install-headers-es2 + $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR) + $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig + $(MINSTALL) $(TOP)/$(LIB_DIR)/$(GLESv2_LIB_GLOB) \ + $(DESTDIR)$(INSTALL_LIB_DIR) + $(INSTALL) -m 644 glesv2.pc $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig + install-osmesa: default osmesa.pc $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR) $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig -- cgit v1.2.3 From 74399d4af5b5ea793ce8318c10014a026cf81563 Mon Sep 17 00:00:00 2001 From: Kristian Høgsberg Date: Sun, 2 May 2010 09:51:13 -0400 Subject: Add glesv2.pc and glesv1_cm.pc pkg-config files for ES 1 and 2 --- configs/autoconf.in | 2 ++ configure.ac | 3 ++- src/mesa/Makefile | 28 ++++++++++++++++++++++------ 3 files changed, 26 insertions(+), 7 deletions(-) (limited to 'configure.ac') diff --git a/configs/autoconf.in b/configs/autoconf.in index afd51a370bb..57a681a717d 100644 --- a/configs/autoconf.in +++ b/configs/autoconf.in @@ -163,6 +163,8 @@ GLW_PC_LIB_PRIV = @GLW_PC_LIB_PRIV@ GLW_PC_CFLAGS = @GLW_PC_CFLAGS@ OSMESA_PC_REQ = @OSMESA_PC_REQ@ OSMESA_PC_LIB_PRIV = @OSMESA_PC_LIB_PRIV@ +GLESv1_CM_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ +GLESv2_PC_LIB_PRIV = @GLESv2_PC_LIB_PRIV@ EGL_DRI2_CFLAGS = @EGL_DRI2_CFLAGS@ EGL_DRI2_LIBS = @EGL_DRI2_LIBS@ diff --git a/configure.ac b/configure.ac index 05cf6f82eb5..8e25163f75b 100644 --- a/configure.ac +++ b/configure.ac @@ -662,8 +662,9 @@ dri) GL_LIB_DEPS="$GL_LIB_DEPS $LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS" GL_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS" GLESv1_CM_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS" + GLESv1_CM_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS" GLESv2_LIB_DEPS="$LIBDRM_LIBS -lm -lpthread $DLOPEN_LIBS" - + GLESv2_PC_LIB_PRIV="-lm -lpthread $DLOPEN_LIBS" ;; osmesa) # No libGL for osmesa diff --git a/src/mesa/Makefile b/src/mesa/Makefile index c0500630173..3ba7caa68a1 100644 --- a/src/mesa/Makefile +++ b/src/mesa/Makefile @@ -108,12 +108,15 @@ install: default esac ; \ done - -gl_pcedit = sed \ +pcedit = \ -e 's,@INSTALL_DIR@,$(INSTALL_DIR),' \ -e 's,@INSTALL_LIB_DIR@,$(INSTALL_LIB_DIR),' \ -e 's,@INSTALL_INC_DIR@,$(INSTALL_INC_DIR),' \ -e 's,@VERSION@,$(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY),' \ + + +gl_pcedit = sed \ + $(pcedit) \ -e 's,@GL_PC_REQ_PRIV@,$(GL_PC_REQ_PRIV),' \ -e 's,@GL_PC_LIB_PRIV@,$(GL_PC_LIB_PRIV),' \ -e 's,@GL_PC_CFLAGS@,$(GL_PC_CFLAGS),' \ @@ -122,11 +125,24 @@ gl_pcedit = sed \ gl.pc: gl.pc.in $(gl_pcedit) $< > $@ +glesv2_pcedit = sed \ + $(pcedit) \ + -e 's,@GLESv2_PC_LIB_PRIV@,$(GLESv2_PC_LIB_PRIV),' \ + -e 's,@GLESv2_LIB@,$(GLESv2_LIB),' + +glesv2.pc: glesv2.pc.in + $(glesv2_pcedit) $< > $@ + +glesv1_cm_pcedit = sed \ + $(pcedit) \ + -e 's,@GLESv1_CM_PC_LIB_PRIV@,$(GLESv1_CM_PC_LIB_PRIV),' \ + -e 's,@GLESv1_CM_LIB@,$(GLESv1_CM_LIB),' + +glesv1_cm.pc: glesv1_cm.pc.in + $(glesv1_cm_pcedit) $< > $@ + osmesa_pcedit = sed \ - -e 's,@INSTALL_DIR@,$(INSTALL_DIR),' \ - -e 's,@INSTALL_LIB_DIR@,$(INSTALL_LIB_DIR),' \ - -e 's,@INSTALL_INC_DIR@,$(INSTALL_INC_DIR),' \ - -e 's,@VERSION@,$(MESA_MAJOR).$(MESA_MINOR).$(MESA_TINY),' \ + $(pcedit) \ -e 's,@OSMESA_LIB@,$(OSMESA_LIB),' \ -e 's,@OSMESA_PC_REQ@,$(OSMESA_PC_REQ),' \ -e 's,@OSMESA_PC_LIB_PRIV@,$(OSMESA_PC_LIB_PRIV),' -- cgit v1.2.3 From 9fd5fa05122aa0cac0051fa92d1634bde43209db Mon Sep 17 00:00:00 2001 From: Kristian Høgsberg Date: Sun, 2 May 2010 10:14:53 -0400 Subject: Hook in install rules for es1 and es2 --- configs/autoconf.in | 1 + configure.ac | 5 +++++ src/mesa/Makefile | 6 ++++++ 3 files changed, 12 insertions(+) (limited to 'configure.ac') diff --git a/configs/autoconf.in b/configs/autoconf.in index 57a681a717d..2235abe73f8 100644 --- a/configs/autoconf.in +++ b/configs/autoconf.in @@ -15,6 +15,7 @@ ASM_FLAGS = @ASM_FLAGS@ PIC_FLAGS = @PIC_FLAGS@ DEFINES = @DEFINES@ API_DEFINES = @API_DEFINES@ +APIS = @APIS@ CFLAGS = @CPPFLAGS@ @CFLAGS@ \ $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(ASM_FLAGS) $(DEFINES) CXXFLAGS = @CPPFLAGS@ @CXXFLAGS@ \ diff --git a/configure.ac b/configure.ac index 8e25163f75b..01f511749c8 100644 --- a/configure.ac +++ b/configure.ac @@ -743,21 +743,26 @@ AC_ARG_ENABLE([gles2], [enable_gles2=no]) API_DEFINES="" +APIS="" if test "x$enable_opengl" = xno; then API_DEFINES="$API_DEFINES -DFEATURE_GL=0" else API_DEFINES="$API_DEFINES -DFEATURE_GL=1" + APIS="$APIS gl" fi if test "x$enable_gles1" = xyes; then API_DEFINES="$API_DEFINES -DFEATURE_ES1=1" + APIS="$APIS es1" fi if test "x$enable_gles2" = xyes; then API_DEFINES="$API_DEFINES -DFEATURE_ES2=1" + APIS="$APIS es2" fi if test "x$enable_gles1" = xyes -o "x$enable_gles2"; then SRC_DIRS="$SRC_DIRS gles" fi AC_SUBST([API_DEFINES]) +AC_SUBST([APIS]) dnl If $with_dri_drivers is yes, directories will be added through dnl platform checks diff --git a/src/mesa/Makefile b/src/mesa/Makefile index 3ba7caa68a1..5403d28f328 100644 --- a/src/mesa/Makefile +++ b/src/mesa/Makefile @@ -106,6 +106,12 @@ install: default dri) $(MAKE) install-libgl install-dri || exit 1 ;; \ *) $(MAKE) install-libgl || exit 1 ;; \ esac ; \ + done; \ + for api in $(APIS) ; do \ + case "$$api" in \ + es1) $(MAKE) install-es1 || exit 1;; \ + es2) $(MAKE) install-es2 || exit 1;; \ + esac; \ done pcedit = \ -- cgit v1.2.3