Makefile revision 4907
# The contents of this file are subject to the terms of the # Common Development and Distribution License (the "License"). # You may not use this file except in compliance with the License. # See the License for the specific language governing permissions # and limitations under the License. # When distributing Covered Code, include this CDDL HEADER in each # If applicable, add the following below this CDDL HEADER, with the # fields enclosed by brackets "[]" replaced with your own identifying # information: Portions Copyright [yyyy] [name of copyright owner] # Copyright (c) 2011, 2015, Oracle and/or its affiliates. All rights reserved. # We patch the configure.ac file. Get the new configure generated during prep. # We build three different variants of emacs for our users. As Solaris # always has a 64-bit kernel, and 64-bit emacs can handle larger files, # we only build and deliver 64-bit binaries. # emacs creates a directory in usr/lib/emacs/$(COMPONENT_VERSION) that # contains the platform name. Although the name is platform dependent, # the files inside it are the same on all platforms. By adding this # to the pkgmogrify macros, we can write our manifests in a portable way. # LD_OPTIONS is defined to apply desirable link-editor options to Userland # components. Non-executable stack and data break sparc emacs. # Uncomment this for debugging only. It configures emacs to run from the # local proto instead of from its final installed location. This is useful # for initial bringup of new emacs versions, but can only be used up through # the 'gmake build' stage. #CONFIGURE_PREFIX = $(PROTO_DIR)/usr # The configure script runs the pkg-config command. Since we're building # 64-bit executables, we need pkg-config to use the 64-bit metadata files # configure options common to all variants of emacs that we want to build. # Disable gsettings and dbus. gsettings causes numerous startup errors # line 416: assertion 'source != NULL' failed # without providing much benefit on Solaris. dbus does not offer sufficient # utility for Solaris to be worth the negative interactions with ssh, where # the session blocks on exit due to dbus holding an open port. # ASLR should remain disabled for emacs. ASLR undermines emacs's dumping # code, which requires every execution to have the same mappings. Since # emacs is not network facing, or run with elevated privileges, this is # not a security concern. # variant specific configure options # we need to build all variants, but only have to install one in order # to get the common files shared by all. We use COMPONENT_POST_INSTALL_ACTION # to remove unwanted files, copy the emacs binaries from the other tookit # builds into place, and install the additional files we provide. # Note that this tweaking is not required, as the proto need not match # the packaging. However, doing it this way allows us to examine the proto # as a finished and complete product, simplifies debugging emacs, and # facilitates the use of 'gmake sample-manifest'. # Remove existing emacs executable from usr/bin. We install the binaries # under their variant names. /usr/bin/emacs ends up as an IPS mediated link. # etags could arguably go into /usr/bin, but we'd like to preserve the # ability to replace the standard Solaris /usr/bin/ctags, along with # 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