Merge branch 'kk/maint-prefix-in-config-mak'
authorJunio C Hamano <gitster@pobox.com>
Mon, 16 May 2011 23:46:53 +0000 (16:46 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 16 May 2011 23:46:53 +0000 (16:46 -0700)
* kk/maint-prefix-in-config-mak:
Honor $(prefix) set in config.mak* when defining ETC_GIT*
Revert "Honor $(prefix) set in config.mak* when defining ETC_GIT* and sysconfdir"
Honor $(prefix) set in config.mak* when defining ETC_GIT* and sysconfdir

1  2 
Makefile
diff --combined Makefile
index 320ccc7a1c3687923070a8692fef48c98154a8d0,95c0d51606a7eb78f93f681faf877768de96882d..5379aaa2e000a8944b1b2a6dbfeac32904c6e7f2
+++ b/Makefile
@@@ -45,6 -45,11 +45,6 @@@ all:
  # Define NO_D_TYPE_IN_DIRENT if your platform defines DT_UNKNOWN but lacks
  # d_type in struct dirent (Cygwin 1.5, fixed in Cygwin 1.7).
  #
 -# Define NO_C99_FORMAT if your formatted IO functions (printf/scanf et.al.)
 -# do not support the 'size specifiers' introduced by C99, namely ll, hh,
 -# j, z, t. (representing long long int, char, intmax_t, size_t, ptrdiff_t).
 -# some C compilers supported these specifiers prior to C99 as an extension.
 -#
  # Define NO_STRCASESTR if you don't have strcasestr.
  #
  # Define NO_MEMMEM if you don't have memmem.
  #
  # Define NO_REGEX if you have no or inferior regex support in your C library.
  #
 +# Define GETTEXT_POISON if you are debugging the choice of strings marked
 +# for translation.  In a GETTEXT_POISON build, you can turn all strings marked
 +# for translation into gibberish by setting the GIT_GETTEXT_POISON variable
 +# (to any value) in your environment.
 +#
  # Define JSMIN to point to JavaScript minifier that functions as
  # a filter to have gitweb.js minified.
  #
@@@ -274,8 -274,7 +274,7 @@@ STRIP ?= stri
  #   mandir
  #   infodir
  #   htmldir
- #   ETC_GITCONFIG (but not sysconfdir)
- #   ETC_GITATTRIBUTES
+ #   sysconfdir
  # can be specified as a relative path some/where/else;
  # this is interpreted as relative to $(prefix) and "git" at
  # runtime figures out where they are based on the path to the executable.
@@@ -291,15 -290,8 +290,8 @@@ sharedir = $(prefix)/shar
  gitwebdir = $(sharedir)/gitweb
  template_dir = share/git-core/templates
  htmldir = share/doc/git-doc
- ifeq ($(prefix),/usr)
- sysconfdir = /etc
  ETC_GITCONFIG = $(sysconfdir)/gitconfig
  ETC_GITATTRIBUTES = $(sysconfdir)/gitattributes
- else
- sysconfdir = $(prefix)/etc
- ETC_GITCONFIG = etc/gitconfig
- ETC_GITATTRIBUTES = etc/gitattributes
- endif
  lib = lib
  # DESTDIR=
  pathsep = :
@@@ -316,14 -308,15 +308,14 @@@ INSTALL = instal
  RPMBUILD = rpmbuild
  TCL_PATH = tclsh
  TCLTK_PATH = wish
 +XGETTEXT = xgettext
  PTHREAD_LIBS = -lpthread
  PTHREAD_CFLAGS =
  GCOV = gcov
  
  export TCL_PATH TCLTK_PATH
  
 -# sparse is architecture-neutral, which means that we need to tell it
 -# explicitly what architecture to check for. Fix this up for yours..
 -SPARSE_FLAGS = -D__BIG_ENDIAN__ -D__powerpc__
 +SPARSE_FLAGS =
  
  
  
@@@ -368,6 -361,7 +360,6 @@@ SCRIPT_SH += git-merge-resolve.s
  SCRIPT_SH += git-mergetool.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
@@@ -377,9 -371,6 +369,9 @@@ SCRIPT_SH += git-web--browse.s
  
  SCRIPT_LIB += git-mergetool--lib
  SCRIPT_LIB += git-parse-remote
 +SCRIPT_LIB += git-rebase--am
 +SCRIPT_LIB += git-rebase--interactive
 +SCRIPT_LIB += git-rebase--merge
  SCRIPT_LIB += git-sh-setup
  
  SCRIPT_PERL += git-add--interactive.perl
@@@ -516,7 -507,6 +508,7 @@@ LIB_H += diff.
  LIB_H += dir.h
  LIB_H += exec_cmd.h
  LIB_H += fsck.h
 +LIB_H += gettext.h
  LIB_H += git-compat-util.h
  LIB_H += graph.h
  LIB_H += grep.h
@@@ -527,7 -517,6 +519,7 @@@ LIB_H += list-objects.
  LIB_H += ll-merge.h
  LIB_H += log-tree.h
  LIB_H += mailmap.h
 +LIB_H += merge-file.h
  LIB_H += merge-recursive.h
  LIB_H += notes.h
  LIB_H += notes-cache.h
@@@ -874,6 -863,7 +866,6 @@@ ifeq ($(uname_S),SunOS
                NO_UNSETENV = YesPlease
                NO_SETENV = YesPlease
                NO_STRLCPY = YesPlease
 -              NO_C99_FORMAT = YesPlease
                NO_STRTOUMAX = YesPlease
                GIT_TEST_CMP = cmp
        endif
                NO_UNSETENV = YesPlease
                NO_SETENV = YesPlease
                NO_STRLCPY = YesPlease
 -              NO_C99_FORMAT = YesPlease
                NO_STRTOUMAX = YesPlease
                GIT_TEST_CMP = cmp
        endif
        ifeq ($(uname_R),5.8)
                NO_UNSETENV = YesPlease
                NO_SETENV = YesPlease
 -              NO_C99_FORMAT = YesPlease
                NO_STRTOUMAX = YesPlease
                GIT_TEST_CMP = cmp
        endif
        ifeq ($(uname_R),5.9)
                NO_UNSETENV = YesPlease
                NO_SETENV = YesPlease
 -              NO_C99_FORMAT = YesPlease
                NO_STRTOUMAX = YesPlease
                GIT_TEST_CMP = cmp
        endif
@@@ -925,7 -918,6 +917,7 @@@ ifeq ($(uname_O),Cygwin
        X = .exe
        COMPAT_OBJS += compat/cygwin.o
        UNRELIABLE_FSTAT = UnfortunatelyYes
 +      SPARSE_FLAGS = -isystem /usr/include/w32api -Wno-one-bit-signed-bitfield
  endif
  ifeq ($(uname_S),FreeBSD)
        NEEDS_LIBICONV = YesPlease
@@@ -1076,6 -1068,7 +1068,6 @@@ ifeq ($(uname_S),Windows
        NO_MEMMEM = YesPlease
        # NEEDS_LIBICONV = YesPlease
        NO_ICONV = YesPlease
 -      NO_C99_FORMAT = YesPlease
        NO_STRTOUMAX = YesPlease
        NO_STRTOULL = YesPlease
        NO_MKDTEMP = YesPlease
@@@ -1152,6 -1145,7 +1144,6 @@@ ifneq (,$(findstring MINGW,$(uname_S))
        NO_MEMMEM = YesPlease
        NEEDS_LIBICONV = YesPlease
        OLD_ICONV = YesPlease
 -      NO_C99_FORMAT = YesPlease
        NO_STRTOUMAX = YesPlease
        NO_MKDTEMP = YesPlease
        NO_MKSTEMPS = YesPlease
        EXTLIBS += -lws2_32
        PTHREAD_LIBS =
        X = .exe
 +      SPARSE_FLAGS = -Wno-one-bit-signed-bitfield
  ifneq (,$(wildcard ../THIS_IS_MSYSGIT))
        htmldir=doc/git/html/
        prefix =
@@@ -1195,6 -1188,14 +1187,14 @@@ endi
  -include config.mak.autogen
  -include config.mak
  
+ ifndef sysconfdir
+ ifeq ($(prefix),/usr)
+ sysconfdir = /etc
+ else
+ sysconfdir = etc
+ endif
+ endif
  ifdef CHECK_HEADER_DEPENDENCIES
  COMPUTE_HEADER_DEPENDENCIES =
  USE_COMPUTED_HEADER_DEPENDENCIES =
@@@ -1355,6 -1356,9 +1355,6 @@@ endi
  ifdef NO_NSEC
        BASIC_CFLAGS += -DNO_NSEC
  endif
 -ifdef NO_C99_FORMAT
 -      BASIC_CFLAGS += -DNO_C99_FORMAT
 -endif
  ifdef SNPRINTF_RETURNS_BOGUS
        COMPAT_CFLAGS += -DSNPRINTF_RETURNS_BOGUS
        COMPAT_OBJS += compat/snprintf.o
@@@ -1366,10 -1370,6 +1366,10 @@@ endi
  ifdef NO_SYMLINK_HEAD
        BASIC_CFLAGS += -DNO_SYMLINK_HEAD
  endif
 +ifdef GETTEXT_POISON
 +      LIB_OBJS += gettext.o
 +      BASIC_CFLAGS += -DGETTEXT_POISON
 +endif
  ifdef NO_STRCASESTR
        COMPAT_CFLAGS += -DNO_STRCASESTR
        COMPAT_OBJS += compat/strcasestr.o
@@@ -1581,9 -1581,7 +1581,9 @@@ ifndef 
        QUIET_BUILT_IN = @echo '   ' BUILTIN $@;
        QUIET_GEN      = @echo '   ' GEN $@;
        QUIET_LNCP     = @echo '   ' LN/CP $@;
 +      QUIET_XGETTEXT = @echo '   ' XGETTEXT $@;
        QUIET_GCOV     = @echo '   ' GCOV $@;
 +      QUIET_SP       = @echo '   ' SP $<;
        QUIET_SUBDIR0  = +@subdir=
        QUIET_SUBDIR1  = ;$(NO_SUBDIR) echo '   ' SUBDIR $$subdir; \
                         $(MAKE) $(PRINT_DIR) -C $$subdir
@@@ -1679,19 -1677,17 +1679,19 @@@ strip: $(PROGRAMS) git$
        $(STRIP) $(STRIP_OPTS) $(PROGRAMS) git$X
  
  git.o: common-cmds.h
 -git.s git.o: EXTRA_CPPFLAGS = -DGIT_VERSION='"$(GIT_VERSION)"' \
 -      '-DGIT_HTML_PATH="$(htmldir_SQ)"'
 +git.sp git.s git.o: EXTRA_CPPFLAGS = -DGIT_VERSION='"$(GIT_VERSION)"' \
 +      '-DGIT_HTML_PATH="$(htmldir_SQ)"' \
 +      '-DGIT_MAN_PATH="$(mandir_SQ)"' \
 +      '-DGIT_INFO_PATH="$(infodir_SQ)"'
  
  git$X: git.o $(BUILTIN_OBJS) $(GITLIBS)
        $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ git.o \
                $(BUILTIN_OBJS) $(ALL_LDFLAGS) $(LIBS)
  
 -help.o: common-cmds.h
 +help.sp help.o: common-cmds.h
  
 -builtin/help.o: common-cmds.h
 -builtin/help.s builtin/help.o: EXTRA_CPPFLAGS = \
 +builtin/help.sp builtin/help.o: common-cmds.h
 +builtin/help.sp builtin/help.s builtin/help.o: EXTRA_CPPFLAGS = \
        '-DGIT_HTML_PATH="$(htmldir_SQ)"' \
        '-DGIT_MAN_PATH="$(mandir_SQ)"' \
        '-DGIT_INFO_PATH="$(infodir_SQ)"'
@@@ -1753,7 -1749,33 +1753,7 @@@ $(patsubst %.perl,%,$(SCRIPT_PERL)): % 
  gitweb:
        $(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) all
  
 -ifdef JSMIN
 -GITWEB_PROGRAMS += gitweb/static/gitweb.min.js
 -GITWEB_JS = gitweb/static/gitweb.min.js
 -else
 -GITWEB_JS = gitweb/static/gitweb.js
 -endif
 -ifdef CSSMIN
 -GITWEB_PROGRAMS += gitweb/static/gitweb.min.css
 -GITWEB_CSS = gitweb/static/gitweb.min.css
 -else
 -GITWEB_CSS = gitweb/static/gitweb.css
 -endif
 -OTHER_PROGRAMS +=  gitweb/gitweb.cgi  $(GITWEB_PROGRAMS)
 -gitweb/gitweb.cgi: gitweb/gitweb.perl $(GITWEB_PROGRAMS)
 -      $(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) $(patsubst gitweb/%,%,$@)
 -
 -ifdef JSMIN
 -gitweb/static/gitweb.min.js: gitweb/static/gitweb.js
 -      $(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) $(patsubst gitweb/%,%,$@)
 -endif # JSMIN
 -ifdef CSSMIN
 -gitweb/static/gitweb.min.css: gitweb/static/gitweb.css
 -      $(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) $(patsubst gitweb/%,%,$@)
 -endif # CSSMIN
 -
 -
 -git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/static/gitweb.css gitweb/static/gitweb.js
 +git-instaweb: git-instaweb.sh gitweb
        $(QUIET_GEN)$(RM) $@ $@+ && \
        sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
            -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
@@@ -1951,34 -1973,30 +1951,34 @@@ $(VCSSVN_OBJS) $(VCSSVN_TEST_OBJS): $(L
  test-svn-fe.o: vcs-svn/svndump.h
  endif
  
 -exec_cmd.s exec_cmd.o: EXTRA_CPPFLAGS = \
 +exec_cmd.sp exec_cmd.s exec_cmd.o: EXTRA_CPPFLAGS = \
        '-DGIT_EXEC_PATH="$(gitexecdir_SQ)"' \
        '-DBINDIR="$(bindir_relative_SQ)"' \
        '-DPREFIX="$(prefix_SQ)"'
  
 -builtin/init-db.s builtin/init-db.o: EXTRA_CPPFLAGS = \
 +builtin/init-db.sp builtin/init-db.s builtin/init-db.o: EXTRA_CPPFLAGS = \
        -DDEFAULT_GIT_TEMPLATE_DIR='"$(template_dir_SQ)"'
  
 -config.s config.o: EXTRA_CPPFLAGS = -DETC_GITCONFIG='"$(ETC_GITCONFIG_SQ)"'
 +config.sp config.s config.o: EXTRA_CPPFLAGS = \
 +      -DETC_GITCONFIG='"$(ETC_GITCONFIG_SQ)"'
  
 -attr.s attr.o: EXTRA_CPPFLAGS = -DETC_GITATTRIBUTES='"$(ETC_GITATTRIBUTES_SQ)"'
 +attr.sp attr.s attr.o: EXTRA_CPPFLAGS = \
 +      -DETC_GITATTRIBUTES='"$(ETC_GITATTRIBUTES_SQ)"'
  
 -http.s http.o: EXTRA_CPPFLAGS = -DGIT_HTTP_USER_AGENT='"git/$(GIT_VERSION)"'
 +http.sp http.s http.o: EXTRA_CPPFLAGS = \
 +      -DGIT_HTTP_USER_AGENT='"git/$(GIT_VERSION)"'
  
  ifdef NO_EXPAT
 -http-walker.s http-walker.o: EXTRA_CPPFLAGS = -DNO_EXPAT
 +http-walker.sp http-walker.s http-walker.o: EXTRA_CPPFLAGS = -DNO_EXPAT
  endif
  
  ifdef NO_REGEX
 -compat/regex/regex.o: EXTRA_CPPFLAGS = -DGAWK -DNO_MBSUPPORT
 +compat/regex/regex.sp compat/regex/regex.o: EXTRA_CPPFLAGS = \
 +      -DGAWK -DNO_MBSUPPORT
  endif
  
  ifdef USE_NED_ALLOCATOR
 -compat/nedmalloc/nedmalloc.o: EXTRA_CPPFLAGS = \
 +compat/nedmalloc/nedmalloc.sp compat/nedmalloc/nedmalloc.o: EXTRA_CPPFLAGS = \
        -DNDEBUG -DOVERRIDE_STRDUP -DREPLACE_SYSTEM_ALLOCATOR
  endif
  
@@@ -2030,21 -2048,6 +2030,21 @@@ info
  pdf:
        $(MAKE) -C Documentation pdf
  
 +XGETTEXT_FLAGS = \
 +      --force-po \
 +      --add-comments \
 +      --msgid-bugs-address="Git Mailing List <git@vger.kernel.org>" \
 +      --from-code=UTF-8
 +XGETTEXT_FLAGS_C = $(XGETTEXT_FLAGS) --language=C \
 +      --keyword=_ --keyword=N_ --keyword="Q_:1,2"
 +LOCALIZED_C := $(C_OBJ:o=c)
 +
 +po/git.pot: $(LOCALIZED_C)
 +      $(QUIET_XGETTEXT)$(XGETTEXT) -o$@+ $(XGETTEXT_FLAGS_C) $(LOCALIZED_C) && \
 +      mv $@+ $@
 +
 +pot: po/git.pot
 +
  $(ETAGS_TARGET): FORCE
        $(RM) $(ETAGS_TARGET)
        $(FIND) . -name '*.[hcS]' -print | xargs etags -a -o $(ETAGS_TARGET)
@@@ -2086,7 -2089,6 +2086,7 @@@ endi
  ifdef GIT_TEST_CMP_USE_COPIED_CONTEXT
        @echo GIT_TEST_CMP_USE_COPIED_CONTEXT=YesPlease >>$@
  endif
 +      @echo GETTEXT_POISON=\''$(subst ','\'',$(subst ','\'',$(GETTEXT_POISON)))'\' >>$@
  
  ### Detect Tck/Tk interpreter path changes
  ifndef NO_TCLTK
@@@ -2144,20 -2146,13 +2144,20 @@@ test-%$X: test-%.o $(GITLIBS
  check-sha1:: test-sha1$X
        ./test-sha1.sh
  
 +SP_OBJ = $(patsubst %.o,%.sp,$(C_OBJ))
 +
 +$(SP_OBJ): %.sp: %.c GIT-CFLAGS FORCE
 +      $(QUIET_SP)cgcc -no-compile $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) \
 +              $(SPARSE_FLAGS) $<
 +
 +.PHONY: sparse $(SP_OBJ)
 +sparse: $(SP_OBJ)
 +
  check: common-cmds.h
 -      if sparse; \
 +      @if sparse; \
        then \
 -              for i in *.c; \
 -              do \
 -                      sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i || exit; \
 -              done; \
 +              echo 2>&1 "Use 'make sparse' instead"; \
 +              $(MAKE) --no-print-directory sparse; \
        else \
                echo 2>&1 "Did you mean 'make test'?"; \
                exit 1; \
@@@ -2319,7 -2314,6 +2319,7 @@@ dist-doc
  
  distclean: clean
        $(RM) configure
 +      $(RM) po/git.pot
  
  clean:
        $(RM) *.o block-sha1/*.o ppc/*.o compat/*.o compat/*/*.o xdiff/*.o vcs-svn/*.o \