File: GNUmakerules

package info (click to toggle)
oskit 0.97.20000202-1
  • links: PTS
  • area: main
  • in suites: potato
  • size: 58,008 kB
  • ctags: 172,612
  • sloc: ansic: 832,827; asm: 7,640; sh: 3,920; yacc: 3,664; perl: 1,457; lex: 427; makefile: 337; csh: 141; awk: 78
file content (96 lines) | stat: -rw-r--r-- 3,619 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
#
# Copyright (c) 1994,1999, 2000 The University of Utah and the Flux Group.
# All rights reserved.
# 
# Contributed by the Computer Security Research division,
# INFOSEC Research and Technology Office, NSA.
# 
# This file is part of the Flux OSKit.  The OSKit is free software, also known
# as "open source;" you can redistribute it and/or modify it under the terms
# of the GNU General Public License (GPL), version 2, as published by the Free
# Software Foundation (FSF).  To explore alternate licensing terms, contact
# the University of Utah at csl-dist@cs.utah.edu or +1-801-585-3271.
# 
# The OSKit 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 GPL for more details.  You should have
# received a copy of the GPL along with the OSKit; see the file COPYING.  If
# not, write to the FSF, 59 Temple Place #330, Boston, MA 02111-1307, USA.
#

ifndef _oskit_security_makerules_
_oskit_security_makerules_ = yes

TARGET	= liboskit_security.a

SRCDIRS += $(OSKIT_SRCDIR)/security

OBJFILES += y.tab.o lex.yy.o ext.tab.o lex.ext.o

# Include the makefile containing the generic rules.
include $(OSKIT_SRCDIR)/GNUmakerules-lib

CFLAGS += -include $(OSKIT_SRCDIR)/security/sym.h -D__KERNEL__

CLEAN_FILES +=	checkpolicy policy $(CP_OBJECTS) y.tab.c y.tab.h lex.yy.c ext.tab.c ext.tab.h lex.ext.c

CP_OBJECTS = y.tab.cp.o lex.yy.cp.o main.cp.o avtab.cp.o trtab.cp.o hashtab.cp.o symtab.cp.o queue.cp.o services.cp.o sidtab.cp.o ebitmap.cp.o policydb.cp.o context.cp.o avdeftab.cp.o prvavtab.cp.o extavtab.cp.o ext.tab.cp.o lex.ext.cp.o exttrtab.cp.o

POLICYFILES = $(addprefix $(OSKIT_SRCDIR)/flask/,security_classes initial_sids access_vectors) \
              $(addprefix $(OSKIT_SRCDIR)/security/policydb/,mls te rbac \
		constraints users initial_sid_contexts)

all:  $(_LIBS) policy # checkpolicy

install: $(addprefix $(INSTALL_LIBDIR)/,$(_LIBS)) $(INSTALL_LIBDIR)/boot/policy # $(INSTALL_BINDIR)/checkpolicy

$(INSTALL_LIBDIR)/boot/%: %
	-mkdir -p $(@D)
	$(INSTALL) $< $@

policy: $(POLICYFILES)
	$(M4) $(M4FLAGS) $^ > policy

checkpolicy: $(CP_OBJECTS)
	$(CC) -o checkpolicy $(CP_OBJECTS) -lfl

#
# .o files built for the native OS "checkpolicy" test program
#
%.cp.o: %.c
	$(CC) -g -c -o $@ -I. -I$(OSKIT_SRCDIR)/security -I- -I.. -I$(OSKIT_SRCDIR) -include $(OSKIT_SRCDIR)/security/sym.h $<


y.tab.o: y.tab.c y.tab.h
	$(CC) -c -o $@ $(OSKIT_CFLAGS) $(CFLAGS) -include $(OSKIT_SRCDIR)/security/yysym.h y.tab.c

# Using a pattern rule here tells GNU make that both targets
# are made by running the commands just once.  That lets
# it to do the right thing when parallelism is enabled (-j).
%.tab.c %.tab.h: $(OSKIT_SRCDIR)/security/policy_parse.%
	$(YACC) -d $<
	sed -e "/#include </d" -e "/extern void \*realloc/d" y.tab.c > y.tab.c.new
	mv y.tab.c.new y.tab.c

lex.yy.o: lex.yy.c y.tab.h
	$(CC) -c -o $@ $(OSKIT_CFLAGS) $(CFLAGS) -include $(OSKIT_SRCDIR)/security/yysym.h lex.yy.c

lex.yy.c: $(OSKIT_SRCDIR)/security/policy_scan.l
	$(LEX) $<
	sed -e "/#include </d" -e "s/#ifndef yytext_ptr/#if 1/" lex.yy.c > lex.yy.c.new
	mv lex.yy.c.new lex.yy.c

# See comment above.
%.tab.c %.tab.h: $(OSKIT_SRCDIR)/security/%ension_parse.y
	$(YACC) -b ext -p ext -d $<
	sed -e "/#include </d" -e "/extern void \*realloc/d" ext.tab.c > ext.tab.c.new
	mv ext.tab.c.new ext.tab.c

lex.ext.o: ext.tab.h

lex.ext.c: $(OSKIT_SRCDIR)/security/extension_scan.l
	$(LEX) -Pext $<
	sed -e "/#include </d" -e "s/#ifndef yytext_ptr/#if 1/" lex.ext.c > lex.ext.c.new
	mv lex.ext.c.new lex.ext.c

endif