blob: 8a20c76e9edb692be3dc6a81b42d86469d55d329 [file] [log] [blame]
Junio C Hamano2731d042005-12-01 12:26:41 -08001# The default target of this Makefile is...
2all:
3
Petr Baudis5bdac8b2005-07-29 17:48:26 +02004# Define MOZILLA_SHA1 environment variable when running make to make use of
5# a bundled SHA1 routine coming from Mozilla. It is GPL'd and should be fast
6# on non-x86 architectures (e.g. PowerPC), while the OpenSSL version (default
7# choice) has very fast version optimized for i586.
8#
Linus Torvalds765ac8e2006-02-28 15:07:20 -08009# Define NO_OPENSSL environment variable if you do not have OpenSSL.
10# This also implies MOZILLA_SHA1.
Petr Baudis5bdac8b2005-07-29 17:48:26 +020011#
Nick Hengeveld58e60dd2005-11-02 11:19:24 -080012# Define NO_CURL if you do not have curl installed. git-http-pull and
13# git-http-push are not built, and you cannot use http:// and https://
14# transports.
Johannes Schindelinb2c0bd62005-07-31 02:14:23 +020015#
Patrick Mauritz6d9bbc52005-09-19 16:11:19 +020016# Define CURLDIR=/foo/bar if your curl header and library files are in
17# /foo/bar/include and /foo/bar/lib directories.
18#
Nick Hengeveld58e60dd2005-11-02 11:19:24 -080019# Define NO_EXPAT if you do not have expat installed. git-http-push is
20# not built, and you cannot push using http:// and https:// transports.
21#
Junio C Hamano35a730f2006-01-19 17:13:51 -080022# Define NO_D_INO_IN_DIRENT if you don't have d_ino in your struct dirent.
23#
Junio C Hamano63be37b2006-01-19 17:13:57 -080024# Define NO_D_TYPE_IN_DIRENT if your platform defines DT_UNKNOWN but lacks
25# d_type in struct dirent (latest Cygwin -- will be fixed soonish).
26#
Linus Torvaldsef34af22005-09-18 18:30:50 -070027# Define NO_STRCASESTR if you don't have strcasestr.
28#
Jason Riedye40b61f2005-12-02 15:08:28 -080029# Define NO_SETENV if you don't have setenv in the C library.
30#
Pavel Roskin2fabd212005-11-15 00:59:50 -050031# Define USE_SYMLINK_HEAD if you want .git/HEAD to be a symbolic link.
32# Don't enable it on Windows.
33#
Petr Baudis5bdac8b2005-07-29 17:48:26 +020034# Define PPC_SHA1 environment variable when running make to make use of
35# a bundled SHA1 routine optimized for PowerPC.
Junio C Hamano597c9cc2005-09-07 12:22:56 -070036#
Nicolas Pitre7c6ef2f2005-09-20 12:27:13 -040037# Define ARM_SHA1 environment variable when running make to make use of
38# a bundled SHA1 routine optimized for ARM.
39#
Junio C Hamano597c9cc2005-09-07 12:22:56 -070040# Define NEEDS_SSL_WITH_CRYPTO if you need -lcrypto with -lssl (Darwin).
Patrick Mauritzf0ebff02005-09-06 01:24:03 +020041#
Junio C Hamano597c9cc2005-09-07 12:22:56 -070042# Define NEEDS_LIBICONV if linking with libc is not enough (Darwin).
Patrick Mauritzf0ebff02005-09-06 01:24:03 +020043#
44# Define NEEDS_SOCKET if linking with libc is not enough (SunOS,
45# Patrick Mauritz).
46#
Johannes Schindelin730d48a2005-10-08 15:54:36 -070047# Define NO_MMAP if you want to avoid mmap.
48#
Junio C Hamano343d35c2005-09-19 19:47:54 -070049# Define WITH_OWN_SUBPROCESS_PY if you want to use with python 2.3.
50#
hpa49744d62005-09-28 16:52:21 -070051# Define NO_IPV6 if you lack IPv6 support and getaddrinfo().
52#
Junio C Hamanobdc37f52006-01-19 17:13:32 -080053# Define NO_SOCKADDR_STORAGE if your platform does not have struct
54# sockaddr_storage.
55#
Fernando J. Peredab6e56ec2006-02-16 09:38:01 +010056# Define NO_ICONV if your libc does not properly support iconv.
57#
Johannes Schindelin5b5d4d92006-02-17 15:23:16 +010058# Define NO_ACCURATE_DIFF if your diff program at least sometimes misses
59# a missing newline at the end of the file.
60#
Johannes Schindelinabb7c7b2006-02-18 13:01:18 +010061# Define NO_PYTHON if you want to loose all benefits of the recursive merge.
62#
Petr Baudis5bdac8b2005-07-29 17:48:26 +020063# Define COLLISION_CHECK below if you believe that SHA1's
Petr Baudis5c2a7fb2005-04-13 02:14:06 -070064# 1461501637330902918203684832716283019655932542976 hashes do not give you
Petr Baudis5bdac8b2005-07-29 17:48:26 +020065# sufficient guarantee that no collisions between objects will ever happen.
66
Petr Baudis5bdac8b2005-07-29 17:48:26 +020067# Define USE_NSEC below if you want git to care about sub-second file mtimes
68# and ctimes. Note that you need recent glibc (at least 2.2.4) for this, and
69# it will BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely
70# randomly break unless your underlying filesystem supports those sub-second
71# times (my ext3 doesn't).
72
Petr Baudis5bdac8b2005-07-29 17:48:26 +020073# Define USE_STDEV below if you want git to care about the underlying device
74# change being considered an inode change from the update-cache perspective.
75
Junio C Hamano9b88fce2005-12-27 14:40:17 -080076GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE
Fredrik Kuivinen36546382006-02-14 00:15:14 +010077 @$(SHELL_PATH) ./GIT-VERSION-GEN
Junio C Hamano9b88fce2005-12-27 14:40:17 -080078-include GIT-VERSION-FILE
Petr Baudis5bdac8b2005-07-29 17:48:26 +020079
Paul Jakmae15f5452006-02-20 23:36:28 +000080uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
81uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
82uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not')
83uname_R := $(shell sh -c 'uname -r 2>/dev/null || echo not')
84uname_P := $(shell sh -c 'uname -p 2>/dev/null || echo not')
85
Junio C Hamano94d23312005-11-13 01:46:13 -080086# CFLAGS and LDFLAGS are for the users to override from the command line.
Junio C Hamano12aa7452005-11-04 23:50:09 -080087
Pavel Roskinb05701c2005-08-06 01:36:15 -040088CFLAGS = -g -O2 -Wall
Junio C Hamano94d23312005-11-13 01:46:13 -080089LDFLAGS =
Junio C Hamano12aa7452005-11-04 23:50:09 -080090ALL_CFLAGS = $(CFLAGS)
Junio C Hamano94d23312005-11-13 01:46:13 -080091ALL_LDFLAGS = $(LDFLAGS)
Junio C Hamano4dc00022006-01-12 21:42:25 -080092STRIP ?= strip
Thomas Glanzmann29c2cce2005-05-07 10:41:54 +020093
Pavel Roskinb05701c2005-08-06 01:36:15 -040094prefix = $(HOME)
95bindir = $(prefix)/bin
Paul Jakmae15f5452006-02-20 23:36:28 +000096gitexecdir = $(bindir)
Pavel Roskinb05701c2005-08-06 01:36:15 -040097template_dir = $(prefix)/share/git-core/templates/
Junio C Hamano720d1502005-09-10 17:46:27 -070098GIT_PYTHON_DIR = $(prefix)/share/git-core/python
Petr Baudisa682ef92005-08-05 01:56:38 +020099# DESTDIR=
Petr Baudis5c2a7fb2005-04-13 02:14:06 -0700100
Pavel Roskinb05701c2005-08-06 01:36:15 -0400101CC = gcc
102AR = ar
Junio C Hamano229a7ed2005-09-23 10:41:40 -0700103TAR = tar
Pavel Roskinb05701c2005-08-06 01:36:15 -0400104INSTALL = install
105RPMBUILD = rpmbuild
Linus Torvaldse83c5162005-04-07 15:13:13 -0700106
Linus Torvalds44c9e852005-07-03 10:02:35 -0700107# sparse is architecture-neutral, which means that we need to tell it
108# explicitly what architecture to check for. Fix this up for yours..
Pavel Roskinb05701c2005-08-06 01:36:15 -0400109SPARSE_FLAGS = -D__BIG_ENDIAN__ -D__powerpc__
Linus Torvalds44c9e852005-07-03 10:02:35 -0700110
Petr Baudis28818ff2005-07-29 17:50:24 +0200111
112
113### --- END CONFIGURATION SECTION ---
114
Junio C Hamano215a7ad2005-09-07 17:26:23 -0700115SCRIPT_SH = \
116 git-add.sh git-bisect.sh git-branch.sh git-checkout.sh \
117 git-cherry.sh git-clone.sh git-commit.sh \
118 git-count-objects.sh git-diff.sh git-fetch.sh \
119 git-format-patch.sh git-log.sh git-ls-remote.sh \
Junio C Hamanoe32faa82005-12-19 18:03:31 -0800120 git-merge-one-file.sh git-parse-remote.sh \
Junio C Hamano215a7ad2005-09-07 17:26:23 -0700121 git-prune.sh git-pull.sh git-push.sh git-rebase.sh \
122 git-repack.sh git-request-pull.sh git-reset.sh \
Carl Worthd4a1cab2006-02-21 15:04:51 -0800123 git-resolve.sh git-revert.sh git-rm.sh git-sh-setup.sh \
Junio C Hamano27dedf02005-11-16 21:32:44 -0800124 git-tag.sh git-verify-tag.sh git-whatchanged.sh \
Junio C Hamanod1c5f2a2005-10-07 03:44:18 -0700125 git-applymbox.sh git-applypatch.sh git-am.sh \
Junio C Hamano2276aa62005-09-10 17:56:19 -0700126 git-merge.sh git-merge-stupid.sh git-merge-octopus.sh \
Junio C Hamano04e7ca12005-11-07 15:15:34 -0800127 git-merge-resolve.sh git-merge-ours.sh git-grep.sh \
Junio C Hamano0086e2c2005-11-13 02:07:02 -0800128 git-lost-found.sh
Petr Baudis28818ff2005-07-29 17:50:24 +0200129
Junio C Hamano215a7ad2005-09-07 17:26:23 -0700130SCRIPT_PERL = \
131 git-archimport.perl git-cvsimport.perl git-relink.perl \
Junio C Hamano8389b522006-01-28 23:15:24 -0800132 git-shortlog.perl git-fmt-merge-msg.perl git-rerere.perl \
Junio C Hamano98214e92006-02-22 19:20:55 -0800133 git-annotate.perl git-cvsserver.perl \
Martin Langhoff5e0306a2005-11-07 17:57:08 +1300134 git-svnimport.perl git-mv.perl git-cvsexportcommit.perl
Junio C Hamano60036a42005-07-30 17:31:47 -0700135
Junio C Hamano720d1502005-09-10 17:46:27 -0700136SCRIPT_PYTHON = \
Fredrik Kuivinene4cf17c2005-09-13 08:22:26 +0200137 git-merge-recursive.py
Junio C Hamano720d1502005-09-10 17:46:27 -0700138
Andreas Ericssond6ebd252005-11-22 00:44:15 +0100139SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \
140 $(patsubst %.perl,%,$(SCRIPT_PERL)) \
141 $(patsubst %.py,%,$(SCRIPT_PYTHON)) \
Junio C Hamanocf7bb582006-02-10 00:45:59 -0800142 git-cherry-pick git-show git-status
Andreas Ericssond6ebd252005-11-22 00:44:15 +0100143
Junio C Hamano597c9cc2005-09-07 12:22:56 -0700144# The ones that do not have to link with lcrypto nor lz.
145SIMPLE_PROGRAMS = \
Johannes Schindelin2a3763e2006-02-19 21:16:08 +0100146 git-get-tar-commit-id$X git-mailsplit$X \
Junio C Hamano27dedf02005-11-16 21:32:44 -0800147 git-stripspace$X git-daemon$X
Junio C Hamano597c9cc2005-09-07 12:22:56 -0700148
Junio C Hamanob42934d2006-01-12 21:37:17 -0800149# ... and all the rest that could be moved out of bindir to gitexecdir
Junio C Hamano215a7ad2005-09-07 17:26:23 -0700150PROGRAMS = \
Peter Anvin79a9d8e2005-10-03 12:04:44 -0700151 git-apply$X git-cat-file$X \
152 git-checkout-index$X git-clone-pack$X git-commit-tree$X \
153 git-convert-objects$X git-diff-files$X \
154 git-diff-index$X git-diff-stages$X \
155 git-diff-tree$X git-fetch-pack$X git-fsck-objects$X \
Junio C Hamano43f72af2006-02-24 16:16:10 -0800156 git-hash-object$X git-index-pack$X git-init-db$X git-local-fetch$X \
157 git-ls-files$X git-ls-tree$X git-mailinfo$X git-merge-base$X \
Junio C Hamano83f50532006-02-20 21:50:01 -0800158 git-merge-index$X git-mktag$X git-mktree$X git-pack-objects$X git-patch-id$X \
Peter Anvin79a9d8e2005-10-03 12:04:44 -0700159 git-peek-remote$X git-prune-packed$X git-read-tree$X \
160 git-receive-pack$X git-rev-list$X git-rev-parse$X \
Linus Torvalds35eb2d32005-10-23 14:30:45 -0700161 git-send-pack$X git-show-branch$X git-shell$X \
Peter Anvin79a9d8e2005-10-03 12:04:44 -0700162 git-show-index$X git-ssh-fetch$X \
163 git-ssh-upload$X git-tar-tree$X git-unpack-file$X \
164 git-unpack-objects$X git-update-index$X git-update-server-info$X \
165 git-upload-pack$X git-verify-pack$X git-write-tree$X \
Junio C Hamano03feddd2005-10-13 18:57:39 -0700166 git-update-ref$X git-symbolic-ref$X git-check-ref-format$X \
Linus Torvalds908e5312005-12-24 13:50:45 -0800167 git-name-rev$X git-pack-redundant$X git-repo-config$X git-var$X \
Mike McCormackf2561fd2006-03-10 14:32:50 +0900168 git-describe$X git-merge-tree$X git-blame$X git-imap-send$X
Andreas Ericssond6ebd252005-11-22 00:44:15 +0100169
Junio C Hamanob42934d2006-01-12 21:37:17 -0800170# what 'all' will build and 'install' will install, in gitexecdir
Michal Ostrowski77cb17e2006-01-10 21:12:17 -0500171ALL_PROGRAMS = $(PROGRAMS) $(SIMPLE_PROGRAMS) $(SCRIPTS)
Linus Torvaldse83c5162005-04-07 15:13:13 -0700172
Junio C Hamano894a8a82005-09-30 00:27:11 -0700173# Backward compatibility -- to be removed after 1.0
H. Peter Anvin2f29dd52005-09-30 10:46:25 -0700174PROGRAMS += git-ssh-pull$X git-ssh-push$X
Junio C Hamanof71a69a2005-09-15 14:56:37 -0700175
Ryan Anderson3d320512005-11-21 00:11:22 -0500176# Set paths to tools early so that they can be used for version tests.
177ifndef SHELL_PATH
178 SHELL_PATH = /bin/sh
179endif
180ifndef PERL_PATH
181 PERL_PATH = /usr/bin/perl
182endif
183ifndef PYTHON_PATH
184 PYTHON_PATH = /usr/bin/python
185endif
186
Junio C Hamano720d1502005-09-10 17:46:27 -0700187PYMODULES = \
188 gitMergeCommon.py
189
Linus Torvalds0a02ce72005-04-18 12:49:39 -0700190LIB_FILE=libgit.a
191
Junio C Hamano215a7ad2005-09-07 17:26:23 -0700192LIB_H = \
193 blob.h cache.h commit.h count-delta.h csum-file.h delta.h \
Linus Torvalds765ac8e2006-02-28 15:07:20 -0800194 diff.h object.h pack.h pkt-line.h quote.h refs.h \
Linus Torvaldsae563542006-02-25 16:19:46 -0800195 run-command.h strbuf.h tag.h tree.h git-compat-util.h revision.h
Junio C Hamano8f3f9b02005-07-23 17:54:41 -0700196
Junio C Hamano215a7ad2005-09-07 17:26:23 -0700197DIFF_OBJS = \
198 diff.o diffcore-break.o diffcore-order.o diffcore-pathspec.o \
Junio C Hamano65416752006-02-28 16:01:36 -0800199 diffcore-pickaxe.o diffcore-rename.o tree-diff.o combine-diff.o \
200 diffcore-delta.o
Josef Weidendorferb1bf95b2005-07-31 21:17:43 +0200201
Junio C Hamano215a7ad2005-09-07 17:26:23 -0700202LIB_OBJS = \
203 blob.o commit.o connect.o count-delta.o csum-file.o \
Michal Ostrowski77cb17e2006-01-10 21:12:17 -0500204 date.o diff-delta.o entry.o exec_cmd.o ident.o index.o \
Junio C Hamano215a7ad2005-09-07 17:26:23 -0700205 object.o pack-check.o patch-delta.o path.o pkt-line.o \
Junio C Hamano0f564792005-09-14 13:08:55 -0700206 quote.o read-cache.o refs.o run-command.o \
Junio C Hamano215a7ad2005-09-07 17:26:23 -0700207 server-info.o setup.o sha1_file.o sha1_name.o strbuf.o \
Junio C Hamanof3123c42005-10-22 01:28:13 -0700208 tag.o tree.o usage.o config.o environment.o ctype.o copy.o \
Linus Torvaldsf67b45f2006-02-28 11:26:21 -0800209 fetch-clone.o revision.o pager.o \
Linus Torvalds45467382005-10-13 11:03:18 -0700210 $(DIFF_OBJS)
Junio C Hamanod19938a2005-05-09 17:57:56 -0700211
Linus Torvaldscc1ad5c2005-04-21 12:14:46 -0700212LIBS = $(LIB_FILE)
213LIBS += -lz
Linus Torvaldscef661f2005-04-21 12:33:22 -0700214
Junio C Hamano229a7ed2005-09-23 10:41:40 -0700215#
216# Platform specific tweaks
217#
Junio C Hamanof7c15342005-10-09 12:52:35 -0700218
219# We choose to avoid "if .. else if .. else .. endif endif"
220# because maintaining the nesting to match is a pain. If
221# we had "elif" things would have been much nicer...
Junio C Hamanof7c15342005-10-09 12:52:35 -0700222
223ifeq ($(uname_S),Darwin)
Junio C Hamano597c9cc2005-09-07 12:22:56 -0700224 NEEDS_SSL_WITH_CRYPTO = YesPlease
225 NEEDS_LIBICONV = YesPlease
Randal L. Schwartz0cfddac2005-11-06 04:33:07 -0800226 ## fink
Shawn Pearcee3601e82006-02-28 09:03:48 -0500227 ifeq ($(shell test -d /sw/lib && echo y),y)
228 ALL_CFLAGS += -I/sw/include
229 ALL_LDFLAGS += -L/sw/lib
230 endif
Randal L. Schwartz0cfddac2005-11-06 04:33:07 -0800231 ## darwinports
Shawn Pearcee3601e82006-02-28 09:03:48 -0500232 ifeq ($(shell test -d /opt/local/lib && echo y),y)
233 ALL_CFLAGS += -I/opt/local/include
234 ALL_LDFLAGS += -L/opt/local/lib
235 endif
Junio C Hamano597c9cc2005-09-07 12:22:56 -0700236endif
Junio C Hamanof7c15342005-10-09 12:52:35 -0700237ifeq ($(uname_S),SunOS)
Patrick Mauritzf0ebff02005-09-06 01:24:03 +0200238 NEEDS_SOCKET = YesPlease
Junio C Hamano5a90d4a2005-09-11 22:25:49 -0700239 NEEDS_NSL = YesPlease
Junio C Hamano229a7ed2005-09-23 10:41:40 -0700240 SHELL_PATH = /bin/bash
241 NO_STRCASESTR = YesPlease
Jason Riedye40b61f2005-12-02 15:08:28 -0800242 ifeq ($(uname_R),5.8)
Paul Jakmae15f5452006-02-20 23:36:28 +0000243 NEEDS_LIBICONV = YesPlease
Jason Riedy731043f2006-01-25 12:38:36 -0800244 NO_UNSETENV = YesPlease
Jason Riedye40b61f2005-12-02 15:08:28 -0800245 NO_SETENV = YesPlease
246 endif
Junio C Hamano229a7ed2005-09-23 10:41:40 -0700247 INSTALL = ginstall
248 TAR = gtar
Junio C Hamano12aa7452005-11-04 23:50:09 -0800249 ALL_CFLAGS += -D__EXTENSIONS__
Patrick Mauritzf0ebff02005-09-06 01:24:03 +0200250endif
Junio C Hamanof7c15342005-10-09 12:52:35 -0700251ifeq ($(uname_O),Cygwin)
Junio C Hamano63be37b2006-01-19 17:13:57 -0800252 NO_D_TYPE_IN_DIRENT = YesPlease
Junio C Hamano35a730f2006-01-19 17:13:51 -0800253 NO_D_INO_IN_DIRENT = YesPlease
hpa17754512005-09-28 16:37:37 -0700254 NO_STRCASESTR = YesPlease
255 NEEDS_LIBICONV = YesPlease
Junio C Hamano2e67a5f2005-11-17 11:29:47 -0800256 # There are conflicting reports about this.
257 # On some boxes NO_MMAP is needed, and not so elsewhere.
258 # Try uncommenting this if you see things break -- YMMV.
259 # NO_MMAP = YesPlease
hpa49744d62005-09-28 16:52:21 -0700260 NO_IPV6 = YesPlease
Peter Anvina23cd8e2005-09-28 19:08:37 -0700261 X = .exe
Nicolas Pitre7c6ef2f2005-09-20 12:27:13 -0400262endif
Alecs Kingb3bf9742006-01-27 02:04:30 +0800263ifeq ($(uname_S),FreeBSD)
264 NEEDS_LIBICONV = YesPlease
265 ALL_CFLAGS += -I/usr/local/include
266 ALL_LDFLAGS += -L/usr/local/lib
267endif
Junio C Hamanof7c15342005-10-09 12:52:35 -0700268ifeq ($(uname_S),OpenBSD)
Junio C Hamano5fb41e82005-10-10 11:51:11 -0700269 NO_STRCASESTR = YesPlease
Han Boetes18c5a522005-10-01 08:23:26 +0200270 NEEDS_LIBICONV = YesPlease
Junio C Hamano94d23312005-11-13 01:46:13 -0800271 ALL_CFLAGS += -I/usr/local/include
272 ALL_LDFLAGS += -L/usr/local/lib
273endif
274ifeq ($(uname_S),NetBSD)
275 NEEDS_LIBICONV = YesPlease
276 ALL_CFLAGS += -I/usr/pkg/include
277 ALL_LDFLAGS += -L/usr/pkg/lib -Wl,-rpath,/usr/pkg/lib
Han Boetes18c5a522005-10-01 08:23:26 +0200278endif
Jason Riedya6da9392005-12-06 14:20:16 -0800279ifeq ($(uname_S),AIX)
280 NO_STRCASESTR=YesPlease
281 NEEDS_LIBICONV=YesPlease
282endif
Johannes Schindelin289c4b32006-02-17 15:23:41 +0100283ifeq ($(uname_S),IRIX64)
284 NO_IPV6=YesPlease
285 NO_SETENV=YesPlease
286 NO_STRCASESTR=YesPlease
287 NO_SOCKADDR_STORAGE=YesPlease
288 SHELL_PATH=/usr/gnu/bin/bash
289 ALL_CFLAGS += -DPATH_MAX=1024
290 # for now, build 32-bit version
291 ALL_LDFLAGS += -L/usr/lib32
292endif
Junio C Hamanof7c15342005-10-09 12:52:35 -0700293ifneq (,$(findstring arm,$(uname_M)))
294 ARM_SHA1 = YesPlease
295endif
Junio C Hamano597c9cc2005-09-07 12:22:56 -0700296
Johannes Schindelinf2d6a252005-10-11 15:22:47 -0700297-include config.mak
Linus Torvaldscef661f2005-04-21 12:33:22 -0700298
Timo Hirvonenb34403a2005-12-01 03:32:01 +0200299ifdef WITH_OWN_SUBPROCESS_PY
300 PYMODULES += compat/subprocess.py
301else
Johannes Schindelina348ab72006-02-19 21:13:48 +0100302 ifeq ($(NO_PYTHON),)
303 ifneq ($(shell $(PYTHON_PATH) -c 'import subprocess;print"OK"' 2>/dev/null),OK)
304 PYMODULES += compat/subprocess.py
305 endif
Timo Hirvonenb34403a2005-12-01 03:32:01 +0200306 endif
307endif
308
309ifdef WITH_SEND_EMAIL
310 SCRIPT_PERL += git-send-email.perl
311endif
312
Junio C Hamano229a7ed2005-09-23 10:41:40 -0700313ifndef NO_CURL
314 ifdef CURLDIR
Junio C Hamano94d23312005-11-13 01:46:13 -0800315 # This is still problematic -- gcc does not always want -R.
Junio C Hamano12aa7452005-11-04 23:50:09 -0800316 ALL_CFLAGS += -I$(CURLDIR)/include
Junio C Hamano229a7ed2005-09-23 10:41:40 -0700317 CURL_LIBCURL = -L$(CURLDIR)/lib -R$(CURLDIR)/lib -lcurl
318 else
319 CURL_LIBCURL = -lcurl
320 endif
H. Peter Anvin2f29dd52005-09-30 10:46:25 -0700321 PROGRAMS += git-http-fetch$X
Nick Hengeveld08900982005-11-18 17:08:36 -0800322 curl_check := $(shell (echo 070908; curl-config --vernum) | sort -r | sed -ne 2p)
323 ifeq "$(curl_check)" "070908"
324 ifndef NO_EXPAT
325 EXPAT_LIBEXPAT = -lexpat
326 PROGRAMS += git-http-push$X
327 endif
Nick Hengeveld58e60dd2005-11-02 11:19:24 -0800328 endif
Junio C Hamano229a7ed2005-09-23 10:41:40 -0700329endif
330
Petr Baudisdd53c7a2005-07-29 17:50:51 +0200331ifndef NO_OPENSSL
Junio C Hamano215a7ad2005-09-07 17:26:23 -0700332 OPENSSL_LIBSSL = -lssl
Junio C Hamano455a7f32005-09-30 13:31:16 -0700333 ifdef OPENSSLDIR
334 # Again this may be problematic -- gcc does not always want -R.
Junio C Hamano12aa7452005-11-04 23:50:09 -0800335 ALL_CFLAGS += -I$(OPENSSLDIR)/include
Junio C Hamano455a7f32005-09-30 13:31:16 -0700336 OPENSSL_LINK = -L$(OPENSSLDIR)/lib -R$(OPENSSLDIR)/lib
337 else
338 OPENSSL_LINK =
339 endif
Petr Baudisdd53c7a2005-07-29 17:50:51 +0200340else
Junio C Hamano12aa7452005-11-04 23:50:09 -0800341 ALL_CFLAGS += -DNO_OPENSSL
Junio C Hamano215a7ad2005-09-07 17:26:23 -0700342 MOZILLA_SHA1 = 1
343 OPENSSL_LIBSSL =
Petr Baudisdd53c7a2005-07-29 17:50:51 +0200344endif
Junio C Hamano597c9cc2005-09-07 12:22:56 -0700345ifdef NEEDS_SSL_WITH_CRYPTO
Junio C Hamano455a7f32005-09-30 13:31:16 -0700346 LIB_4_CRYPTO = $(OPENSSL_LINK) -lcrypto -lssl
Junio C Hamano597c9cc2005-09-07 12:22:56 -0700347else
Junio C Hamano455a7f32005-09-30 13:31:16 -0700348 LIB_4_CRYPTO = $(OPENSSL_LINK) -lcrypto
Junio C Hamano597c9cc2005-09-07 12:22:56 -0700349endif
350ifdef NEEDS_LIBICONV
Junio C Hamano455a7f32005-09-30 13:31:16 -0700351 ifdef ICONVDIR
352 # Again this may be problematic -- gcc does not always want -R.
Junio C Hamano12aa7452005-11-04 23:50:09 -0800353 ALL_CFLAGS += -I$(ICONVDIR)/include
Junio C Hamano455a7f32005-09-30 13:31:16 -0700354 ICONV_LINK = -L$(ICONVDIR)/lib -R$(ICONVDIR)/lib
355 else
356 ICONV_LINK =
357 endif
358 LIB_4_ICONV = $(ICONV_LINK) -liconv
Junio C Hamano597c9cc2005-09-07 12:22:56 -0700359else
360 LIB_4_ICONV =
361endif
Patrick Mauritzf0ebff02005-09-06 01:24:03 +0200362ifdef NEEDS_SOCKET
363 LIBS += -lsocket
364 SIMPLE_LIB += -lsocket
365endif
Junio C Hamano5a90d4a2005-09-11 22:25:49 -0700366ifdef NEEDS_NSL
367 LIBS += -lnsl
368 SIMPLE_LIB += -lnsl
369endif
Junio C Hamano63be37b2006-01-19 17:13:57 -0800370ifdef NO_D_TYPE_IN_DIRENT
371 ALL_CFLAGS += -DNO_D_TYPE_IN_DIRENT
372endif
Junio C Hamano35a730f2006-01-19 17:13:51 -0800373ifdef NO_D_INO_IN_DIRENT
374 ALL_CFLAGS += -DNO_D_INO_IN_DIRENT
375endif
Linus Torvaldsef34af22005-09-18 18:30:50 -0700376ifdef NO_STRCASESTR
Junio C Hamano4050c0d2005-12-05 11:54:29 -0800377 COMPAT_CFLAGS += -DNO_STRCASESTR
Jason Riedye40b61f2005-12-02 15:08:28 -0800378 COMPAT_OBJS += compat/strcasestr.o
379endif
380ifdef NO_SETENV
Junio C Hamano4050c0d2005-12-05 11:54:29 -0800381 COMPAT_CFLAGS += -DNO_SETENV
Jason Riedye40b61f2005-12-02 15:08:28 -0800382 COMPAT_OBJS += compat/setenv.o
Linus Torvaldsef34af22005-09-18 18:30:50 -0700383endif
Jason Riedy731043f2006-01-25 12:38:36 -0800384ifdef NO_SETENV
385 COMPAT_CFLAGS += -DNO_UNSETENV
386 COMPAT_OBJS += compat/unsetenv.o
387endif
Johannes Schindelin730d48a2005-10-08 15:54:36 -0700388ifdef NO_MMAP
Junio C Hamano4050c0d2005-12-05 11:54:29 -0800389 COMPAT_CFLAGS += -DNO_MMAP
Jason Riedye40b61f2005-12-02 15:08:28 -0800390 COMPAT_OBJS += compat/mmap.o
Johannes Schindelin730d48a2005-10-08 15:54:36 -0700391endif
hpa49744d62005-09-28 16:52:21 -0700392ifdef NO_IPV6
Junio C Hamanobdc37f52006-01-19 17:13:32 -0800393 ALL_CFLAGS += -DNO_IPV6
394endif
395ifdef NO_SOCKADDR_STORAGE
396ifdef NO_IPV6
397 ALL_CFLAGS += -Dsockaddr_storage=sockaddr_in
398else
399 ALL_CFLAGS += -Dsockaddr_storage=sockaddr_in6
400endif
hpa49744d62005-09-28 16:52:21 -0700401endif
Linus Torvaldscef661f2005-04-21 12:33:22 -0700402
Fernando J. Peredab6e56ec2006-02-16 09:38:01 +0100403ifdef NO_ICONV
404 ALL_CFLAGS += -DNO_ICONV
405endif
406
Nicolas Pitre7c6ef2f2005-09-20 12:27:13 -0400407ifdef PPC_SHA1
408 SHA1_HEADER = "ppc/sha1.h"
409 LIB_OBJS += ppc/sha1.o ppc/sha1ppc.o
410else
411ifdef ARM_SHA1
412 SHA1_HEADER = "arm/sha1.h"
413 LIB_OBJS += arm/sha1.o arm/sha1_arm.o
414else
415ifdef MOZILLA_SHA1
416 SHA1_HEADER = "mozilla-sha1/sha1.h"
417 LIB_OBJS += mozilla-sha1/sha1.o
418else
419 SHA1_HEADER = <openssl/sha.h>
420 LIBS += $(LIB_4_CRYPTO)
421endif
422endif
423endif
Johannes Schindelin5b5d4d92006-02-17 15:23:16 +0100424ifdef NO_ACCURATE_DIFF
425 ALL_CFLAGS += -DNO_ACCURATE_DIFF
426endif
Nicolas Pitre7c6ef2f2005-09-20 12:27:13 -0400427
Johannes Schindelin39c015c2006-02-18 12:40:22 +0100428# Shell quote (do not use $(call) to accomodate ancient setups);
429
430SHA1_HEADER_SQ = $(subst ','\'',$(SHA1_HEADER))
431
432DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
433bindir_SQ = $(subst ','\'',$(bindir))
434gitexecdir_SQ = $(subst ','\'',$(gitexecdir))
435template_dir_SQ = $(subst ','\'',$(template_dir))
436
437SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
438PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH))
439PYTHON_PATH_SQ = $(subst ','\'',$(PYTHON_PATH))
440GIT_PYTHON_DIR_SQ = $(subst ','\'',$(GIT_PYTHON_DIR))
441
442ALL_CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER_SQ)' $(COMPAT_CFLAGS)
Jason Riedye40b61f2005-12-02 15:08:28 -0800443LIB_OBJS += $(COMPAT_OBJS)
Tom Princeec2d1512005-10-11 18:47:33 -0700444export prefix TAR INSTALL DESTDIR SHELL_PATH template_dir
Petr Baudis28818ff2005-07-29 17:50:24 +0200445### Build rules
Linus Torvalds89967022005-04-30 13:19:56 -0700446
Junio C Hamanob42934d2006-01-12 21:37:17 -0800447all: $(ALL_PROGRAMS) git$X gitk
Petr Baudis28818ff2005-07-29 17:50:24 +0200448
Junio C Hamanod3af6212005-08-06 12:50:14 -0700449all:
450 $(MAKE) -C templates
Nicolas Pitrea310d432005-05-19 10:27:14 -0400451
Junio C Hamano4dc00022006-01-12 21:42:25 -0800452strip: $(PROGRAMS) git$X
453 $(STRIP) $(STRIP_OPTS) $(PROGRAMS) git$X
454
Fredrik Kuivinena87cd022006-03-09 17:24:19 +0100455git$X: git.c common-cmds.h $(LIB_FILE)
Michal Ostrowski77cb17e2006-01-10 21:12:17 -0500456 $(CC) -DGIT_VERSION='"$(GIT_VERSION)"' \
Linus Torvalds70b006b2006-02-28 11:30:19 -0800457 $(ALL_CFLAGS) -o $@ $(filter %.c,$^) $(LIB_FILE) $(LIBS)
Junio C Hamano6a2e50f2005-09-07 21:26:52 -0700458
Fredrik Kuivinena87cd022006-03-09 17:24:19 +0100459common-cmds.h: Documentation/git-*.txt
460 ./generate-cmdlist.sh > $@
461
Andreas Ericssond6ebd252005-11-22 00:44:15 +0100462$(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
Junio C Hamanobc6146d2005-09-08 18:50:33 -0700463 rm -f $@
Johannes Schindelin39c015c2006-02-18 12:40:22 +0100464 sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
Junio C Hamano3ff8cbe2005-10-04 12:41:35 -0700465 -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
Fernando J. Pereda6c5c62f2006-02-15 12:37:30 +0100466 -e 's/@@NO_CURL@@/$(NO_CURL)/g' \
Johannes Schindelinabb7c7b2006-02-18 13:01:18 +0100467 -e 's/@@NO_PYTHON@@/$(NO_PYTHON)/g' \
Junio C Hamano3ff8cbe2005-10-04 12:41:35 -0700468 $@.sh >$@
Junio C Hamanobc6146d2005-09-08 18:50:33 -0700469 chmod +x $@
470
471$(patsubst %.perl,%,$(SCRIPT_PERL)) : % : %.perl
472 rm -f $@
Johannes Schindelin39c015c2006-02-18 12:40:22 +0100473 sed -e '1s|#!.*perl|#!$(PERL_PATH_SQ)|' \
Junio C Hamano3ff8cbe2005-10-04 12:41:35 -0700474 -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
475 $@.perl >$@
Junio C Hamanobc6146d2005-09-08 18:50:33 -0700476 chmod +x $@
477
Junio C Hamano720d1502005-09-10 17:46:27 -0700478$(patsubst %.py,%,$(SCRIPT_PYTHON)) : % : %.py
479 rm -f $@
Johannes Schindelin39c015c2006-02-18 12:40:22 +0100480 sed -e '1s|#!.*python|#!$(PYTHON_PATH_SQ)|' \
481 -e 's|@@GIT_PYTHON_PATH@@|$(GIT_PYTHON_DIR_SQ)|g' \
Junio C Hamano3ff8cbe2005-10-04 12:41:35 -0700482 -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
483 $@.py >$@
Junio C Hamano720d1502005-09-10 17:46:27 -0700484 chmod +x $@
485
Johannes Schindelin4eba0f32005-10-20 17:13:24 +0200486git-cherry-pick: git-revert
487 cp $< $@
488
Junio C Hamano80d48ac2006-02-05 16:42:49 -0800489git-show: git-whatchanged
490 cp $< $@
491
Junio C Hamanocf7bb582006-02-10 00:45:59 -0800492git-status: git-commit
493 cp $< $@
494
Junio C Hamano9b88fce2005-12-27 14:40:17 -0800495# These can record GIT_VERSION
496git$X git.spec \
497 $(patsubst %.sh,%,$(SCRIPT_SH)) \
498 $(patsubst %.perl,%,$(SCRIPT_PERL)) \
499 $(patsubst %.py,%,$(SCRIPT_PYTHON)) \
500 : GIT-VERSION-FILE
Johannes Schindeline99fcf92005-12-22 20:38:23 +0100501
Pavel Roskinb05701c2005-08-06 01:36:15 -0400502%.o: %.c
503 $(CC) -o $*.o -c $(ALL_CFLAGS) $<
504%.o: %.S
505 $(CC) -o $*.o -c $(ALL_CFLAGS) $<
506
Johannes Schindelin39c015c2006-02-18 12:40:22 +0100507exec_cmd.o: exec_cmd.c
508 $(CC) -o $*.o -c $(ALL_CFLAGS) '-DGIT_EXEC_PATH="$(gitexecdir_SQ)"' $<
Michal Ostrowski77cb17e2006-01-10 21:12:17 -0500509
H. Peter Anvin2f29dd52005-09-30 10:46:25 -0700510git-%$X: %.o $(LIB_FILE)
Junio C Hamano94d23312005-11-13 01:46:13 -0800511 $(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
Daniel Barkalow6eb7ed52005-04-23 18:47:23 -0700512
Junio C Hamano597c9cc2005-09-07 12:22:56 -0700513$(SIMPLE_PROGRAMS) : $(LIB_FILE)
H. Peter Anvin2f29dd52005-09-30 10:46:25 -0700514$(SIMPLE_PROGRAMS) : git-%$X : %.o
Junio C Hamano94d23312005-11-13 01:46:13 -0800515 $(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
516 $(LIB_FILE) $(SIMPLE_LIB)
Junio C Hamano597c9cc2005-09-07 12:22:56 -0700517
Johannes Schindelin39c015c2006-02-18 12:40:22 +0100518git-mailinfo$X: mailinfo.o $(LIB_FILE)
519 $(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
520 $(LIB_FILE) $(SIMPLE_LIB) $(LIB_4_ICONV)
521
H. Peter Anvin2f29dd52005-09-30 10:46:25 -0700522git-local-fetch$X: fetch.o
523git-ssh-fetch$X: rsh.o fetch.o
524git-ssh-upload$X: rsh.o
525git-ssh-pull$X: rsh.o fetch.o
526git-ssh-push$X: rsh.o
Daniel Barkalow6eb7ed52005-04-23 18:47:23 -0700527
Mike McCormackf2561fd2006-03-10 14:32:50 +0900528git-imap-send$X: imap-send.o $(LIB_FILE)
529
Johannes Schindelinb9929332006-02-21 13:08:21 +0100530git-http-fetch$X: fetch.o http.o http-fetch.o $(LIB_FILE)
Johannes Schindelin39c015c2006-02-18 12:40:22 +0100531 $(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
532 $(LIBS) $(CURL_LIBCURL)
533
Nick Hengeveldaa1dbc92006-03-07 16:13:20 -0800534git-http-push$X: revision.o http.o http-push.o $(LIB_FILE)
Johannes Schindelin39c015c2006-02-18 12:40:22 +0100535 $(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
536 $(LIBS) $(CURL_LIBCURL) $(EXPAT_LIBEXPAT)
537
Johannes Schindelinb9929332006-02-21 13:08:21 +0100538git-rev-list$X: rev-list.o $(LIB_FILE)
Johannes Schindelin39c015c2006-02-18 12:40:22 +0100539 $(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
540 $(LIBS) $(OPENSSL_LIBSSL)
Daniel Barkalow6eb7ed52005-04-23 18:47:23 -0700541
Junio C Hamanod3af6212005-08-06 12:50:14 -0700542init-db.o: init-db.c
Pavel Roskinb05701c2005-08-06 01:36:15 -0400543 $(CC) -c $(ALL_CFLAGS) \
Johannes Schindelin39c015c2006-02-18 12:40:22 +0100544 -DDEFAULT_GIT_TEMPLATE_DIR='"$(template_dir_SQ)"' $*.c
Junio C Hamanod3af6212005-08-06 12:50:14 -0700545
Petr Baudise4683052005-07-29 17:48:50 +0200546$(LIB_OBJS): $(LIB_H)
H. Peter Anvin2f29dd52005-09-30 10:46:25 -0700547$(patsubst git-%$X,%.o,$(PROGRAMS)): $(LIB_H)
Petr Baudise4683052005-07-29 17:48:50 +0200548$(DIFF_OBJS): diffcore.h
Linus Torvaldse83c5162005-04-07 15:13:13 -0700549
Petr Baudis28818ff2005-07-29 17:50:24 +0200550$(LIB_FILE): $(LIB_OBJS)
551 $(AR) rcs $@ $(LIB_OBJS)
552
553doc:
554 $(MAKE) -C Documentation all
555
556
Petr Baudis28818ff2005-07-29 17:50:24 +0200557### Testing rules
558
Johannes Schindelinabb7c7b2006-02-18 13:01:18 +0100559# GNU make supports exporting all variables by "export" without parameters.
560# However, the environment gets quite big, and some programs have problems
561# with that.
562
563export NO_PYTHON
564
Petr Baudis28818ff2005-07-29 17:50:24 +0200565test: all
566 $(MAKE) -C t/ all
567
Junio C Hamano4ccafd72005-11-02 12:01:06 -0800568test-date$X: test-date.c date.o ctype.o
Junio C Hamano94d23312005-11-13 01:46:13 -0800569 $(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) test-date.c date.o ctype.o
Petr Baudis28818ff2005-07-29 17:50:24 +0200570
H. Peter Anvin2f29dd52005-09-30 10:46:25 -0700571test-delta$X: test-delta.c diff-delta.o patch-delta.o
Nicolas Pitre3d99a7f2006-03-08 13:19:19 -0500572 $(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $^ -lz
Petr Baudis28818ff2005-07-29 17:50:24 +0200573
574check:
Junio C Hamano773b6332005-12-14 13:32:52 -0800575 for i in *.c; do sparse $(ALL_CFLAGS) $(SPARSE_FLAGS) $$i || exit; done
Petr Baudis28818ff2005-07-29 17:50:24 +0200576
577
578
579### Installation rules
580
Andreas Ericssond6ebd252005-11-22 00:44:15 +0100581install: all
Johannes Schindelin39c015c2006-02-18 12:40:22 +0100582 $(INSTALL) -d -m755 '$(DESTDIR_SQ)$(bindir_SQ)'
583 $(INSTALL) -d -m755 '$(DESTDIR_SQ)$(gitexecdir_SQ)'
584 $(INSTALL) $(ALL_PROGRAMS) '$(DESTDIR_SQ)$(gitexecdir_SQ)'
585 $(INSTALL) git$X gitk '$(DESTDIR_SQ)$(bindir_SQ)'
Junio C Hamano8d5afef2005-08-02 16:45:21 -0700586 $(MAKE) -C templates install
Johannes Schindelin39c015c2006-02-18 12:40:22 +0100587 $(INSTALL) -d -m755 '$(DESTDIR_SQ)$(GIT_PYTHON_DIR_SQ)'
588 $(INSTALL) $(PYMODULES) '$(DESTDIR_SQ)$(GIT_PYTHON_DIR_SQ)'
Petr Baudis28818ff2005-07-29 17:50:24 +0200589
590install-doc:
591 $(MAKE) -C Documentation install
592
593
594
595
596### Maintainer's dist rules
597
Junio C Hamano9b88fce2005-12-27 14:40:17 -0800598git.spec: git.spec.in
Chris Wrighta9db2972005-07-07 13:09:50 -0700599 sed -e 's/@@VERSION@@/$(GIT_VERSION)/g' < $< > $@
600
Junio C Hamano27dedf02005-11-16 21:32:44 -0800601GIT_TARNAME=git-$(GIT_VERSION)
602dist: git.spec git-tar-tree
Chris Wrightb1de9de2005-07-11 14:03:09 -0700603 ./git-tar-tree HEAD $(GIT_TARNAME) > $(GIT_TARNAME).tar
Chris Wrighta9db2972005-07-07 13:09:50 -0700604 @mkdir -p $(GIT_TARNAME)
Junio C Hamano27dedf02005-11-16 21:32:44 -0800605 @cp git.spec $(GIT_TARNAME)
H. Peter Anvin181129d2006-01-09 18:07:01 -0800606 @echo $(GIT_VERSION) > $(GIT_TARNAME)/version
607 $(TAR) rf $(GIT_TARNAME).tar \
608 $(GIT_TARNAME)/git.spec $(GIT_TARNAME)/version
Chris Wrighta9db2972005-07-07 13:09:50 -0700609 @rm -rf $(GIT_TARNAME)
Eric W. Biederman9dce3c02005-07-14 19:20:50 -0600610 gzip -f -9 $(GIT_TARNAME).tar
Chris Wrighta9db2972005-07-07 13:09:50 -0700611
612rpm: dist
Junio C Hamano27dedf02005-11-16 21:32:44 -0800613 $(RPMBUILD) -ta $(GIT_TARNAME).tar.gz
Chris Wrighta9db2972005-07-07 13:09:50 -0700614
Petr Baudis28818ff2005-07-29 17:50:24 +0200615### Cleaning rules
Eric W. Biederman87a81c82005-07-14 19:21:57 -0600616
Linus Torvaldse83c5162005-04-07 15:13:13 -0700617clean:
Junio C Hamano9ce392f2005-11-21 22:52:37 -0800618 rm -f *.o mozilla-sha1/*.o arm/*.o ppc/*.o compat/*.o $(LIB_FILE)
Junio C Hamanob42934d2006-01-12 21:37:17 -0800619 rm -f $(ALL_PROGRAMS) git$X
Fredrik Kuivinena87cd022006-03-09 17:24:19 +0100620 rm -f *.spec *.pyc *.pyo */*.pyc */*.pyo common-cmds.h
Junio C Hamanof29eaed2005-08-06 22:29:21 -0700621 rm -rf $(GIT_TARNAME)
Junio C Hamano5a571cd2005-08-12 01:03:07 -0700622 rm -f $(GIT_TARNAME).tar.gz git-core_$(GIT_VERSION)-*.tar.gz
Thomas Glanzmannca67f002005-05-22 20:27:28 +0200623 $(MAKE) -C Documentation/ clean
Junio C Hamano229a7ed2005-09-23 10:41:40 -0700624 $(MAKE) -C templates clean
Junio C Hamano4b7581f2005-08-02 17:24:11 -0700625 $(MAKE) -C t/ clean
Junio C Hamano9b88fce2005-12-27 14:40:17 -0800626 rm -f GIT-VERSION-FILE
627
Junio C Hamano4dc00022006-01-12 21:42:25 -0800628.PHONY: all install clean strip
Junio C Hamano9b88fce2005-12-27 14:40:17 -0800629.PHONY: .FORCE-GIT-VERSION-FILE
Junio C Hamanod89056c2005-12-19 17:59:58 -0800630