O documento discute o uso de Makefiles para automatizar tarefas de compilação. Um Makefile é um arquivo que contém instruções para o programa make compilar arquivos-fonte em arquivos-objeto e executáveis. O documento explica como criar um Makefile simples para um projeto de exemplo e as vantagens de usar Makefiles para evitar compilações desnecessárias e facilitar tarefas rotineiras.
Usando o i report como gerador de relatórios para phpbrunocf007
O documento descreve como usar o iReport e PHPJasperXML para gerar relatórios em PDF a partir de dados do banco de dados MySQL usando PHP. O iReport é usado para criar o layout do relatório e PHPJasperXML converte o arquivo JRXML gerado pelo iReport em PDF. Um exemplo mostra como criar um relatório simples listando usuários e passar um parâmetro.
Este documento discute modularização e funções em PHP. Ele explica como dividir um problema principal em subproblemas menores através de módulos e como criar funções para encapsular código com um objetivo específico. Também aborda tópicos como escopo de variáveis, passagem de parâmetros e uso de formulários web com PHP.
O documento descreve a linguagem de programação PHP. 1) PHP é uma linguagem interpretada no servidor para criar scripts em páginas web. 2) O código PHP é interpretado no servidor antes de enviar a página HTML ao navegador. 3) Fatores como ser gratuita e compatível com bancos de dados e servidores web ajudaram no sucesso do PHP.
PHP é uma linguagem de programação interpretada livre originalmente usada para desenvolvimento de aplicações web dinâmicas. PHP permite misturar códigos HTML, JavaScript e PHP em um mesmo arquivo e é executado no servidor para gerar páginas dinâmicas. Variáveis em PHP não precisam ser declaradas e podem ser de diferentes tipos como inteiro, texto e vetor/matriz.
O documento apresenta os conteúdos do módulo 5 de Desenvolvimento de páginas web dinâmicas em PHP do curso de Técnico de Gestão e Programação de Sistemas Informáticos. São abordados conceitos básicos de PHP como variáveis, operadores, constantes e estruturas de dados.
Mini-curso realizado no CESOL 2009 em Fortaleza na UFC campos do PICI, ministrado por mim Targino Silveira.
Nesse mini-curso viso preparar as pessoas para iniciarem a fazer pequenas aplicações e ao terminarem o mini-curso já sabendo com incluir, editar, excluir, pesquisar registros; alterar templates, trabalhar com migrations e uma outra serie de procedimentos.
O documento apresenta uma introdução ao PHP, incluindo o que é PHP, para que serve e como funciona. Explica como o código PHP é interpretado dentro de páginas HTML para gerar conteúdo dinâmico. Também aborda variáveis, arrays, estruturas condicionais if/else e switch para controlar a execução de código.
1) O documento apresenta um curso sobre PHP, MySQL e MVC, abordando conceitos como linguagem, framework, banco de dados e arquitetura MVC. 2) É apresentado um exemplo simples de implementação de MVC em PHP sem frameworks. 3) O documento também discute conceitos da linguagem PHP como variáveis, tipos, controle de fluxo e orientação a objetos.
Usando o i report como gerador de relatórios para phpbrunocf007
O documento descreve como usar o iReport e PHPJasperXML para gerar relatórios em PDF a partir de dados do banco de dados MySQL usando PHP. O iReport é usado para criar o layout do relatório e PHPJasperXML converte o arquivo JRXML gerado pelo iReport em PDF. Um exemplo mostra como criar um relatório simples listando usuários e passar um parâmetro.
Este documento discute modularização e funções em PHP. Ele explica como dividir um problema principal em subproblemas menores através de módulos e como criar funções para encapsular código com um objetivo específico. Também aborda tópicos como escopo de variáveis, passagem de parâmetros e uso de formulários web com PHP.
O documento descreve a linguagem de programação PHP. 1) PHP é uma linguagem interpretada no servidor para criar scripts em páginas web. 2) O código PHP é interpretado no servidor antes de enviar a página HTML ao navegador. 3) Fatores como ser gratuita e compatível com bancos de dados e servidores web ajudaram no sucesso do PHP.
PHP é uma linguagem de programação interpretada livre originalmente usada para desenvolvimento de aplicações web dinâmicas. PHP permite misturar códigos HTML, JavaScript e PHP em um mesmo arquivo e é executado no servidor para gerar páginas dinâmicas. Variáveis em PHP não precisam ser declaradas e podem ser de diferentes tipos como inteiro, texto e vetor/matriz.
O documento apresenta os conteúdos do módulo 5 de Desenvolvimento de páginas web dinâmicas em PHP do curso de Técnico de Gestão e Programação de Sistemas Informáticos. São abordados conceitos básicos de PHP como variáveis, operadores, constantes e estruturas de dados.
Mini-curso realizado no CESOL 2009 em Fortaleza na UFC campos do PICI, ministrado por mim Targino Silveira.
Nesse mini-curso viso preparar as pessoas para iniciarem a fazer pequenas aplicações e ao terminarem o mini-curso já sabendo com incluir, editar, excluir, pesquisar registros; alterar templates, trabalhar com migrations e uma outra serie de procedimentos.
O documento apresenta uma introdução ao PHP, incluindo o que é PHP, para que serve e como funciona. Explica como o código PHP é interpretado dentro de páginas HTML para gerar conteúdo dinâmico. Também aborda variáveis, arrays, estruturas condicionais if/else e switch para controlar a execução de código.
1) O documento apresenta um curso sobre PHP, MySQL e MVC, abordando conceitos como linguagem, framework, banco de dados e arquitetura MVC. 2) É apresentado um exemplo simples de implementação de MVC em PHP sem frameworks. 3) O documento também discute conceitos da linguagem PHP como variáveis, tipos, controle de fluxo e orientação a objetos.
1) O documento descreve a construção de uma aplicação para gerenciar uma coleção de CDs usando o framework Zend.
2) As páginas da aplicação são organizadas em controllers e actions para adicionar, editar, remover e listar CDs.
3) Os templates de visão são criados e vinculados aos controllers e actions respectivos para separar a lógica da exibição.
1) O documento descreve uma aula sobre desenvolvimento web com Angular, incluindo a instalação das ferramentas necessárias e a criação de um projeto Angular simples para gerenciar listas de tarefas.
2) É apresentado um modelo de dados para armazenar as tarefas, um template HTML para exibir os dados e um componente para conectar o modelo ao template.
3) O fluxo básico de execução de uma aplicação Angular é explicado, ligando o bootstrap, componentes, templates e data binding.
O documento discute padrões de projeto para software orientado a objetos. Ele explica que padrões de projeto podem ajudar desenvolvedores a criar software mais flexível e reutilizável, definindo soluções comuns para problemas recorrentes de projeto. O documento também descreve alguns padrões específicos como Singleton, Facade e Abstract Factory.
Introdução ao desenvolvimento front end usando bootstrap e angular jsCloves Moreira Junior
O documento discute conceitos de front-end como MVC, MVP, MVVM e AngularJS. Explica que MVC separa a interface do usuário em Model, View e Controller, enquanto MVP usa Presenter no lugar de Controller. MVVM usa ViewModel para manter a View e Model sincronizados. AngularJS usa MVW, onde qualquer padrão pode ser usado.
Dev401 novos recursos do microsoft visual basic 2010Alexandre Tarifa
O documento resume as principais novidades da linguagem Visual Basic 2010, incluindo: (1) co-evolução com C# para receber novos recursos simultaneamente; (2) direcionamento da evolução da linguagem por Anders Hejlsberg; (3) recursos que melhoram a produtividade como implicit line continuation, auto-implemented properties e collection initializer; (4) suporte a lambda expressions, array literals e melhorias em parâmetros opcionais.
O documento discute Design Patterns, estruturas de projeto reutilizáveis em programação orientada a objetos. Apresenta o que são Design Patterns, incluindo sua popularização após o livro "Design Patterns" de 1994, e lista 23 padrões comuns. Exemplos de Factory Method, Adapter e Observer são explicados detalhadamente ilustrando suas características e aplicações.
O documento fornece instruções sobre como criar um objeto em PHP utilizando Orientação a Objetos. Ele explica o que é uma classe e como criar métodos dentro dela, além de mostrar um exemplo de classe "Usuario_dao" com métodos para gravar, alterar, listar e excluir usuários. O leitor é orientado a criar este objeto e testá-lo copiando arquivos de um sistema anterior.
O documento introduz as principais features do EcmaScript 6, como let e const para declaração de variáveis, default parameters, template literals, arrow functions, destructuring, export/import, spread operator e ternary operator. Apresenta também o Babel, um compilador usado para tornar o código compatível entre navegadores.
O documento descreve o padrão MVC (Model-View-Controller) e como aplicá-lo em aplicações Delphi para separar as camadas de apresentação, domínio e dados. Ele explica o que são as camadas Model, View e Controller no MVC e apresenta um exemplo simples de multiplicação para demonstrar como implementar cada parte e a comunicação entre elas.
O mercado de internet evolui em uma velocidade muito rápida, se não formos capazes de acompanhar as evoluções e apresentar inovações, ficamos para trás. Ruby e Rails vem trazer ao mundo do desenvolvimento web a produtividade e alegria necessária!
A linguagem C# aproveita conceitos de muitas outras linguagens,
mas especialmente de C++ e Java. Sua sintaxe é relativamente fácil, o que
diminui o tempo de aprendizado. Todos os programas desenvolvidos devem
ser compilados, gerando um arquivo com a extensão DLL ou EXE. Isso torna a
execução dos programas mais rápida se comparados com as linguagens de
script (VBScript , JavaScript) que atualmente utilizamos na internet
Este documento fornece instruções sobre programação em Assembly. Aborda os principais tópicos como registradores, instruções, estrutura de programas, criação de programas e exemplos.
Observable Binding Para Atualização na UI AndroidVinícius Thiengo
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/observable-binding-para-atualizacao-na-ui-android
Neste conjunto de slides vamos ao estudo dos tipos observáveis da biblioteca Data Binding. Você notará a facilidade de atualização dos elementos em tela quando utilizando esses tipos.
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?couponCode=OBSERVABLE_BINDING&persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
O documento fornece uma introdução ao framework ASP.NET MVC, descrevendo suas principais características e componentes, como Models, Views e Controllers. O autor também discute abordagens de desenvolvimento como Code First e Database First e ferramentas como Razor e HTML Helpers.
Este documento resume os principais conceitos de VBA no Excel, incluindo: (1) como gravar e executar a primeira macro, (2) como ver a sintaxe de uma macro gravada, e (3) os conceitos básicos de módulos, procedimentos, escopo e passagem de parâmetros.
O documento resume as principais características do framework Easy Framework: 1) É um framework MVC para PHP que facilita a construção de aplicações robustas e seguras; 2) Utiliza padrões como ORM e permite fácil integração com bancos de dados; 3) Fornece recursos como cache, segurança, internacionalização e suporte a aplicações RESTful.
O documento resume as principais funcionalidades do framework Rails para desenvolvimento web utilizando a linguagem Ruby, como a arquitetura MVC, convenções sobre configuração e padrão REST. Também apresenta os passos iniciais para criação de uma aplicação Rails para gerenciamento de finanças pessoais.
O documento apresenta um tutorial sobre shell script, abordando tópicos como:
1) Variáveis, operadores lógicos e a estrutura condicional IF;
2) Apresenta diversos comandos do shell como echo, read, sleep e operadores de redirecionamento;
3) Explica o uso de variáveis, operadores lógicos numéricos e alfanuméricos.
1) O documento descreve a construção de uma aplicação para gerenciar uma coleção de CDs usando o framework Zend.
2) As páginas da aplicação são organizadas em controllers e actions para adicionar, editar, remover e listar CDs.
3) Os templates de visão são criados e vinculados aos controllers e actions respectivos para separar a lógica da exibição.
1) O documento descreve uma aula sobre desenvolvimento web com Angular, incluindo a instalação das ferramentas necessárias e a criação de um projeto Angular simples para gerenciar listas de tarefas.
2) É apresentado um modelo de dados para armazenar as tarefas, um template HTML para exibir os dados e um componente para conectar o modelo ao template.
3) O fluxo básico de execução de uma aplicação Angular é explicado, ligando o bootstrap, componentes, templates e data binding.
O documento discute padrões de projeto para software orientado a objetos. Ele explica que padrões de projeto podem ajudar desenvolvedores a criar software mais flexível e reutilizável, definindo soluções comuns para problemas recorrentes de projeto. O documento também descreve alguns padrões específicos como Singleton, Facade e Abstract Factory.
Introdução ao desenvolvimento front end usando bootstrap e angular jsCloves Moreira Junior
O documento discute conceitos de front-end como MVC, MVP, MVVM e AngularJS. Explica que MVC separa a interface do usuário em Model, View e Controller, enquanto MVP usa Presenter no lugar de Controller. MVVM usa ViewModel para manter a View e Model sincronizados. AngularJS usa MVW, onde qualquer padrão pode ser usado.
Dev401 novos recursos do microsoft visual basic 2010Alexandre Tarifa
O documento resume as principais novidades da linguagem Visual Basic 2010, incluindo: (1) co-evolução com C# para receber novos recursos simultaneamente; (2) direcionamento da evolução da linguagem por Anders Hejlsberg; (3) recursos que melhoram a produtividade como implicit line continuation, auto-implemented properties e collection initializer; (4) suporte a lambda expressions, array literals e melhorias em parâmetros opcionais.
O documento discute Design Patterns, estruturas de projeto reutilizáveis em programação orientada a objetos. Apresenta o que são Design Patterns, incluindo sua popularização após o livro "Design Patterns" de 1994, e lista 23 padrões comuns. Exemplos de Factory Method, Adapter e Observer são explicados detalhadamente ilustrando suas características e aplicações.
O documento fornece instruções sobre como criar um objeto em PHP utilizando Orientação a Objetos. Ele explica o que é uma classe e como criar métodos dentro dela, além de mostrar um exemplo de classe "Usuario_dao" com métodos para gravar, alterar, listar e excluir usuários. O leitor é orientado a criar este objeto e testá-lo copiando arquivos de um sistema anterior.
O documento introduz as principais features do EcmaScript 6, como let e const para declaração de variáveis, default parameters, template literals, arrow functions, destructuring, export/import, spread operator e ternary operator. Apresenta também o Babel, um compilador usado para tornar o código compatível entre navegadores.
O documento descreve o padrão MVC (Model-View-Controller) e como aplicá-lo em aplicações Delphi para separar as camadas de apresentação, domínio e dados. Ele explica o que são as camadas Model, View e Controller no MVC e apresenta um exemplo simples de multiplicação para demonstrar como implementar cada parte e a comunicação entre elas.
O mercado de internet evolui em uma velocidade muito rápida, se não formos capazes de acompanhar as evoluções e apresentar inovações, ficamos para trás. Ruby e Rails vem trazer ao mundo do desenvolvimento web a produtividade e alegria necessária!
A linguagem C# aproveita conceitos de muitas outras linguagens,
mas especialmente de C++ e Java. Sua sintaxe é relativamente fácil, o que
diminui o tempo de aprendizado. Todos os programas desenvolvidos devem
ser compilados, gerando um arquivo com a extensão DLL ou EXE. Isso torna a
execução dos programas mais rápida se comparados com as linguagens de
script (VBScript , JavaScript) que atualmente utilizamos na internet
Este documento fornece instruções sobre programação em Assembly. Aborda os principais tópicos como registradores, instruções, estrutura de programas, criação de programas e exemplos.
Observable Binding Para Atualização na UI AndroidVinícius Thiengo
➙ Conteúdo completo, texto e vídeo, em: https://www.thiengo.com.br/observable-binding-para-atualizacao-na-ui-android
Neste conjunto de slides vamos ao estudo dos tipos observáveis da biblioteca Data Binding. Você notará a facilidade de atualização dos elementos em tela quando utilizando esses tipos.
➙ Para receber o conteúdo do blog em primeira mão, assine a lista de emails em: http://www.thiengo.com.br
Abraço.
▶ Treinamento oficial:
➙ Prototipagem Profissional de Aplicativos Android:
↳ https://www.udemy.com/android-prototipagem-profissional-de-aplicativos/?couponCode=OBSERVABLE_BINDING&persist_locale&locale=pt_BR
▶ Livros oficiais:
➙ Desenvolvedor Kotlin Android - Bibliotecas para o dia a dia:
↳ https://www.thiengo.com.br/livro-desenvolvedor-kotlin-android
➙ Receitas Para Desenvolvedores Android:
↳ https://www.thiengo.com.br/livro-receitas-para-desenvolvedores-android
➙ Refatorando Para Programas Limpos:
↳ https://www.thiengo.com.br/livro-refatorando-para-programas-limpos
▶ Redes:
➙ Udemy: https://www.udemy.com/user/vinicius-thiengo/?persist_locale&locale=pt_BR
➙ YouTube: https://www.youtube.com/user/thiengoCalopsita
➙ Facebook: https://www.facebook.com/thiengoCalopsita
➙ LinkedIn: https://www.linkedin.com/in/vin%C3%ADcius-thiengo-5179b180/
➙ GitHub: https://github.com/viniciusthiengo
➙ Twitter: https://twitter.com/thiengoCalops
➙ Google Plus: https://plus.google.com/+ThiengoCalopsita
▶ Blog App:
➙ https://play.google.com/store/apps/details?id=br.thiengocalopsita&hl=pt_BR
O documento fornece uma introdução ao framework ASP.NET MVC, descrevendo suas principais características e componentes, como Models, Views e Controllers. O autor também discute abordagens de desenvolvimento como Code First e Database First e ferramentas como Razor e HTML Helpers.
Este documento resume os principais conceitos de VBA no Excel, incluindo: (1) como gravar e executar a primeira macro, (2) como ver a sintaxe de uma macro gravada, e (3) os conceitos básicos de módulos, procedimentos, escopo e passagem de parâmetros.
O documento resume as principais características do framework Easy Framework: 1) É um framework MVC para PHP que facilita a construção de aplicações robustas e seguras; 2) Utiliza padrões como ORM e permite fácil integração com bancos de dados; 3) Fornece recursos como cache, segurança, internacionalização e suporte a aplicações RESTful.
O documento resume as principais funcionalidades do framework Rails para desenvolvimento web utilizando a linguagem Ruby, como a arquitetura MVC, convenções sobre configuração e padrão REST. Também apresenta os passos iniciais para criação de uma aplicação Rails para gerenciamento de finanças pessoais.
O documento apresenta um tutorial sobre shell script, abordando tópicos como:
1) Variáveis, operadores lógicos e a estrutura condicional IF;
2) Apresenta diversos comandos do shell como echo, read, sleep e operadores de redirecionamento;
3) Explica o uso de variáveis, operadores lógicos numéricos e alfanuméricos.
2. Makefile
Makefile
O que é um
Makefile ?
Vantagens
Mão na
massa...
Explicação
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 2
3. O que é um Makefile ?
Makefile
O que é um
Makefile ?
Vantagens
Mão na
massa...
Explicação
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 3
■ Makefile é um arquivo que contem uma série de intruções
de compilação
4. O que é um Makefile ?
Makefile
O que é um
Makefile ?
Vantagens
Mão na
massa...
Explicação
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 3
■ Makefile é um arquivo que contem uma série de intruções
de compilação
■ O arquivo Makefile é processado por um programa
denominado make
5. O que é um Makefile ?
Makefile
O que é um
Makefile ?
Vantagens
Mão na
massa...
Explicação
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 3
■ Makefile é um arquivo que contem uma série de intruções
de compilação
■ O arquivo Makefile é processado por um programa
denominado make
■ As linhas de comando existentes no arquivo Makefile,
podem realizar varias tarefas, tais como:
◆ Criação de diretorios
6. O que é um Makefile ?
Makefile
O que é um
Makefile ?
Vantagens
Mão na
massa...
Explicação
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 3
■ Makefile é um arquivo que contem uma série de intruções
de compilação
■ O arquivo Makefile é processado por um programa
denominado make
■ As linhas de comando existentes no arquivo Makefile,
podem realizar varias tarefas, tais como:
◆ Criação de diretorios
◆ Limpeza de arquivos temporarios
7. O que é um Makefile ?
Makefile
O que é um
Makefile ?
Vantagens
Mão na
massa...
Explicação
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 3
■ Makefile é um arquivo que contem uma série de intruções
de compilação
■ O arquivo Makefile é processado por um programa
denominado make
■ As linhas de comando existentes no arquivo Makefile,
podem realizar varias tarefas, tais como:
◆ Criação de diretorios
◆ Limpeza de arquivos temporarios
◆ Execução de comandos
8. Vantagens
Makefile
O que é um
Makefile ?
Vantagens
Mão na
massa...
Explicação
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 4
■ A linguagem Make, é uma linguagem script comum.
◆ Mas a linguagem make é muito mais utilizada para o
tratamento de compilação de projetos.
■ Evita a compilação inteira de grandes projetos.
■ Facilita tarefas rotineiras.
Pequeno exemplo de um script em Make:
a=10
b=10
soma=$ (( $a + $b ))
echo ${soma}
9. Mão na massa...
Makefile
Mão na
massa...
A primeira
vez...
main.c
operacoes.c
comum.h
operacoes.h
Makefile
Explicação
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 5
10. A primeira vez...
Makefile
Mão na
massa...
A primeira
vez...
main.c
operacoes.c
comum.h
operacoes.h
Makefile
Explicação
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 6
■ Para iniciarmos com a construção do MakeFile,
precisaremos criar um simples projetinho, onde este
simples projeto vai trabalhar com 4 arquivos, 2 headers e 2
arquivos fontes.
◆ main.c
◆ operacoes.c
◆ comum.h
◆ operacoes.h
15. Makefile
Makefile
Mão na
massa...
A primeira
vez...
main.c
operacoes.c
comum.h
operacoes.h
Makefile
Explicação
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 11
a l l : exemplo
exemplo : operacoes . o main . o
gcc −o exemplo . exe main . o operacoes . o
operacoes . o : operacoes . c
gcc −o operacoes . o −c operacoes . c −W −Wall
main . o : main . c
gcc −o main . o −c main . c −W −Wall
clean :
rm −r f ∗. o
Para compilar, basta abrir o terminal ou cmd, navegar até o
diretorio do projeto, e digitar: make
17. Sintaxe
Makefile
Mão na
massa...
Explicação
Sintaxe
Chamando
uma regra
Criando
variaveis
Variaveis
’automaticas’
Variaveis
internas
Regra
.PHONY
Re-escrevendo
o Makefile 1
Re-escrevendo
o Makefile 2
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 13
Sintaxe da linguagem make:
objetivo : ␣[<dep1>␣ [ <... >]]
<tab>comando
<tab>comando
<tab > . . .
A regra, ou também chamado de objetivo, "all", é a primeira
regra a ser processada pelo make, quando o arquivo Makefile é
aberto pelo make, e suas dependencias são processadas na
ordem colocada pelo programador.
a l l : criaDir msgOi
msgOi :
@echo Oi : )
criaDir :
@mkdir exemplo
18. Chamando uma regra
Makefile
Mão na
massa...
Explicação
Sintaxe
Chamando
uma regra
Criando
variaveis
Variaveis
’automaticas’
Variaveis
internas
Regra
.PHONY
Re-escrevendo
o Makefile 1
Re-escrevendo
o Makefile 2
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 14
As regras criadas no arquivo makefile podem ser chamadas
por linha de comando, para realizar está chamada, pasta
apenas passar o nome da regra que você deseja executar, como
argumento do make.
make clean
make i n s t a l l
make MkDirObj
make informacoes
. . .
executando o make, utilizando como parametro alguma regra
citada dentro do makefile que o make vai executar, apenas a
regra é executada, considerando também, suas devidas
dependencias.
19. Criando variaveis
Makefile
Mão na
massa...
Explicação
Sintaxe
Chamando
uma regra
Criando
variaveis
Variaveis
’automaticas’
Variaveis
internas
Regra
.PHONY
Re-escrevendo
o Makefile 1
Re-escrevendo
o Makefile 2
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 15
■ Sintaxe
◆ <NOME>=<VALOR>
■ Utilização da variavel
◆ $(<NOME>)
Exemplo:
CC=gcc
CFLAGS=−W −Wall
a l l : exc
exc : ope . o main . o
$ (CC) −o exc . exe main . o ope . o
ope . o : ope . c
$ (CC) −o ope . o −c ope . c $ (CFLAGS)
. . .
20. Variaveis ’automaticas’
Makefile
Mão na
massa...
Explicação
Sintaxe
Chamando
uma regra
Criando
variaveis
Variaveis
’automaticas’
Variaveis
internas
Regra
.PHONY
Re-escrevendo
o Makefile 1
Re-escrevendo
o Makefile 2
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 16
■ Com a definição de uma variavel chamada SRC, podemos
dizer para o make, quais são os arquivos fonte que iremos
compilar, e juntamente com a definição desta variavel,
precisamos dizer para o make, quais são os arquivos
objetos.
◆ SRC = main.c operacao.c
OBJ = main.o operacao.o
21. Variaveis ’automaticas’
Makefile
Mão na
massa...
Explicação
Sintaxe
Chamando
uma regra
Criando
variaveis
Variaveis
’automaticas’
Variaveis
internas
Regra
.PHONY
Re-escrevendo
o Makefile 1
Re-escrevendo
o Makefile 2
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 16
■ Com a definição de uma variavel chamada SRC, podemos
dizer para o make, quais são os arquivos fonte que iremos
compilar, e juntamente com a definição desta variavel,
precisamos dizer para o make, quais são os arquivos
objetos.
◆ SRC = main.c operacao.c
OBJ = main.o operacao.o
■ Existe uma forma para simplificar este sistema onde não
se torna necessario, literalmente, escrever o nome do
arquivo objeto para o make, neste outro formato, apenas
dizemos que o OBJ(s) é igual ao SRC mas com a extenção
diferente.
◆ SRC = main.c operacao.c
OBJ = $(SRC:.c=.o)
22. Variaveis ’automaticas’
Makefile
Mão na
massa...
Explicação
Sintaxe
Chamando
uma regra
Criando
variaveis
Variaveis
’automaticas’
Variaveis
internas
Regra
.PHONY
Re-escrevendo
o Makefile 1
Re-escrevendo
o Makefile 2
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 16
■ Com a definição de uma variavel chamada SRC, podemos
dizer para o make, quais são os arquivos fonte que iremos
compilar, e juntamente com a definição desta variavel,
precisamos dizer para o make, quais são os arquivos
objetos.
◆ SRC = main.c operacao.c
OBJ = main.o operacao.o
■ Existe uma forma para simplificar este sistema onde não
se torna necessario, literalmente, escrever o nome do
arquivo objeto para o make, neste outro formato, apenas
dizemos que o OBJ(s) é igual ao SRC mas com a extenção
diferente.
◆ SRC = main.c operacao.c
OBJ = $(SRC:.c=.o)
23. Variaveis internas
Makefile
Mão na
massa...
Explicação
Sintaxe
Chamando
uma regra
Criando
variaveis
Variaveis
’automaticas’
Variaveis
internas
Regra
.PHONY
Re-escrevendo
o Makefile 1
Re-escrevendo
o Makefile 2
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 17
O make possui ’ferramentas’ para facilitar o desenvolvimento
de um make, que tenha que tratar de muitos arquivos, por
exemplo, um projeto com 500 arquivos.
$@ # nome da regra
$< # Nome da primeira dependencia
$^ # Lista de dependencias
$? # Lista de dependencias mais recente
$∗ # Nome do aqruivo , sem s u f i x o
Existem as chamadas regras de interferencia, que são regras
genericas do make
■ .c.o : # Este comando diz para o make que o arquivo .o
vai ser gerado apartir do arquivo .c
■ %.o: %c # Com este comando, a linha que contem o
objetivo : dependencia pode ser modificada para esta
regra.
24. Regra .PHONY
Makefile
Mão na
massa...
Explicação
Sintaxe
Chamando
uma regra
Criando
variaveis
Variaveis
’automaticas’
Variaveis
internas
Regra
.PHONY
Re-escrevendo
o Makefile 1
Re-escrevendo
o Makefile 2
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 18
.PHONY, com esta regra, temos a possiblidade de evitar
conflitos. Ela é utilizada para tratar regras que não utilizem
nenhuma dependencia, um exemplo disto é a regra clean.
A sintaxe da regra .PHONY é:
.PHONY: <regra1> [< regras . . . > ]
Com esta regra, caso tivermos um arquivo chamado clean na
pasta, e executarmos o comando make clean, o make vai
realizar a operação clean definida no make, e não, tentar
compilar o arquivo clean.
25. Re-escrevendo o Makefile 1
Makefile
Mão na
massa...
Explicação
Sintaxe
Chamando
uma regra
Criando
variaveis
Variaveis
’automaticas’
Variaveis
internas
Regra
.PHONY
Re-escrevendo
o Makefile 1
Re-escrevendo
o Makefile 2
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 19
Agora que já temos conhecimentos sobre as principais regras
do Makefile, podemos pegar o makefile escrito para exemplo.
Então, vamos definir as variaveis do nosso makefile
CC=gcc
CFLAGS=−W −Wall
EXEC=exemplo
SRC= $ ( wildcard ∗. c )
OBJ= $ (SRC : . c=.o )
O comando wildcard permite a utilização de caracteres joker
na definição de variaveis.
26. Re-escrevendo o Makefile 2
Makefile
Mão na
massa...
Explicação
Sintaxe
Chamando
uma regra
Criando
variaveis
Variaveis
’automaticas’
Variaveis
internas
Regra
.PHONY
Re-escrevendo
o Makefile 1
Re-escrevendo
o Makefile 2
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 20
exemplo : $ (OBJ)
# $@ = exemplo :
# $^ = operacoes . o main . o
$ (CC) −o $@ $^
# main . o : main . c
%.o : %.c
$ (CC) −o $@ −c $< $ (CFLAGS)
.PHONY: clean
clean :
rm −r f ∗. o
Com este código, temos um makefile capaz de compilar todos
os arquivos .c que estão no diretorio.
28. Makefile para latex
Makefile
Mão na
massa...
Explicação
Projeto Latex
Makefile para
latex
O makefile
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 22
Com o makefile somos capazes de compilar, processar,
qualquer tipo de linha de comando de uma forma mais simples
e eficaz. Como os arquivos latex são compilados pelo latex
então somos capaz de compilar códigos latex com o makefile
também.
Detalhes sobre o processador LATEX
■ O processador do LATEXconverte o código LATEXpara DVI
■ A conversão do código DVI para PDF é realizada nas
seguintes etapas:
◆ DVI => PS
◆ PS => PDF
29. O makefile
Makefile
Mão na
massa...
Explicação
Projeto Latex
Makefile para
latex
O makefile
Projeto
Allegro
Referencias
MakeFiles 13 de setembro de 2013 slide 23
_LATEX = latex
_DVI2PS = dvips
_PS2PDF = ps2pdf
_DVN = exemploLatex
_PSN = $ (_DVN) . ps
PDF_NAME = latexMakefile . pdf
a l l : $ (PDF_NAME) clean
$ (PDF_NAME) : lt x . tex
$ (_LATEX) −−job−name=$ (_DVN) $<
$ (_DVI2PS) $ (_DVN) . dvi −o $(_PSN)
$ (_PS2PDF) $ (_PSN)
clean :
rm −r f ∗. aux ∗. dvi ∗. log ∗. ps
31. Projeto
Makefile
Mão na
massa...
Explicação
Projeto Latex
Projeto
Allegro
Projeto
Makefile
Referencias
MakeFiles 13 de setembro de 2013 slide 25
■ Para apresentar a utilização de libs e como ela é tratada
no makefile, iremos criar um projeto utilizando a livraria
Allegro 5.x.
■ Para este projeto, foi criado 3 arquivos fonte: main.c,
init.c e comum.h
O makefile para este projeto, pode ser feito baseado no
makefile apresentado no primeiro exemplo de makefile. A
diferença é que neste makefile iremos criar uma variavel
chamada LIBS, que vai representar as libs que vão ser
linkadas juntamente com o projeto.
LIBS=−la lle g r o _pr im it iv e s