4 CGIT_SCRIPT_NAME
= cgit.cgi
5 CGIT_SCRIPT_PATH
= /var
/www
/htdocs
/cgit
6 CGIT_DATA_PATH
= $(CGIT_SCRIPT_PATH
)
7 CGIT_CONFIG
= /etc
/cgitrc
8 CACHE_ROOT
= /var
/cache
/cgit
10 libdir = $(prefix)/lib
11 filterdir
= $(libdir)/cgit
/filters
12 docdir
= $(prefix)/share
/doc
/cgit
15 mandir = $(prefix)/share
/man
16 SHA1_HEADER
= <openssl
/sha.h
>
18 GIT_URL
= https
://www.kernel.org
/pub
/software
/scm
/git
/git-
$(GIT_VER
).
tar.xz
21 MAN5_TXT
= $(wildcard *.5.txt
)
23 DOC_MAN5
= $(patsubst %.txt
,%,$(MAN5_TXT
))
24 DOC_HTML
= $(patsubst %.txt
,%.html
,$(MAN_TXT
))
25 DOC_PDF
= $(patsubst %.txt
,%.pdf
,$(MAN_TXT
))
29 ASCIIDOC_HTML
= xhtml11
30 ASCIIDOC_COMMON
= $(ASCIIDOC
) $(ASCIIDOC_EXTRA
)
31 TXT_TO_HTML
= $(ASCIIDOC_COMMON
) -b
$(ASCIIDOC_HTML
)
33 # Define NO_C99_FORMAT if your formatted IO functions (printf/scanf et.al.)
34 # do not support the 'size specifiers' introduced by C99, namely ll, hh,
35 # j, z, t. (representing long long int, char, intmax_t, size_t, ptrdiff_t).
36 # some C compilers supported these specifiers prior to C99 as an extension.
38 # Define HAVE_LINUX_SENDFILE to use sendfile()
42 -include git
/config.mak.uname
44 # Let the user override the above settings.
48 export CGIT_VERSION CGIT_SCRIPT_NAME CGIT_SCRIPT_PATH CGIT_DATA_PATH CGIT_CONFIG CACHE_ROOT
51 # Define a way to invoke make in subdirs quietly, shamelessly ripped
54 QUIET_SUBDIR0
= +$(MAKE
) -C
# space to separate -C and subdir
57 ifneq ($(findstring w
,$(MAKEFLAGS
)),w
)
58 PRINT_DIR
= --no-print-directory
64 QUIET_SUBDIR0
= +@subdir
=
65 QUIET_SUBDIR1
= ;$(NO_SUBDIR
) echo
' ' SUBDIR
$$subdir; \
66 $(MAKE
) $(PRINT_DIR
) -C
$$subdir
67 QUIET_TAGS
= @echo
' ' TAGS
$@
;
76 $(QUIET_SUBDIR0
)git
$(QUIET_SUBDIR1
) -f ..
/cgit.mk ..
/cgit
$(EXTRA_GIT_TARGETS
) NO_CURL
=1
79 $(QUIET_SUBDIR0
)git
$(QUIET_SUBDIR1
) -f ..
/cgit.mk NO_CURL
=1 cgit-sparse
82 @
$(MAKE
) --no-print-directory cgit EXTRA_GIT_TARGETS
=all
83 $(QUIET_SUBDIR0
)tests
$(QUIET_SUBDIR1
) all
86 $(INSTALL
) -m
0755 -d
$(DESTDIR
)$(CGIT_SCRIPT_PATH
)
87 $(INSTALL
) -m
0755 cgit
$(DESTDIR
)$(CGIT_SCRIPT_PATH
)/$(CGIT_SCRIPT_NAME
)
88 $(INSTALL
) -m
0755 -d
$(DESTDIR
)$(CGIT_DATA_PATH
)
89 $(INSTALL
) -m
0644 cgit.css
$(DESTDIR
)$(CGIT_DATA_PATH
)/cgit.css
90 $(INSTALL
) -m
0644 cgit.js
$(DESTDIR
)$(CGIT_DATA_PATH
)/cgit.js
91 $(INSTALL
) -m
0644 cgit.png
$(DESTDIR
)$(CGIT_DATA_PATH
)/cgit.png
92 $(INSTALL
) -m
0644 favicon.ico
$(DESTDIR
)$(CGIT_DATA_PATH
)/favicon.ico
93 $(INSTALL
) -m
0644 robots.txt
$(DESTDIR
)$(CGIT_DATA_PATH
)/robots.txt
94 $(INSTALL
) -m
0755 -d
$(DESTDIR
)$(filterdir
)
95 $(COPYTREE
) filters
/* $(DESTDIR
)$(filterdir
)
97 install-doc
: install-man install-html install-pdf
100 $(INSTALL
) -m
0755 -d
$(DESTDIR
)$(mandir)/man5
101 $(INSTALL
) -m
0644 $(DOC_MAN5
) $(DESTDIR
)$(mandir)/man5
103 install-html
: doc-html
104 $(INSTALL
) -m
0755 -d
$(DESTDIR
)$(htmldir
)
105 $(INSTALL
) -m
0644 $(DOC_HTML
) $(DESTDIR
)$(htmldir
)
108 $(INSTALL
) -m
0755 -d
$(DESTDIR
)$(pdfdir
)
109 $(INSTALL
) -m
0644 $(DOC_PDF
) $(DESTDIR
)$(pdfdir
)
112 rm -f
$(DESTDIR
)$(CGIT_SCRIPT_PATH
)/$(CGIT_SCRIPT_NAME
)
113 rm -f
$(DESTDIR
)$(CGIT_DATA_PATH
)/cgit.css
114 rm -f
$(DESTDIR
)$(CGIT_DATA_PATH
)/cgit.png
115 rm -f
$(DESTDIR
)$(CGIT_DATA_PATH
)/favicon.ico
117 uninstall-doc
: uninstall-man uninstall-html uninstall-pdf
120 @for i in
$(DOC_MAN5
); do \
121 rm -fv
$(DESTDIR
)$(mandir)/man5
/$$i; \
125 @for i in
$(DOC_HTML
); do \
126 rm -fv
$(DESTDIR
)$(htmldir
)/$$i; \
130 @for i in
$(DOC_PDF
); do \
131 rm -fv
$(DESTDIR
)$(pdfdir
)/$$i; \
134 doc
: doc-man doc-html doc-pdf
136 doc-man5
: $(DOC_MAN5
)
137 doc-html
: $(DOC_HTML
)
143 $(DOC_HTML
): %.html
: %.txt
144 $(TXT_TO_HTML
) -o
$@
+ $< && \
147 $(DOC_PDF
): %.pdf
: %.txt
148 a2x
-f pdf cgitrc
.5.txt
151 $(RM
) cgit VERSION CGIT-CFLAGS
*.o
tags
158 $(RM
) cgitrc
.5 cgitrc
.5.html cgitrc
.5.pdf cgitrc
.5.xml cgitrc
.5.fo
161 curl
-L
$(GIT_URL
) |
tar -xJf
- && rm -rf git
&& mv git-
$(GIT_VER
) git
164 $(QUIET_TAGS
)find .
-name
'*.[ch]' | xargs ctags
166 .PHONY
: all cgit git get-git
167 .PHONY
: clean clean-doc cleanall
168 .PHONY
: doc doc-html doc-man doc-pdf
169 .PHONY
: install install-doc install-html install-man install-pdf
171 .PHONY
: uninstall uninstall-doc uninstall-html uninstall-man uninstall-pdf