Merge branch 'post1.5.1/tcltk'
* post1.5.1/tcltk: Optional Tck/Tk: ignore generated files. Eliminate checks of user-specified Tcl/Tk interpreter. Rewrite Tcl/Tk interpreter path for the GUI tools. Add --with-tcltk and --without-tcltk to configure. NO_TCLTK
This commit is contained in:
commit
80b6e39459
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,4 +1,5 @@
|
|||||||
GIT-CFLAGS
|
GIT-CFLAGS
|
||||||
|
GIT-GUI-VARS
|
||||||
GIT-VERSION-FILE
|
GIT-VERSION-FILE
|
||||||
git
|
git
|
||||||
git-add
|
git-add
|
||||||
@ -141,6 +142,7 @@ git-verify-tag
|
|||||||
git-whatchanged
|
git-whatchanged
|
||||||
git-write-tree
|
git-write-tree
|
||||||
git-core-*/?*
|
git-core-*/?*
|
||||||
|
gitk-wish
|
||||||
gitweb/gitweb.cgi
|
gitweb/gitweb.cgi
|
||||||
test-chmtime
|
test-chmtime
|
||||||
test-date
|
test-date
|
||||||
|
56
Makefile
56
Makefile
@ -112,6 +112,12 @@ all::
|
|||||||
#
|
#
|
||||||
# Define WITH_P4IMPORT to build and install Python git-p4import script.
|
# 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
|
GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
|
||||||
@$(SHELL_PATH) ./GIT-VERSION-GEN
|
@$(SHELL_PATH) ./GIT-VERSION-GEN
|
||||||
@ -161,6 +167,7 @@ AR = ar
|
|||||||
TAR = tar
|
TAR = tar
|
||||||
INSTALL = install
|
INSTALL = install
|
||||||
RPMBUILD = rpmbuild
|
RPMBUILD = rpmbuild
|
||||||
|
TCLTK_PATH = wish
|
||||||
|
|
||||||
# sparse is architecture-neutral, which means that we need to tell it
|
# sparse is architecture-neutral, which means that we need to tell it
|
||||||
# explicitly what architecture to check for. Fix this up for yours..
|
# explicitly what architecture to check for. Fix this up for yours..
|
||||||
@ -244,6 +251,12 @@ BUILT_INS = \
|
|||||||
# what 'all' will build and 'install' will install, in gitexecdir
|
# what 'all' will build and 'install' will install, in gitexecdir
|
||||||
ALL_PROGRAMS = $(PROGRAMS) $(SCRIPTS)
|
ALL_PROGRAMS = $(PROGRAMS) $(SCRIPTS)
|
||||||
|
|
||||||
|
# what 'all' will build but not install in gitexecdir
|
||||||
|
OTHER_PROGRAMS = git$X gitweb/gitweb.cgi
|
||||||
|
ifndef NO_TCLTK
|
||||||
|
OTHER_PROGRAMS += gitk-wish
|
||||||
|
endif
|
||||||
|
|
||||||
# Backward compatibility -- to be removed after 1.0
|
# Backward compatibility -- to be removed after 1.0
|
||||||
PROGRAMS += git-ssh-pull$X git-ssh-push$X
|
PROGRAMS += git-ssh-pull$X git-ssh-push$X
|
||||||
|
|
||||||
@ -624,6 +637,10 @@ ifdef NO_PERL_MAKEMAKER
|
|||||||
export NO_PERL_MAKEMAKER
|
export NO_PERL_MAKEMAKER
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifeq ($(TCLTK_PATH),)
|
||||||
|
NO_TCLTK=NoThanks
|
||||||
|
endif
|
||||||
|
|
||||||
QUIET_SUBDIR0 = $(MAKE) -C # space to separate -C and subdir
|
QUIET_SUBDIR0 = $(MAKE) -C # space to separate -C and subdir
|
||||||
QUIET_SUBDIR1 =
|
QUIET_SUBDIR1 =
|
||||||
|
|
||||||
@ -663,6 +680,7 @@ prefix_SQ = $(subst ','\'',$(prefix))
|
|||||||
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
|
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
|
||||||
PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH))
|
PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH))
|
||||||
PYTHON_PATH_SQ = $(subst ','\'',$(PYTHON_PATH))
|
PYTHON_PATH_SQ = $(subst ','\'',$(PYTHON_PATH))
|
||||||
|
TCLTK_PATH_SQ = $(subst ','\'',$(TCLTK_PATH))
|
||||||
|
|
||||||
LIBS = $(GITLIBS) $(EXTLIBS)
|
LIBS = $(GITLIBS) $(EXTLIBS)
|
||||||
|
|
||||||
@ -678,19 +696,27 @@ export prefix gitexecdir TAR INSTALL DESTDIR SHELL_PATH template_dir
|
|||||||
|
|
||||||
### Build rules
|
### Build rules
|
||||||
|
|
||||||
all:: $(ALL_PROGRAMS) $(BUILT_INS) git$X gitk gitweb/gitweb.cgi
|
all:: $(ALL_PROGRAMS) $(BUILT_INS) $(OTHER_PROGRAMS)
|
||||||
ifneq (,$X)
|
ifneq (,$X)
|
||||||
$(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) git$X)), rm -f '$p';)
|
$(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) git$X)), rm -f '$p';)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
all::
|
all::
|
||||||
$(QUIET_SUBDIR0)git-gui $(QUIET_SUBDIR1) all
|
ifndef NO_TCLTK
|
||||||
|
$(QUIET_SUBDIR0)git-gui TCLTK_PATH='$(TCLTK_PATH_SQ)' $(QUIET_SUBDIR1) all
|
||||||
|
endif
|
||||||
$(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' all
|
$(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' all
|
||||||
$(QUIET_SUBDIR0)templates $(QUIET_SUBDIR1)
|
$(QUIET_SUBDIR0)templates $(QUIET_SUBDIR1)
|
||||||
|
|
||||||
strip: $(PROGRAMS) git$X
|
strip: $(PROGRAMS) git$X
|
||||||
$(STRIP) $(STRIP_OPTS) $(PROGRAMS) git$X
|
$(STRIP) $(STRIP_OPTS) $(PROGRAMS) git$X
|
||||||
|
|
||||||
|
gitk-wish: gitk GIT-GUI-VARS
|
||||||
|
$(QUIET_GEN)rm -f $@ $@+ && \
|
||||||
|
sed -e '1,3s|^exec .* "$$0"|exec $(subst |,'\|',$(TCLTK_PATH_SQ)) "$$0"|' <gitk >$@+ && \
|
||||||
|
chmod +x $@+ && \
|
||||||
|
mv -f $@+ $@
|
||||||
|
|
||||||
git$X: git.c common-cmds.h $(BUILTIN_OBJS) $(GITLIBS) GIT-CFLAGS
|
git$X: git.c common-cmds.h $(BUILTIN_OBJS) $(GITLIBS) GIT-CFLAGS
|
||||||
$(QUIET_LINK)$(CC) -DGIT_VERSION='"$(GIT_VERSION)"' \
|
$(QUIET_LINK)$(CC) -DGIT_VERSION='"$(GIT_VERSION)"' \
|
||||||
$(ALL_CFLAGS) -o $@ $(filter %.c,$^) \
|
$(ALL_CFLAGS) -o $@ $(filter %.c,$^) \
|
||||||
@ -878,6 +904,20 @@ GIT-CFLAGS: .FORCE-GIT-CFLAGS
|
|||||||
echo "$$FLAGS" >GIT-CFLAGS; \
|
echo "$$FLAGS" >GIT-CFLAGS; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
### Detect Tck/Tk interpreter path changes
|
||||||
|
ifndef NO_TCLTK
|
||||||
|
TRACK_VARS = $(subst ','\'',-DTCLTK_PATH='$(TCLTK_PATH_SQ)')
|
||||||
|
|
||||||
|
GIT-GUI-VARS: .FORCE-GIT-GUI-VARS
|
||||||
|
@VARS='$(TRACK_VARS)'; \
|
||||||
|
if test x"$$VARS" != x"`cat $@ 2>/dev/null`" ; then \
|
||||||
|
echo 1>&2 " * new Tcl/Tk interpreter location"; \
|
||||||
|
echo "$$VARS" >$@; \
|
||||||
|
fi
|
||||||
|
|
||||||
|
.PHONY: .FORCE-GIT-GUI-VARS
|
||||||
|
endif
|
||||||
|
|
||||||
### Testing rules
|
### Testing rules
|
||||||
|
|
||||||
# GNU make supports exporting all variables by "export" without parameters.
|
# GNU make supports exporting all variables by "export" without parameters.
|
||||||
@ -918,10 +958,13 @@ install: all
|
|||||||
$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(bindir_SQ)'
|
$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(bindir_SQ)'
|
||||||
$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)'
|
$(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)'
|
||||||
$(INSTALL) $(ALL_PROGRAMS) '$(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)'
|
||||||
$(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install
|
$(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install
|
||||||
$(MAKE) -C perl prefix='$(prefix_SQ)' install
|
$(MAKE) -C perl prefix='$(prefix_SQ)' install
|
||||||
|
ifndef NO_TCLTK
|
||||||
|
$(INSTALL) gitk-wish '$(DESTDIR_SQ)$(bindir_SQ)'/gitk
|
||||||
$(MAKE) -C git-gui install
|
$(MAKE) -C git-gui install
|
||||||
|
endif
|
||||||
if test 'z$(bindir_SQ)' != 'z$(gitexecdir_SQ)'; \
|
if test 'z$(bindir_SQ)' != 'z$(gitexecdir_SQ)'; \
|
||||||
then \
|
then \
|
||||||
ln -f '$(DESTDIR_SQ)$(bindir_SQ)/git$X' \
|
ln -f '$(DESTDIR_SQ)$(bindir_SQ)/git$X' \
|
||||||
@ -1000,10 +1043,13 @@ clean:
|
|||||||
rm -f gitweb/gitweb.cgi
|
rm -f gitweb/gitweb.cgi
|
||||||
$(MAKE) -C Documentation/ clean
|
$(MAKE) -C Documentation/ clean
|
||||||
$(MAKE) -C perl clean
|
$(MAKE) -C perl clean
|
||||||
$(MAKE) -C git-gui clean
|
|
||||||
$(MAKE) -C templates/ clean
|
$(MAKE) -C templates/ clean
|
||||||
$(MAKE) -C t/ clean
|
$(MAKE) -C t/ clean
|
||||||
rm -f GIT-VERSION-FILE GIT-CFLAGS
|
ifndef NO_TCLTK
|
||||||
|
rm -f gitk-wish
|
||||||
|
$(MAKE) -C git-gui clean
|
||||||
|
endif
|
||||||
|
rm -f GIT-VERSION-FILE GIT-CFLAGS GIT-GUI-VARS
|
||||||
|
|
||||||
.PHONY: all install clean strip
|
.PHONY: all install clean strip
|
||||||
.PHONY: .FORCE-GIT-VERSION-FILE TAGS tags .FORCE-GIT-CFLAGS
|
.PHONY: .FORCE-GIT-VERSION-FILE TAGS tags .FORCE-GIT-CFLAGS
|
||||||
|
@ -6,6 +6,7 @@ CFLAGS = @CFLAGS@
|
|||||||
AR = @AR@
|
AR = @AR@
|
||||||
TAR = @TAR@
|
TAR = @TAR@
|
||||||
#INSTALL = @INSTALL@ # needs install-sh or install.sh in sources
|
#INSTALL = @INSTALL@ # needs install-sh or install.sh in sources
|
||||||
|
TCLTK_PATH = @TCLTK_PATH@
|
||||||
|
|
||||||
prefix = @prefix@
|
prefix = @prefix@
|
||||||
exec_prefix = @exec_prefix@
|
exec_prefix = @exec_prefix@
|
||||||
|
24
configure.ac
24
configure.ac
@ -75,6 +75,14 @@ GIT_ARG_SET_PATH(shell)
|
|||||||
# Define PERL_PATH to provide path to Perl.
|
# Define PERL_PATH to provide path to Perl.
|
||||||
GIT_ARG_SET_PATH(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.
|
## Checks for programs.
|
||||||
@ -84,6 +92,22 @@ AC_PROG_CC([cc gcc])
|
|||||||
#AC_PROG_INSTALL # needs install-sh or install.sh in sources
|
#AC_PROG_INSTALL # needs install-sh or install.sh in sources
|
||||||
AC_CHECK_TOOL(AR, ar, :)
|
AC_CHECK_TOOL(AR, ar, :)
|
||||||
AC_CHECK_PROGS(TAR, [gtar tar])
|
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], )
|
||||||
|
else
|
||||||
|
AC_MSG_RESULT([Using Tcl/Tk interpreter $with_tcltk])
|
||||||
|
TCLTK_PATH="$with_tcltk"
|
||||||
|
AC_SUBST(TCLTK_PATH)
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
## Checks for libraries.
|
## Checks for libraries.
|
||||||
AC_MSG_NOTICE([CHECKS for libraries])
|
AC_MSG_NOTICE([CHECKS for libraries])
|
||||||
|
Loading…
Reference in New Issue
Block a user