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