# 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@ PROG = integrit SBINDIR = @sbindir@ INSTALL = @INSTALL@ OBJ = @OBJ@ ILIBOBJ = @ILIBOBJ@ CPPFLAGS = -I. -I$(srcdir) -I$(srcdir)/hashtbl @CPPFLAGS@ CFLAGS = @CFLAGS@ LDFLAGS = -L. -Lhashtbl @STATIC@ @LDFLAGS@ LIBS = @LIBS@ -lhashtbl -lintegrit DEFS = @DEFS@ @EXTRA_DEFS@ STRIP = @STRIP@ ILIBOBJ = @ILIBOBJ@ RANLIB = @RANLIB@ # syncing is the job of the O.S., and users can always do "make; sync" # SYNC = @SYNC@ AR = @AR@ RM = @RM@ .PHONY : clean test dep COMPILE = \$${CC} \$${CPPFLAGS} \$${CFLAGS} \$${DEFS} -o \$$@ -c # \$$< $(PROG) : $(OBJ) libintegrit.a hashtbl/libhashtbl.a $(CC) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) libintegrit.a : ${ILIBOBJ} ${AR} r $@ ${ILIBOBJ} ${RANLIB} $@ # for old-timers aux : @echo @echo '"aux" has changed to "utils". Please do a "$(MAKE) utils".' utils : libintegrit.a @printf ' >>> making auxiliary tools: ' cd utils && $(MAKE) hashtbl/libhashtbl.a : hashtbl/Makefile @printf ' >>> making the hashtbl library: ' cd hashtbl && $(MAKE) # many makes won't do pattern rules # GNU make ignores rules like "foo.o : gnupg/foo.c" without commands # Solaris make doesn't interpolate $< on such rules when they have commands # finding the lowest common denominator is not easy! # dep : $(srcdir)/dep.mak $(srcdir)/dep.mak :: @printf ' >>> recording dependencies for integrit: ' cd ${srcdir} \ && echo '# generated by Makefile' > dep.mak \ && { hfiles=; hdeps=; for f in *.c gnupg/*.c; do \ hfiles=`sed -n 's/^#include[ ][ ]*[<"]\(.*\.h\)[">].*/\1/p' $$f | xargs`; \ hdeps=; \ for h in $$hfiles; do \ if test ! $$h = config.h; then \ if test -r $$h; then \ hdeps="$$hdeps \$${srcdir}/$$h"; \ elif test -r gnupg/$$h; then \ hdeps="$$hdeps \$${srcdir}/gnupg/$$h"; \ elif test -r hashtbl/$$h; then \ hdeps="$$hdeps \$${srcdir}/hashtbl/$$h"; \ fi; \ fi; \ done; \ obj=`echo $$f | sed -e 's/^gnupg\///' -e 's/\.c\$$/.o/'`; \ printf "%s\n\t%s\n" \ "$$obj : \$${srcdir}/$$f $$hdeps Makefile" \ "${COMPILE} \$${srcdir}/$$f"; \ done >> dep.mak; } include $(srcdir)/dep.mak # .c.o : # ${CC} ${CPPFLAGS} ${CFLAGS} ${DEFS} -o $@ -c $< clean : $(RM) -f $(OBJ) $(ILIBOBJ) $(PROG) libintegrit.a cd utils && $(MAKE) $@ cd hashtbl && $(MAKE) $@ realclean : clean $(RM) -f *~ core a.out bug-report.tar.gz distclean : clean cd utils && $(MAKE) $@ cd hashtbl && $(MAKE) $@ cd doc && $(MAKE) distclean $(RM) -f config.cache config.status config.log config.h \ stdint.h hashtbl/stdint.h $(RM) -f Makefile $(RM) -rf autom4te.cache hashtbl/autom4te.cache # (distready is for developers # currently it builds info, dep.mak, and configure files) distready : $(srcdir)/dep.mak cd utils && $(MAKE) $@ cd doc && $(MAKE) $@ cd hashtbl && $(MAKE) $@ cd $(srcdir)/test && for f in *.m4; do \ name=`echo $$f | sed 's/\.m4$$//'`; \ m4 $$f > $$name; \ done autoconf test :: $(PROG) $(srcdir)/test/test install : $(PROG) @printf ' >>> installing documentation: ' cd doc && $(MAKE) $@ @if test -r utils/i-viewdb; then \ echo installing auxiliary programs; \ cd utils && $(MAKE) $@; \ fi @if test ! -d $(SBINDIR); then \ echo creating directory $(SBINDIR); \ $(INSTALL) -d -m 755 $(SBINDIR); \ fi $(INSTALL) $(STRIP) -m 755 $(PROG) $(SBINDIR)/$(PROG) @echo @echo 'It is recommended that the binary be copied to a secure location and' @echo " re-copied to $(SBINDIR) at runtime or run directly" @echo " from the secure medium."