#
|
# 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
|
# or http://www.opensolaris.org/os/licensing.
|
# 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
|
#
|
|
#
|
# Copyright (c) 2009, 2018, Oracle and/or its affiliates. All rights reserved.
|
# Copyright (c) 2018, Aurelien Larcher. All rights reserved.
|
#
|
BUILD_BITS ?= NO_ARCH
|
BUILD_STYLE ?= archive
|
|
ifneq ($(findstring X11,$(FONT_TYPE)),)
|
X11_CATEGORY = FONT
|
include $(WS_MAKE_RULES)/x11.mk
|
endif
|
|
include $(WS_MAKE_RULES)/common.mk
|
|
MKFONTSCALE = mkfontscale
|
MKFONTDIR = mkfontdir
|
|
ETCFONTSDIR = $(ETCDIR)/fonts
|
ETCFONTSCONFDIR = $(ETCFONTSDIR)/conf.avail
|
USRSHAREFONTSDIR = $(USRSHAREDIR)/fonts
|
|
#
|
# Font type macros
|
#
|
|
TTFFONTDIR = TrueType
|
OTFFONTDIR = OpenType
|
X11FONTDIR = X11
|
X11MISCFONTDIR = X11
|
PKGFONTDIR?= $($(FONT_TYPE)FONTDIR)
|
|
# For compatibility
|
USRSHARETTFFONTSDIR = $(USRSHAREFONTSDIR)/$(TTFFONTDIR)
|
USRSHAREOTFFONTSDIR = $(USRSHAREFONTSDIR)/$(OTFFONTDIR)
|
USRSHAREX11FONTSDIR = $(USRSHAREFONTSDIR)/$(X11FONTDIR)
|
|
TTFFONTSRC = ttf
|
OTFFONTSRC = otf
|
X11FONTSRC =
|
X11MISCFONTSRC =
|
PKGFONTSRC?= $($(FONT_TYPE)FONTSRC)
|
|
TTFFONTCLS = truetype
|
OTFFONTCLS = opentype
|
X11FONTCLS = xorg
|
X11MISCFONTCLS =
|
PKGFONTCLS?= $($(FONT_TYPE)FONTCLS)
|
|
TTFFONTEXT = *.ttc *.tte *.ttf
|
OTFFONTEXT = *.otf *.otc *.ttf *.ttc
|
X11FONTEXT = *.pcf
|
X11MISCFONTEXT = *.pcf
|
PKGFONTEXT?= $($(FONT_TYPE)FONTEXT)
|
|
PKGFONTCONFSRC = fontconfig
|
PKGFONTCONFEXT = *.conf
|
|
#
|
# Proto area directories
|
#
|
|
PROTOFONTSDIR = $(PROTO_DIR)$(USRSHAREFONTSDIR)
|
PROTOTTFFONTSDIR = $(PROTOFONTSDIR)/$(TTFFONTDIR)
|
PROTOOTFFONTSDIR = $(PROTOFONTSDIR)/$(OTFFONTDIR)
|
PROTOX11FONTSDIR = $(PROTOFONTSDIR)/$(X11FONTDIR)
|
PROTOPKGFONTSDIR = $(PROTO$(FONT_TYPE)FONTSDIR)
|
|
PROTOFONTSCONFDIR = $(PROTO_DIR)$(ETCFONTSCONFDIR)
|
|
#
|
# Default macros
|
#
|
|
COMPONENT_FONT_TYPE = $(PKGFONTCLS)
|
COMPONENT_FONT_NAME = $(COMPONENT_NAME)
|
COMPONENT_FONT_PKG = $(COMPONENT_NAME)
|
ifeq ($(strip $(COMPONENT_FONT_TYPE)),)
|
COMPONENT_FMRI ?= \
|
system/font/$(strip $(COMPONENT_FONT_PKG))
|
else
|
COMPONENT_FMRI ?= \
|
system/font/$(strip $(COMPONENT_FONT_TYPE))/$(strip $(COMPONENT_FONT_PKG))
|
endif
|
COMPONENT_CLASSIFICATION = System/Fonts
|
COMPONENT_CATEGORY = font
|
|
COMPONENT_FONT_DEST_DIR?= $(USRSHAREFONTSDIR)/$(PKGFONTDIR)/$(COMPONENT_FONT_NAME)
|
COMPONENT_FONT_SRC_DIR ?= $(PKGFONTSRC)
|
COMPONENT_FONT_FILES =
|
|
COMPONENT_FONTCONF_DEST_DIR?= $(ETCFONTSCONFDIR)
|
COMPONENT_FONTCONF_SRC_DIR ?= $(PKGFONTCONFSRC)
|
COMPONENT_FONTCONF_FILES = $(PKGFONTCONFEXT)
|
|
#
|
# Build style specific rules
|
#
|
|
ifeq ($(strip $(BUILD_STYLE)),archive)
|
|
POST_INSTALL_MKFONT?=no
|
|
COMPONENT_BUILD_ACTION?= true
|
ifeq ($(strip $(POST_INSTALL_MKFONT)),no)
|
COMPONENT_BUILD_ACTION = \
|
cd $(@D)/$(COMPONENT_FONT_SRC_DIR); $(MKFONTSCALE); $(MKFONTDIR);
|
endif
|
|
$(BUILD_DIR)/%/.built: $(SOURCE_DIR)/.prep
|
($(RM) -rf $(@D) ; $(MKDIR) $(@D))
|
$(ENV) $(CLONEY_ARGS) $(CLONEY) $(SOURCE_DIR) $(@D)
|
$(COMPONENT_PRE_BUILD_ACTION)
|
($(COMPONENT_BUILD_ACTION))
|
$(COMPONENT_POST_BUILD_ACTION)
|
$(TOUCH) $@
|
|
build: $(BUILD_$(MK_BITS))
|
|
COMPONENT_FONT_POST_INSTALL_ACTION = \
|
( $(MKFONTSCALE) $(PROTO_DIR)$(COMPONENT_FONT_DEST_DIR); \
|
$(MKFONTDIR) $(PROTO_DIR)$(COMPONENT_FONT_DEST_DIR) )
|
|
ifeq ($(strip $(POST_INSTALL_MKFONT)),yes)
|
COMPONENT_POST_INSTALL_ACTION+=$(COMPONENT_FONT_POST_INSTALL_ACTION)
|
else
|
COMPONENT_FONT_FILES += fonts.dir
|
COMPONENT_FONT_FILES += fonts.scale
|
endif
|
|
COMPONENT_INSTALL_ACTION = \
|
cd $(@D)/$(COMPONENT_FONT_SRC_DIR) && \
|
$(INSTALL) -m 0444 $(COMPONENT_FONT_FILES) \
|
$(PROTO_DIR)$(COMPONENT_FONT_DEST_DIR) ; \
|
if [ -n "$(strip $(COMPONENT_FONTCONF_FILES))" ]; \
|
then \
|
cd $(@D)/$(COMPONENT_FONTCONF_SRC_DIR) && \
|
$(INSTALL) -m 0444 $(COMPONENT_FONTCONF_FILES) \
|
$(PROTO_DIR)$(COMPONENT_FONTCONF_DEST_DIR) ; \
|
fi;
|
|
$(BUILD_DIR)/%/.installed: $(BUILD_DIR)/%/.built
|
$(MKDIR) $(@D)
|
$(COMPONENT_PRE_INSTALL_ACTION)
|
-$(RM) -r $(PROTO_DIR)$(COMPONENT_FONT_DEST_DIR)
|
$(MKDIR) $(PROTO_DIR)$(COMPONENT_FONT_DEST_DIR)
|
$(MKDIR) $(PROTO_DIR)$(COMPONENT_FONTCONF_DEST_DIR)
|
($(COMPONENT_INSTALL_ACTION))
|
$(COMPONENT_POST_INSTALL_ACTION)
|
$(TOUCH) $@
|
|
install: $(INSTALL_$(MK_BITS))
|
|
clean::
|
$(RM) -r $(BUILD_DIR) $(PROTO_DIR)
|
|
endif
|
|
ifeq ($(strip $(BUILD_STYLE)),configure)
|
# We don't compress individual font files so that we get better compression
|
# at higher levels in ZFS & IPS, and so that we aren't constantly replacing
|
# font files in every build just because the timestamp in the compressed
|
# version changed.
|
CONFIGURE_OPTIONS += --without-compression
|
endif
|
|
# Add font metadata to packages to make it easier to search for fonts
|
$(CANONICAL_MANIFESTS:%.p5m=$(MANIFEST_BASE)-%.mogrified): PUBLISH_TRANSFORMS += $(@:.mogrified=.font-transforms)
|
|
$(CANONICAL_MANIFESTS:%.p5m=$(MANIFEST_BASE)-%.mogrified): font-transforms
|
font-transforms: $(CANONICAL_MANIFESTS:%.p5m=$(MANIFEST_BASE)-%.font-transforms)
|
|
$(MANIFEST_BASE)-%.font-transforms: %.p5m
|
$(PERL) $(WS_TOOLS)/generate_font_metadata.pl \
|
-p $(PROTO_DIR) -m $< > $@ || ( rm $@ ; exit 1 )
|
|
# Package containing fc-scan used in generate_font_metadata.pl
|
USERLAND_REQUIRED_PACKAGES += system/library/fontconfig
|
# Package containing $(MKFONTSCALE) & $(MKFONTDIR)
|
USERLAND_REQUIRED_PACKAGES += x11/font-utilities
|