John Keeping | 5f323c1 | 2013-03-06 21:22:06 +0000 | [diff] [blame] | 1 | # This Makefile is run in the "git" directory in order to re-use Git's |
| 2 | # build variables and operating system detection. Hence all files in |
| 3 | # CGit's directory must be prefixed with "../". |
| 4 | include Makefile |
| 5 | |
| 6 | CGIT_PREFIX = ../ |
| 7 | |
| 8 | # The CGIT_* variables are inherited when this file is called from the |
| 9 | # main Makefile - they are defined there. |
| 10 | |
| 11 | $(CGIT_PREFIX)VERSION: force-version |
| 12 | @cd $(CGIT_PREFIX) && ./gen-version.sh "$(CGIT_VERSION)" |
| 13 | -include $(CGIT_PREFIX)VERSION |
| 14 | .PHONY: force-version |
| 15 | |
| 16 | # CGIT_CFLAGS is a separate variable so that we can track it separately |
| 17 | # and avoid rebuilding all of Git when these variables change. |
John Keeping | 5f323c1 | 2013-03-06 21:22:06 +0000 | [diff] [blame] | 18 | CGIT_CFLAGS += -DCGIT_CONFIG='"$(CGIT_CONFIG)"' |
| 19 | CGIT_CFLAGS += -DCGIT_SCRIPT_NAME='"$(CGIT_SCRIPT_NAME)"' |
| 20 | CGIT_CFLAGS += -DCGIT_CACHE_ROOT='"$(CACHE_ROOT)"' |
| 21 | |
| 22 | ifdef NO_C99_FORMAT |
| 23 | CFLAGS += -DNO_C99_FORMAT |
| 24 | endif |
| 25 | |
| 26 | CGIT_OBJ_NAMES += cgit.o |
| 27 | CGIT_OBJ_NAMES += cache.o |
| 28 | CGIT_OBJ_NAMES += cmd.o |
| 29 | CGIT_OBJ_NAMES += configfile.o |
| 30 | CGIT_OBJ_NAMES += html.o |
| 31 | CGIT_OBJ_NAMES += parsing.o |
| 32 | CGIT_OBJ_NAMES += scan-tree.o |
| 33 | CGIT_OBJ_NAMES += shared.o |
| 34 | CGIT_OBJ_NAMES += ui-atom.o |
| 35 | CGIT_OBJ_NAMES += ui-blob.o |
| 36 | CGIT_OBJ_NAMES += ui-clone.o |
| 37 | CGIT_OBJ_NAMES += ui-commit.o |
| 38 | CGIT_OBJ_NAMES += ui-diff.o |
| 39 | CGIT_OBJ_NAMES += ui-log.o |
| 40 | CGIT_OBJ_NAMES += ui-patch.o |
| 41 | CGIT_OBJ_NAMES += ui-plain.o |
| 42 | CGIT_OBJ_NAMES += ui-refs.o |
| 43 | CGIT_OBJ_NAMES += ui-repolist.o |
| 44 | CGIT_OBJ_NAMES += ui-shared.o |
| 45 | CGIT_OBJ_NAMES += ui-snapshot.o |
| 46 | CGIT_OBJ_NAMES += ui-ssdiff.o |
| 47 | CGIT_OBJ_NAMES += ui-stats.o |
| 48 | CGIT_OBJ_NAMES += ui-summary.o |
| 49 | CGIT_OBJ_NAMES += ui-tag.o |
| 50 | CGIT_OBJ_NAMES += ui-tree.o |
| 51 | CGIT_OBJ_NAMES += vector.o |
| 52 | |
| 53 | CGIT_OBJS := $(addprefix $(CGIT_PREFIX),$(CGIT_OBJ_NAMES)) |
| 54 | |
John Keeping | d6768a6 | 2013-03-06 21:22:08 +0000 | [diff] [blame^] | 55 | # Only cgit.c reference CGIT_VERSION so we only rebuild its objects when the |
| 56 | # version changes. |
| 57 | CGIT_VERSION_OBJS := $(addprefix $(CGIT_PREFIX),cgit.o) |
| 58 | $(CGIT_VERSION_OBJS): $(CGIT_PREFIX)VERSION |
| 59 | $(CGIT_VERSION_OBJS): EXTRA_CPPFLAGS = \ |
| 60 | -DCGIT_VERSION='"$(CGIT_VERSION)"' |
| 61 | |
| 62 | |
John Keeping | 5f323c1 | 2013-03-06 21:22:06 +0000 | [diff] [blame] | 63 | ifeq ($(wildcard $(CGIT_PREFIX).depend),) |
| 64 | missing_dep_dirs += $(CGIT_PREFIX).depend |
| 65 | endif |
| 66 | |
| 67 | $(CGIT_PREFIX).depend: |
| 68 | @mkdir -p $@ |
| 69 | |
| 70 | $(CGIT_PREFIX)CGIT-CFLAGS: FORCE |
| 71 | @FLAGS='$(subst ','\'',$(CGIT_CFLAGS))'; \ |
| 72 | if test x"$$FLAGS" != x"`cat ../CGIT-CFLAGS 2>/dev/null`" ; then \ |
| 73 | echo 1>&2 " * new CGit build flags"; \ |
| 74 | echo "$$FLAGS" >$(CGIT_PREFIX)CGIT-CFLAGS; \ |
| 75 | fi |
| 76 | |
| 77 | $(CGIT_OBJS): %.o: %.c GIT-CFLAGS $(CGIT_PREFIX)CGIT-CFLAGS $(missing_dep_dirs) |
| 78 | $(QUIET_CC)$(CC) -o $*.o -c $(dep_args) $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $(CGIT_CFLAGS) $< |
| 79 | |
| 80 | $(CGIT_PREFIX)cgit: $(CGIT_OBJS) GIT-LDFLAGS $(GITLIBS) |
| 81 | $(QUIET_LINK)$(CC) $(ALL_CFLAGS) -o $@ $(ALL_LDFLAGS) $(filter %.o,$^) $(LIBS) |