CC = gcc
CFLAGS = -Wall -Wextra -Werror -g #Añade los flags: Warnings y la versión del compilador

#Ruta de los archivos .c
RUTA_C = codigo_fuente
#Ruta de parser.o y internas.o
RUTA_O = parser_o_y_internas_o

all: bin/minishell

.PHONY: clean 
clean: #Borra el ejecutable
	rm -rf bin/minishell build/*

build: #Crea la carpeta build
	mkdir -p build 

bin: #Crea la carpeta bin
	mkdir -p bin

bin/minishell: bin build build/minishell.o build/libmemoria.o build/ejecutar.o build/entrada_minishell.o build/redirecciones.o build/parser.o build/internas.o #Crea el ejecutable minishell
	$(CC) $(CFLAGS) -o bin/minishell build/minishell.o build/libmemoria.o build/ejecutar.o build/entrada_minishell.o build/redirecciones.o build/parser.o build/internas.o

build/libmemoria.o: $(RUTA_C)/libmemoria.c #Compila el archivo libmemoria.c
	$(CC) $(CFLAGS) -c $(RUTA_C)/libmemoria.c -o build/libmemoria.o

build/ejecutar.o: $(RUTA_C)/ejecutar.c #Compila el archivo ejecutar.c
	$(CC) $(CFLAGS) -c $(RUTA_C)/ejecutar.c -o build/ejecutar.o

build/entrada_minishell.o: $(RUTA_C)/entrada_minishell.c #Compila el archivo entrada_minishell.c
	$(CC) $(CFLAGS) -c $(RUTA_C)/entrada_minishell.c -o build/entrada_minishell.o

build/redirecciones.o: $(RUTA_C)/redirecciones.c #Compila el archivo redirecciones.c
	$(CC) $(CFLAGS) -c $(RUTA_C)/redirecciones.c -o build/redirecciones.o

build/minishell.o: $(RUTA_C)/minishell.c #Compila el archivo minishell.c
	$(CC) $(CFLAGS) -c $(RUTA_C)/minishell.c -o build/minishell.o

build/internas.o: $(RUTA_O)/internas.o
	cp $(RUTA_O)/internas.o build/internas.o

build/parser.o: $(RUTA_O)/parser.o
	cp $(RUTA_O)/parser.o build/parser.o





