infodir = share/info
gitexecdir = libexec/git-core
sharedir = $(prefix)/share
+ gitwebdir = $(sharedir)/gitweb
template_dir = share/git-core/templates
htmldir = share/doc/git-doc
ifeq ($(prefix),/usr)
LIB_OBJS += tree.o
LIB_OBJS += tree-walk.o
LIB_OBJS += unpack-trees.o
+LIB_OBJS += url.o
LIB_OBJS += usage.o
LIB_OBJS += userdiff.o
LIB_OBJS += utf8.o
HAVE_PATHS_H = YesPlease
endif
ifeq ($(uname_S),AIX)
+ DEFAULT_PAGER = more
NO_STRCASESTR=YesPlease
NO_MEMMEM = YesPlease
NO_MKDTEMP = YesPlease
NO_STRTOUMAX = YesPlease
NO_MKDTEMP = YesPlease
NO_MKSTEMPS = YesPlease
- SNPRINTF_RETURNS_BOGUS = YesPlease
NO_SVN_TESTS = YesPlease
NO_PERL_MAKEMAKER = YesPlease
RUNTIME_PREFIX = YesPlease
-include config.mak
ifdef CHECK_HEADER_DEPENDENCIES
+COMPUTE_HEADER_DEPENDENCIES =
USE_COMPUTED_HEADER_DEPENDENCIES =
endif
template_dir_SQ = $(subst ','\'',$(template_dir))
htmldir_SQ = $(subst ','\'',$(htmldir))
prefix_SQ = $(subst ','\'',$(prefix))
+ gitwebdir_SQ = $(subst ','\'',$(gitwebdir))
SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH))
PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH))
$(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) all
ifdef JSMIN
- GITWEB_PROGRAMS += gitweb/gitweb.min.js
- GITWEB_JS = gitweb/gitweb.min.js
+ GITWEB_PROGRAMS += gitweb/static/gitweb.min.js
+ GITWEB_JS = gitweb/static/gitweb.min.js
else
- GITWEB_JS = gitweb/gitweb.js
+ GITWEB_JS = gitweb/static/gitweb.js
endif
ifdef CSSMIN
- GITWEB_PROGRAMS += gitweb/gitweb.min.css
- GITWEB_CSS = gitweb/gitweb.min.css
+ GITWEB_PROGRAMS += gitweb/static/gitweb.min.css
+ GITWEB_CSS = gitweb/static/gitweb.min.css
else
- GITWEB_CSS = gitweb/gitweb.css
+ GITWEB_CSS = gitweb/static/gitweb.css
endif
OTHER_PROGRAMS += gitweb/gitweb.cgi $(GITWEB_PROGRAMS)
gitweb/gitweb.cgi: gitweb/gitweb.perl $(GITWEB_PROGRAMS)
$(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) $(patsubst gitweb/%,%,$@)
ifdef JSMIN
- gitweb/gitweb.min.js: gitweb/gitweb.js
+ gitweb/static/gitweb.min.js: gitweb/static/gitweb.js
$(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) $(patsubst gitweb/%,%,$@)
endif # JSMIN
ifdef CSSMIN
- gitweb/gitweb.min.css: gitweb/gitweb.css
+ gitweb/static/gitweb.min.css: gitweb/static/gitweb.css
$(QUIET_SUBDIR0)gitweb $(QUIET_SUBDIR1) $(patsubst gitweb/%,%,$@)
endif # CSSMIN
- git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/gitweb.css gitweb/gitweb.js
+ git-instaweb: git-instaweb.sh gitweb/gitweb.cgi gitweb/static/gitweb.css gitweb/static/gitweb.js
$(QUIET_GEN)$(RM) $@ $@+ && \
sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \
-e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \
-e 's/@@NO_CURL@@/$(NO_CURL)/g' \
- -e '/@@GITWEB_CGI@@/r gitweb/gitweb.cgi' \
- -e '/@@GITWEB_CGI@@/d' \
- -e '/@@GITWEB_CSS@@/r $(GITWEB_CSS)' \
- -e '/@@GITWEB_CSS@@/d' \
- -e '/@@GITWEB_JS@@/r $(GITWEB_JS)' \
- -e '/@@GITWEB_JS@@/d' \
+ -e 's|@@GITWEBDIR@@|$(gitwebdir_SQ)|g' \
-e 's|@@PERL@@|$(PERL_PATH_SQ)|g' \
- -e 's|@@GITWEB_CSS_NAME@@|$(GITWEB_CSS)|' \
- -e 's|@@GITWEB_JS_NAME@@|$(GITWEB_JS)|' \
$@.sh > $@+ && \
chmod +x $@+ && \
mv $@+ $@
TEST_OBJS := $(patsubst test-%$X,test-%.o,$(TEST_PROGRAMS))
GIT_OBJS := $(LIB_OBJS) $(BUILTIN_OBJS) $(PROGRAM_OBJS) $(TEST_OBJS) \
- git.o http.o http-walker.o remote-curl.o
+ git.o
+ifndef NO_CURL
+ GIT_OBJS += http.o http-walker.o remote-curl.o
+endif
XDIFF_OBJS = xdiff/xdiffi.o xdiff/xprepare.o xdiff/xutils.o xdiff/xemit.o \
xdiff/xmerge.o xdiff/xpatience.o
OBJECTS := $(GIT_OBJS) $(XDIFF_OBJS)
$(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install
ifndef NO_PERL
$(MAKE) -C perl prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' install
+ $(MAKE) -C gitweb gitwebdir=$(gitwebdir_SQ) install
endif
ifndef NO_PYTHON
$(MAKE) -C git_remote_helpers prefix='$(prefix_SQ)' DESTDIR='$(DESTDIR_SQ)' install
ln -s "git$X" "$$execdir/$$p" 2>/dev/null || \
cp "$$execdir/git$X" "$$execdir/$$p" || exit; \
done; } && \
- { for p in $(REMOTE_CURL_ALIASES); do \
+ { test x"$(REMOTE_CURL_ALIASES)" = x || \
+ { for p in $(REMOTE_CURL_ALIASES); do \
$(RM) "$$execdir/$$p" && \
ln "$$execdir/git-remote-http$X" "$$execdir/$$p" 2>/dev/null || \
ln -s "git-remote-http$X" "$$execdir/$$p" 2>/dev/null || \
cp "$$execdir/git-remote-http$X" "$$execdir/$$p" || exit; \
- done; } && \
+ done; } ; } && \
./check_bindir "z$$bindir" "z$$execdir" "$$bindir/git-add$X"
install-gitweb:
--- /dev/null
+ body {
+ font-family: sans-serif;
+ font-size: small;
+ border: solid #d9d8d1;
+ border-width: 1px;
+ margin: 10px;
+ background-color: #ffffff;
+ color: #000000;
+ }
+
+ a {
+ color: #0000cc;
+ }
+
+ a:hover, a:visited, a:active {
+ color: #880000;
+ }
+
+ span.cntrl {
+ border: dashed #aaaaaa;
+ border-width: 1px;
+ padding: 0px 2px 0px 2px;
+ margin: 0px 2px 0px 2px;
+ }
+
+ img.logo {
+ float: right;
+ border-width: 0px;
+ }
+
+ img.avatar {
+ vertical-align: middle;
+ }
+
+ a.list img.avatar {
+ border-style: none;
+ }
+
+ div.page_header {
+ height: 25px;
+ padding: 8px;
+ font-size: 150%;
+ font-weight: bold;
+ background-color: #d9d8d1;
+ }
+
+ div.page_header a:visited, a.header {
+ color: #0000cc;
+ }
+
+ div.page_header a:hover {
+ color: #880000;
+ }
+
+ div.page_nav {
+ padding: 8px;
+ }
+
+ div.page_nav a:visited {
+ color: #0000cc;
+ }
+
+ div.page_path {
+ padding: 8px;
+ font-weight: bold;
+ border: solid #d9d8d1;
+ border-width: 0px 0px 1px;
+ }
+
+ div.page_footer {
+ height: 17px;
+ padding: 4px 8px;
+ background-color: #d9d8d1;
+ }
+
+ div.page_footer_text {
+ float: left;
+ color: #555555;
+ font-style: italic;
+ }
+
+ div#generating_info {
+ margin: 4px;
+ font-size: smaller;
+ text-align: center;
+ color: #505050;
+ }
+
+ div.page_body {
+ padding: 8px;
+ font-family: monospace;
+ }
+
+ div.title, a.title {
+ display: block;
+ padding: 6px 8px;
+ font-weight: bold;
+ background-color: #edece6;
+ text-decoration: none;
+ color: #000000;
+ }
+
+ div.readme {
+ padding: 8px;
+ }
+
+ a.title:hover {
+ background-color: #d9d8d1;
+ }
+
+ div.title_text {
+ padding: 6px 0px;
+ border: solid #d9d8d1;
+ border-width: 0px 0px 1px;
+ font-family: monospace;
+ }
+
+ div.log_body {
+ padding: 8px 8px 8px 150px;
+ }
+
+ span.age {
+ position: relative;
+ float: left;
+ width: 142px;
+ font-style: italic;
+ }
+
+ span.signoff {
+ color: #888888;
+ }
+
+ div.log_link {
+ padding: 0px 8px;
+ font-size: 70%;
+ font-family: sans-serif;
+ font-style: normal;
+ position: relative;
+ float: left;
+ width: 136px;
+ }
+
+ div.list_head {
+ padding: 6px 8px 4px;
+ border: solid #d9d8d1;
+ border-width: 1px 0px 0px;
+ font-style: italic;
+ }
+
+ .author_date, .author {
+ font-style: italic;
+ }
+
+ div.author_date {
+ padding: 8px;
+ border: solid #d9d8d1;
+ border-width: 0px 0px 1px 0px;
+ }
+
+ a.list {
+ text-decoration: none;
+ color: #000000;
+ }
+
+ a.subject, a.name {
+ font-weight: bold;
+ }
+
+ table.tags a.subject {
+ font-weight: normal;
+ }
+
+ a.list:hover {
+ text-decoration: underline;
+ color: #880000;
+ }
+
+ a.text {
+ text-decoration: none;
+ color: #0000cc;
+ }
+
+ a.text:visited {
+ text-decoration: none;
+ color: #880000;
+ }
+
+ a.text:hover {
+ text-decoration: underline;
+ color: #880000;
+ }
+
+ table {
+ padding: 8px 4px;
+ border-spacing: 0;
+ }
+
+ table.diff_tree {
+ font-family: monospace;
+ }
+
+ table.combined.diff_tree th {
+ text-align: center;
+ }
+
+ table.combined.diff_tree td {
+ padding-right: 24px;
+ }
+
+ table.combined.diff_tree th.link,
+ table.combined.diff_tree td.link {
+ padding: 0px 2px;
+ }
+
+ table.combined.diff_tree td.nochange a {
+ color: #6666ff;
+ }
+
+ table.combined.diff_tree td.nochange a:hover,
+ table.combined.diff_tree td.nochange a:visited {
+ color: #d06666;
+ }
+
+ table.blame {
+ border-collapse: collapse;
+ }
+
+ table.blame td {
+ padding: 0px 5px;
+ font-size: 100%;
+ vertical-align: top;
+ }
+
+ th {
+ padding: 2px 5px;
+ font-size: 100%;
+ text-align: left;
+ }
+
+ /* do not change row style on hover for 'blame' view */
+ tr.light,
+ table.blame .light:hover {
+ background-color: #ffffff;
+ }
+
+ tr.dark,
+ table.blame .dark:hover {
+ background-color: #f6f6f0;
+ }
+
+ /* currently both use the same, but it can change */
+ tr.light:hover,
+ tr.dark:hover {
+ background-color: #edece6;
+ }
+
+ /* boundary commits in 'blame' view */
+ /* and commits without "previous" */
+ tr.boundary td.sha1,
+ tr.no-previous td.linenr {
+ font-weight: bold;
+ }
+
+ /* for 'blame_incremental', during processing */
+ tr.color1 { background-color: #f6fff6; }
+ tr.color2 { background-color: #f6f6ff; }
+ tr.color3 { background-color: #fff6f6; }
+
+ td {
+ padding: 2px 5px;
+ font-size: 100%;
+ vertical-align: top;
+ }
+
+ td.link, td.selflink {
+ padding: 2px 5px;
+ font-family: sans-serif;
+ font-size: 70%;
+ }
+
+ td.selflink {
+ padding-right: 0px;
+ }
+
+ td.sha1 {
+ font-family: monospace;
+ }
+
+ .error {
+ color: red;
+ background-color: yellow;
+ }
+
+ td.current_head {
+ text-decoration: underline;
+ }
+
+ table.diff_tree span.file_status.new {
+ color: #008000;
+ }
+
+ table.diff_tree span.file_status.deleted {
+ color: #c00000;
+ }
+
+ table.diff_tree span.file_status.moved,
+ table.diff_tree span.file_status.mode_chnge {
+ color: #777777;
+ }
+
+ table.diff_tree span.file_status.copied {
+ color: #70a070;
+ }
+
+ /* noage: "No commits" */
+ table.project_list td.noage {
+ color: #808080;
+ font-style: italic;
+ }
+
+ /* age2: 60*60*24*2 <= age */
+ table.project_list td.age2, table.blame td.age2 {
+ font-style: italic;
+ }
+
+ /* age1: 60*60*2 <= age < 60*60*24*2 */
+ table.project_list td.age1 {
+ color: #009900;
+ font-style: italic;
+ }
+
+ table.blame td.age1 {
+ color: #009900;
+ background: transparent;
+ }
+
+ /* age0: age < 60*60*2 */
+ table.project_list td.age0 {
+ color: #009900;
+ font-style: italic;
+ font-weight: bold;
+ }
+
+ table.blame td.age0 {
+ color: #009900;
+ background: transparent;
+ font-weight: bold;
+ }
+
+ td.pre, div.pre, div.diff {
+ font-family: monospace;
+ font-size: 12px;
+ white-space: pre;
+ }
+
+ td.mode {
+ font-family: monospace;
+ }
+
+ /* progress of blame_interactive */
+ div#progress_bar {
+ height: 2px;
+ margin-bottom: -2px;
+ background-color: #d8d9d0;
+ }
+ div#progress_info {
+ float: right;
+ text-align: right;
+ }
+
+ /* format of (optional) objects size in 'tree' view */
+ td.size {
+ font-family: monospace;
+ text-align: right;
+ }
+
+ /* styling of diffs (patchsets): commitdiff and blobdiff views */
+ div.diff.header,
+ div.diff.extended_header {
+ white-space: normal;
+ }
+
+ div.diff.header {
+ font-weight: bold;
+
+ background-color: #edece6;
+
+ margin-top: 4px;
+ padding: 4px 0px 2px 0px;
+ border: solid #d9d8d1;
+ border-width: 1px 0px 1px 0px;
+ }
+
+ div.diff.header a.path {
+ text-decoration: underline;
+ }
+
+ div.diff.extended_header,
+ div.diff.extended_header a.path,
+ div.diff.extended_header a.hash {
+ color: #777777;
+ }
+
+ div.diff.extended_header .info {
+ color: #b0b0b0;
+ }
+
+ div.diff.extended_header {
+ background-color: #f6f5ee;
+ padding: 2px 0px 2px 0px;
+ }
+
+ div.diff a.list,
+ div.diff a.path,
+ div.diff a.hash {
+ text-decoration: none;
+ }
+
+ div.diff a.list:hover,
+ div.diff a.path:hover,
+ div.diff a.hash:hover {
+ text-decoration: underline;
+ }
+
+ div.diff.to_file a.path,
+ div.diff.to_file {
+ color: #007000;
+ }
+
+ div.diff.add {
+ color: #008800;
+ }
+
+ div.diff.from_file a.path,
+ div.diff.from_file {
+ color: #aa0000;
+ }
+
+ div.diff.rem {
+ color: #cc0000;
+ }
+
+ div.diff.chunk_header a,
+ div.diff.chunk_header {
+ color: #990099;
+ }
+
+ div.diff.chunk_header {
+ border: dotted #ffe0ff;
+ border-width: 1px 0px 0px 0px;
+ margin-top: 2px;
+ }
+
+ div.diff.chunk_header span.chunk_info {
+ background-color: #ffeeff;
+ }
+
+ div.diff.chunk_header span.section {
+ color: #aa22aa;
+ }
+
+ div.diff.incomplete {
+ color: #cccccc;
+ }
+
+ div.diff.nodifferences {
+ font-weight: bold;
+ color: #600000;
+ }
+
+ div.index_include {
+ border: solid #d9d8d1;
+ border-width: 0px 0px 1px;
+ padding: 12px 8px;
+ }
+
+ div.search {
+ font-size: 100%;
+ font-weight: normal;
+ margin: 4px 8px;
+ float: right;
+ top: 56px;
+ right: 12px
+ }
+
+ p.projsearch {
+ text-align: center;
+ }
+
+ td.linenr {
+ text-align: right;
+ }
+
+ a.linenr {
+ color: #999999;
+ text-decoration: none
+ }
+
+ a.rss_logo {
+ float: right;
+ padding: 3px 0px;
+ width: 35px;
+ line-height: 10px;
+ border: 1px solid;
+ border-color: #fcc7a5 #7d3302 #3e1a01 #ff954e;
+ color: #ffffff;
+ background-color: #ff6600;
+ font-weight: bold;
+ font-family: sans-serif;
+ font-size: 70%;
+ text-align: center;
+ text-decoration: none;
+ }
+
+ a.rss_logo:hover {
+ background-color: #ee5500;
+ }
+
+ a.rss_logo.generic {
+ background-color: #ff8800;
+ }
+
+ a.rss_logo.generic:hover {
+ background-color: #ee7700;
+ }
+
+ span.refs span {
+ padding: 0px 4px;
+ font-size: 70%;
+ font-weight: normal;
+ border: 1px solid;
+ background-color: #ffaaff;
+ border-color: #ffccff #ff00ee #ff00ee #ffccff;
+ }
+
+ span.refs span a {
+ text-decoration: none;
+ color: inherit;
+ }
+
+ span.refs span a:hover {
+ text-decoration: underline;
+ }
+
+ span.refs span.indirect {
+ font-style: italic;
+ }
+
+ span.refs span.ref {
+ background-color: #aaaaff;
+ border-color: #ccccff #0033cc #0033cc #ccccff;
+ }
+
+ span.refs span.tag {
+ background-color: #ffffaa;
+ border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
+ }
+
+ span.refs span.head {
+ background-color: #aaffaa;
+ border-color: #ccffcc #00cc33 #00cc33 #ccffcc;
+ }
+
+ span.atnight {
+ color: #cc0000;
+ }
+
+ span.match {
+ color: #e00000;
+ }
+
+ div.binary {
+ font-style: italic;
+ }
++
++/* Style definition generated by highlight 2.4.5, http://www.andre-simon.de/ */
++
++/* Highlighting theme definition: */
++
++.num { color:#2928ff; }
++.esc { color:#ff00ff; }
++.str { color:#ff0000; }
++.dstr { color:#818100; }
++.slc { color:#838183; font-style:italic; }
++.com { color:#838183; font-style:italic; }
++.dir { color:#008200; }
++.sym { color:#000000; }
++.line { color:#555555; }
++.kwa { color:#000000; font-weight:bold; }
++.kwb { color:#830000; }
++.kwc { color:#000000; font-weight:bold; }
++.kwd { color:#010181; }