Makefile revision 5680
2N/A# The contents of this file are subject to the terms of the 2N/A# Common Development and Distribution License (the "License"). 2N/A# You may not use this file except in compliance with the License. 2N/A# See the License for the specific language governing permissions 2N/A# and limitations under the License. 2N/A# When distributing Covered Code, include this CDDL HEADER in each 2N/A# If applicable, add the following below this CDDL HEADER, with the 2N/A# fields enclosed by brackets "[]" replaced with your own identifying 2N/A# information: Portions Copyright [yyyy] [name of copyright owner] 2N/A# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. 2N/A# As Solaris always has a 64-bit kernel, and 64-bit emacs can handle larger 2N/A# files, we only build and deliver 64-bit binaries. 59N/A# The upstream emacs distribution does not have tests to be run 2N/A# We build three different variants of emacs for our users. 2N/A# contains the platform name. Although the name is platform dependent, 166N/A# the files inside it are the same on all platforms. By adding this 2N/A# to the pkgmogrify macros, we can write our manifests in a portable way. 58N/A# LD_OPTIONS is defined to apply desirable link-editor options to Userland 58N/A# components. Non-executable stack and data break sparc emacs. 58N/A# Uncomment this for debugging only. It configures emacs to run from the 58N/A# local proto instead of from its final installed location. This is useful 58N/A# for initial bringup of new emacs versions, but can only be used up through 119N/A# the 'gmake build' stage. 57N/A#CONFIGURE_PREFIX = $(PROTO_DIR)/usr 278N/A# The configure script runs the pkg-config command. This allows it to 278N/A# find the non-default GnuTLS v3 library. 58N/A# Never use xmkmf to find X11 libraries from autoconf. They are all available 278N/A# from standard system locations, and we don't want the ld -L option that 151N/A# configure options common to all variants of emacs that we want to build. 814N/A# Disable gsettings and dbus. gsettings causes numerous startup errors 814N/A# line 416: assertion 'source != NULL' failed 814N/A# without providing much benefit on Solaris. dbus does not offer sufficient 814N/A# utility for Solaris to be worth the negative interactions with ssh, where 814N/A# the session blocks on exit due to dbus holding an open port. 716N/A# ASLR should remain disabled for emacs. ASLR undermines emacs's dumping 716N/A# code, which requires every execution to have the same mappings. Since 2077N/A# emacs is not network facing, or run with elevated privileges, this is 716N/A# not a security concern. 2N/A# As with ASLR, ADIHEAP should be explicitly disabled for emacs, as the 151N/A# dumped emacs cannot work with ADI. Recognizing that ASLR_MODE could really 59N/A# be SX_MODE, and generalized to handle all the sxadm extensions, redefine 2N/A# it here to handle both cases. It is expected that in due course, the 2N/A# Userland framework will evolve in this direction. 2N/A# variant specific configure options 1780N/A# we need to build all variants, but only have to install one in order 814N/A# to get the common files shared by all. We use COMPONENT_POST_INSTALL_ACTION 2N/A# to remove unwanted files, copy the emacs binaries from the other tookit 2N/A# builds into place, and install the additional files we provide. 59N/A# Note that this tweaking is not required, as the proto need not match 2N/A# the packaging. However, doing it this way allows us to examine the proto 16N/A# as a finished and complete product, simplifies debugging emacs, and 58N/A# facilitates the use of 'gmake sample-manifest'. 166N/A# Remove existing emacs executable from usr/bin. We install the binaries 4089N/A# etags could arguably go into /usr/bin, but we'd like to preserve the 4089N/A# both of the ones we're delivering, with Exuberant Ctags. Putting both 4089N/A# emacs tags programs in /usr/gnu/bin helps that, and is a simpler story. 4089N/A# this is that we do not install update-game-score as setuid, and 4089N/A# therefore the game files are not usable. This the same decision made 4089N/A# Provide manpages for the emacs variants, which are our creation, referring 4089N/A# the reader to the main emacs(1) manpage. 814N/A# live at the topmost node of the Info hierarchy. Emacs builds them, as 814N/A# presumably do all GNU packages, but on Solaris, they are delivered by 3817N/A# By default, emacs is configured to compress lisp files, manpages, and info 3817N/A# files. The option to disable that (--without-compress-install) has no 3817N/A# granularity --- it's all or nothing. For Solaris, we want to compress lisp 3817N/A# sources, but not the others. It's simplest to let everything be compressed. 3817N/A# and then explicitly decompress the manpages and info files. # Desktop packages differ slightly between S11 & S12: list union to allow # for BUILD_TYPE=evaluation and normal builds.