5.3. Noções Básicas de Makefiles no Repositório de Documentação

Existem três tipos principais de Makefiles no repositório de Documentação do Projeto FreeBSD.

5.3.1. Makefiles de Subdiretório

Estes Makefiles geralmente tem a forma de:

SUBDIR =articles
SUBDIR+=books

COMPAT_SYMLINK = en

DOC_PREFIX?= ${.CURDIR}/..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"

As quatro primeiras linhas não vazias definem as variáveis ​​do make(1), SUBDIR, COMPAT_SYMLINK, e DOC_PREFIX.

A declaração SUBDIR e COMPAT_SYMLINK mostram como atribuir um valor a uma variável, sobrescrevendo qualquer valor anterior que a mesma contenha.

A segunda declaração SUBDIR mostra como um valor é anexado ao valor atual de uma variável. A variável SUBDIR agora é composta por articles books.

A declaração DOC_PREFIX mostra como um valor é atribuído para uma variável, mas somente se ela ainda não estiver definida. Isso é útil se DOC_PREFIX não for onde este Makefilepensa que é - o usuário pode cancelar e fornecer o valor correto.

Agora o que tudo isso significa? SUBDIR lista quais subdiretórios abaixo do atual devem ser incluídos no processo de compilação durante a geração do documento.

O COMPAT_SYMLINK é específico para compatibilizar os links simbólicos que ligam os idiomas a sua codificação oficial (doc/en deve apontar para en_US.ISO-8859-1).

O DOC_PREFIX é o caminho para a raíz da árvore do projeto de documentação do FreeBSD. O qual nem sempre é facil de encontrar, e que também pode ser facilmente sobrescrito, para permitir flexibilidade. O .CURDIR é uma variável interna do make(1) que contém o caminho para o diretório atual.

A linha final inclui o arquivo principal do make(1) doc.project.mk do Projeto de Documentação do FreeBSD, ele é o responsável por converter estas variáveis em instruções de compilação.

5.3.2. Makefiles de Documentação

Estes conjuntos de ​​make(1) Makefiles descrevem como construir a documentação contida nesse diretório.

Aqui está um exemplo:

MAINTAINER=nik@FreeBSD.org

DOC?= book

FORMATS?= html-split html

INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=

# SGML content
SRCS=  book.xml

DOC_PREFIX?= ${.CURDIR}/../../..

.include "$(DOC_PREFIX)/share/mk/docproj.docbook.mk"

A variável MAINTAINER permite que os committers reivindiquem a propriedade de um documento no Projeto de Documentação do FreeBSD, e sejam responsáveis ​​por mantê-lo.

DOC é o nome (sem a extensão .xml) do principal documento criado por este diretório. O SRCS lista todos os arquivos individuais que compõem o documento. Ela também deve incluir os arquivos importantes, nos quais qualquer mudança deve resultar em uma reconstrução.

FORMATS indica os formatos nos quais o documento deve ser gerado por padrão. INSTALL_COMPRESSED contém a lista padrão das técnicas de compressão que devem ser usadas no documento depois que ele é gerado. A variável INSTALL_ONLY_COMPRESS, nula por padrão, deve ser definida para um valor não nulo apenas se você desejar gerar exclusivamente a versão compactada do documento.

Você já deve estar familiarizado com a atribuição da variável DOC_PREFIX e com as instruções de include.

All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.