all: pl

pl: main.o prolan.o memory_manager.o symbol_table.o hash_table.o
	gcc main.o prolan.o memory_manager.o symbol_table.o hash_table.o -o prolan

main.o: main.c prolan.h
	gcc -O3 -g -Wall -c main.c

prolan.o: prolan.c prolan.h memory_manager.h symbol_table.h
	gcc -O3 -g -Wall -c prolan.c

memory_manager.o: memory_manager.c memory_manager.h hash_table.h
	gcc -O3 -g -Wall -c memory_manager.c

symbol_table.o: symbol_table.c symbol_table.h
	gcc -O3 -g -Wall -c symbol_table.c

hash_table.o: hash_table.c hash_table.h
	gcc -O3 -g -Wall -c hash_table.c

clean:
	/bin/rm -f prolan prolan main.o prolan.o memory_manager.o symbol_table.o hash_table.

