Existem três tipos principais de Makefiles no repositório de Documentação do Projeto FreeBSD.
Makefiles de Subdiretório simplesmente passam os comandos para os diretórios abaixo deles.
Makefiles de Documentação descrevem os documentos que devem ser produzidos a partir deste diretório.
Make includes são os responsáveis pela produção do documento, e geralmente possuem o nome no formato doc..xxx.mk
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.
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>.