# integrit - file integrity verification system
# Copyright (C) 2006 Ed L. Cashin
# 
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
# 
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
# 
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
# 

# autoconf stuff for possible future recursive makes
@SET_MAKE@

prefix		 = @prefix@
exec_prefix	 = @exec_prefix@
srcdir		 = @srcdir@
# we aren't using VPATH
# VPATH		 = @srcdir@
CC	 = @CC@
RM	 = @RM@
PROGS	 = i-viewdb i-ls
LS_OBJ	 = ls.o
VIEWDB_OBJ = viewdb.o
SBINDIR	 = @sbindir@
BINDIR	 = @bindir@
INSTALL	 = @INSTALL@
CPPFLAGS = -I.. -I$(srcdir)/.. @CPPFLAGS@
CFLAGS	 = @CFLAGS@
LDFLAGS	 = -L.. @STATIC@ @LDFLAGS@
LIBS	 = @LIBS@ -lintegrit
DEFS	 = @DEFS@ @EXTRA_DEFS@
STRIP	 = @STRIP@
.PHONY	: clean dep

COMPILE = \$${CC} \$${CPPFLAGS} \$${CFLAGS} \$${DEFS} -o \$$@ -c # \$$<

all : ../libintegrit.a $(PROGS)

../libintegrit.a :
	@printf ' >>> telling top-level make to build libintegrit.a: '
	cd .. && $(MAKE) libintegrit.a

distready : $(srcdir)/dep.mak

dep : $(srcdir)/dep.mak
$(srcdir)/dep.mak ::
	@printf ' >>> recording dependencies for hashtbl: '
	cd ${srcdir} \
	&& echo '# generated by Makefile' > dep.mak \
	&& hfiles=; hdeps=; for f in *.c; do \
	  hfiles=`sed -n 's/#include  *[<"]\(.*\.h\)[">]/\1/p' $$f | xargs`; \
	  for h in $$hfiles; do \
	    if test ! $$h = config.h -a -r $$h; then \
	      hdeps="$$hdeps \$${srcdir}/$$h"; \
	    fi; \
	  done; \
	  obj=`echo $$f | sed -e 's/\.c\$$/.o/'`; \
	  printf "%s\n\t%s\n" \
	    "$$obj : \$${srcdir}/$$f $$hdeps Makefile" \
	    "${COMPILE} \$${srcdir}/$$f"; \
	done >> dep.mak

# 	cd $(srcdir) \
# 	&& > $(srcdir)/dep.mak \
# 	&& $(CC) $(CPPFLAGS) $(DEFS) -MM *.c | $(srcdir)/../trdeps >> dep.mak \
# 	&& for f in *.c; do \
# 	  obj=`echo $$f | sed 's/\.c$$/.o/'`; \
# 	  printf "%s: %s\n\t%s\n" \
# 	    "$$obj" "\$$(srcdir)/$$f Makefile \$$(srcdir)/../leakfind.h" \
# 	    "$(COMPILE)" >> $(srcdir)/dep.mak; \
# 	done

include $(srcdir)/dep.mak

i-ls : $(LS_OBJ) ../libintegrit.a
	$(CC) $(LDFLAGS) -o $@ $(LS_OBJ) $(LIBS)

i-viewdb : $(VIEWDB_OBJ) ../libintegrit.a
	$(CC) $(LDFLAGS) -o $@ $(VIEWDB_OBJ) $(LIBS)

# .c.o	: 
# 	$(CC) $(CPPFLAGS) $(CFLAGS) $(DEFS) -o $@ -c $<

clean	: 
	$(RM) -f $(LS_OBJ) $(VIEWDB_OBJ) $(PROGS) 

realclean : clean
	$(RM) -f *~ core a.out

distclean : clean 
	$(RM) -f config.cache config.status config.log config.h 
	$(RM) -f Makefile

install : $(PROGS)
	@if test ! -d $(SBINDIR); then \
	  echo creating directory $(SBINDIR); \
	  $(INSTALL) -d -m 755 $(SBINDIR); \
	fi
	$(INSTALL) $(STRIP) -m 755 i-viewdb $(SBINDIR)/i-viewdb
	@if test ! -d $(BINDIR); then \
	  echo creating directory $(BINDIR); \
	  $(INSTALL) -d -m 755 $(BINDIR); \
	fi
	$(INSTALL) $(STRIP) -m 755 i-ls $(BINDIR)/i-ls
