Merge branch 'jn/makefile-script-lib'
authorJunio C Hamano <gitster@pobox.com>
Sun, 21 Feb 2010 19:59:22 +0000 (11:59 -0800)
committerJunio C Hamano <gitster@pobox.com>
Sun, 21 Feb 2010 19:59:22 +0000 (11:59 -0800)
* jn/makefile-script-lib:
Do not install shell libraries executable

1  2 
Makefile
diff --combined Makefile
index 7bf2fca4070d2d00ac31d8b4dca6dff19b79cc79,6bbeb2401fdd1ef69c357e3481ffef5986993e00..afedb54b48da31d9293ea43971dccf177823e68a
+++ b/Makefile
@@@ -180,6 -180,9 +180,6 @@@ all:
  # 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).
  #
 -# Define THREADED_DELTA_SEARCH if you have pthreads and wish to exploit
 -# parallel delta searching when packing objects.
 -#
  # Define INTERNAL_QSORT to use Git's implementation of qsort(), which
  # is a simplified version of the merge sort used in glibc. This is
  # recommended if Git triggers O(n^2) behavior in your platform's qsort().
@@@ -275,6 -278,29 +275,6 @@@ pathsep = 
  # JavaScript minifier invocation that can function as filter
  JSMIN =
  
 -# default configuration for gitweb
 -GITWEB_CONFIG = gitweb_config.perl
 -GITWEB_CONFIG_SYSTEM = /etc/gitweb.conf
 -GITWEB_HOME_LINK_STR = projects
 -GITWEB_SITENAME =
 -GITWEB_PROJECTROOT = /pub/git
 -GITWEB_PROJECT_MAXDEPTH = 2007
 -GITWEB_EXPORT_OK =
 -GITWEB_STRICT_EXPORT =
 -GITWEB_BASE_URL =
 -GITWEB_LIST =
 -GITWEB_HOMETEXT = indextext.html
 -GITWEB_CSS = gitweb.css
 -GITWEB_LOGO = git-logo.png
 -GITWEB_FAVICON = git-favicon.png
 -ifdef JSMIN
 -GITWEB_JS = gitweb.min.js
 -else
 -GITWEB_JS = gitweb.js
 -endif
 -GITWEB_SITE_HEADER =
 -GITWEB_SITE_FOOTER =
 -
  export prefix bindir sharedir sysconfdir
  
  CC = gcc
@@@ -315,6 -341,7 +315,7 @@@ PROGRAMS 
  SCRIPT_PERL =
  SCRIPT_PYTHON =
  SCRIPT_SH =
+ SCRIPT_LIB =
  TEST_PROGRAMS =
  
  SCRIPT_SH += git-am.sh
@@@ -326,20 -353,21 +327,21 @@@ SCRIPT_SH += git-merge-octopus.s
  SCRIPT_SH += git-merge-one-file.sh
  SCRIPT_SH += git-merge-resolve.sh
  SCRIPT_SH += git-mergetool.sh
- SCRIPT_SH += git-mergetool--lib.sh
  SCRIPT_SH += git-notes.sh
- SCRIPT_SH += git-parse-remote.sh
  SCRIPT_SH += git-pull.sh
  SCRIPT_SH += git-quiltimport.sh
  SCRIPT_SH += git-rebase--interactive.sh
  SCRIPT_SH += git-rebase.sh
  SCRIPT_SH += git-repack.sh
  SCRIPT_SH += git-request-pull.sh
- SCRIPT_SH += git-sh-setup.sh
  SCRIPT_SH += git-stash.sh
  SCRIPT_SH += git-submodule.sh
  SCRIPT_SH += git-web--browse.sh
  
+ SCRIPT_LIB += git-mergetool--lib
+ SCRIPT_LIB += git-parse-remote
+ SCRIPT_LIB += git-sh-setup
  SCRIPT_PERL += git-add--interactive.perl
  SCRIPT_PERL += git-difftool.perl
  SCRIPT_PERL += git-archimport.perl
@@@ -696,10 -724,12 +698,10 @@@ EXTLIBS 
  ifeq ($(uname_S),Linux)
        NO_STRLCPY = YesPlease
        NO_MKSTEMPS = YesPlease
 -      THREADED_DELTA_SEARCH = YesPlease
  endif
  ifeq ($(uname_S),GNU/kFreeBSD)
        NO_STRLCPY = YesPlease
        NO_MKSTEMPS = YesPlease
 -      THREADED_DELTA_SEARCH = YesPlease
  endif
  ifeq ($(uname_S),UnixWare)
        CC = cc
