Make
Origem: Wikipédia, a enciclopédia livre.
- O título dado a este artigo encontra-se incorrecto devido a limitações técnicas. O título correcto é make .
O make é um programa de computador concebido para compilar automaticamente o código fonte de um programa. O make utiliza instruções contidas num ficheiro chamado "Makefile" e é capaz de resolver as dependências do programa que se pretende compilar.
O ficheiro "Makefile" é constituido por comandos como os seguintes:
foo.o: foo.c foo.h bar.h gcc -o foo.o foo.c logobig.ppm: logo.pov $(POVRAY) logo.pov -k0 -o logobig.ppm
O primeiro comando ordena a recompilação do ficheiro foo.o se um dos ficheiros foo.c, foo.h ou bar.h for mais recente que foo.o. Diz-se que foo.o depende de foo.c, foo.h ou bar.h.
O segundo comando estabelece uma dependência de logobig.ppm em relação a logo.pov e ordena a compilação do ficheiro logobig.ppm através do programa POV-Ray.
Os ficheiros Makefile são utilizados para compilar programas, mas podem ser utilizados em qualquer situação em que alguns ficheiros são produzidos a partir de outros através de programa que podem ser executados a partir da linha de comandos.
Índice |
[editar] Um exemplo de um ficheiro makefile
# Specify compiler CC = g++ # Specify compiler options CFLAGS = -g LDFLAGS = -L/usr/openwin/lib LDLIBS = -lX11 -lXext # Needed to recognize .cpp as a file suffix .SUFFIXES: $(SUFFIXES) .cpp # Executable name PROG = life # List of object file needed for the final program OBJS = main.o window.o Board.o Life.o BoundedBoard.o all: $(PROG) # Program compilation and linking steps $(PROG): $(OBJS) $(CC) $(CFLAGS) $(LDFLAGS) $(LDLIBS) -o $(PROG) $(OBJS) .cpp.o: $(CC) $(CFLAGS) -c $*.cpp
[editar] Como obter o Make
Os utilizadores do GNU/Linux devem recorrer ao endereço seguinte: http://www.gnu.org/directory/.
[editar] Alternativas
- O makepp deriva de (GNU) make, mas tem adicionalmente um analisador extensível de comandos e ficheiros incluídos a fim de reconhecer automaticamente as dependências implícitas. As opções do comando mudadas e outras influências são reconhecidas. O grande problema de make recursif pode ser contorneado facilmente, para garantir uma construção correcta. Além disso o Perl está disponível em todos os níveis. http://makepp.sf.net