File: Makefile

package info (click to toggle)
gradm2 2.1.5-2
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 432 kB
  • ctags: 707
  • sloc: ansic: 6,697; yacc: 996; lex: 920; makefile: 164; sh: 30
file content (126 lines) | stat: -rw-r--r-- 4,731 bytes parent folder | download
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