From 657b062dbab2e17c750050d76de3e76ea28e603e Mon Sep 17 00:00:00 2001 From: Jakub Narebski Date: Thu, 3 Aug 2006 00:38:11 +0200 Subject: [PATCH 1/3] autoconf: Add support for setting SHELL_PATH and PERL_PATH This patch adds support for setting SHELL_PATH and PERL_PATH to autoconf generated ./configure script via --with-shell=PATH and --with-perl=PATH options. Signed-off-by: Jakub Narebski Signed-off-by: Junio C Hamano --- configure.ac | 35 +++++++++++++++++++++++++++++++++-- 1 file changed, 33 insertions(+), 2 deletions(-) diff --git a/configure.ac b/configure.ac index c1f7751e6f..1669e40e26 100644 --- a/configure.ac +++ b/configure.ac @@ -19,17 +19,47 @@ echo "# ${config_append}. Generated by configure." > "${config_append}" # Append LINE to file ${config_append} AC_DEFUN([GIT_CONF_APPEND_LINE], [echo "$1" >> "${config_append}"])# GIT_CONF_APPEND_LINE +# +# GIT_ARG_SET_PATH(PROGRAM) +# ------------------------- +# Provide --with-PROGRAM=PATH option to set PATH to PROGRAM +AC_DEFUN([GIT_ARG_SET_PATH], +[AC_ARG_WITH([$1], + [AS_HELP_STRING([--with-$1=PATH], + [provide PATH to $1])], + [GIT_CONF_APPEND_PATH($1)],[]) +])# GIT_ARG_SET_PATH +# +# GIT_CONF_APPEND_PATH(PROGRAM) +# ------------------------------ +# Parse --with-PROGRAM=PATH option to set PROGRAM_PATH=PATH +# Used by GIT_ARG_SET_PATH(PROGRAM) +AC_DEFUN([GIT_CONF_APPEND_PATH], +[PROGRAM=m4_toupper($1); \ +if test "$withval" = "no"; then \ + AC_MSG_WARN([You cannot use git without $1]); \ +else \ + if test "$withval" = "yes"; then \ + AC_MSG_WARN([You should provide path for --with-$1=PATH]); \ + else \ + GIT_CONF_APPEND_LINE(${PROGRAM}_PATH=$withval); \ + fi; \ +fi; \ +]) # GIT_CONF_APPEND_PATH ## Checks for programs. AC_MSG_NOTICE([CHECKS for programs]) # +GIT_ARG_SET_PATH(shell) +GIT_ARG_SET_PATH(perl) +# +# Define NO_PYTHON if you want to lose all benefits of the recursive merge. +# Define PYTHON_PATH to provide path to Python. AC_PROG_CC #AC_PROG_INSTALL # needs install-sh or install.sh in sources AC_CHECK_TOOL(AR, ar, :) AC_CHECK_PROGS(TAR, [gtar tar]) -# -# Define NO_PYTHON if you want to lose all benefits of the recursive merge. ## Checks for libraries. @@ -127,6 +157,7 @@ AC_CHECK_FUNC(setenv,[], ## Site configuration ## --with-PACKAGE[=ARG] and --without-PACKAGE +# # Define NO_SVN_TESTS if you want to skip time-consuming SVN interopability # tests. These tests take up a significant amount of the total test time # but are not needed unless you plan to talk to SVN repos. From c4b1b1401cedefe480e32ceccd4ed678f9409e89 Mon Sep 17 00:00:00 2001 From: Jakub Narebski Date: Thu, 3 Aug 2006 00:38:56 +0200 Subject: [PATCH 2/3] autoconf: Move site configuration section earlier in configure.ac Move site configuration section, i.e. --with-PACKAGE[=ARG] and --without-PACKAGE, --enable-FEATURE[=ARG] and --disable-FEATURE options to the beginning of configure.ac file, just after definitions of macros. Signed-off-by: Jakub Narebski Signed-off-by: Junio C Hamano --- configure.ac | 100 +++++++++++++++++++++++++-------------------------- 1 file changed, 50 insertions(+), 50 deletions(-) diff --git a/configure.ac b/configure.ac index 1669e40e26..cfd1d4a0bd 100644 --- a/configure.ac +++ b/configure.ac @@ -48,6 +48,56 @@ fi; \ ]) # GIT_CONF_APPEND_PATH +## Site configuration +## --with-PACKAGE[=ARG] and --without-PACKAGE +# +# Define NO_SVN_TESTS if you want to skip time-consuming SVN interopability +# tests. These tests take up a significant amount of the total test time +# but are not needed unless you plan to talk to SVN repos. +# +# Define MOZILLA_SHA1 environment variable when running make to make use of +# a bundled SHA1 routine coming from Mozilla. It is GPL'd and should be fast +# on non-x86 architectures (e.g. PowerPC), while the OpenSSL version (default +# choice) has very fast version optimized for i586. +# +# Define PPC_SHA1 environment variable when running make to make use of +# a bundled SHA1 routine optimized for PowerPC. +# +# Define ARM_SHA1 environment variable when running make to make use of +# a bundled SHA1 routine optimized for ARM. +# +# Define NO_OPENSSL environment variable if you do not have OpenSSL. +# This also implies MOZILLA_SHA1. +# +# Define NO_CURL if you do not have curl installed. git-http-pull and +# git-http-push are not built, and you cannot use http:// and https:// +# transports. +# +# Define CURLDIR=/foo/bar if your curl header and library files are in +# /foo/bar/include and /foo/bar/lib directories. +# +# Define NO_EXPAT if you do not have expat installed. git-http-push is +# not built, and you cannot push using http:// and https:// transports. +# +# Define NO_MMAP if you want to avoid mmap. +# +# Define NO_PYTHON if you want to loose all benefits of the recursive merge. +# +## --enable-FEATURE[=ARG] and --disable-FEATURE +# Define COLLISION_CHECK below if you believe that SHA1's +# 1461501637330902918203684832716283019655932542976 hashes do not give you +# sufficient guarantee that no collisions between objects will ever happen. +# +# Define USE_NSEC below if you want git to care about sub-second file mtimes +# and ctimes. Note that you need recent glibc (at least 2.2.4) for this, and +# it will BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely +# randomly break unless your underlying filesystem supports those sub-second +# times (my ext3 doesn't). +# +# Define USE_STDEV below if you want git to care about the underlying device +# change being considered an inode change from the update-cache perspective. + + ## Checks for programs. AC_MSG_NOTICE([CHECKS for programs]) # @@ -155,56 +205,6 @@ AC_CHECK_FUNC(setenv,[], # a missing newline at the end of the file. -## Site configuration -## --with-PACKAGE[=ARG] and --without-PACKAGE -# -# Define NO_SVN_TESTS if you want to skip time-consuming SVN interopability -# tests. These tests take up a significant amount of the total test time -# but are not needed unless you plan to talk to SVN repos. -# -# Define MOZILLA_SHA1 environment variable when running make to make use of -# a bundled SHA1 routine coming from Mozilla. It is GPL'd and should be fast -# on non-x86 architectures (e.g. PowerPC), while the OpenSSL version (default -# choice) has very fast version optimized for i586. -# -# Define PPC_SHA1 environment variable when running make to make use of -# a bundled SHA1 routine optimized for PowerPC. -# -# Define ARM_SHA1 environment variable when running make to make use of -# a bundled SHA1 routine optimized for ARM. -# -# Define NO_OPENSSL environment variable if you do not have OpenSSL. -# This also implies MOZILLA_SHA1. -# -# Define NO_CURL if you do not have curl installed. git-http-pull and -# git-http-push are not built, and you cannot use http:// and https:// -# transports. -# -# Define CURLDIR=/foo/bar if your curl header and library files are in -# /foo/bar/include and /foo/bar/lib directories. -# -# Define NO_EXPAT if you do not have expat installed. git-http-push is -# not built, and you cannot push using http:// and https:// transports. -# -# Define NO_MMAP if you want to avoid mmap. -# -# Define NO_PYTHON if you want to loose all benefits of the recursive merge. -# -## --enable-FEATURE[=ARG] and --disable-FEATURE -# Define COLLISION_CHECK below if you believe that SHA1's -# 1461501637330902918203684832716283019655932542976 hashes do not give you -# sufficient guarantee that no collisions between objects will ever happen. -# -# Define USE_NSEC below if you want git to care about sub-second file mtimes -# and ctimes. Note that you need recent glibc (at least 2.2.4) for this, and -# it will BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely -# randomly break unless your underlying filesystem supports those sub-second -# times (my ext3 doesn't). -# -# Define USE_STDEV below if you want git to care about the underlying device -# change being considered an inode change from the update-cache perspective. - - ## Output files AC_CONFIG_FILES(["${config_file}":"${config_in}":"${config_append}"]) AC_OUTPUT From eb858c56cb9dcced05d61d47c0351b4f8768d379 Mon Sep 17 00:00:00 2001 From: Jakub Narebski Date: Thu, 3 Aug 2006 00:40:40 +0200 Subject: [PATCH 3/3] autoconf: Add support for setting PYTHON_PATH or NO_PYTHON This patch adds support for setting either PYTHON_PATH or NO_PYTHON to autoconf generated ./configure script via --with-python=PATH (sets PYTHON_PATH) or --without-python (sets NO_PYTHON). Autodetect PYTHON_PATH via AC_PATH_PROGS. Signed-off-by: Jakub Narebski Signed-off-by: Junio C Hamano --- configure.ac | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/configure.ac b/configure.ac index cfd1d4a0bd..0a54b44939 100644 --- a/configure.ac +++ b/configure.ac @@ -103,6 +103,18 @@ AC_MSG_NOTICE([CHECKS for programs]) # GIT_ARG_SET_PATH(shell) GIT_ARG_SET_PATH(perl) +AC_ARG_WITH(python,[AS_HELP_STRING([--with-python=PATH], [provide PATH to python]) +AS_HELP_STRING([--no-python], [don't use python scripts])], + [if test "$withval" = "no"; then \ + NO_PYTHON=YesPlease; \ + elif test "$withval" != "yes"; then \ + PYTHON_PATH=$withval; \ + fi; \ + ]) +AC_SUBST(NO_PYTHON) +AC_SUBST(PYTHON_PATH) + + # # Define NO_PYTHON if you want to lose all benefits of the recursive merge. # Define PYTHON_PATH to provide path to Python. @@ -110,6 +122,16 @@ AC_PROG_CC #AC_PROG_INSTALL # needs install-sh or install.sh in sources AC_CHECK_TOOL(AR, ar, :) AC_CHECK_PROGS(TAR, [gtar tar]) +if test -z "$NO_PYTHON"; then + AC_PATH_PROGS(PYTHON_PATH, [python2.4 python2.3 python2 python]) + if test -n "$PYTHON_PATH"; then + GIT_CONF_APPEND_LINE([PYTHON_PATH=@PYTHON_PATH@]) + else + GIT_CONF_APPEND_LINE([NO_PYTHON=@NO_PYTHON@]) + fi +else + GIT_CONF_APPEND_LINE([NO_PYTHON=@NO_PYTHON@]) +fi ## Checks for libraries.