about summary refs log tree commit diff
path: root/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile98
1 files changed, 35 insertions, 63 deletions
diff --git a/Makefile b/Makefile
index 50d0011..12fd652 100644
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,9 @@
-prefix = /var/www/htdocs/cgit
-SHA1_HEADER = <openssl/sha.h>
-CACHE_ROOT = /var/cache/cgit
-CGIT_CONFIG = /etc/cgitrc
+CGIT_VERSION = v0.5
 CGIT_SCRIPT_NAME = cgit.cgi
+CGIT_SCRIPT_PATH = /var/www/htdocs/cgit
+CGIT_CONFIG = /etc/cgitrc
+CACHE_ROOT = /var/cache/cgit
+SHA1_HEADER = <openssl/sha.h>
 
 #
 # Let the user override the above settings.
@@ -10,85 +11,56 @@ CGIT_SCRIPT_NAME = cgit.cgi
 -include cgit.conf
 
 
-CGIT_VERSION = 0.5
-
-all: cgit
-
-VERSION:
-	sh gen-version.sh
-
--include VERSION
-
-
 EXTLIBS = git/libgit.a git/xdiff/lib.a -lz -lcrypto
 OBJECTS = shared.o cache.o parsing.o html.o ui-shared.o ui-repolist.o \
 	ui-summary.o ui-log.o ui-tree.o ui-commit.o ui-diff.o \
 	ui-snapshot.o ui-blob.o ui-tag.o
 
-CFLAGS += -Wall
 
-ifdef DEBUG
-	CFLAGS += -g
-endif
+.PHONY: all git install clean distclean force-version
+
+all: cgit git
+
+VERSION: force-version
+	@./gen-version.sh "$(CGIT_VERSION)"
+-include VERSION
+
 
-CFLAGS += -Igit
+CFLAGS += -g -Wall -Igit
 CFLAGS += -DSHA1_HEADER='$(SHA1_HEADER)'
 CFLAGS += -DCGIT_VERSION='"$(CGIT_VERSION)"'
 CFLAGS += -DCGIT_CONFIG='"$(CGIT_CONFIG)"'
 CFLAGS += -DCGIT_SCRIPT_NAME='"$(CGIT_SCRIPT_NAME)"'
 
 
-#
-# If make is run on a nongit platform, get the git sources as a tarball.
-#
-GITVER = $(shell git version 2>/dev/null || echo nogit)
-ifeq ($(GITVER),nogit)
-GITURL = http://www.kernel.org/pub/software/scm/git/git-1.5.2.tar.bz2
-INITGIT = test -e git/git.c || ((curl "$(GITURL)" | tar -xj) && mv git-1.5.2 git)
-else
-INITGIT = ./submodules.sh -i
-endif
-
-
-cgit: cgit.c cgit.h VERSION $(OBJECTS)
+cgit: cgit.c $(OBJECTS)
 	$(CC) $(CFLAGS) cgit.c -o cgit $(OBJECTS) $(EXTLIBS)
 
-$(OBJECTS): cgit.h git/libgit.a
+$(OBJECTS): cgit.h git/xdiff/lib.a git/libgit.a VERSION
 
-git/libgit.a:
-	$(INITGIT)
-	$(MAKE) -C git
+git/xdiff/lib.a: | git
 
-#
-# phony targets
-#
-install: all clean-cache
-	mkdir -p $(prefix)
-	install cgit $(prefix)/$(CGIT_SCRIPT_NAME)
-	install cgit.css $(prefix)/cgit.css
+git/libgit.a: | git
 
-clean-cgit:
-	rm -f cgit VERSION *.o
+git:
+	cd git && $(MAKE) xdiff/lib.a
+	cd git && $(MAKE) libgit.a
 
-distclean-cgit: clean-cgit
-	git clean -d -x
-
-clean-sub:
-	$(MAKE) -C git clean
-
-distclean-sub: clean-sub
-	$(shell cd git && git clean -d -x)
-
-clean-cache:
+install: all
+	mkdir -p $(CGIT_SCRIPT_PATH)
+	install cgit $(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME)
+	install cgit.css $(CGIT_SCRIPT_PATH)/cgit.css
 	rm -rf $(CACHE_ROOT)/*
 
-clean: clean-cgit clean-sub
+uninstall:
+	rm -f $(CGIT_SCRIPT_PATH)/$(CGIT_SCRIPT_NAME)
+	rm -f $(CGIT_SCRIPT_PATH)/cgit.css
+	rm -rf $(CACHE_ROOT)
 
-distclean: distclean-cgit distclean-sub
-
-version: clean-cgit
-	./gen-version.sh
-	make
+clean:
+	rm -f cgit VERSION *.o
+	cd git && $(MAKE) clean
 
-.PHONY: all install clean clean-cgit clean-sub clean-cache \
-	distclean distclean-cgit distclean-sub release version
+distclean: clean
+	git clean -d -x
+	cd git && git clean -d -x
2 2014] [error] [client 172.21.1.6] Premature end > of script headers: cgit, referer: > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/ The cache will kick in, so if you search for the same string again, it'll show an empty range, so you have to change the bogus strings each time. This is because we just pass the arguments straight to Git's revision parsing machinery which die()s if it cannot parse an argument, printing the above to stderr and exiting. The patch below makes it a bit friendlier by just ignoring unhandled arguments, but I can't see an easy way to report errors when we can't parse revision arguments without losing the flexibility of supporting all of the revision specifiers supported by Git. Reported-by: Konstantin Ryabitsev <mricon@kernel.org> 2014-06-28git: update for git 2.0Christian Hesse prefixcmp() and suffixcmp() have been remove, functionality is now provided by starts_with() and ends_with(). Retrurn values have been changed, so instead of just renaming we have to fix logic. Everything else looks just fine. 2014-04-17remove trailing whitespaces from source filesChristian Hesse 2014-04-12git: update to 1.9.2Christian Hesse Everything works just bumping the version in Makefile and commit hash in submodule. No code changes required. 2014-04-05Fix cgit_parse_url when a repo url is contained in another repo urlJulian Maurice For example, if I have two repos (remove-suffix is enabled): /foo /foo/bar http://cgit/foo/bar/ is interpreted as "repository 'foo', command 'bar'" instead of "repository 'foo/bar'" 2014-03-20Makefile: use more reliable git tarball mirrorJason A. Donenfeld 2014-03-20git: update to 1.9.1Christian Hesse