summaryrefslogtreecommitdiffabout
authorRamsay Jones <ramsay@ramsay1.demon.co.uk>2008-11-15 18:26:32 (UTC)
committer Lars Hjemli <hjemli@gmail.com>2008-12-03 22:39:30 (UTC)
commit97fdac1608a0b4b07aae26b144c6ee7991e6c5eb (patch) (unidiff)
treee140bc09861b1d7a08a7fd7a3ef89e89b56b939e
parentc7d1402b177f4cf835e81f962e2faa3c9e28c549 (diff)
downloadcgit-97fdac1608a0b4b07aae26b144c6ee7991e6c5eb.zip
cgit-97fdac1608a0b4b07aae26b144c6ee7991e6c5eb.tar.gz
cgit-97fdac1608a0b4b07aae26b144c6ee7991e6c5eb.tar.bz2
Extra cygwin-specific changes
Signed-off-by: Ramsay Jones <ramsay@ramsay1.demon.co.uk> Signed-off-by: Lars Hjemli <hjemli@gmail.com>
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--Makefile23
-rw-r--r--cgit.h6
2 files changed, 23 insertions, 6 deletions
diff --git a/Makefile b/Makefile
index 2107610..dc98072 100644
--- a/Makefile
+++ b/Makefile
@@ -1,129 +1,152 @@
1CGIT_VERSION = v0.8.1 1CGIT_VERSION = v0.8.1
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.6.0.3 7GIT_VER = 1.6.0.3
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# Define NO_STRCASESTR if you don't have strcasestr.
16#
17# Define NEEDS_LIBICONV if linking with libc is not enough (eg. Darwin).
18#
19
20#-include config.mak
21
22#
23# Platform specific tweaks
24#
25
26uname_S := $(shell sh -c 'uname -s 2>/dev/null || echo not')
27uname_O := $(shell sh -c 'uname -o 2>/dev/null || echo not')
28uname_R := $(shell sh -c 'uname -r 2>/dev/null || echo not')
29
30ifeq ($(uname_O),Cygwin)
31 NO_STRCASESTR = YesPlease
32 NEEDS_LIBICONV = YesPlease
33endif
34
15# 35#
16# Define a way to invoke make in subdirs quietly, shamelessly ripped 36# Define a way to invoke make in subdirs quietly, shamelessly ripped
17# from git.git 37# from git.git
18# 38#
19QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir 39QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir
20QUIET_SUBDIR1 = 40QUIET_SUBDIR1 =
21 41
22ifneq ($(findstring $(MAKEFLAGS),w),w) 42ifneq ($(findstring $(MAKEFLAGS),w),w)
23PRINT_DIR = --no-print-directory 43PRINT_DIR = --no-print-directory
24else # "make -w" 44else # "make -w"
25NO_SUBDIR = : 45NO_SUBDIR = :
26endif 46endif
27 47
28ifndef V 48ifndef V
29 QUIET_CC = @echo ' ' CC $@; 49 QUIET_CC = @echo ' ' CC $@;
30 QUIET_MM = @echo ' ' MM $@; 50 QUIET_MM = @echo ' ' MM $@;
31 QUIET_SUBDIR0 = +@subdir= 51 QUIET_SUBDIR0 = +@subdir=
32 QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \ 52 QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \
33 $(MAKE) $(PRINT_DIR) -C $$subdir 53 $(MAKE) $(PRINT_DIR) -C $$subdir
34endif 54endif
35 55
36# 56#
37# Define a pattern rule for automatic dependency building 57# Define a pattern rule for automatic dependency building
38# 58#
39%.d: %.c 59%.d: %.c
40 $(QUIET_MM)$(CC) $(CFLAGS) -MM $< | sed -e 's/\($*\)\.o:/\1.o $@:/g' >$@ 60 $(QUIET_MM)$(CC) $(CFLAGS) -MM $< | sed -e 's/\($*\)\.o:/\1.o $@:/g' >$@
41 61
42# 62#
43# Define a pattern rule for silent object building 63# Define a pattern rule for silent object building
44# 64#
45%.o: %.c 65%.o: %.c
46 $(QUIET_CC)$(CC) -o $*.o -c $(CFLAGS) $< 66 $(QUIET_CC)$(CC) -o $*.o -c $(CFLAGS) $<
47 67
48 68
49EXTLIBS = git/libgit.a git/xdiff/lib.a -lz -lcrypto 69EXTLIBS = git/libgit.a git/xdiff/lib.a -lz -lcrypto
50OBJECTS = 70OBJECTS =
51OBJECTS += cache.o 71OBJECTS += cache.o
52OBJECTS += cgit.o 72OBJECTS += cgit.o
53OBJECTS += cmd.o 73OBJECTS += cmd.o
54OBJECTS += configfile.o 74OBJECTS += configfile.o
55OBJECTS += html.o 75OBJECTS += html.o
56OBJECTS += parsing.o 76OBJECTS += parsing.o
57OBJECTS += scan-tree.o 77OBJECTS += scan-tree.o
58OBJECTS += shared.o 78OBJECTS += shared.o
59OBJECTS += ui-atom.o 79OBJECTS += ui-atom.o
60OBJECTS += ui-blob.o 80OBJECTS += ui-blob.o
61OBJECTS += ui-clone.o 81OBJECTS += ui-clone.o
62OBJECTS += ui-commit.o 82OBJECTS += ui-commit.o
63OBJECTS += ui-diff.o 83OBJECTS += ui-diff.o
64OBJECTS += ui-log.o 84OBJECTS += ui-log.o
65OBJECTS += ui-patch.o 85OBJECTS += ui-patch.o
66OBJECTS += ui-plain.o 86OBJECTS += ui-plain.o
67OBJECTS += ui-refs.o 87OBJECTS += ui-refs.o
68OBJECTS += ui-repolist.o 88OBJECTS += ui-repolist.o
69OBJECTS += ui-shared.o 89OBJECTS += ui-shared.o
70OBJECTS += ui-snapshot.o 90OBJECTS += ui-snapshot.o
71OBJECTS += ui-summary.o 91OBJECTS += ui-summary.o
72OBJECTS += ui-tag.o 92OBJECTS += ui-tag.o
73OBJECTS += ui-tree.o 93OBJECTS += ui-tree.o
74 94
75ifdef NEEDS_LIBICONV 95ifdef NEEDS_LIBICONV
76 EXTLIBS += -liconv 96 EXTLIBS += -liconv
77endif 97endif
78 98
79 99
80.PHONY: all libgit test install uninstall clean force-version get-git 100.PHONY: all libgit test install uninstall clean force-version get-git
81 101
82all: cgit 102all: cgit
83 103
84VERSION: force-version 104VERSION: force-version
85 @./gen-version.sh "$(CGIT_VERSION)" 105 @./gen-version.sh "$(CGIT_VERSION)"
86-include VERSION 106-include VERSION
87 107
88 108
89CFLAGS += -g -Wall -Igit 109CFLAGS += -g -Wall -Igit
90CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER)' 110CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER)'
91CFLAGS += -DCGIT_VERSION='"$(CGIT_VERSION)"' 111CFLAGS += -DCGIT_VERSION='"$(CGIT_VERSION)"'
92CFLAGS += -DCGIT_CONFIG='"$(CGIT_CONFIG)"' 112CFLAGS += -DCGIT_CONFIG='"$(CGIT_CONFIG)"'
93CFLAGS += -DCGIT_SCRIPT_NAME='"$(CGIT_SCRIPT_NAME)"' 113CFLAGS += -DCGIT_SCRIPT_NAME='"$(CGIT_SCRIPT_NAME)"'
94CFLAGS += -DCGIT_CACHE_ROOT='"$(CACHE_ROOT)"' 114CFLAGS += -DCGIT_CACHE_ROOT='"$(CACHE_ROOT)"'
95 115
96ifdef NO_ICONV 116ifdef NO_ICONV
97 CFLAGS += -DNO_ICONV 117 CFLAGS += -DNO_ICONV
98endif 118endif
119ifdef NO_STRCASESTR
120 CFLAGS += -DNO_STRCASESTR
121endif
99 122
100cgit: $(OBJECTS) libgit 123cgit: $(OBJECTS) libgit
101 $(QUIET_CC)$(CC) $(CFLAGS) $(LDFLAGS) -o cgit $(OBJECTS) $(EXTLIBS) 124 $(QUIET_CC)$(CC) $(CFLAGS) $(LDFLAGS) -o cgit $(OBJECTS) $(EXTLIBS)
102 125
103cgit.o: VERSION 126cgit.o: VERSION
104 127
105-include $(OBJECTS:.o=.d) 128-include $(OBJECTS:.o=.d)
106 129
107libgit: 130libgit:
108 $(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) libgit.a 131 $(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) libgit.a
109 $(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) xdiff/lib.a 132 $(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) xdiff/lib.a
110 133
111test: all 134test: all
112 $(QUIET_SUBDIR0)tests $(QUIET_SUBDIR1) all 135 $(QUIET_SUBDIR0)tests $(QUIET_SUBDIR1) all
113 136
114install: all 137install: all
115 mkdir -p $(DESTDIR)$(CGIT_SCRIPT_PATH) 138 mkdir -p $(DESTDIR)$(CGIT_SCRIPT_PATH)
116 install cgit $(DESTDIR)$(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME) 139 install cgit $(DESTDIR)$(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME)
117 install -m 0644 cgit.css $(DESTDIR)$(CGIT_SCRIPT_PATH)/cgit.css 140 install -m 0644 cgit.css $(DESTDIR)$(CGIT_SCRIPT_PATH)/cgit.css
118 install -m 0644 cgit.png $(DESTDIR)$(CGIT_SCRIPT_PATH)/cgit.png 141 install -m 0644 cgit.png $(DESTDIR)$(CGIT_SCRIPT_PATH)/cgit.png
119 142
120uninstall: 143uninstall:
121 rm -f $(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME) 144 rm -f $(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME)
122 rm -f $(CGIT_SCRIPT_PATH)/cgit.css 145 rm -f $(CGIT_SCRIPT_PATH)/cgit.css
123 rm -f $(CGIT_SCRIPT_PATH)/cgit.png 146 rm -f $(CGIT_SCRIPT_PATH)/cgit.png
124 147
125clean: 148clean:
126 rm -f cgit VERSION *.o *.d 149 rm -f cgit VERSION *.o *.d
127 150
128get-git: 151get-git:
129 curl $(GIT_URL) | tar -xj && rm -rf git && mv git-$(GIT_VER) git 152 curl $(GIT_URL) | tar -xj && rm -rf git && mv git-$(GIT_VER) git
diff --git a/cgit.h b/cgit.h
index 91db98a..92f0c5a 100644
--- a/cgit.h
+++ b/cgit.h
@@ -188,56 +188,50 @@ struct cgit_snapshot_format {
188 write_archive_fn_t write_func; 188 write_archive_fn_t write_func;
189 int bit; 189 int bit;
190}; 190};
191 191
192extern const char *cgit_version; 192extern const char *cgit_version;
193 193
194extern struct cgit_repolist cgit_repolist; 194extern struct cgit_repolist cgit_repolist;
195extern struct cgit_context ctx; 195extern struct cgit_context ctx;
196extern const struct cgit_snapshot_format cgit_snapshot_formats[]; 196extern const struct cgit_snapshot_format cgit_snapshot_formats[];
197 197
198extern struct cgit_repo *cgit_add_repo(const char *url); 198extern struct cgit_repo *cgit_add_repo(const char *url);
199extern struct cgit_repo *cgit_get_repoinfo(const char *url); 199extern struct cgit_repo *cgit_get_repoinfo(const char *url);
200extern void cgit_repo_config_cb(const char *name, const char *value); 200extern void cgit_repo_config_cb(const char *name, const char *value);
201 201
202extern int chk_zero(int result, char *msg); 202extern int chk_zero(int result, char *msg);
203extern int chk_positive(int result, char *msg); 203extern int chk_positive(int result, char *msg);
204extern int chk_non_negative(int result, char *msg); 204extern int chk_non_negative(int result, char *msg);
205 205
206extern char *trim_end(const char *str, char c); 206extern char *trim_end(const char *str, char c);
207extern char *strlpart(char *txt, int maxlen); 207extern char *strlpart(char *txt, int maxlen);
208extern char *strrpart(char *txt, int maxlen); 208extern char *strrpart(char *txt, int maxlen);
209 209
210extern void cgit_add_ref(struct reflist *list, struct refinfo *ref); 210extern void cgit_add_ref(struct reflist *list, struct refinfo *ref);
211extern int cgit_refs_cb(const char *refname, const unsigned char *sha1, 211extern int cgit_refs_cb(const char *refname, const unsigned char *sha1,
212 int flags, void *cb_data); 212 int flags, void *cb_data);
213 213
214extern void *cgit_free_commitinfo(struct commitinfo *info); 214extern void *cgit_free_commitinfo(struct commitinfo *info);
215 215
216extern int cgit_diff_files(const unsigned char *old_sha1, 216extern int cgit_diff_files(const unsigned char *old_sha1,
217 const unsigned char *new_sha1, 217 const unsigned char *new_sha1,
218 linediff_fn fn); 218 linediff_fn fn);
219 219
220extern void cgit_diff_tree(const unsigned char *old_sha1, 220extern void cgit_diff_tree(const unsigned char *old_sha1,
221 const unsigned char *new_sha1, 221 const unsigned char *new_sha1,
222 filepair_fn fn, const char *prefix); 222 filepair_fn fn, const char *prefix);
223 223
224extern void cgit_diff_commit(struct commit *commit, filepair_fn fn); 224extern void cgit_diff_commit(struct commit *commit, filepair_fn fn);
225 225
226extern char *fmt(const char *format,...); 226extern char *fmt(const char *format,...);
227 227
228extern struct commitinfo *cgit_parse_commit(struct commit *commit); 228extern struct commitinfo *cgit_parse_commit(struct commit *commit);
229extern struct taginfo *cgit_parse_tag(struct tag *tag); 229extern struct taginfo *cgit_parse_tag(struct tag *tag);
230extern void cgit_parse_url(const char *url); 230extern void cgit_parse_url(const char *url);
231 231
232extern const char *cgit_repobasename(const char *reponame); 232extern const char *cgit_repobasename(const char *reponame);
233 233
234extern int cgit_parse_snapshots_mask(const char *str); 234extern int cgit_parse_snapshots_mask(const char *str);
235 235
236/* libgit.a either links against or compiles its own implementation of
237 * strcasestr(), and we'd like to reuse it. Simply re-declaring it
238 * seems to do the trick.
239 */
240extern char *strcasestr(const char *haystack, const char *needle);
241
242 236
243#endif /* CGIT_H */ 237#endif /* CGIT_H */