automake: Move top-level makefile to automake.
authorEric Anholt <eric@anholt.net>
Tue, 15 May 2012 01:38:54 +0000 (18:38 -0700)
committerEric Anholt <eric@anholt.net>
Mon, 11 Jun 2012 16:28:00 +0000 (09:28 -0700)
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>
.gitignore
Makefile [deleted file]
Makefile.am [new file with mode: 0644]
bin/extract_git_sha1 [deleted file]
configure.ac
src/mesa/Makefile

index 717d45d236a40eb5f6eb16399c9feebf0241ddab..f481dc47e9140e7e7d8646346fb8f102d4d7b9c8 100644 (file)
@@ -40,3 +40,4 @@ Makefile.in
 .dir-locals.el
 .deps/
 .libs/
+/Makefile
diff --git a/Makefile b/Makefile
deleted file mode 100644 (file)
index 2a71ec8..0000000
--- a/Makefile
+++ /dev/null
@@ -1,156 +0,0 @@
-# Top-level Mesa makefile
-
-TOP = .
-
-SUBDIRS = src
-
-
-# The git command below generates an empty string when we're not
-# building in a GIT tree (i.e., building from a release tarball).
-default: $(TOP)/configs/current
-       @$(TOP)/bin/extract_git_sha1
-       @for dir in $(SUBDIRS) ; do \
-               if [ -d $$dir ] ; then \
-                       (cd $$dir && $(MAKE)) || exit 1 ; \
-               fi \
-       done
-
-all: default
-
-
-doxygen:
-       cd doxygen && $(MAKE)
-
-check:
-       make -C src/glsl/tests check
-       make -C tests check
-
-clean:
-       -@touch $(TOP)/configs/current
-       -@for dir in $(SUBDIRS) ; do \
-               if [ -d $$dir ] ; then \
-                       (cd $$dir && $(MAKE) clean) ; \
-               fi \
-       done
-       -@test -s $(TOP)/configs/current || rm -f $(TOP)/configs/current
-
-
-realclean: clean
-       -rm -rf lib*
-       -rm -f $(TOP)/configs/current
-       -rm -f $(TOP)/configs/autoconf
-       -rm -rf autom4te.cache
-       -find . '(' -name '*.o' -o -name '*.a' -o -name '*.so' -o \
-         -name depend -o -name depend.bak ')' -exec rm -f '{}' ';'
-
-
-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
-
-PACKAGE_VERSION=8.1-devel
-PACKAGE_DIR = Mesa-$(PACKAGE_VERSION)
-PACKAGE_NAME = MesaLib-$(PACKAGE_VERSION)
-
-EXTRA_FILES = \
-       aclocal.m4                                      \
-       configure                                       \
-       tests/Makefile.in                               \
-       tests/glx/Makefile.in                           \
-       src/glsl/glsl_parser.cpp                        \
-       src/glsl/glsl_parser.h                          \
-       src/glsl/glsl_lexer.cpp                         \
-       src/glsl/glcpp/glcpp-lex.c                      \
-       src/glsl/glcpp/glcpp-parse.c                    \
-       src/glsl/glcpp/glcpp-parse.h                    \
-       src/mesa/main/api_exec_es1.c                    \
-       src/mesa/main/api_exec_es1_dispatch.h           \
-       src/mesa/main/api_exec_es1_remap_helper.h       \
-       src/mesa/main/api_exec_es2.c                    \
-       src/mesa/main/api_exec_es2_dispatch.h           \
-       src/mesa/main/api_exec_es2_remap_helper.h       \
-       src/mesa/program/lex.yy.c                       \
-       src/mesa/program/program_parse.tab.c            \
-       src/mesa/program/program_parse.tab.h
-
-IGNORE_FILES = \
-       -x autogen.sh
-
-
-parsers: configure
-       -@touch $(TOP)/configs/current
-       $(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/mesa program/lex.yy.c program/program_parse.tab.c program/program_parse.tab.h
-
-# Everything for new a Mesa release:
-ARCHIVES = $(PACKAGE_NAME).tar.gz \
-       $(PACKAGE_NAME).tar.bz2 \
-       $(PACKAGE_NAME).zip \
-
-tarballs: md5
-       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
-       ( \
-               ls -1 $(EXTRA_FILES) ; \
-               git ls-files $(IGNORE_FILES) \
-       ) | sed -e '/^\(.*\/\)\?\./d' -e "s@^@$(PACKAGE_DIR)/@" > $@
-
-../$(PACKAGE_DIR):
-       ln -s $(PWD) $@
-
-$(PACKAGE_NAME).tar: parsers ../$(PACKAGE_DIR) manifest.txt
-       cd .. ; tar -cf $(PACKAGE_DIR)/$(PACKAGE_NAME).tar -T $(PACKAGE_DIR)/manifest.txt
-
-$(PACKAGE_NAME).tar.gz: $(PACKAGE_NAME).tar ../$(PACKAGE_DIR)
-       gzip --stdout --best $(PACKAGE_NAME).tar > $(PACKAGE_NAME).tar.gz
-
-$(PACKAGE_NAME).tar.bz2: $(PACKAGE_NAME).tar
-       bzip2 --stdout --best $(PACKAGE_NAME).tar > $(PACKAGE_NAME).tar.bz2
-
-$(PACKAGE_NAME).zip: parsers ../$(PACKAGE_DIR) manifest.txt
-       rm -f $(PACKAGE_NAME).zip ; \
-       cd .. ; \
-       zip -q -@ $(PACKAGE_NAME).zip < $(PACKAGE_DIR)/manifest.txt ; \
-       mv $(PACKAGE_NAME).zip $(PACKAGE_DIR)
-
-md5: $(ARCHIVES)
-       @-md5sum $(PACKAGE_NAME).tar.gz
-       @-md5sum $(PACKAGE_NAME).tar.bz2
-       @-md5sum $(PACKAGE_NAME).zip
-
-am--refresh:
-
-.PHONY: tarballs md5 am--refresh
diff --git a/Makefile.am b/Makefile.am
new file mode 100644 (file)
index 0000000..59fd9b5
--- /dev/null
@@ -0,0 +1,124 @@
+# Copyright © 2012 Intel Corporation
+#
+# Permission is hereby granted, free of charge, to any person obtaining a
+# copy of this software and associated documentation files (the "Software"),
+# 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
+# Software is furnished to do so, subject to the following conditions:
+#
+# The above copyright notice and this permission notice (including the next
+# paragraph) shall be included in all copies or substantial portions of the
+# Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+# 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:
+       cd doxygen && $(MAKE)
+
+check-local:
+       $(MAKE) -C src/glsl/tests check
+
+clean-local:
+       -@touch $(top_builddir)/configs/current
+       -@for dir in $(SUBDIRS) ; do \
+               if [ -d $$dir ] ; then \
+                       (cd $$dir && $(MAKE) clean) ; \
+               fi \
+       done
+       -@test -s $(top_builddir)/configs/current || rm -f $(top_builddir)/configs/current
+
+
+
+distclean-local:
+       -rm -rf lib*
+       -rm -f $(top_builddir)/configs/current
+       -rm -f $(top_builddir)/configs/autoconf
+       -find . '(' -name '*.o' -o -name '*.a' -o -name '*.so' -o \
+         -name depend -o -name depend.bak ')' -exec rm -f '{}' ';'
+
+.PHONY: doxygen
+
+# Rules for making release tarballs
+
+PACKAGE_VERSION=8.1-devel
+PACKAGE_DIR = Mesa-$(PACKAGE_VERSION)
+PACKAGE_NAME = MesaLib-$(PACKAGE_VERSION)
+
+EXTRA_FILES = \
+       aclocal.m4                                      \
+       configure                                       \
+       tests/Makefile.in                               \
+       tests/glx/Makefile.in                           \
+       src/glsl/glsl_parser.cpp                        \
+       src/glsl/glsl_parser.h                          \
+       src/glsl/glsl_lexer.cpp                         \
+       src/glsl/glcpp/glcpp-lex.c                      \
+       src/glsl/glcpp/glcpp-parse.c                    \
+       src/glsl/glcpp/glcpp-parse.h                    \
+       src/mesa/main/api_exec_es1.c                    \
+       src/mesa/main/api_exec_es1_dispatch.h           \
+       src/mesa/main/api_exec_es1_remap_helper.h       \
+       src/mesa/main/api_exec_es2.c                    \
+       src/mesa/main/api_exec_es2_dispatch.h           \
+       src/mesa/main/api_exec_es2_remap_helper.h       \
+       src/mesa/program/lex.yy.c                       \
+       src/mesa/program/program_parse.tab.c            \
+       src/mesa/program/program_parse.tab.h
+
+IGNORE_FILES = \
+       -x autogen.sh
+
+
+parsers: configure
+       -@touch $(top_builddir)/configs/current
+       $(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/mesa program/lex.yy.c program/program_parse.tab.c program/program_parse.tab.h
+
+# Everything for new a Mesa release:
+ARCHIVES = $(PACKAGE_NAME).tar.gz \
+       $(PACKAGE_NAME).tar.bz2 \
+       $(PACKAGE_NAME).zip
+
+tarballs: md5
+       rm -f ../$(PACKAGE_DIR) $(PACKAGE_NAME).tar
+
+manifest.txt: .git
+       ( \
+               ls -1 $(EXTRA_FILES) ; \
+               git ls-files $(IGNORE_FILES) \
+       ) | sed -e '/^\(.*\/\)\?\./d' -e "s@^@$(PACKAGE_DIR)/@" > $@
+
+../$(PACKAGE_DIR):
+       ln -s $(PWD) $@
+
+$(PACKAGE_NAME).tar: parsers ../$(PACKAGE_DIR) manifest.txt
+       cd .. ; tar -cf $(PACKAGE_DIR)/$(PACKAGE_NAME).tar -T $(PACKAGE_DIR)/manifest.txt
+
+$(PACKAGE_NAME).tar.gz: $(PACKAGE_NAME).tar ../$(PACKAGE_DIR)
+       gzip --stdout --best $(PACKAGE_NAME).tar > $(PACKAGE_NAME).tar.gz
+
+$(PACKAGE_NAME).tar.bz2: $(PACKAGE_NAME).tar
+       bzip2 --stdout --best $(PACKAGE_NAME).tar > $(PACKAGE_NAME).tar.bz2
+
+$(PACKAGE_NAME).zip: parsers ../$(PACKAGE_DIR) manifest.txt
+       rm -f $(PACKAGE_NAME).zip ; \
+       cd .. ; \
+       zip -q -@ $(PACKAGE_NAME).zip < $(PACKAGE_DIR)/manifest.txt ; \
+       mv $(PACKAGE_NAME).zip $(PACKAGE_DIR)
+
+md5: $(ARCHIVES)
+       @-md5sum $(PACKAGE_NAME).tar.gz
+       @-md5sum $(PACKAGE_NAME).tar.bz2
+       @-md5sum $(PACKAGE_NAME).zip
+
+.PHONY: tarballs md5
diff --git a/bin/extract_git_sha1 b/bin/extract_git_sha1
deleted file mode 100755 (executable)
index 8283870..0000000
+++ /dev/null
@@ -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
index ec4fa431fad8553cb5368fed44d93487dbfa8f16..0801c6c9142a19ea39058da5f13397f83f94b586 100644 (file)
@@ -2130,6 +2130,7 @@ CXXFLAGS="$CXXFLAGS $USER_CXXFLAGS"
 
 dnl Substitute the config
 AC_CONFIG_FILES([configs/autoconf
+               Makefile
                src/gallium/auxiliary/pipe-loader/Makefile
                src/gallium/state_trackers/clover/Makefile
                src/gallium/drivers/Makefile
index 05aea8d9307b4b2c630fce19e604326f15fa6751..845b524e6c58a5683d49081e82e5d5082b5d25fd 100644 (file)
@@ -36,6 +36,23 @@ MESA_CXXFLAGS := $(LLVM_CFLAGS) $(CXXFLAGS)
 # then convenience libs (.a) and finally the device drivers:
 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
 GLAPI := $(TOP)/src/mapi/glapi/gen
 include $(GLAPI)/glapi_gen.mk