Makefile revision 5835
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# CDDL HEADER START
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#
f202f2587b9ba4753afba49b796f599cc12b4d0fAndreas Gustafsson# The contents of this file are subject to the terms of the
f5d30e2864e048a42c4dc1134993ae7efdb5d6c3Mark Andrews# Common Development and Distribution License (the "License").
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# You may not use this file except in compliance with the License.
f202f2587b9ba4753afba49b796f599cc12b4d0fAndreas Gustafsson#
f202f2587b9ba4753afba49b796f599cc12b4d0fAndreas Gustafsson# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
f202f2587b9ba4753afba49b796f599cc12b4d0fAndreas Gustafsson# or http://www.opensolaris.org/os/licensing.
f202f2587b9ba4753afba49b796f599cc12b4d0fAndreas Gustafsson# See the License for the specific language governing permissions
f202f2587b9ba4753afba49b796f599cc12b4d0fAndreas Gustafsson# and limitations under the License.
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews#
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# When distributing Covered Code, include this CDDL HEADER in each
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# If applicable, add the following below this CDDL HEADER, with the
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# fields enclosed by brackets "[]" replaced with your own identifying
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews# information: Portions Copyright [yyyy] [name of copyright owner]
dafcb997e390efa4423883dafd100c975c4095d6Mark Andrews#
f202f2587b9ba4753afba49b796f599cc12b4d0fAndreas Gustafsson# CDDL HEADER END
f5d30e2864e048a42c4dc1134993ae7efdb5d6c3Mark Andrews#
3389b6215abbffc02cc1b6e640f05987ca9f816fMark Andrews
b5ad6dfea4cc3e7d1d322ac99f1e5a31096837c4Mark Andrews#
f202f2587b9ba4753afba49b796f599cc12b4d0fAndreas Gustafsson# Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved.
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinBUILD_BITS= 64_and_32
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeinexport PARFAIT_BUILD=no
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeininclude ../../make-rules/shared-macros.mk
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCOMPONENT_NAME = mysql
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCOMPONENT_VERSION = 5.6.29
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCOMPONENT_SRC = $(COMPONENT_NAME)-$(COMPONENT_VERSION)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCOMPONENT_ARCHIVE = $(COMPONENT_SRC).tar.gz
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCOMPONENT_ARCHIVE_HASH= \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein sha256:6ac85b75b2dfa8c232725dda25469df37bf4e48b408cc0978d0dfc34c25a817f
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCOMPONENT_ARCHIVE_URL = http://cdn.mysql.com/Downloads/MySQL-5.6/$(COMPONENT_ARCHIVE)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCOMPONENT_PROJECT_URL = http://dev.mysql.com/
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCOMPONENT_BUGDB = database/mysql
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#We use cp(1) instead of cloney because we use TAR to copy files and the TAR
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein#used doesn't handle long links
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCLONEY = echo
f5d30e2864e048a42c4dc1134993ae7efdb5d6c3Mark AndrewsCOMPONENT_PRE_BUILD_ACTION += $(CP) -rp $(SOURCE_DIR)/* $(@D);
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinBUILD_STYLE= justmake
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinTEST_TARGET= $(NO_TESTS)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinSYSTEM_TEST_TARGET= $(NO_TESTS)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austeininclude $(WS_MAKE_RULES)/common.mk
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# Enable ASLR for this component
f5d30e2864e048a42c4dc1134993ae7efdb5d6c3Mark AndrewsASLR_MODE = $(ASLR_ENABLE)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# MySQL being one of Oracle's own product doesn't require to have a
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# TPNO License number.
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# This component uses cmake to generate Makefiles and thus does not
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# run any configure script
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE = $(shell which cmake)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_PREFIX = $(USRDIR)/mysql/5.6
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCONFDIR = $(ETCDIR)/mysql/5.6
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinDATA_PREFIX = $(VARDIR)/mysql/5.6
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_BINDIR.32 = bin/$(MACH32)
a268fec7f54a89a0772a91da0511c8eae09e6157Mark AndrewsCMAKE_BINDIR.64 = bin
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_LIBDIR.32 = lib
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_LIBDIR.64 = lib/$(MACH64)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_PLUGINDIR.32 = lib/plugin
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_PLUGINDIR.64 = lib/$(MACH64)/plugin
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_CFLAGS.32 = -m32
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_CFLAGS.64 = -m64
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_CXXFLAGS.32 = -m32 -xnorunpath -std=c++03
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_CXXFLAGS.64 = -m64 -xnorunpath -std=c++03
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# Providing component specific build options to cmake
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DBUILD_CONFIG=mysql_release
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DINSTALL_LAYOUT=STANDALONE
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DCMAKE_INSTALL_PREFIX=$(CMAKE_PREFIX)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DINSTALL_BINDIR=$(CMAKE_BINDIR.$(BITS))
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DINSTALL_SBINDIR=$(CMAKE_BINDIR.$(BITS))
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DINSTALL_SCRIPTDIR=$(CMAKE_BINDIR.$(BITS))
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DINSTALL_LIBDIR=$(CMAKE_LIBDIR.$(BITS))
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DINSTALL_PLUGINDIR=$(CMAKE_PLUGINDIR.$(BITS))
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DSYSCONFDIR=$(CONFDIR)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DMYSQL_DATADIR=$(DATA_PREFIX)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DWITH_SSL=bundled
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DWITH_READLINE=ON
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DENABLE_DTRACE=1
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DHAVE_REAL_DTRACE_INSTRUMENTING=ON
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DWITH_EXTRA_CHARSETS=complex
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DENABLED_LOCAL_INFILE=ON
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DWITH_ARCHIVE_STORAGE_ENGINE=1
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DWITH_BLACKHOLE_STORAGE_ENGINE=1
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DWITH_EXAMPLE_STORAGE_ENGINE=1
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DWITH_FEDERATED_STORAGE_ENGINE=1
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DCMAKE_CXX_COMPILER=$(CXX)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DCMAKE_C_COMPILER=$(CC)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DWITH_INNOBASE_STORAGE_ENGINE=1
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DCMAKE_C_FLAGS="$(CMAKE_CFLAGS.$(BITS))"
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DCMAKE_CXX_FLAGS="$(CMAKE_CXXFLAGS.$(BITS))"
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += '-DCOMPILATION_COMMENT=MySQL Community Server (GPL)'
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DFEATURE_SET=community
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCMAKE_OPTIONS += -DCMAKE_VERBOSE_MAKEFILE:BOOL=TRUE
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCOMPONENT_PRE_BUILD_ACTION += cd $(@D);
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCOMPONENT_PRE_BUILD_ACTION += export LDFLAGS=$(CMAKE_CXXFLAGS.$(BITS));
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCOMPONENT_PRE_BUILD_ACTION += echo Running cmake with $(CMAKE_OPTIONS);
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinCOMPONENT_PRE_BUILD_ACTION += $(CMAKE) . $(CMAKE_OPTIONS);
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein# Adjust '#!/usr/bin/perl'
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein$(INSTALL_64): PERL_SCRIPTS= \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(PROTO_DIR)/$(CMAKE_PREFIX)/bin/mysql_convert_table_format \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(PROTO_DIR)/$(CMAKE_PREFIX)/bin/mysql_find_rows \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(PROTO_DIR)/$(CMAKE_PREFIX)/bin/mysql_fix_extensions \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(PROTO_DIR)/$(CMAKE_PREFIX)/bin/mysql_install_db \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(PROTO_DIR)/$(CMAKE_PREFIX)/bin/mysql_secure_installation \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(PROTO_DIR)/$(CMAKE_PREFIX)/bin/mysql_setpermission \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(PROTO_DIR)/$(CMAKE_PREFIX)/bin/mysql_zap \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(PROTO_DIR)/$(CMAKE_PREFIX)/bin/mysqlaccess \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(PROTO_DIR)/$(CMAKE_PREFIX)/bin/mysqld_multi \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(PROTO_DIR)/$(CMAKE_PREFIX)/bin/mysqldumpslow \
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein $(PROTO_DIR)/$(CMAKE_PREFIX)/bin/mysqlhotcopy
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinREQUIRED_PACKAGES += database/mysql-56/client
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinREQUIRED_PACKAGES += library/security/openssl
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinREQUIRED_PACKAGES += $(PERL_PKG)
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinREQUIRED_PACKAGES += shell/ksh93
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinREQUIRED_PACKAGES += system/core-os
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinREQUIRED_PACKAGES += system/library/c++-runtime
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinREQUIRED_PACKAGES += system/library/gcc/gcc-c++-runtime
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinREQUIRED_PACKAGES += system/library/gcc/gcc-c-runtime
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinREQUIRED_PACKAGES += system/library/math
268a4475065fe6a8cd7cc707820982cf5e98f430Rob AusteinREQUIRED_PACKAGES += system/network
268a4475065fe6a8cd7cc707820982cf5e98f430Rob Austein