Makefile revision 5795
98N/A# The contents of this file are subject to the terms of the 307N/A# Common Development and Distribution License (the "License"). 98N/A# You may not use this file except in compliance with the License. 98N/A# See the License for the specific language governing permissions 98N/A# and limitations under the License. 98N/A# When distributing Covered Code, include this CDDL HEADER in each 98N/A# If applicable, add the following below this CDDL HEADER, with the 98N/A# fields enclosed by brackets "[]" replaced with your own identifying 98N/A# information: Portions Copyright [yyyy] [name of copyright owner] 98N/A# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved. 98N/A# As Solaris always has a 64-bit kernel, and 64-bit emacs can handle larger 98N/A# files, we only build and deliver 64-bit binaries. 98N/A# The upstream emacs distribution does not have tests to be run 390N/A# We build three different variants of emacs for our users. 98N/A# contains the platform name. Although the name is platform dependent, 493N/A# the files inside it are the same on all platforms. By adding this 98N/A# 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. This allows it to # find the non-default GnuTLS v3 library. # Never use xmkmf to find X11 libraries from autoconf. They are all available # from standard system locations, and we don't want the ld -L option that # 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. # As with ASLR, ADIHEAP should be explicitly disabled for emacs, as the # dumped emacs cannot work with ADI. Recognizing that ASLR_MODE could really # be SX_MODE, and generalized to handle all the sxadm extensions, redefine # it here to handle both cases. It is expected that in due course, the # Userland framework will evolve in this direction. # 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. # Desktop packages differ slightly between S11 & S12: list union to allow # for BUILD_TYPE=evaluation and normal builds.