1 # Top-level Mesa makefile
8 # The git command below generates an empty string when we're not
9 # building in a GIT tree (i.e., building from a release tarball).
10 default
: $(TOP
)/configs
/current
11 @
$(TOP
)/bin
/extract_git_sha1
12 @for
dir in
$(SUBDIRS
) ; do \
13 if
[ -d
$$dir ] ; then \
14 (cd
$$dir && $(MAKE
)) || exit
1 ; \
25 -@touch
$(TOP
)/configs
/current
26 -@for
dir in
$(SUBDIRS
) ; do \
27 if
[ -d
$$dir ] ; then \
28 (cd
$$dir && $(MAKE
) clean) ; \
31 -@
test -s
$(TOP
)/configs
/current ||
rm -f
$(TOP
)/configs
/current
36 -rm -f
$(TOP
)/configs
/current
37 -rm -f
$(TOP
)/configs
/autoconf
38 -rm -rf autom4te.cache
39 -find .
'(' -name
'*.o' -o
-name
'*.a' -o
-name
'*.so' -o \
40 -name depend
-o
-name depend.bak
')' -exec
rm -f
'{}' ';'
47 @for
dir in
$(SUBDIRS
) ; do \
48 if
[ -d
$$dir ] ; then \
49 (cd
$$dir && $(MAKE
) install) || exit
1 ; \
54 .PHONY
: default doxygen
clean realclean distclean install
56 # If there's no current configuration file
57 $(TOP
)/configs
/current
:
60 @echo
"Please choose a configuration from the following list:"
61 @ls
-1 $(TOP
)/configs | grep
-v
"current\|default\|CVS\|autoconf.*"
63 @echo
"Then type 'make <config>' (ex: 'make linux-x86')"
65 @echo
"Or, run './configure' then 'make'"
66 @echo
"See './configure --help' for details"
68 @echo
"(ignore the following error message)"
72 # Rules to set/install a specific build configuration
82 catamount-osmesa-pgi \
95 hpux11-32-static-nothreads \
125 linux-ia64-icc-static \
132 linux-osmesa-static \
134 linux-osmesa16-static \
149 linux-x86-64-profile \
150 linux-x86-64-static \
159 solaris-x86-gcc-static \
173 @ if
test -f configs
/current
-o
-L configs
/current
; then \
174 if
! cmp configs
/$@ configs
/current
> /dev
/null
; then \
175 echo
"Please run 'make realclean' before changing configs" ; \
179 cd configs
&& rm -f current
&& ln
-s
$@ current
; \
184 # Rules for making release tarballs
187 DIRECTORY
= Mesa-
$(VERSION
)
188 LIB_NAME
= MesaLib-
$(VERSION
)
189 GLUT_NAME
= MesaGLUT-
$(VERSION
)
191 # This is part of MAIN_FILES
193 $(DIRECTORY
)/src
/mesa
/main
/*.xml \
194 $(DIRECTORY
)/src
/mesa
/main
/*.py \
195 $(DIRECTORY
)/src
/mesa
/main
/*.dtd
198 $(DIRECTORY
)/Makefile
* \
199 $(DIRECTORY
)/configure \
200 $(DIRECTORY
)/configure.ac \
201 $(DIRECTORY
)/acinclude.m4 \
202 $(DIRECTORY
)/aclocal.m4 \
203 $(DIRECTORY
)/SConstruct \
204 $(DIRECTORY
)/common.py \
205 $(DIRECTORY
)/scons
/*py \
206 $(DIRECTORY
)/bin
/config.guess \
207 $(DIRECTORY
)/bin
/config.sub \
208 $(DIRECTORY
)/bin
/extract_git_sha1 \
209 $(DIRECTORY
)/bin
/install-sh \
210 $(DIRECTORY
)/bin
/mklib \
211 $(DIRECTORY
)/bin
/minstall \
212 $(DIRECTORY
)/bin
/version.mk \
213 $(DIRECTORY
)/configs
/[a-z
]* \
214 $(DIRECTORY
)/docs
/*.html \
215 $(DIRECTORY
)/docs
/COPYING \
216 $(DIRECTORY
)/docs
/README.
* \
217 $(DIRECTORY
)/docs
/RELNOTES
* \
218 $(DIRECTORY
)/docs
/*.spec \
219 $(DIRECTORY
)/include/GL
/gl.h \
220 $(DIRECTORY
)/include/GL
/glext.h \
221 $(DIRECTORY
)/include/GL
/gl_mangle.h \
222 $(DIRECTORY
)/include/GL
/glu.h \
223 $(DIRECTORY
)/include/GL
/glu_mangle.h \
224 $(DIRECTORY
)/include/GL
/glx.h \
225 $(DIRECTORY
)/include/GL
/glxext.h \
226 $(DIRECTORY
)/include/GL
/glx_mangle.h \
227 $(DIRECTORY
)/include/GL
/glfbdev.h \
228 $(DIRECTORY
)/include/GL
/mesa_wgl.h \
229 $(DIRECTORY
)/include/GL
/osmesa.h \
230 $(DIRECTORY
)/include/GL
/vms_x_fix.h \
231 $(DIRECTORY
)/include/GL
/wglext.h \
232 $(DIRECTORY
)/include/GL
/wmesa.h \
233 $(DIRECTORY
)/include/pci_ids
/*.h \
234 $(DIRECTORY
)/include/c99
/*.h \
235 $(DIRECTORY
)/src
/getopt
/SConscript \
236 $(DIRECTORY
)/src
/getopt
/getopt
*.
[ch
] \
237 $(DIRECTORY
)/src
/glsl
/Makefile \
238 $(DIRECTORY
)/src
/glsl
/Makefile.template \
239 $(DIRECTORY
)/src
/glsl
/SConscript \
240 $(DIRECTORY
)/src
/glsl
/*.
[ch
] \
241 $(DIRECTORY
)/src
/glsl
/*.ll \
242 $(DIRECTORY
)/src
/glsl
/*.yy \
243 $(DIRECTORY
)/src
/glsl
/*.
[cly
]pp \
244 $(DIRECTORY
)/src
/glsl
/README \
245 $(DIRECTORY
)/src
/glsl
/glcpp
/*.
[chly
] \
246 $(DIRECTORY
)/src
/glsl
/glcpp
/README \
247 $(DIRECTORY
)/src
/glsl
/builtins \
248 $(DIRECTORY
)/src
/Makefile \
249 $(DIRECTORY
)/src
/SConscript \
250 $(DIRECTORY
)/src
/mesa
/Makefile
* \
251 $(DIRECTORY
)/src
/mesa
/SConscript \
252 $(DIRECTORY
)/src
/mesa
/sources.mak \
253 $(DIRECTORY
)/src
/mesa
/descrip.mms \
254 $(DIRECTORY
)/src
/mesa
/gl.
pc.in \
255 $(DIRECTORY
)/src
/mesa
/osmesa.
pc.in \
256 $(DIRECTORY
)/src
/mesa
/depend \
258 $(DIRECTORY
)/src
/mesa
/main
/*.
[chS
] \
259 $(DIRECTORY
)/src
/mesa
/main
/*.
cpp \
260 $(DIRECTORY
)/src
/mesa
/main
/descrip.mms \
261 $(DIRECTORY
)/src
/mesa
/math
/*.
[ch
] \
262 $(DIRECTORY
)/src
/mesa
/math
/descrip.mms \
263 $(DIRECTORY
)/src
/mesa
/program
/*.
[chly
] \
264 $(DIRECTORY
)/src
/mesa
/program
/*.
cpp \
265 $(DIRECTORY
)/src
/mesa
/program
/descrip.mms \
266 $(DIRECTORY
)/src
/mesa
/swrast
/*.
[ch
] \
267 $(DIRECTORY
)/src
/mesa
/swrast
/descrip.mms \
268 $(DIRECTORY
)/src
/mesa
/swrast_setup
/*.
[ch
] \
269 $(DIRECTORY
)/src
/mesa
/swrast_setup
/descrip.mms \
270 $(DIRECTORY
)/src
/mesa
/vbo
/*.
[chS
] \
271 $(DIRECTORY
)/src
/mesa
/vbo
/descrip.mms \
272 $(DIRECTORY
)/src
/mesa
/tnl
/*.
[chS
] \
273 $(DIRECTORY
)/src
/mesa
/tnl
/descrip.mms \
274 $(DIRECTORY
)/src
/mesa
/tnl_dd
/*.
[ch
] \
275 $(DIRECTORY
)/src
/mesa
/tnl_dd
/imm
/*.
[ch
] \
276 $(DIRECTORY
)/src
/mesa
/tnl_dd
/imm
/NOTES.imm \
277 $(DIRECTORY
)/src
/mesa
/drivers
/Makefile \
278 $(DIRECTORY
)/src
/mesa
/drivers
/beos
/*.
cpp \
279 $(DIRECTORY
)/src
/mesa
/drivers
/beos
/Makefile \
280 $(DIRECTORY
)/src
/mesa
/drivers
/common
/*.
[ch
] \
281 $(DIRECTORY
)/src
/mesa
/drivers
/common
/descrip.mms \
282 $(DIRECTORY
)/src
/mesa
/drivers
/fbdev
/Makefile \
283 $(DIRECTORY
)/src
/mesa
/drivers
/fbdev
/glfbdev.c \
284 $(DIRECTORY
)/src
/mesa
/drivers
/osmesa
/Makefile \
285 $(DIRECTORY
)/src
/mesa
/drivers
/osmesa
/Makefile.win \
286 $(DIRECTORY
)/src
/mesa
/drivers
/osmesa
/descrip.mms \
287 $(DIRECTORY
)/src
/mesa
/drivers
/osmesa
/osmesa.def \
288 $(DIRECTORY
)/src
/mesa
/drivers
/osmesa
/*.
[ch
] \
289 $(DIRECTORY
)/src
/mesa
/drivers
/dri
/r300
/compiler
/*.
[ch
] \
290 $(DIRECTORY
)/src
/mesa
/drivers
/dri
/r300
/compiler
/Makefile \
291 $(DIRECTORY
)/src
/mesa
/drivers
/dri
/r300
/compiler
/SConscript \
292 $(DIRECTORY
)/src
/mesa
/drivers
/windows
/*/*.
[ch
] \
293 $(DIRECTORY
)/src
/mesa
/drivers
/windows
/*/*.def \
294 $(DIRECTORY
)/src
/mesa
/drivers
/x11
/Makefile \
295 $(DIRECTORY
)/src
/mesa
/drivers
/x11
/descrip.mms \
296 $(DIRECTORY
)/src
/mesa
/drivers
/x11
/*.
[ch
] \
297 $(DIRECTORY
)/src
/mesa
/ppc
/*.
[ch
] \
298 $(DIRECTORY
)/src
/mesa
/sparc
/*.
[chS
] \
299 $(DIRECTORY
)/src
/mesa
/x86
/Makefile \
300 $(DIRECTORY
)/src
/mesa
/x86
/*.
[ch
] \
301 $(DIRECTORY
)/src
/mesa
/x86
/*.S \
302 $(DIRECTORY
)/src
/mesa
/x86
/rtasm
/*.
[ch
] \
303 $(DIRECTORY
)/src
/mesa
/x86-64
/*.
[chS
] \
304 $(DIRECTORY
)/src
/mesa
/x86-64
/Makefile
307 $(DIRECTORY
)/include/GLES
/*.h \
308 $(DIRECTORY
)/include/GLES2
/*.h \
309 $(DIRECTORY
)/include/VG
/*.h \
310 $(DIRECTORY
)/src
/mapi
/es?api
/Makefile \
311 $(DIRECTORY
)/src
/mapi
/es?api
/*.
pc.in \
312 $(DIRECTORY
)/src
/mapi
/glapi
/gen
/Makefile \
313 $(DIRECTORY
)/src
/mapi
/glapi
/gen
/*.xml \
314 $(DIRECTORY
)/src
/mapi
/glapi
/gen
/*.py \
315 $(DIRECTORY
)/src
/mapi
/glapi
/gen
/*.dtd \
316 $(DIRECTORY
)/src
/mapi
/glapi
/gen-es
/Makefile \
317 $(DIRECTORY
)/src
/mapi
/glapi
/gen-es
/*.xml \
318 $(DIRECTORY
)/src
/mapi
/glapi
/gen-es
/*.py \
319 $(DIRECTORY
)/src
/mapi
/glapi
/Makefile \
320 $(DIRECTORY
)/src
/mapi
/glapi
/SConscript \
321 $(DIRECTORY
)/src
/mapi
/glapi
/sources.mak \
322 $(DIRECTORY
)/src
/mapi
/glapi
/*.
[chS
] \
323 $(DIRECTORY
)/src
/mapi
/mapi
/mapi_abi.py \
324 $(DIRECTORY
)/src
/mapi
/mapi
/sources.mak \
325 $(DIRECTORY
)/src
/mapi
/mapi
/*.
[ch
] \
326 $(DIRECTORY
)/src
/mapi
/shared-glapi
/SConscript \
327 $(DIRECTORY
)/src
/mapi
/shared-glapi
/Makefile \
328 $(DIRECTORY
)/src
/mapi
/vgapi
/Makefile \
329 $(DIRECTORY
)/src
/mapi
/vgapi
/SConscript \
330 $(DIRECTORY
)/src
/mapi
/vgapi
/vgapi.csv \
331 $(DIRECTORY
)/src
/mapi
/vgapi
/vg.
pc.in
334 $(DIRECTORY
)/include/KHR
/*.h \
335 $(DIRECTORY
)/include/EGL
/*.h \
336 $(DIRECTORY
)/src
/egl
/Makefile \
337 $(DIRECTORY
)/src
/egl
/*/Makefile \
338 $(DIRECTORY
)/src
/egl
/*/Makefile.template \
339 $(DIRECTORY
)/src
/egl
/*/*.
[ch
] \
340 $(DIRECTORY
)/src
/egl
/*/*/Makefile \
341 $(DIRECTORY
)/src
/egl
/*/*/*.
[ch
] \
342 $(DIRECTORY
)/src
/egl
/wayland
/wayland-drm
/protocol
/*.xml \
343 $(DIRECTORY
)/src
/egl
/wayland
/wayland-egl
/*.
pc.in \
344 $(DIRECTORY
)/src
/egl
/main
/SConscript \
345 $(DIRECTORY
)/src
/egl
/main
/*.
pc.in \
346 $(DIRECTORY
)/src
/egl
/main
/*.def
349 $(DIRECTORY
)/src
/mesa
/state_tracker
/*[ch
] \
350 $(DIRECTORY
)/src
/gallium
/Makefile \
351 $(DIRECTORY
)/src
/gallium
/Makefile.template \
352 $(DIRECTORY
)/src
/gallium
/SConscript \
353 $(DIRECTORY
)/src
/gallium
/targets
/Makefile.dri \
354 $(DIRECTORY
)/src
/gallium
/targets
/Makefile.xorg \
355 $(DIRECTORY
)/src
/gallium
/targets
/SConscript.dri \
356 $(DIRECTORY
)/src
/gallium
/*/Makefile \
357 $(DIRECTORY
)/src
/gallium
/*/SConscript \
358 $(DIRECTORY
)/src
/gallium
/*/*/Makefile \
359 $(DIRECTORY
)/src
/gallium
/*/*/SConscript \
360 $(DIRECTORY
)/src
/gallium
/*/*/*.
[ch
] \
361 $(DIRECTORY
)/src
/gallium
/auxiliary
/gallivm
/*.
cpp \
362 $(DIRECTORY
)/src
/gallium
/*/*/*.py \
363 $(DIRECTORY
)/src
/gallium
/*/*/*.csv \
364 $(DIRECTORY
)/src
/gallium
/*/*/*/Makefile \
365 $(DIRECTORY
)/src
/gallium
/*/*/*/SConscript \
366 $(DIRECTORY
)/src
/gallium
/*/*/*/*.
[ch
] \
367 $(DIRECTORY
)/src
/gallium
/*/*/*/*.py
370 $(DIRECTORY
)/src
/glx
/apple
/Makefile \
371 $(DIRECTORY
)/src
/glx
/apple
/*.
[ch
]
374 $(DIRECTORY
)/include/GL
/internal
/dri_interface.h \
375 $(DIRECTORY
)/include/GL
/internal
/sarea.h \
376 $(DIRECTORY
)/src
/glx
/Makefile \
377 $(DIRECTORY
)/src
/glx
/*.
[ch
] \
379 $(DIRECTORY
)/src
/mesa
/drivers
/dri
/Makefile
* \
380 $(DIRECTORY
)/src
/mesa
/drivers
/dri
/dri.
pc.in \
381 $(DIRECTORY
)/src
/mesa
/drivers
/dri
/common
/xmlpool
/*.po \
382 $(DIRECTORY
)/src
/mesa
/drivers
/dri
/*/*.
[chS
] \
383 $(DIRECTORY
)/src
/mesa
/drivers
/dri
/*/*.
cpp \
384 $(DIRECTORY
)/src
/mesa
/drivers
/dri
/*/*/*.
[chS
] \
385 $(DIRECTORY
)/src
/mesa
/drivers
/dri
/*/Makefile \
386 $(DIRECTORY
)/src
/mesa
/drivers
/dri
/*/*/Makefile \
387 $(DIRECTORY
)/src
/mesa
/drivers
/dri
/*/Doxyfile
390 $(DIRECTORY
)/src
/glu
/Makefile \
391 $(DIRECTORY
)/src
/glu
/glu.
pc.in \
392 $(DIRECTORY
)/src
/glu
/sgi
/Makefile \
393 $(DIRECTORY
)/src
/glu
/sgi
/Makefile.mgw \
394 $(DIRECTORY
)/src
/glu
/sgi
/Makefile.win \
395 $(DIRECTORY
)/src
/glu
/sgi
/glu.def \
396 $(DIRECTORY
)/src
/glu
/sgi
/dummy.
cc \
397 $(DIRECTORY
)/src
/glu
/sgi
/glu.exports \
398 $(DIRECTORY
)/src
/glu
/sgi
/glu.exports.darwin \
399 $(DIRECTORY
)/src
/glu
/sgi
/mesaglu.opt \
400 $(DIRECTORY
)/src
/glu
/sgi
/include/gluos.h \
401 $(DIRECTORY
)/src
/glu
/sgi
/libnurbs
/interface
/*.h \
402 $(DIRECTORY
)/src
/glu
/sgi
/libnurbs
/interface
/*.
cc \
403 $(DIRECTORY
)/src
/glu
/sgi
/libnurbs
/internals
/*.h \
404 $(DIRECTORY
)/src
/glu
/sgi
/libnurbs
/internals
/*.
cc \
405 $(DIRECTORY
)/src
/glu
/sgi
/libnurbs
/nurbtess
/*.h \
406 $(DIRECTORY
)/src
/glu
/sgi
/libnurbs
/nurbtess
/*.
cc \
407 $(DIRECTORY
)/src
/glu
/sgi
/libtess
/README \
408 $(DIRECTORY
)/src
/glu
/sgi
/libtess
/alg-outline \
409 $(DIRECTORY
)/src
/glu
/sgi
/libtess
/*.
[ch
] \
410 $(DIRECTORY
)/src
/glu
/sgi
/libutil
/*.
[ch
]
413 $(DIRECTORY
)/src
/glw
/*.
[ch
] \
414 $(DIRECTORY
)/src
/glw
/Makefile
* \
415 $(DIRECTORY
)/src
/glw
/README \
416 $(DIRECTORY
)/src
/glw
/glw.
pc.in \
417 $(DIRECTORY
)/src
/glw
/depend
420 $(DIRECTORY
)/include/GL
/glut.h \
421 $(DIRECTORY
)/include/GL
/glutf90.h \
422 $(DIRECTORY
)/src
/glut
/glx
/Makefile
* \
423 $(DIRECTORY
)/src
/glut
/glx
/SConscript \
424 $(DIRECTORY
)/src
/glut
/glx
/depend \
425 $(DIRECTORY
)/src
/glut
/glx
/glut.
pc.in \
426 $(DIRECTORY
)/src
/glut
/glx
/*def \
427 $(DIRECTORY
)/src
/glut
/glx
/*.
[ch
] \
428 $(DIRECTORY
)/src
/glut
/beos
/*.
[ch
] \
429 $(DIRECTORY
)/src
/glut
/beos
/*.
cpp \
430 $(DIRECTORY
)/src
/glut
/beos
/Makefile
433 $(TOP
)/src
/mesa
/depend \
434 $(TOP
)/src
/glx
/depend \
435 $(TOP
)/src
/glw
/depend \
436 $(TOP
)/src
/glut
/glx
/depend \
437 $(TOP
)/src
/glu
/sgi
/depend
452 -@touch
$(TOP
)/configs
/current
453 $(MAKE
) -C src
/glsl glsl_parser.
cpp glsl_parser.h glsl_lexer.
cpp
454 $(MAKE
) -C src
/glsl
/glcpp glcpp-lex.c glcpp-parse.c glcpp-parse.h
455 $(MAKE
) -C src
/mesa
/program
lex.yy.c program_parse.tab.c program_parse.tab.h
457 # Everything for new a Mesa release:
458 ARCHIVES
= $(LIB_NAME
).
tar.gz \
459 $(LIB_NAME
).
tar.bz2 \
461 $(GLUT_NAME
).
tar.gz \
462 $(GLUT_NAME
).
tar.bz2 \
466 rm -f ..
/$(LIB_NAME
).
tar
468 # Helper for autoconf builds
473 aclocal.m4
: configure.ac acinclude.m4
474 $(ACLOCAL
) $(ACLOCAL_FLAGS
)
475 configure
: rm_depend configure.ac aclocal.m4 acinclude.m4
476 $(AUTOCONF
) $(AC_FLAGS
)
479 @for dep in
$(DEPEND_FILES
) ; do \
485 rm -f configs
/current
486 rm -f configs
/autoconf
488 $(LIB_NAME
).
tar: rm_config
489 cd ..
; tar -cf
$(DIRECTORY
)/$(LIB_NAME
).
tar $(LIB_FILES
)
491 $(LIB_NAME
).
tar.gz
: $(LIB_NAME
).
tar
492 gzip
--stdout
--best
$(LIB_NAME
).
tar > $(LIB_NAME
).
tar.gz
494 $(GLUT_NAME
).
tar: rm_depend
495 cd ..
; tar -cf
$(DIRECTORY
)/$(GLUT_NAME
).
tar $(GLUT_FILES
)
497 $(GLUT_NAME
).
tar.gz
: $(GLUT_NAME
).
tar
498 gzip
--stdout
--best
$(GLUT_NAME
).
tar > $(GLUT_NAME
).
tar.gz
500 $(LIB_NAME
).
tar.bz2
: $(LIB_NAME
).
tar
501 bzip2
--stdout
--best
$(LIB_NAME
).
tar > $(LIB_NAME
).
tar.bz2
503 $(GLUT_NAME
).
tar.bz2
: $(GLUT_NAME
).
tar
504 bzip2
--stdout
--best
$(GLUT_NAME
).
tar > $(GLUT_NAME
).
tar.bz2
506 $(LIB_NAME
).zip
: rm_config
507 rm -f
$(LIB_NAME
).zip
; \
509 zip
-qr
$(LIB_NAME
).zip
$(LIB_FILES
) ; \
510 mv
$(LIB_NAME
).zip
$(DIRECTORY
)
513 rm -f
$(GLUT_NAME
).zip
; \
515 zip
-qr
$(GLUT_NAME
).zip
$(GLUT_FILES
) ; \
516 mv
$(GLUT_NAME
).zip
$(DIRECTORY
)
519 @
-md5sum
$(LIB_NAME
).
tar.gz
520 @
-md5sum
$(LIB_NAME
).
tar.bz2
521 @
-md5sum
$(LIB_NAME
).zip
522 @
-md5sum
$(GLUT_NAME
).
tar.gz
523 @
-md5sum
$(GLUT_NAME
).
tar.bz2
524 @
-md5sum
$(GLUT_NAME
).zip
526 .PHONY
: tarballs rm_depend rm_config md5