diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..ffbaec83e45bb14b77f061f783b203ffe6a9ec59
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,2 @@
+*.o
+neon
diff --git a/Fase1.h b/Fase1.h
index 857a1347883e79c32539b2b683d72ad3c30dd8cd..222ac3f7a243515fe4f9dcd3bf6cdb1ced6c7026 100644
--- a/Fase1.h
+++ b/Fase1.h
@@ -1,3 +1,13 @@
+#ifndef ALLEGRO
+#include <allegro5/allegro.h>
+#include <allegro5/allegro_audio.h>
+#include <allegro5/allegro_font.h>
+#include <allegro5/allegro_image.h>
+#include <allegro5/allegro_native_dialog.h>
+#include <allegro5/allegro_primitives.h>
+#include <allegro5/allegro_ttf.h>
+#endif
+
 void fase1(Window win,Magia fireball[4][2],ALLEGRO_FONT *font5,int explox[4][2],int exploy[4][2],Pessoa *p,Sprite s)
 {
 	char** matriz;
diff --git a/colisao.h b/colisao.h
index 439a22cf6e4e6c9d5a9a528eb52d43aab76e9285..db6c3dd43f7514a31f9a8a5c9eb8235b5f916131 100644
--- a/colisao.h
+++ b/colisao.h
@@ -6,6 +6,7 @@
 #include <string.h>
 
 /* Allegro */
+#ifndef ALLEGRO
 #include <allegro5/allegro.h>
 #include <allegro5/allegro_audio.h>
 #include <allegro5/allegro_font.h>
@@ -13,6 +14,7 @@
 #include <allegro5/allegro_native_dialog.h>
 #include <allegro5/allegro_primitives.h>
 #include <allegro5/allegro_ttf.h>
+#endif
 
 //ALLEGRO_FONT *font5;
 
diff --git a/imprime.h b/imprime.h
index ef3de9a96830d4e295b6a4f0f5261f8f8a956bd4..4df56f90681f128cfaf14a962c6d45dcae937317 100644
--- a/imprime.h
+++ b/imprime.h
@@ -3,6 +3,7 @@
 #include <string.h>
 
 /* Allegro */
+#ifndef ALLEGRO
 #include <allegro5/allegro.h>
 #include <allegro5/allegro_audio.h>
 #include <allegro5/allegro_font.h>
@@ -10,6 +11,7 @@
 #include <allegro5/allegro_native_dialog.h>
 #include <allegro5/allegro_primitives.h>
 #include <allegro5/allegro_ttf.h>
+#endif
 
 #include "colisao.h"
 
diff --git a/makefile b/makefile
index e3f175fe2721f0f90767cc78a73d02d939e74ac2..75e926ae49a4ed3babb0bb784c45ff091ebaa40f 100644
--- a/makefile
+++ b/makefile
@@ -1,111 +1,22 @@
-# nome da biblioteca, usado para gerar o arquivo libnome.a
-LIBNOME = neon
+CC = g++
+CFLAGS = -g
 
-# nome da biblioteca 2, usado para gerar o arquivo libnome2.a
-LIBNOME2 = grafico
+INCL = -I./
 
-# nome da biblioteca 3, usado para gerar o arquivo libnome3.a
-LIBNOME3 = imprime
+DEPS = Fase1.h colisao.h grafico.h ia.h imprime.h keys.h magia.h map.h menu.h neon.h
 
-# nome da biblioteca 4, usado para gerar o arquivo libnome4.a
-LIBNOME4 = colisao
-
-# nome da biblioteca 5, usado para gerar o arquivo libnome5.a
-LIBNOME5 = keys
-
-# nome da biblioteca 6, usado para gerar o arquivo libnome6.a
-LIBNOME6 = ia
-
-# nome da biblioteca 7, usado para gerar o arquivo libnome7.a
-LIBNOME7 = magia
-
-# nome da biblioteca 7, usado para gerar o arquivo libnome7.a
-LIBNOME8 = map
-
-# nome de todas as bibliotecas
-LIBS = neon.a grafico.a imprime.a colisao.a keys.a ia.a magia.a map.a
-
-# nome do arquivo header com as declarações da biblioteca
-INCFILES = neon.h Fase1.h grafico.h menu.h keys.h imprime.h colisao.h ia.h magia.h map.h
-
-# modulos que contém as funções da biblioteca
-LIBOBJ = neon.o grafico.o menu.o keys.o imprime.o colisao.o ia.o magia.o map.o
-
-# diretorio base onde estarão os diretórios de biblioteca
-PREFIX = ./
-
-# diretorio onde ficam os .h's de bibliotecas
-INCDIR = $(PREFIX)include
-
-# diretorio onde ficam bibliotecas
-LIBDIR = $(PREFIX)lib
-
-# diretorio onde fica o arquivo executavel
-EXECDIR = $(PREFIX)bin/
+OBJ = neon.o grafico.o imprime.o colisao.o keys.o ia.o magia.o map.o menu.o
 
 ALLEGRO = `pkg-config --libs allegro-5.0 allegro_image-5.0 allegro_primitives-5.0 allegro_font-5.0 allegro_ttf-5.0 allegro_dialog-5.0 allegro_audio-5.0`
 
-LIBDIR_GRAPH = /home
-
-INCDIR_GRAPH = /home
-
-INCS = -I $(INCDIR) -I $(INCDIR_GRAPH)
-
-LIBS = -L $(LIBDIR) -L $(LIBDIR_GRAPH)
-
-
-CC = g++ -g
-AR = ar -rcu
-INSTALL = install
-
-
-all : install neon
-
-%.o : %.c %.h
-	$(CC) -c $(INCS) $<
-
-#%.a : $(LIBOBJ)
-#	$(AR) $@ $?
-#	ranlib $@
-
-lib$(LIBNOME).a : $(LIBOBJ)
-	$(AR) $@ $?
-	ranlib $@
-
-lib$(LIBNOME2).a : $(LIBOBJ)
-	$(AR) $@ $?
-	ranlib $@
-
-lib$(LIBNOME3).a : $(LIBOBJ)
-	$(AR) $@ $?
-	ranlib $@
-
-lib$(LIBNOME4).a : $(LIBOBJ)
-	$(AR) $@ $?
-	ranlib $@
-
-lib$(LIBNOME5).a : $(LIBOBJ)
-	$(AR) $@ $?
-	ranlib $@
-
-lib$(LIBNOME6).a : $(LIBOBJ)
-	$(AR) $@ $?
-	ranlib $@
-
-lib$(LIBNOME7).a : $(LIBOBJ)
-	$(AR) $@ $?
-	ranlib $@
-
-lib$(LIBNOME8).a : $(LIBOBJ)
-	$(AR) $@ $?
-	ranlib $@
+neon: $(OBJ)
+	$(CC) $(CFLAGS) -o $@ $^ $(ALLEGRO)
 
-install : lib$(LIBNOME).a lib$(LIBNOME2).a lib$(LIBNOME3).a lib$(LIBNOME4).a lib$(LIBNOME5).a lib$(LIBNOME6).a lib$(LIBNOME7).a lib$(LIBNOME8).a Fase1.h
-	$(INSTALL) $^ $(LIBDIR)
-	$(INSTALL) $(INCFILES) $(INCDIR)
+%.o: %.c $(DEPS)
+	$(CC) $(CFLAGS) -c -o $@ $< $(INCL)
 
-neon : lib$(LIBNOME5).a lib$(LIBNOME4).a lib$(LIBNOME3).a lib$(LIBNOME2).a lib$(LIBNOME).a $(INCFILES)
-	$(CC) $(INCS) $(LIBS) -o $(EXECDIR)$@ $@.c -l$(LIBNOME) -l$(LIBNOME2) -l$(LIBNOME3) -l$(LIBNOME4) -l$(LIBNOME5) -l$(LIBNOME6) -l$(LIBNOME7) -l$(LIBNOME8) -lgrafico $(ALLEGRO)
+clean:
+	rm -f $(OBJ) core
 
 limpa:
 	@echo "Limpando sujeira ..."
diff --git a/makefilebackup b/makefilebackup
new file mode 100644
index 0000000000000000000000000000000000000000..8c2bd34d7a584b9b3fd8c172c06aa50db72f5c95
--- /dev/null
+++ b/makefilebackup
@@ -0,0 +1,116 @@
+# nome da biblioteca, usado para gerar o arquivo libnome.a
+LIBNOME = neon
+
+# nome da biblioteca 2, usado para gerar o arquivo libnome2.a
+LIBNOME2 = grafico
+
+# nome da biblioteca 3, usado para gerar o arquivo libnome3.a
+LIBNOME3 = imprime
+
+# nome da biblioteca 4, usado para gerar o arquivo libnome4.a
+LIBNOME4 = colisao
+
+# nome da biblioteca 5, usado para gerar o arquivo libnome5.a
+LIBNOME5 = keys
+
+# nome da biblioteca 6, usado para gerar o arquivo libnome6.a
+LIBNOME6 = ia
+
+# nome da biblioteca 7, usado para gerar o arquivo libnome7.a
+LIBNOME7 = magia
+
+# nome da biblioteca 7, usado para gerar o arquivo libnome7.a
+LIBNOME8 = map
+
+# nome de todas as bibliotecas
+LIBS = neon.a grafico.a imprime.a colisao.a keys.a ia.a magia.a map.a
+
+# nome do arquivo header com as declarações da biblioteca
+INCFILES = neon.h Fase1.h grafico.h menu.h keys.h imprime.h colisao.h ia.h magia.h map.h
+
+# modulos que contém as funções da biblioteca
+LIBOBJ = neon.o grafico.o menu.o keys.o imprime.o colisao.o ia.o magia.o map.o
+
+# diretorio base onde estarão os diretórios de biblioteca
+PREFIX = ./
+
+# diretorio onde ficam os .h's de bibliotecas
+INCDIR = $(PREFIX)include
+
+# diretorio onde ficam bibliotecas
+LIBDIR = $(PREFIX)lib
+
+# diretorio onde fica o arquivo executavel
+EXECDIR = $(PREFIX)bin/
+
+ALLEGRO = `pkg-config --libs allegro-5.0 allegro_image-5.0 allegro_primitives-5.0 allegro_font-5.0 allegro_ttf-5.0 allegro_dialog-5.0 allegro_audio-5.0`
+
+LIBDIR_GRAPH = /home
+
+INCDIR_GRAPH = /home
+
+INCS = -I $(INCDIR) -I $(INCDIR_GRAPH)
+
+LIBS = -L $(LIBDIR) -L $(LIBDIR_GRAPH)
+
+
+CC = g++ -g
+AR = ar -rcu
+INSTALL = install
+
+
+all : install neon
+
+%.o : %.c %.h
+	$(CC) -c $(INCS) $<
+
+#%.a : $(LIBOBJ)
+#	$(AR) $@ $?
+#	ranlib $@
+
+lib$(LIBNOME).a : $(LIBOBJ)
+	$(AR) $@ $?
+	ranlib $@
+
+lib$(LIBNOME2).a : $(LIBOBJ)
+	$(AR) $@ $?
+	ranlib $@
+
+lib$(LIBNOME3).a : $(LIBOBJ)
+	$(AR) $@ $?
+	ranlib $@
+
+lib$(LIBNOME4).a : $(LIBOBJ)
+	$(AR) $@ $?
+	ranlib $@
+
+lib$(LIBNOME5).a : $(LIBOBJ)
+	$(AR) $@ $?
+	ranlib $@
+
+lib$(LIBNOME6).a : $(LIBOBJ)
+	$(AR) $@ $?
+	ranlib $@
+
+lib$(LIBNOME7).a : $(LIBOBJ)
+	$(AR) $@ $?
+	ranlib $@
+
+lib$(LIBNOME8).a : $(LIBOBJ)
+	$(AR) $@ $?
+	ranlib $@
+
+install : lib$(LIBNOME).a lib$(LIBNOME2).a lib$(LIBNOME3).a lib$(LIBNOME4).a lib$(LIBNOME5).a lib$(LIBNOME6).a lib$(LIBNOME7).a lib$(LIBNOME8).a Fase1.h
+	$(INSTALL) $^ $(LIBDIR)
+	$(INSTALL) $(INCFILES) $(INCDIR)
+
+neon : lib$(LIBNOME5).a lib$(LIBNOME4).a lib$(LIBNOME3).a lib$(LIBNOME2).a lib$(LIBNOME).a $(INCFILES)
+	$(CC) $(INCS) $(LIBS) -o $(EXECDIR)$@ $@.c -l/usr/lib -l$(LIBNOME) -l$(LIBNOME2) -l$(LIBNOME3) -l$(LIBNOME4) -l$(LIBNOME5) -l$(LIBNOME6) -l$(LIBNOME7) -l$(LIBNOME8) -lgrafico $(ALLEGRO)
+
+limpa:
+	@echo "Limpando sujeira ..."
+	@rm -f *% *.bak *~
+
+faxina:   limpa
+	@echo "Limpando tudo ..."
+	@rm -rf *.o lib$(LIBNOME).*