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
|
##############################################################################
#gradm (c) 2002-2005 Brad Spengler http://grsecurity.net#
#-------------------------------------- ---------------------#
#gradm is licensed under the GNU GPL v2 or higher http://www.gnu.org #
##############################################################################
GRADM_BIN=gradm2
GRSEC_DIR=/etc/grsec2
LLEX=/usr/bin/lex
FLEX=/usr/bin/flex
LEX := $(shell if [ -x $(FLEX) ]; then echo $(FLEX); else echo $(LLEX); fi)
LEXFLAGS=-B
BYACC=/usr/bin/byacc
BISON=/usr/bin/bison
YACC := $(shell if [ -x $(BYACC) ]; then echo $(BYACC); else echo $(BISON); fi)
MKNOD=/bin/mknod
#for dietlibc
#CC=/usr/bin/diet /usr/bin/gcc
CC=/usr/bin/gcc
FIND=/usr/bin/find
STRIP=/usr/bin/strip
KERNVER := $(shell uname -r | cut -d"." -f 2)
LIBS := $(shell if [ "`uname -m`" != "sparc64" ]; then echo "-lfl" ; else echo "" ; fi)
OPT_FLAGS := $(shell if [ "`uname -m`" != "sparc64" ] && [ "`uname -m`" != "x86_64" ]; then echo "-O2" ; else echo "-O2 -m64" ; fi)
CFLAGS := $(OPT_FLAGS) -DGRSEC_DIR=\"$(GRSEC_DIR)\" -DKERNVER=$(KERNVER)
LDFLAGS=
INSTALL = /usr/bin/install -c
# FHS
MANDIR=/usr/share/man
# older MANDIR
#MANDIR=/usr/man
DESTDIR=
OBJECTS=gradm.tab.o lex.gradm.o learn_pass1.tab.o learn_pass2.tab.o \
fulllearn_pass1.tab.o fulllearn_pass2.tab.o fulllearn_pass3.tab.o \
gradm_misc.o gradm_parse.o gradm_arg.o gradm_pw.o gradm_opt.o \
gradm_cap.o gradm_sha256.o gradm_adm.o gradm_analyze.o gradm_res.o \
gradm_human.o gradm_learn.o gradm_net.o gradm_nest.o \
gradm_sym.o gradm_newlearn.o gradm_fulllearn.o gradm_lib.o \
lex.fulllearn_pass1.o lex.fulllearn_pass2.o \
lex.fulllearn_pass3.o lex.learn_pass1.o lex.learn_pass2.o \
grlearn_config.tab.o lex.grlearn_config.o
all: $(GRADM_BIN) grlearn
$(GRADM_BIN): $(OBJECTS)
$(CC) $(CFLAGS) -o $@ $(OBJECTS) $(LIBS) $(LDFLAGS)
grlearn: grlearn.c gradm_lib.c
$(CC) $(CFLAGS) -o $@ grlearn.c gradm_lib.c $(LIBS) $(LDFLAGS)
grlearn_config.tab.c: grlearn_config.y
$(YACC) -b grlearn_config -p grlearn_config -d ./grlearn_config.y
lex.grlearn_config.c: grlearn_config.l
$(LEX) $(LEXFLAGS) -Pgrlearn_config ./grlearn_config.l
gradm.tab.c: gradm.y
$(YACC) -b gradm -p gradm -d ./gradm.y
lex.gradm.c: gradm.l
$(LEX) $(LEXFLAGS) -Pgradm ./gradm.l
fulllearn_pass1.tab.c: gradm_fulllearn_pass1.y
$(YACC) -b fulllearn_pass1 -p fulllearn_pass1 -d ./gradm_fulllearn_pass1.y
fulllearn_pass2.tab.c: gradm_fulllearn_pass2.y
$(YACC) -b fulllearn_pass2 -p fulllearn_pass2 -d ./gradm_fulllearn_pass2.y
fulllearn_pass3.tab.c: gradm_fulllearn_pass3.y
$(YACC) -b fulllearn_pass3 -p fulllearn_pass3 -d ./gradm_fulllearn_pass3.y
lex.fulllearn_pass1.c: gradm_fulllearn_pass1.l
$(LEX) $(LEXFLAGS) -Pfulllearn_pass1 ./gradm_fulllearn_pass1.l
lex.fulllearn_pass2.c: gradm_fulllearn_pass2.l
$(LEX) $(LEXFLAGS) -Pfulllearn_pass2 ./gradm_fulllearn_pass2.l
lex.fulllearn_pass3.c: gradm_fulllearn_pass3.l
$(LEX) $(LEXFLAGS) -Pfulllearn_pass3 ./gradm_fulllearn_pass3.l
learn_pass1.tab.c: gradm_learn_pass1.y
$(YACC) -b learn_pass1 -p learn_pass1 -d ./gradm_learn_pass1.y
learn_pass2.tab.c: gradm_learn_pass2.y
$(YACC) -b learn_pass2 -p learn_pass2 -d ./gradm_learn_pass2.y
lex.learn_pass1.c: gradm_learn_pass1.l
$(LEX) $(LEXFLAGS) -Plearn_pass1 ./gradm_learn_pass1.l
lex.learn_pass2.c: gradm_learn_pass2.l
$(LEX) $(LEXFLAGS) -Plearn_pass2 ./gradm_learn_pass2.l
install: $(GRADM_BIN) gradm.8 policy grlearn
mkdir -p $(DESTDIR)/sbin
$(INSTALL) -m 0755 $(GRADM_BIN) $(DESTDIR)/sbin
$(STRIP) $(DESTDIR)/sbin/$(GRADM_BIN)
$(INSTALL) -m 0700 grlearn $(DESTDIR)/sbin
$(STRIP) $(DESTDIR)/sbin/grlearn
mkdir -p -m 700 $(DESTDIR)$(GRSEC_DIR)
@if [ ! -f $(DESTDIR)$(GRSEC_DIR)/policy ] ; then \
if [ -f $(DESTDIR)$(GRSEC_DIR)/acl ] ; then \
mv $(DESTDIR)$(GRSEC_DIR)/acl $(DESTDIR)$(GRSEC_DIR)/policy ; \
else \
$(INSTALL) -m 0600 policy $(DESTDIR)$(GRSEC_DIR) ; \
fi \
fi
@$(FIND) $(DESTDIR)$(GRSEC_DIR) -type f -name learn_config -size 1291c -exec rm -f $(DESTDIR)$(GRSEC_DIR)/learn_config \;
@if [ ! -f $(DESTDIR)$(GRSEC_DIR)/learn_config ] ; then \
$(INSTALL) -m 0600 learn_config $(DESTDIR)$(GRSEC_DIR) ; \
fi
@if [ -z "`cut -d" " -f3 /proc/mounts | grep "^devfs"`" ] ; then \
rm -f $(DESTDIR)/dev/grsec ; \
if [ ! -e $(DESTDIR)/dev/grsec ] ; then \
mkdir -p $(DESTDIR)/dev ; \
$(MKNOD) -m 0622 $(DESTDIR)/dev/grsec c 1 12 ; \
fi \
fi
mkdir -p $(DESTDIR)$(MANDIR)/man8
$(INSTALL) -m 0644 gradm.8 $(DESTDIR)$(MANDIR)/man8/$(GRADM_BIN).8
@if [ -x /sbin/$(GRADM_BIN) ] ; then \
if [ -z $(DESTDIR) ] && [ ! -f $(GRSEC_DIR)/pw ] ; then \
echo /sbin/$(GRADM_BIN) -P ; \
fi \
fi
@true
clean:
rm -f core *.o $(GRADM_BIN) lex.*.c *.tab.c *.tab.h grlearn
|