diff --git a/meson.build b/meson.build
index ce0a24e354a5b4a149d42444867d2b8050d7a3b9..be8feb3d5012b3b45da25f1f9f1c21646f59cdd2 100644
--- a/meson.build
+++ b/meson.build
@@ -243,7 +243,7 @@ if not deps.contains(luajit)
 else
     luajit_inc = include_directories(luajit.get_pkgconfig_variable('includedir'))
 endif
-subdir('vendor/luabins/src')
+subdir('subprojects/luabins/src')
 
 dep_gl = dependency('gl', required: false)
 if not dep_gl.found()
@@ -257,6 +257,9 @@ if not dep_gl.found()
         dep_gl = dependency('', required: false)
     endif
 endif
+if host_machine.system() == 'darwin'
+    conf.set('HAVE_OPENGL_GL_H', 1)
+endif
 
 if not dep_gl.found()
     error('OpenGL implementation not found')
diff --git a/vendor/luabins/AUTHORS b/subprojects/luabins/AUTHORS
similarity index 100%
rename from vendor/luabins/AUTHORS
rename to subprojects/luabins/AUTHORS
diff --git a/vendor/luabins/BENCHMARK b/subprojects/luabins/BENCHMARK
similarity index 100%
rename from vendor/luabins/BENCHMARK
rename to subprojects/luabins/BENCHMARK
diff --git a/vendor/luabins/COPYRIGHT b/subprojects/luabins/COPYRIGHT
similarity index 100%
rename from vendor/luabins/COPYRIGHT
rename to subprojects/luabins/COPYRIGHT
diff --git a/vendor/luabins/HISTORY b/subprojects/luabins/HISTORY
similarity index 100%
rename from vendor/luabins/HISTORY
rename to subprojects/luabins/HISTORY
diff --git a/vendor/luabins/Makefile b/subprojects/luabins/Makefile
similarity index 100%
rename from vendor/luabins/Makefile
rename to subprojects/luabins/Makefile
diff --git a/vendor/luabins/README.md b/subprojects/luabins/README.md
similarity index 100%
rename from vendor/luabins/README.md
rename to subprojects/luabins/README.md
diff --git a/vendor/luabins/TODO b/subprojects/luabins/TODO
similarity index 100%
rename from vendor/luabins/TODO
rename to subprojects/luabins/TODO
diff --git a/vendor/luabins/etc/benchmark.lua b/subprojects/luabins/etc/benchmark.lua
similarity index 100%
rename from vendor/luabins/etc/benchmark.lua
rename to subprojects/luabins/etc/benchmark.lua
diff --git a/vendor/luabins/etc/checkfmt.lua b/subprojects/luabins/etc/checkfmt.lua
similarity index 100%
rename from vendor/luabins/etc/checkfmt.lua
rename to subprojects/luabins/etc/checkfmt.lua
diff --git a/vendor/luabins/etc/dataset.lua b/subprojects/luabins/etc/dataset.lua
similarity index 100%
rename from vendor/luabins/etc/dataset.lua
rename to subprojects/luabins/etc/dataset.lua
diff --git a/vendor/luabins/etc/tolua.lua b/subprojects/luabins/etc/tolua.lua
similarity index 100%
rename from vendor/luabins/etc/tolua.lua
rename to subprojects/luabins/etc/tolua.lua
diff --git a/vendor/luabins/etc/toluabins.lua b/subprojects/luabins/etc/toluabins.lua
similarity index 100%
rename from vendor/luabins/etc/toluabins.lua
rename to subprojects/luabins/etc/toluabins.lua
diff --git a/vendor/luabins/include/.keepme b/subprojects/luabins/include/.keepme
similarity index 100%
rename from vendor/luabins/include/.keepme
rename to subprojects/luabins/include/.keepme
diff --git a/vendor/luabins/lib/.keepme b/subprojects/luabins/lib/.keepme
similarity index 100%
rename from vendor/luabins/lib/.keepme
rename to subprojects/luabins/lib/.keepme
diff --git a/vendor/luabins/obj/.keepme b/subprojects/luabins/obj/.keepme
similarity index 100%
rename from vendor/luabins/obj/.keepme
rename to subprojects/luabins/obj/.keepme
diff --git a/vendor/luabins/rockspec/luabins-0.1.1-1.rockspec b/subprojects/luabins/rockspec/luabins-0.1.1-1.rockspec
similarity index 100%
rename from vendor/luabins/rockspec/luabins-0.1.1-1.rockspec
rename to subprojects/luabins/rockspec/luabins-0.1.1-1.rockspec
diff --git a/vendor/luabins/rockspec/luabins-0.1.1-2.rockspec b/subprojects/luabins/rockspec/luabins-0.1.1-2.rockspec
similarity index 100%
rename from vendor/luabins/rockspec/luabins-0.1.1-2.rockspec
rename to subprojects/luabins/rockspec/luabins-0.1.1-2.rockspec
diff --git a/vendor/luabins/rockspec/luabins-0.2-1.rockspec b/subprojects/luabins/rockspec/luabins-0.2-1.rockspec
similarity index 100%
rename from vendor/luabins/rockspec/luabins-0.2-1.rockspec
rename to subprojects/luabins/rockspec/luabins-0.2-1.rockspec
diff --git a/vendor/luabins/rockspec/luabins-0.3-1.rockspec b/subprojects/luabins/rockspec/luabins-0.3-1.rockspec
similarity index 100%
rename from vendor/luabins/rockspec/luabins-0.3-1.rockspec
rename to subprojects/luabins/rockspec/luabins-0.3-1.rockspec
diff --git a/vendor/luabins/rockspec/luabins-scm-1.rockspec b/subprojects/luabins/rockspec/luabins-scm-1.rockspec
similarity index 100%
rename from vendor/luabins/rockspec/luabins-scm-1.rockspec
rename to subprojects/luabins/rockspec/luabins-scm-1.rockspec
diff --git a/vendor/luabins/rockspec/luabins-scm-2.rockspec b/subprojects/luabins/rockspec/luabins-scm-2.rockspec
similarity index 100%
rename from vendor/luabins/rockspec/luabins-scm-2.rockspec
rename to subprojects/luabins/rockspec/luabins-scm-2.rockspec
diff --git a/vendor/luabins/src/fwrite.c b/subprojects/luabins/src/fwrite.c
similarity index 100%
rename from vendor/luabins/src/fwrite.c
rename to subprojects/luabins/src/fwrite.c
diff --git a/vendor/luabins/src/fwrite.h b/subprojects/luabins/src/fwrite.h
similarity index 100%
rename from vendor/luabins/src/fwrite.h
rename to subprojects/luabins/src/fwrite.h
diff --git a/vendor/luabins/src/load.c b/subprojects/luabins/src/load.c
similarity index 100%
rename from vendor/luabins/src/load.c
rename to subprojects/luabins/src/load.c
diff --git a/vendor/luabins/src/luabins.c b/subprojects/luabins/src/luabins.c
similarity index 100%
rename from vendor/luabins/src/luabins.c
rename to subprojects/luabins/src/luabins.c
diff --git a/vendor/luabins/src/luabins.h b/subprojects/luabins/src/luabins.h
similarity index 100%
rename from vendor/luabins/src/luabins.h
rename to subprojects/luabins/src/luabins.h
diff --git a/vendor/luabins/src/luaheaders.h b/subprojects/luabins/src/luaheaders.h
similarity index 100%
rename from vendor/luabins/src/luaheaders.h
rename to subprojects/luabins/src/luaheaders.h
diff --git a/vendor/luabins/src/luainternals.c b/subprojects/luabins/src/luainternals.c
similarity index 100%
rename from vendor/luabins/src/luainternals.c
rename to subprojects/luabins/src/luainternals.c
diff --git a/vendor/luabins/src/luainternals.h b/subprojects/luabins/src/luainternals.h
similarity index 100%
rename from vendor/luabins/src/luainternals.h
rename to subprojects/luabins/src/luainternals.h
diff --git a/vendor/luabins/src/lualess.h b/subprojects/luabins/src/lualess.h
similarity index 100%
rename from vendor/luabins/src/lualess.h
rename to subprojects/luabins/src/lualess.h
diff --git a/vendor/luabins/src/meson.build b/subprojects/luabins/src/meson.build
similarity index 100%
rename from vendor/luabins/src/meson.build
rename to subprojects/luabins/src/meson.build
diff --git a/vendor/luabins/src/save.c b/subprojects/luabins/src/save.c
similarity index 100%
rename from vendor/luabins/src/save.c
rename to subprojects/luabins/src/save.c
diff --git a/vendor/luabins/src/savebuffer.c b/subprojects/luabins/src/savebuffer.c
similarity index 100%
rename from vendor/luabins/src/savebuffer.c
rename to subprojects/luabins/src/savebuffer.c
diff --git a/vendor/luabins/src/savebuffer.h b/subprojects/luabins/src/savebuffer.h
similarity index 100%
rename from vendor/luabins/src/savebuffer.h
rename to subprojects/luabins/src/savebuffer.h
diff --git a/vendor/luabins/src/saveload.h b/subprojects/luabins/src/saveload.h
similarity index 100%
rename from vendor/luabins/src/saveload.h
rename to subprojects/luabins/src/saveload.h
diff --git a/vendor/luabins/src/write.c b/subprojects/luabins/src/write.c
similarity index 100%
rename from vendor/luabins/src/write.c
rename to subprojects/luabins/src/write.c
diff --git a/vendor/luabins/src/write.h b/subprojects/luabins/src/write.h
similarity index 100%
rename from vendor/luabins/src/write.h
rename to subprojects/luabins/src/write.h
diff --git a/vendor/luabins/test/large_data.lua b/subprojects/luabins/test/large_data.lua
similarity index 100%
rename from vendor/luabins/test/large_data.lua
rename to subprojects/luabins/test/large_data.lua
diff --git a/vendor/luabins/test/large_data.luabins b/subprojects/luabins/test/large_data.luabins
similarity index 100%
rename from vendor/luabins/test/large_data.luabins
rename to subprojects/luabins/test/large_data.luabins
diff --git a/vendor/luabins/test/test.c b/subprojects/luabins/test/test.c
similarity index 100%
rename from vendor/luabins/test/test.c
rename to subprojects/luabins/test/test.c
diff --git a/vendor/luabins/test/test.h b/subprojects/luabins/test/test.h
similarity index 100%
rename from vendor/luabins/test/test.h
rename to subprojects/luabins/test/test.h
diff --git a/vendor/luabins/test/test.lua b/subprojects/luabins/test/test.lua
similarity index 100%
rename from vendor/luabins/test/test.lua
rename to subprojects/luabins/test/test.lua
diff --git a/vendor/luabins/test/test_api.c b/subprojects/luabins/test/test_api.c
similarity index 100%
rename from vendor/luabins/test/test_api.c
rename to subprojects/luabins/test/test_api.c
diff --git a/vendor/luabins/test/test_fwrite_api.c b/subprojects/luabins/test/test_fwrite_api.c
similarity index 100%
rename from vendor/luabins/test/test_fwrite_api.c
rename to subprojects/luabins/test/test_fwrite_api.c
diff --git a/vendor/luabins/test/test_savebuffer.c b/subprojects/luabins/test/test_savebuffer.c
similarity index 100%
rename from vendor/luabins/test/test_savebuffer.c
rename to subprojects/luabins/test/test_savebuffer.c
diff --git a/vendor/luabins/test/test_write_api.c b/subprojects/luabins/test/test_write_api.c
similarity index 100%
rename from vendor/luabins/test/test_write_api.c
rename to subprojects/luabins/test/test_write_api.c
diff --git a/vendor/luabins/test/util.c b/subprojects/luabins/test/util.c
similarity index 100%
rename from vendor/luabins/test/util.c
rename to subprojects/luabins/test/util.c
diff --git a/vendor/luabins/test/util.h b/subprojects/luabins/test/util.h
similarity index 100%
rename from vendor/luabins/test/util.h
rename to subprojects/luabins/test/util.h
diff --git a/vendor/luabins/test/write_tests.inc b/subprojects/luabins/test/write_tests.inc
similarity index 100%
rename from vendor/luabins/test/write_tests.inc
rename to subprojects/luabins/test/write_tests.inc
diff --git a/vendor/luabins/tmp/.keepme b/subprojects/luabins/tmp/.keepme
similarity index 100%
rename from vendor/luabins/tmp/.keepme
rename to subprojects/luabins/tmp/.keepme