xref: /illumos-gate/usr/src/lib/libbsm/Makefile (revision e9af4bc0b1cc30cea75d6ad4aa2fde97d985e9be)
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 2009 Sun Microsystems, Inc.  All rights reserved.
23# Use is subject to license terms.
24#
25
26include ../Makefile.lib
27
28SUBDIRS =	$(MACH)
29$(BUILD64)SUBDIRS += $(MACH64)
30
31XGETFLAGS_ADT += -a
32
33all :=		TARGET= all
34clean :=	TARGET= clean
35clobber :=	TARGET= clobber
36delete :=	TARGET= delete
37install :=	TARGET= install
38lint :=		TARGET= lint
39package :=	TARGET= package
40
41.KEEP_STATE:
42
43COMMONDIR = common
44
45#
46# Macros for libbsm header files. These define user-level only interfaces.
47#
48GENHDRS = audit_uevents.h
49HDRS = libbsm.h devices.h devalloc.h adt.h adt_event.h audit_private.h
50GENSRCS =	$(COMMONDIR)/adt_xlate.c $(COMMONDIR)/adt_event.h
51COMMONHDRS =	$(HDRS:%=$(COMMONDIR)/%)
52ROOTHDRDIR = 	$(ROOT)/usr/include/bsm
53ROOTCHDRS = 	$(HDRS:%=$(ROOTHDRDIR)/%)
54ROOTHDRS = 	$(GENHDRS:%=$(ROOTHDRDIR)/%)
55
56CHECKCHDRS =	$(COMMONHDRS:%.h=%.check)
57CHECKHDRS =	$(GENHDRS:%.h=%.check)
58
59$(ROOTHDRS) := 	FILEMODE = 0644
60$(ROOTCHDRS) :=	FILEMODE = 0644
61
62all install lint package: $(GENSRCS) $(SUBDIRS)
63clean clobber delete: $(SUBDIRS)
64
65#
66# Macros for libbsm database files. These should probably be installed
67# from somewhere else. Until we find that better place, install them
68# from here.
69#
70
71ROOTETCSECURITY = 	$(ROOT)/etc/security
72$(ROOTETCSECURITY) := 	DIRMODE = 0755
73
74ESFILES =		audit_class audit_control audit_event audit_user
75ESSRC =			$(ESFILES:%=%.txt)
76ETCSECURITYFILES =	$(ESFILES:%=$(ROOTETCSECURITY)/%)
77$(ETCSECURITYFILES) :=	FILEMODE = 0644
78
79#
80# /etc/security/audit/localhost/files is a symbolic link to /var/audit.
81# This is provided so that auditreduce will work in the default configuration.
82#
83RESA=$(ROOTETCSECURITY)/audit
84RESAL=$(RESA)/localhost
85VARAUDIT=$(ROOT)/var/audit
86AUDITDIRS=$(RESA) $(RESAL) $(VARAUDIT)
87$(AUDITDIRS) := FILEMODE = 0750
88
89ARSYMLNK=$(RESAL)/files
90
91#
92# message catalogue file
93#
94MSGFILES =	`$(GREP) -l gettext $(COMMONDIR)/*.c`
95POFILE =	libbsm.po
96
97#
98# Definitions for XML (DTD AND XSL)
99#
100DTD =		adt_record.dtd.1
101XSL =		adt_record.xsl.1
102ROOTXMLDIR =	$(ROOT)/usr/share/lib/xml
103ROOTDTDDIR=	$(ROOTXMLDIR)/dtd
104ROOTXSLDIR=	$(ROOTXMLDIR)/style
105ROOTDTD=	$(DTD:%=$(ROOTDTDDIR)/%)
106ROOTXSL=	$(XSL:%=$(ROOTXSLDIR)/%)
107ROOTXMLDIRS =	$(ROOTXMLDIR) $(ROOTDTDDIR) $(ROOTXSLDIR)
108ROOTXMLFILES =	$(ROOTDTD) $(ROOTXSL)
109
110$(ROOTXMLDIRS) :=  FILEMODE = 755
111
112$(ROOTXMLFILES) :=  FILEMODE = 444
113
114
115CPPFLAGS += -I$(COMMONDIR)
116CPPFLAGS += -D_REENTRANT
117
118CLEANFILES += $(GENSRCS) $(GENHDRS)
119
120ADTXMLFILE =	$(COMMONDIR)/adt.xml
121ADTXSDFILE =	$(COMMONDIR)/adt.xsd
122AUDITXML =	auditxml
123
124.KEEP_STATE:
125
126install: install_dirs install_data
127
128#		$(ROOTUSRLIB) $(ROOTLIBS) $(ROOTLINKS)
129
130install_h: $(ROOTHDRDIR) $(ROOTHDRS) $(ROOTCHDRS)
131
132check:	$(CHECKHDRS) $(CHECKCHDRS)
133	xmllint --schema $(ADTXSDFILE) --noout $(ADTXMLFILE)
134
135install_data: $(ESSRC) $(RESSRC) $(ROOTETCSECURITY) $(ETCSECURITYFILES) \
136	$(ROOTXMLFILES)
137
138install_dirs: $(AUDITDIRS) $(ARSYMLNK) $(ROOTXMLDIRS)
139
140audit_uevents.h: mkhdr.sh audit_event.txt
141	sh mkhdr.sh
142
143$(COMMONDIR)/adt_event.check:	$(COMMONDIR)/adt_event.h
144	$(DOT_C_CHECK) $<
145
146clean clobber: clean_files
147
148clean_files:
149	-$(RM) $(CLEANFILES)
150
151$(GENSRCS): $(ADTXMLFILE) $(AUDITXML)
152	$(PERL) $(AUDITXML) -o $(COMMONDIR) $(ADTXMLFILE)
153
154$(ETCSECURITYFILES) $(RESA): \
155	$(ETCSECURITY) \
156	$(ROOTETCSECURITY)
157
158$(RESAL): $(RESA)
159
160$(ARSYMLNK): $(RESAL)
161
162$(ROOTHDRDIR):
163	$(INS.dir)
164
165$(ROOTHDRDIR)/%:%
166	$(INS.file)
167
168$(ROOTHDRDIR)/%:$(COMMONDIR)/%
169	$(INS.file)
170
171$(ROOTXMLDIRS):
172	$(INS.dir)
173
174$(ROOTDTDDIR)/% $(ROOTXSLDIR)/%: %
175	$(INS.file)
176
177$(AUDITDIRS):
178	$(INS.dir)
179
180$(ARSYMLNK):
181	$(RM) $@
182	$(SYMLINK) ../../../../var/audit $@
183
184$(ETCSECURITY)/%: %.txt
185	$(INS.rename)
186
187$(ROOTETCSECURITY):
188	$(INS.dir)
189
190$(ROOTETCSECURITY)/%: %.txt
191	$(INS.rename)
192
193$(POFILE):	 pofile_MSGFILES
194
195_msg:	$(MSGDOMAINPOFILE)
196
197# has strings but doesn't use gettext
198adt_xlate.po: $(COMMONDIR)/adt_xlate.c
199	$(RM) adt_xlate.po
200	$(XGETTEXT) $(XGETFLAGS_ADT) $(COMMONDIR)/adt_xlate.c
201	$(SED) "/^domain/d" < messages.po > adt_xlate.po
202	$(RM) messages.po
203
204$(SUBDIRS):	FRC
205	@cd $@; pwd; $(MAKE) $(TARGET)
206
207FRC:
208
209include ../Makefile.targ
210include ../../Makefile.msg.targ
211