Merge branch 'jc/cc-ld-dynpath'
authorJunio C Hamano <gitster@pobox.com>
Mon, 8 Sep 2008 06:45:56 +0000 (23:45 -0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 8 Sep 2008 06:45:56 +0000 (23:45 -0700)
* jc/cc-ld-dynpath:
configure: auto detect dynamic library path switches
Makefile: Allow CC_LD_DYNPATH to be overriden

Conflicts:
Makefile
config.mak.in

1  2 
Makefile
config.mak.in
diff --combined Makefile
index dfed7bae9439675bb734c0f9fb3852ecb01fdf6d,2b6b66a883621fa5535486119e835021a2600260..cd3d621ae8deb8227dd8f9130689778458690245
+++ b/Makefile
@@@ -124,9 -124,6 +124,9 @@@ all:
  # Define USE_STDEV below if you want git to care about the underlying device
  # change being considered an inode change from the update-index perspective.
  #
 +# Define NO_ST_BLOCKS_IN_STRUCT_STAT if your platform does not have st_blocks
 +# field that counts the on-disk footprint in 512-byte blocks.
 +#
  # Define ASCIIDOC8 if you want to format documentation with AsciiDoc 8
  #
  # Define DOCBOOK_XSL_172 if you want to format man pages with DocBook XSL v1.72.
@@@ -336,6 -333,7 +336,6 @@@ endi
  export PERL_PATH
  
  LIB_FILE=libgit.a
 -COMPAT_LIB = compat/lib.a
  XDIFF_LIB=xdiff/lib.a
  
  LIB_H += archive.h
@@@ -357,12 -355,10 +357,12 @@@ LIB_H += git-compat-util.
  LIB_H += graph.h
  LIB_H += grep.h
  LIB_H += hash.h
 +LIB_H += help.h
  LIB_H += list-objects.h
  LIB_H += ll-merge.h
  LIB_H += log-tree.h
  LIB_H += mailmap.h
 +LIB_H += merge-recursive.h
  LIB_H += object.h
  LIB_H += pack.h
  LIB_H += pack-refs.h
@@@ -522,7 -518,6 +522,7 @@@ BUILTIN_OBJS += builtin-for-each-ref.
  BUILTIN_OBJS += builtin-fsck.o
  BUILTIN_OBJS += builtin-gc.o
  BUILTIN_OBJS += builtin-grep.o
 +BUILTIN_OBJS += builtin-help.o
  BUILTIN_OBJS += builtin-init-db.o
  BUILTIN_OBJS += builtin-log.o
  BUILTIN_OBJS += builtin-ls-files.o
@@@ -580,11 -575,9 +580,11 @@@ EXTLIBS 
  
  ifeq ($(uname_S),Linux)
        NO_STRLCPY = YesPlease
 +      THREADED_DELTA_SEARCH = YesPlease
  endif
  ifeq ($(uname_S),GNU/kFreeBSD)
        NO_STRLCPY = YesPlease
 +      THREADED_DELTA_SEARCH = YesPlease
  endif
  ifeq ($(uname_S),UnixWare)
        CC = cc
@@@ -682,7 -675,6 +682,7 @@@ ifeq ($(uname_S),FreeBSD
        BASIC_CFLAGS += -I/usr/local/include
        BASIC_LDFLAGS += -L/usr/local/lib
        DIR_HAS_BSD_GROUP_SEMANTICS = YesPlease
 +      THREADED_DELTA_SEARCH = YesPlease
  endif
  ifeq ($(uname_S),OpenBSD)
        NO_STRCASESTR = YesPlease
        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)
                NEEDS_LIBICONV = YesPlease
        endif
        BASIC_CFLAGS += -I/usr/pkg/include
-       BASIC_LDFLAGS += -L/usr/pkg/lib
-       ALL_LDFLAGS += -Wl,-rpath,/usr/pkg/lib
+       BASIC_LDFLAGS += -L/usr/pkg/lib $(CC_LD_DYNPATH)/usr/pkg/lib
 +      THREADED_DELTA_SEARCH = YesPlease
  endif
  ifeq ($(uname_S),AIX)
        NO_STRCASESTR=YesPlease
@@@ -737,7 -726,6 +736,7 @@@ ifeq ($(uname_S),HP-UX
        NO_UNSETENV = YesPlease
        NO_HSTRERROR = YesPlease
        NO_SYS_SELECT_H = YesPlease
 +      SNPRINTF_RETURNS_BOGUS = YesPlease
  endif
  ifneq (,$(findstring MINGW,$(uname_S)))
        NO_MMAP = YesPlease
        NO_SVN_TESTS = YesPlease
        NO_PERL_MAKEMAKER = YesPlease
        NO_POSIX_ONLY_PROGRAMS = YesPlease
 +      NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease
        COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -DNOGDI -Icompat
        COMPAT_CFLAGS += -DSNPRINTF_SIZE_CORR=1
        COMPAT_CFLAGS += -DSTRIP_EXTENSION=\".exe\"
@@@ -793,12 -780,14 +792,14 @@@ ifeq ($(uname_S),Darwin
        endif
  endif
  
- ifdef NO_R_TO_GCC_LINKER
-       # Some gcc does not accept and pass -R to the linker to specify
-       # the runtime dynamic library path.
-       CC_LD_DYNPATH = -Wl,-rpath=
- else
-       CC_LD_DYNPATH = -R
+ ifndef CC_LD_DYNPATH
+       ifdef NO_R_TO_GCC_LINKER
+               # Some gcc does not accept and pass -R to the linker to specify
+               # the runtime dynamic library path.
+               CC_LD_DYNPATH = -Wl,-rpath,
+       else
+               CC_LD_DYNPATH = -R
+       endif
  endif
  
  ifdef NO_CURL
@@@ -875,9 -864,6 +876,9 @@@ endi
  ifdef NO_D_INO_IN_DIRENT
        BASIC_CFLAGS += -DNO_D_INO_IN_DIRENT
  endif
 +ifdef NO_ST_BLOCKS_IN_STRUCT_STAT
 +      BASIC_CFLAGS += -DNO_ST_BLOCKS_IN_STRUCT_STAT
 +endif
  ifdef NO_C99_FORMAT
        BASIC_CFLAGS += -DNO_C99_FORMAT
  endif
@@@ -1106,17 -1092,14 +1107,17 @@@ git$X: git.o $(BUILTIN_OBJS) $(GITLIBS
        $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ git.o \
                $(BUILTIN_OBJS) $(ALL_LDFLAGS) $(LIBS)
  
 -help.o: help.c common-cmds.h GIT-CFLAGS
 +builtin-help.o: builtin-help.c common-cmds.h GIT-CFLAGS
        $(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) \
                '-DGIT_HTML_PATH="$(htmldir_SQ)"' \
                '-DGIT_MAN_PATH="$(mandir_SQ)"' \
                '-DGIT_INFO_PATH="$(infodir_SQ)"' $<
  
  $(BUILT_INS): git$X
 -      $(QUIET_BUILT_IN)$(RM) $@ && ln git$X $@
 +      $(QUIET_BUILT_IN)$(RM) $@ && \
 +      ln git$X $@ 2>/dev/null || \
 +      ln -s git$X $@ 2>/dev/null || \
 +      cp git$X $@
  
  common-cmds.h: ./generate-cmdlist.sh command-list.txt
  
@@@ -1233,9 -1216,7 +1234,9 @@@ endi
  git-%$X: %.o $(GITLIBS)
        $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
  
 -git-imap-send$X: imap-send.o $(LIB_FILE)
 +git-imap-send$X: imap-send.o $(GITLIBS)
 +      $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
 +              $(LIBS) $(OPENSSL_LINK) $(OPENSSL_LIBSSL)
  
  http.o http-walker.o http-push.o transport.o: http.h
  
@@@ -1243,6 -1224,12 +1244,6 @@@ git-http-push$X: revision.o http.o http
        $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
                $(LIBS) $(CURL_LIBCURL) $(EXPAT_LIBEXPAT)
  
 -$(COMPAT_LIB): $(COMPAT_OBJS)
 -      $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(COMPAT_OBJS)
 -
 -git-shell$X: abspath.o ctype.o exec_cmd.o quote.o strbuf.o usage.o wrapper.o shell.o $(COMPAT_LIB)
 -      $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(COMPAT_LIB)
 -
  $(LIB_OBJS) $(BUILTIN_OBJS): $(LIB_H)
  $(patsubst git-%$X,%.o,$(PROGRAMS)): $(LIB_H) $(wildcard */*.h)
  builtin-revert.o wt-status.o: wt-status.h
@@@ -1365,7 -1352,7 +1366,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) git$X git-upload-pack$X git-receive-pack$X git-upload-archive$X '$(DESTDIR_SQ)$(bindir_SQ)'
 +      $(INSTALL) git$X git-upload-pack$X git-receive-pack$X git-upload-archive$X git-shell$X '$(DESTDIR_SQ)$(bindir_SQ)'
        $(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install
        $(MAKE) -C perl prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' install
  ifndef NO_TCLTK
@@@ -1377,13 -1364,16 +1378,13 @@@ ifneq (,$X
  endif
        bindir=$$(cd '$(DESTDIR_SQ)$(bindir_SQ)' && pwd) && \
        execdir=$$(cd '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' && pwd) && \
 -      if test "z$$bindir" != "z$$execdir"; \
 -      then \
 -              ln -f "$$bindir/git$X" "$$execdir/git$X" || \
 -              cp "$$bindir/git$X" "$$execdir/git$X"; \
 -      fi && \
 -      { $(foreach p,$(BUILT_INS), $(RM) "$$execdir/$p" && ln "$$execdir/git$X" "$$execdir/$p" ;) } && \
 -      if test "z$$bindir" != "z$$execdir"; \
 -      then \
 -              $(RM) "$$execdir/git$X"; \
 -      fi && \
 +      { $(RM) "$$execdir/git-add$X" && \
 +              ln git-add$X "$$execdir/git-add$X" 2>/dev/null || \
 +              cp git-add$X "$$execdir/git-add$X"; } && \
 +      { $(foreach p,$(filter-out git-add$X,$(BUILT_INS)), $(RM) "$$execdir/$p" && \
 +              ln "$$execdir/git-add$X" "$$execdir/$p" 2>/dev/null || \
 +              ln -s "git-add$X" "$$execdir/$p" 2>/dev/null || \
 +              cp "$$execdir/git-add$X" "$$execdir/$p" || exit;) } && \
        ./check_bindir "z$$bindir" "z$$execdir" "$$bindir/git-add$X"
  
  install-doc:
@@@ -1452,7 -1442,7 +1453,7 @@@ distclean: clea
  
  clean:
        $(RM) *.o mozilla-sha1/*.o arm/*.o ppc/*.o compat/*.o xdiff/*.o \
 -              $(LIB_FILE) $(XDIFF_LIB) $(COMPAT_LIB)
 +              $(LIB_FILE) $(XDIFF_LIB)
        $(RM) $(ALL_PROGRAMS) $(BUILT_INS) git$X
        $(RM) $(TEST_PROGRAMS)
        $(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo common-cmds.h TAGS tags cscope*
diff --combined config.mak.in
index f67d673d013b3db84df804d5313c54ac186cae0b,467b4aaeeada518f9a65127ad9a0a63c57117217..17e9861c0634133ec5e07af99191cff99f8a40ad
@@@ -3,7 -3,7 +3,8 @@@
  
  CC = @CC@
  CFLAGS = @CFLAGS@
 +LDFLAGS = @LDFLAGS@
+ CC_LD_DYNPATH = @CC_LD_DYNPATH@
  AR = @AR@
  TAR = @TAR@
  #INSTALL = @INSTALL@          # needs install-sh or install.sh in sources