aboutsummaryrefslogtreecommitdiffstats
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile102
1 files changed, 43 insertions, 59 deletions
diff --git a/Makefile b/Makefile
index 57f80f8..fcbe3e4 100644
--- a/Makefile
+++ b/Makefile
@@ -1,87 +1,71 @@
1CGIT_VERSION = 0.5 1CGIT_VERSION = v0.5
2
3prefix = /var/www/htdocs/cgit
4
5SHA1_HEADER = <openssl/sha.h>
6CACHE_ROOT = /var/cache/cgit
7CGIT_CONFIG = /etc/cgitrc
8CGIT_SCRIPT_NAME = cgit.cgi 2CGIT_SCRIPT_NAME = cgit.cgi
3CGIT_SCRIPT_PATH = /var/www/htdocs/cgit
4CGIT_CONFIG = /etc/cgitrc
5CACHE_ROOT = /var/cache/cgit
6SHA1_HEADER = <openssl/sha.h>
7GIT_VER = 1.5.2
8GIT_URL = http://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.bz2
9 9
10# 10#
11# Let the user override the above settings. 11# Let the user override the above settings.
12# 12#
13-include cgit.conf 13-include cgit.conf
14 14
15
15EXTLIBS = git/libgit.a git/xdiff/lib.a -lz -lcrypto 16EXTLIBS = git/libgit.a git/xdiff/lib.a -lz -lcrypto
16OBJECTS = shared.o cache.o parsing.o html.o ui-shared.o ui-repolist.o \ 17OBJECTS = shared.o cache.o parsing.o html.o ui-shared.o ui-repolist.o \
17 ui-summary.o ui-log.o ui-view.o ui-tree.o ui-commit.o ui-diff.o \ 18 ui-summary.o ui-log.o ui-tree.o ui-commit.o ui-diff.o \
18 ui-snapshot.o ui-blob.o 19 ui-snapshot.o ui-blob.o ui-tag.o
20
21
22.PHONY: all git install clean distclean force-version get-git
19 23
20CFLAGS += -Wall 24all: cgit git
21 25
22ifdef DEBUG 26VERSION: force-version
23 CFLAGS += -g 27 @./gen-version.sh "$(CGIT_VERSION)"
24endif 28-include VERSION
25 29
26CFLAGS += -Igit 30
31CFLAGS += -g -Wall -Igit
27CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER)' 32CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER)'
28CFLAGS += -DCGIT_VERSION='"$(CGIT_VERSION)"' 33CFLAGS += -DCGIT_VERSION='"$(CGIT_VERSION)"'
29CFLAGS += -DCGIT_CONFIG='"$(CGIT_CONFIG)"' 34CFLAGS += -DCGIT_CONFIG='"$(CGIT_CONFIG)"'
30CFLAGS += -DCGIT_SCRIPT_NAME='"$(CGIT_SCRIPT_NAME)"' 35CFLAGS += -DCGIT_SCRIPT_NAME='"$(CGIT_SCRIPT_NAME)"'
31 36
32 37
33# 38cgit: cgit.c $(OBJECTS)
34# If make is run on a nongit platform, get the git sources as a tarball.
35#
36GITVER = $(shell git version 2>/dev/null || echo nogit)
37ifeq ($(GITVER),nogit)
38GITURL = http://www.kernel.org/pub/software/scm/git/git-1.5.2.tar.bz2
39INITGIT = test -e git/git.c || ((curl "$(GITURL)" | tar -xj) && mv git-1.5.2 git)
40else
41INITGIT = ./submodules.sh -i
42endif
43
44
45#
46# basic build rules
47#
48all: cgit
49
50cgit: cgit.c cgit.h $(OBJECTS)
51 $(CC) $(CFLAGS) cgit.c -o cgit $(OBJECTS) $(EXTLIBS) 39 $(CC) $(CFLAGS) cgit.c -o cgit $(OBJECTS) $(EXTLIBS)
52 40
53$(OBJECTS): cgit.h git/libgit.a 41$(OBJECTS): cgit.h git/xdiff/lib.a git/libgit.a VERSION
54 42
55git/libgit.a: 43git/xdiff/lib.a: | git
56 $(INITGIT)
57 $(MAKE) -C git
58 44
59# 45git/libgit.a: | git
60# phony targets
61#
62install: all clean-cache
63 mkdir -p $(prefix)
64 install cgit $(prefix)/$(CGIT_SCRIPT_NAME)
65 install cgit.css $(prefix)/cgit.css
66 46
67clean-cgit: 47git:
68 rm -f cgit *.o 48 cd git && $(MAKE) xdiff/lib.a
49 cd git && $(MAKE) libgit.a
69 50
70distclean-cgit: clean-cgit 51install: all
71 git clean -d -x 52 mkdir -p $(CGIT_SCRIPT_PATH)
72 53 install cgit $(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME)
73clean-sub: 54 install cgit.css $(CGIT_SCRIPT_PATH)/cgit.css
74 $(MAKE) -C git clean
75
76distclean-sub: clean-sub
77 $(shell cd git && git clean -d -x)
78
79clean-cache:
80 rm -rf $(CACHE_ROOT)/* 55 rm -rf $(CACHE_ROOT)/*
81 56
82clean: clean-cgit clean-sub 57uninstall:
58 rm -f $(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME)
59 rm -f $(CGIT_SCRIPT_PATH)/cgit.css
60 rm -rf $(CACHE_ROOT)
61
62clean:
63 rm -f cgit VERSION *.o
64 cd git && $(MAKE) clean
83 65
84distclean: distclean-cgit distclean-sub 66distclean: clean
67 git clean -d -x
68 cd git && git clean -d -x
85 69
86.PHONY: all install clean clean-cgit clean-sub clean-cache \ 70get-git:
87 distclean distclean-cgit distclean-sub 71 curl $(GIT_URL) | tar -xj && rm -rf git && mv git-$(GIT_VER) git