summaryrefslogtreecommitdiffabout
authorLars Hjemli <hjemli@gmail.com>2007-02-04 22:57:34 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2007-02-04 23:12:04 (UTC)
commitc52e84135e6272d008f69a9ac00265875ff4e60e (patch) (side-by-side diff)
tree74cb0a76ea7b69f152766cb5510c6f60a7caf2a1
parent74b0db95560e4c11439d7e0e8016d1e8cd48cdda (diff)
downloadcgit-c52e84135e6272d008f69a9ac00265875ff4e60e.zip
cgit-c52e84135e6272d008f69a9ac00265875ff4e60e.tar.gz
cgit-c52e84135e6272d008f69a9ac00265875ff4e60e.tar.bz2
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>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--Makefile18
-rw-r--r--README34
2 files changed, 37 insertions, 15 deletions
diff --git a/Makefile b/Makefile
index 72a1cff..e863205 100644
--- a/Makefile
+++ b/Makefile
@@ -1,35 +1,41 @@
CGIT_VERSION = 0.1
-INSTALL_DIR = /var/www/htdocs/cgit
-CACHE_ROOT = /var/cache/cgit
+prefix = /var/www/htdocs/cgit
+gitsrc = ../git
-EXTLIBS = ../git/libgit.a ../git/xdiff/lib.a -lz -lcrypto
+CACHE_ROOT = /var/cache/cgit
+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
CFLAGS += -Wall
ifdef DEBUG
CFLAGS += -g
endif
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:
rm -f cgit *.o
clean-cache:
rm -rf $(CACHE_ROOT)/*
diff --git a/README b/README
index 17e284e..a14418e 100644
--- a/README
+++ b/README
@@ -5,26 +5,42 @@
This is an attempt to create a fast web interface for the git scm, using a
builtin cache to decrease server io-pressure.
Installation
-$ $EDITOR Makefile
-$ make
-$ sudo make install
+ $ make gitsrc=<path>
+ $ su
+ $ make prefix=<path> install
-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 gitsrc is "../git", and this directory should contain the
+git sources.
+
+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
When cgit is invoked it looks for a cachefile matching the request and
returns it to the client. If no such cachefile exist (or if it has expired),