Makefile revision 5502
5488N/A#
5488N/A# CDDL HEADER START
5488N/A#
5488N/A# The contents of this file are subject to the terms of the
5488N/A# Common Development and Distribution License (the "License").
5488N/A# You may not use this file except in compliance with the License.
5488N/A#
5488N/A# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
5488N/A# or http://www.opensolaris.org/os/licensing.
5488N/A# See the License for the specific language governing permissions
5488N/A# and limitations under the License.
5488N/A#
5488N/A# When distributing Covered Code, include this CDDL HEADER in each
5488N/A# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
5488N/A# If applicable, add the following below this CDDL HEADER, with the
5488N/A# fields enclosed by brackets "[]" replaced with your own identifying
5488N/A# information: Portions Copyright [yyyy] [name of copyright owner]
5488N/A#
5488N/A# CDDL HEADER END
5488N/A#
5488N/A# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
5488N/A#
5488N/A
5488N/Ainclude ../../make-rules/shared-macros.mk
5488N/A
5488N/ACOMPONENT_NAME= Kerberos
5488N/ACOMPONENT_MINOR= 1.13
5488N/ACOMPONENT_VERSION= 1.13.3
5488N/ACOMPONENT_PROJECT_URL= http://web.mit.edu/kerberos/
5488N/ACOMPONENT_SRC= krb5-$(COMPONENT_VERSION)
5488N/ACOMPONENT_ARCHIVE= $(COMPONENT_SRC).tar.gz
5488N/ACOMPONENT_ARCHIVE_HASH= \
5488N/A sha256:5d4af08ead9b7a1e9493cfd65e821234f151a46736e1ce586f886c8a8e65fabe
5488N/ACOMPONENT_ARCHIVE_URL= \
5488N/A $(COMPONENT_PROJECT_URL)dist/krb5/$(COMPONENT_MINOR)/$(COMPONENT_ARCHIVE)
5488N/ACOMPONENT_BUGDB= utility/kerberos
5488N/A
5488N/ATPNO= 26018
5488N/A
5488N/Ainclude $(WS_MAKE_RULES)/prep.mk
5488N/Ainclude $(WS_MAKE_RULES)/configure.mk
5502N/A
5502N/A# Depends on S12-only header file in ON.
5502N/Aifeq ($(BUILD_TYPE), evaluation)
5502N/ABUILD_32_and_64=
5502N/AINSTALL_32_and_64=
5502N/APUBLISH_STAMP=
5502N/Aendif
5502N/A
5488N/Ainclude $(WS_MAKE_RULES)/ips.mk
5488N/A
5488N/A# Encoding rules for IPS: MIT KerberosV5 <x>.<y>[.<z>] => IPS <x>.<y>.[<z>|0].0
5488N/AIPS_COMPONENT_VERSION= 1.13.3.0
5488N/A
5488N/A# The configure script is not at the top of the source directory.
5488N/ACONFIGURE_SCRIPT= $(SOURCE_DIR)/src/configure
5488N/A
5488N/A# We need to enable large file support and build PIC for our shared libraries
5488N/ACFLAGS += $(CPP_LARGEFILES) $(CC_PIC)
5488N/A
5488N/A# Include openldap headers instead of obsolete mozilla ldap headers.
5488N/ACPPFLAGS += -I$(USRINCDIR)/openldap
5488N/A
5488N/A# Temporary solution until we can fix this upstream with MIT, which currently
5488N/A# depends on implicit binding of libc. Here we explicitly link with libc to
5488N/A# satisfy this dependency.
5488N/A# If you make changes to LDFLAGS, check krb5-config and 052-krb5-config.patch.
5488N/ALDFLAGS += -lc -z defs
5488N/A
5488N/ACONFIGURE_ENV += LDFLAGS="$(LDFLAGS)"
5488N/ACONFIGURE_ENV += CFLAGS="$(CFLAGS)"
5488N/ACONFIGURE_ENV += CXXFLAGS="$(CXXFLAGS)"
5488N/ACONFIGURE_ENV += CPPFLAGS="$(CPPFLAGS)"
5488N/ACONFIGURE_ENV += PKG_CONFIG_PATH="$(PKG_CONFIG_PATH)"
5488N/ACONFIGURE_ENV += DEFKTNAME="FILE:$(ETCDIR)/krb5/krb5.keytab"
5488N/ACONFIGURE_ENV += DEFCKTNAME="FILE:/var/user/%{username}/client.keytab"
5488N/A
5488N/A# Other CONFIGURE_OPTIONS assignments coming from make-rules/configure.mk
5488N/ACONFIGURE_OPTIONS += --sysconfdir=$(ETCDIR)
5488N/ACONFIGURE_OPTIONS += --localstatedir=/var
5488N/ACONFIGURE_OPTIONS.32 += --libexecdir=$(USRLIBDIR)
5488N/ACONFIGURE_OPTIONS.64 += --libexecdir=$(USRLIBDIR)/$(MACH64)
5488N/ACONFIGURE_OPTIONS += --includedir=$(USRINCDIR)/kerberosv5
5488N/A# to avoid executing subprocesses from /usr/[s]bin/$(MACH64):
5488N/ACONFIGURE_OPTIONS += --bindir=$(USRBINDIR)
5488N/ACONFIGURE_OPTIONS += --sbindir=$(USRSBINDIR)
5488N/ACONFIGURE_OPTIONS += --with-crypto-impl=openssl
5488N/ACONFIGURE_OPTIONS += --with-ldap
5488N/ACONFIGURE_OPTIONS += --with-prng-alg=os
5488N/ACONFIGURE_OPTIONS += --with-tcl=$(USRDIR)
5488N/ACONFIGURE_OPTIONS += --without-system-verto
5488N/A
5488N/ACOMPONENT_PRE_CONFIGURE_ACTION = \
5488N/A cd $(SOURCE_DIR)/src/ && $(SOURCE_DIR)/src/util/reconf
5488N/A
5488N/APROTOULD = $(PROTOUSRLIBDIR)
5488N/A
5488N/ACOMPONENT_TEST_ARGS += LD_LIBRARY_PATH="$(PROTOULD):$(PROTOULD)/$(MACH64):"
5488N/A
5488N/A# MIT's test suite is not well suited for master results processing/filtering
5488N/A# but since the test implementation will return failure to the uland build,
5488N/A# this is good enough. The following disables master results processing.
5488N/ACOMPONENT_TEST_CREATE_TRANSFORMS=
5488N/ACOMPONENT_TEST_PERFORM_TRANSFORM=
5488N/ACOMPONENT_TEST_COMPARE=
5488N/A
5488N/A# We don't ship Solaris specific files as patches to ease maintenance.
5488N/A# We rather copy the files to the right directories.
5488N/ACOMPONENT_PREP_ACTION= \
5488N/A $(CP) Solaris/getuid.c $(SOURCE_DIR)/src/lib/krb5/os/; \
5488N/A $(CP) Solaris/g_utils.c $(SOURCE_DIR)/src/lib/gssapi/mechglue/; \
5488N/A $(CP) Solaris/kadm_host_srv_names.c $(SOURCE_DIR)/src/lib/kadm5/; \
5488N/A $(CP) Solaris/kt_findrealm.c $(SOURCE_DIR)/src/lib/krb5/keytab/; \
5488N/A $(CP) Solaris/kt_solaris.c $(SOURCE_DIR)/src/lib/krb5/keytab/; \
5488N/A $(CP) Solaris/kt_solaris.h $(SOURCE_DIR)/src/lib/krb5/keytab/; \
5488N/A $(CP) Solaris/libgss_stubs.c $(SOURCE_DIR)/src/lib/gssapi/mechglue/; \
5488N/A $(CP) Solaris/missing_interfaces.c $(SOURCE_DIR)/src/lib/krb5/; \
5488N/A $(CP) Solaris/privacy_allowed.c $(SOURCE_DIR)/src/lib/krb5/; \
5488N/A $(CP) Solaris/prof_solaris.c $(SOURCE_DIR)/src/lib/krb5/; \
5488N/A $(CP) Solaris/prof_solaris.h $(SOURCE_DIR)/src/lib/krb5/; \
5488N/A $(CP) Solaris/rc_mem.c $(SOURCE_DIR)/src/lib/krb5/rcache; \
5488N/A $(CP) Solaris/rc_mem.h $(SOURCE_DIR)/src/lib/krb5/rcache; \
5488N/A $(CP) Solaris/safechown.c $(SOURCE_DIR)/src/lib/krb5/os; \
5488N/A $(CP) Solaris/util_ordering.c $(SOURCE_DIR)/src/lib/gssapi/generic
5488N/A
5488N/A# We move xdr_alloc.c and supporting dyn code from libgssrpc directly
5488N/A# into libkadm5srv_mit. kadmind is the only consumer anyway.
5488N/ASRCLIB=$(SOURCE_DIR)/src/lib
5488N/ACOMPONENT_PREP_ACTION += ;\
5488N/A $(CP) $(SRCLIB)/rpc/xdr_alloc.c $(SRCLIB)/kadm5/srv/; \
5488N/A $(CP) $(SRCLIB)/rpc/dyn.c $(SRCLIB)/kadm5/srv/; \
5488N/A $(CP) $(SRCLIB)/rpc/dyn.h $(SRCLIB)/kadm5/srv/; \
5488N/A $(CP) $(SRCLIB)/rpc/dynP.h $(SRCLIB)/kadm5/srv/; \
5488N/A $(CP) $(SRCLIB)/rpc/dyntest.c $(SRCLIB)/kadm5/srv/; \
5488N/A
5488N/A# Common flags used to create the filter libs below
5488N/AFILTLIBFLAGS = -G -Bdirect -z defs -z text
5488N/A
5488N/A$(BUILD_32): COMPONENT_POST_BUILD_ACTION= \
5488N/A $(CC) -o $(BUILD_DIR)/$(MACH32)/lib/libgss.so.1 \
5488N/A -hlibgss.so.1 $(FILTLIBFLAGS) -lc \
5488N/A -M$(COMPONENT_DIR)/Solaris/libgss.mapfile-vers \
5488N/A -R$(USRLIBDIR)/krb5 \
5488N/A -z discard-unused=dependencies \
5488N/A -L $(BUILD_DIR)/$(MACH32)/lib -lkrb5support \
5488N/A $(BUILD_DIR)/$(MACH32)/lib/gssapi/mechglue/libgss_stubs.o && \
5488N/A $(CC) -o $(BUILD_DIR)/$(MACH32)/lib/libkrb5.so.1 \
5488N/A -hlibkrb5.so.1 $(FILTLIBFLAGS) \
5488N/A -M$(COMPONENT_DIR)/Solaris/libkrb5.mapfile-vers \
5488N/A $(BUILD_DIR)/$(MACH32)/lib/krb5/missing_interfaces.o \
5488N/A $(BUILD_DIR)/$(MACH32)/lib/krb5/privacy_allowed.o && \
5488N/A $(LD) -o $(BUILD_DIR)/$(MACH32)/lib/libkadm5clnt.so.1 \
5488N/A -hlibkadm5clnt.so.1 $(FILTLIBFLAGS) \
5488N/A -M$(COMPONENT_DIR)/Solaris/libkadm5clnt.mapfile-vers;
5488N/A
5488N/A$(BUILD_64): COMPONENT_POST_BUILD_ACTION= \
5488N/A $(CC) -m64 -o $(BUILD_DIR)/$(MACH64)/lib/libgss.so.1 \
5488N/A -hlibgss.so.1 $(FILTLIBFLAGS) -lc \
5488N/A -M$(COMPONENT_DIR)/Solaris/libgss.mapfile-vers \
5488N/A -R$(USRLIBDIR)/krb5/$(MACH64) \
5488N/A -z discard-unused=dependencies \
5488N/A -L $(BUILD_DIR)/$(MACH64)/lib -lkrb5support \
5488N/A $(BUILD_DIR)/$(MACH64)/lib/gssapi/mechglue/libgss_stubs.o && \
5488N/A $(CC) -m64 -o $(BUILD_DIR)/$(MACH64)/lib/libkrb5.so.1 \
5488N/A -hlibkrb5.so.1 $(FILTLIBFLAGS) \
5488N/A -M$(COMPONENT_DIR)/Solaris/libkrb5.mapfile-vers \
5488N/A $(BUILD_DIR)/$(MACH64)/lib/krb5/missing_interfaces.o \
5488N/A $(BUILD_DIR)/$(MACH64)/lib/krb5/privacy_allowed.o && \
5488N/A $(LD) -m64 -o $(BUILD_DIR)/$(MACH64)/lib/libkadm5clnt.so.1 \
5488N/A -hlibkadm5clnt.so.1 $(FILTLIBFLAGS) \
5488N/A -M$(COMPONENT_DIR)/Solaris/libkadm5clnt.mapfile-vers;
5488N/A
5488N/A$(INSTALL_32): COMPONENT_POST_INSTALL_ACTION= \
5488N/A $(CP) $(BUILD_DIR)/$(MACH32)/lib/libgss.so.1 \
5488N/A $(PROTO_DIR)$(USRLIBDIR); \
5488N/A $(CP) $(BUILD_DIR)/$(MACH32)/lib/libkrb5.so.1 \
5488N/A $(PROTO_DIR)$(USRLIBDIR); \
5488N/A $(CP) $(BUILD_DIR)/$(MACH32)/lib/libkadm5clnt.so.1 \
5488N/A $(PROTO_DIR)$(USRLIBDIR);
5488N/A
5488N/A$(INSTALL_64): COMPONENT_POST_INSTALL_ACTION= \
5488N/A $(MKDIR) -p $(PROTO_DIR)$(USRLIBDIR)/$(MACH64); \
5488N/A $(CP) $(BUILD_DIR)/$(MACH64)/lib/libgss.so.1 \
5488N/A $(PROTO_DIR)$(USRLIBDIR)/$(MACH64); \
5488N/A $(CP) $(BUILD_DIR)/$(MACH64)/lib/libkrb5.so.1 \
5488N/A $(PROTO_DIR)$(USRLIBDIR)/$(MACH64); \
5488N/A $(CP) $(BUILD_DIR)/$(MACH64)/lib/libkadm5clnt.so.1 \
5488N/A $(PROTO_DIR)$(USRLIBDIR)/$(MACH64);
5488N/A
5488N/AASLR_MODE = $(ASLR_ENABLE)
5488N/A
5488N/A# common targets
5488N/Abuild: $(BUILD_32_and_64)
5488N/A
5488N/Ainstall: $(INSTALL_32_and_64)
5488N/A
5488N/A# build does this always
5488N/Atest: $(TEST_32_and_64)
5488N/A
5488N/AREQUIRED_PACKAGES += developer/test/dejagnu
5488N/AREQUIRED_PACKAGES += library/libedit
5488N/AREQUIRED_PACKAGES += library/openldap
5488N/AREQUIRED_PACKAGES += library/security/openssl
5488N/AREQUIRED_PACKAGES += service/security/kerberos-5
5488N/AREQUIRED_PACKAGES += shell/ksh93
5488N/AREQUIRED_PACKAGES += system/library
5488N/AREQUIRED_PACKAGES += system/library/math
5488N/AREQUIRED_PACKAGES += system/library/security/gss
5488N/A