Ok, assim não era aquilo simples, e o port necessita algumas modificações para funcionar. Nesta seção, nós explicaremos, passo a passo, como modifica-lo para funcionar com os paradigmas do ports.
Primeiro, esta é sequencia de eventos que ocorrem quando o usuário primeiro digita make em seu diretório do port. Você pode encontrar que contem bsd.port.mk em uma outra janela enquanto você le isto realmente ajuda compreende-lo.
Mas não se preocupe se você não entendeu realmente o que bsd.port.mk está fazendo, muitas pessoas não entendem... :->
O fetch target é executado. The fetch target é responsavel por certificar-se que o tarball existe localmente em DISTDIR. Se fetch não pode encontrar os arquivos necessários em DISTDIR ele procurará a URL MASTER_SITES, qual está definida no Makefile, tão bem quanto em nosso site principal de ftp em ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/, onde nós colocamos sansionados distfiles como backup. Então tentará buscar o arquivo distribuição chamado com FETCH, assumindo que o site pedido tenha acesso direto a Internet. Se sucedido, salvará o arquivo em DISTDIR para uso futuro e proseguir.
The extract target é executado. Procurará em seu arquivo de distribuição do port (tipicamente um gzip'd tarball) em DISTDIR e desempacota-lo dentro de um especifico subdiretório temporário pelo WRKDIR (defaults to work).
The patch target é executado. Primeiro, quaisquer patches definidos em PATCHFILES são aplicados. Segundo, se quaisquer arquivos patch chamados patch-* são encontrados em PATCHDIR (defaults ao subdiretório files), eles são aplicados neste tempo em ordem alfabética.
The configure target é executado. Isto pode fazer qualquer de várias coisas diferentes.
Se existe, scripts/configure é executado.
Se HAS_CONFIGURE ou GNU_CONFIGURE é definido, WRKSRC/configure é executado.
Se USE_IMAKE é definido, XMKMF (default: xmkmf -a) é executado.
The build target é executado. Este é responsavel por ir descendo dentro do diretório de trabalho privado do port (WRKSRC) e construindo-o. Se USE_GMAKE é definido, GNU make será usado, caso contrário make do sistema será usado.
Acima são as ações. Adicionalmente, você pode definir targets pre-something ou post-something, ou colocar os scripts com aqueles nomes, no subdiretório scripts, e eles serão executados antes ou depois das ações padrões serem feitas.
Por exemplo, se você tem um post-extract target definido em seu Makefile, e um arquivo pre-build no subdiretório scripts, the post-extract target será chamado depois das ações de extração regular, e o script pre-build será executado antes das regras de construção padrão serem feitas. É recomendavel que você use Makefile targets se as ações são simples bastante, porque será mais fácil para alguem compreender que tipo de ação não-padrão o port necessita.
As ações padrões são feitas pelos bsd.port.mk targets do-something. Por exemplo, os comandos para extrair um port estão no target do-extract. Se você não está feliz com o target padrão, você pode conserta-lo redefinindo o do-something target em seu Makefile.
Nota: As ``principais'' targets (ex., extract, configure, etc.) não fazem nada mais que certificar todos os estágios acima daquele estão completos e chama os targets ou scripts reais, e eles não intended a ser mudados. Se você quer consertar a extração, conserte do-extract, mas nunca jamais toque extract!
Agora que você entendeu que está acontecendo quando o usuários digita make, deixe-nos ir através dos passos recomendados para criar o port perfeito.