1# Copyright 1998 Juniper Networks, Inc.
2# All rights reserved.
3#
4# Redistribution and use in source and binary forms, with or without
5# modification, are permitted provided that the following conditions
6# are met:
7# 1. Redistributions of source code must retain the above copyright
8#    notice, this list of conditions and the following disclaimer.
9# 2. Redistributions in binary form must reproduce the above copyright
10#    notice, this list of conditions and the following disclaimer in the
11#    documentation and/or other materials provided with the distribution.
12#
13# THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15# IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16# ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17# FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18# DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19# OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22# OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23# SUCH DAMAGE.
24#
25
26.include <src.opts.mk>
27
28EFIBOOT=${SRCTOP}/stand/efi
29EDK2INC=${SRCTOP}/sys/contrib/edk2/Include
30
31.PATH:	${EFIBOOT}/libefi
32
33PACKAGE=	efi-tools
34LIB=		efivar
35SRCS=		efivar.c efichar.c efivar-dp-format.c \
36		efivar-dp-parse.c \
37		efivar-dp-xlate.c \
38		uefi-guid.c uefi-dputil.c
39INCS=		efivar.h efivar-dp.h
40SHLIB_MAJOR=	1
41MAN=		efivar.3
42
43CFLAGS+=	-I${EFIBOOT}/include
44CFLAGS+=	-I${.CURDIR} -I${EDK2INC}
45CFLAGS+=	-fno-strict-aliasing
46
47MLINKS+=efivar.3 efi_variables_supported.3 \
48	efivar.3 efi_del_variable.3 \
49	efivar.3 efi_get_variable.3 \
50	efivar.3 efi_get_variable_attributes.3 \
51	efivar.3 efi_get_variable_size.3 \
52	efivar.3 efi_append_variable.3 \
53	efivar.3 efi_set_variable.3 \
54	efivar.3 efi_get_next_variable_name.3 \
55	efivar.3 efi_str_to_guid.3 \
56	efivar.3 efi_guid_to_str.3 \
57	efivar.3 efi_name_to_guid.3 \
58	efivar.3 efi_guid_to_name.3 \
59	efivar.3 efi_guid_to_symbol.3 \
60	efivar.3 libefivar.3
61
62WARNS?=		9
63
64.include <bsd.lib.mk>
65
66# We use UEFI parsing and formatting code from upstream EDK2 project.
67# They still have issues that require us to susppress some warnings.
68CWARNFLAGS+=	-Wno-cast-align
69CWARNFLAGS+=	-Wno-unused-parameter
70.if ${COMPILER_TYPE} == "clang" && ${COMPILER_VERSION} >= 130000
71CWARNFLAGS+=	-Wno-unused-but-set-variable
72.endif
73