@@@ -753,6 -783,7 +755,6 @@@ ifeq ($(uname_S),Darwin
                NO_STRLCPY = YesPlease
        endif
        NO_MEMMEM = YesPlease
 -      THREADED_DELTA_SEARCH = YesPlease
        USE_ST_TIMESPEC = YesPlease
  endif
  ifeq ($(uname_S),SunOS)
        NO_MKDTEMP = YesPlease
        NO_MKSTEMPS = YesPlease
        NO_REGEX = YesPlease
 -      THREADED_DELTA_SEARCH = YesPlease
        ifeq ($(uname_R),5.7)
                NEEDS_RESOLV = YesPlease
                NO_IPV6 = YesPlease
@@@ -820,6 -852,7 +822,6 @@@ ifeq ($(uname_S),FreeBSD
        BASIC_LDFLAGS += -L/usr/local/lib
        DIR_HAS_BSD_GROUP_SEMANTICS = YesPlease
        USE_ST_TIMESPEC = YesPlease
 -      THREADED_DELTA_SEARCH = YesPlease
        ifeq ($(shell expr "$(uname_R)" : '4\.'),2)
                PTHREAD_LIBS = -pthread
                NO_UINTMAX_T = YesPlease
@@@ -833,6 -866,7 +835,6 @@@ ifeq ($(uname_S),OpenBSD
        NEEDS_LIBICONV = YesPlease
        BASIC_CFLAGS += -I/usr/local/include
        BASIC_LDFLAGS += -L/usr/local/lib
 -      THREADED_DELTA_SEARCH = YesPlease
  endif
  ifeq ($(uname_S),NetBSD)
        ifeq ($(shell expr "$(uname_R)" : '[01]\.'),2)
        endif
        BASIC_CFLAGS += -I/usr/pkg/include
        BASIC_LDFLAGS += -L/usr/pkg/lib $(CC_LD_DYNPATH)/usr/pkg/lib
 -      THREADED_DELTA_SEARCH = YesPlease
        USE_ST_TIMESPEC = YesPlease
        NO_MKSTEMPS = YesPlease
  endif
@@@ -854,7 -889,9 +856,7 @@@ ifeq ($(uname_S),AIX
        INTERNAL_QSORT = UnfortunatelyYes
        NEEDS_LIBICONV=YesPlease
        BASIC_CFLAGS += -D_LARGE_FILES
 -      ifneq ($(shell expr "$(uname_V)" : '[1234]'),1)
 -              THREADED_DELTA_SEARCH = YesPlease
 -      else
 +      ifeq ($(shell expr "$(uname_V)" : '[1234]'),1)
                NO_PTHREADS = YesPlease
        endif
  endif
@@@ -880,6 -917,7 +882,6 @@@ ifeq ($(uname_S),IRIX
        SNPRINTF_RETURNS_BOGUS = YesPlease
        SHELL_PATH = /usr/gnu/bin/bash
        NEEDS_LIBGEN = YesPlease
 -      THREADED_DELTA_SEARCH = YesPlease
  endif
  ifeq ($(uname_S),IRIX64)
        NO_SETENV=YesPlease
        SNPRINTF_RETURNS_BOGUS = YesPlease
        SHELL_PATH=/usr/gnu/bin/bash
        NEEDS_LIBGEN = YesPlease
 -      THREADED_DELTA_SEARCH = YesPlease
  endif
  ifeq ($(uname_S),HP-UX)
        NO_IPV6=YesPlease
@@@ -947,6 -986,7 +949,6 @@@ ifeq ($(uname_S),Windows
        NO_CURL = YesPlease
        NO_PYTHON = YesPlease
        BLK_SHA1 = YesPlease
 -      THREADED_DELTA_SEARCH = YesPlease
  
        CC = compat/vcbuild/scripts/clink.pl
        AR = compat/vcbuild/scripts/lib.pl
@@@ -998,6 -1038,7 +1000,6 @@@ ifneq (,$(findstring MINGW,$(uname_S))
        NO_REGEX = YesPlease
        NO_PYTHON = YesPlease
        BLK_SHA1 = YesPlease
 -      THREADED_DELTA_SEARCH = YesPlease
        COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -DNOGDI -Icompat -Icompat/fnmatch -Icompat/win32
        COMPAT_CFLAGS += -DSTRIP_EXTENSION=\".exe\"
        COMPAT_OBJS += compat/mingw.o compat/fnmatch/fnmatch.o compat/winansi.o \
@@@ -1295,12 -1336,16 +1297,12 @@@ ifdef RUNTIME_PREFI
  endif
  
  ifdef NO_PTHREADS
 -      THREADED_DELTA_SEARCH =
        BASIC_CFLAGS += -DNO_PTHREADS
  else
        EXTLIBS += $(PTHREAD_LIBS)
 -endif
 -
 -ifdef THREADED_DELTA_SEARCH
 -      BASIC_CFLAGS += -DTHREADED_DELTA_SEARCH
        LIB_OBJS += thread-utils.o
  endif
 +
  ifdef DIR_HAS_BSD_GROUP_SEMANTICS
        COMPAT_CFLAGS += -DDIR_HAS_BSD_GROUP_SEMANTICS
  endif
@@@ -1411,7 -1456,7 +1413,7 @@@ export TAR INSTALL DESTDIR SHELL_PAT
  
  SHELL = $(SHELL_PATH)
  
- all:: shell_compatibility_test $(ALL_PROGRAMS) $(BUILT_INS) $(OTHER_PROGRAMS) GIT-BUILD-OPTIONS
+ all:: shell_compatibility_test $(ALL_PROGRAMS) $(SCRIPT_LIB) $(BUILT_INS) $(OTHER_PROGRAMS) GIT-BUILD-OPTIONS
  ifneq (,$X)
        $(QUIET_BUILT_IN)$(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) git$X)), test -d '$p' -o '$p' -ef '$p$X' || $(RM) '$p';)
  endif
@@@ -1462,17 -1507,25 +1464,25 @@@ common-cmds.h: ./generate-cmdlist.sh co
  common-cmds.h: $(wildcard Documentation/git-*.txt)
        $(QUIET_GEN)./generate-cmdlist.sh > $@+ && mv $@+ $@
  
+ define cmd_munge_script
+ $(RM) $@ $@+ && \
+ sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
+     -e 's|@SHELL_PATH@|$(SHELL_PATH_SQ)|' \
+     -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
+     -e 's/@@NO_CURL@@/$(NO_CURL)/g' \
+     -e $(BROKEN_PATH_FIX) \
+     $@.sh >$@+
+ endef
  $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
-       $(QUIET_GEN)$(RM) $@ $@+ && \
-       sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
-           -e 's|@SHELL_PATH@|$(SHELL_PATH_SQ)|' \
-           -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
-           -e 's/@@NO_CURL@@/$(NO_CURL)/g' \
-           -e $(BROKEN_PATH_FIX) \
-           $@.sh >$@+ && \
+       $(QUIET_GEN)$(cmd_munge_script) && \
        chmod +x $@+ && \
        mv $@+ $@
  
+ $(SCRIPT_LIB) : % : %.sh
+       $(QUIET_GEN)$(cmd_munge_script) && \
+       mv $@+ $@
  ifndef NO_PERL
  $(patsubst %.perl,%,$(SCRIPT_PERL)): perl/perl.mak
  
@@@ -1495,11 -1548,6 +1505,11 @@@ $(patsubst %.perl,%,$(SCRIPT_PERL)): % 
        chmod +x $@+ && \
        mv $@+ $@
  
 +
 +.PHONY: gitweb
 +gitweb:
 +      $(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) all
 +
  ifdef JSMIN
  OTHER_PROGRAMS += gitweb/gitweb.cgi   gitweb/gitweb.min.js
  gitweb/gitweb.cgi: gitweb/gitweb.perl gitweb/gitweb.min.js
  OTHER_PROGRAMS += gitweb/gitweb.cgi
  gitweb/gitweb.cgi: gitweb/gitweb.perl
  endif
 -      $(QUIET_GEN)$(RM) $@ $@+ && \
 -      sed -e '1s|#!.*perl|#!$(PERL_PATH_SQ)|' \
 -          -e 's|++GIT_VERSION++|$(GIT_VERSION)|g' \
 -          -e 's|++GIT_BINDIR++|$(bindir)|g' \
 -          -e 's|++GITWEB_CONFIG++|$(GITWEB_CONFIG)|g' \
 -          -e 's|++GITWEB_CONFIG_SYSTEM++|$(GITWEB_CONFIG_SYSTEM)|g' \
 -          -e 's|++GITWEB_HOME_LINK_STR++|$(GITWEB_HOME_LINK_STR)|g' \
 -          -e 's|++GITWEB_SITENAME++|$(GITWEB_SITENAME)|g' \
 -          -e 's|++GITWEB_PROJECTROOT++|$(GITWEB_PROJECTROOT)|g' \
 -          -e 's|"++GITWEB_PROJECT_MAXDEPTH++"|$(GITWEB_PROJECT_MAXDEPTH)|g' \
 -          -e 's|++GITWEB_EXPORT_OK++|$(GITWEB_EXPORT_OK)|g' \
 -          -e 's|++GITWEB_STRICT_EXPORT++|$(GITWEB_STRICT_EXPORT)|g' \
 -          -e 's|++GITWEB_BASE_URL++|$(GITWEB_BASE_URL)|g' \
 -          -e 's|++GITWEB_LIST++|$(GITWEB_LIST)|g' \
 -          -e 's|++GITWEB_HOMETEXT++|$(GITWEB_HOMETEXT)|g' \
 -          -e 's|++GITWEB_CSS++|$(GITWEB_CSS)|g' \
 -          -e 's|++GITWEB_LOGO++|$(GITWEB_LOGO)|g' \
 -          -e 's|++GITWEB_FAVICON++|$(GITWEB_FAVICON)|g' \
 -          -e 's|++GITWEB_JS++|$(GITWEB_JS)|g' \
 -          -e 's|++GITWEB_SITE_HEADER++|$(GITWEB_SITE_HEADER)|g' \
 -          -e 's|++GITWEB_SITE_FOOTER++|$(GITWEB_SITE_FOOTER)|g' \
 -          $< >$@+ && \
 -      chmod +x $@+ && \
 -      mv $@+ $@
 +      $(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) $(patsubst gitweb/%,%,$@)
 +
 +ifdef JSMIN
 +gitweb/gitweb.min.js: gitweb/gitweb.js
 +      $(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) $(patsubst gitweb/%,%,$@)
 +endif # JSMIN
 +
  
  git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/gitweb.css gitweb/gitweb.js
        $(QUIET_GEN)$(RM) $@ $@+ && \
@@@ -1540,6 -1605,12 +1550,6 @@@ $(patsubst %.perl,%,$(SCRIPT_PERL)) git
        mv $@+ $@
  endif # NO_PERL
  
 -
 -ifdef JSMIN
 -gitweb/gitweb.min.js: gitweb/gitweb.js
 -      $(QUIET_GEN)$(JSMIN) <$< >$@
 -endif # JSMIN
 -
  ifndef NO_PYTHON
  $(patsubst %.py,%,$(SCRIPT_PYTHON)): GIT-CFLAGS
  $(patsubst %.py,%,$(SCRIPT_PYTHON)): % : %.py
@@@ -1805,6 -1876,7 +1815,7 @@@ install: al
        $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'
        $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
        $(INSTALL) $(ALL_PROGRAMS) '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
+       $(INSTALL) -m 644 $(SCRIPT_LIB) '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
        $(INSTALL) $(install_bindir_programs) '$(DESTDIR_SQ)$(bindir_SQ)'
        $(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install
  ifndef NO_PERL
@@@ -1924,7 -1996,7 +1935,7 @@@ distclean: clea
  clean:
        $(RM) *.o block-sha1/*.o ppc/*.o compat/*.o compat/*/*.o xdiff/*.o \
                $(LIB_FILE) $(XDIFF_LIB)
-       $(RM) $(ALL_PROGRAMS) $(BUILT_INS) git$X
+       $(RM) $(ALL_PROGRAMS) $(SCRIPT_LIB) $(BUILT_INS) git$X
        $(RM) $(TEST_PROGRAMS)
        $(RM) -r bin-wrappers
        $(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo common-cmds.h TAGS tags cscope*
@@@ -1956,7 -2028,7 +1967,7 @@@ endi
  ### Check documentation
  #
  check-docs::
-       @(for v in $(ALL_PROGRAMS) $(BUILT_INS) git gitk; \
+       @(for v in $(ALL_PROGRAMS) $(SCRIPT_LIB) $(BUILT_INS) git gitk; \
        do \
                case "$$v" in \
                git-merge-octopus | git-merge-ours | git-merge-recursive | \
                documented,gitrepository-layout | \
                documented,gittutorial | \
                documented,gittutorial-2 | \
+               documented,git-bisect-lk2009 | \
+               documented.git-remote-helpers | \
+               documented,gitworkflows | \
                sentinel,not,matching,is,ok ) continue ;; \
                esac; \
-               case " $(ALL_PROGRAMS) $(BUILT_INS) git gitk " in \
+               case " $(ALL_PROGRAMS) $(SCRIPT_LIB) $(BUILT_INS) git gitk " in \
                *" $$cmd "*)    ;; \
                *) echo "removed but $$how: $$cmd" ;; \
                esac; \