1# Copyright © 2012 Intel Corporation
2#
3# Permission is hereby granted, free of charge, to any person obtaining a
4# copy of this software and associated documentation files (the "Software"),
5# to deal in the Software without restriction, including without limitation
6# the rights to use, copy, modify, merge, publish, distribute, sublicense,
7# and/or sell copies of the Software, and to permit persons to whom the
8# Software is furnished to do so, subject to the following conditions:
9#
10# The above copyright notice and this permission notice (including the next
11# paragraph) shall be included in all copies or substantial portions of the
12# Software.
13#
14# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
17# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
19# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20# IN THE SOFTWARE.
21
22SUBDIRS = src
23
24ACLOCAL_AMFLAGS = -I m4
25
26doxygen:
27	cd doxygen && $(MAKE)
28
29check-local:
30	$(MAKE) -C src/mapi/glapi/tests check
31	$(MAKE) -C src/mapi/shared-glapi/tests check
32	$(MAKE) -C src/mesa/main/tests check
33	$(MAKE) -C src/glsl/tests check
34	$(MAKE) -C src/glx/tests check
35
36clean-local:
37	-@touch $(top_builddir)/configs/current
38	-@for dir in $(SUBDIRS) ; do \
39		if [ -d $$dir ] ; then \
40			(cd $$dir && $(MAKE) clean) ; \
41		fi \
42	done
43	-@test -s $(top_builddir)/configs/current || rm -f $(top_builddir)/configs/current
44
45
46
47distclean-local:
48	-rm -rf lib*
49	-rm -f $(top_builddir)/configs/current
50	-find . '(' -name '*.o' -o -name '*.a' -o -name '*.so' -o \
51	  -name depend -o -name depend.bak ')' -exec rm -f '{}' ';'
52
53.PHONY: doxygen
54
55# Rules for making release tarballs
56
57PACKAGE_VERSION=9.0.3
58PACKAGE_DIR = Mesa-$(PACKAGE_VERSION)
59PACKAGE_NAME = MesaLib-$(PACKAGE_VERSION)
60
61EXTRA_FILES = \
62	aclocal.m4					\
63	configure					\
64	bin/ar-lib					\
65	bin/compile					\
66	bin/config.sub					\
67	bin/config.guess				\
68	bin/depcomp					\
69	bin/install-sh					\
70	bin/ltmain.sh					\
71	bin/missing					\
72	bin/ylwrap					\
73	src/glsl/glsl_parser.cc				\
74	src/glsl/glsl_parser.h				\
75	src/glsl/glsl_lexer.cc				\
76	src/glsl/glcpp/glcpp-lex.c			\
77	src/glsl/glcpp/glcpp-parse.c			\
78	src/glsl/glcpp/glcpp-parse.h			\
79	src/mesa/main/api_exec_es1.c			\
80	src/mesa/main/api_exec_es1_dispatch.h		\
81	src/mesa/main/api_exec_es1_remap_helper.h	\
82	src/mesa/main/api_exec_es2.c			\
83	src/mesa/main/api_exec_es2_dispatch.h		\
84	src/mesa/main/api_exec_es2_remap_helper.h	\
85	src/mesa/program/lex.yy.c			\
86	src/mesa/program/program_parse.tab.c		\
87	src/mesa/program/program_parse.tab.h		\
88	`git ls-files | grep "Makefile.am" | sed -e "s/Makefile.am/Makefile.in/"`
89
90
91IGNORE_FILES = \
92	-x autogen.sh
93
94
95parsers: configure
96	-@touch $(top_builddir)/configs/current
97	$(MAKE) -C src/glsl glsl_parser.cc glsl_parser.h glsl_lexer.cc
98	$(MAKE) -C src/glsl/glcpp glcpp-lex.c glcpp-parse.c glcpp-parse.h
99	$(MAKE) -C src/mesa program/lex.yy.c program/program_parse.tab.c program/program_parse.tab.h
100
101# Everything for new a Mesa release:
102ARCHIVES = $(PACKAGE_NAME).tar.gz \
103	$(PACKAGE_NAME).tar.bz2 \
104	$(PACKAGE_NAME).zip
105
106tarballs: md5
107	rm -f ../$(PACKAGE_DIR) $(PACKAGE_NAME).tar
108
109manifest.txt: .git
110	( \
111		ls -1 $(EXTRA_FILES) ; \
112		git ls-files $(IGNORE_FILES) \
113	) | sed -e '/^\(.*\/\)\?\./d' -e "s@^@$(PACKAGE_DIR)/@" > $@
114
115../$(PACKAGE_DIR):
116	ln -s $(PWD) $@
117
118$(PACKAGE_NAME).tar: parsers ../$(PACKAGE_DIR) manifest.txt
119	cd .. ; tar -cf $(PACKAGE_DIR)/$(PACKAGE_NAME).tar -T $(PACKAGE_DIR)/manifest.txt
120
121$(PACKAGE_NAME).tar.gz: $(PACKAGE_NAME).tar ../$(PACKAGE_DIR)
122	gzip --stdout --best $(PACKAGE_NAME).tar > $(PACKAGE_NAME).tar.gz
123
124$(PACKAGE_NAME).tar.bz2: $(PACKAGE_NAME).tar
125	bzip2 --stdout --best $(PACKAGE_NAME).tar > $(PACKAGE_NAME).tar.bz2
126
127$(PACKAGE_NAME).zip: parsers ../$(PACKAGE_DIR) manifest.txt
128	rm -f $(PACKAGE_NAME).zip ; \
129	cd .. ; \
130	zip -q -@ $(PACKAGE_NAME).zip < $(PACKAGE_DIR)/manifest.txt ; \
131	mv $(PACKAGE_NAME).zip $(PACKAGE_DIR)
132
133md5: $(ARCHIVES)
134	@-md5sum $(PACKAGE_NAME).tar.gz
135	@-md5sum $(PACKAGE_NAME).tar.bz2
136	@-md5sum $(PACKAGE_NAME).zip
137
138.PHONY: tarballs md5
139