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
|
# integrit - file integrity verification system
# Copyright (C) 2000, 2001, 2002 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`; \
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/^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
# (distready is for developers -- currently builds info and dep.mak 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
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."
|