40803d9c6d
cgit-pink is a maintained fork of cgit that follows upstream git more closely and already contains a lot of patches we already had applied. Consequently, it seems sensible it becomes our future upstream, we may even be able to upstream some of our custom, less invasive patches. Change-Id: Ia081e4508866f32298986c7160f4890c8a7c8922
114 lines
3.6 KiB
Makefile
114 lines
3.6 KiB
Makefile
# This Makefile is run in the "git" directory in order to re-use Git's
|
|
# build variables and operating system detection. Hence all files in
|
|
# CGit's directory must be prefixed with "../".
|
|
include Makefile
|
|
|
|
CGIT_PREFIX = ../
|
|
|
|
-include $(CGIT_PREFIX)cgit.conf
|
|
|
|
# The CGIT_* variables are inherited when this file is called from the
|
|
# main Makefile - they are defined there.
|
|
|
|
$(CGIT_PREFIX)VERSION: force-version
|
|
@cd $(CGIT_PREFIX) && '$(SHELL_PATH_SQ)' ./gen-version.sh "$(CGIT_VERSION)"
|
|
-include $(CGIT_PREFIX)VERSION
|
|
.PHONY: force-version
|
|
|
|
# CGIT_CFLAGS is a separate variable so that we can track it separately
|
|
# and avoid rebuilding all of Git when these variables change.
|
|
CGIT_CFLAGS += -DCGIT_CONFIG='"$(CGIT_CONFIG)"'
|
|
CGIT_CFLAGS += -DCGIT_SCRIPT_NAME='"$(CGIT_SCRIPT_NAME)"'
|
|
CGIT_CFLAGS += -DCGIT_CACHE_ROOT='"$(CACHE_ROOT)"'
|
|
|
|
PKG_CONFIG ?= pkg-config
|
|
|
|
ifdef NO_C99_FORMAT
|
|
CFLAGS += -DNO_C99_FORMAT
|
|
endif
|
|
|
|
# Add -ldl to linker flags on systems that commonly use GNU libc.
|
|
ifneq (,$(filter $(uname_S),Linux GNU GNU/kFreeBSD))
|
|
CGIT_LIBS += -ldl
|
|
endif
|
|
|
|
# glibc 2.1+ offers sendfile which the most common C library on Linux
|
|
ifeq ($(uname_S),Linux)
|
|
HAVE_LINUX_SENDFILE = YesPlease
|
|
endif
|
|
|
|
ifdef HAVE_LINUX_SENDFILE
|
|
CGIT_CFLAGS += -DHAVE_LINUX_SENDFILE
|
|
endif
|
|
|
|
CGIT_OBJ_NAMES += cgit.o
|
|
CGIT_OBJ_NAMES += cache.o
|
|
CGIT_OBJ_NAMES += cmd.o
|
|
CGIT_OBJ_NAMES += configfile.o
|
|
CGIT_OBJ_NAMES += filter.o
|
|
CGIT_OBJ_NAMES += html.o
|
|
CGIT_OBJ_NAMES += parsing.o
|
|
CGIT_OBJ_NAMES += scan-tree.o
|
|
CGIT_OBJ_NAMES += shared.o
|
|
CGIT_OBJ_NAMES += ui-atom.o
|
|
CGIT_OBJ_NAMES += ui-blame.o
|
|
CGIT_OBJ_NAMES += ui-blob.o
|
|
CGIT_OBJ_NAMES += ui-clone.o
|
|
CGIT_OBJ_NAMES += ui-commit.o
|
|
CGIT_OBJ_NAMES += ui-diff.o
|
|
CGIT_OBJ_NAMES += ui-log.o
|
|
CGIT_OBJ_NAMES += ui-patch.o
|
|
CGIT_OBJ_NAMES += ui-plain.o
|
|
CGIT_OBJ_NAMES += ui-refs.o
|
|
CGIT_OBJ_NAMES += ui-repolist.o
|
|
CGIT_OBJ_NAMES += ui-shared.o
|
|
CGIT_OBJ_NAMES += ui-snapshot.o
|
|
CGIT_OBJ_NAMES += ui-ssdiff.o
|
|
CGIT_OBJ_NAMES += ui-stats.o
|
|
CGIT_OBJ_NAMES += ui-summary.o
|
|
CGIT_OBJ_NAMES += ui-tag.o
|
|
CGIT_OBJ_NAMES += ui-tree.o
|
|
|
|
CGIT_OBJS := $(addprefix $(CGIT_PREFIX),$(CGIT_OBJ_NAMES))
|
|
|
|
# Only cgit.c reference CGIT_VERSION so we only rebuild its objects when the
|
|
# version changes.
|
|
CGIT_VERSION_OBJS := $(addprefix $(CGIT_PREFIX),cgit.o cgit.sp)
|
|
$(CGIT_VERSION_OBJS): $(CGIT_PREFIX)VERSION
|
|
$(CGIT_VERSION_OBJS): EXTRA_CPPFLAGS = \
|
|
-DCGIT_VERSION='"$(CGIT_VERSION)"'
|
|
|
|
# Git handles dependencies using ":=" so dependencies in CGIT_OBJ are not
|
|
# handled by that and we must handle them ourselves.
|
|
cgit_dep_files := $(foreach f,$(CGIT_OBJS),$(dir $f).depend/$(notdir $f).d)
|
|
cgit_dep_files_present := $(wildcard $(cgit_dep_files))
|
|
ifneq ($(cgit_dep_files_present),)
|
|
include $(cgit_dep_files_present)
|
|
endif
|
|
|
|
ifeq ($(wildcard $(CGIT_PREFIX).depend),)
|
|
missing_dep_dirs += $(CGIT_PREFIX).depend
|
|
endif
|
|
|
|
$(CGIT_PREFIX).depend:
|
|
@mkdir -p $@
|
|
|
|
$(CGIT_PREFIX)CGIT-CFLAGS: FORCE
|
|
@FLAGS='$(subst ','\'',$(CGIT_CFLAGS))'; \
|
|
if test x"$$FLAGS" != x"`cat ../CGIT-CFLAGS 2>/dev/null`" ; then \
|
|
echo 1>&2 " * new CGit build flags"; \
|
|
echo "$$FLAGS" >$(CGIT_PREFIX)CGIT-CFLAGS; \
|
|
fi
|
|
|
|
$(CGIT_OBJS): %.o: %.c GIT-CFLAGS $(CGIT_PREFIX)CGIT-CFLAGS $(missing_dep_dirs)
|
|
$(QUIET_CC)$(CC) -o $*.o -c $(dep_args) $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $(CGIT_CFLAGS) $<
|
|
|
|
$(CGIT_PREFIX)cgit: $(CGIT_OBJS) GIT-LDFLAGS $(GITLIBS)
|
|
$(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS) $(CGIT_LIBS)
|
|
|
|
CGIT_SP_OBJS := $(patsubst %.o,%.sp,$(CGIT_OBJS))
|
|
|
|
$(CGIT_SP_OBJS): %.sp: %.c GIT-CFLAGS $(CGIT_PREFIX)CGIT-CFLAGS FORCE
|
|
$(QUIET_SP)cgcc -no-compile $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $(CGIT_CFLAGS) $(SPARSE_FLAGS) $<
|
|
|
|
cgit-sparse: $(CGIT_SP_OBJS)
|