cgit

commit c52e84135e6272d008f69a9ac00265875ff4e60e

Author: Lars Hjemli <hjemli@gmail.com>

Add support for prefix and gitsrc arguments to 'make'

This should improve the installation a little, especially since the new
options are mentioned in the README. Also, add a make-rule to build the
git binaries if necessary + a dependency between cgit and libgit.a.

Signed-off-by: Lars Hjemli <hjemli@gmail.com>

 Makefile | 18 ++++++++++++------
 README | 34 +++++++++++++++++++++++++---------


diff --git a/Makefile b/Makefile
index 72a1cfff02c6b83c59fbbca42ace5c266a7cc640..e8632055c82acb825a16dfbf3379a632bbdc371d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,9 +1,10 @@
 CGIT_VERSION = 0.1
 
-INSTALL_DIR = /var/www/htdocs/cgit
+prefix = /var/www/htdocs/cgit
+gitsrc = ../git
+
 CACHE_ROOT = /var/cache/cgit
-
-EXTLIBS = ../git/libgit.a ../git/xdiff/lib.a -lz -lcrypto
+EXTLIBS = $(gitsrc)/libgit.a $(gitsrc)/xdiff/lib.a -lz -lcrypto
 OBJECTS = shared.o cache.o parsing.o html.o ui-shared.o ui-repolist.o \
 	ui-summary.o ui-log.o ui-view.c ui-tree.c ui-commit.c ui-diff.o
 
@@ -16,16 +17,21 @@
 all: cgit
 
 install: all clean-cache
-	install cgit $(INSTALL_DIR)/cgit.cgi
-	install cgit.css $(INSTALL_DIR)/cgit.css
+	mkdir -p $(prefix)
+	install cgit $(prefix)/cgit.cgi
+	install cgit.css $(prefix)/cgit.css
 
-cgit: cgit.c cgit.h git.h $(OBJECTS)
+cgit: cgit.c cgit.h git.h $(OBJECTS) $(gitsrc)/libgit.a
 	$(CC) $(CFLAGS) -DCGIT_VERSION='"$(CGIT_VERSION)"' cgit.c -o cgit \
 		$(OBJECTS) $(EXTLIBS)
 
 $(OBJECTS): cgit.h git.h
 
 ui-diff.o: xdiff.h
+
+$(gitsrc)/libgit.a:
+	$(MAKE) -C $(gitsrc)
+
 
 .PHONY: clean
 clean:




diff --git a/README b/README
index 17e284eaedcf2c50200bfee3cb4d11ab53342e13..a14418e8db8af0e239b524a0f37505e94f9993ba 100644
--- a/README
+++ b/README
@@ -8,20 +8,36 @@
 
 Installation
 
-$ $EDITOR Makefile
-$ make
-$ sudo make install
+  $ make gitsrc=<path>
+  $ su
+  $ make prefix=<path> install
+
+
+Default value for gitsrc is "../git", and this directory should contain the
+git sources.
 
-Note: cgit requires the git and xdiff libraries. Currently, the makefile
-expects these files to be found in '../git/libgit.a' and '../git/xdiff/lib.a',
-where they will be if you have built git from source in a parallell directory.
+Default value for prefix is "/var/www/htdocs/cgit". This directory will 
+contain "cgit.cgi" and "cgit.css" after 'make install'.
+
+After installation, httpd.conf probably must be updated with a Directory-
+section for cgit, possibly something like this:
+
+  <Directory "/var/www/htdocs/cgit/">
+      AllowOverride None
+      Options ExecCGI
+      Order allow,deny
+      Allow from all
+  </Directory>
 
 
 Runtime configuration
 
-The file /etc/cgitrc is read by cgit before handling a request. A template 
-cgitrc is shipped with the sources, and all parameters and default values 
-can be found in this file.
+The file /etc/cgitrc is read by cgit before handling a request. In addition
+to runtime parameters, this file also contains a list of the repositories 
+displayed by cgit.
+
+A template cgitrc is shipped with the sources, and all parameters and default
+values are documented in this file. 
 
 
 The cache