summaryrefslogtreecommitdiffabout
path: root/Makefile
Unidiff
Diffstat (limited to 'Makefile') (more/less context) (ignore whitespace changes)
-rw-r--r--Makefile36
1 files changed, 31 insertions, 5 deletions
diff --git a/Makefile b/Makefile
index c9be8fa..223765d 100644
--- a/Makefile
+++ b/Makefile
@@ -1,109 +1,135 @@
1CGIT_VERSION = v0.7.2 1CGIT_VERSION = v0.7.2
2CGIT_SCRIPT_NAME = cgit.cgi 2CGIT_SCRIPT_NAME = cgit.cgi
3CGIT_SCRIPT_PATH = /var/www/htdocs/cgit 3CGIT_SCRIPT_PATH = /var/www/htdocs/cgit
4CGIT_CONFIG = /etc/cgitrc 4CGIT_CONFIG = /etc/cgitrc
5CACHE_ROOT = /var/cache/cgit 5CACHE_ROOT = /var/cache/cgit
6SHA1_HEADER = <openssl/sha.h> 6SHA1_HEADER = <openssl/sha.h>
7GIT_VER = 1.5.4.1 7GIT_VER = 1.5.4.1
8GIT_URL = http://www.kernel.org/pub/software/scm/git/git-$(GIT_VER).tar.bz2 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#
16# Define a way to invoke make in subdirs quietly, shamelessly ripped
17# from git.git
18#
19QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir
20QUIET_SUBDIR1 =
21
22ifneq ($(findstring $(MAKEFLAGS),w),w)
23PRINT_DIR = --no-print-directory
24else # "make -w"
25NO_SUBDIR = :
26endif
27
28ifndef V
29 QUIET_CC = @echo ' ' CC $@;
30 QUIET_MM = @echo ' ' MM $@;
31 QUIET_SUBDIR0 = +@subdir=
32 QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \
33 $(MAKE) $(PRINT_DIR) -C $$subdir
34endif
15 35
16# 36#
17# Define a pattern rule for automatic dependency building 37# Define a pattern rule for automatic dependency building
18# 38#
19%.d: %.c 39%.d: %.c
20 $(CC) $(CFLAGS) -MM $< | sed -e 's/\($*\)\.o:/\1.o $@:/g' >$@ 40 $(QUIET_MM)$(CC) $(CFLAGS) -MM $< | sed -e 's/\($*\)\.o:/\1.o $@:/g' >$@
41
42#
43# Define a pattern rule for silent object building
44#
45%.o: %.c
46 $(QUIET_CC)$(CC) -o $*.o -c $(CFLAGS) $<
21 47
22 48
23EXTLIBS = git/libgit.a git/xdiff/lib.a -lz -lcrypto 49EXTLIBS = git/libgit.a git/xdiff/lib.a -lz -lcrypto
24OBJECTS = 50OBJECTS =
25OBJECTS += cache.o 51OBJECTS += cache.o
26OBJECTS += cgit.o 52OBJECTS += cgit.o
27OBJECTS += cmd.o 53OBJECTS += cmd.o
28OBJECTS += html.o 54OBJECTS += html.o
29OBJECTS += parsing.o 55OBJECTS += parsing.o
30OBJECTS += shared.o 56OBJECTS += shared.o
31OBJECTS += ui-blob.o 57OBJECTS += ui-blob.o
32OBJECTS += ui-commit.o 58OBJECTS += ui-commit.o
33OBJECTS += ui-diff.o 59OBJECTS += ui-diff.o
34OBJECTS += ui-log.o 60OBJECTS += ui-log.o
35OBJECTS += ui-patch.o 61OBJECTS += ui-patch.o
36OBJECTS += ui-refs.o 62OBJECTS += ui-refs.o
37OBJECTS += ui-repolist.o 63OBJECTS += ui-repolist.o
38OBJECTS += ui-shared.o 64OBJECTS += ui-shared.o
39OBJECTS += ui-snapshot.o 65OBJECTS += ui-snapshot.o
40OBJECTS += ui-summary.o 66OBJECTS += ui-summary.o
41OBJECTS += ui-tag.o 67OBJECTS += ui-tag.o
42OBJECTS += ui-tree.o 68OBJECTS += ui-tree.o
43 69
44ifdef NEEDS_LIBICONV 70ifdef NEEDS_LIBICONV
45 EXTLIBS += -liconv 71 EXTLIBS += -liconv
46endif 72endif
47 73
48 74
49.PHONY: all git test install clean distclean emptycache force-version get-git 75.PHONY: all git test install clean distclean emptycache force-version get-git
50 76
51all: cgit git 77all: cgit git
52 78
53VERSION: force-version 79VERSION: force-version
54 @./gen-version.sh "$(CGIT_VERSION)" 80 @./gen-version.sh "$(CGIT_VERSION)"
55-include VERSION 81-include VERSION
56 82
57 83
58CFLAGS += -g -Wall -Igit 84CFLAGS += -g -Wall -Igit
59CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER)' 85CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER)'
60CFLAGS += -DCGIT_VERSION='"$(CGIT_VERSION)"' 86CFLAGS += -DCGIT_VERSION='"$(CGIT_VERSION)"'
61CFLAGS += -DCGIT_CONFIG='"$(CGIT_CONFIG)"' 87CFLAGS += -DCGIT_CONFIG='"$(CGIT_CONFIG)"'
62CFLAGS += -DCGIT_SCRIPT_NAME='"$(CGIT_SCRIPT_NAME)"' 88CFLAGS += -DCGIT_SCRIPT_NAME='"$(CGIT_SCRIPT_NAME)"'
63CFLAGS += -DCGIT_CACHE_ROOT='"$(CACHE_ROOT)"' 89CFLAGS += -DCGIT_CACHE_ROOT='"$(CACHE_ROOT)"'
64 90
65 91
66cgit: $(OBJECTS) 92cgit: $(OBJECTS)
67 $(CC) $(CFLAGS) -o cgit $(OBJECTS) $(EXTLIBS) 93 $(QUIET_CC)$(CC) $(CFLAGS) -o cgit $(OBJECTS) $(EXTLIBS)
68 94
69$(OBJECTS): git/xdiff/lib.a git/libgit.a 95$(OBJECTS): git/xdiff/lib.a git/libgit.a
70 96
71cgit.o: VERSION 97cgit.o: VERSION
72 98
73-include $(OBJECTS:.o=.d) 99-include $(OBJECTS:.o=.d)
74 100
75git/xdiff/lib.a: | git 101git/xdiff/lib.a: | git
76 102
77git/libgit.a: | git 103git/libgit.a: | git
78 104
79git: 105git:
80 cd git && $(MAKE) xdiff/lib.a 106 $(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) xdiff/lib.a
81 cd git && $(MAKE) libgit.a 107 $(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) libgit.a
82 108
83test: all 109test: all
84 $(MAKE) -C tests 110 $(QUIET_SUBDIR0)tests $(QUIET_SUBDIR1) all
85 111
86install: all 112install: all
87 mkdir -p $(DESTDIR)$(CGIT_SCRIPT_PATH) 113 mkdir -p $(DESTDIR)$(CGIT_SCRIPT_PATH)
88 install cgit $(DESTDIR)$(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME) 114 install cgit $(DESTDIR)$(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME)
89 install cgit.css $(DESTDIR)$(CGIT_SCRIPT_PATH)/cgit.css 115 install cgit.css $(DESTDIR)$(CGIT_SCRIPT_PATH)/cgit.css
90 install cgit.png $(DESTDIR)$(CGIT_SCRIPT_PATH)/cgit.png 116 install cgit.png $(DESTDIR)$(CGIT_SCRIPT_PATH)/cgit.png
91 117
92uninstall: 118uninstall:
93 rm -f $(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME) 119 rm -f $(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME)
94 rm -f $(CGIT_SCRIPT_PATH)/cgit.css 120 rm -f $(CGIT_SCRIPT_PATH)/cgit.css
95 rm -f $(CGIT_SCRIPT_PATH)/cgit.png 121 rm -f $(CGIT_SCRIPT_PATH)/cgit.png
96 122
97clean: 123clean:
98 rm -f cgit VERSION *.o *.d 124 rm -f cgit VERSION *.o *.d
99 cd git && $(MAKE) clean 125 cd git && $(MAKE) clean
100 126
101distclean: clean 127distclean: clean
102 git clean -d -x 128 git clean -d -x
103 cd git && git clean -d -x 129 cd git && git clean -d -x
104 130
105emptycache: 131emptycache:
106 rm -rf $(DESTDIR)$(CACHE_ROOT)/* 132 rm -rf $(DESTDIR)$(CACHE_ROOT)/*
107 133
108get-git: 134get-git:
109 curl $(GIT_URL) | tar -xj && rm -rf git && mv git-$(GIT_VER) git 135 curl $(GIT_URL) | tar -xj && rm -rf git && mv git-$(GIT_VER) git