CI067 - Oficina de Computação
Exercícios # 06
2º semestre 2014

Makefiles e Bibliotecas.


PARTE I - Atividades em Laboratório

 
  1. Em cada programa abaixo, analise os módulos, estabelecendo as dependências entre os diversos arquivos e produza um arquivo Makefile que gere o programa executável:

Parte II - Exercícios

 
  1. Fazer uma biblioteca chamada util de forma que
    • Ela possa ser utilizada na compilação de programas através da opções -I e -l do comando gcc(1).
    • Esta biblioteca deve ser de propósito geral, isto é, as funções devem ser genéricas o bastante para serem úteis a quaisquer programas que você esteja fazendo ou venha a fazer;
    • As funções que devem ser definidas nesta biblioteca são:
      void nflushin(FILE *stream)
      Esvazia o fluxo de entrada indicado pelo parâmetro stream;
      char *ngets (char *buf, int maxtam, FILE *stream)
      Mesmo que fgets(), mas retira do string lido em buf o caracter ' $ \backslash n$'  final que fgets() lê;
      char *ngetval(char *prompt, int maxtam)
      Apresenta a mensagem prompt na saida padrão (stdout) e retorna o string recebido pela entrada padrão (stdin), via função ngets (). O parâmetro maxtam indica o tamanho máximo da string a ser lida;
      char *nstrtoupper(char *string)
      Converte todos os caracteres do parâmetro string para MAIÚSCULA;
      char *nstrtolower(char *string)
      Converte todos os caracteres do parâmetro string para minúscula.
      char *nstrcapitalize(char *string)
      Converte o 1º  caracter do parâmetro string para maiúscula.
      char *nstrtitle(char *string)
      Converte os 1º caracteres de cada palavra do parâmetro string para maiúscula.
    • Guia para construção de Bibliotecas;
    • A construção da biblioteca deve ser definida através de um arquivo Makefile apropriado.
      Neste arquivo, além dos targets de limpeza e faxina do diretório, deve constar também um target chamado instala, que após a geração da biblioteca a instale (copie) em um diretório apropriado em sua área, específico para ter bibliotecas para uso por outros programas (por exemplo, HOME/lib e HOME/include).
      Após ser gerada a biblioteca, uma mensagem deve ser emitida ao usuário orientando sobre o uso da biblioteca em compilação e na execução de programas que a usem.
      Você pode obter um modelo básico de Makefile aqui.



Armando Luiz Nicolini Delgado
2014-09-23