aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/perf_counter/Makefile
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2009-04-20 09:00:56 -0400
committerIngo Molnar <mingo@elte.hu>2009-04-20 11:36:48 -0400
commit0780060124011b94af55830939c86cc0916be0f5 (patch)
tree883a4d0ed69862ab49e6d4bf4e19debafeb5c48c /Documentation/perf_counter/Makefile
parentd24e473e5b2ca86d1288b9416227ccc603313d0f (diff)
perf_counter tools: add in basic glue from Git
First very raw version at having a central 'perf' command and a list of subcommands: perf top perf stat perf record perf report ... This is done by picking up Git's collection of utility functions, and hacking them to build fine in this new environment. Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'Documentation/perf_counter/Makefile')
-rw-r--r--Documentation/perf_counter/Makefile1037
1 files changed, 178 insertions, 859 deletions
diff --git a/Documentation/perf_counter/Makefile b/Documentation/perf_counter/Makefile
index 6e0838b03ad1..11809b943fc3 100644
--- a/Documentation/perf_counter/Makefile
+++ b/Documentation/perf_counter/Makefile
@@ -13,16 +13,9 @@ all::
13# Define NO_OPENSSL environment variable if you do not have OpenSSL. 13# Define NO_OPENSSL environment variable if you do not have OpenSSL.
14# This also implies MOZILLA_SHA1. 14# This also implies MOZILLA_SHA1.
15# 15#
16# Define NO_CURL if you do not have libcurl installed. git-http-pull and
17# git-http-push are not built, and you cannot use http:// and https://
18# transports.
19#
20# Define CURLDIR=/foo/bar if your curl header and library files are in 16# Define CURLDIR=/foo/bar if your curl header and library files are in
21# /foo/bar/include and /foo/bar/lib directories. 17# /foo/bar/include and /foo/bar/lib directories.
22# 18#
23# Define NO_EXPAT if you do not have expat installed. git-http-push is
24# not built, and you cannot push using http:// and https:// transports.
25#
26# Define EXPATDIR=/foo/bar if your expat header and library files are in 19# Define EXPATDIR=/foo/bar if your expat header and library files are in
27# /foo/bar/include and /foo/bar/lib directories. 20# /foo/bar/include and /foo/bar/lib directories.
28# 21#
@@ -40,8 +33,6 @@ all::
40# 33#
41# Define NO_MEMMEM if you don't have memmem. 34# Define NO_MEMMEM if you don't have memmem.
42# 35#
43# Define NO_STRLCPY if you don't have strlcpy.
44#
45# Define NO_STRTOUMAX if you don't have strtoumax in the C library. 36# Define NO_STRTOUMAX if you don't have strtoumax in the C library.
46# If your compiler also does not support long long or does not have 37# If your compiler also does not support long long or does not have
47# strtoull, define NO_STRTOULL. 38# strtoull, define NO_STRTOULL.
@@ -54,7 +45,7 @@ all::
54# 45#
55# Define NO_SYS_SELECT_H if you don't have sys/select.h. 46# Define NO_SYS_SELECT_H if you don't have sys/select.h.
56# 47#
57# Define NO_SYMLINK_HEAD if you never want .git/HEAD to be a symbolic link. 48# Define NO_SYMLINK_HEAD if you never want .perf/HEAD to be a symbolic link.
58# Enable it on Windows. By default, symrefs are still used. 49# Enable it on Windows. By default, symrefs are still used.
59# 50#
60# Define NO_SVN_TESTS if you want to skip time-consuming SVN interoperability 51# Define NO_SVN_TESTS if you want to skip time-consuming SVN interoperability
@@ -62,13 +53,13 @@ all::
62# but are not needed unless you plan to talk to SVN repos. 53# but are not needed unless you plan to talk to SVN repos.
63# 54#
64# Define NO_FINK if you are building on Darwin/Mac OS X, have Fink 55# Define NO_FINK if you are building on Darwin/Mac OS X, have Fink
65# installed in /sw, but don't want GIT to link against any libraries 56# installed in /sw, but don't want PERF to link against any libraries
66# installed there. If defined you may specify your own (or Fink's) 57# installed there. If defined you may specify your own (or Fink's)
67# include directories and library directories by defining CFLAGS 58# include directories and library directories by defining CFLAGS
68# and LDFLAGS appropriately. 59# and LDFLAGS appropriately.
69# 60#
70# Define NO_DARWIN_PORTS if you are building on Darwin/Mac OS X, 61# Define NO_DARWIN_PORTS if you are building on Darwin/Mac OS X,
71# have DarwinPorts installed in /opt/local, but don't want GIT to 62# have DarwinPorts installed in /opt/local, but don't want PERF to
72# link against any libraries installed there. If defined you may 63# link against any libraries installed there. If defined you may
73# specify your own (or DarwinPort's) include directories and 64# specify your own (or DarwinPort's) include directories and
74# library directories by defining CFLAGS and LDFLAGS appropriately. 65# library directories by defining CFLAGS and LDFLAGS appropriately.
@@ -120,7 +111,7 @@ all::
120# that tells runtime paths to dynamic libraries; 111# that tells runtime paths to dynamic libraries;
121# "-Wl,-rpath=/path/lib" is used instead. 112# "-Wl,-rpath=/path/lib" is used instead.
122# 113#
123# Define USE_NSEC below if you want git to care about sub-second file mtimes 114# Define USE_NSEC below if you want perf to care about sub-second file mtimes
124# and ctimes. Note that you need recent glibc (at least 2.2.4) for this, and 115# and ctimes. Note that you need recent glibc (at least 2.2.4) for this, and
125# it will BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely 116# it will BREAK YOUR LOCAL DIFFS! show-diff and anything using it will likely
126# randomly break unless your underlying filesystem supports those sub-second 117# randomly break unless your underlying filesystem supports those sub-second
@@ -132,7 +123,7 @@ all::
132# Define NO_NSEC if your "struct stat" does not have "st_ctim.tv_nsec" 123# Define NO_NSEC if your "struct stat" does not have "st_ctim.tv_nsec"
133# available. This automatically turns USE_NSEC off. 124# available. This automatically turns USE_NSEC off.
134# 125#
135# Define USE_STDEV below if you want git to care about the underlying device 126# Define USE_STDEV below if you want perf to care about the underlying device
136# change being considered an inode change from the update-index perspective. 127# change being considered an inode change from the update-index perspective.
137# 128#
138# Define NO_ST_BLOCKS_IN_STRUCT_STAT if your platform does not have st_blocks 129# Define NO_ST_BLOCKS_IN_STRUCT_STAT if your platform does not have st_blocks
@@ -150,27 +141,24 @@ all::
150# Define NO_TCLTK if you do not want Tcl/Tk GUI. 141# Define NO_TCLTK if you do not want Tcl/Tk GUI.
151# 142#
152# The TCL_PATH variable governs the location of the Tcl interpreter 143# The TCL_PATH variable governs the location of the Tcl interpreter
153# used to optimize git-gui for your system. Only used if NO_TCLTK 144# used to optimize perf-gui for your system. Only used if NO_TCLTK
154# is not set. Defaults to the bare 'tclsh'. 145# is not set. Defaults to the bare 'tclsh'.
155# 146#
156# The TCLTK_PATH variable governs the location of the Tcl/Tk interpreter. 147# The TCLTK_PATH variable governs the location of the Tcl/Tk interpreter.
157# If not set it defaults to the bare 'wish'. If it is set to the empty 148# If not set it defaults to the bare 'wish'. If it is set to the empty
158# string then NO_TCLTK will be forced (this is used by configure script). 149# string then NO_TCLTK will be forced (this is used by configure script).
159# 150#
160# Define THREADED_DELTA_SEARCH if you have pthreads and wish to exploit
161# parallel delta searching when packing objects.
162#
163# Define INTERNAL_QSORT to use Git's implementation of qsort(), which 151# Define INTERNAL_QSORT to use Git's implementation of qsort(), which
164# is a simplified version of the merge sort used in glibc. This is 152# is a simplified version of the merge sort used in glibc. This is
165# recommended if Git triggers O(n^2) behavior in your platform's qsort(). 153# recommended if Git triggers O(n^2) behavior in your platform's qsort().
166# 154#
167# Define NO_EXTERNAL_GREP if you don't want "git grep" to ever call 155# Define NO_EXTERNAL_GREP if you don't want "perf grep" to ever call
168# your external grep (e.g., if your system lacks grep, if its grep is 156# your external grep (e.g., if your system lacks grep, if its grep is
169# broken, or spawning external process is slower than built-in grep git has). 157# broken, or spawning external process is slower than built-in grep perf has).
170 158
171GIT-VERSION-FILE: .FORCE-GIT-VERSION-FILE 159PERF-VERSION-FILE: .FORCE-PERF-VERSION-FILE
172 @$(SHELL_PATH) ./GIT-VERSION-GEN 160 @$(SHELL_PATH) ./PERF-VERSION-GEN
173-include GIT-VERSION-FILE 161-include PERF-VERSION-FILE
174 162
175uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not') 163uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
176uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not') 164uname_M := $(shell sh -c 'uname -m 2>/dev/null || echo not')
@@ -182,20 +170,20 @@ uname_V := $(shell sh -c 'uname -v 2>/dev/null || echo not')
182# CFLAGS and LDFLAGS are for the users to override from the command line. 170# CFLAGS and LDFLAGS are for the users to override from the command line.
183 171
184CFLAGS = -g -O2 -Wall 172CFLAGS = -g -O2 -Wall
185LDFLAGS = 173LDFLAGS = -lpthread -lrt
186ALL_CFLAGS = $(CFLAGS) 174ALL_CFLAGS = $(CFLAGS)
187ALL_LDFLAGS = $(LDFLAGS) 175ALL_LDFLAGS = $(LDFLAGS)
188STRIP ?= strip 176STRIP ?= strip
189 177
190# Among the variables below, these: 178# Among the variables below, these:
191# gitexecdir 179# perfexecdir
192# template_dir 180# template_dir
193# mandir 181# mandir
194# infodir 182# infodir
195# htmldir 183# htmldir
196# ETC_GITCONFIG (but not sysconfdir) 184# ETC_PERFCONFIG (but not sysconfdir)
197# can be specified as a relative path some/where/else; 185# can be specified as a relative path some/where/else;
198# this is interpreted as relative to $(prefix) and "git" at 186# this is interpreted as relative to $(prefix) and "perf" at
199# runtime figures out where they are based on the path to the executable. 187# runtime figures out where they are based on the path to the executable.
200# This can help installing the suite in a relocatable way. 188# This can help installing the suite in a relocatable way.
201 189
@@ -204,38 +192,20 @@ bindir_relative = bin
204bindir = $(prefix)/$(bindir_relative) 192bindir = $(prefix)/$(bindir_relative)
205mandir = share/man 193mandir = share/man
206infodir = share/info 194infodir = share/info
207gitexecdir = libexec/git-core 195perfexecdir = libexec/perf-core
208sharedir = $(prefix)/share 196sharedir = $(prefix)/share
209template_dir = share/git-core/templates 197template_dir = share/perf-core/templates
210htmldir = share/doc/git-doc 198htmldir = share/doc/perf-doc
211ifeq ($(prefix),/usr) 199ifeq ($(prefix),/usr)
212sysconfdir = /etc 200sysconfdir = /etc
213ETC_GITCONFIG = $(sysconfdir)/gitconfig 201ETC_PERFCONFIG = $(sysconfdir)/perfconfig
214else 202else
215sysconfdir = $(prefix)/etc 203sysconfdir = $(prefix)/etc
216ETC_GITCONFIG = etc/gitconfig 204ETC_PERFCONFIG = etc/perfconfig
217endif 205endif
218lib = lib 206lib = lib
219# DESTDIR= 207# DESTDIR=
220 208
221# default configuration for gitweb
222GITWEB_CONFIG = gitweb_config.perl
223GITWEB_CONFIG_SYSTEM = /etc/gitweb.conf
224GITWEB_HOME_LINK_STR = projects
225GITWEB_SITENAME =
226GITWEB_PROJECTROOT = /pub/git
227GITWEB_PROJECT_MAXDEPTH = 2007
228GITWEB_EXPORT_OK =
229GITWEB_STRICT_EXPORT =
230GITWEB_BASE_URL =
231GITWEB_LIST =
232GITWEB_HOMETEXT = indextext.html
233GITWEB_CSS = gitweb.css
234GITWEB_LOGO = git-logo.png
235GITWEB_FAVICON = git-favicon.png
236GITWEB_SITE_HEADER =
237GITWEB_SITE_FOOTER =
238
239export prefix bindir sharedir sysconfdir 209export prefix bindir sharedir sysconfdir
240 210
241CC = gcc 211CC = gcc
@@ -277,89 +247,46 @@ SCRIPT_PERL =
277SCRIPT_SH = 247SCRIPT_SH =
278TEST_PROGRAMS = 248TEST_PROGRAMS =
279 249
280SCRIPT_SH += git-am.sh 250#
281SCRIPT_SH += git-bisect.sh 251# No scripts right now:
282SCRIPT_SH += git-difftool--helper.sh 252#
283SCRIPT_SH += git-filter-branch.sh 253
284SCRIPT_SH += git-lost-found.sh 254# SCRIPT_SH += perf-am.sh
285SCRIPT_SH += git-merge-octopus.sh 255
286SCRIPT_SH += git-merge-one-file.sh 256#
287SCRIPT_SH += git-merge-resolve.sh 257# No Perl scripts right now:
288SCRIPT_SH += git-mergetool.sh 258#
289SCRIPT_SH += git-mergetool--lib.sh 259
290SCRIPT_SH += git-parse-remote.sh 260# SCRIPT_PERL += perf-add--interactive.perl
291SCRIPT_SH += git-pull.sh
292SCRIPT_SH += git-quiltimport.sh
293SCRIPT_SH += git-rebase--interactive.sh
294SCRIPT_SH += git-rebase.sh
295SCRIPT_SH += git-repack.sh
296SCRIPT_SH += git-request-pull.sh
297SCRIPT_SH += git-sh-setup.sh
298SCRIPT_SH += git-stash.sh
299SCRIPT_SH += git-submodule.sh
300SCRIPT_SH += git-web--browse.sh
301
302SCRIPT_PERL += git-add--interactive.perl
303SCRIPT_PERL += git-difftool.perl
304SCRIPT_PERL += git-archimport.perl
305SCRIPT_PERL += git-cvsexportcommit.perl
306SCRIPT_PERL += git-cvsimport.perl
307SCRIPT_PERL += git-cvsserver.perl
308SCRIPT_PERL += git-relink.perl
309SCRIPT_PERL += git-send-email.perl
310SCRIPT_PERL += git-svn.perl
311 261
312SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \ 262SCRIPTS = $(patsubst %.sh,%,$(SCRIPT_SH)) \
313 $(patsubst %.perl,%,$(SCRIPT_PERL)) \ 263 $(patsubst %.perl,%,$(SCRIPT_PERL))
314 git-instaweb
315 264
316# Empty... 265# Empty...
317EXTRA_PROGRAMS = 266EXTRA_PROGRAMS =
318 267
319# ... and all the rest that could be moved out of bindir to gitexecdir 268# ... and all the rest that could be moved out of bindir to perfexecdir
320PROGRAMS += $(EXTRA_PROGRAMS) 269PROGRAMS += $(EXTRA_PROGRAMS)
321PROGRAMS += git-fast-import$X 270
322PROGRAMS += git-hash-object$X 271#
323PROGRAMS += git-index-pack$X 272# None right now:
324PROGRAMS += git-merge-index$X 273#
325PROGRAMS += git-merge-tree$X 274# PROGRAMS += perf-fast-import$X
326PROGRAMS += git-mktag$X
327PROGRAMS += git-mktree$X
328PROGRAMS += git-pack-redundant$X
329PROGRAMS += git-patch-id$X
330PROGRAMS += git-shell$X
331PROGRAMS += git-show-index$X
332PROGRAMS += git-unpack-file$X
333PROGRAMS += git-update-server-info$X
334PROGRAMS += git-upload-pack$X
335PROGRAMS += git-var$X
336 275
337# List built-in command $C whose implementation cmd_$C() is not in 276# List built-in command $C whose implementation cmd_$C() is not in
338# builtin-$C.o but is linked in as part of some other command. 277# builtin-$C.o but is linked in as part of some other command.
339BUILT_INS += $(patsubst builtin-%.o,git-%$X,$(BUILTIN_OBJS)) 278BUILT_INS += $(patsubst builtin-%.o,perf-%$X,$(BUILTIN_OBJS))
340 279
341BUILT_INS += git-cherry$X 280#
342BUILT_INS += git-cherry-pick$X 281# None right now:
343BUILT_INS += git-format-patch$X 282#
344BUILT_INS += git-fsck-objects$X 283# BUILT_INS += perf-init $X
345BUILT_INS += git-get-tar-commit-id$X 284
346BUILT_INS += git-init$X 285# what 'all' will build and 'install' will install, in perfexecdir
347BUILT_INS += git-merge-subtree$X
348BUILT_INS += git-peek-remote$X
349BUILT_INS += git-repo-config$X
350BUILT_INS += git-show$X
351BUILT_INS += git-stage$X
352BUILT_INS += git-status$X
353BUILT_INS += git-whatchanged$X
354
355# what 'all' will build and 'install' will install, in gitexecdir
356ALL_PROGRAMS = $(PROGRAMS) $(SCRIPTS) 286ALL_PROGRAMS = $(PROGRAMS) $(SCRIPTS)
357 287
358# what 'all' will build but not install in gitexecdir 288# what 'all' will build but not install in perfexecdir
359OTHER_PROGRAMS = git$X 289OTHER_PROGRAMS = perf$X
360ifndef NO_PERL
361OTHER_PROGRAMS += gitweb/gitweb.cgi
362endif
363 290
364# Set paths to tools early so that they can be used for version tests. 291# Set paths to tools early so that they can be used for version tests.
365ifndef SHELL_PATH 292ifndef SHELL_PATH
@@ -371,250 +298,34 @@ endif
371 298
372export PERL_PATH 299export PERL_PATH
373 300
374LIB_FILE=libgit.a 301LIB_FILE=libperf.a
375XDIFF_LIB=xdiff/lib.a 302
376 303LIB_H += ../../include/linux/perf_counter.h
377LIB_H += archive.h
378LIB_H += attr.h
379LIB_H += blob.h
380LIB_H += builtin.h
381LIB_H += cache.h
382LIB_H += cache-tree.h
383LIB_H += commit.h
384LIB_H += compat/cygwin.h
385LIB_H += compat/mingw.h
386LIB_H += csum-file.h
387LIB_H += decorate.h
388LIB_H += delta.h
389LIB_H += diffcore.h
390LIB_H += diff.h
391LIB_H += dir.h
392LIB_H += fsck.h
393LIB_H += git-compat-util.h
394LIB_H += graph.h
395LIB_H += grep.h
396LIB_H += hash.h
397LIB_H += help.h
398LIB_H += levenshtein.h 304LIB_H += levenshtein.h
399LIB_H += list-objects.h
400LIB_H += ll-merge.h
401LIB_H += log-tree.h
402LIB_H += mailmap.h
403LIB_H += merge-recursive.h
404LIB_H += object.h
405LIB_H += pack.h
406LIB_H += pack-refs.h
407LIB_H += pack-revindex.h
408LIB_H += parse-options.h 305LIB_H += parse-options.h
409LIB_H += patch-ids.h
410LIB_H += pkt-line.h
411LIB_H += progress.h
412LIB_H += quote.h 306LIB_H += quote.h
413LIB_H += reflog-walk.h
414LIB_H += refs.h
415LIB_H += remote.h
416LIB_H += rerere.h
417LIB_H += revision.h
418LIB_H += run-command.h
419LIB_H += sha1-lookup.h
420LIB_H += sideband.h
421LIB_H += sigchain.h
422LIB_H += strbuf.h 307LIB_H += strbuf.h
423LIB_H += string-list.h 308LIB_H += run-command.h
424LIB_H += tag.h
425LIB_H += transport.h
426LIB_H += tree.h
427LIB_H += tree-walk.h
428LIB_H += unpack-trees.h
429LIB_H += userdiff.h
430LIB_H += utf8.h
431LIB_H += wt-status.h
432 309
433LIB_OBJS += abspath.o 310LIB_OBJS += abspath.o
434LIB_OBJS += alias.o 311LIB_OBJS += alias.o
435LIB_OBJS += alloc.o
436LIB_OBJS += archive.o
437LIB_OBJS += archive-tar.o
438LIB_OBJS += archive-zip.o
439LIB_OBJS += attr.o
440LIB_OBJS += base85.o
441LIB_OBJS += bisect.o
442LIB_OBJS += blob.o
443LIB_OBJS += branch.o
444LIB_OBJS += bundle.o
445LIB_OBJS += cache-tree.o
446LIB_OBJS += color.o
447LIB_OBJS += combine-diff.o
448LIB_OBJS += commit.o
449LIB_OBJS += config.o 312LIB_OBJS += config.o
450LIB_OBJS += connect.o
451LIB_OBJS += convert.o
452LIB_OBJS += copy.o
453LIB_OBJS += csum-file.o
454LIB_OBJS += ctype.o 313LIB_OBJS += ctype.o
455LIB_OBJS += date.o
456LIB_OBJS += decorate.o
457LIB_OBJS += diffcore-break.o
458LIB_OBJS += diffcore-delta.o
459LIB_OBJS += diffcore-order.o
460LIB_OBJS += diffcore-pickaxe.o
461LIB_OBJS += diffcore-rename.o
462LIB_OBJS += diff-delta.o
463LIB_OBJS += diff-lib.o
464LIB_OBJS += diff-no-index.o
465LIB_OBJS += diff.o
466LIB_OBJS += dir.o
467LIB_OBJS += editor.o
468LIB_OBJS += entry.o
469LIB_OBJS += environment.o
470LIB_OBJS += exec_cmd.o 314LIB_OBJS += exec_cmd.o
471LIB_OBJS += fsck.o
472LIB_OBJS += graph.o
473LIB_OBJS += grep.o
474LIB_OBJS += hash.o
475LIB_OBJS += help.o 315LIB_OBJS += help.o
476LIB_OBJS += ident.o
477LIB_OBJS += levenshtein.o 316LIB_OBJS += levenshtein.o
478LIB_OBJS += list-objects.o
479LIB_OBJS += ll-merge.o
480LIB_OBJS += lockfile.o
481LIB_OBJS += log-tree.o
482LIB_OBJS += mailmap.o
483LIB_OBJS += match-trees.o
484LIB_OBJS += merge-file.o
485LIB_OBJS += merge-recursive.o
486LIB_OBJS += name-hash.o
487LIB_OBJS += object.o
488LIB_OBJS += pack-check.o
489LIB_OBJS += pack-refs.o
490LIB_OBJS += pack-revindex.o
491LIB_OBJS += pack-write.o
492LIB_OBJS += pager.o
493LIB_OBJS += parse-options.o 317LIB_OBJS += parse-options.o
494LIB_OBJS += patch-delta.o
495LIB_OBJS += patch-ids.o
496LIB_OBJS += path.o 318LIB_OBJS += path.o
497LIB_OBJS += pkt-line.o
498LIB_OBJS += preload-index.o
499LIB_OBJS += pretty.o
500LIB_OBJS += progress.o
501LIB_OBJS += quote.o
502LIB_OBJS += reachable.o
503LIB_OBJS += read-cache.o
504LIB_OBJS += reflog-walk.o
505LIB_OBJS += refs.o
506LIB_OBJS += remote.o
507LIB_OBJS += rerere.o
508LIB_OBJS += revision.o
509LIB_OBJS += run-command.o 319LIB_OBJS += run-command.o
510LIB_OBJS += server-info.o 320LIB_OBJS += quote.o
511LIB_OBJS += setup.o
512LIB_OBJS += sha1-lookup.o
513LIB_OBJS += sha1_file.o
514LIB_OBJS += sha1_name.o
515LIB_OBJS += shallow.o
516LIB_OBJS += sideband.o
517LIB_OBJS += sigchain.o
518LIB_OBJS += strbuf.o 321LIB_OBJS += strbuf.o
519LIB_OBJS += string-list.o
520LIB_OBJS += symlinks.o
521LIB_OBJS += tag.o
522LIB_OBJS += trace.o
523LIB_OBJS += transport.o
524LIB_OBJS += tree-diff.o
525LIB_OBJS += tree.o
526LIB_OBJS += tree-walk.o
527LIB_OBJS += unpack-trees.o
528LIB_OBJS += usage.o 322LIB_OBJS += usage.o
529LIB_OBJS += userdiff.o
530LIB_OBJS += utf8.o
531LIB_OBJS += walker.o
532LIB_OBJS += wrapper.o 323LIB_OBJS += wrapper.o
533LIB_OBJS += write_or_die.o 324
534LIB_OBJS += ws.o
535LIB_OBJS += wt-status.o
536LIB_OBJS += xdiff-interface.o
537
538BUILTIN_OBJS += builtin-add.o
539BUILTIN_OBJS += builtin-annotate.o
540BUILTIN_OBJS += builtin-apply.o
541BUILTIN_OBJS += builtin-archive.o
542BUILTIN_OBJS += builtin-bisect--helper.o
543BUILTIN_OBJS += builtin-blame.o
544BUILTIN_OBJS += builtin-branch.o
545BUILTIN_OBJS += builtin-bundle.o
546BUILTIN_OBJS += builtin-cat-file.o
547BUILTIN_OBJS += builtin-check-attr.o
548BUILTIN_OBJS += builtin-check-ref-format.o
549BUILTIN_OBJS += builtin-checkout-index.o
550BUILTIN_OBJS += builtin-checkout.o
551BUILTIN_OBJS += builtin-clean.o
552BUILTIN_OBJS += builtin-clone.o
553BUILTIN_OBJS += builtin-commit-tree.o
554BUILTIN_OBJS += builtin-commit.o
555BUILTIN_OBJS += builtin-config.o
556BUILTIN_OBJS += builtin-count-objects.o
557BUILTIN_OBJS += builtin-describe.o
558BUILTIN_OBJS += builtin-diff-files.o
559BUILTIN_OBJS += builtin-diff-index.o
560BUILTIN_OBJS += builtin-diff-tree.o
561BUILTIN_OBJS += builtin-diff.o
562BUILTIN_OBJS += builtin-fast-export.o
563BUILTIN_OBJS += builtin-fetch--tool.o
564BUILTIN_OBJS += builtin-fetch-pack.o
565BUILTIN_OBJS += builtin-fetch.o
566BUILTIN_OBJS += builtin-fmt-merge-msg.o
567BUILTIN_OBJS += builtin-for-each-ref.o
568BUILTIN_OBJS += builtin-fsck.o
569BUILTIN_OBJS += builtin-gc.o
570BUILTIN_OBJS += builtin-grep.o
571BUILTIN_OBJS += builtin-help.o 325BUILTIN_OBJS += builtin-help.o
572BUILTIN_OBJS += builtin-init-db.o 326BUILTIN_OBJS += builtin-top.o
573BUILTIN_OBJS += builtin-log.o 327
574BUILTIN_OBJS += builtin-ls-files.o 328PERFLIBS = $(LIB_FILE)
575BUILTIN_OBJS += builtin-ls-remote.o
576BUILTIN_OBJS += builtin-ls-tree.o
577BUILTIN_OBJS += builtin-mailinfo.o
578BUILTIN_OBJS += builtin-mailsplit.o
579BUILTIN_OBJS += builtin-merge.o
580BUILTIN_OBJS += builtin-merge-base.o
581BUILTIN_OBJS += builtin-merge-file.o
582BUILTIN_OBJS += builtin-merge-ours.o
583BUILTIN_OBJS += builtin-merge-recursive.o
584BUILTIN_OBJS += builtin-mv.o
585BUILTIN_OBJS += builtin-name-rev.o
586BUILTIN_OBJS += builtin-pack-objects.o
587BUILTIN_OBJS += builtin-pack-refs.o
588BUILTIN_OBJS += builtin-prune-packed.o
589BUILTIN_OBJS += builtin-prune.o
590BUILTIN_OBJS += builtin-push.o
591BUILTIN_OBJS += builtin-read-tree.o
592BUILTIN_OBJS += builtin-receive-pack.o
593BUILTIN_OBJS += builtin-reflog.o
594BUILTIN_OBJS += builtin-remote.o
595BUILTIN_OBJS += builtin-rerere.o
596BUILTIN_OBJS += builtin-reset.o
597BUILTIN_OBJS += builtin-rev-list.o
598BUILTIN_OBJS += builtin-rev-parse.o
599BUILTIN_OBJS += builtin-revert.o
600BUILTIN_OBJS += builtin-rm.o
601BUILTIN_OBJS += builtin-send-pack.o
602BUILTIN_OBJS += builtin-shortlog.o
603BUILTIN_OBJS += builtin-show-branch.o
604BUILTIN_OBJS += builtin-show-ref.o
605BUILTIN_OBJS += builtin-stripspace.o
606BUILTIN_OBJS += builtin-symbolic-ref.o
607BUILTIN_OBJS += builtin-tag.o
608BUILTIN_OBJS += builtin-tar-tree.o
609BUILTIN_OBJS += builtin-unpack-objects.o
610BUILTIN_OBJS += builtin-update-index.o
611BUILTIN_OBJS += builtin-update-ref.o
612BUILTIN_OBJS += builtin-upload-archive.o
613BUILTIN_OBJS += builtin-verify-pack.o
614BUILTIN_OBJS += builtin-verify-tag.o
615BUILTIN_OBJS += builtin-write-tree.o
616
617GITLIBS = $(LIB_FILE) $(XDIFF_LIB)
618EXTLIBS = 329EXTLIBS =
619 330
620# 331#
@@ -625,221 +336,6 @@ EXTLIBS =
625# because maintaining the nesting to match is a pain. If 336# because maintaining the nesting to match is a pain. If
626# we had "elif" things would have been much nicer... 337# we had "elif" things would have been much nicer...
627 338
628ifeq ($(uname_S),Linux)
629 NO_STRLCPY = YesPlease
630 THREADED_DELTA_SEARCH = YesPlease
631endif
632ifeq ($(uname_S),GNU/kFreeBSD)
633 NO_STRLCPY = YesPlease
634 THREADED_DELTA_SEARCH = YesPlease
635endif
636ifeq ($(uname_S),UnixWare)
637 CC = cc
638 NEEDS_SOCKET = YesPlease
639 NEEDS_NSL = YesPlease
640 NEEDS_SSL_WITH_CRYPTO = YesPlease
641 NEEDS_LIBICONV = YesPlease
642 SHELL_PATH = /usr/local/bin/bash
643 NO_IPV6 = YesPlease
644 NO_HSTRERROR = YesPlease
645 BASIC_CFLAGS += -Kthread
646 BASIC_CFLAGS += -I/usr/local/include
647 BASIC_LDFLAGS += -L/usr/local/lib
648 INSTALL = ginstall
649 TAR = gtar
650 NO_STRCASESTR = YesPlease
651 NO_MEMMEM = YesPlease
652endif
653ifeq ($(uname_S),SCO_SV)
654 ifeq ($(uname_R),3.2)
655 CFLAGS = -O2
656 endif
657 ifeq ($(uname_R),5)
658 CC = cc
659 BASIC_CFLAGS += -Kthread
660 endif
661 NEEDS_SOCKET = YesPlease
662 NEEDS_NSL = YesPlease
663 NEEDS_SSL_WITH_CRYPTO = YesPlease
664 NEEDS_LIBICONV = YesPlease
665 SHELL_PATH = /usr/bin/bash
666 NO_IPV6 = YesPlease
667 NO_HSTRERROR = YesPlease
668 BASIC_CFLAGS += -I/usr/local/include
669 BASIC_LDFLAGS += -L/usr/local/lib
670 NO_STRCASESTR = YesPlease
671 NO_MEMMEM = YesPlease
672 INSTALL = ginstall
673 TAR = gtar
674endif
675ifeq ($(uname_S),Darwin)
676 NEEDS_SSL_WITH_CRYPTO = YesPlease
677 NEEDS_LIBICONV = YesPlease
678 ifeq ($(shell expr "$(uname_R)" : '[15678]\.'),2)
679 OLD_ICONV = UnfortunatelyYes
680 endif
681 ifeq ($(shell expr "$(uname_R)" : '[15]\.'),2)
682 NO_STRLCPY = YesPlease
683 endif
684 NO_MEMMEM = YesPlease
685 THREADED_DELTA_SEARCH = YesPlease
686 USE_ST_TIMESPEC = YesPlease
687endif
688ifeq ($(uname_S),SunOS)
689 NEEDS_SOCKET = YesPlease
690 NEEDS_NSL = YesPlease
691 SHELL_PATH = /bin/bash
692 NO_STRCASESTR = YesPlease
693 NO_MEMMEM = YesPlease
694 NO_HSTRERROR = YesPlease
695 NO_MKDTEMP = YesPlease
696 OLD_ICONV = UnfortunatelyYes
697 ifeq ($(uname_R),5.8)
698 NO_UNSETENV = YesPlease
699 NO_SETENV = YesPlease
700 NO_C99_FORMAT = YesPlease
701 NO_STRTOUMAX = YesPlease
702 endif
703 ifeq ($(uname_R),5.9)
704 NO_UNSETENV = YesPlease
705 NO_SETENV = YesPlease
706 NO_C99_FORMAT = YesPlease
707 NO_STRTOUMAX = YesPlease
708 endif
709 INSTALL = ginstall
710 TAR = gtar
711 BASIC_CFLAGS += -D__EXTENSIONS__
712endif
713ifeq ($(uname_O),Cygwin)
714 NO_D_TYPE_IN_DIRENT = YesPlease
715 NO_D_INO_IN_DIRENT = YesPlease
716 NO_STRCASESTR = YesPlease
717 NO_MEMMEM = YesPlease
718 NO_SYMLINK_HEAD = YesPlease
719 NEEDS_LIBICONV = YesPlease
720 NO_FAST_WORKING_DIRECTORY = UnfortunatelyYes
721 NO_TRUSTABLE_FILEMODE = UnfortunatelyYes
722 OLD_ICONV = UnfortunatelyYes
723 # There are conflicting reports about this.
724 # On some boxes NO_MMAP is needed, and not so elsewhere.
725 # Try commenting this out if you suspect MMAP is more efficient
726 NO_MMAP = YesPlease
727 NO_IPV6 = YesPlease
728 X = .exe
729endif
730ifeq ($(uname_S),FreeBSD)
731 NEEDS_LIBICONV = YesPlease
732 NO_MEMMEM = YesPlease
733 BASIC_CFLAGS += -I/usr/local/include
734 BASIC_LDFLAGS += -L/usr/local/lib
735 DIR_HAS_BSD_GROUP_SEMANTICS = YesPlease
736 USE_ST_TIMESPEC = YesPlease
737 THREADED_DELTA_SEARCH = YesPlease
738 ifeq ($(shell expr "$(uname_R)" : '4\.'),2)
739 PTHREAD_LIBS = -pthread
740 NO_UINTMAX_T = YesPlease
741 NO_STRTOUMAX = YesPlease
742 endif
743endif
744ifeq ($(uname_S),OpenBSD)
745 NO_STRCASESTR = YesPlease
746 NO_MEMMEM = YesPlease
747 NEEDS_LIBICONV = YesPlease
748 BASIC_CFLAGS += -I/usr/local/include
749 BASIC_LDFLAGS += -L/usr/local/lib
750 THREADED_DELTA_SEARCH = YesPlease
751endif
752ifeq ($(uname_S),NetBSD)
753 ifeq ($(shell expr "$(uname_R)" : '[01]\.'),2)
754 NEEDS_LIBICONV = YesPlease
755 endif
756 BASIC_CFLAGS += -I/usr/pkg/include
757 BASIC_LDFLAGS += -L/usr/pkg/lib $(CC_LD_DYNPATH)/usr/pkg/lib
758 THREADED_DELTA_SEARCH = YesPlease
759endif
760ifeq ($(uname_S),AIX)
761 NO_STRCASESTR=YesPlease
762 NO_MEMMEM = YesPlease
763 NO_MKDTEMP = YesPlease
764 NO_STRLCPY = YesPlease
765 NO_NSEC = YesPlease
766 FREAD_READS_DIRECTORIES = UnfortunatelyYes
767 INTERNAL_QSORT = UnfortunatelyYes
768 NEEDS_LIBICONV=YesPlease
769 BASIC_CFLAGS += -D_LARGE_FILES
770 ifneq ($(shell expr "$(uname_V)" : '[1234]'),1)
771 THREADED_DELTA_SEARCH = YesPlease
772 else
773 NO_PTHREADS = YesPlease
774 endif
775endif
776ifeq ($(uname_S),GNU)
777 # GNU/Hurd
778 NO_STRLCPY=YesPlease
779endif
780ifeq ($(uname_S),IRIX64)
781 NO_IPV6=YesPlease
782 NO_SETENV=YesPlease
783 NO_STRCASESTR=YesPlease
784 NO_MEMMEM = YesPlease
785 NO_STRLCPY = YesPlease
786 NO_SOCKADDR_STORAGE=YesPlease
787 SHELL_PATH=/usr/gnu/bin/bash
788 BASIC_CFLAGS += -DPATH_MAX=1024
789 # for now, build 32-bit version
790 BASIC_LDFLAGS += -L/usr/lib32
791endif
792ifeq ($(uname_S),HP-UX)
793 NO_IPV6=YesPlease
794 NO_SETENV=YesPlease
795 NO_STRCASESTR=YesPlease
796 NO_MEMMEM = YesPlease
797 NO_STRLCPY = YesPlease
798 NO_MKDTEMP = YesPlease
799 NO_UNSETENV = YesPlease
800 NO_HSTRERROR = YesPlease
801 NO_SYS_SELECT_H = YesPlease
802 SNPRINTF_RETURNS_BOGUS = YesPlease
803endif
804ifneq (,$(findstring CYGWIN,$(uname_S)))
805 COMPAT_OBJS += compat/cygwin.o
806endif
807ifneq (,$(findstring MINGW,$(uname_S)))
808 NO_PREAD = YesPlease
809 NO_OPENSSL = YesPlease
810 NO_CURL = YesPlease
811 NO_SYMLINK_HEAD = YesPlease
812 NO_IPV6 = YesPlease
813 NO_SETENV = YesPlease
814 NO_UNSETENV = YesPlease
815 NO_STRCASESTR = YesPlease
816 NO_STRLCPY = YesPlease
817 NO_MEMMEM = YesPlease
818 NO_PTHREADS = YesPlease
819 NEEDS_LIBICONV = YesPlease
820 OLD_ICONV = YesPlease
821 NO_C99_FORMAT = YesPlease
822 NO_STRTOUMAX = YesPlease
823 NO_MKDTEMP = YesPlease
824 SNPRINTF_RETURNS_BOGUS = YesPlease
825 NO_SVN_TESTS = YesPlease
826 NO_PERL_MAKEMAKER = YesPlease
827 RUNTIME_PREFIX = YesPlease
828 NO_POSIX_ONLY_PROGRAMS = YesPlease
829 NO_ST_BLOCKS_IN_STRUCT_STAT = YesPlease
830 NO_NSEC = YesPlease
831 USE_WIN32_MMAP = YesPlease
832 COMPAT_CFLAGS += -D__USE_MINGW_ACCESS -DNOGDI -Icompat -Icompat/regex -Icompat/fnmatch
833 COMPAT_CFLAGS += -DSNPRINTF_SIZE_CORR=1
834 COMPAT_CFLAGS += -DSTRIP_EXTENSION=\".exe\"
835 COMPAT_OBJS += compat/mingw.o compat/fnmatch/fnmatch.o compat/regex/regex.o compat/winansi.o
836 EXTLIBS += -lws2_32
837 X = .exe
838endif
839ifneq (,$(findstring arm,$(uname_M)))
840 ARM_SHA1 = YesPlease
841endif
842
843-include config.mak.autogen 339-include config.mak.autogen
844-include config.mak 340-include config.mak
845 341
@@ -869,72 +365,12 @@ ifndef CC_LD_DYNPATH
869 endif 365 endif
870endif 366endif
871 367
872ifdef NO_CURL
873 BASIC_CFLAGS += -DNO_CURL
874else
875 ifdef CURLDIR
876 # Try "-Wl,-rpath=$(CURLDIR)/$(lib)" in such a case.
877 BASIC_CFLAGS += -I$(CURLDIR)/include
878 CURL_LIBCURL = -L$(CURLDIR)/$(lib) $(CC_LD_DYNPATH)$(CURLDIR)/$(lib) -lcurl
879 else
880 CURL_LIBCURL = -lcurl
881 endif
882 BUILTIN_OBJS += builtin-http-fetch.o
883 EXTLIBS += $(CURL_LIBCURL)
884 LIB_OBJS += http.o http-walker.o
885 curl_check := $(shell (echo 070908; curl-config --vernum) | sort -r | sed -ne 2p)
886 ifeq "$(curl_check)" "070908"
887 ifndef NO_EXPAT
888 PROGRAMS += git-http-push$X
889 endif
890 endif
891 ifndef NO_EXPAT
892 ifdef EXPATDIR
893 BASIC_CFLAGS += -I$(EXPATDIR)/include
894 EXPAT_LIBEXPAT = -L$(EXPATDIR)/$(lib) $(CC_LD_DYNPATH)$(EXPATDIR)/$(lib) -lexpat
895 else
896 EXPAT_LIBEXPAT = -lexpat
897 endif
898 endif
899endif
900
901ifdef ZLIB_PATH 368ifdef ZLIB_PATH
902 BASIC_CFLAGS += -I$(ZLIB_PATH)/include 369 BASIC_CFLAGS += -I$(ZLIB_PATH)/include
903 EXTLIBS += -L$(ZLIB_PATH)/$(lib) $(CC_LD_DYNPATH)$(ZLIB_PATH)/$(lib) 370 EXTLIBS += -L$(ZLIB_PATH)/$(lib) $(CC_LD_DYNPATH)$(ZLIB_PATH)/$(lib)
904endif 371endif
905EXTLIBS += -lz 372EXTLIBS += -lz
906 373
907ifndef NO_POSIX_ONLY_PROGRAMS
908 PROGRAMS += git-daemon$X
909 PROGRAMS += git-imap-send$X
910endif
911ifndef NO_OPENSSL
912 OPENSSL_LIBSSL = -lssl
913 ifdef OPENSSLDIR
914 BASIC_CFLAGS += -I$(OPENSSLDIR)/include
915 OPENSSL_LINK = -L$(OPENSSLDIR)/$(lib) $(CC_LD_DYNPATH)$(OPENSSLDIR)/$(lib)
916 else
917 OPENSSL_LINK =
918 endif
919else
920 BASIC_CFLAGS += -DNO_OPENSSL
921 MOZILLA_SHA1 = 1
922 OPENSSL_LIBSSL =
923endif
924ifdef NEEDS_SSL_WITH_CRYPTO
925 LIB_4_CRYPTO = $(OPENSSL_LINK) -lcrypto -lssl
926else
927 LIB_4_CRYPTO = $(OPENSSL_LINK) -lcrypto
928endif
929ifdef NEEDS_LIBICONV
930 ifdef ICONVDIR
931 BASIC_CFLAGS += -I$(ICONVDIR)/include
932 ICONV_LINK = -L$(ICONVDIR)/$(lib) $(CC_LD_DYNPATH)$(ICONVDIR)/$(lib)
933 else
934 ICONV_LINK =
935 endif
936 EXTLIBS += $(ICONV_LINK) -liconv
937endif
938ifdef NEEDS_SOCKET 374ifdef NEEDS_SOCKET
939 EXTLIBS += -lsocket 375 EXTLIBS += -lsocket
940endif 376endif
@@ -977,10 +413,6 @@ ifdef NO_STRCASESTR
977 COMPAT_CFLAGS += -DNO_STRCASESTR 413 COMPAT_CFLAGS += -DNO_STRCASESTR
978 COMPAT_OBJS += compat/strcasestr.o 414 COMPAT_OBJS += compat/strcasestr.o
979endif 415endif
980ifdef NO_STRLCPY
981 COMPAT_CFLAGS += -DNO_STRLCPY
982 COMPAT_OBJS += compat/strlcpy.o
983endif
984ifdef NO_STRTOUMAX 416ifdef NO_STRTOUMAX
985 COMPAT_CFLAGS += -DNO_STRTOUMAX 417 COMPAT_CFLAGS += -DNO_STRTOUMAX
986 COMPAT_OBJS += compat/strtoumax.o 418 COMPAT_OBJS += compat/strtoumax.o
@@ -1090,17 +522,6 @@ ifdef RUNTIME_PREFIX
1090 COMPAT_CFLAGS += -DRUNTIME_PREFIX 522 COMPAT_CFLAGS += -DRUNTIME_PREFIX
1091endif 523endif
1092 524
1093ifdef NO_PTHREADS
1094 THREADED_DELTA_SEARCH =
1095 BASIC_CFLAGS += -DNO_PTHREADS
1096else
1097 EXTLIBS += $(PTHREAD_LIBS)
1098endif
1099
1100ifdef THREADED_DELTA_SEARCH
1101 BASIC_CFLAGS += -DTHREADED_DELTA_SEARCH
1102 LIB_OBJS += thread-utils.o
1103endif
1104ifdef DIR_HAS_BSD_GROUP_SEMANTICS 525ifdef DIR_HAS_BSD_GROUP_SEMANTICS
1105 COMPAT_CFLAGS += -DDIR_HAS_BSD_GROUP_SEMANTICS 526 COMPAT_CFLAGS += -DDIR_HAS_BSD_GROUP_SEMANTICS
1106endif 527endif
@@ -1148,14 +569,14 @@ endif
1148# Shell quote (do not use $(call) to accommodate ancient setups); 569# Shell quote (do not use $(call) to accommodate ancient setups);
1149 570
1150SHA1_HEADER_SQ = $(subst ','\'',$(SHA1_HEADER)) 571SHA1_HEADER_SQ = $(subst ','\'',$(SHA1_HEADER))
1151ETC_GITCONFIG_SQ = $(subst ','\'',$(ETC_GITCONFIG)) 572ETC_PERFCONFIG_SQ = $(subst ','\'',$(ETC_PERFCONFIG))
1152 573
1153DESTDIR_SQ = $(subst ','\'',$(DESTDIR)) 574DESTDIR_SQ = $(subst ','\'',$(DESTDIR))
1154bindir_SQ = $(subst ','\'',$(bindir)) 575bindir_SQ = $(subst ','\'',$(bindir))
1155bindir_relative_SQ = $(subst ','\'',$(bindir_relative)) 576bindir_relative_SQ = $(subst ','\'',$(bindir_relative))
1156mandir_SQ = $(subst ','\'',$(mandir)) 577mandir_SQ = $(subst ','\'',$(mandir))
1157infodir_SQ = $(subst ','\'',$(infodir)) 578infodir_SQ = $(subst ','\'',$(infodir))
1158gitexecdir_SQ = $(subst ','\'',$(gitexecdir)) 579perfexecdir_SQ = $(subst ','\'',$(perfexecdir))
1159template_dir_SQ = $(subst ','\'',$(template_dir)) 580template_dir_SQ = $(subst ','\'',$(template_dir))
1160htmldir_SQ = $(subst ','\'',$(htmldir)) 581htmldir_SQ = $(subst ','\'',$(htmldir))
1161prefix_SQ = $(subst ','\'',$(prefix)) 582prefix_SQ = $(subst ','\'',$(prefix))
@@ -1164,7 +585,7 @@ SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
1164PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH)) 585PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH))
1165TCLTK_PATH_SQ = $(subst ','\'',$(TCLTK_PATH)) 586TCLTK_PATH_SQ = $(subst ','\'',$(TCLTK_PATH))
1166 587
1167LIBS = $(GITLIBS) $(EXTLIBS) 588LIBS = $(PERFLIBS) $(EXTLIBS)
1168 589
1169BASIC_CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER_SQ)' \ 590BASIC_CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER_SQ)' \
1170 $(COMPAT_CFLAGS) 591 $(COMPAT_CFLAGS)
@@ -1180,15 +601,15 @@ export TAR INSTALL DESTDIR SHELL_PATH
1180 601
1181SHELL = $(SHELL_PATH) 602SHELL = $(SHELL_PATH)
1182 603
1183all:: shell_compatibility_test $(ALL_PROGRAMS) $(BUILT_INS) $(OTHER_PROGRAMS) GIT-BUILD-OPTIONS 604all:: shell_compatibility_test $(ALL_PROGRAMS) $(BUILT_INS) $(OTHER_PROGRAMS) PERF-BUILD-OPTIONS
1184ifneq (,$X) 605ifneq (,$X)
1185 $(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) git$X)), test '$p' -ef '$p$X' || $(RM) '$p';) 606 $(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) perf$X)), test '$p' -ef '$p$X' || $(RM) '$p';)
1186endif 607endif
1187 608
1188all:: 609all::
1189ifndef NO_TCLTK 610ifndef NO_TCLTK
1190 $(QUIET_SUBDIR0)git-gui $(QUIET_SUBDIR1) gitexecdir='$(gitexec_instdir_SQ)' all 611 $(QUIET_SUBDIR0)perf-gui $(QUIET_SUBDIR1) perfexecdir='$(perfexec_instdir_SQ)' all
1191 $(QUIET_SUBDIR0)gitk-git $(QUIET_SUBDIR1) all 612 $(QUIET_SUBDIR0)perfk-perf $(QUIET_SUBDIR1) all
1192endif 613endif
1193ifndef NO_PERL 614ifndef NO_PERL
1194 $(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' all 615 $(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' all
@@ -1200,33 +621,33 @@ please_set_SHELL_PATH_to_a_more_modern_shell:
1200 621
1201shell_compatibility_test: please_set_SHELL_PATH_to_a_more_modern_shell 622shell_compatibility_test: please_set_SHELL_PATH_to_a_more_modern_shell
1202 623
1203strip: $(PROGRAMS) git$X 624strip: $(PROGRAMS) perf$X
1204 $(STRIP) $(STRIP_OPTS) $(PROGRAMS) git$X 625 $(STRIP) $(STRIP_OPTS) $(PROGRAMS) perf$X
1205 626
1206git.o: git.c common-cmds.h GIT-CFLAGS 627perf.o: perf.c common-cmds.h PERF-CFLAGS
1207 $(QUIET_CC)$(CC) -DGIT_VERSION='"$(GIT_VERSION)"' \ 628 $(QUIET_CC)$(CC) -DPERF_VERSION='"$(PERF_VERSION)"' \
1208 '-DGIT_HTML_PATH="$(htmldir_SQ)"' \ 629 '-DPERF_HTML_PATH="$(htmldir_SQ)"' \
1209 $(ALL_CFLAGS) -c $(filter %.c,$^) 630 $(ALL_CFLAGS) -c $(filter %.c,$^)
1210 631
1211git$X: git.o $(BUILTIN_OBJS) $(GITLIBS) 632perf$X: perf.o $(BUILTIN_OBJS) $(PERFLIBS)
1212 $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ git.o \ 633 $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ perf.o \
1213 $(BUILTIN_OBJS) $(ALL_LDFLAGS) $(LIBS) 634 $(BUILTIN_OBJS) $(ALL_LDFLAGS) $(LIBS)
1214 635
1215builtin-help.o: builtin-help.c common-cmds.h GIT-CFLAGS 636builtin-help.o: builtin-help.c common-cmds.h PERF-CFLAGS
1216 $(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) \ 637 $(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) \
1217 '-DGIT_HTML_PATH="$(htmldir_SQ)"' \ 638 '-DPERF_HTML_PATH="$(htmldir_SQ)"' \
1218 '-DGIT_MAN_PATH="$(mandir_SQ)"' \ 639 '-DPERF_MAN_PATH="$(mandir_SQ)"' \
1219 '-DGIT_INFO_PATH="$(infodir_SQ)"' $< 640 '-DPERF_INFO_PATH="$(infodir_SQ)"' $<
1220 641
1221$(BUILT_INS): git$X 642$(BUILT_INS): perf$X
1222 $(QUIET_BUILT_IN)$(RM) $@ && \ 643 $(QUIET_BUILT_IN)$(RM) $@ && \
1223 ln git$X $@ 2>/dev/null || \ 644 ln perf$X $@ 2>/dev/null || \
1224 ln -s git$X $@ 2>/dev/null || \ 645 ln -s perf$X $@ 2>/dev/null || \
1225 cp git$X $@ 646 cp perf$X $@
1226 647
1227common-cmds.h: ./generate-cmdlist.sh command-list.txt 648common-cmds.h: ./generate-cmdlist.sh command-list.txt
1228 649
1229common-cmds.h: $(wildcard Documentation/git-*.txt) 650common-cmds.h: $(wildcard Documentation/perf-*.txt)
1230 $(QUIET_GEN)./generate-cmdlist.sh > $@+ && mv $@+ $@ 651 $(QUIET_GEN)./generate-cmdlist.sh > $@+ && mv $@+ $@
1231 652
1232$(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh 653$(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
@@ -1234,152 +655,55 @@ $(patsubst %.sh,%,$(SCRIPT_SH)) : % : %.sh
1234 sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \ 655 sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
1235 -e 's|@SHELL_PATH@|$(SHELL_PATH_SQ)|' \ 656 -e 's|@SHELL_PATH@|$(SHELL_PATH_SQ)|' \
1236 -e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \ 657 -e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \
1237 -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \ 658 -e 's/@@PERF_VERSION@@/$(PERF_VERSION)/g' \
1238 -e 's/@@NO_CURL@@/$(NO_CURL)/g' \ 659 -e 's/@@NO_CURL@@/$(NO_CURL)/g' \
1239 $@.sh >$@+ && \ 660 $@.sh >$@+ && \
1240 chmod +x $@+ && \ 661 chmod +x $@+ && \
1241 mv $@+ $@ 662 mv $@+ $@
1242 663
1243ifndef NO_PERL
1244$(patsubst %.perl,%,$(SCRIPT_PERL)): perl/perl.mak
1245
1246perl/perl.mak: GIT-CFLAGS perl/Makefile perl/Makefile.PL
1247 $(QUIET_SUBDIR0)perl $(QUIET_SUBDIR1) PERL_PATH='$(PERL_PATH_SQ)' prefix='$(prefix_SQ)' $(@F)
1248
1249$(patsubst %.perl,%,$(SCRIPT_PERL)): % : %.perl
1250 $(QUIET_GEN)$(RM) $@ $@+ && \
1251 INSTLIBDIR=`MAKEFLAGS= $(MAKE) -C perl -s --no-print-directory instlibdir` && \
1252 sed -e '1{' \
1253 -e ' s|#!.*perl|#!$(PERL_PATH_SQ)|' \
1254 -e ' h' \
1255 -e ' s=.*=use lib (split(/:/, $$ENV{GITPERLLIB} || "@@INSTLIBDIR@@"));=' \
1256 -e ' H' \
1257 -e ' x' \
1258 -e '}' \
1259 -e 's|@@INSTLIBDIR@@|'"$$INSTLIBDIR"'|g' \
1260 -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
1261 $@.perl >$@+ && \
1262 chmod +x $@+ && \
1263 mv $@+ $@
1264
1265gitweb/gitweb.cgi: gitweb/gitweb.perl
1266 $(QUIET_GEN)$(RM) $@ $@+ && \
1267 sed -e '1s|#!.*perl|#!$(PERL_PATH_SQ)|' \
1268 -e 's|++GIT_VERSION++|$(GIT_VERSION)|g' \
1269 -e 's|++GIT_BINDIR++|$(bindir)|g' \
1270 -e 's|++GITWEB_CONFIG++|$(GITWEB_CONFIG)|g' \
1271 -e 's|++GITWEB_CONFIG_SYSTEM++|$(GITWEB_CONFIG_SYSTEM)|g' \
1272 -e 's|++GITWEB_HOME_LINK_STR++|$(GITWEB_HOME_LINK_STR)|g' \
1273 -e 's|++GITWEB_SITENAME++|$(GITWEB_SITENAME)|g' \
1274 -e 's|++GITWEB_PROJECTROOT++|$(GITWEB_PROJECTROOT)|g' \
1275 -e 's|"++GITWEB_PROJECT_MAXDEPTH++"|$(GITWEB_PROJECT_MAXDEPTH)|g' \
1276 -e 's|++GITWEB_EXPORT_OK++|$(GITWEB_EXPORT_OK)|g' \
1277 -e 's|++GITWEB_STRICT_EXPORT++|$(GITWEB_STRICT_EXPORT)|g' \
1278 -e 's|++GITWEB_BASE_URL++|$(GITWEB_BASE_URL)|g' \
1279 -e 's|++GITWEB_LIST++|$(GITWEB_LIST)|g' \
1280 -e 's|++GITWEB_HOMETEXT++|$(GITWEB_HOMETEXT)|g' \
1281 -e 's|++GITWEB_CSS++|$(GITWEB_CSS)|g' \
1282 -e 's|++GITWEB_LOGO++|$(GITWEB_LOGO)|g' \
1283 -e 's|++GITWEB_FAVICON++|$(GITWEB_FAVICON)|g' \
1284 -e 's|++GITWEB_SITE_HEADER++|$(GITWEB_SITE_HEADER)|g' \
1285 -e 's|++GITWEB_SITE_FOOTER++|$(GITWEB_SITE_FOOTER)|g' \
1286 $< >$@+ && \
1287 chmod +x $@+ && \
1288 mv $@+ $@
1289
1290git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/gitweb.css
1291 $(QUIET_GEN)$(RM) $@ $@+ && \
1292 sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
1293 -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
1294 -e 's/@@NO_CURL@@/$(NO_CURL)/g' \
1295 -e '/@@GITWEB_CGI@@/r gitweb/gitweb.cgi' \
1296 -e '/@@GITWEB_CGI@@/d' \
1297 -e '/@@GITWEB_CSS@@/r gitweb/gitweb.css' \
1298 -e '/@@GITWEB_CSS@@/d' \
1299 -e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \
1300 $@.sh > $@+ && \
1301 chmod +x $@+ && \
1302 mv $@+ $@
1303else # NO_PERL
1304$(patsubst %.perl,%,$(SCRIPT_PERL)) git-instaweb: % : unimplemented.sh
1305 $(QUIET_GEN)$(RM) $@ $@+ && \
1306 sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
1307 -e 's|@@REASON@@|NO_PERL=$(NO_PERL)|g' \
1308 unimplemented.sh >$@+ && \
1309 chmod +x $@+ && \
1310 mv $@+ $@
1311endif # NO_PERL
1312
1313configure: configure.ac 664configure: configure.ac
1314 $(QUIET_GEN)$(RM) $@ $<+ && \ 665 $(QUIET_GEN)$(RM) $@ $<+ && \
1315 sed -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \ 666 sed -e 's/@@PERF_VERSION@@/$(PERF_VERSION)/g' \
1316 $< > $<+ && \ 667 $< > $<+ && \
1317 autoconf -o $@ $<+ && \ 668 autoconf -o $@ $<+ && \
1318 $(RM) $<+ 669 $(RM) $<+
1319 670
1320# These can record GIT_VERSION 671# These can record PERF_VERSION
1321git.o git.spec \ 672perf.o perf.spec \
1322 $(patsubst %.sh,%,$(SCRIPT_SH)) \ 673 $(patsubst %.sh,%,$(SCRIPT_SH)) \
1323 $(patsubst %.perl,%,$(SCRIPT_PERL)) \ 674 $(patsubst %.perl,%,$(SCRIPT_PERL)) \
1324 : GIT-VERSION-FILE 675 : PERF-VERSION-FILE
1325 676
1326%.o: %.c GIT-CFLAGS 677%.o: %.c PERF-CFLAGS
1327 $(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) $< 678 $(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) $<
1328%.s: %.c GIT-CFLAGS 679%.s: %.c PERF-CFLAGS
1329 $(QUIET_CC)$(CC) -S $(ALL_CFLAGS) $< 680 $(QUIET_CC)$(CC) -S $(ALL_CFLAGS) $<
1330%.o: %.S 681%.o: %.S
1331 $(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) $< 682 $(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) $<
1332 683
1333exec_cmd.o: exec_cmd.c GIT-CFLAGS 684exec_cmd.o: exec_cmd.c PERF-CFLAGS
1334 $(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) \ 685 $(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) \
1335 '-DGIT_EXEC_PATH="$(gitexecdir_SQ)"' \ 686 '-DPERF_EXEC_PATH="$(perfexecdir_SQ)"' \
1336 '-DBINDIR="$(bindir_relative_SQ)"' \ 687 '-DBINDIR="$(bindir_relative_SQ)"' \
1337 '-DPREFIX="$(prefix_SQ)"' \ 688 '-DPREFIX="$(prefix_SQ)"' \
1338 $< 689 $<
1339 690
1340builtin-init-db.o: builtin-init-db.c GIT-CFLAGS 691builtin-init-db.o: builtin-init-db.c PERF-CFLAGS
1341 $(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) -DDEFAULT_GIT_TEMPLATE_DIR='"$(template_dir_SQ)"' $< 692 $(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) -DDEFAULT_PERF_TEMPLATE_DIR='"$(template_dir_SQ)"' $<
1342
1343config.o: config.c GIT-CFLAGS
1344 $(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) -DETC_GITCONFIG='"$(ETC_GITCONFIG_SQ)"' $<
1345 693
1346http.o: http.c GIT-CFLAGS 694config.o: config.c PERF-CFLAGS
1347 $(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) -DGIT_USER_AGENT='"git/$(GIT_VERSION)"' $< 695 $(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) -DETC_PERFCONFIG='"$(ETC_PERFCONFIG_SQ)"' $<
1348 696
1349ifdef NO_EXPAT 697perf-%$X: %.o $(PERFLIBS)
1350http-walker.o: http-walker.c http.h GIT-CFLAGS
1351 $(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) -DNO_EXPAT $<
1352endif
1353
1354git-%$X: %.o $(GITLIBS)
1355 $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS) 698 $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
1356 699
1357git-imap-send$X: imap-send.o $(GITLIBS)
1358 $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
1359 $(LIBS) $(OPENSSL_LINK) $(OPENSSL_LIBSSL)
1360
1361http.o http-walker.o http-push.o transport.o: http.h
1362
1363git-http-push$X: revision.o http.o http-push.o $(GITLIBS)
1364 $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) \
1365 $(LIBS) $(CURL_LIBCURL) $(EXPAT_LIBEXPAT)
1366
1367$(LIB_OBJS) $(BUILTIN_OBJS): $(LIB_H) 700$(LIB_OBJS) $(BUILTIN_OBJS): $(LIB_H)
1368$(patsubst git-%$X,%.o,$(PROGRAMS)): $(LIB_H) $(wildcard */*.h) 701$(patsubst perf-%$X,%.o,$(PROGRAMS)): $(LIB_H) $(wildcard */*.h)
1369builtin-revert.o wt-status.o: wt-status.h 702builtin-revert.o wt-status.o: wt-status.h
1370 703
1371$(LIB_FILE): $(LIB_OBJS) 704$(LIB_FILE): $(LIB_OBJS)
1372 $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(LIB_OBJS) 705 $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(LIB_OBJS)
1373 706
1374XDIFF_OBJS=xdiff/xdiffi.o xdiff/xprepare.o xdiff/xutils.o xdiff/xemit.o \
1375 xdiff/xmerge.o xdiff/xpatience.o
1376$(XDIFF_OBJS): xdiff/xinclude.h xdiff/xmacros.h xdiff/xdiff.h xdiff/xtypes.h \
1377 xdiff/xutils.h xdiff/xprepare.h xdiff/xdiffi.h xdiff/xemit.h
1378
1379$(XDIFF_LIB): $(XDIFF_OBJS)
1380 $(QUIET_AR)$(RM) $@ && $(AR) rcs $@ $(XDIFF_OBJS)
1381
1382
1383doc: 707doc:
1384 $(MAKE) -C Documentation all 708 $(MAKE) -C Documentation all
1385 709
@@ -1409,19 +733,19 @@ cscope:
1409 733
1410### Detect prefix changes 734### Detect prefix changes
1411TRACK_CFLAGS = $(subst ','\'',$(ALL_CFLAGS)):\ 735TRACK_CFLAGS = $(subst ','\'',$(ALL_CFLAGS)):\
1412 $(bindir_SQ):$(gitexecdir_SQ):$(template_dir_SQ):$(prefix_SQ) 736 $(bindir_SQ):$(perfexecdir_SQ):$(template_dir_SQ):$(prefix_SQ)
1413 737
1414GIT-CFLAGS: .FORCE-GIT-CFLAGS 738PERF-CFLAGS: .FORCE-PERF-CFLAGS
1415 @FLAGS='$(TRACK_CFLAGS)'; \ 739 @FLAGS='$(TRACK_CFLAGS)'; \
1416 if test x"$$FLAGS" != x"`cat GIT-CFLAGS 2>/dev/null`" ; then \ 740 if test x"$$FLAGS" != x"`cat PERF-CFLAGS 2>/dev/null`" ; then \
1417 echo 1>&2 " * new build flags or prefix"; \ 741 echo 1>&2 " * new build flags or prefix"; \
1418 echo "$$FLAGS" >GIT-CFLAGS; \ 742 echo "$$FLAGS" >PERF-CFLAGS; \
1419 fi 743 fi
1420 744
1421# We need to apply sq twice, once to protect from the shell 745# We need to apply sq twice, once to protect from the shell
1422# that runs GIT-BUILD-OPTIONS, and then again to protect it 746# that runs PERF-BUILD-OPTIONS, and then again to protect it
1423# and the first level quoting from the shell that runs "echo". 747# and the first level quoting from the shell that runs "echo".
1424GIT-BUILD-OPTIONS: .FORCE-GIT-BUILD-OPTIONS 748PERF-BUILD-OPTIONS: .FORCE-PERF-BUILD-OPTIONS
1425 @echo SHELL_PATH=\''$(subst ','\'',$(SHELL_PATH_SQ))'\' >$@ 749 @echo SHELL_PATH=\''$(subst ','\'',$(SHELL_PATH_SQ))'\' >$@
1426 @echo TAR=\''$(subst ','\'',$(subst ','\'',$(TAR)))'\' >>$@ 750 @echo TAR=\''$(subst ','\'',$(subst ','\'',$(TAR)))'\' >>$@
1427 @echo NO_CURL=\''$(subst ','\'',$(subst ','\'',$(NO_CURL)))'\' >>$@ 751 @echo NO_CURL=\''$(subst ','\'',$(subst ','\'',$(NO_CURL)))'\' >>$@
@@ -1431,14 +755,14 @@ GIT-BUILD-OPTIONS: .FORCE-GIT-BUILD-OPTIONS
1431ifndef NO_TCLTK 755ifndef NO_TCLTK
1432TRACK_VARS = $(subst ','\'',-DTCLTK_PATH='$(TCLTK_PATH_SQ)') 756TRACK_VARS = $(subst ','\'',-DTCLTK_PATH='$(TCLTK_PATH_SQ)')
1433 757
1434GIT-GUI-VARS: .FORCE-GIT-GUI-VARS 758PERF-GUI-VARS: .FORCE-PERF-GUI-VARS
1435 @VARS='$(TRACK_VARS)'; \ 759 @VARS='$(TRACK_VARS)'; \
1436 if test x"$$VARS" != x"`cat $@ 2>/dev/null`" ; then \ 760 if test x"$$VARS" != x"`cat $@ 2>/dev/null`" ; then \
1437 echo 1>&2 " * new Tcl/Tk interpreter location"; \ 761 echo 1>&2 " * new Tcl/Tk interpreter location"; \
1438 echo "$$VARS" >$@; \ 762 echo "$$VARS" >$@; \
1439 fi 763 fi
1440 764
1441.PHONY: .FORCE-GIT-GUI-VARS 765.PHONY: .FORCE-PERF-GUI-VARS
1442endif 766endif
1443 767
1444### Testing rules 768### Testing rules
@@ -1476,7 +800,7 @@ test-parse-options$X: parse-options.o
1476 800
1477.PRECIOUS: $(patsubst test-%$X,test-%.o,$(TEST_PROGRAMS)) 801.PRECIOUS: $(patsubst test-%$X,test-%.o,$(TEST_PROGRAMS))
1478 802
1479test-%$X: test-%.o $(GITLIBS) 803test-%$X: test-%.o $(PERFLIBS)
1480 $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS) 804 $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS)
1481 805
1482check-sha1:: test-sha1$X 806check-sha1:: test-sha1$X
@@ -1506,40 +830,40 @@ template_instdir = $(prefix)/$(template_dir)
1506endif 830endif
1507export template_instdir 831export template_instdir
1508 832
1509ifneq ($(filter /%,$(firstword $(gitexecdir))),) 833ifneq ($(filter /%,$(firstword $(perfexecdir))),)
1510gitexec_instdir = $(gitexecdir) 834perfexec_instdir = $(perfexecdir)
1511else 835else
1512gitexec_instdir = $(prefix)/$(gitexecdir) 836perfexec_instdir = $(prefix)/$(perfexecdir)
1513endif 837endif
1514gitexec_instdir_SQ = $(subst ','\'',$(gitexec_instdir)) 838perfexec_instdir_SQ = $(subst ','\'',$(perfexec_instdir))
1515export gitexec_instdir 839export perfexec_instdir
1516 840
1517install: all 841install: all
1518 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)' 842 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(bindir_SQ)'
1519 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' 843 $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
1520 $(INSTALL) $(ALL_PROGRAMS) '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' 844 $(INSTALL) $(ALL_PROGRAMS) '$(DESTDIR_SQ)$(perfexec_instdir_SQ)'
1521 $(INSTALL) git$X git-upload-pack$X git-receive-pack$X git-upload-archive$X git-shell$X git-cvsserver '$(DESTDIR_SQ)$(bindir_SQ)' 845 $(INSTALL) perf$X perf-upload-pack$X perf-receive-pack$X perf-upload-archive$X perf-shell$X perf-cvsserver '$(DESTDIR_SQ)$(bindir_SQ)'
1522 $(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install 846 $(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install
1523 $(MAKE) -C perl prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' install 847 $(MAKE) -C perl prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' install
1524ifndef NO_TCLTK 848ifndef NO_TCLTK
1525 $(MAKE) -C gitk-git install 849 $(MAKE) -C perfk-perf install
1526 $(MAKE) -C git-gui gitexecdir='$(gitexec_instdir_SQ)' install 850 $(MAKE) -C perf-gui perfexecdir='$(perfexec_instdir_SQ)' install
1527endif 851endif
1528ifneq (,$X) 852ifneq (,$X)
1529 $(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) git$X)), $(RM) '$(DESTDIR_SQ)$(gitexec_instdir_SQ)/$p';) 853 $(foreach p,$(patsubst %$X,%,$(filter %$X,$(ALL_PROGRAMS) $(BUILT_INS) perf$X)), $(RM) '$(DESTDIR_SQ)$(perfexec_instdir_SQ)/$p';)
1530endif 854endif
1531 bindir=$$(cd '$(DESTDIR_SQ)$(bindir_SQ)' && pwd) && \ 855 bindir=$$(cd '$(DESTDIR_SQ)$(bindir_SQ)' && pwd) && \
1532 execdir=$$(cd '$(DESTDIR_SQ)$(gitexec_instdir_SQ)' && pwd) && \ 856 execdir=$$(cd '$(DESTDIR_SQ)$(perfexec_instdir_SQ)' && pwd) && \
1533 { $(RM) "$$execdir/git-add$X" && \ 857 { $(RM) "$$execdir/perf-add$X" && \
1534 ln "$$bindir/git$X" "$$execdir/git-add$X" 2>/dev/null || \ 858 ln "$$bindir/perf$X" "$$execdir/perf-add$X" 2>/dev/null || \
1535 cp "$$bindir/git$X" "$$execdir/git-add$X"; } && \ 859 cp "$$bindir/perf$X" "$$execdir/perf-add$X"; } && \
1536 { for p in $(filter-out git-add$X,$(BUILT_INS)); do \ 860 { for p in $(filter-out perf-add$X,$(BUILT_INS)); do \
1537 $(RM) "$$execdir/$$p" && \ 861 $(RM) "$$execdir/$$p" && \
1538 ln "$$execdir/git-add$X" "$$execdir/$$p" 2>/dev/null || \ 862 ln "$$execdir/perf-add$X" "$$execdir/$$p" 2>/dev/null || \
1539 ln -s "git-add$X" "$$execdir/$$p" 2>/dev/null || \ 863 ln -s "perf-add$X" "$$execdir/$$p" 2>/dev/null || \
1540 cp "$$execdir/git-add$X" "$$execdir/$$p" || exit; \ 864 cp "$$execdir/perf-add$X" "$$execdir/$$p" || exit; \
1541 done } && \ 865 done } && \
1542 ./check_bindir "z$$bindir" "z$$execdir" "$$bindir/git-add$X" 866 ./check_bindir "z$$bindir" "z$$execdir" "$$bindir/perf-add$X"
1543 867
1544install-doc: 868install-doc:
1545 $(MAKE) -C Documentation install 869 $(MAKE) -C Documentation install
@@ -1569,31 +893,31 @@ quick-install-html:
1569 893
1570### Maintainer's dist rules 894### Maintainer's dist rules
1571 895
1572git.spec: git.spec.in 896perf.spec: perf.spec.in
1573 sed -e 's/@@VERSION@@/$(GIT_VERSION)/g' < $< > $@+ 897 sed -e 's/@@VERSION@@/$(PERF_VERSION)/g' < $< > $@+
1574 mv $@+ $@ 898 mv $@+ $@
1575 899
1576GIT_TARNAME=git-$(GIT_VERSION) 900PERF_TARNAME=perf-$(PERF_VERSION)
1577dist: git.spec git-archive$(X) configure 901dist: perf.spec perf-archive$(X) configure
1578 ./git-archive --format=tar \ 902 ./perf-archive --format=tar \
1579 --prefix=$(GIT_TARNAME)/ HEAD^{tree} > $(GIT_TARNAME).tar 903 --prefix=$(PERF_TARNAME)/ HEAD^{tree} > $(PERF_TARNAME).tar
1580 @mkdir -p $(GIT_TARNAME) 904 @mkdir -p $(PERF_TARNAME)
1581 @cp git.spec configure $(GIT_TARNAME) 905 @cp perf.spec configure $(PERF_TARNAME)
1582 @echo $(GIT_VERSION) > $(GIT_TARNAME)/version 906 @echo $(PERF_VERSION) > $(PERF_TARNAME)/version
1583 @$(MAKE) -C git-gui TARDIR=../$(GIT_TARNAME)/git-gui dist-version 907 @$(MAKE) -C perf-gui TARDIR=../$(PERF_TARNAME)/perf-gui dist-version
1584 $(TAR) rf $(GIT_TARNAME).tar \ 908 $(TAR) rf $(PERF_TARNAME).tar \
1585 $(GIT_TARNAME)/git.spec \ 909 $(PERF_TARNAME)/perf.spec \
1586 $(GIT_TARNAME)/configure \ 910 $(PERF_TARNAME)/configure \
1587 $(GIT_TARNAME)/version \ 911 $(PERF_TARNAME)/version \
1588 $(GIT_TARNAME)/git-gui/version 912 $(PERF_TARNAME)/perf-gui/version
1589 @$(RM) -r $(GIT_TARNAME) 913 @$(RM) -r $(PERF_TARNAME)
1590 gzip -f -9 $(GIT_TARNAME).tar 914 gzip -f -9 $(PERF_TARNAME).tar
1591 915
1592rpm: dist 916rpm: dist
1593 $(RPMBUILD) -ta $(GIT_TARNAME).tar.gz 917 $(RPMBUILD) -ta $(PERF_TARNAME).tar.gz
1594 918
1595htmldocs = git-htmldocs-$(GIT_VERSION) 919htmldocs = perf-htmldocs-$(PERF_VERSION)
1596manpages = git-manpages-$(GIT_VERSION) 920manpages = perf-manpages-$(PERF_VERSION)
1597dist-doc: 921dist-doc:
1598 $(RM) -r .doc-tmp-dir 922 $(RM) -r .doc-tmp-dir
1599 mkdir .doc-tmp-dir 923 mkdir .doc-tmp-dir
@@ -1618,51 +942,46 @@ distclean: clean
1618 $(RM) configure 942 $(RM) configure
1619 943
1620clean: 944clean:
1621 $(RM) *.o mozilla-sha1/*.o arm/*.o ppc/*.o compat/*.o xdiff/*.o \ 945 $(RM) *.o $(LIB_FILE)
1622 $(LIB_FILE) $(XDIFF_LIB) 946 $(RM) $(ALL_PROGRAMS) $(BUILT_INS) perf$X
1623 $(RM) $(ALL_PROGRAMS) $(BUILT_INS) git$X
1624 $(RM) $(TEST_PROGRAMS) 947 $(RM) $(TEST_PROGRAMS)
1625 $(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo common-cmds.h TAGS tags cscope* 948 $(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo common-cmds.h TAGS tags cscope*
1626 $(RM) -r autom4te.cache 949 $(RM) -r autom4te.cache
1627 $(RM) config.log config.mak.autogen config.mak.append config.status config.cache 950 $(RM) config.log config.mak.autogen config.mak.append config.status config.cache
1628 $(RM) -r $(GIT_TARNAME) .doc-tmp-dir 951 $(RM) -r $(PERF_TARNAME) .doc-tmp-dir
1629 $(RM) $(GIT_TARNAME).tar.gz git-core_$(GIT_VERSION)-*.tar.gz 952 $(RM) $(PERF_TARNAME).tar.gz perf-core_$(PERF_VERSION)-*.tar.gz
1630 $(RM) $(htmldocs).tar.gz $(manpages).tar.gz 953 $(RM) $(htmldocs).tar.gz $(manpages).tar.gz
1631 $(MAKE) -C Documentation/ clean 954 $(MAKE) -C Documentation/ clean
1632ifndef NO_PERL
1633 $(RM) gitweb/gitweb.cgi
1634 $(MAKE) -C perl clean
1635endif
1636 $(MAKE) -C templates/ clean 955 $(MAKE) -C templates/ clean
1637 $(MAKE) -C t/ clean 956 $(MAKE) -C t/ clean
1638ifndef NO_TCLTK 957ifndef NO_TCLTK
1639 $(MAKE) -C gitk-git clean 958 $(MAKE) -C perfk-perf clean
1640 $(MAKE) -C git-gui clean 959 $(MAKE) -C perf-gui clean
1641endif 960endif
1642 $(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-GUI-VARS GIT-BUILD-OPTIONS 961 $(RM) PERF-VERSION-FILE PERF-CFLAGS PERF-GUI-VARS PERF-BUILD-OPTIONS
1643 962
1644.PHONY: all install clean strip 963.PHONY: all install clean strip
1645.PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell 964.PHONY: shell_compatibility_test please_set_SHELL_PATH_to_a_more_modern_shell
1646.PHONY: .FORCE-GIT-VERSION-FILE TAGS tags cscope .FORCE-GIT-CFLAGS 965.PHONY: .FORCE-PERF-VERSION-FILE TAGS tags cscope .FORCE-PERF-CFLAGS
1647.PHONY: .FORCE-GIT-BUILD-OPTIONS 966.PHONY: .FORCE-PERF-BUILD-OPTIONS
1648 967
1649### Check documentation 968### Check documentation
1650# 969#
1651check-docs:: 970check-docs::
1652 @(for v in $(ALL_PROGRAMS) $(BUILT_INS) git gitk; \ 971 @(for v in $(ALL_PROGRAMS) $(BUILT_INS) perf perfk; \
1653 do \ 972 do \
1654 case "$$v" in \ 973 case "$$v" in \
1655 git-merge-octopus | git-merge-ours | git-merge-recursive | \ 974 perf-merge-octopus | perf-merge-ours | perf-merge-recursive | \
1656 git-merge-resolve | git-merge-subtree | \ 975 perf-merge-resolve | perf-merge-subtree | \
1657 git-fsck-objects | git-init-db | \ 976 perf-fsck-objects | perf-init-db | \
1658 git-?*--?* ) continue ;; \ 977 perf-?*--?* ) continue ;; \
1659 esac ; \ 978 esac ; \
1660 test -f "Documentation/$$v.txt" || \ 979 test -f "Documentation/$$v.txt" || \
1661 echo "no doc: $$v"; \ 980 echo "no doc: $$v"; \
1662 sed -e '/^#/d' command-list.txt | \ 981 sed -e '/^#/d' command-list.txt | \
1663 grep -q "^$$v[ ]" || \ 982 grep -q "^$$v[ ]" || \
1664 case "$$v" in \ 983 case "$$v" in \
1665 git) ;; \ 984 perf) ;; \
1666 *) echo "no link: $$v";; \ 985 *) echo "no link: $$v";; \
1667 esac ; \ 986 esac ; \
1668 done; \ 987 done; \
@@ -1670,37 +989,37 @@ check-docs::
1670 sed -e '/^#/d' \ 989 sed -e '/^#/d' \
1671 -e 's/[ ].*//' \ 990 -e 's/[ ].*//' \
1672 -e 's/^/listed /' command-list.txt; \ 991 -e 's/^/listed /' command-list.txt; \
1673 ls -1 Documentation/git*txt | \ 992 ls -1 Documentation/perf*txt | \
1674 sed -e 's|Documentation/|documented |' \ 993 sed -e 's|Documentation/|documented |' \
1675 -e 's/\.txt//'; \ 994 -e 's/\.txt//'; \
1676 ) | while read how cmd; \ 995 ) | while read how cmd; \
1677 do \ 996 do \
1678 case "$$how,$$cmd" in \ 997 case "$$how,$$cmd" in \
1679 *,git-citool | \ 998 *,perf-citool | \
1680 *,git-gui | \ 999 *,perf-gui | \
1681 *,git-help | \ 1000 *,perf-help | \
1682 documented,gitattributes | \ 1001 documented,perfattributes | \
1683 documented,gitignore | \ 1002 documented,perfignore | \
1684 documented,gitmodules | \ 1003 documented,perfmodules | \
1685 documented,gitcli | \ 1004 documented,perfcli | \
1686 documented,git-tools | \ 1005 documented,perf-tools | \
1687 documented,gitcore-tutorial | \ 1006 documented,perfcore-tutorial | \
1688 documented,gitcvs-migration | \ 1007 documented,perfcvs-migration | \
1689 documented,gitdiffcore | \ 1008 documented,perfdiffcore | \
1690 documented,gitglossary | \ 1009 documented,perfglossary | \
1691 documented,githooks | \ 1010 documented,perfhooks | \
1692 documented,gitrepository-layout | \ 1011 documented,perfrepository-layout | \
1693 documented,gittutorial | \ 1012 documented,perftutorial | \
1694 documented,gittutorial-2 | \ 1013 documented,perftutorial-2 | \
1695 sentinel,not,matching,is,ok ) continue ;; \ 1014 sentinel,not,matching,is,ok ) continue ;; \
1696 esac; \ 1015 esac; \
1697 case " $(ALL_PROGRAMS) $(BUILT_INS) git gitk " in \ 1016 case " $(ALL_PROGRAMS) $(BUILT_INS) perf perfk " in \
1698 *" $$cmd "*) ;; \ 1017 *" $$cmd "*) ;; \
1699 *) echo "removed but $$how: $$cmd" ;; \ 1018 *) echo "removed but $$how: $$cmd" ;; \
1700 esac; \ 1019 esac; \
1701 done ) | sort 1020 done ) | sort
1702 1021
1703### Make sure built-ins do not have dups and listed in git.c 1022### Make sure built-ins do not have dups and listed in perf.c
1704# 1023#
1705check-builtins:: 1024check-builtins::
1706 ./check-builtins.sh 1025 ./check-builtins.sh