008ac71290252c19819d04da4b6b7a0b32b244ff
[profile/ivi/mesa.git] / Makefile.am
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
22 SUBDIRS = src
23
24 doxygen:
25         cd doxygen && $(MAKE)
26
27 check-local:
28         $(MAKE) -C src/glsl/tests check
29         $(MAKE) -C src/glx/tests check
30
31 clean-local:
32         -@touch $(top_builddir)/configs/current
33         -@for dir in $(SUBDIRS) ; do \
34                 if [ -d $$dir ] ; then \
35                         (cd $$dir && $(MAKE) clean) ; \
36                 fi \
37         done
38         -@test -s $(top_builddir)/configs/current || rm -f $(top_builddir)/configs/current
39
40
41
42 distclean-local:
43         -rm -rf lib*
44         -rm -f $(top_builddir)/configs/current
45         -rm -f $(top_builddir)/configs/autoconf
46         -find . '(' -name '*.o' -o -name '*.a' -o -name '*.so' -o \
47           -name depend -o -name depend.bak ')' -exec rm -f '{}' ';'
48
49 .PHONY: doxygen
50
51 # Rules for making release tarballs
52
53 PACKAGE_VERSION=8.1-devel
54 PACKAGE_DIR = Mesa-$(PACKAGE_VERSION)
55 PACKAGE_NAME = MesaLib-$(PACKAGE_VERSION)
56
57 EXTRA_FILES = \
58         aclocal.m4                                      \
59         configure                                       \
60         src/glsl/glsl_parser.cpp                        \
61         src/glsl/glsl_parser.h                          \
62         src/glsl/glsl_lexer.cpp                         \
63         src/glsl/glcpp/glcpp-lex.c                      \
64         src/glsl/glcpp/glcpp-parse.c                    \
65         src/glsl/glcpp/glcpp-parse.h                    \
66         src/mesa/main/api_exec_es1.c                    \
67         src/mesa/main/api_exec_es1_dispatch.h           \
68         src/mesa/main/api_exec_es1_remap_helper.h       \
69         src/mesa/main/api_exec_es2.c                    \
70         src/mesa/main/api_exec_es2_dispatch.h           \
71         src/mesa/main/api_exec_es2_remap_helper.h       \
72         src/mesa/program/lex.yy.c                       \
73         src/mesa/program/program_parse.tab.c            \
74         src/mesa/program/program_parse.tab.h
75
76 IGNORE_FILES = \
77         -x autogen.sh
78
79
80 parsers: configure
81         -@touch $(top_builddir)/configs/current
82         $(MAKE) -C src/glsl glsl_parser.cpp glsl_parser.h glsl_lexer.cpp
83         $(MAKE) -C src/glsl/glcpp glcpp-lex.c glcpp-parse.c glcpp-parse.h
84         $(MAKE) -C src/mesa program/lex.yy.c program/program_parse.tab.c program/program_parse.tab.h
85
86 # Everything for new a Mesa release:
87 ARCHIVES = $(PACKAGE_NAME).tar.gz \
88         $(PACKAGE_NAME).tar.bz2 \
89         $(PACKAGE_NAME).zip
90
91 tarballs: md5
92         rm -f ../$(PACKAGE_DIR) $(PACKAGE_NAME).tar
93
94 manifest.txt: .git
95         ( \
96                 ls -1 $(EXTRA_FILES) ; \
97                 git ls-files $(IGNORE_FILES) \
98         ) | sed -e '/^\(.*\/\)\?\./d' -e "s@^@$(PACKAGE_DIR)/@" > $@
99
100 ../$(PACKAGE_DIR):
101         ln -s $(PWD) $@
102
103 $(PACKAGE_NAME).tar: parsers ../$(PACKAGE_DIR) manifest.txt
104         cd .. ; tar -cf $(PACKAGE_DIR)/$(PACKAGE_NAME).tar -T $(PACKAGE_DIR)/manifest.txt
105
106 $(PACKAGE_NAME).tar.gz: $(PACKAGE_NAME).tar ../$(PACKAGE_DIR)
107         gzip --stdout --best $(PACKAGE_NAME).tar > $(PACKAGE_NAME).tar.gz
108
109 $(PACKAGE_NAME).tar.bz2: $(PACKAGE_NAME).tar
110         bzip2 --stdout --best $(PACKAGE_NAME).tar > $(PACKAGE_NAME).tar.bz2
111
112 $(PACKAGE_NAME).zip: parsers ../$(PACKAGE_DIR) manifest.txt
113         rm -f $(PACKAGE_NAME).zip ; \
114         cd .. ; \
115         zip -q -@ $(PACKAGE_NAME).zip < $(PACKAGE_DIR)/manifest.txt ; \
116         mv $(PACKAGE_NAME).zip $(PACKAGE_DIR)
117
118 md5: $(ARCHIVES)
119         @-md5sum $(PACKAGE_NAME).tar.gz
120         @-md5sum $(PACKAGE_NAME).tar.bz2
121         @-md5sum $(PACKAGE_NAME).zip
122
123 .PHONY: tarballs md5