Move glapi to src/mapi/{glapi,es1api,es2api}.
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L$(INSTALL_DIR)/$(LIB_DIR) -L$(X11_DIR)/$(LIB_DIR) -lX11 -lXmu -lXt -lXi -lm
# omit glw lib for now:
-SRC_DIRS = glsl glx/apple mesa gallium glu glut/glx glew
+SRC_DIRS = glsl mapi/glapi mapi/vgapi glx/apple mesa gallium glu glut/glx glew
GLU_DIRS = sgi
DRIVER_DIRS = osmesa
#DRIVER_DIRS = dri
# Directories to build
LIB_DIR = lib
-SRC_DIRS = glsl mesa gallium egl gallium/winsys gallium/targets glu glut/glx glew glw
+SRC_DIRS = glsl mapi/glapi mapi/vgapi mesa \
+ gallium egl gallium/winsys gallium/targets glu glut/glx glew glw
GLU_DIRS = sgi
DRIVER_DIRS = x11 osmesa
# Which subdirs under $(TOP)/progs/ to enter:
# Omitting glw here:
-SRC_DIRS = glsl mesa gallium gallium/winsys gallium/targets glu glut/glx glew
+SRC_DIRS = glsl mapi/glapi mapi/vgapi mesa \
+ gallium gallium/winsys gallium/targets glu glut/glx glew
# Build no traditional Mesa drivers:
DRIVER_DIRS =
# Directories to build
LIB_DIR = lib
-SRC_DIRS = egl glsl mesa/es gallium gallium/winsys gallium/targets
+SRC_DIRS = egl glsl mapi/es1api mapi/es2api mesa/es \
+ gallium gallium/winsys gallium/targets
PROGRAM_DIRS = egl/eglut egl/opengles1 egl/opengles2
# egl st needs this
dnl
dnl this variable will be prepended to SRC_DIRS and is not exported
-CORE_DIRS="glsl mesa"
+CORE_DIRS="mapi/glapi glsl mesa"
SRC_DIRS="glew"
GLU_DIRS="sgi"
APIS="$APIS es2"
fi
if test "x$enable_gles1" = xyes -o "x$enable_gles2" = xyes; then
+ CORE_DIRS="mapi/es1api mapi/es2api $CORE_DIRS"
SRC_DIRS="$SRC_DIRS gles"
fi
AC_SUBST([API_DEFINES])
HAVE_ST_XORG="yes"
;;
es)
+ if test "x$enable_gles1" != xyes -a "x$enable_gles2" != xyes; then
+ CORE_DIRS="mapi/es1api mapi/es2api $CORE_DIRS"
+ fi
# mesa/es is required to build es state tracker
CORE_DIRS="$CORE_DIRS mesa/es"
;;
Import('*')
SConscript('glsl/SConscript')
+SConscript('mapi/glapi/SConscript')
if 'mesa' in env['statetrackers']:
SConscript('mesa/SConscript')
$(shell pkg-config --cflags-only-I libdrm) \
-I$(TOP)/include \
-I$(TOP)/include/GL/internal \
+ -I$(TOP)/src/mapi \
-I$(TOP)/src/mesa \
-I$(TOP)/src/mesa/main \
- -I$(TOP)/src/mesa/glapi \
-I$(TOP)/src/mesa/math \
-I$(TOP)/src/mesa/transform \
-I$(TOP)/src/mesa/shader \
EGL_INCLUDES = \
-I$(TOP)/include \
-I$(TOP)/src/egl/main \
- -I$(TOP)/src/mesa \
+ -I$(TOP)/src/mapi \
-DDEFAULT_DRIVER_DIR=\"$(DRI_DRIVER_SEARCH_DIR)\" \
$(EGL_DRI2_CFLAGS)
LIBRARY_INCLUDES = \
-I$(TOP)/include \
+ -I$(TOP)/src/mapi \
-I$(TOP)/src/mesa \
-I$(TOP)/src/gallium/state_trackers/dri/common \
-I$(TOP)/src/mesa/drivers/dri/common \
env.ParseConfig('pkg-config --cflags --libs libdrm')
env.Append(CPPPATH = [
+ '#/src/mapi',
'#/src/mesa',
'#/src/gallium/state_trackers/dri/common',
'#/src/mesa/drivers/dri/common',
LIBRARY_INCLUDES = \
-I../dri \
-I$(TOP)/include \
+ -I$(TOP)/src/mapi \
-I$(TOP)/src/mesa \
-I$(TOP)/src/gallium/state_trackers/dri/common \
-I$(TOP)/src/mesa/drivers/dri/common \
env = env.Clone()
env.Append(CPPPATH = [
+ '#/src/mapi',
'#/src/mesa',
'#/src/gallium/state_trackers/dri/common',
'#/src/mesa/drivers/dri/common',
x11_INCLUDES = \
-I$(TOP)/src/gallium/drivers \
-I$(TOP)/src/glx \
+ -I$(TOP)/src/mapi \
-I$(TOP)/src/mesa \
$(X11_CFLAGS) \
$(shell pkg-config --cflags-only-I libdrm)
ES1_LIBS = \
$(TOP)/src/mesa/es/libes1gallium.a \
- $(TOP)/src/mesa/es/libes1api.a
+ $(TOP)/src/mapi/es1api/libes1api.a
ES2_LIBS = \
$(TOP)/src/mesa/es/libes2gallium.a \
- $(TOP)/src/mesa/es/libes2api.a
+ $(TOP)/src/mapi/es2api/libes2api.a
SYS_LIBS = -lm -pthread
INCLUDE_DIRS = \
-I$(TOP)/include \
+ -I$(TOP)/src/mapi \
-I$(TOP)/src/mesa \
-I$(TOP)/src/gallium/include
LIBRARY_INCLUDES = \
-I$(TOP)/include \
+ -I$(TOP)/src/mapi \
-I$(TOP)/src/mesa \
$(X11_CFLAGS)
env = env.Clone()
env.Append(CPPPATH = [
+ '#/src/mapi',
'#/src/mesa',
'#/src/mesa/main',
])
-Iserver \
-I$(TOP)/include \
-I$(TOP)/include/GL/internal \
+ -I$(TOP)/src/mapi \
-I$(TOP)/src/gallium/include \
-I$(TOP)/src/gallium/auxiliary \
-I$(TOP)/src/gallium/drivers \
-I$(TOP)/src/gallium/winsys \
-I$(TOP)/src/mesa \
-I$(TOP)/src/mesa/main \
- -I$(TOP)/src/mesa/glapi \
-I$(TOP)/src/mesa/math \
-I$(TOP)/src/mesa/transform \
-I$(TOP)/src/mesa/shader \
'#src/mesa/drivers/dri/common',
'#include',
'#include/GL/internal',
+ '#src/mapi',
'#src/gallium/include',
'#src/gallium/auxiliary',
'#src/gallium/drivers',
INCLUDE_DIRS = \
-I$(TOP)/include \
+ -I$(TOP)/src/mapi \
-I$(TOP)/src/mesa \
-I$(TOP)/src/mesa/main \
-I$(TOP)/src/gallium/include \
$(TOP)/src/gallium/winsys/sw/xlib/libws_xlib.a \
$(TOP)/src/gallium/drivers/trace/libtrace.a \
$(TOP)/src/gallium/drivers/identity/libidentity.a \
- $(TOP)/src/mesa/libglapi.a \
+ $(TOP)/src/mapi/glapi/libglapi.a \
$(TOP)/src/mesa/libmesagallium.a \
$(GALLIUM_AUXILIARIES) \
$(CELL_SPU_LIB) \
env = env.Clone()
env.Append(CPPPATH = [
+ '#/src/mapi',
'#/src/mesa',
'#/src/mesa/main',
'#src/gallium/state_trackers/glx/xlib',
$(TOP)/src/gallium/drivers/i965/libi965.a \
$(TOP)/src/gallium/drivers/trace/libtrace.a \
$(TOP)/src/gallium/state_trackers/glx/xlib/libxlib.a \
- $(TOP)/src/mesa/libglapi.a \
+ $(TOP)/src/mapi/glapi/libglapi.a \
$(TOP)/src/mesa/libmesagallium.a \
$(GALLIUM_AUXILIARIES)
TOP = ../..
-MESA = $(TOP)/src/mesa
+MAPI = $(TOP)/src/mapi
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))
+include $(MAPI)/glapi/sources.mak
+GLESv1_CM_ASM := $(addprefix $(MAPI)/es1api/glapi/,$(GLAPI_ASM_SOURCES))
+GLESv2_ASM := $(addprefix $(MAPI)/es2api/glapi/,$(GLAPI_ASM_SOURCES))
+API_SOURCES := $(addprefix $(MAPI)/glapi/,$(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$(TOP)/include -I$(MESA)/es/glapi/glapi-$(PREFIX) -I$(MESA)
+INCLUDES = -I$(TOP)/include -I$(MAPI)/$(PREFIX)api -I$(MAPI) -I$(TOP)/src/mesa
OBJECTS = \
$(notdir $(GLAPI_ASM_SOURCES:%.S=%.o)) \
es1-%.o: $(dir $(GLESv1_CM_ASM))%.S
$(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
-es1-%.o: $(MESA)/glapi/%.c
+es1-%.o: $(MAPI)/glapi/%.c
$(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
es2-%.o: $(dir $(GLESv2_ASM))%.S
$(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
-es2-%.o: $(MESA)/glapi/%.c
+es2-%.o: $(MAPI)/glapi/%.c
$(CC) -c $(CFLAGS) $(INCLUDES) -o $@ $<
default: depend \
dri2_glx.c \
dri2.c
-GLAPI_LIB = $(TOP)/src/mesa/libglapi.a
+GLAPI_LIB = $(TOP)/src/mapi/glapi/libglapi.a
OBJECTS = $(SOURCES:.c=.o)
-I$(TOP)/include \
-I$(TOP)/include/GL/internal \
-I$(TOP)/src/mesa \
- -I$(TOP)/src/mesa/glapi \
+ -I$(TOP)/src/mapi \
+ -I$(TOP)/src/mapi/glapi \
$(LIBDRM_CFLAGS) \
$(DRI2PROTO_CFLAGS) \
$(X11_INCLUDES)
$(GL_LIB_DEPS) $(OBJECTS) $(GLAPI_LIB)
$(GLAPI_LIB):
- @$(MAKE) -C $(TOP)/src/mesa libglapi.a
+ @$(MAKE) -C $(TOP)/src/mapi/glapi
depend: $(SOURCES) Makefile
rm -f depend
--- /dev/null
+# src/mapi/es1api/Makefile
+
+TOP := ../../..
+include $(TOP)/configs/current
+
+# this Makefile can build both libes1api.a and libes2api.a
+ifeq ($(ES),)
+ES := es1
+endif
+
+ESAPI = $(ES)api
+
+GLAPI := ../glapi
+include $(GLAPI)/sources.mak
+ESAPI_SOURCES := $(addprefix $(GLAPI)/, $(GLAPI_SOURCES))
+ESAPI_OBJECTS := $(GLAPI_SOURCES:.c=.o)
+ESAPI_ASM_SOURCES := $(addprefix glapi/, $(GLAPI_ASM_SOURCES))
+ESAPI_ASM_OBJECTS := $(GLAPI_ASM_SOURCES:.S=.o)
+
+INCLUDE_DIRS = \
+ -I$(TOP)/include \
+ -I$(TOP)/src/mapi/$(ESAPI) \
+ -I$(TOP)/src/mapi \
+ -I$(TOP)/src/mesa
+
+.PHONY: default
+default: depend lib$(ESAPI).a
+
+lib$(ESAPI).a: $(ESAPI_OBJECTS) $(ESAPI_ASM_OBJECTS)
+ @$(MKLIB) -o $(ESAPI) -static $(ESAPI_OBJECTS) $(ESAPI_ASM_OBJECTS)
+
+$(ESAPI_OBJECTS): %.o: $(GLAPI)/%.c
+ $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
+
+$(ESAPI_ASM_OBJECTS): %.o: glapi/%.S
+ $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
+
+$(ESAPI_SOURCES) $(ESAPI_ASM_SOURCES): | glapi-stamp
+
+glapi-stamp:
+ @$(MAKE) -C $(GLAPI)/gen-es $(ES)
+ @touch $@
+
+.PHONY: clean
+clean:
+ -rm -f $(ESAPI_OBJECTS) $(ESAPI_ASM_OBJECTS)
+ -rm -f lib$(ESAPI).a
+ -rm -f depend depend.bak
+ @$(MAKE) -C $(GLAPI)/gen-es clean-$(ES)
+ -rm -f glapi-stamp
+
+# nothing to install
+install:
+
+depend: $(ESAPI_SOURCES)
+ @echo "running $(MKDEP)"
+ @touch depend
+ @$(MKDEP) $(MKDEP_OPTIONS) -f- $(DEFINES) $(INCLUDE_DIRS) \
+ $(ESAPI_SOURCES) 2>/dev/null | \
+ sed -e 's,^$(GLAPI)/,,' > depend
--- /dev/null
+# src/mapi/es2api/Makefile
+ES := es2
+include ../es1api/Makefile
--- /dev/null
+# src/mapi/glapi/Makefile
+
+TOP = ../../..
+include $(TOP)/configs/current
+
+include sources.mak
+GLAPI_OBJECTS = $(GLAPI_SOURCES:.c=.o)
+GLAPI_ASM_OBJECTS = $(GLAPI_ASM_SOURCES:.S=.o)
+
+INCLUDE_DIRS = \
+ -I$(TOP)/include \
+ -I$(TOP)/src/mapi \
+ -I$(TOP)/src/mesa
+
+default: depend libglapi.a
+
+libglapi.a: $(GLAPI_OBJECTS) $(GLAPI_ASM_OBJECTS)
+ @ $(MKLIB) -o glapi -static $(GLAPI_OBJECTS) $(GLAPI_ASM_OBJECTS)
+
+$(GLAPI_OBJECTS): %.o: %.c
+ $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
+
+$(GLAPI_ASM_OBJECTS): %.o: %.S
+ $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
+
+install:
+
+clean:
+ -rm -f $(GLAPI_OBJECTS) $(GLAPI_ASM_OBJECTS)
+ -rm -f depend depend.bak libglapi.a
+
+depend: $(GLAPI_SOURCES)
+ @ echo "running $(MKDEP)"
+ @ touch depend
+ @$(MKDEP) $(MKDEP_OPTIONS) $(DEFINES) $(INCLUDE_DIRS) $(GLAPI_SOURCES) \
+ > /dev/null 2>/dev/null
+
+-include depend
--- /dev/null
+#######################################################################
+# SConscript for Mesa
+
+
+Import('*')
+
+if env['platform'] != 'winddk':
+
+ env = env.Clone()
+
+ env.Append(CPPPATH = [
+ '#/src/mapi',
+ '#/src/mesa',
+ ])
+
+ glapi_sources = [
+ 'glapi.c',
+ 'glapi_dispatch.c',
+ 'glapi_entrypoint.c',
+ 'glapi_execmem.c',
+ 'glapi_getproc.c',
+ 'glapi_nop.c',
+ 'glthread.c',
+ ]
+
+ #
+ # Assembly sources
+ #
+ if gcc and env['machine'] == 'x86':
+ env.Append(CPPDEFINES = [
+ 'USE_X86_ASM',
+ 'USE_MMX_ASM',
+ 'USE_3DNOW_ASM',
+ 'USE_SSE_ASM',
+ ])
+ glapi_sources += [
+ 'glapi_x86.S',
+ ]
+ elif gcc and env['machine'] == 'x86_64':
+ env.Append(CPPDEFINES = [
+ 'USE_X86_64_ASM',
+ ])
+ glapi_sources += [
+ 'glapi_x86-64.S'
+ ]
+ elif gcc and env['machine'] == 'ppc':
+ env.Append(CPPDEFINES = [
+ 'USE_PPC_ASM',
+ 'USE_VMX_ASM',
+ ])
+ glapi_sources += [
+ ]
+ elif gcc and env['machine'] == 'sparc':
+ glapi_sources += [
+ 'glapi_sparc.S'
+ ]
+ else:
+ pass
+
+ glapi = env.ConvenienceLibrary(
+ target = 'glapi',
+ source = glapi_sources,
+ )
+ Export('glapi')
TOP = ../../../..
-GLAPI = ../../glapi/gen
+GLAPI = ../gen
include $(TOP)/configs/current
OUTPUTS := \
ES1_APIXML := es1_API.xml
ES2_APIXML := es2_API.xml
-ES1_OUTPUT_DIR := glapi-es1
-ES2_OUTPUT_DIR := glapi-es2
+ES1_OUTPUT_DIR := $(TOP)/src/mapi/es1api
+ES2_OUTPUT_DIR := $(TOP)/src/mapi/es2api
ES1_DEPS = $(ES1_APIXML) base1_API.xml es1_EXT.xml es_EXT.xml \
es1_COMPAT.xml es_COMPAT.xml
@$(PYTHON2) $(PYTHON_FLAGS) gl_compare.py difference tmp.xml es2_API.xml
@rm -f tmp.xml
-clean:
- -rm -rf $(ES1_OUTPUT_DIR) $(ES2_OUTPUT_DIR)
+clean-es1:
+ -rm -rf $(ES1_OUTPUT_DIR)/glapi
+ -rm -rf $(ES1_OUTPUT_DIR)/main
+
+clean-es2:
+ -rm -rf $(ES2_OUTPUT_DIR)/glapi
+ -rm -rf $(ES2_OUTPUT_DIR)/main
+
+clean: clean-es1 clean-es2
-rm -f *~ *.pyc *.pyo
<?xml version="1.0"?>
-<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gen/gl_API.dtd">
+<!DOCTYPE OpenGLAPI SYSTEM "../gen/gl_API.dtd">
<!-- OpenGL and OpenGL ES 1.x APIs
This file defines the base categories that can be shared by all APIs.
<?xml version="1.0"?>
-<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gen/gl_API.dtd">
+<!DOCTYPE OpenGLAPI SYSTEM "../gen/gl_API.dtd">
<!-- OpenGL and OpenGL ES 2.x APIs -->
<?xml version="1.0"?>
-<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gen/gl_API.dtd">
+<!DOCTYPE OpenGLAPI SYSTEM "../gen/gl_API.dtd">
<!-- OpenGL ES 1.x API -->
<?xml version="1.0"?>
-<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gen/gl_API.dtd">
+<!DOCTYPE OpenGLAPI SYSTEM "../gen/gl_API.dtd">
<OpenGLAPI>
<?xml version="1.0"?>
-<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gen/gl_API.dtd">
+<!DOCTYPE OpenGLAPI SYSTEM "../gen/gl_API.dtd">
<!-- OpenGL ES 1.x extensions -->
<?xml version="1.0"?>
-<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gen/gl_API.dtd">
+<!DOCTYPE OpenGLAPI SYSTEM "../gen/gl_API.dtd">
<!-- OpenGL ES 2.x API -->
<?xml version="1.0"?>
-<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gen/gl_API.dtd">
+<!DOCTYPE OpenGLAPI SYSTEM "../gen/gl_API.dtd">
<OpenGLAPI>
<?xml version="1.0"?>
-<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gen/gl_API.dtd">
+<!DOCTYPE OpenGLAPI SYSTEM "../gen/gl_API.dtd">
<!-- OpenGL ES 2.x extensions -->
<?xml version="1.0"?>
-<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gen/gl_API.dtd">
+<!DOCTYPE OpenGLAPI SYSTEM "../gen/gl_API.dtd">
<OpenGLAPI>
</function>
</category>
-<xi:include href="../../glapi/gen/APPLE_vertex_array_object.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+<xi:include href="../gen/APPLE_vertex_array_object.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
</OpenGLAPI>
<?xml version="1.0"?>
-<!DOCTYPE OpenGLAPI SYSTEM "../../glapi/gen/gl_API.dtd">
+<!DOCTYPE OpenGLAPI SYSTEM "../gen/gl_API.dtd">
<!-- OpenGL ES extensions -->
</category>
<!-- 23. GL_OES_EGL_image -->
-<xi:include href="../../glapi/gen/OES_EGL_image.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+<xi:include href="../gen/OES_EGL_image.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
<category name="GL_OES_depth24" number="24">
<enum name="DEPTH_COMPONENT24_OES" value="0x81A6"/>
include $(TOP)/configs/current
MESA_DIR = $(TOP)/src/mesa
-MESA_GLAPI_DIR = $(TOP)/src/mesa/glapi
+MESA_GLAPI_DIR = $(TOP)/src/mapi/glapi
MESA_GLX_DIR = $(TOP)/src/glx
MESA_GLAPI_OUTPUTS = \
$(MESA_DIR)/main/enums.c: gl_enums.py $(COMMON) $(ES_API)
$(PYTHON2) $(PYTHON_FLAGS) $< -f gl_API.xml \
- -f $(MESA_DIR)/es/glapi/es1_API.xml \
- -f $(MESA_DIR)/es/glapi/es2_API.xml > $@
+ -f $(MESA_GLAPI_DIR)/gen-es/es1_API.xml \
+ -f $(MESA_GLAPI_DIR)/gen-es/es2_API.xml > $@
$(MESA_DIR)/main/remap_helper.h: remap_helper.py $(COMMON)
$(PYTHON2) $(PYTHON_FLAGS) $< > $@
--- /dev/null
+# src/mapi/glapi/sources.mak
+
+GLAPI_SOURCES = \
+ glapi.c \
+ glapi_dispatch.c \
+ glapi_entrypoint.c \
+ glapi_execmem.c \
+ glapi_getproc.c \
+ glapi_nop.c \
+ glthread.c
+
+X86_API = \
+ glapi_x86.S
+
+X86-64_API = \
+ glapi_x86-64.S
+
+SPARC_API = \
+ glapi_sparc.S
# Default: build dependencies, then asm_subdirs, GLSL built-in lib,
# then convenience libs (.a) and finally the device drivers:
-default: depend es_glapi asm_subdirs glsl_builtin libmesa.a libmesagallium.a \
- libglapi.a driver_subdirs
-
-es_glapi:
- @for api in $(APIS) ; do \
- case "$$api" in \
- es1|es2) $(MAKE) -C es/glapi $$api;; \
- esac; \
- done
+default: depend asm_subdirs glsl_builtin libmesa.a libmesagallium.a \
+ driver_subdirs
main/api_exec_es1.c: main/APIspec.xml main/es_generator.py main/APIspecutil.py main/APIspec.py
$(PYTHON2) $(PYTHON_FLAGS) main/es_generator.py -S main/APIspec.xml -V GLES1.1 > $@
libmesagallium.a: $(MESA_GALLIUM_OBJECTS) $(GLSL_LIBS)
@ $(MKLIB) -o mesagallium -static $(MESA_GALLIUM_OBJECTS) $(GLSL_LIBS)
-# Make archive of gl* API dispatcher functions only
-libglapi.a: $(GLAPI_OBJECTS)
- @ $(MKLIB) -o glapi -static $(GLAPI_OBJECTS)
-
######################################################################
# Device drivers
-driver_subdirs: libmesa.a libglapi.a libmesagallium.a
+driver_subdirs: libmesa.a libmesagallium.a
@ (cd drivers && $(MAKE))
clean:
-rm -f */*.o
-rm -f */*/*.o
- -rm -f depend depend.bak libmesa.a libglapi.a libmesagallium.a
+ -rm -f depend depend.bak libmesa.a libmesagallium.a
-rm -f drivers/*/*.o
-rm -f *.pc
-rm -f shader/slang/library/*_gc.h
env = env.Clone()
env.Append(CPPPATH = [
+ '#/src/mapi',
'#/src/mesa',
])
slang_sources
)
- glapi_sources = [
- 'glapi/glapi.c',
- 'glapi/glapi_dispatch.c',
- 'glapi/glapi_entrypoint.c',
- 'glapi/glapi_execmem.c',
- 'glapi/glapi_getproc.c',
- 'glapi/glapi_nop.c',
- 'glapi/glthread.c',
- ]
-
#
# Assembly sources
#
'x86/sse_normal.S',
'x86/read_rgba_span_x86.S',
]
- glapi_sources += [
- 'glapi/glapi_x86.S',
- ]
elif gcc and env['machine'] == 'x86_64':
env.Append(CPPDEFINES = [
'USE_X86_64_ASM',
'x86-64/x86-64.c',
'x86-64/xform4.S',
]
- glapi_sources += [
- 'glapi/glapi_x86-64.S'
- ]
elif gcc and env['machine'] == 'ppc':
env.Append(CPPDEFINES = [
'USE_PPC_ASM',
mesa_sources += [
'ppc/common_ppc.c',
]
- glapi_sources += [
- ]
elif gcc and env['machine'] == 'sparc':
mesa_sources += [
'sparc/sparc.c',
'sparc/norm.S',
'sparc/xform.S',
]
- glapi_sources += [
- 'glapi/glapi_sparc.S'
- ]
else:
pass
source = mesa_sources,
)
Export('mesa')
-
- glapi = env.ConvenienceLibrary(
- target = 'glapi',
- source = glapi_sources,
- )
- Export('glapi')
-
-I$(TOP)/src/mesa/drivers/dri/common \
-Iserver \
-I$(TOP)/include \
+ -I$(TOP)/src/mapi \
-I$(TOP)/src/mesa \
-I$(TOP)/src/egl/main \
-I$(TOP)/src/egl/drivers/dri \
INCLUDE_DIRS = \
-I$(TOP)/include \
+ -I$(TOP)/src/mapi \
-I$(TOP)/src/mesa \
-I$(TOP)/src/mesa/main
-CORE_MESA = $(TOP)/src/mesa/libmesa.a $(TOP)/src/mesa/libglapi.a
+CORE_MESA = $(TOP)/src/mesa/libmesa.a $(TOP)/src/mapi/glapi/libglapi.a
.c.o:
glslcompiler.o \
../common/driverfuncs.o \
../../libmesa.a \
- ../../libglapi.a
+ $(TOP)/src/mapi/glapi/libglapi.a
INCLUDES = \
-I$(TOP)/include \
-I$(TOP)/include/GL/internal \
+ -I$(TOP)/src/mapi \
-I$(TOP)/src/mesa \
-I$(TOP)/src/mesa/main \
-I$(TOP)/src/mesa/glapi \
INCLUDE_DIRS = \
-I$(TOP)/include \
+ -I$(TOP)/src/mapi \
-I$(TOP)/src/mesa \
-I$(TOP)/src/mesa/main
ifeq ($(DRIVER_DIRS), osmesa)
CORE_MESA = \
$(TOP)/src/mesa/libmesa.a \
- $(TOP)/src/mesa/libglapi.a \
+ $(TOP)/src/mapi/glapi/libglapi.a \
$(TOP)/src/glsl/cl/libglslcl.a \
$(TOP)/src/glsl/pp/libglslpp.a
else
INCLUDE_DIRS = \
-I$(TOP)/include \
+ -I$(TOP)/src/mapi \
-I$(TOP)/src/mesa \
-I$(TOP)/src/mesa/main \
$(X11_INCLUDES)
-CORE_MESA = $(TOP)/src/mesa/libmesa.a $(TOP)/src/mesa/libglapi.a
+CORE_MESA = $(TOP)/src/mesa/libmesa.a $(TOP)/src/mapi/glapi/libglapi.a
include $(TOP)/configs/current
include sources.mak
-ES1_LIBS := libes1gallium.a libes1api.a
-ES2_LIBS := libes2gallium.a libes2api.a
+ES1_LIBS := libes1gallium.a
+ES2_LIBS := libes2gallium.a
# Default rule: create ES1 and ES2 libs
-.PHONY: default es1 es2
-default: depend es1 es2
+.PHONY: default subdirs es1 es2
+default: depend subdirs es1 es2
es1: $(ES1_LIBS)
- @rm -f subdirs-stamp-tmp
es2: $(ES2_LIBS)
- @rm -f subdirs-stamp-tmp
ES1_CPPFLAGS := -DFEATURE_ES1=1 -D__GL_EXPORTS
ES2_CPPFLAGS := -DFEATURE_ES2=1 -D__GL_EXPORTS
# adjust output dirs
ES1_OBJECTS := $(addprefix $(ES1_OBJ_DIR)/, $(ES1_OBJECTS))
ES1_GALLIUM_OBJECTS := $(addprefix $(ES1_OBJ_DIR)/, $(ES1_GALLIUM_OBJECTS))
-ES1_API_OBJECTS := $(addprefix $(ES1_OBJ_DIR)/, $(ES1_API_OBJECTS))
ES2_OBJECTS := $(addprefix $(ES2_OBJ_DIR)/, $(ES2_OBJECTS))
ES2_GALLIUM_OBJECTS := $(addprefix $(ES2_OBJ_DIR)/, $(ES2_GALLIUM_OBJECTS))
-ES2_API_OBJECTS := $(addprefix $(ES2_OBJ_DIR)/, $(ES2_API_OBJECTS))
# compile either ES1 or ES2 sources
define es-compile
libes2gallium.a: $(ES2_GALLIUM_OBJECTS) $(GLSL_LIBS)
@$(MKLIB) -o es2gallium -static $(ES2_GALLIUM_OBJECTS) $(GLSL_LIBS)
-libes1api.a: $(ES1_API_OBJECTS)
- @$(MKLIB) -o es1api -static $(ES1_API_OBJECTS)
-
-libes2api.a: $(ES2_API_OBJECTS)
- @$(MKLIB) -o es2api -static $(ES2_API_OBJECTS)
-
.PHONY: clean
clean:
-rm -f $(ES1_LIBS) $(ES2_LIBS)
-rm -rf $(ES1_OBJ_DIR) $(ES2_OBJ_DIR)
- -rm -f $(GENERATED_SOURCES)
-rm -f depend depend.bak
- -rm -f subdirs-stamp-tmp
- @$(MAKE) -C glapi clean
# nothing to install
install:
-subdirs-stamp-tmp:
+subdirs:
@$(MAKE) -C $(MESA) asm_subdirs
@$(MAKE) -C $(MESA) glsl_builtin
- @$(MAKE) -C glapi
- @touch subdirs-stamp-tmp
# sort to avoid duplicates
ALL_SOURCES := $(sort $(ES1_ALL_SOURCES) $(ES2_ALL_SOURCES))
-# need to make sure the subdirs are processed first
-$(ALL_SOURCES): | subdirs-stamp-tmp
-
depend: $(ALL_SOURCES)
@echo "running $(MKDEP)"
@touch depend
include $(MESA)/sources.mak
-# always use local version of GLAPI_ASM_SOURCES
-LOCAL_ES1_API_ASM := $(addprefix glapi/glapi-es1/, $(GLAPI_ASM_SOURCES))
-
LOCAL_ES1_INCLUDES := \
-I. \
- -I./glapi/glapi-es1 \
+ -I$(TOP)/src/mapi/es1api \
-I$(MESA)/state_tracker
-LOCAL_ES2_API_ASM := $(subst es1,es2, $(LOCAL_ES1_API_ASM))
LOCAL_ES2_INCLUDES := $(subst es1,es2, $(LOCAL_ES1_INCLUDES))
# MESA sources
x86/common_x86.c \
$(SLANG_SOURCES)
-MESA_ES1_API_SOURCES := \
- $(GLAPI_SOURCES)
-
MESA_ES1_INCLUDES := $(INCLUDE_DIRS)
# right now es2 and es1 share MESA sources
MESA_ES2_SOURCES := $(MESA_ES1_SOURCES)
MESA_ES2_GALLIUM_SOURCES := $(MESA_ES1_GALLIUM_SOURCES)
-MESA_ES2_API_SOURCES := $(MESA_ES1_API_SOURCES)
MESA_ES2_INCLUDES := $(MESA_ES1_INCLUDES)
# collect sources, adjust the pathes
ES1_SOURCES := $(addprefix $(MESA)/,$(MESA_ES1_SOURCES))
ES1_GALLIUM_SOURCES := $(addprefix $(MESA)/,$(MESA_ES1_GALLIUM_SOURCES))
-ES1_API_SOURCES := $(addprefix $(MESA)/,$(MESA_ES1_API_SOURCES))
ES2_SOURCES := $(addprefix $(MESA)/,$(MESA_ES2_SOURCES))
ES2_GALLIUM_SOURCES := $(addprefix $(MESA)/,$(MESA_ES2_GALLIUM_SOURCES))
-ES2_API_SOURCES := $(addprefix $(MESA)/,$(MESA_ES2_API_SOURCES))
# collect includes
ES1_INCLUDES := $(LOCAL_ES1_INCLUDES) $(MESA_ES1_INCLUDES)
$(MESA_ES1_GALLIUM_SOURCES:.c=.o) \
$(MESA_ES_ASM:.S=.o)
-ES1_API_OBJECTS := \
- $(LOCAL_ES1_API_ASM:.S=.o) \
- $(MESA_ES1_API_SOURCES:.c=.o)
-
ES2_OBJECTS := \
$(MESA_ES2_SOURCES:.c=.o) \
$(MESA_ES_ASM:.S=.o)
$(MESA_ES2_GALLIUM_SOURCES:.c=.o) \
$(MESA_ES_ASM:.S=.o)
-ES2_API_OBJECTS := \
- $(LOCAL_ES2_API_ASM:.S=.o) \
- $(MESA_ES2_API_SOURCES:.c=.o)
-
# collect sources for makedepend
-ES1_ALL_SOURCES := $(ES1_SOURCES) $(ES1_GALLIUM_SOURCES) $(ES1_API_SOURCES)
-ES2_ALL_SOURCES := $(ES2_SOURCES) $(ES2_GALLIUM_SOURCES) $(ES2_API_SOURCES)
+ES1_ALL_SOURCES := $(ES1_SOURCES) $(ES1_GALLIUM_SOURCES)
+ES2_ALL_SOURCES := $(ES2_SOURCES) $(ES2_GALLIUM_SOURCES)
# sort to remove duplicates
ES1_ALL_SOURCES := $(sort $(ES1_ALL_SOURCES))
#ifdef IN_DRI_DRIVER
#define _GLAPI_USE_REMAP_TABLE
#endif
-#include "es/glapi/glapi-%s/glapi/glapitable.h"
-#include "es/glapi/glapi-%s/glapi/glapioffsets.h"
-#include "es/glapi/glapi-%s/glapi/glapidispatch.h"
+#include "%sapi/glapi/glapitable.h"
+#include "%sapi/glapi/glapioffsets.h"
+#include "%sapi/glapi/glapidispatch.h"
#if FEATURE_remap_table
#define need_MESA_remap_table
-#include "es/glapi/glapi-%s/main/remap_helper.h"
+#include "%sapi/main/remap_helper.h"
void
_mesa_init_remap_table_%s(void)
main/vtxfmt.c \
$(MAIN_ES_SOURCES)
-GLAPI_SOURCES = \
- glapi/glapi.c \
- glapi/glapi_dispatch.c \
- glapi/glapi_entrypoint.c \
- glapi/glapi_execmem.c \
- glapi/glapi_getproc.c \
- glapi/glapi_nop.c \
- glapi/glthread.c
-
MATH_SOURCES = \
math/m_debug_clip.c \
math/m_debug_norm.c \
x86/sse_normal.S \
x86/read_rgba_span_x86.S
-X86_API = \
- glapi/glapi_x86.S
-
X86-64_SOURCES = \
x86-64/xform4.S
-X86-64_API = \
- glapi/glapi_x86-64.S
-
SPARC_SOURCES = \
sparc/clip.S \
sparc/norm.S \
sparc/xform.S
-SPARC_API = \
- glapi/glapi_sparc.S
-
COMMON_DRIVER_SOURCES = \
drivers/common/driverfuncs.c \
drivers/common/meta.c
# All the core C sources, for dependency checking
ALL_SOURCES = \
$(MESA_SOURCES) \
- $(GLAPI_SOURCES) \
$(MESA_ASM_SOURCES) \
$(STATETRACKER_SOURCES)
$(MESA_GALLIUM_SOURCES:.c=.o) \
$(MESA_ASM_SOURCES:.S=.o)
-GLAPI_OBJECTS = \
- $(GLAPI_SOURCES:.c=.o) \
- $(GLAPI_ASM_SOURCES:.S=.o)
-
COMMON_DRIVER_OBJECTS = $(COMMON_DRIVER_SOURCES:.c=.o)
INCLUDE_DIRS = \
-I$(TOP)/include \
-I$(TOP)/src/mesa \
+ -I$(TOP)/src/mapi \
-I$(TOP)/src/gallium/include \
-I$(TOP)/src/gallium/auxiliary
-I.. \
-I../main \
-I../math \
- -I../glapi \
-I../tnl
INCLUDE_DIRS = \
-I$(TOP)/include/GL \
-I$(TOP)/include \
+ -I$(TOP)/src/mapi \
-I.. \
-I../main \
-I../math \
- -I../glapi \
-I../tnl