Sverre Rabbelier wrote: > Ugh, git/git is already a horror to 'ls', adding another n files... > :(. They are dotfiles, though depending on how your 'ls' works, that may or may not help. > Which brings me back to "if only git had a seperate src/ and maybe > /build directories" :P. Hmm, I don’t want to work on that in general, but a separate deps/ directory does not sound like a bad idea at all. i.e., something vaguely like this. .gitignore | 1 + Makefile | 20 ++++++++++++++++++-- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index ac02a58..803247f 100644 --- a/.gitignore +++ b/.gitignore @@ -170,6 +170,7 @@ *.exe *.[aos] *.py[co] +*.o.d *+ /config.mak /autom4te.cache diff --git a/Makefile b/Makefile index ed0f461..1cc149b 100644 --- a/Makefile +++ b/Makefile @@ -488,6 +488,7 @@ LIB_H += unpack-trees.h LIB_H += userdiff.h LIB_H += utf8.h LIB_H += wt-status.h +LIB_H := LIB_OBJS += abspath.o LIB_OBJS += advice.o @@ -1559,13 +1560,23 @@ git.o git.spec \ $(patsubst %.perl,%,$(SCRIPT_PERL)) \ : GIT-VERSION-FILE +dep_file = $(dir $@)deps/$(notdir $@).d +dep_args = -MF $(dep_file) -MMD -MP + %.o: %.c GIT-CFLAGS - $(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) $< + $(QUIET_CC)$(CC) -o $*.o -c $(dep_args) $(ALL_CFLAGS) $< %.s: %.c GIT-CFLAGS $(QUIET_CC)$(CC) -S $(ALL_CFLAGS) $< %.o: %.S $(QUIET_CC)$(CC) -o $*.o -c $(ALL_CFLAGS) $< +objects := $(wildcard *.o block-sha1/*.o ppc/*.o compat/*.o \ + compat/*/*.o xdiff/*.o) +dep_files := $(wildcard $(foreach f,$(objects),$(dir $f)deps/$(notdir $f).d)) +ifneq ($(dep_files),) +include $(dep_files) +endif + exec_cmd.o: exec_cmd.c GIT-CFLAGS exec_cmd.o: ALL_CFLAGS += \ '-DGIT_EXEC_PATH="$(gitexecdir_SQ)"' \ @@ -1657,6 +1668,9 @@ TRACK_CFLAGS = $(subst ','\'',$(ALL_CFLAGS)):\ $(bindir_SQ):$(gitexecdir_SQ):$(template_dir_SQ):$(prefix_SQ) GIT-CFLAGS: .FORCE-GIT-CFLAGS + mkdir -p deps block-sha1/deps ppc/deps compat/deps \ + compat/regex/deps compat/nedmalloc/deps compat/fnmatch/deps \ + xdiff/deps @FLAGS='$(TRACK_CFLAGS)'; \ if test x"$$FLAGS" != x"`cat GIT-CFLAGS 2>/dev/null`" ; then \ echo 1>&2 " * new build flags or prefix"; \ @@ -1873,8 +1887,10 @@ distclean: clean $(RM) configure clean: - $(RM) *.o block-sha1/*.o arm/*.o ppc/*.o compat/*.o compat/*/*.o xdiff/*.o \ + $(RM) *.o block-sha1/*.o ppc/*.o compat/*.o compat/*/*.o xdiff/*.o \ $(LIB_FILE) $(XDIFF_LIB) + $(RM) -r deps block-sha1/deps ppc/deps compat/deps \ + compat/*/deps xdiff/deps $(RM) $(ALL_PROGRAMS) $(BUILT_INS) git$X $(RM) $(TEST_PROGRAMS) $(RM) *.spec *.pyc *.pyo */*.pyc */*.pyo common-cmds.h TAGS tags cscope* -- 1.6.5.3 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html