[PATCH] Improve the compilation-time settings interface
[git.git] / Makefile
index e92518f..75d71ad 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,33 +1,53 @@
-# -DCOLLISION_CHECK if you believe that SHA1's
-# 1461501637330902918203684832716283019655932542976 hashes do not give you
-# enough guarantees about no collisions between objects ever hapenning.
+# Define MOZILLA_SHA1 environment variable when running make to make use of
+# a bundled SHA1 routine coming from Mozilla. It is GPL'd and should be fast
+# on non-x86 architectures (e.g. PowerPC), while the OpenSSL version (default
+# choice) has very fast version optimized for i586.
 #
-# -DUSE_NSEC if you want git to care about sub-second file mtimes and ctimes.
-# -DUSE_STDEV if you want git to care about st_dev changing
+# Define NO_OPENSSL environment variable if you do not have OpenSSL. You will
+# miss out git-rev-list --merge-order. This also implies MOZILLA_SHA1.
 #
-# Note that you need some new glibc (at least >2.2.4) for this, and it will
-# BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely randomly
-# break unless your underlying filesystem supports those sub-second times
-# (my ext3 doesn't).
-GIT_VERSION=0.99.1
+# Define PPC_SHA1 environment variable when running make to make use of
+# a bundled SHA1 routine optimized for PowerPC.
+
+
+# Define COLLISION_CHECK below if you believe that SHA1's
+# 1461501637330902918203684832716283019655932542976 hashes do not give you
+# sufficient guarantee that no collisions between objects will ever happen.
+
+# DEFINES += -DCOLLISION_CHECK
+
+# Define USE_NSEC below if you want git to care about sub-second file mtimes
+# and ctimes. Note that you need recent glibc (at least 2.2.4) for this, and
+# it will BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely
+# randomly break unless your underlying filesystem supports those sub-second
+# times (my ext3 doesn't).
 
-COPTS=-O2
-CFLAGS=-g $(COPTS) -Wall
+# DEFINES += -DUSE_NSEC
+
+# Define USE_STDEV below if you want git to care about the underlying device
+# change being considered an inode change from the update-cache perspective.
+
+# DEFINES += -DUSE_STDEV
+
+GIT_VERSION=0.99.2
+
+COPTS?=-g -O2
+CFLAGS+=$(COPTS) -Wall $(DEFINES)
 
 prefix=$(HOME)
-bin=$(prefix)/bin
+bindir=$(prefix)/bin
 # dest=
 
-CC=gcc
-AR=ar
-INSTALL=install
-RPMBUILD=rpmbuild
+CC?=gcc
+AR?=ar
+INSTALL?=install
+RPMBUILD?=rpmbuild
 
 #
 # 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?=-D__BIG_ENDIAN__ -D__powerpc__
 
 SCRIPTS=git git-apply-patch-script git-merge-one-file-script git-prune-script \
        git-pull-script git-tag-script git-resolve-script git-whatchanged \
@@ -37,7 +57,8 @@ SCRIPTS=git git-apply-patch-script git-merge-one-file-script git-prune-script \
        gitk git-cherry git-rebase-script git-relink-script git-repack-script \
        git-format-patch-script git-sh-setup-script git-push-script \
        git-branch-script git-parse-remote git-verify-tag-script \
-       git-ls-remote-script git-clone-dumb-http git-rename-script
+       git-ls-remote-script git-clone-dumb-http git-rename-script \
+       git-request-pull-script
 
 PROG=   git-update-cache git-diff-files git-init-db git-write-tree \
        git-read-tree git-commit-tree git-cat-file git-fsck-cache \
@@ -56,7 +77,7 @@ PROG=   git-update-cache git-diff-files git-init-db git-write-tree \
 all: $(PROG)
 
 install: $(PROG) $(SCRIPTS)
-       $(INSTALL) -m755 -d $(dest)$(bin)
+       $(INSTALL) -m755 -d $(dest)$(bindir)
        $(INSTALL) $(PROG) $(SCRIPTS) $(dest)$(bin)
 
 LIB_OBJS=read-cache.o sha1_file.o usage.o object.o commit.o tree.o blob.o \
@@ -94,9 +115,13 @@ ifdef PPC_SHA1
   LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o
 else
   SHA1_HEADER=<openssl/sha.h>
+ifeq ($(shell uname -s),Darwin)
+  LIBS += -lcrypto -lssl
+else
   LIBS += -lcrypto
 endif
 endif
+endif
 
 CFLAGS += '-DSHA1_HEADER=$(SHA1_HEADER)'