# $Id: Makefile.depend,v 1.5 2003/05/20 00:27:55 n8gray Exp $
#
# This is a _generic_ Makefile to generate a dependency file
# using GNUmake and gcc.
# Advantage of this method (as compared to "makedepend(1)")
# is that one can easily filter out dependencies on
# non-application (i.e. system) headers using the -MM flag
# of gcc. The reason to demand GNUMake is basically to have a nice,
# simple rule for $(SRCS) as done below (and for the variable
# transformations).
# So one doesn't have to modify this file and manually add/update
# the source file list!
#
# To use it just you probably just have to edit the
# variables in the *CONFIG section* as you see fit.
# ***************** CONFIG section *****************
GCC=gcc
DEFINES=
CPPFLAGS=-I$(HOME)/include
DEPENDFILE=dependencies
SHELL=/bin/sh
# Headers are required to determine _all_ files
# on which the dependency file itself may depend
SRCS=$(wildcard *.c)
HDRS=$(wildcard ../source/*.h) $(wildcard ../util/*.h)
# *************** End CONFIG section ************
# ************** Now the generic part ***********
.SUFFIXES: .c .o. deps
.PHONY: all default deps new
DEPS=$(SRCS:.c=.deps)
default: all
# This is the more conservative approach
full: clean new deps
# And this a more sophisticated one
all: $(DEPENDFILE)
# Remove old file, create new one and add CVS info line at top
new:
/bin/rm -f $(DEPENDFILE)
echo '# $$''Id''$$' >$(DEPENDFILE)
$(DEPENDFILE): new $(SRCS) $(HDRS)
$(GCC) $(CPPFLAGS) $(DEFINES) -MM $(SRCS) >>$(DEPENDFILE)
deps: $(DEPS)
%.deps: %.c
$(GCC) $(CPPFLAGS) $(DEFINES) -MM $< >>$(DEPENDFILE)
verify_config: