c6fc06248529338004366ceb688e16feaa639e7b
[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 ACLOCAL_AMFLAGS = -I m4
25
26 doxygen:
27 cd doxygen && $(MAKE)
28
29 check-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
36 .PHONY: doxygen
37
38 # Rules for making release tarballs
39
40 PACKAGE_VERSION=9.1-devel
41 PACKAGE_DIR = Mesa-$(PACKAGE_VERSION)
42 PACKAGE_NAME = MesaLib-$(PACKAGE_VERSION)
43
44 EXTRA_FILES = \
45 aclocal.m4 \
46 configure \
47 bin/ar-lib \
48 bin/compile \
49 bin/config.sub \
50 bin/config.guess \
51 bin/depcomp \
52 bin/install-sh \
53 bin/ltmain.sh \
54 bin/missing \
55 bin/ylwrap \
56 src/glsl/glsl_parser.cpp \
57 src/glsl/glsl_parser.h \
58 src/glsl/glsl_lexer.cpp \
59 src/glsl/glcpp/glcpp-lex.c \
60 src/glsl/glcpp/glcpp-parse.c \
61 src/glsl/glcpp/glcpp-parse.h \
62 src/mesa/main/api_exec_es1.c \
63 src/mesa/main/api_exec_es1_dispatch.h \
64 src/mesa/main/api_exec_es1_remap_helper.h \
65 src/mesa/main/api_exec_es2.c \
66 src/mesa/main/api_exec_es2_dispatch.h \
67 src/mesa/main/api_exec_es2_remap_helper.h \
68 src/mesa/program/lex.yy.c \
69 src/mesa/program/program_parse.tab.c \
70 src/mesa/program/program_parse.tab.h \
71 `git ls-files | grep "Makefile.am" | sed -e "s/Makefile.am/Makefile.in/"`
72
73
74 IGNORE_FILES = \
75 -x autogen.sh
76
77
78 parsers: configure
79 $(MAKE) -C src/glsl glsl_parser.cpp glsl_parser.h glsl_lexer.cpp glcpp/glcpp-lex.c glcpp/glcpp-parse.c glcpp/glcpp-parse.h
80 $(MAKE) -C src/mesa/program lex.yy.c program_parse.tab.c program_parse.tab.h
81
82 # Everything for new a Mesa release:
83 ARCHIVES = $(PACKAGE_NAME).tar.gz \
84 $(PACKAGE_NAME).tar.bz2 \
85 $(PACKAGE_NAME).zip
86
87 tarballs: md5
88 rm -f ../$(PACKAGE_DIR) $(PACKAGE_NAME).tar
89
90 manifest.txt: .git
91 ( \
92 ls -1 $(EXTRA_FILES) ; \
93 git ls-files $(IGNORE_FILES) \
94 ) | sed -e '/^\(.*\/\)\?\./d' -e "s@^@$(PACKAGE_DIR)/@" > $@
95
96 ../$(PACKAGE_DIR):
97 ln -s $(PWD) $@
98
99 $(PACKAGE_NAME).tar: parsers ../$(PACKAGE_DIR) manifest.txt
100 cd .. ; tar -cf $(PACKAGE_DIR)/$(PACKAGE_NAME).tar -T $(PACKAGE_DIR)/manifest.txt
101
102 $(PACKAGE_NAME).tar.gz: $(PACKAGE_NAME).tar ../$(PACKAGE_DIR)
103 gzip --stdout --best $(PACKAGE_NAME).tar > $(PACKAGE_NAME).tar.gz
104
105 $(PACKAGE_NAME).tar.bz2: $(PACKAGE_NAME).tar
106 bzip2 --stdout --best $(PACKAGE_NAME).tar > $(PACKAGE_NAME).tar.bz2
107
108 $(PACKAGE_NAME).zip: parsers ../$(PACKAGE_DIR) manifest.txt
109 rm -f $(PACKAGE_NAME).zip ; \
110 cd .. ; \
111 zip -q -@ $(PACKAGE_NAME).zip < $(PACKAGE_DIR)/manifest.txt ; \
112 mv $(PACKAGE_NAME).zip $(PACKAGE_DIR)
113
114 md5: $(ARCHIVES)
115 @-md5sum $(PACKAGE_NAME).tar.gz
116 @-md5sum $(PACKAGE_NAME).tar.bz2
117 @-md5sum $(PACKAGE_NAME).zip
118
119 .PHONY: tarballs md5