Generate es glapi files when es1 or es2 is enabled
[mesa.git] / src / mesa / es / glapi / Makefile
1 TOP = ../../../..
2 GLAPI = ../../glapi/gen
3 include $(TOP)/configs/current
4
5 OUTPUTS := \
6 glapi/glapidispatch.h \
7 glapi/glapioffsets.h \
8 glapi/glapitable.h \
9 glapi/glapitemp.h \
10 glapi/glprocs.h \
11 sparc/glapi_sparc.S \
12 x86-64/glapi_x86-64.S \
13 x86/glapi_x86.S \
14 main/remap_helper.h
15
16 COMMON = gl_XML.py glX_XML.py license.py typeexpr.py
17 COMMON := $(addprefix $(GLAPI)/, $(COMMON))
18
19 ES1_APIXML := es1_API.xml
20 ES2_APIXML := es2_API.xml
21 ES1_OUTPUT_DIR := glapi-es1
22 ES2_OUTPUT_DIR := glapi-es2
23
24 ES1_DEPS = $(ES1_APIXML) base1_API.xml es1_EXT.xml es_EXT.xml \
25 es1_COMPAT.xml es_COMPAT.xml
26 ES2_DEPS = $(ES2_APIXML) base2_API.xml es2_EXT.xml es_EXT.xml \
27 es2_COMPAT.xml es_COMPAT.xml
28
29 ES1_OUTPUTS := $(addprefix $(ES1_OUTPUT_DIR)/, $(OUTPUTS))
30 ES2_OUTPUTS := $(addprefix $(ES2_OUTPUT_DIR)/, $(OUTPUTS))
31
32 all: es1 es2
33
34 es1: $(ES1_OUTPUTS)
35 es2: $(ES2_OUTPUTS)
36
37 $(ES1_OUTPUTS): APIXML := $(ES1_APIXML)
38 $(ES2_OUTPUTS): APIXML := $(ES2_APIXML)
39 $(ES1_OUTPUTS): $(ES1_DEPS)
40 $(ES2_OUTPUTS): $(ES2_DEPS)
41
42 define gen-glapi
43 @mkdir -p $(dir $@)
44 $(PYTHON2) $(PYTHON_FLAGS) $< -f $(APIXML) $(1) > $@
45 endef
46
47 %/glapidispatch.h: $(GLAPI)/gl_table.py $(COMMON)
48 $(call gen-glapi,-c -m remap_table)
49
50 %/glapioffsets.h: $(GLAPI)/gl_offsets.py $(COMMON)
51 $(call gen-glapi,-c)
52
53 %/glapitable.h: $(GLAPI)/gl_table.py $(COMMON)
54 $(call gen-glapi,-c)
55
56 %/glapitemp.h: $(GLAPI)/gl_apitemp.py $(COMMON)
57 $(call gen-glapi,-c)
58
59 %/glprocs.h: $(GLAPI)/gl_procs.py $(COMMON)
60 $(call gen-glapi,-c)
61
62 %/sparc/glapi_sparc.S: $(GLAPI)/gl_SPARC_asm.py $(COMMON)
63 $(call gen-glapi)
64
65 %/x86-64/glapi_x86-64.S: $(GLAPI)/gl_x86-64_asm.py $(COMMON)
66 $(call gen-glapi)
67
68 %/x86/glapi_x86.S: $(GLAPI)/gl_x86_asm.py $(COMMON)
69 $(call gen-glapi)
70
71 %/main/remap_helper.h: $(GLAPI)/remap_helper.py $(COMMON)
72 $(call gen-glapi)
73
74 verify_xml:
75 @if [ ! -f gl.h ]; then \
76 echo "Please copy gl.h and gl2.h to this directory"; \
77 exit 1; \
78 fi
79 @echo "Verifying that es1_API.xml covers OpenGL ES 1.1..."
80 @$(PYTHON2) $(PYTHON_FLAGS) gl_parse_header.py gl.h > tmp.xml
81 @$(PYTHON2) $(PYTHON_FLAGS) gl_compare.py difference tmp.xml es1_API.xml
82 @echo "Verifying that es2_API.xml covers OpenGL ES 2.0..."
83 @$(PYTHON2) $(PYTHON_FLAGS) gl_parse_header.py gl2.h > tmp.xml
84 @$(PYTHON2) $(PYTHON_FLAGS) gl_compare.py difference tmp.xml es2_API.xml
85 @rm -f tmp.xml
86
87 clean:
88 -rm -rf $(ES1_OUTPUT_DIR) $(ES2_OUTPUT_DIR)
89 -rm -f *~ *.pyc *.pyo