Escolar Documentos
Profissional Documentos
Cultura Documentos
Makefile
O que um
Makefile ?
Vantagens
Mo na
massa...
Explicao
Projeto Latex
Makefile
Projeto
Allegro
Referencias
MakeFiles
13 de setembro de 2013
slide 2
O que um Makefile ?
Makefile
O que um
Makefile ?
Vantagens
Mo na
massa...
Explicao
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles
13 de setembro de 2013
slide 3
O que um Makefile ?
Makefile
O que um
Makefile ?
Vantagens
Mo na
massa...
Explicao
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles
13 de setembro de 2013
slide 3
O que um Makefile ?
Makefile
O que um
Makefile ?
Vantagens
Mo na
massa...
Explicao
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles
Criao de diretorios
13 de setembro de 2013
slide 3
O que um Makefile ?
Makefile
O que um
Makefile ?
Vantagens
Mo na
massa...
Explicao
Projeto Latex
Projeto
Allegro
Referencias
Criao de diretorios
MakeFiles
13 de setembro de 2013
slide 3
O que um Makefile ?
Makefile
O que um
Makefile ?
Vantagens
Mo na
massa...
Explicao
Projeto Latex
Projeto
Allegro
Referencias
Criao de diretorios
Execuo de comandos
MakeFiles
13 de setembro de 2013
slide 3
Vantagens
Makefile
O que um
Makefile ?
Vantagens
Mo na
massa...
Explicao
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles
13 de setembro de 2013
slide 4
Makefile
Mo na
massa...
A primeira
vez...
main.c
operacoes.c
comum.h
Mo na massa...
operacoes.h
Makefile
Explicao
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles
13 de setembro de 2013
slide 5
A primeira vez...
Makefile
Mo na
massa...
A primeira
vez...
main.c
operacoes.c
comum.h
operacoes.h
Makefile
Explicao
Projeto Latex
Projeto
Allegro
main.c
operacoes.c
comum.h
operacoes.h
Referencias
MakeFiles
13 de setembro de 2013
slide 6
main.c
Makefile
Mo na
massa...
A primeira
vez...
main.c
operacoes.c
comum.h
operacoes.h
Makefile
Explicao
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles
13 de setembro de 2013
slide 7
operacoes.c
Makefile
Mo na
massa...
A primeira
vez...
main.c
operacoes.c
comum.h
operacoes.h
Makefile
Explicao
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles
13 de setembro de 2013
slide 8
comum.h
Makefile
Mo na
massa...
A primeira
vez...
#i f n d e f _H_COMUM
#define _H_COMUM
main.c
operacoes.c
comum.h
operacoes.h
Makefile
Explicao
Projeto Latex
#endif
Projeto
Allegro
Referencias
MakeFiles
13 de setembro de 2013
slide 9
operacoes.h
Makefile
Mo na
massa...
A primeira
vez...
#i f n d e f _H_OPERACOES
#define _H_OPERACOES
main.c
operacoes.c
comum.h
operacoes.h
Makefile
Explicao
Projeto Latex
#endif
Projeto
Allegro
Referencias
MakeFiles
13 de setembro de 2013
slide 10
Makefile
Makefile
Mo na
massa...
A primeira
vez...
main.c
operacoes.c
comum.h
a l l : exemplo
exemplo : o p e r a c o e s . o main . o
g c c o exemplo . exe main . o o p e r a c o e s . o
operacoes.h
Makefile
Explicao
Projeto Latex
Projeto
Allegro
Referencias
operacoes . o : operacoes . c
g c c o o p e r a c o e s . o c o p e r a c o e s . c W Wall
main . o : main . c
g c c 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
MakeFiles
13 de setembro de 2013
slide 11
Makefile
Mo na
massa...
Explicao
Sintaxe
Chamando
uma regra
Criando
variaveis
Variaveis
automaticas
Variaveis
internas
Regra
.PHONY
Re-escrevendo
o Makefile 1
Re-escrevendo
o Makefile 2
Explicao
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles
13 de setembro de 2013
slide 12
Sintaxe
Makefile
Mo na
massa...
Explicao
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
13 de setembro de 2013
slide 13
clean
install
MkDirObj
informacoes
MakeFiles
13 de setembro de 2013
slide 14
Criando variaveis
Makefile
Mo na
massa...
Sintaxe
<NOME>=<VALOR>
Explicao
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
Utilizao da variavel
$(<NOME>)
Exemplo:
CC=g c c
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)
...
MakeFiles
13 de setembro de 2013
slide 15
Variaveis automaticas
Makefile
Mo na
massa...
Explicao
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
Variaveis automaticas
Makefile
Mo na
massa...
Explicao
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
slide 16
Variaveis automaticas
Makefile
Mo na
massa...
Explicao
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
slide 16
Variaveis internas
Makefile
Mo na
massa...
Explicao
Sintaxe
Chamando
uma regra
Criando
variaveis
Variaveis
automaticas
Variaveis
internas
Regra
.PHONY
Re-escrevendo
o Makefile 1
Re-escrevendo
o Makefile 2
#
#
#
#
#
nome da r e g r a
Nome da p r i m e i r a d e p e n d e n c i a
L i s t a de d e p e n d e n c i a s
L i s t a de d e p e n d e n c i a s mais r e c e n t e
Nome do a q r u i v o , sem s u f i x o
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles
13 de setembro de 2013
slide 17
Regra .PHONY
Makefile
Mo na
massa...
Explicao
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
Re-escrevendo o Makefile 1
Makefile
Mo na
massa...
Explicao
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
Re-escrevendo o Makefile 2
Makefile
Mo na
massa...
Explicao
Sintaxe
Chamando
uma regra
Criando
variaveis
Variaveis
automaticas
Variaveis
internas
Regra
.PHONY
Re-escrevendo
o Makefile 1
Re-escrevendo
o Makefile 2
exemplo : $ (OBJ)
# $@ = exemplo :
# $^ = o p e r a c o e s . o main . o
$ (CC) o $@ $^
# main . o : main . c
%.o : %. c
$ (CC) o $@ c $< $ (CFLAGS)
.PHONY: c l e a n
Projeto Latex
Projeto
Allegro
Referencias
clean :
rm r f . o
Com este cdigo, temos um makele capaz de compilar todos
os arquivos .c que esto no diretorio.
MakeFiles
13 de setembro de 2013
slide 20
Makefile
Mo na
massa...
Explicao
Projeto Latex
Makefile para
latex
O makefile
Projeto Latex
Projeto
Allegro
Referencias
MakeFiles
13 de setembro de 2013
slide 21
DVI => PS
PS => PDF
MakeFiles
13 de setembro de 2013
slide 22
O makefile
Makefile
Mo na
massa...
Explicao
Projeto Latex
Makefile para
latex
O makefile
Projeto
Allegro
_LATEX = l a t e x
_DVI2PS = d v i p s
_PS2PDF = ps 2 pdf
_DVN = exemploLatex
_PSN = $ (_DVN) . ps
PDF_NAME = l a t e x M a k e f i l e . pdf
Referencias
a l l : $ (PDF_NAME) c l e a n
$ (PDF_NAME) : l t x . t e x
$ (_LATEX) jobname=$ (_DVN) $<
$ (_DVI2PS) $ (_DVN) . d v i o $ (_PSN)
$ (_PS2PDF) $ (_PSN)
clean :
rm r f . aux . d v i . l o g . ps
MakeFiles
13 de setembro de 2013
slide 23
Makefile
Mo na
massa...
Explicao
Projeto Latex
Projeto
Allegro
Projeto Allegro
Projeto
Makefile
Referencias
MakeFiles
13 de setembro de 2013
slide 24
Projeto
Makefile
Mo na
massa...
Explicao
Projeto Latex
Projeto
Allegro
Projeto
Makefile
Referencias
MakeFiles
13 de setembro de 2013
slide 25
Makefile
Makefile
Mo na
massa...
Explicao
Projeto Latex
Projeto
Allegro
Projeto
Makefile
CC=g c c
CFLAGS=W Wall
EXEC=ExemploAllegro
SRC= $ ( w i l d c a r d . c )
OBJ= $ (SRC : . c =.o )
LIBS=l a l l e g r o _ p r i m i t i v e s
Referencias
a l l : $ (EXEC)
$ (EXEC) : $ (OBJ)
$ (CC) o $@ $^
%.o : %. c
$ (CC) o $@ c $< $ (CFLAGS) $ ( LIBS )
...
MakeFiles
13 de setembro de 2013
slide 26
Makefile
Mo na
massa...
Explicao
Projeto Latex
Projeto
Allegro
Referencias
Referencias
Referencias
GNU
MakeFiles
13 de setembro de 2013
slide 27
Referencias GNU
Makefile
1 http://www.gnu.org/software/make/manual/make.pdf
Mo na
massa...
Explicao
Projeto Latex
Projeto
Allegro
Referencias
Referencias
GNU
MakeFiles
13 de setembro de 2013
slide 28