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
|