From: Eygene Ryabinkin <rea-git@codelabs.ru>
To: Junio C Hamano <junkio@cox.net>
Cc: Jakub Narebski <jnareb@gmail.com>,
Johannes Schindelin <Johannes.Schindelin@gmx.de>,
git@vger.kernel.org
Subject: [PATCH] Add --with-tcltk and --without-tcltk to configure.
Date: Wed, 28 Mar 2007 13:12:09 +0400 [thread overview]
Message-ID: <20070328091209.GQ14837@codelabs.ru> (raw)
In-Reply-To: <7vps6um8wv.fsf@assigned-by-dhcp.cox.net>
--with-tcltk enables the search of the Tcl/Tk interpreter. If no
interpreter is found then Tcl/Tk dependend parts are disabled.
--without-tcltk unconditionally disables Tcl/Tk dependent parts.
The original behaviour is not changed: bare './configure' just
installs the Tcl/Tk part doing no checks for the interpreter.
Makefile knob named NO_TCLTK was introduced. It prevents the build
and installation of the Tcl/Tk dependent parts.
Signed-off-by: Eygene Ryabinkin <rea-git@codelabs.ru>
---
Makefile | 31 +++++++++++++++++++++++++++++--
config.mak.in | 1 +
configure.ac | 26 ++++++++++++++++++++++++++
git-gui/Makefile | 3 +++
4 files changed, 59 insertions(+), 2 deletions(-)
diff --git a/Makefile b/Makefile
index a294ec8..bfde029 100644
--- a/Makefile
+++ b/Makefile
@@ -112,6 +112,12 @@ all::
#
# Define WITH_P4IMPORT to build and install Python git-p4import script.
#
+# Define NO_TCLTK if you do not want Tcl/Tk GUI.
+#
+# The TCLTK_PATH variable governs the location of the Tck/Tk interpreter.
+# If not set it defaults to the bare 'wish'. If it is set to the empty
+# string then NO_TCLTK will be forced (this is used by configure script).
+#
GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
@$(SHELL_PATH) ./GIT-VERSION-GEN
@@ -161,6 +167,7 @@ AR = ar
TAR = tar
INSTALL = install
RPMBUILD = rpmbuild
+TCLTK_PATH ?= wish
# sparse is architecture-neutral, which means that we need to tell it
# explicitly what architecture to check for. Fix this up for yours..
@@ -624,6 +631,10 @@ ifdef NO_PERL_MAKEMAKER
export NO_PERL_MAKEMAKER
endif
+ifeq ($(TCLTK_PATH),)
+NO_TCLTK=YesPlease
+endif
+
QUIET_SUBDIR0 = $(MAKE) -C # space to separate -C and subdir
QUIET_SUBDIR1 =
@@ -663,6 +674,7 @@ prefix_SQ = $(subst ','\'',$(prefix))
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH))
PYTHON_PATH_SQ = $(subst ','\'',$(PYTHON_PATH))
+TCLTK_PATH_SQ = $(subst ','\'',$(TCLTK_PATH))
LIBS = $(GITLIBS) $(EXTLIBS)
@@ -684,7 +696,9 @@ ifneq (,$X)
endif
all::
+ifndef NO_TCLTK
$(QUIET_SUBDIR0)git-gui $(QUIET_SUBDIR1) all
+endif
$(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' all
$(QUIET_SUBDIR0)templates $(QUIET_SUBDIR1)
@@ -918,10 +932,15 @@ install: all
$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(bindir_SQ)'
$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)'
$(INSTALL) $(ALL_PROGRAMS) '$(DESTDIR_SQ)$(gitexecdir_SQ)'
- $(INSTALL) git$X gitk '$(DESTDIR_SQ)$(bindir_SQ)'
+ $(INSTALL) git$X '$(DESTDIR_SQ)$(bindir_SQ)'
+ifndef NO_TCLTK
+ $(INSTALL) gitk '$(DESTDIR_SQ)$(bindir_SQ)'
+endif
$(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install
$(MAKE) -C perl prefix='$(prefix_SQ)' install
- $(MAKE) -C git-gui install
+ifndef NO_TCLTK
+ $(MAKE) -C git-gui TCLTK_PATH='$(TCLTK_PATH_SQ)' install
+endif
if test 'z$(bindir_SQ)' != 'z$(gitexecdir_SQ)'; \
then \
ln -f '$(DESTDIR_SQ)$(bindir_SQ)/git$X' \
@@ -955,11 +974,17 @@ dist: git.spec git-archive
@mkdir -p $(GIT_TARNAME)
@cp git.spec $(GIT_TARNAME)
@echo $(GIT_VERSION) > $(GIT_TARNAME)/version
+ifndef NO_TCLTK
@$(MAKE) -C git-gui TARDIR=../$(GIT_TARNAME)/git-gui dist-version
$(TAR) rf $(GIT_TARNAME).tar \
$(GIT_TARNAME)/git.spec \
$(GIT_TARNAME)/version \
$(GIT_TARNAME)/git-gui/version
+else
+ $(TAR) rf $(GIT_TARNAME).tar \
+ $(GIT_TARNAME)/git.spec \
+ $(GIT_TARNAME)/version
+endif
@rm -rf $(GIT_TARNAME)
gzip -f -9 $(GIT_TARNAME).tar
@@ -1000,7 +1025,9 @@ clean:
rm -f gitweb/gitweb.cgi
$(MAKE) -C Documentation/ clean
$(MAKE) -C perl clean
+ifndef NO_TCLTK
$(MAKE) -C git-gui clean
+endif
$(MAKE) -C templates/ clean
$(MAKE) -C t/ clean
rm -f GIT-VERSION-FILE GIT-CFLAGS
diff --git a/config.mak.in b/config.mak.in
index 9a57840..eb9d7a5 100644
--- a/config.mak.in
+++ b/config.mak.in
@@ -6,6 +6,7 @@ CFLAGS = @CFLAGS@
AR = @AR@
TAR = @TAR@
#INSTALL = @INSTALL@ # needs install-sh or install.sh in sources
+TCLTK_PATH = @TCLTK_PATH@
prefix = @prefix@
exec_prefix = @exec_prefix@
diff --git a/configure.ac b/configure.ac
index 3a8e778..43a6769 100644
--- a/configure.ac
+++ b/configure.ac
@@ -75,6 +75,14 @@ GIT_ARG_SET_PATH(shell)
# Define PERL_PATH to provide path to Perl.
GIT_ARG_SET_PATH(perl)
#
+# Declare the with-tcltk/without-tcltk options.
+AC_ARG_WITH(tcltk,
+AS_HELP_STRING([--with-tcltk],[use Tcl/Tk GUI (default is YES)])
+AS_HELP_STRING([],[ARG is the full path to the Tcl/Tk interpreter.])
+AS_HELP_STRING([],[Bare --with-tcltk will make the GUI part only if])
+AS_HELP_STRING([],[Tcl/Tk interpreter will be found in a system.]),\
+GIT_PARSE_WITH(tcltk))
+#
## Checks for programs.
@@ -84,6 +92,24 @@ AC_PROG_CC([cc gcc])
#AC_PROG_INSTALL # needs install-sh or install.sh in sources
AC_CHECK_TOOL(AR, ar, :)
AC_CHECK_PROGS(TAR, [gtar tar])
+# TCLTK_PATH will be set to some value if we want Tcl/Tk
+# or will be empty otherwise.
+if test -z "$NO_TCLTK"; then
+ if test "$with_tcltk" = ""; then
+ # No Tcl/Tk switches given. Do not check for Tcl/Tk, use bare 'wish'.
+ TCLTK_PATH=wish
+ AC_SUBST(TCLTK_PATH)
+ elif test "$with_tcltk" = "yes"; then
+ # Tcl/Tk check requested.
+ AC_CHECK_PROGS(TCLTK_PATH, [wish], )
+ elif ! test -x "$with_tcltk"; then
+ AC_MSG_ERROR([Tcl/Tk interpreter was not found in $with_tcltk])
+ else
+ AC_MSG_RESULT([Using Tcl/Tk interpreter $with_tcltk])
+ TCLTK_PATH="$with_tcltk"
+ AC_SUBST(TCLTK_PATH)
+ fi
+fi
## Checks for libraries.
AC_MSG_NOTICE([CHECKS for libraries])
diff --git a/git-gui/Makefile b/git-gui/Makefile
index b82789e..733c07e 100644
--- a/git-gui/Makefile
+++ b/git-gui/Makefile
@@ -28,6 +28,8 @@ ifndef V
QUIET_BUILT_IN = @echo ' ' BUILTIN $@;
endif
+TCLTK_PATH ?= wish
+
ifeq ($(findstring $(MAKEFLAGS),s),s)
QUIET_GEN =
QUIET_BUILT_IN =
@@ -36,6 +38,7 @@ endif
DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
gitexecdir_SQ = $(subst ','\'',$(gitexecdir))
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
+TCLTK_PATH_SQ = $(subst ','\'',$(TCLTK_PATH))
$(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
$(QUIET_GEN)rm -f $@ $@+ && \
--
1.5.0.3-dirty
next prev parent reply other threads:[~2007-03-28 9:12 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-03-20 11:45 [PATCH] Added make options NO_GUI and WITH_P4IMPORT Eygene Ryabinkin
2007-03-21 0:35 ` Jakub Narebski
2007-03-21 5:14 ` Eygene Ryabinkin
2007-03-21 11:16 ` Johannes Schindelin
2007-03-21 11:50 ` Eygene Ryabinkin
2007-03-21 14:25 ` Johannes Schindelin
2007-03-21 14:38 ` Paolo Bonzini
2007-03-21 14:42 ` Eygene Ryabinkin
2007-03-21 14:49 ` Paolo Bonzini
2007-03-21 14:58 ` Alex Riesen
2007-03-24 23:16 ` Jakub Narebski
2007-03-21 14:40 ` Eygene Ryabinkin
2007-03-21 15:35 ` Johannes Schindelin
2007-03-21 16:01 ` Eygene Ryabinkin
2007-03-21 16:17 ` Junio C Hamano
2007-03-26 7:31 ` Eygene Ryabinkin
2007-03-26 7:32 ` [PATCH] Added options NO_TCLTK, WITH_P4IMPORT and --with-tcltk/--without-tcltk Eygene Ryabinkin
2007-03-26 8:27 ` Junio C Hamano
2007-03-27 10:26 ` [PATCH] Add the WITH_P4IMPORT knob to the Makefile Eygene Ryabinkin
2007-03-27 10:54 ` Junio C Hamano
2007-03-27 11:22 ` Eygene Ryabinkin
2007-03-27 11:25 ` [PATCH] Added git-p4 package to the list of git RPMs Eygene Ryabinkin
2007-03-27 16:03 ` [PATCH] Remove unused WITH_OWN_SUBPROCESS_PY from RPM spec Brian Gernhardt
2007-04-04 18:30 ` [PATCH] Added git-p4 package to the list of git RPMs Junio C Hamano
2007-04-05 12:50 ` Eygene Ryabinkin
2007-03-26 8:30 ` [PATCH] Added options NO_TCLTK, WITH_P4IMPORT and --with-tcltk/--without-tcltk Jakub Narebski
2007-03-26 8:36 ` Junio C Hamano
2007-03-26 10:03 ` Eygene Ryabinkin
2007-03-27 4:12 ` Junio C Hamano
2007-03-27 6:59 ` Eygene Ryabinkin
2007-03-27 10:24 ` [PATCH] Added configure options --with-tcltk/--without-tcltk Eygene Ryabinkin
2007-03-27 10:53 ` Junio C Hamano
2007-03-27 11:07 ` Eygene Ryabinkin
2007-03-28 1:52 ` Junio C Hamano
2007-03-28 9:12 ` Eygene Ryabinkin [this message]
2007-03-28 9:13 ` [PATCH] Added Tcl/Tk interpreter path rewriting for the GUI tools Eygene Ryabinkin
2007-03-28 19:48 ` [PATCH] Add --with-tcltk and --without-tcltk to configure Junio C Hamano
2007-03-29 7:44 ` Eygene Ryabinkin
2007-03-29 8:00 ` Junio C Hamano
2007-03-29 8:29 ` Eygene Ryabinkin
2007-03-29 8:35 ` Junio C Hamano
2007-03-29 8:58 ` Eygene Ryabinkin
2007-03-29 9:12 ` Tom Prince
2007-03-29 10:06 ` Eygene Ryabinkin
2007-03-29 10:06 ` [PATCH] Eliminate checks of user-specified Tcl/Tk interpreter Eygene Ryabinkin
2007-03-29 10:07 ` [PATCH] Added correct Python path to the RPM specfile Eygene Ryabinkin
2007-03-26 8:25 ` [PATCH] Added make options NO_GUI and WITH_P4IMPORT Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070328091209.GQ14837@codelabs.ru \
--to=rea-git@codelabs.ru \
--cc=Johannes.Schindelin@gmx.de \
--cc=git@vger.kernel.org \
--cc=jnareb@gmail.com \
--cc=junkio@cox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).