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 (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved. 23# Copyright 2016 Igor Kozhukhov <ikozhukhov@gmail.com> 24# Copyright (c) 2011, 2017 by Delphix. All rights reserved. 25# Copyright 2019 Joyent, Inc. 26# 27 28LIBRARY= libzfs.a 29VERS= .1 30 31OBJS_SHARED= \ 32 zfeature_common.o \ 33 zfs_comutil.o \ 34 zfs_deleg.o \ 35 zfs_fletcher.o \ 36 zfs_namecheck.o \ 37 zfs_prop.o \ 38 zpool_prop.o \ 39 zprop_common.o 40 41OBJS_COMMON= \ 42 libzfs_changelist.o \ 43 libzfs_config.o \ 44 libzfs_crypto.o \ 45 libzfs_dataset.o \ 46 libzfs_diff.o \ 47 libzfs_fru.o \ 48 libzfs_import.o \ 49 libzfs_iter.o \ 50 libzfs_mount.o \ 51 libzfs_pool.o \ 52 libzfs_sendrecv.o \ 53 libzfs_status.o \ 54 libzfs_util.o \ 55 libzfs_taskq.o 56 57OBJECTS= $(OBJS_COMMON) $(OBJS_SHARED) 58 59include ../../Makefile.lib 60 61# libzfs must be installed in the root filesystem for mount(1M) 62include ../../Makefile.rootfs 63 64LIBS= $(DYNLIB) $(LINTLIB) 65 66SRCDIR = ../common 67 68INCS += -I$(SRCDIR) 69INCS += -I../../../uts/common/fs/zfs 70INCS += -I../../../common/zfs 71INCS += -I../../libc/inc 72 73CSTD= $(CSTD_GNU99) 74C99LMODE= -Xc99=%all 75LDLIBS += -lc -lm -ldevid -lgen -lnvpair -luutil -lavl -lefi \ 76 -ladm -lidmap -ltsol -lcryptoutil -lpkcs11 -lmd -lumem -lzfs_core \ 77 -lcmdutils -ldevinfo 78CPPFLAGS += $(INCS) -D_LARGEFILE64_SOURCE=1 -D_REENTRANT 79$(NOT_RELEASE_BUILD)CPPFLAGS += -DDEBUG 80 81# not linted 82SMATCH=off 83 84# There's no lint library for zlib, so only include this when building 85$(DYNLIB) := LDLIBS += -lz 86 87LINTFLAGS += -erroff=E_STATIC_UNUSED 88LINTFLAGS64 += -erroff=E_STATIC_UNUSED 89 90SRCS= $(OBJS_COMMON:%.o=$(SRCDIR)/%.c) \ 91 $(OBJS_SHARED:%.o=$(SRC)/common/zfs/%.c) 92$(LINTLIB) := SRCS= $(SRCDIR)/$(LINTSRC) 93 94# lint complains about unused inline functions, even though 95# they are "inline", not "static inline", with "extern inline" 96# implementations and usage in libzpool. 97LINTFLAGS += -erroff=E_STATIC_UNUSED 98LINTFLAGS64 += -erroff=E_STATIC_UNUSED 99 100.KEEP_STATE: 101 102all: $(LIBS) 103 104lint: lintcheck 105 106pics/%.o: ../../../common/zfs/%.c 107 $(COMPILE.c) -o $@ $< 108 $(POST_PROCESS_O) 109 110include ../../Makefile.targ 111