xref: /illumos-gate/usr/src/lib/libbsm/Makefile (revision 8a8d276f)
1#
2# CDDL HEADER START
3#
4# The contents of this file are subject to the terms of the
5# Common Development and Distribution License (the "License").
6# You may not use this file except in compliance with the License.
7#
8# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9# or http://www.opensolaris.org/os/licensing.
10# See the License for the specific language governing permissions
11# and limitations under the License.
12#
13# When distributing Covered Code, include this CDDL HEADER in each
14# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15# If applicable, add the following below this CDDL HEADER, with the
16# fields enclosed by brackets "[]" replaced with your own identifying
17# information: Portions Copyright [yyyy] [name of copyright owner]
18#
19# CDDL HEADER END
20#
21#
22# Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
23# Use is subject to license terms.
24#
25# ident	"%Z%%M%	%I%	%E% SMI"
26#
27
28include ../Makefile.lib
29
30SUBDIRS =	$(MACH)
31$(BUILD64)SUBDIRS += $(MACH64)
32
33XGETFLAGS_ADT += -a
34
35all :=		TARGET= all
36clean :=	TARGET= clean
37clobber :=	TARGET= clobber
38delete :=	TARGET= delete
39install :=	TARGET= install
40lint :=		TARGET= lint
41package :=	TARGET= package
42
43.KEEP_STATE:
44
45COMMONDIR = common
46
47#
48# Macros for libbsm header files. These define user-level only interfaces.
49#
50GENHDRS = audit_uevents.h
51HDRS = libbsm.h devices.h devalloc.h adt.h adt_event.h audit_private.h
52GENSRCS =	$(COMMONDIR)/adt_xlate.c $(COMMONDIR)/adt_event.h
53COMMONHDRS =	$(HDRS:%=$(COMMONDIR)/%)
54ROOTHDRDIR = 	$(ROOT)/usr/include/bsm
55ROOTCHDRS = 	$(HDRS:%=$(ROOTHDRDIR)/%)
56ROOTHDRS = 	$(GENHDRS:%=$(ROOTHDRDIR)/%)
57
58CHECKCHDRS =	$(COMMONHDRS:%.h=%.check)
59CHECKHDRS =	$(GENHDRS:%.h=%.check)
60
61$(ROOTHDRS) := 	FILEMODE = 0644
62$(ROOTCHDRS) :=	FILEMODE = 0644
63
64all install lint package: $(GENSRCS) $(SUBDIRS)
65clean clobber delete: $(SUBDIRS)
66
67#
68# Macros for libbsm database files. These should probably be installed
69# from somewhere else. Until we find that better place, install them
70# from here.
71#
72
73ROOTETCSECURITY = 	$(ROOT)/etc/security
74$(ROOTETCSECURITY) := 	DIRMODE = 0755
75$(ROOTETCSECURITY) := 	OWNER = root
76$(ROOTETCSECURITY) := 	GROUP = sys
77
78ESFILES =		audit_class audit_control audit_event audit_user
79ESSRC =			$(ESFILES:%=%.txt)
80ETCSECURITYFILES =	$(ESFILES:%=$(ROOTETCSECURITY)/%)
81$(ETCSECURITYFILES) :=	FILEMODE = 0644
82$(ETCSECURITYFILES) :=	OWNER = root
83$(ETCSECURITYFILES) :=	GROUP = sys
84
85EESFILES =		audit_startup
86EESSRC =		$(EESFILES:%=%.txt)
87EETCSECURITYFILES =	$(EESFILES:%=$(ROOTETCSECURITY)/%)
88$(EETCSECURITYFILES) :=	FILEMODE = 0744
89$(EETCSECURITYFILES) :=	OWNER = root
90$(EETCSECURITYFILES) :=	GROUP = sys
91
92#
93# /etc/security/audit/localhost/files is a symbolic link to /var/audit.
94# This is provided so that auditreduce will work in the default configuration.
95#
96RESA=$(ROOTETCSECURITY)/audit
97RESAL=$(RESA)/localhost
98VARAUDIT=$(ROOT)/var/audit
99AUDITDIRS=$(RESA) $(RESAL) $(VARAUDIT)
100$(AUDITDIRS) := FILEMODE = 0750
101$(AUDITDIRS) := OWNER = root
102$(AUDITDIRS) := GROUP = sys
103
104ARSYMLNK=$(RESAL)/files
105
106#
107# message catalogue file
108#
109MSGFILES =	`$(GREP) -l gettext $(COMMONDIR)/*.c`
110POFILE =	libbsm.po
111
112#
113# Definitions for XML (DTD AND XSL)
114#
115DTD =		adt_record.dtd.1
116XSL =		adt_record.xsl.1
117ROOTXMLDIR =	$(ROOT)/usr/share/lib/xml
118ROOTDTDDIR=	$(ROOTXMLDIR)/dtd
119ROOTXSLDIR=	$(ROOTXMLDIR)/style
120ROOTDTD=	$(DTD:%=$(ROOTDTDDIR)/%)
121ROOTXSL=	$(XSL:%=$(ROOTXSLDIR)/%)
122ROOTXMLDIRS =	$(ROOTXMLDIR) $(ROOTDTDDIR) $(ROOTXSLDIR)
123ROOTXMLFILES =	$(ROOTDTD) $(ROOTXSL)
124
125$(ROOTXMLDIRS) :=  FILEMODE = 755
126$(ROOTXMLDIRS) :=  OWNER = root
127$(ROOTXMLDIRS) :=  GROUP = sys
128
129$(ROOTXMLFILES) :=  FILEMODE = 444
130$(ROOTXMLFILES) :=  OWNER = root
131$(ROOTXMLFILES) :=  GROUP = bin
132
133
134CPPFLAGS += -I$(COMMONDIR)
135CPPFLAGS += -D_REENTRANT
136
137CLEANFILES += $(GENSRCS) $(GENHDRS)
138
139ADTXMLFILE =	$(COMMONDIR)/adt.xml
140ADTXSDFILE =	$(COMMONDIR)/adt.xsd
141AUDITXML =	auditxml
142
143.KEEP_STATE:
144
145install: install_dirs install_data
146
147#		$(ROOTUSRLIB) $(ROOTLIBS) $(ROOTLINKS)
148
149install_h: $(ROOTHDRDIR) $(ROOTHDRS) $(ROOTCHDRS)
150
151check:	$(CHECKHDRS) $(CHECKCHDRS)
152	xmllint --schema $(ADTXSDFILE) --noout $(ADTXMLFILE)
153
154install_data: $(ESSRC) $(RESSRC) $(ROOTETCSECURITY) $(ETCSECURITYFILES) \
155	$(EETCSECURITYFILES) $(ROOTXMLFILES)
156
157install_dirs: $(AUDITDIRS) $(ARSYMLNK) $(ROOTXMLDIRS)
158
159audit_uevents.h: mkhdr.sh audit_event.txt
160	sh mkhdr.sh
161
162$(COMMONDIR)/adt_event.check:	$(COMMONDIR)/adt_event.h
163	$(DOT_C_CHECK) $<
164
165clean clobber: clean_files
166
167clean_files:
168	-$(RM) $(CLEANFILES)
169
170$(GENSRCS): $(ADTXMLFILE) $(AUDITXML)
171	$(PERL) $(AUDITXML) $(ADTXMLFILE)
172
173$(ETCSECURITYFILES) $(EETCSECURITYFILES) $(RESA): \
174	$(ETCSECURITY) \
175	$(ROOTETCSECURITY)
176
177$(RESAL): $(RESA)
178
179$(ARSYMLNK): $(RESAL)
180
181$(ROOTHDRDIR):
182	$(INS.dir)
183
184$(ROOTHDRDIR)/%:%
185	$(INS.file)
186
187$(ROOTHDRDIR)/%:$(COMMONDIR)/%
188	$(INS.file)
189
190$(ROOTXMLDIRS):
191	$(INS.dir)
192
193$(ROOTDTDDIR)/% $(ROOTXSLDIR)/%: %
194	$(INS.file)
195
196$(AUDITDIRS):
197	$(INS.dir)
198
199$(ARSYMLNK):
200	$(RM) $@
201	$(SYMLINK) ../../../../var/audit $@
202
203$(ETCSECURITY)/%: %.txt
204	$(INS.rename)
205
206$(ROOTETCSECURITY):
207	$(INS.dir)
208
209$(ROOTETCSECURITY)/%: %.txt
210	$(INS.rename)
211
212$(POFILE):	 pofile_MSGFILES
213
214_msg:	$(MSGDOMAINPOFILE)
215
216# has strings but doesn't use gettext
217adt_xlate.po: $(COMMONDIR)/adt_xlate.c
218	$(RM) adt_xlate.po
219	$(XGETTEXT) $(XGETFLAGS_ADT) $(COMMONDIR)/adt_xlate.c
220	$(SED) "/^domain/d" < messages.po > adt_xlate.po
221	$(RM) messages.po
222
223$(SUBDIRS):	FRC
224	@cd $@; pwd; $(MAKE) $(TARGET)
225
226FRC:
227
228include ../Makefile.targ
229include ../../Makefile.msg.targ
230