Makefile revision 2656
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
297be3708069ef31814d6d75c0d71a50a78feb03Mark Andrews# CDDL HEADER START
75c0816e8295e180f4bc7f10db3d0d880383bc1cMark Andrews#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# The contents of this file are subject to the terms of the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Common Development and Distribution License (the "License").
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# You may not use this file except in compliance with the License.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# or http://www.opensolaris.org/os/licensing.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# See the License for the specific language governing permissions
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# and limitations under the License.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# When distributing Covered Code, include this CDDL HEADER in each
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# If applicable, add the following below this CDDL HEADER, with the
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# fields enclosed by brackets "[]" replaced with your own identifying
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater# information: Portions Copyright [yyyy] [name of copyright owner]
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# CDDL HEADER END
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
e21a2904f02a03fa06b6db04d348f65fe9c67b2bMark Andrews#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Copyright (c) 2011, 2014, Oracle and/or its affiliates. All rights reserved.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein#
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininclude ../../make-rules/shared-macros.mk
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinPATH=$(SPRO_VROOT)/bin:$(JAVA_HOME)/bin:/usr/bin
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_NAME= erlang
71c66a876ecca77923638d3f94cc0783152b2f03Mark AndrewsCOMPONENT_VERSION_MAJOR= 15
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_VERSION_MINOR= B
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_VERSION_MICRO= 03
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# IPS_COMPONENT_VERSION needs update whenever this is changed
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_VERSION= R$(COMPONENT_VERSION_MAJOR)$(COMPONENT_VERSION_MINOR)$(COMPONENT_VERSION_MICRO)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_PROJECT_URL= http://www.erlang.org/
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_SRC_NAME= otp_src
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_SRC= $(COMPONENT_SRC_NAME)_$(COMPONENT_VERSION)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_ARCHIVE= $(COMPONENT_SRC)-1.tar.gz
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_ARCHIVE_HASH= \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein sha256:4bccac86dd76aec050252e44276a0283a0df9218e6470cf042a9b9f9dfc9476c
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_ARCHIVE_URL= $(COMPONENT_PROJECT_URL)download/$(COMPONENT_ARCHIVE)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_BUGDB= utility/erlang
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# manpages
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_NAME_1= otp_doc_man
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_SRC_1= $(COMPONENT_NAME_1)_$(COMPONENT_VERSION)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_ARCHIVE_1= $(COMPONENT_SRC_1)-1.tar.gz
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_ARCHIVE_HASH_1= \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein sha256:07980d8014c7cf8194b7078c137353f5083992add4663ced3dcba2ff91f228d8
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic UpdaterCOMPONENT_ARCHIVE_URL_1= $(COMPONENT_PROJECT_URL)download/$(COMPONENT_ARCHIVE_1)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# HTML documentation
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_NAME_2= otp_doc_html
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic UpdaterCOMPONENT_SRC_2= $(COMPONENT_NAME_2)_$(COMPONENT_VERSION)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_ARCHIVE_2= $(COMPONENT_SRC_2)-1.tar.gz
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_ARCHIVE_HASH_2= \
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updater sha256:d06f580f11d1303217a5c1cf8d68a98d7e01c535be934dcd430ecdc254f7572e
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_ARCHIVE_URL_2= $(COMPONENT_PROJECT_URL)download/$(COMPONENT_ARCHIVE_2)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updaterinclude ../../make-rules/prep.mk
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updaterinclude ../../make-rules/configure.mk
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininclude ../../make-rules/ips.mk
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updater
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updater# IPS_COMPONENT_VERSION is by default set to $(COMPONENT_VERSION) but it is not
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updater# enough for us. We need to include the $(COMPONENT_SUBVERSION) somehow.
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updater# Because the IPS_COMPONENT_VERSION cannot contain letters or leading zeroes
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# we use mapping:
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updater# R(major)(minor)(micro) - (major).(minor as number).(micro)
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic UpdaterIPS_COMPONENT_VERSION= $(COMPONENT_VERSION_MAJOR).2.3
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updater
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updater# Built in SFW with gcc and builds cleanly now only with gcc
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPILER = gcc
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updater
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCONFIGURE_OPTIONS += CFLAGS="$(CFLAGS)"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCONFIGURE_OPTIONS += CPPFLAGS="$(CPPFLAGS) -I/usr/include/gd2"
98b5a9d1099f72169c90de39712fc4f63e9d990eAutomatic UpdaterCONFIGURE_OPTIONS += --enable-smp-support
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic UpdaterCONFIGURE_OPTIONS += --enable-threads
c6d486af36165da7eb970354981d145249e342e4Mark Andrews# The HiPE portion is a bit sensitive, and only seems to work 64-bit on
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# amd64 (thus the variant.arch tagging in erlang.p5m). erts/config.log
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# can be very interesting if issues occur.
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCONFIGURE_OPTIONS += --enable-hipe
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic UpdaterCONFIGURE_OPTIONS += --with-ssl
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic UpdaterCONFIGURE_OPTIONS += --enable-dynamic-ssl-lib
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCONFIGURE_BINDIR.64 = $(CONFIGURE_PREFIX)/bin
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCONFIGURE_OPTIONS.64 += LDFLAGS="$(LDFLAGS) -m64"
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCONFIGURE_OPTIONS.64 += LIBS="-m64"
f8c849e22415de8f739c17552b0f0ee9a6c7c9fcAutomatic Updater
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Needed for 'set name=info.source-url' action in erlang-doc.p5m
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic UpdaterPKG_MACROS += COMPONENT_ARCHIVE_URL_2=$(COMPONENT_ARCHIVE_URL_2)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# Use cp(1) instead of cloney because erlang's 'install' target uses 'tar'
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater# to copy files and our tar doesn't handle long links by default. Between
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein# the use of 'tar' and 'ld', a path adjustment wasn't an option due to the
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater# need for /usr/bin/ld and /usr/gnu/bin/tar. Perhaps this can be looked
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic Updater# at when we upgrade to a more current version.
0c6ada0a814f3c5417daa1654129bc2af56ed504Automatic UpdaterCOMPONENT_PRE_CONFIGURE_ACTION = \
7208386cd37a2092c70eddf80cf29519b16c4c80Mark Andrews ($(CP) -rp $(SOURCE_DIR)/. $(@D))
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCONFIGURE_SCRIPT = $(@D)/configure
507151045be68c671ffd4e2f37e17cdfa0376fc4Automatic Updater
507151045be68c671ffd4e2f37e17cdfa0376fc4Automatic UpdaterCOMPONENT_INSTALL_ARGS += INSTALL_PREFIX=$(PROTO_DIR)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_TEST_ENV += ERL_TOP=$(BUILD_DIR_64)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinCOMPONENT_TEST_TARGETS = tests
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews
71c66a876ecca77923638d3f94cc0783152b2f03Mark AndrewsASLR_MODE = $(ASLR_ENABLE)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews# common targets
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrewsbuild: $(BUILD_64)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininstall: $(INSTALL_64)
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews # Undelivered useless files:
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein # erlang/lib/crypto-*/priv/obj
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein # erlang/lib/ssl-*/priv/obj
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews # erlang/Install
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein # erlang/misc
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein # erlang/*/*.bat
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein # manpages: start.1 werl.1
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) -r documentation
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(MKDIR) documentation && cd documentation && \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(UNPACK) $(UNPACK_ARGS) ../$(COMPONENT_ARCHIVE_1) && \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(UNPACK) $(UNPACK_ARGS) ../$(COMPONENT_ARCHIVE_2)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein # remove INSTALL_PREFIX from path
71c66a876ecca77923638d3f94cc0783152b2f03Mark Andrews $(PERL) -pi -e "s|$(PROTO_DIR)||g" \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(PROTO_DIR)/usr/lib/$(MACH64)/erlang/bin/erl \
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(PROTO_DIR)/usr/lib/$(MACH64)/erlang/releases/RELEASES
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeinclean::
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein $(RM) -r documentation
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeintest: $(TEST_64)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob AusteinBUILD_PKG_DEPENDENCIES = $(BUILD_TOOLS)
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austeininclude ../../make-rules/depend.mk
60e5e10f8d2e2b0c41e8abad38cacd867caa6ab2Rob Austein