summaryrefslogtreecommitdiff
path: root/src/glx/apple/gen_gl_h.sh
diff options
context:
space:
mode:
Diffstat (limited to 'src/glx/apple/gen_gl_h.sh')
-rwxr-xr-xsrc/glx/apple/gen_gl_h.sh33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/glx/apple/gen_gl_h.sh b/src/glx/apple/gen_gl_h.sh
new file mode 100755
index 0000000000..f10ddd0bfc
--- /dev/null
+++ b/src/glx/apple/gen_gl_h.sh
@@ -0,0 +1,33 @@
+#!/bin/bash
+
+INFILE=$1
+OUTFILE=$2
+
+generate_macros() {
+ grep gl.*ProcPtr /System/Library/Frameworks/OpenGL.framework/Headers/gl{,ext}.h | sed 's:^.*\(gl.*Ptr\).*$:\1:' | sort -u | perl -ne 'chomp($_); $s = "PFN".uc($_); $s =~ s/PROCPTR/PROC/; print "#define ".$_." ".$s."\n"'
+}
+
+generate_function_pointers() {
+ {
+ echo "#define GL_GLEXT_FUNCTION_POINTERS 1"
+ echo "#define GL_GLEXT_LEGACY 1"
+ generate_macros
+ echo '#include "/System/Library/Frameworks/OpenGL.framework/Headers/gl.h"'
+ } | ${CC:-gcc} -E - | grep typedef.*PFN
+}
+
+cat ${INFILE} | while IFS= read LINE ; do
+ case $LINE in
+ "@CGL_MESA_COMPAT_MACROS@")
+ generate_macros
+ ;;
+ "@CGL_MESA_FUNCTION_POINTERS@")
+ if ! grep -q GL_GLEXT_PROTOTYPES /System/Library/Frameworks/OpenGL.framework/Headers/gl.h ; then
+ generate_function_pointers
+ fi
+ ;;
+ *)
+ printf "${LINE}\n"
+ ;;
+ esac
+done > ${OUTFILE}