Muito disso é feito com autoconf
. Eu não tenho nenhum tutorial em particular para recomendar (além da documentação oficial), mas você precisará de um e é isso que você quer procurar. "Autoconf" refere-se coloquialmente a um conjunto de ferramentas, incluindo 'automake'.
Eu não fiz isso por um tempo, mas vou tentar esboçar o processo a partir das minhas anotações:
-
Para cada diretório de origem (não coloque suas fontes no nível superior, coloque-as em subdiretórios), é necessário criar um Makefile.am
; isso segue as regras para um makefile normal, mas não inclui destinos de compilação e, em vez disso, define alguns destinos e variáveis seguindo um esquema de nomenclatura específico para o processo autoconf. Isso será processado por automake
.
-
No nível superior, você precisa criar um arquivo configure.ac
. A ferramenta autoscan
pode fazer isso para você e, em seguida, você pode ajustá-la.
-
Você precisa executar, em ordem, a partir do diretório de nível superior: aclocal
, automake -ac
, autoheader
(e possivelmente automake -ac
novamente) e, em seguida, autoconf
. Todos eles têm páginas de manual que explicam seu propósito.
Presto! Seu pacote está pronto.
is it a hard thing to learn it?
É definitivamente tedioso e eu não chamaria isso de super fácil, não. Se o seu projeto é pequeno e você está apenas segmentando plataformas específicas, você pode criar um script de verificação de dependência que possa ser executado a partir do makefile.