Merge with gitk --parents change.
[gitweb.git] / Makefile
index e0ea88fbae386ed17e0c0ff2c4882e8dc71f36c3..db7596504a3317b994b8e81c78f7d0c1011000db 100644 (file)
--- a/Makefile
+++ b/Makefile
 
 # DEFINES += -DUSE_STDEV
 
-GIT_VERSION=0.99.4
+GIT_VERSION = 0.99.4
 
-COPTS?=-g -O2
-CFLAGS+=$(COPTS) -Wall $(DEFINES)
+CFLAGS = -g -O2 -Wall
+ALL_CFLAGS = $(CFLAGS) $(DEFINES)
 
-prefix=$(HOME)
-bindir=$(prefix)/bin
-template_dir=$(prefix)/share/git-core/templates/
-# dest=
+prefix = $(HOME)
+bindir = $(prefix)/bin
+template_dir = $(prefix)/share/git-core/templates/
+# DESTDIR=
 
-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__
 
 
 
@@ -71,6 +71,7 @@ SCRIPTS=git git-apply-patch-script git-merge-one-file-script git-prune-script \
 SCRIPTS += git-count-objects-script
 # SCRIPTS += git-send-email-script
 SCRIPTS += git-revert-script
+SCRIPTS += git-show-branches-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 \
@@ -87,7 +88,7 @@ PROG=   git-update-cache git-diff-files git-init-db git-write-tree \
        git-update-server-info git-show-rev-cache git-build-rev-cache
 
 ifndef NO_CURL
-PROG+= git-http-pull
+       PROG+= git-http-pull
 endif
 
 LIB_FILE=libgit.a
@@ -96,7 +97,7 @@ LIB_H=cache.h object.h blob.h tree.h commit.h tag.h delta.h epoch.h csum-file.h
 LIB_OBJS=read-cache.o sha1_file.o usage.o object.o commit.o tree.o blob.o \
         tag.o date.o index.o diff-delta.o patch-delta.o entry.o path.o \
         refs.o csum-file.o pack-check.o pkt-line.o connect.o ident.o \
-        sha1_name.o
+        sha1_name.o setup.o
 
 LIB_H += rev-cache.h
 LIB_OBJS += rev-cache.o
@@ -125,28 +126,28 @@ ifndef NO_OPENSSL
        LIB_OBJS += epoch.o
        OPENSSL_LIBSSL=-lssl
 else
-       CFLAGS += '-DNO_OPENSSL'
+       DEFINES += '-DNO_OPENSSL'
        MOZILLA_SHA1=1
        OPENSSL_LIBSSL=
 endif
 ifdef MOZILLA_SHA1
-  SHA1_HEADER="mozilla-sha1/sha1.h"
-  LIB_OBJS += mozilla-sha1/sha1.o
+       SHA1_HEADER="mozilla-sha1/sha1.h"
+       LIB_OBJS += mozilla-sha1/sha1.o
 else
-ifdef PPC_SHA1
-  SHA1_HEADER="ppc/sha1.h"
-  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
+       ifdef PPC_SHA1
+               SHA1_HEADER="ppc/sha1.h"
+               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)'
+DEFINES += '-DSHA1_HEADER=$(SHA1_HEADER)'
 
 
 
@@ -156,12 +157,15 @@ all: $(PROG)
 
 all:
        $(MAKE) -C templates
+       $(MAKE) -C tools
+
+%.o: %.c
+       $(CC) -o $*.o -c $(ALL_CFLAGS) $<
+%.o: %.S
+       $(CC) -o $*.o -c $(ALL_CFLAGS) $<
 
-.SECONDARY: %.o
-.c.o:
-       $(CC) $(CFLAGS) -o $*.o -c $*.c
 git-%: %.o $(LIB_FILE)
-       $(CC) $(CFLAGS) -o $@ $(filter %.o,$^) $(LIBS)
+       $(CC) $(ALL_CFLAGS) -o $@ $(filter %.o,$^) $(LIBS)
 
 git-http-pull: pull.o
 git-local-pull: pull.o
@@ -172,7 +176,8 @@ git-http-pull: LIBS += -lcurl
 git-rev-list: LIBS += $(OPENSSL_LIBSSL)
 
 init-db.o: init-db.c
-       $(CC) -c $(CFLAGS) -DDEFAULT_GIT_TEMPLATE_DIR='"$(template_dir)"' $*.c
+       $(CC) -c $(ALL_CFLAGS) \
+               -DDEFAULT_GIT_TEMPLATE_DIR='"$(template_dir)"' $*.c
 
 $(LIB_OBJS): $(LIB_H)
 $(patsubst git-%,%.o,$(PROG)): $(LIB_H)
@@ -192,24 +197,22 @@ test: all
        $(MAKE) -C t/ all
 
 test-date: test-date.c date.o
-       $(CC) $(CFLAGS) -o $@ test-date.c date.o
+       $(CC) $(ALL_CFLAGS) -o $@ test-date.c date.o
 
 test-delta: test-delta.c diff-delta.o patch-delta.o
-       $(CC) $(CFLAGS) -o $@ $^
+       $(CC) $(ALL_CFLAGS) -o $@ $^
 
 check:
-       for i in *.c; do sparse $(CFLAGS) $(SPARSE_FLAGS) $$i; done
+       for i in *.c; do sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i; done
 
 
 
 ### Installation rules
 
 install: $(PROG) $(SCRIPTS)
-       $(INSTALL) -m755 -d $(dest)$(bindir)
-       $(INSTALL) $(PROG) $(SCRIPTS) $(dest)$(bindir)
+       $(INSTALL) -m755 -d $(DESTDIR)$(bindir)
+       $(INSTALL) $(PROG) $(SCRIPTS) $(DESTDIR)$(bindir)
        $(MAKE) -C templates install
-
-install-tools:
        $(MAKE) -C tools install
 
 install-doc:
@@ -238,14 +241,18 @@ rpm: dist
 deb: dist
        rm -rf $(GIT_TARNAME)
        tar zxf $(GIT_TARNAME).tar.gz
+       dpkg-source -b $(GIT_TARNAME)
        cd $(GIT_TARNAME) && fakeroot debian/rules binary
 
 ### Cleaning rules
 
 clean:
        rm -f *.o mozilla-sha1/*.o ppc/*.o $(PROG) $(LIB_FILE)
-       rm -f $(GIT_TARNAME).tar.gz git-core.spec git-core_$(GIT_VERSION)-*.deb
+       rm -f git-core.spec
        rm -rf $(GIT_TARNAME)
+       rm -f $(GIT_TARNAME).tar.gz git-core_$(GIT_VERSION)-*.tar.gz
+       rm -f git-core_$(GIT_VERSION)-*.deb git-core_$(GIT_VERSION)-*.dsc
+       rm -f git-tk_$(GIT_VERSION)-*.deb
        $(MAKE) -C tools/ clean
        $(MAKE) -C Documentation/ clean
        $(MAKE) -C templates/ clean