2000-07-16 18:27:30 +02:00
|
|
|
#
|
2000-10-08 21:17:42 +02:00
|
|
|
# $FreeBSD: doc/share/mk/doc.images.mk,v 1.3 2000/09/28 23:29:47 nbm Exp $
|
2000-07-16 18:27:30 +02:00
|
|
|
#
|
|
|
|
# This include file <doc.images.mk> handles image processing.
|
|
|
|
#
|
|
|
|
# There are two types of images that must be handled:
|
|
|
|
#
|
|
|
|
# 1. Images from the library directory, that are shared across multiple
|
|
|
|
# documents.
|
|
|
|
#
|
|
|
|
# 2. Images that are document specific.
|
|
|
|
#
|
|
|
|
# For library images this file ensures that they are copied in to the
|
|
|
|
# documents directory so that they can be reference properly.
|
|
|
|
#
|
|
|
|
# For library images *and* document specific images, this file ensures
|
|
|
|
# that the images are converted from their repository format to the
|
|
|
|
# correct output format.
|
|
|
|
#
|
2000-10-08 21:17:42 +02:00
|
|
|
|
|
|
|
#
|
|
|
|
# Using document specific images
|
|
|
|
# ------------------------------
|
|
|
|
#
|
|
|
|
# The images that each document provides *from the repository* are listed in
|
|
|
|
# the IMAGES variable.
|
|
|
|
#
|
|
|
|
# We then need to build a list of images that must be generated from these.
|
|
|
|
# This is to handle the case where a document might include some images as
|
|
|
|
# bitmaps and some as vector images in the repository, but where, depending
|
|
|
|
# on the output format, you want all the images in one format or another.
|
2000-07-16 18:27:30 +02:00
|
|
|
#
|
2000-10-08 21:17:42 +02:00
|
|
|
# This list of generated images can then be cleaned in the clean target
|
|
|
|
# later
|
|
|
|
#
|
|
|
|
# This is the same for each format. To use IMAGES_GEN_PNG as an example,
|
|
|
|
# the substitution means "First match, using M, all the components of
|
|
|
|
# ${IMAGES} that match the '*.eps' regexp. Then, search/replace the .eps
|
|
|
|
# in the matching filenames with .png. Finally, stick the results in the
|
|
|
|
# ${IMAGES_GEN_PNG} variable." ${IMAGES_GEN_PNG} then contains the names
|
|
|
|
# of all the .eps images listed, but with a .png extension. This is the
|
|
|
|
# list of files we need to generate if we need PNG format images.
|
|
|
|
#
|
|
|
|
|
|
|
|
IMAGES_GEN_PNG=${IMAGES:M*.eps:S/.eps$/.png/}
|
|
|
|
IMAGES_GEN_EPS=${IMAGES:M*.png:S/.png$/.eps/}
|
|
|
|
|
|
|
|
CLEANFILES+= ${IMAGES_GEN_PNG} ${IMAGES_GEN_EPS}
|
|
|
|
|
|
|
|
IMAGES_PNG=${IMAGES:M*.png} ${IMAGES_GEN_PNG}
|
|
|
|
IMAGES_EPS=${IMAGES:M*.eps} ${IMAGES_GEN_EPS}
|
|
|
|
|
|
|
|
# We can't use suffix rules to generate the rules to convert EPS to PNG and
|
|
|
|
# PNG to EPS. This is because a .png file can depend on a .eps file, and
|
|
|
|
# vice versa, leading to a loop in the dependency graph. Instead, build
|
|
|
|
# the targets on the fly.
|
|
|
|
|
|
|
|
.for _curimage in ${IMAGES_GEN_PNG}
|
|
|
|
${_curimage}: ${_curimage:S/.png$/.eps/}
|
|
|
|
convert -antialias ${_curimage:S/.png$/.eps/} ${_curimage}
|
|
|
|
.endfor
|
|
|
|
|
|
|
|
.for _curimage in ${IMAGES_GEN_EPS}
|
|
|
|
${_curimage}: ${_curimage:S/.eps$/.png/}
|
|
|
|
convert -antialias ${_curimage:S/.eps$/.png/} ${_curimage}
|
|
|
|
.endfor
|
|
|
|
|
|
|
|
.SUFFIXES: .pdf .eps .png
|
2000-07-16 18:27:30 +02:00
|
|
|
|
|
|
|
#
|
|
|
|
# Using library images
|
|
|
|
# --------------------
|
|
|
|
#
|
2000-10-08 21:17:42 +02:00
|
|
|
# Each document that wants to use one or more library images has to
|
2000-07-16 18:27:30 +02:00
|
|
|
# list them in the LIB_IMAGES variable. For example, a document that wants
|
|
|
|
# to use callouts 1 thru 4 has to list
|
|
|
|
#
|
|
|
|
# LIB_IMAGES= callouts/1.png callouts/2.png callouts/3.png callouts/4.png
|
|
|
|
#
|
|
|
|
# in the controlling Makefile.
|
|
|
|
#
|
|
|
|
# This code ensures they exist in the current directory, and copies them in
|
|
|
|
# as necessary.
|
|
|
|
#
|
|
|
|
|
|
|
|
#
|
|
|
|
# The name of the directory that contains all the library images for this
|
|
|
|
# language and encoding
|
|
|
|
#
|
|
|
|
LIB_IMAGES_DIR?= ${.CURDIR}/../../share/images
|
|
|
|
|
|
|
|
#
|
|
|
|
# The name of the directory *in* the document directory where files and
|
|
|
|
# directory hierarchies should be copied to. "images" is too generic, and
|
|
|
|
# might clash with local document images, so use "imagelib" by default
|
|
|
|
# instead. If you redefine this then you must also update the
|
|
|
|
# %callout-graphics-path% variable in the .dsl file.
|
|
|
|
#
|
2000-07-18 18:30:45 +02:00
|
|
|
LOCAL_LIB_IMAGES_DIR?= imagelib
|
2000-07-16 18:27:30 +02:00
|
|
|
|
|
|
|
CP?= /bin/cp
|
|
|
|
MKDIR?= /bin/mkdir
|
|
|
|
|
|
|
|
#
|
|
|
|
# Create a target for each image used from the library. This target just
|
|
|
|
# ensures that each image required is copied from its location in
|
|
|
|
# ${LIB_IMAGES_DIR} to the same place in ${LOCAL_LIB_IMAGES_DIR}.
|
|
|
|
#
|
|
|
|
.for _curimage in ${LIB_IMAGES}
|
2000-09-29 01:29:48 +02:00
|
|
|
${LOCAL_LIB_IMAGES_DIR}/${_curimage}: ${LIB_IMAGES_DIR}/${_curimage}
|
|
|
|
@[ -d ${LOCAL_LIB_IMAGES_DIR}/${_curimage:H} ] || ${MKDIR} -p ${LOCAL_LIB_IMAGES_DIR}/${_curimage:H}
|
|
|
|
${INSTALL} -C -c ${LIB_IMAGES_DIR}/${_curimage} ${LOCAL_LIB_IMAGES_DIR}/${_curimage}
|
2000-07-16 18:27:30 +02:00
|
|
|
.endfor
|