automake: Move top-level makefile to automake.
This is part of a series to fix our build issues in the automake case by hooking up the automatic Makefile regeneration support. The extract_git_sha1 is moved into src/mesa/Makefile so that we get correct dependency generation. Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -40,3 +40,4 @@ Makefile.in
|
|||||||
.dir-locals.el
|
.dir-locals.el
|
||||||
.deps/
|
.deps/
|
||||||
.libs/
|
.libs/
|
||||||
|
/Makefile
|
||||||
|
@@ -1,71 +1,51 @@
|
|||||||
# Top-level Mesa makefile
|
# Copyright © 2012 Intel Corporation
|
||||||
|
#
|
||||||
TOP = .
|
# Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
# copy of this software and associated documentation files (the "Software"),
|
||||||
SUBDIRS = src
|
# to deal in the Software without restriction, including without limitation
|
||||||
|
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
# and/or sell copies of the Software, and to permit persons to whom the
|
||||||
# The git command below generates an empty string when we're not
|
# Software is furnished to do so, subject to the following conditions:
|
||||||
# building in a GIT tree (i.e., building from a release tarball).
|
#
|
||||||
default: $(TOP)/configs/current
|
# The above copyright notice and this permission notice (including the next
|
||||||
@$(TOP)/bin/extract_git_sha1
|
# paragraph) shall be included in all copies or substantial portions of the
|
||||||
@for dir in $(SUBDIRS) ; do \
|
# Software.
|
||||||
if [ -d $$dir ] ; then \
|
#
|
||||||
(cd $$dir && $(MAKE)) || exit 1 ; \
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
fi \
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
done
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
all: default
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
|
||||||
|
# IN THE SOFTWARE.
|
||||||
|
|
||||||
|
SUBDIRS = src tests
|
||||||
|
|
||||||
doxygen:
|
doxygen:
|
||||||
cd doxygen && $(MAKE)
|
cd doxygen && $(MAKE)
|
||||||
|
|
||||||
check:
|
check-local:
|
||||||
make -C src/glsl/tests check
|
$(MAKE) -C src/glsl/tests check
|
||||||
make -C tests check
|
|
||||||
|
|
||||||
clean:
|
clean-local:
|
||||||
-@touch $(TOP)/configs/current
|
-@touch $(top_builddir)/configs/current
|
||||||
-@for dir in $(SUBDIRS) ; do \
|
-@for dir in $(SUBDIRS) ; do \
|
||||||
if [ -d $$dir ] ; then \
|
if [ -d $$dir ] ; then \
|
||||||
(cd $$dir && $(MAKE) clean) ; \
|
(cd $$dir && $(MAKE) clean) ; \
|
||||||
fi \
|
fi \
|
||||||
done
|
done
|
||||||
-@test -s $(TOP)/configs/current || rm -f $(TOP)/configs/current
|
-@test -s $(top_builddir)/configs/current || rm -f $(top_builddir)/configs/current
|
||||||
|
|
||||||
|
|
||||||
realclean: clean
|
|
||||||
|
distclean-local:
|
||||||
-rm -rf lib*
|
-rm -rf lib*
|
||||||
-rm -f $(TOP)/configs/current
|
-rm -f $(top_builddir)/configs/current
|
||||||
-rm -f $(TOP)/configs/autoconf
|
-rm -f $(top_builddir)/configs/autoconf
|
||||||
-rm -rf autom4te.cache
|
|
||||||
-find . '(' -name '*.o' -o -name '*.a' -o -name '*.so' -o \
|
-find . '(' -name '*.o' -o -name '*.a' -o -name '*.so' -o \
|
||||||
-name depend -o -name depend.bak ')' -exec rm -f '{}' ';'
|
-name depend -o -name depend.bak ')' -exec rm -f '{}' ';'
|
||||||
|
|
||||||
|
.PHONY: doxygen
|
||||||
distclean: realclean
|
|
||||||
|
|
||||||
|
|
||||||
install:
|
|
||||||
@for dir in $(SUBDIRS) ; do \
|
|
||||||
if [ -d $$dir ] ; then \
|
|
||||||
(cd $$dir && $(MAKE) install) || exit 1 ; \
|
|
||||||
fi \
|
|
||||||
done
|
|
||||||
|
|
||||||
|
|
||||||
.PHONY: default doxygen clean realclean distclean install check
|
|
||||||
|
|
||||||
# If there's no current configuration file
|
|
||||||
$(TOP)/configs/current:
|
|
||||||
@echo
|
|
||||||
@echo
|
|
||||||
@echo "Please run './configure' then 'make'"
|
|
||||||
@echo "See './configure --help' for details"
|
|
||||||
@echo
|
|
||||||
@echo "(ignore the following error message)"
|
|
||||||
@exit 1
|
|
||||||
|
|
||||||
# Rules for making release tarballs
|
# Rules for making release tarballs
|
||||||
|
|
||||||
@@ -99,7 +79,7 @@ IGNORE_FILES = \
|
|||||||
|
|
||||||
|
|
||||||
parsers: configure
|
parsers: configure
|
||||||
-@touch $(TOP)/configs/current
|
-@touch $(top_builddir)/configs/current
|
||||||
$(MAKE) -C src/glsl glsl_parser.cpp glsl_parser.h glsl_lexer.cpp
|
$(MAKE) -C src/glsl glsl_parser.cpp glsl_parser.h glsl_lexer.cpp
|
||||||
$(MAKE) -C src/glsl/glcpp glcpp-lex.c glcpp-parse.c glcpp-parse.h
|
$(MAKE) -C src/glsl/glcpp glcpp-lex.c glcpp-parse.c glcpp-parse.h
|
||||||
$(MAKE) -C src/mesa program/lex.yy.c program/program_parse.tab.c program/program_parse.tab.h
|
$(MAKE) -C src/mesa program/lex.yy.c program/program_parse.tab.c program/program_parse.tab.h
|
||||||
@@ -107,21 +87,11 @@ parsers: configure
|
|||||||
# Everything for new a Mesa release:
|
# Everything for new a Mesa release:
|
||||||
ARCHIVES = $(PACKAGE_NAME).tar.gz \
|
ARCHIVES = $(PACKAGE_NAME).tar.gz \
|
||||||
$(PACKAGE_NAME).tar.bz2 \
|
$(PACKAGE_NAME).tar.bz2 \
|
||||||
$(PACKAGE_NAME).zip \
|
$(PACKAGE_NAME).zip
|
||||||
|
|
||||||
tarballs: md5
|
tarballs: md5
|
||||||
rm -f ../$(PACKAGE_DIR) $(PACKAGE_NAME).tar
|
rm -f ../$(PACKAGE_DIR) $(PACKAGE_NAME).tar
|
||||||
|
|
||||||
# Helper for autoconf builds
|
|
||||||
ACLOCAL = aclocal
|
|
||||||
ACLOCAL_FLAGS =
|
|
||||||
AUTOCONF = autoconf
|
|
||||||
AC_FLAGS =
|
|
||||||
aclocal.m4: configure.ac acinclude.m4
|
|
||||||
$(ACLOCAL) $(ACLOCAL_FLAGS)
|
|
||||||
configure: configure.ac aclocal.m4 acinclude.m4
|
|
||||||
$(AUTOCONF) $(AC_FLAGS)
|
|
||||||
|
|
||||||
manifest.txt: .git
|
manifest.txt: .git
|
||||||
( \
|
( \
|
||||||
ls -1 $(EXTRA_FILES) ; \
|
ls -1 $(EXTRA_FILES) ; \
|
||||||
@@ -151,6 +121,4 @@ md5: $(ARCHIVES)
|
|||||||
@-md5sum $(PACKAGE_NAME).tar.bz2
|
@-md5sum $(PACKAGE_NAME).tar.bz2
|
||||||
@-md5sum $(PACKAGE_NAME).zip
|
@-md5sum $(PACKAGE_NAME).zip
|
||||||
|
|
||||||
am--refresh:
|
.PHONY: tarballs md5
|
||||||
|
|
||||||
.PHONY: tarballs md5 am--refresh
|
|
@@ -1,20 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
if [ ! -f src/mesa/main/git_sha1.h ]; then
|
|
||||||
touch src/mesa/main/git_sha1.h
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ ! -d .git ]; then
|
|
||||||
exit
|
|
||||||
fi
|
|
||||||
|
|
||||||
if which git > /dev/null; then
|
|
||||||
# Extract the 7-digit "short" SHA1 for the current HEAD, convert
|
|
||||||
# it to a string, and wrap it in a #define. This is used in
|
|
||||||
# src/mesa/main/version.c to put the GIT SHA1 in the GL_VERSION string.
|
|
||||||
git log -n 1 --oneline |\
|
|
||||||
sed 's/^\([^ ]*\) .*/#define MESA_GIT_SHA1 "git-\1"/' \
|
|
||||||
> src/mesa/main/git_sha1.h.tmp
|
|
||||||
if ! cmp -s src/mesa/main/git_sha1.h.tmp src/mesa/main/git_sha1.h; then
|
|
||||||
mv src/mesa/main/git_sha1.h.tmp src/mesa/main/git_sha1.h
|
|
||||||
fi
|
|
||||||
fi
|
|
@@ -2130,6 +2130,7 @@ CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
|
|||||||
|
|
||||||
dnl Substitute the config
|
dnl Substitute the config
|
||||||
AC_CONFIG_FILES([configs/autoconf
|
AC_CONFIG_FILES([configs/autoconf
|
||||||
|
Makefile
|
||||||
src/gallium/auxiliary/pipe-loader/Makefile
|
src/gallium/auxiliary/pipe-loader/Makefile
|
||||||
src/gallium/state_trackers/clover/Makefile
|
src/gallium/state_trackers/clover/Makefile
|
||||||
src/gallium/drivers/Makefile
|
src/gallium/drivers/Makefile
|
||||||
|
@@ -36,6 +36,23 @@ MESA_CXXFLAGS := $(LLVM_CFLAGS) $(CXXFLAGS)
|
|||||||
# then convenience libs (.a) and finally the device drivers:
|
# then convenience libs (.a) and finally the device drivers:
|
||||||
default: $(DEPENDS) asm_subdirs $(MESA_LIBS) driver_subdirs
|
default: $(DEPENDS) asm_subdirs $(MESA_LIBS) driver_subdirs
|
||||||
|
|
||||||
|
.PHONY: main/git_sha1.h.tmp
|
||||||
|
main/git_sha1.h.tmp:
|
||||||
|
@touch main/git_sha1.h.tmp
|
||||||
|
@if test -d ../../.git; then \
|
||||||
|
if which git > /dev/null; then \
|
||||||
|
git log -n 1 --oneline | \
|
||||||
|
sed 's/^\([^ ]*\) .*/#define MESA_GIT_SHA1 "git-\1"/' \
|
||||||
|
> main/git_sha1.h.tmp ; \
|
||||||
|
fi \
|
||||||
|
fi
|
||||||
|
|
||||||
|
main/git_sha1.h: main/git_sha1.h.tmp
|
||||||
|
@echo "updating main/git_sha1.h"
|
||||||
|
@if ! cmp -s main/git_sha1.h.tmp main/git_sha1.h; then \
|
||||||
|
mv main/git_sha1.h.tmp main/git_sha1.h ;\
|
||||||
|
fi
|
||||||
|
|
||||||
# include glapi_gen.mk for generating glapi headers for GLES
|
# include glapi_gen.mk for generating glapi headers for GLES
|
||||||
GLAPI := $(TOP)/src/mapi/glapi/gen
|
GLAPI := $(TOP)/src/mapi/glapi/gen
|
||||||
include $(GLAPI)/glapi_gen.mk
|
include $(GLAPI)/glapi_gen.mk
|
||||||
|
Reference in New Issue
Block a user