summaryrefslogblamecommitdiffstatshomepage
path: root/Makefile
blob: 83d471665e3ca2af793fa4fac8eade40890f0a8e (plain) (tree)
1
2
3
4
5
6
7
8
9

     
                     
                           
                                       
                                    

                            
             

                                  



                                 
                             

                                                                     
                 




                                              
 




                                                                           



                    



                                           

                                                                              
 




                                                                    
 






                                      


                                                                    
                                             
                
     
 
          
 
          
 

                                                                            
 
         
                                                  
 
            

                                                                                 


                                                                        

                                                           
 












                                                               
 
          


                                                               
 
















                                                         




                             
 

                         
 

                                                 
 
                         


                               
                                               



                            
 
          
                                                                          
 
        
                                                                              


                                                        
 
                        




                                                                          
all::

CGIT_VERSION = v0.9.1
CGIT_SCRIPT_NAME = cgit.cgi
CGIT_SCRIPT_PATH = /var/www/htdocs/cgit
CGIT_DATA_PATH = $(CGIT_SCRIPT_PATH)
CGIT_CONFIG = /etc/cgitrc
CACHE_ROOT = /var/cache/cgit
prefix = /usr
libdir = $(prefix)/lib
filterdir = $(libdir)/cgit/filters
docdir = $(prefix)/share/doc/cgit
htmldir = $(docdir)
pdfdir = $(docdir)
mandir = $(prefix)/share/man
SHA1_HEADER = <openssl/sha.h>
GIT_VER = 1.7.12.4
GIT_URL = https://git-core.googlecode.com/files/git-$(GIT_VER).tar.gz
INSTALL = install
MAN5_TXT = $(wildcard *.5.txt)
MAN_TXT  = $(MAN5_TXT)
DOC_MAN5 = $(patsubst %.txt,%,$(MAN5_TXT))
DOC_HTML = $(patsubst %.txt,%.html,$(MAN_TXT))
DOC_PDF  = $(patsubst %.txt,%.pdf,$(MAN_TXT))

# Define NO_C99_FORMAT if your formatted IO functions (printf/scanf et.al.)
# do not support the 'size specifiers' introduced by C99, namely ll, hh,
# j, z, t. (representing long long int, char, intmax_t, size_t, ptrdiff_t).
# some C compilers supported these specifiers prior to C99 as an extension.
#

#-include config.mak

#
# Let the user override the above settings.
#
-include cgit.conf

export CGIT_SCRIPT_NAME CGIT_SCRIPT_PATH CGIT_DATA_PATH CGIT_CONFIG CACHE_ROOT

#
# Define a way to invoke make in subdirs quietly, shamelessly ripped
# from git.git
#
QUIET_SUBDIR0  = +$(MAKE) -C # space to separate -C and subdir
QUIET_SUBDIR1  =

ifneq ($(findstring $(MAKEFLAGS),w),w)
PRINT_DIR = --no-print-directory
else # "make -w"
NO_SUBDIR = :
endif

ifndef V
	QUIET_SUBDIR0  = +@subdir=
	QUIET_SUBDIR1  = ;$(NO_SUBDIR) echo '   ' SUBDIR $$subdir; \
			 $(MAKE) $(PRINT_DIR) -C $$subdir
	QUIET_TAGS     = @echo '   ' TAGS $@;
	export V
endif

.SUFFIXES:

all:: cgit

cgit:
	$(QUIET_SUBDIR0)git $(QUIET_SUBDIR1) -f ../cgit.mk ../cgit NO_CURL=1

test: all
	$(QUIET_SUBDIR0)tests $(QUIET_SUBDIR1) all

install: all
	$(INSTALL) -m 0755 -d $(DESTDIR)$(CGIT_SCRIPT_PATH)
	$(INSTALL) -m 0755 cgit $(DESTDIR)$(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME)
	$(INSTALL) -m 0755 -d $(DESTDIR)$(CGIT_DATA_PATH)
	$(INSTALL) -m 0644 cgit.css $(DESTDIR)$(CGIT_DATA_PATH)/cgit.css
	$(INSTALL) -m 0644 cgit.png $(DESTDIR)$(CGIT_DATA_PATH)/cgit.png
	$(INSTALL) -m 0755 -d $(DESTDIR)$(filterdir)
	$(INSTALL) -m 0755 filters/* $(DESTDIR)$(filterdir)

install-doc: install-man install-html install-pdf

install-man: doc-man
	$(INSTALL) -m 0755 -d $(DESTDIR)$(mandir)/man5
	$(INSTALL) -m 0644 $(DOC_MAN5) $(DESTDIR)$(mandir)/man5

install-html: doc-html
	$(INSTALL) -m 0755 -d $(DESTDIR)$(htmldir)
	$(INSTALL) -m 0644 $(DOC_HTML) $(DESTDIR)$(htmldir)

install-pdf: doc-pdf
	$(INSTALL) -m 0755 -d $(DESTDIR)$(pdfdir)
	$(INSTALL) -m 0644 $(DOC_PDF) $(DESTDIR)$(pdfdir)

uninstall:
	rm -f $(DESTDIR)$(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME)
	rm -f $(DESTDIR)$(CGIT_DATA_PATH)/cgit.css
	rm -f $(DESTDIR)$(CGIT_DATA_PATH)/cgit.png

uninstall-doc: uninstall-man uninstall-html uninstall-pdf

uninstall-man:
	@for i in $(DOC_MAN5); do \
	    rm -fv $(DESTDIR)$(mandir)/man5/$$i; \
	done

uninstall-html:
	@for i in $(DOC_HTML); do \
	    rm -fv $(DESTDIR)$(htmldir)/$$i; \
	done

uninstall-pdf:
	@for i in $(DOC_PDF); do \
	    rm -fv $(DESTDIR)$(pdfdir)/$$i; \
	done

doc: doc-man doc-html doc-pdf
doc-man: doc-man5
doc-man5: $(DOC_MAN5)
doc-html: $(DOC_HTML)
doc-pdf: $(DOC_PDF)

%.5 : %.5.txt
	a2x -f manpage $<

$(DOC_HTML): %.html : %.txt
	a2x -f xhtml --stylesheet=cgit-doc.css $<

$(DOC_PDF): %.pdf : %.txt
	a2x -f pdf cgitrc.5.txt

clean: clean-doc
	$(RM) cgit VERSION CGIT-CFLAGS *.o tags
	$(RM) -r .deps

cleanall: clean
	$(MAKE) -C git clean

clean-doc:
	$(RM) cgitrc.5 cgitrc.5.html cgitrc.5.pdf cgitrc.5.xml cgitrc.5.fo

get-git:
	curl -L $(GIT_URL) | tar -xzf - && rm -rf git && mv git-$(GIT_VER) git

tags:
	$(QUIET_TAGS)find . -name '*.[ch]' | xargs ctags

.PHONY: all cgit get-git
.PHONY: clean clean-doc cleanall
.PHONY: doc doc-html doc-man doc-pdf
.PHONY: install install-doc install-html install-man install-pdf
.PHONY: tags test
.PHONY: uninstall uninstall-doc uninstall-html uninstall-man uninstall-pdf