Existem três tipos principais de Makefile
s no repositório de Documentação do Projeto FreeBSD.
Makefile
s de Subdiretório simplesmente passam os comandos para os diretórios abaixo deles.
Makefile
s 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 Makefile
s 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 Makefile
pensa 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) Makefile
s 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>.