summaryrefslogtreecommitdiff
path: root/src/mapi/es1api
diff options
context:
space:
mode:
Diffstat (limited to 'src/mapi/es1api')
-rw-r--r--src/mapi/es1api/Makefile144
-rw-r--r--src/mapi/es1api/glesv1_cm.pc.in12
2 files changed, 156 insertions, 0 deletions
diff --git a/src/mapi/es1api/Makefile b/src/mapi/es1api/Makefile
new file mode 100644
index 0000000000..576ac5afdc
--- /dev/null
+++ b/src/mapi/es1api/Makefile
@@ -0,0 +1,144 @@
+# src/mapi/es1api/Makefile
+
+TOP := ../../..
+include $(TOP)/configs/current
+
+# this Makefile can build both OpenGL ES 1.1 and 2.0
+ifeq ($(ES),)
+ES := es1
+
+GLES_HEADER := GLES
+GLES_PC := glesv1_cm.pc
+
+GLES_LIB := $(GLESv1_CM_LIB)
+GLES_LIB_NAME := $(GLESv1_CM_LIB_NAME)
+GLES_LIB_GLOB := $(GLESv1_CM_LIB_GLOB)
+GLES_LIB_DEPS := $(GLESv1_CM_LIB_DEPS)
+GLES_LIB_MAJOR := 1
+GLES_LIB_MINOR := 1
+GLES_LIB_PATCH := 0
+else
+GLES_HEADER := GLES2
+GLES_PC := glesv2.pc
+
+GLES_LIB := $(GLESv2_LIB)
+GLES_LIB_NAME := $(GLESv2_LIB_NAME)
+GLES_LIB_GLOB := $(GLESv2_LIB_GLOB)
+GLES_LIB_DEPS := $(GLESv2_LIB_DEPS)
+GLES_LIB_MAJOR := 2
+GLES_LIB_MINOR := 0
+GLES_LIB_PATCH := 0
+endif
+
+ESAPI = $(ES)api
+
+GLAPI := $(TOP)/src/mapi/glapi
+MAPI := $(TOP)/src/mapi/mapi
+# directory for generated sources/headers
+GEN := glapi
+
+include $(GLAPI)/sources.mak
+GLAPI_OBJECTS := $(GLAPI_SOURCES:.c=.o)
+GLAPI_SOURCES := $(addprefix $(GLAPI)/, $(GLAPI_SOURCES))
+GLAPI_ASM_OBJECTS := $(GLAPI_ASM_SOURCES:.S=.o)
+GLAPI_ASM_SOURCES := $(addprefix $(GEN)/, $(GLAPI_ASM_SOURCES))
+
+include $(MAPI)/sources.mak
+MAPI_GLAPI_OBJECTS := $(MAPI_GLAPI_SOURCES:.c=.o)
+MAPI_GLAPI_SOURCES := $(addprefix $(MAPI)/, $(MAPI_GLAPI_SOURCES))
+
+ESAPI_OBJECTS = $(GLAPI_OBJECTS) $(GLAPI_ASM_OBJECTS) $(MAPI_GLAPI_OBJECTS)
+
+INCLUDE_DIRS = \
+ -I$(TOP)/include \
+ -I$(TOP)/src/mapi/$(ESAPI) \
+ -I$(TOP)/src/mapi \
+ -I$(TOP)/src/mesa
+
+.PHONY: default
+default: depend $(TOP)/$(LIB_DIR)/$(GLES_LIB_NAME)
+
+$(TOP)/$(LIB_DIR)/$(GLES_LIB_NAME): $(ESAPI_OBJECTS)
+ $(MKLIB) -o $(GLES_LIB) -linker '$(CC)' -ldflags '$(LDFLAGS)' \
+ -major $(GLES_LIB_MAJOR) \
+ -minor $(GLES_LIB_MINOR) \
+ -patch $(GLES_LIB_PATCH) \
+ -id $(INSTALL_LIB_DIR)/lib$(GLES_LIB).$(GLES_LIB_MAJOR).dylib \
+ $(MKLIB_OPTIONS) -install $(TOP)/$(LIB_DIR) \
+ $(ESAPI_OBJECTS) $(GLES_LIB_DEPS)
+
+# not used, but kept for completeness
+lib$(ESAPI).a: $(ESAPI_OBJECTS)
+ @$(MKLIB) -o $(ESAPI) -static $(ESAPI_OBJECTS)
+
+$(GLAPI_OBJECTS): %.o: $(GLAPI)/%.c
+ $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
+
+$(GLAPI_ASM_OBJECTS): %.o: $(GEN)/%.S
+ $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) $< -o $@
+
+$(MAPI_GLAPI_OBJECTS): %.o: $(MAPI)/%.c
+ $(CC) -c $(INCLUDE_DIRS) $(CFLAGS) -DMAPI_GLAPI_CURRENT $< -o $@
+
+$(GLAPI_SOURCES) $(GLAPI_ASM_SOURCES): | glapi-stamp
+
+glapi-stamp:
+ @# generate sources/headers
+ @$(MAKE) -C $(GLAPI)/gen-es $(ES)
+ @touch $@
+
+.PHONY: clean
+clean:
+ -rm -f $(GLES_PC)
+ -rm -f $(TOP)/$(LIB_DIR)/$(GLES_LIB_NAME)
+ -rm -f lib$(ESAPI).a
+ -rm -f $(ESAPI_OBJECTS)
+ -rm -f depend depend.bak
+ -rm -f glapi-stamp
+ @# clean generated sources/headers
+ @$(MAKE) -C $(GLAPI)/gen-es clean-$(ES)
+
+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),' \
+
+pcedit-es1 = \
+ $(pcedit) \
+ -e 's,@GLESv1_CM_PC_REQ_PRIV@,$(GLESv1_CM_PC_REQ_PRIV),' \
+ -e 's,@GLESv1_CM_PC_LIB_PRIV@,$(GLESv1_CM_PC_LIB_PRIV),' \
+ -e 's,@GLESv1_CM_PC_CFLAGS@,$(GLESv1_CM_PC_CFLAGS),' \
+ -e 's,@GLESv1_CM_LIB@,$(GLESv1_CM_LIB),'
+
+pcedit-es2 = \
+ $(pcedit) \
+ -e 's,@GLESv2_PC_REQ_PRIV@,$(GLESv2_PC_REQ_PRIV),' \
+ -e 's,@GLESv2_PC_LIB_PRIV@,$(GLESv2_PC_LIB_PRIV),' \
+ -e 's,@GLESv2_PC_CFLAGS@,$(GLESv2_PC_CFLAGS),' \
+ -e 's,@GLESv2_LIB@,$(GLESv2_LIB),'
+
+$(GLES_PC): $(GLES_PC).in
+ @sed $(pcedit-$(ES)) $< > $@
+
+install-headers:
+ $(INSTALL) -d $(DESTDIR)$(INSTALL_INC_DIR)/$(GLES_HEADER)
+ $(INSTALL) -m 644 $(TOP)/include/$(GLES_HEADER)/*.h \
+ $(DESTDIR)$(INSTALL_INC_DIR)/$(GLES_HEADER)
+
+install-pc: $(GLES_PC)
+ $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
+ $(INSTALL) -m 644 $(GLES_PC) $(DESTDIR)$(INSTALL_LIB_DIR)/pkgconfig
+
+install: default install-headers install-pc
+ $(INSTALL) -d $(DESTDIR)$(INSTALL_LIB_DIR)
+ $(MINSTALL) $(TOP)/$(LIB_DIR)/$(GLES_LIB_GLOB) \
+ $(DESTDIR)$(INSTALL_LIB_DIR)
+
+depend: $(GLAPI_SOURCES) $(MAPI_GLAPI_SOURCES)
+ @echo "running $(MKDEP)"
+ @touch depend
+ @$(MKDEP) $(MKDEP_OPTIONS) -f- $(DEFINES) $(INCLUDE_DIRS) \
+ -DMAPI_GLAPI_CURRENT $(GLAPI_SOURCES) $(MAPI_GLAPI_SOURCES) \
+ 2>/dev/null | sed -e 's,^$(GLAPI)/,,' -e 's,^$(MAPI)/,,' \
+ > depend
diff --git a/src/mapi/es1api/glesv1_cm.pc.in b/src/mapi/es1api/glesv1_cm.pc.in
new file mode 100644
index 0000000000..291f5abf3f
--- /dev/null
+++ b/src/mapi/es1api/glesv1_cm.pc.in
@@ -0,0 +1,12 @@
+prefix=@INSTALL_DIR@
+exec_prefix=${prefix}
+libdir=@INSTALL_LIB_DIR@
+includedir=@INSTALL_INC_DIR@
+
+Name: glesv1_cm
+Description: Mesa OpenGL ES 1.1 CM library
+Requires.private: @GLESv1_CM_PC_REQ_PRIV@
+Version: @VERSION@
+Libs: -L${libdir} -l@GLESv1_CM_LIB@
+Libs.private: @GLESv1_CM_PC_LIB_PRIV@
+Cflags: -I${includedir} @GLESv1_CM_PC_CFLAGS@