Makefile revision 3477
333fe280eb574439ef3f828d8755dd9e243ec855Andreas Gustafsson#
276e28f813ffef042d5a6e9f3373ef4e2ad37996Mark Andrews# CDDL HEADER START
a6a23642eaf383add7a0be045c01e7dd8278ccafAndreas Gustafsson#
250ed9e230b3903b1b264dd1ed2f691fc7cd2f8fAndreas Gustafsson# The contents of this file are subject to the terms of the
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# Common Development and Distribution License (the "License").
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# You may not use this file except in compliance with the License.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews#
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# or http://www.opensolaris.org/os/licensing.
58f7af60e79a5aaf58f6a8861c306d4c617fb1d1Mukund Sivaraman# See the License for the specific language governing permissions
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# and limitations under the License.
58f7af60e79a5aaf58f6a8861c306d4c617fb1d1Mukund Sivaraman#
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# When distributing Covered Code, include this CDDL HEADER in each
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# If applicable, add the following below this CDDL HEADER, with the
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# fields enclosed by brackets "[]" replaced with your own identifying
bcf15a19ae0efa72a22cdfb50666a3c6ce39eb9fTinderbox User# information: Portions Copyright [yyyy] [name of copyright owner]
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews#
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# CDDL HEADER END
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User#
983df82baf1d7d0b668c98cf45928a19f175c6e7Tinderbox User
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews#
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews#
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrewsinclude ../../make-rules/shared-macros.mk
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsPATH=$(SPRO_VROOT)/bin:$(JAVA_HOME)/bin:/usr/bin
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
a3ff24aaa545c45b8c581b2127d02d735aff8881Tinderbox UserCOMPONENT_NAME= erlang
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsCOMPONENT_VERSION_MAJOR= 15
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsCOMPONENT_VERSION_MINOR= B
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsCOMPONENT_VERSION_MICRO= 03
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# IPS_COMPONENT_VERSION needs update whenever this is changed
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsCOMPONENT_VERSION= R$(COMPONENT_VERSION_MAJOR)$(COMPONENT_VERSION_MINOR)$(COMPONENT_VERSION_MICRO)
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsCOMPONENT_PROJECT_URL= http://www.erlang.org/
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsCOMPONENT_SRC_NAME= otp_src
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsCOMPONENT_SRC= $(COMPONENT_SRC_NAME)_$(COMPONENT_VERSION)
09d72af3e9961c210d7baa6179165b6cd81e8dd0Tinderbox UserCOMPONENT_ARCHIVE= $(COMPONENT_SRC)-1.tar.gz
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsCOMPONENT_ARCHIVE_HASH= \
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews sha256:4bccac86dd76aec050252e44276a0283a0df9218e6470cf042a9b9f9dfc9476c
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsCOMPONENT_ARCHIVE_URL= $(COMPONENT_PROJECT_URL)download/$(COMPONENT_ARCHIVE)
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsCOMPONENT_BUGDB= utility/erlang
67adc03ef81fb610f8df093b17f55275ee816754Evan Hunt
67adc03ef81fb610f8df093b17f55275ee816754Evan Hunt# manpages
fc74b733bf679e1b3fb1599e32d445dffe325208Tinderbox UserCOMPONENT_NAME_1= otp_doc_man
fc74b733bf679e1b3fb1599e32d445dffe325208Tinderbox UserCOMPONENT_SRC_1= $(COMPONENT_NAME_1)_$(COMPONENT_VERSION)
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsCOMPONENT_ARCHIVE_1= $(COMPONENT_SRC_1)-1.tar.gz
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsCOMPONENT_ARCHIVE_HASH_1= \
09d72af3e9961c210d7baa6179165b6cd81e8dd0Tinderbox User sha256:07980d8014c7cf8194b7078c137353f5083992add4663ced3dcba2ff91f228d8
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsCOMPONENT_ARCHIVE_URL_1= $(COMPONENT_PROJECT_URL)download/$(COMPONENT_ARCHIVE_1)
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
2895f101b5585a19015ac2c2c1e1812ac467fa12Automatic Updater# HTML documentation
2895f101b5585a19015ac2c2c1e1812ac467fa12Automatic UpdaterCOMPONENT_NAME_2= otp_doc_html
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsCOMPONENT_SRC_2= $(COMPONENT_NAME_2)_$(COMPONENT_VERSION)
67adc03ef81fb610f8df093b17f55275ee816754Evan HuntCOMPONENT_ARCHIVE_2= $(COMPONENT_SRC_2)-1.tar.gz
67adc03ef81fb610f8df093b17f55275ee816754Evan HuntCOMPONENT_ARCHIVE_HASH_2= \
67adc03ef81fb610f8df093b17f55275ee816754Evan Hunt sha256:d06f580f11d1303217a5c1cf8d68a98d7e01c535be934dcd430ecdc254f7572e
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsCOMPONENT_ARCHIVE_URL_2= $(COMPONENT_PROJECT_URL)download/$(COMPONENT_ARCHIVE_2)
250ed9e230b3903b1b264dd1ed2f691fc7cd2f8fAndreas Gustafsson
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark AndrewsTPNO= 18548
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrewsinclude ../../make-rules/prep.mk
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrewsinclude ../../make-rules/configure.mk
82d13321f4dcc79a9aec992c7a1c4aaff8983adaAutomatic Updaterinclude ../../make-rules/ips.mk
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# IPS_COMPONENT_VERSION is by default set to $(COMPONENT_VERSION) but it is not
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews# enough for us. We need to include the $(COMPONENT_SUBVERSION) somehow.
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews# Because the IPS_COMPONENT_VERSION cannot contain letters or leading zeroes
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# we use mapping:
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews# R(major)(minor)(micro) - (major).(minor as number).(micro)
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark AndrewsIPS_COMPONENT_VERSION= $(COMPONENT_VERSION_MAJOR).2.3
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# Built in SFW with gcc and builds cleanly now only with gcc
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsCOMPILER = gcc
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews
67adc03ef81fb610f8df093b17f55275ee816754Evan HuntCONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
67adc03ef81fb610f8df093b17f55275ee816754Evan HuntCONFIGURE_OPTIONS += CPPFLAGS="$(CPPFLAGS) -I/usr/include/gd2"
67adc03ef81fb610f8df093b17f55275ee816754Evan HuntCONFIGURE_OPTIONS += --enable-smp-support
67adc03ef81fb610f8df093b17f55275ee816754Evan HuntCONFIGURE_OPTIONS += --enable-threads
67adc03ef81fb610f8df093b17f55275ee816754Evan Hunt# The HiPE portion is a bit sensitive, and only seems to work 64-bit on
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# amd64 (thus the variant.arch tagging in erlang.p5m). erts/config.log
67adc03ef81fb610f8df093b17f55275ee816754Evan Hunt# can be very interesting if issues occur.
0ddeab91cf922fd977f37318620b4c69dccf8364Automatic UpdaterCONFIGURE_OPTIONS += --enable-hipe
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark AndrewsCONFIGURE_OPTIONS += --with-ssl
36da16fa31fa2a582afe67010ba449a57177fd2fAutomatic UpdaterCONFIGURE_OPTIONS += --enable-dynamic-ssl-lib
f2016fcecf098726740507a5522dca04c49aeb82Tinderbox User
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic UpdaterCONFIGURE_BINDIR.64 = $(CONFIGURE_PREFIX)/bin
984c2e9f76e66e86f7d9aca99a774836ddf196eaAutomatic Updater
7a7a44400d49122d4cc207b43922a7b9c5afe443Automatic UpdaterCONFIGURE_OPTIONS.64 += LDFLAGS="$(LDFLAGS) -m64"
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas GustafssonCONFIGURE_OPTIONS.64 += LIBS="-m64"
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews
e2e4d321999340802f77adaacd19c797d04b4b95Automatic Updater# Needed for 'set name=info.source-url' action in erlang-doc.p5m
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsPKG_MACROS += COMPONENT_ARCHIVE_URL_2=$(COMPONENT_ARCHIVE_URL_2)
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# Use cp(1) instead of cloney because erlang's 'install' target uses 'tar'
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews# to copy files and our tar doesn't handle long links by default. Between
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# the use of 'tar' and 'ld', a path adjustment wasn't an option due to the
7be2f6d5df28b207e3e385c555eb4f740150528dTinderbox User# need for /usr/bin/ld and /usr/gnu/bin/tar. Perhaps this can be looked
848dcebe28e032abfc66e7f10686e1b04a8516feMark Andrews# at when we upgrade to a more current version.
848dcebe28e032abfc66e7f10686e1b04a8516feMark AndrewsCOMPONENT_PRE_CONFIGURE_ACTION = \
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews ($(CP) -rp $(SOURCE_DIR)/. $(@D))
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark AndrewsCONFIGURE_SCRIPT = $(@D)/configure
1879ff49326b49a9e4eadaca193c631409bf8575Tinderbox User
1879ff49326b49a9e4eadaca193c631409bf8575Tinderbox UserCOMPONENT_INSTALL_ARGS += INSTALL_PREFIX=$(PROTO_DIR)
4ca7391e640bd4f0abb31508019d3bd62819fa8eMark Andrews
4ca7391e640bd4f0abb31508019d3bd62819fa8eMark AndrewsCOMPONENT_TEST_ENV += ERL_TOP=$(BUILD_DIR_64)
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas GustafssonCOMPONENT_TEST_TARGETS = tests
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic UpdaterASLR_MODE = $(ASLR_ENABLE)
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater
afb33f777af856f8c3382604a7a8ffdfe2b512c5Automatic Updater# common targets
4ca7391e640bd4f0abb31508019d3bd62819fa8eMark Andrewsconfigure: $(CONFIGURE_64)
22f0b13f28a7df3b348b18848d0ccd745ea88c3cAndreas Gustafsson
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrewsbuild: $(BUILD_64)
058e44186b74531402c1f99088eb9dbe4926f8daMark Andrews
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrewsinstall: $(INSTALL_64)
e334405421979688f2d838805ac67ee47bd62976Mark Andrews # Undelivered useless files:
e334405421979688f2d838805ac67ee47bd62976Mark Andrews # erlang/lib/crypto-*/priv/obj
e334405421979688f2d838805ac67ee47bd62976Mark Andrews # erlang/lib/ssl-*/priv/obj
e334405421979688f2d838805ac67ee47bd62976Mark Andrews # erlang/Install
e334405421979688f2d838805ac67ee47bd62976Mark Andrews # erlang/misc
e334405421979688f2d838805ac67ee47bd62976Mark Andrews # erlang/*/*.bat
e334405421979688f2d838805ac67ee47bd62976Mark Andrews # manpages: start.1 werl.1
e334405421979688f2d838805ac67ee47bd62976Mark Andrews $(RM) -r documentation
65ad89971ee9973074cd11c207af92bf5440df01Automatic Updater $(MKDIR) documentation && cd documentation && \
65ad89971ee9973074cd11c207af92bf5440df01Automatic Updater $(UNPACK) $(UNPACK_ARGS) ../$(COMPONENT_ARCHIVE_1) && \
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews $(UNPACK) $(UNPACK_ARGS) ../$(COMPONENT_ARCHIVE_2)
089c63b69cdf6803aa8901aae3f2fbae58969511Automatic Updater # remove INSTALL_PREFIX from path
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews $(PERL) -pi -e "s|$(PROTO_DIR)||g" \
db6353c9b89628e16f6e729ce57baabad3460c49Automatic Updater $(PROTO_DIR)/usr/lib/$(MACH64)/erlang/bin/erl \
36da16fa31fa2a582afe67010ba449a57177fd2fAutomatic Updater $(PROTO_DIR)/usr/lib/$(MACH64)/erlang/releases/RELEASES
a3edcadfffbe617a419cdbe1bebb95f68a0eda1eMark Andrews
089c63b69cdf6803aa8901aae3f2fbae58969511Automatic Updaterclean::
9ce6056d520aaf5241560fab6ab096c0d4e87b36Automatic Updater $(RM) -r documentation
ebabe300b615154d08f5577822cfd8726d2643c8Automatic Updater
10b865e9187fc77cae02f106ddcc9e03eecdfe06Tinderbox Usertest: $(TEST_64)
10b865e9187fc77cae02f106ddcc9e03eecdfe06Tinderbox User
10b865e9187fc77cae02f106ddcc9e03eecdfe06Tinderbox UserBUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS)
10b865e9187fc77cae02f106ddcc9e03eecdfe06Tinderbox User
10b865e9187fc77cae02f106ddcc9e03eecdfe06Tinderbox Userinclude ../../make-rules/depend.mk
10b865e9187fc77cae02f106ddcc9e03eecdfe06Tinderbox User