#
# CDDL HEADER START
#
# The contents of this file are subject to the terms of the
# Common Development and Distribution License (the "License").
# You may not use this file except in compliance with the License.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
# or http://www.opensolaris.org/os/licensing.
# See the License for the specific language governing permissions
# and limitations under the License.
#
# When distributing Covered Code, include this CDDL HEADER in each
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# If applicable, add the following below this CDDL HEADER, with the
# fields enclosed by brackets "[]" replaced with your own identifying
# information: Portions Copyright [yyyy] [name of copyright owner]
#
# CDDL HEADER END
#
#
# Copyright (c) 1992, 2012, Oracle and/or its affiliates. All rights reserved.
#
include ../Makefile.lib
SUBDIRS = $(MACH)
$(BUILD64)SUBDIRS += $(MACH64)
XGETFLAGS_ADT += -a
all := TARGET= all
clean := TARGET= clean
clobber := TARGET= clobber
install := TARGET= install
lint := TARGET= lint
package := TARGET= package
stub := TARGET = stub
stubinstall := TARGET = stubinstall
.KEEP_STATE:
COMMONDIR = common
#
# Macros for libbsm header files. These define user-level only interfaces.
#
GEN_EVENT_H = audit_uevents.h
GEN_XML_C = adt_xlate.c
GEN_XML_H = adt_event.h
GENHDRS = $(GEN_XML_H) $(GEN_EVENT_H)
GENSRCS = $(GEN_XML_C)
GENFILES = $(GENSRCS:%=$(COMMONDIR)/%) $(GENHDRS:%=$(COMMONDIR)/%)
HDRS = libbsm.h adt.h audit_private.h $(GENHDRS)
COMMONHDRS = $(HDRS:%=$(COMMONDIR)/%)
ROOTHDRDIR = $(ROOT)/usr/include/bsm
ROOTHDRS = $(HDRS:%=$(ROOTHDRDIR)/%)
CHECKCHDRS = $(COMMONHDRS:%.h=%.check)
$(ROOTHDRS) := FILEMODE = 0644
all install lint: $(GENFILES) $(SUBDIRS)
clean clobber stub stubinstall: $(SUBDIRS)
#
# Macros for libbsm database files. These should probably be installed
# from somewhere else. Until we find that better place, install them
# from here.
#
ROOTETCSECURITY = $(ROOT)/etc/security
$(ROOTETCSECURITY) := DIRMODE = 0755
ESFILES = audit_class audit_event
ESSRC = $(ESFILES:%=%.txt)
ROOTETCSECURITYFILES = $(ESFILES:%=$(ROOTETCSECURITY)/%)
$(ROOTETCSECURITYFILES) := FILEMODE = 0644
VARAUDIT=$(ROOT)/var/.migrate/audit
$(VARAUDIT) := DIRMODE = 0755
#
# message catalogue file
#
MSGFILES = `$(GREP) -l gettext $(COMMONDIR)/*.c`
POFILE = libbsm.po
#
# Definitions for XML (DTD AND XSL)
#
DTD = adt_record.dtd.1
XSL = adt_record.xsl.1
ROOTXMLDIR = $(ROOT)/usr/share/lib/xml
ROOTDTDDIR= $(ROOTXMLDIR)/dtd
ROOTXSLDIR= $(ROOTXMLDIR)/style
ROOTDTD= $(DTD:%=$(ROOTDTDDIR)/%)
ROOTXSL= $(XSL:%=$(ROOTXSLDIR)/%)
ROOTXMLDIRS = $(ROOTXMLDIR) $(ROOTDTDDIR) $(ROOTXSLDIR)
ROOTXMLFILES = $(ROOTDTD) $(ROOTXSL)
$(ROOTXMLDIRS) := DIRMODE = 0755
$(ROOTXMLFILES) := FILEMODE = 0444
CPPFLAGS += -I$(COMMONDIR)
CPPFLAGS += -D_REENTRANT
CLEANFILES += $(GENFILES)
ADTXMLFILE = $(COMMONDIR)/adt.xml
ADTXSDFILE = $(COMMONDIR)/adt.xsd
AVXMLFILE = av_matrix.xml
AVXSDFILE = av_matrix.xsd
AUDITXML = auditxml
.KEEP_STATE:
check: $(CHECKCHDRS)
xmllint --schema $(ADTXSDFILE) --noout $(ADTXMLFILE)
xmllint --schema $(AVXSDFILE) --noout $(AVXMLFILE)
install_h: $(ROOTHDRDIR) $(ROOTHDRS)
install: install_dirs install_data
install_data: $(ESSRC) $(ROOTETCSECURITYFILES) $(ROOTXMLFILES)
install_dirs: $(VARAUDIT) $(ROOTETCSECURITY) $(ROOTXMLDIRS)
$(GEN_EVENT_H:%=$(COMMONDIR)/%): mkhdr.sh audit_event.txt
sh mkhdr.sh
$(GEN_XML_H:%=$(COMMONDIR)/%) $(GEN_XML_C:%=$(COMMONDIR)/%): \
$(ADTXMLFILE) $(AUDITXML)
$(PERL) $(AUDITXML) -o $(COMMONDIR) $(ADTXMLFILE)
$(ROOTHDRDIR):
$(INS.dir)
$(ROOTHDRDIR)/%: $(COMMONDIR)/%
$(INS.file)
$(ROOTXMLDIRS):
$(INS.dir)
$(ROOTDTDDIR)/% $(ROOTXSLDIR)/%: %
$(INS.file)
$(VARAUDIT):
$(INS.dir)
$(ROOTETCSECURITY):
$(INS.dir)
$(ROOTETCSECURITY)/%: %.txt
$(INS.rename)
$(POFILE): pofile_MSGFILES
_msg: $(MSGDOMAINPOFILE)
# has strings but doesn't use gettext
adt_xlate.po: $(COMMONDIR)/adt_xlate.c
$(RM) adt_xlate.po
$(XGETTEXT) $(XGETFLAGS_ADT) $(COMMONDIR)/adt_xlate.c
$(SED) "/^domain/d" < messages.po > adt_xlate.po
$(RM) messages.po
$(SUBDIRS): FRC
@cd $@; pwd; $(MAKE) $(TARGET)
FRC:
include ../Makefile.targ
include ../../Makefile.msg.targ