1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152
|
# 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 aimed at developers before releasing:
# currently it builds info, dep.mak, ChangeLog, m4 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
cvs2cl -tP -l "-d>2005/09/20" --stdout > ChangeLog
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."
|