Makefile 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389
  1. ## Copyright (C) 2002-2008, Marcelo E. Magallon <mmagallo[]debian org>
  2. ## Copyright (C) 2002-2008, Milan Ikits <milan ikits[]ieee org>
  3. ##
  4. ## This program is distributed under the terms and conditions of the GNU
  5. ## General Public License Version 2 as published by the Free Software
  6. ## Foundation or, at your option, any later version.
  7. include ../config/version
  8. #GLEW_SPLIT_SOURCE = yes
  9. SHELL = bash
  10. ### Use git repository for GL extension specifications
  11. GIT_CLONE ?= git clone --branch glew https://github.com/nigels-com/glfixes.git
  12. ###
  13. ### Conventional desktop OpenGL settings
  14. ###
  15. REGISTRY = registry/gl/specs
  16. EXT = extensions/gl
  17. FILTER = filter_gl_ext.sh
  18. CORE = core/gl
  19. REGISTRY_URL = http://www.opengl.org/registry/
  20. ###
  21. ### Experimental OpenGL ES settings
  22. ###
  23. # REGISTRY = registry/gles
  24. # EXT = extensions/gles
  25. # FILTER = filter_gles_ext.sh
  26. # CORE = core/gles
  27. # REGISTRY_URL = http://www.khronos.org/registry/gles/
  28. BIN = bin
  29. SRC = src
  30. BLACKLIST = blacklist
  31. GL_CORE_SPEC := $(CORE)/GL_VERSION*
  32. GLX_CORE_SPEC := $(CORE)/GLX_VERSION*
  33. ifeq (custom,$(MAKECMDGOALS))
  34. #GL_CORE_SPEC := $(shell grep GL_VERSION custom.txt | perl -pi -e "s=^=$(CORE)/=g;")
  35. GL_EXT_SPEC := $(shell grep "^[ \t]*GL_" custom.txt | grep -v GL_VERSION | perl -pi -e "s=^=$(EXT)/=g;")
  36. WGL_EXT_SPEC := $(shell grep "^[ \t]*WGL_" custom.txt | perl -pi -e "s=^=$(EXT)/=g;")
  37. #GLX_CORE_SPEC := $(shell grep GLX_VERSION custom.txt | perl -pi -e "s=^=$(CORE)/=g;")
  38. GLX_EXT_SPEC := $(shell grep "^[ \t]*GLX_" custom.txt | grep -v GLX_VERSION | perl -pi -e "s=^=$(EXT)/=g;")
  39. else
  40. GL_EXT_SPEC := $(EXT)/GL_*
  41. WGL_EXT_SPEC := $(EXT)/WGL_*
  42. GLX_EXT_SPEC := $(EXT)/GLX_*
  43. endif
  44. PARSE_SPEC = parse_spec.pl
  45. SYSTEM = $(strip $(shell uname -s))
  46. TOP = ..
  47. I.DEST = $(TOP)/include/GL
  48. S.DEST = $(TOP)/src
  49. D.DEST = $(TOP)/doc
  50. B.DEST = $(TOP)/build
  51. I.TARGETS = \
  52. $(I.DEST)/glew.h \
  53. $(I.DEST)/wglew.h \
  54. $(I.DEST)/glxew.h
  55. ifeq (yes,$(GLEW_SPLIT_SOURCE))
  56. S.TARGETS = \
  57. $(S.DEST)/glew_def.c \
  58. $(S.DEST)/glew_init.c \
  59. $(S.DEST)/glew_str.c \
  60. $(S.DEST)/glewinfo.c
  61. else
  62. S.TARGETS = \
  63. $(S.DEST)/glew.c \
  64. $(S.DEST)/glewinfo.c
  65. endif
  66. D.TARGETS = \
  67. $(D.DEST)/index.html \
  68. $(D.DEST)/install.html \
  69. $(D.DEST)/basic.html \
  70. $(D.DEST)/advanced.html \
  71. $(D.DEST)/build.html \
  72. $(D.DEST)/credits.html \
  73. $(D.DEST)/log.html \
  74. $(D.DEST)/glew.html \
  75. $(D.DEST)/wglew.html \
  76. $(D.DEST)/glxew.html
  77. B.TARGETS = \
  78. $(B.DEST)/glew.rc \
  79. $(B.DEST)/glewinfo.rc \
  80. $(B.DEST)/visualinfo.rc
  81. all custom: $(I.TARGETS) $(S.TARGETS) $(D.TARGETS) $(B.TARGETS)
  82. registry: $(REGISTRY)/.dummy
  83. ext: $(EXT)/.dummy
  84. $(REGISTRY)/.dummy:
  85. @echo "--------------------------------------------------------------------"
  86. @echo "Downloading registry"
  87. @echo "--------------------------------------------------------------------"
  88. $(GIT_CLONE) registry
  89. touch $@
  90. $(EXT)/.dummy: $(REGISTRY)/.dummy
  91. @echo "--------------------------------------------------------------------"
  92. @echo "Creating descriptors"
  93. @echo "--------------------------------------------------------------------"
  94. rm -rf $(EXT)
  95. $(BIN)/update_ext.sh $(EXT) $(REGISTRY) $(BLACKLIST)
  96. $(BIN)/$(FILTER) $(EXT)
  97. ifeq ($(patsubst Darwin%,Darwin,$(SYSTEM)), Darwin)
  98. find $(CORE) -maxdepth 1 -type f | grep -v VERSION | grep -v "~" | \
  99. xargs -J % cp % $(EXT)
  100. else
  101. find $(CORE) -maxdepth 1 -type f | grep -v VERSION | grep -v "~" | \
  102. xargs cp --target-directory=$(EXT)
  103. endif
  104. touch $@
  105. $(I.DEST)/glew.h: $(EXT)/.dummy
  106. @echo "--------------------------------------------------------------------"
  107. @echo "Creating glew.h"
  108. @echo "--------------------------------------------------------------------"
  109. test -d $(I.DEST) || mkdir -p $(I.DEST)
  110. cp -f $(SRC)/glew_license.h $@
  111. cat $(SRC)/mesa_license.h >> $@
  112. cat $(SRC)/khronos_license.h >> $@
  113. cat $(SRC)/glew_head.h >> $@
  114. $(BIN)/make_header.pl GLAPIENTRY GL $(GL_CORE_SPEC) >> $@
  115. $(BIN)/make_header.pl GLAPIENTRY GL $(GL_EXT_SPEC) >> $@
  116. echo -e "/* ------------------------------------------------------------------------- */\n\n#if defined(GLEW_MX) && defined(_WIN32)\n#define GLEW_FUN_EXPORT\n#else\n#define GLEW_FUN_EXPORT GLEWAPI\n#endif /* GLEW_MX */\n" >> $@
  117. echo -e "#if defined(GLEW_MX)\n#define GLEW_VAR_EXPORT\n#else\n#define GLEW_VAR_EXPORT GLEWAPI\n#endif /* GLEW_MX */\n" >> $@
  118. echo -e "#if defined(GLEW_MX) && defined(_WIN32)\nstruct GLEWContextStruct\n{\n#endif /* GLEW_MX */" >> $@
  119. $(BIN)/make_struct_fun.pl GLEW_FUN_EXPORT $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@
  120. echo -e "\n#if defined(GLEW_MX) && !defined(_WIN32)\nstruct GLEWContextStruct\n{\n#endif /* GLEW_MX */\n" >> $@
  121. $(BIN)/make_struct_var.pl GLEW_VAR_EXPORT $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@
  122. echo -e "\n#ifdef GLEW_MX\n}; /* GLEWContextStruct */\n#endif /* GLEW_MX */\n" >> $@
  123. perl -e "s/GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2;/GLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_1;\nGLEW_VAR_EXPORT GLboolean __GLEW_VERSION_1_2;/" -pi $@
  124. rm -f [email protected]
  125. cat $(SRC)/glew_tail.h >> $@
  126. $(I.DEST)/wglew.h: $(EXT)/.dummy
  127. @echo "--------------------------------------------------------------------"
  128. @echo "Creating wglew.h"
  129. @echo "--------------------------------------------------------------------"
  130. cp -f $(SRC)/glew_license.h $@
  131. cat $(SRC)/khronos_license.h >> $@
  132. cat $(SRC)/wglew_head.h >> $@
  133. $(BIN)/make_header.pl WINAPI WGL $(WGL_EXT_SPEC) >> $@
  134. cat $(SRC)/wglew_mid.h >> $@
  135. echo -e "\n#ifdef GLEW_MX\nstruct WGLEWContextStruct\n{\n#endif /* GLEW_MX */" >> $@
  136. $(BIN)/make_struct_fun.pl WGLEW_FUN_EXPORT $(WGL_EXT_SPEC) >> $@
  137. $(BIN)/make_struct_var.pl WGLEW_VAR_EXPORT $(WGL_EXT_SPEC) >> $@
  138. echo -e "\n#ifdef GLEW_MX\n}; /* WGLEWContextStruct */\n#endif /* GLEW_MX */\n" >> $@
  139. cat $(SRC)/wglew_tail.h >> $@
  140. $(I.DEST)/glxew.h: $(EXT)/.dummy
  141. @echo "--------------------------------------------------------------------"
  142. @echo "Creating glxew.h"
  143. @echo "--------------------------------------------------------------------"
  144. cp -f $(SRC)/glew_license.h $@
  145. cat $(SRC)/mesa_license.h >> $@
  146. cat $(SRC)/khronos_license.h >> $@
  147. cat $(SRC)/glxew_head.h >> $@
  148. $(BIN)/make_header.pl "" GLX $(GLX_CORE_SPEC) >> $@
  149. $(BIN)/make_header.pl "" GLX $(GLX_EXT_SPEC) >> $@
  150. cat $(SRC)/glxew_mid.h >> $@
  151. $(BIN)/make_struct_fun.pl GLXEW_FUN_EXPORT $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@
  152. echo -e "\n#if defined(GLEW_MX)\nstruct GLXEWContextStruct\n{\n#endif /* GLEW_MX */\n" >> $@
  153. $(BIN)/make_struct_var.pl GLXEW_VAR_EXPORT $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@
  154. echo -e "\n#ifdef GLEW_MX\n}; /* GLXEWContextStruct */\n#endif /* GLEW_MX */\n" >> $@
  155. perl -e "s/GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_2;/GLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_0;\nGLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_1;\nGLXEW_VAR_EXPORT GLboolean __GLXEW_VERSION_1_2;/" -pi $@
  156. cat $(SRC)/glxew_tail.h >> $@
  157. $(S.DEST)/glew.c: $(EXT)/.dummy
  158. @echo "--------------------------------------------------------------------"
  159. @echo "Creating glew.c"
  160. @echo "--------------------------------------------------------------------"
  161. cp -f $(SRC)/glew_license.h $@
  162. cat $(SRC)/glew_head.c >> $@
  163. echo -e "\n#if !defined(_WIN32) || !defined(GLEW_MX)" >> $@
  164. $(BIN)/make_def_fun.pl GL $(GL_CORE_SPEC) >> $@
  165. $(BIN)/make_def_fun.pl GL $(GL_EXT_SPEC) >> $@
  166. echo -e "\n#endif /* !WIN32 || !GLEW_MX */" >> $@
  167. echo -e "\n#if !defined(GLEW_MX)" >> $@;
  168. echo -e "\nGLboolean __GLEW_VERSION_1_1 = GL_FALSE;" >> $@
  169. $(BIN)/make_def_var.pl GL $(GL_CORE_SPEC) >> $@
  170. $(BIN)/make_def_var.pl GL $(GL_EXT_SPEC) >> $@
  171. echo -e "\n#endif /* !GLEW_MX */\n" >> $@;
  172. $(BIN)/make_init.pl GL $(GL_CORE_SPEC) >> $@
  173. $(BIN)/make_init.pl GL $(GL_EXT_SPEC) >> $@
  174. cat $(SRC)/glew_init_gl.c >> $@
  175. $(BIN)/make_list.pl $(GL_CORE_SPEC) | grep -v '\"GL_VERSION' >> $@
  176. $(BIN)/make_list.pl $(GL_EXT_SPEC) >> $@
  177. echo -e "\n return GLEW_OK;\n}\n" >> $@
  178. echo -e "\n#if defined(_WIN32)" >> $@
  179. echo -e "\n#if !defined(GLEW_MX)" >> $@
  180. $(BIN)/make_def_fun.pl WGL $(WGL_EXT_SPEC) >> $@
  181. $(BIN)/make_def_var.pl WGL $(WGL_EXT_SPEC) >> $@
  182. echo -e "\n#endif /* !GLEW_MX */\n" >> $@;
  183. $(BIN)/make_init.pl WGL $(WGL_EXT_SPEC) >> $@
  184. cat $(SRC)/glew_init_wgl.c >> $@
  185. $(BIN)/make_list.pl $(WGL_EXT_SPEC) >> $@
  186. echo -e "\n return GLEW_OK;\n}" >> $@;
  187. echo -e "\n#elif !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))" >> $@
  188. $(BIN)/make_def_fun.pl GLX $(GLX_CORE_SPEC) >> $@
  189. $(BIN)/make_def_fun.pl GLX $(GLX_EXT_SPEC) >> $@
  190. echo -e "\n#if !defined(GLEW_MX)" >> $@;
  191. echo -e "\nGLboolean __GLXEW_VERSION_1_0 = GL_FALSE;" >> $@
  192. echo -e "GLboolean __GLXEW_VERSION_1_1 = GL_FALSE;" >> $@
  193. $(BIN)/make_def_var.pl GLX $(GLX_CORE_SPEC) >> $@
  194. $(BIN)/make_def_var.pl GLX $(GLX_EXT_SPEC) >> $@
  195. echo -e "\n#endif /* !GLEW_MX */\n" >> $@;
  196. $(BIN)/make_init.pl GLX $(GLX_CORE_SPEC) >> $@
  197. $(BIN)/make_init.pl GLX $(GLX_EXT_SPEC) >> $@
  198. cat $(SRC)/glew_init_glx.c >> $@
  199. $(BIN)/make_list.pl $(CORE)/GLX_VERSION_1_3 | grep -v '\"GLX_VERSION' >> $@
  200. $(BIN)/make_list.pl $(GLX_EXT_SPEC) >> $@
  201. echo -e "\n return GLEW_OK;\n}" >> $@
  202. echo -e "\n#endif /* !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) */\n" >> $@;
  203. cat $(SRC)/glew_init_tail.c >> $@
  204. cat $(SRC)/glew_str_head.c >> $@
  205. $(BIN)/make_str.pl $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@
  206. cat $(SRC)/glew_str_wgl.c >> $@
  207. $(BIN)/make_str.pl $(WGL_EXT_SPEC) >> $@
  208. cat $(SRC)/glew_str_glx.c >> $@
  209. $(BIN)/make_str.pl $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@
  210. cat $(SRC)/glew_str_tail.c >> $@
  211. perl -e "s/GLEW_VERSION_STRING/$(GLEW_VERSION)/g" -pi $@
  212. perl -e "s/GLEW_VERSION_MAJOR_STRING/$(GLEW_MAJOR)/g" -pi $@
  213. perl -e "s/GLEW_VERSION_MINOR_STRING/$(GLEW_MINOR)/g" -pi $@
  214. perl -e "s/GLEW_VERSION_MICRO_STRING/$(GLEW_MICRO)/g" -pi $@
  215. perl -e "s/GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader\(GLEW_CONTEXT_ARG_VAR_INIT\);/{ GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(GLEW_CONTEXT_ARG_VAR_INIT); _glewInit_GL_ARB_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); }/g" -pi $@
  216. perl -e "s/\(\(glColorSubTable = /((glBlendEquation = (PFNGLBLENDEQUATIONPROC)glewGetProcAddress((const GLubyte*)\"glBlendEquation\")) == NULL) || r;\n r = ((glColorSubTable = /g" -pi $@
  217. rm -f [email protected]
  218. $(S.DEST)/glew_def.c: $(EXT)/.dummy
  219. cp -f $(SRC)/glew_license.h $@
  220. echo -e "#include \"glew_utils.h\"\n\n#if !defined(_WIN32) || !defined(GLEW_MX)" >> $@
  221. $(BIN)/make_def_fun.pl GL $(GL_CORE_SPEC) >> $@
  222. $(BIN)/make_def_fun.pl GL $(GL_EXT_SPEC) >> $@
  223. echo -e "\n#endif /* !WIN32 || !GLEW_MX */" >> $@
  224. echo -e "\n#if !defined(GLEW_MX)\n\nGLboolean __GLEW_VERSION_1_1 = GL_FALSE;" >> $@
  225. $(BIN)/make_def_var.pl GL $(GL_CORE_SPEC) >> $@
  226. $(BIN)/make_def_var.pl GL $(GL_EXT_SPEC) >> $@
  227. echo -e "\n#if defined(_WIN32)" >> $@
  228. $(BIN)/make_def_fun.pl WGL $(WGL_EXT_SPEC) >> $@
  229. $(BIN)/make_def_var.pl WGL $(WGL_EXT_SPEC) >> $@
  230. echo -e "\n#endif /* _WIN32 */" >> $@
  231. echo -e "\n#endif /* !GLEW_MX */" >> $@;
  232. echo -e "\n#if !defined(_WIN32) && !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX))" >> $@
  233. $(BIN)/make_def_fun.pl GLX $(GLX_CORE_SPEC) >> $@
  234. $(BIN)/make_def_fun.pl GLX $(GLX_EXT_SPEC) >> $@
  235. echo -e "\n#if !defined(GLEW_MX)" >> $@;
  236. echo -e "\nGLboolean __GLXEW_VERSION_1_0 = GL_FALSE;" >> $@
  237. echo -e "GLboolean __GLXEW_VERSION_1_1 = GL_FALSE;" >> $@
  238. $(BIN)/make_def_var.pl GLX $(GLX_CORE_SPEC) >> $@
  239. $(BIN)/make_def_var.pl GLX $(GLX_EXT_SPEC) >> $@
  240. echo -e "\n#endif /* !GLEW_MX */" >> $@;
  241. echo -e "\n#endif /* !defined(_WIN32) && !defined(__ANDROID__) && !defined(__native_client__) && (!defined(__APPLE__) || defined(GLEW_APPLE_GLX)) */" >> $@;
  242. rm -f [email protected]
  243. $(S.DEST)/glew_init.c: $(EXT)/.dummy
  244. cp -f $(SRC)/glew_license.h $@
  245. echo -e "#include \"glew_utils.h\"\n" >> $@
  246. $(BIN)/make_init.pl GL $(GL_CORE_SPEC) >> $@
  247. $(BIN)/make_init.pl GL $(GL_EXT_SPEC) >> $@
  248. cat $(SRC)/glew_init_gl.c >> $@
  249. $(BIN)/make_list.pl $(GL_CORE_SPEC) | grep -v '\"GL_VERSION' >> $@
  250. $(BIN)/make_list.pl $(GL_EXT_SPEC) >> $@
  251. echo -e "\n return GLEW_OK;\n}\n\n#if defined(_WIN32)\n" >> $@;
  252. $(BIN)/make_init.pl WGL $(WGL_EXT_SPEC) >> $@
  253. cat $(SRC)/glew_init_wgl.c >> $@
  254. $(BIN)/make_list.pl $(WGL_EXT_SPEC) >> $@
  255. echo -e "\n return GLEW_OK;\n}\n\n" >> $@;
  256. echo -e "\n#elif !defined(__APPLE__) || defined(GLEW_APPLE_GLX)\n" >> $@
  257. $(BIN)/make_init.pl GLX $(GLX_CORE_SPEC) >> $@
  258. $(BIN)/make_init.pl GLX $(GLX_EXT_SPEC) >> $@
  259. cat $(SRC)/glew_init_glx.c >> $@
  260. $(BIN)/make_list.pl $(CORE)/GLX_VERSION_1_3 | grep -v '\"GLX_VERSION' >> $@
  261. $(BIN)/make_list.pl $(GLX_EXT_SPEC) >> $@
  262. echo -e "\n return GLEW_OK;\n}\n\n#endif /* !__APPLE__ || GLEW_APPLE_GLX */\n" >> $@;
  263. cat $(SRC)/glew_init_tail.c >> $@
  264. perl -e "s/GLEW_VERSION_STRING/$(GLEW_VERSION)/g" -pi $@
  265. perl -e "s/GLEW_VERSION_MAJOR_STRING/$(GLEW_MAJOR)/g" -pi $@
  266. perl -e "s/GLEW_VERSION_MINOR_STRING/$(GLEW_MINOR)/g" -pi $@
  267. perl -e "s/GLEW_VERSION_MICRO_STRING/$(GLEW_MICRO)/g" -pi $@
  268. perl -e "s/GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader\(GLEW_CONTEXT_ARG_VAR_INIT\);/{ GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(GLEW_CONTEXT_ARG_VAR_INIT); _glewInit_GL_ARB_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); }/g" -pi $@
  269. perl -e "s/\(\(glBlendColor = /((glBlendEquation = (PFNGLBLENDEQUATIONPROC)glewGetProcAddress((const GLubyte*)\"glBlendEquation\")) == NULL) || r;\n r = ((glBlendColor = /g" -pi $@
  270. rm -f [email protected]
  271. $(S.DEST)/glew_str.c: $(EXT)/.dummy
  272. cp -f $(SRC)/glew_license.h $@
  273. echo -e "\n#include \"glew_utils.h\"\n" >> $@
  274. cat $(SRC)/glew_str_head.c >> $@
  275. $(BIN)/make_str.pl $(GL_CORE_SPEC) $(GL_EXT_SPEC) >> $@
  276. cat $(SRC)/glew_str_wgl.c >> $@
  277. $(BIN)/make_str.pl $(WGL_EXT_SPEC) >> $@
  278. cat $(SRC)/glew_str_glx.c >> $@
  279. $(BIN)/make_str.pl $(GLX_CORE_SPEC) $(GLX_EXT_SPEC) >> $@
  280. cat $(SRC)/glew_str_tail.c >> $@
  281. # perl -e "s/GLEW_VERSION_STRING/$(GLEW_VERSION)/g" -pi $@
  282. # perl -e "s/GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader\(GLEW_CONTEXT_ARG_VAR_INIT\);/{ GLEW_ARB_vertex_shader = !_glewInit_GL_ARB_vertex_shader(GLEW_CONTEXT_ARG_VAR_INIT); _glewInit_GL_ARB_vertex_program(GLEW_CONTEXT_ARG_VAR_INIT); }/g" -pi $@
  283. rm -f [email protected]
  284. $(S.DEST)/glewinfo.c: $(EXT)/.dummy
  285. @echo "--------------------------------------------------------------------"
  286. @echo "Creating glewinfo.c"
  287. @echo "--------------------------------------------------------------------"
  288. cp -f $(SRC)/glew_license.h $@
  289. cat $(SRC)/glewinfo_head.c >> $@
  290. $(BIN)/make_info.pl $(GL_CORE_SPEC) >> $@
  291. $(BIN)/make_info.pl $(GL_EXT_SPEC) >> $@
  292. echo -e "#ifdef _WIN32\n" >> $@
  293. $(BIN)/make_info.pl $(WGL_EXT_SPEC) >> $@
  294. echo -e "#else /* _UNIX */\n" >> $@
  295. $(BIN)/make_info.pl $(GLX_CORE_SPEC) >> $@
  296. $(BIN)/make_info.pl $(GLX_EXT_SPEC) >> $@
  297. echo -e "#endif /* _WIN32 */\n" >> $@
  298. cat $(SRC)/glewinfo_gl.c >> $@
  299. $(BIN)/make_info_list.pl $(GL_CORE_SPEC) >> $@
  300. $(BIN)/make_info_list.pl $(GL_EXT_SPEC) >> $@
  301. cat $(SRC)/glewinfo_wgl.c >> $@
  302. $(BIN)/make_info_list.pl $(WGL_EXT_SPEC) >> $@
  303. cat $(SRC)/glewinfo_glx.c >> $@
  304. $(BIN)/make_info_list.pl $(GLX_CORE_SPEC) >> $@
  305. $(BIN)/make_info_list.pl $(GLX_EXT_SPEC) >> $@
  306. cat $(SRC)/glewinfo_tail.c >> $@
  307. perl -e 's/"glColorSubTable"/"glBlendEquation", glBlendEquation == NULL);\n glewInfoFunc("glColorSubTable"/g' -pi $@
  308. rm -f [email protected]
  309. # Update documentation
  310. $(D.DEST)/%.html: doc/%.html
  311. @echo "--------------------------------------------------------------------"
  312. @echo "Creating $(@F)"
  313. @echo "--------------------------------------------------------------------"
  314. cat $(SRC)/header.html $< $(SRC)/footer.html | \
  315. perl -pe 's#<a href="$(@F)">(.*)</a>#\1#' > $@
  316. $(D.DEST)/glew.html: $(EXT)/.dummy
  317. @echo "--------------------------------------------------------------------"
  318. @echo "Creating glew.html"
  319. @echo "--------------------------------------------------------------------"
  320. cp -f $(SRC)/header.html $@
  321. echo -e "<h2>Supported OpenGL Extensions</h2>\n" >> $@
  322. $(BIN)/make_html.pl $(GL_EXT_SPEC) >> $@
  323. cat $(SRC)/footer.html >> $@
  324. perl -i -pe 's#<a href="$(@F)">(.*)</a>#\1#' $@
  325. $(D.DEST)/wglew.html: $(EXT)/.dummy
  326. @echo "--------------------------------------------------------------------"
  327. @echo "Creating wglew.html"
  328. @echo "--------------------------------------------------------------------"
  329. cp -f $(SRC)/header.html $@
  330. echo -e "<h2>Supported WGL Extensions</h2>\n" >> $@
  331. $(BIN)/make_html.pl $(WGL_EXT_SPEC) >> $@
  332. cat $(SRC)/footer.html >> $@
  333. perl -i -pe 's#<a href="$(@F)">(.*)</a>#\1#' $@
  334. $(D.DEST)/glxew.html: $(EXT)/.dummy
  335. @echo "--------------------------------------------------------------------"
  336. @echo "Creating glxew.html"
  337. @echo "--------------------------------------------------------------------"
  338. cp -f $(SRC)/header.html $@
  339. echo -e "<h2>Supported GLX Extensions</h2>\n" >> $@
  340. $(BIN)/make_html.pl $(GLX_EXT_SPEC) >> $@
  341. cat $(SRC)/footer.html >> $@
  342. perl -i -pe 's#<a href="$(@F)">(.*)</a>#\1#' $@
  343. $(B.DEST)/%.rc: src/%.rc $(EXT)/.dummy
  344. perl -e "s/GLEW_MAJOR/$(GLEW_MAJOR)/g;s/GLEW_MINOR/$(GLEW_MINOR)/g;s/GLEW_MICRO/$(GLEW_MICRO)/g;" -p $< > $@
  345. clean:
  346. rm -rf $(I.TARGETS) $(S.TARGETS) $(D.TARGETS) $(B.TARGETS)
  347. clobber: clean
  348. rm -rf $(EXT)
  349. destroy: clobber
  350. rm -rf registry