#
# CDDL HEADER START
#
# 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.
#
# You can obtain a copy of the license at usr/src/OPENSOLARIS.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
# file and include the License file at usr/src/OPENSOLARIS.LICENSE.
# 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]
#
# CDDL HEADER END
#
#
#
# As Solaris always has a 64-bit kernel, and 64-bit emacs can handle larger
# files, we only build and deliver 64-bit binaries.
# The upstream emacs distribution does not have tests to be run
# from this target.
# Depends on newer cairo, which cannot be updated in S11.
# We patch the configure.ac file. Get the new configure generated during prep.
# We build three different variants of emacs for our users.
# 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. 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
# gets injected.
# configure options common to all variants of emacs that we want to build.
# Disable gsettings and dbus. gsettings causes numerous startup errors
# of the form
# (process:25309): GLib-GIO-CRITICAL **: file gsettingsschema.c:
# 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.
#
# Similarly, emacs cannot cope with a non-executable stack and with a protected
# and non-executable heap.
# 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'.
# GTK binaries
# Non-X11 binaries
# X11 (Athena) binaries
# both of the ones we're delivering, with Exuberant Ctags. Putting both
# 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
COMPONENT_POST_INSTALL_ACTION += $(RM) \
# 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.
COMPONENT_POST_INSTALL_ACTION += $(GUNZIP) \
# common targets
# Desktop packages differ slightly between S11 & S12: list union to allow
# for BUILD_TYPE=evaluation and normal builds.
REQUIRED_PACKAGES += $(PERL_PKG)