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