diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..f130fff
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,13 @@
+# Object files
+*.o
+*.a
+
+# Binary
+minishell
+
+# Build directories
+obj/
+
+# Temporary files
+*~
+.DS_Store
diff --git a/Makefile b/Makefile
index e21909f..49ea1b2 100644
--- a/Makefile
+++ b/Makefile
@@ -2,12 +2,18 @@ NAME = minishell
CC = cc
FLAGS = -Wall -Wextra -Werror
RM = rm -rf
+# Library linking flags:
+# -L
: Adds to library search path (for finding .a and .so files)
+# -l: Links against lib.a or lib.so
+# -I: Adds to header (.h) search path (used in INCLUDE_FLAG below)
LIBS = -lreadline
MKDIR = mkdir -p
INCLUDE_DIR = inc
LIBFT_DIR = inc/libft
LIBFT_A = $(LIBFT_DIR)/libft.a
+# Use -L to specify library directory and -l to link the library
+LIBFT_FLAGS = -L$(LIBFT_DIR) -lft
INCLUDE_FLAG = -I$(INCLUDE_DIR) -I$(LIBFT_DIR)
INCLUDE = $(INCLUDE_DIR)/minishell.h
@@ -101,7 +107,7 @@ $(NAME): $(OBJS) $(LIBFT_A)
@$(MAKE) --no-print-directory message
@$(MAKE) --no-print-directory loading_bar
@echo ""
- @$(CC) $(FLAGS) $(OBJS) $(LIBFT_A) -o $(NAME) $(LIBS)
+ @$(CC) $(FLAGS) $(OBJS) $(LIBFT_FLAGS) -o $(NAME) $(LIBS)
$(OBJ_DIR)%.o: $(SRC_DIR)%.c $(INCLUDE)
@$(MKDIR) $(dir $@)
diff --git a/README.md b/README.md
index ea3048e..0eeebf1 100644
--- a/README.md
+++ b/README.md
@@ -10,6 +10,8 @@
2. SEÑALES
3. RL
4. ENVIRON
+ 5. HEREDOCS
+ 6. FLAGS DE COMPILACIÓN
```
## 1. GIT
@@ -74,3 +76,37 @@ ej1: _=hola -> clave: _ / valor: _=hola
ej2: _algo=adios:
- ->clave1: _algo / valor1: adios
- ->clave2: _ / valor2 _algo=adios
+
+## 6. FLAGS DE COMPILACIÓN
+Es importante entender correctamente los flags de compilación y linkeo en C:
+
+### Flags de Linkeo de Librerías:
+```
+-L: Añade a la ruta de búsqueda de librerías
+ Se usa para indicar DÓNDE buscar archivos .a y .so
+ Ejemplo: -L./inc/libft busca librerías en el directorio inc/libft
+
+-l: Enlaza contra la librería lib.a o lib.so
+ Se usa para indicar QUÉ librería usar
+ Ejemplo: -lft enlaza contra libft.a o libft.so
+ -lreadline enlaza contra libreadline.a o libreadline.so
+```
+
+### Flags de Includes (Headers):
+```
+-I: Añade a la ruta de búsqueda de headers (.h)
+ Se usa para encontrar archivos .h durante la compilación
+ Ejemplo: -I./inc permite usar #include
+```
+
+### Resumen:
+- **-L** es para especificar directorios donde buscar librerías (.a, .so)
+- **-l** es para enlazar contra una librería específica
+- **-I** es para especificar directorios donde buscar headers (.h)
+
+### Uso en el Makefile:
+```makefile
+LIBFT_FLAGS = -L$(LIBFT_DIR) -lft # Busca en inc/libft y enlaza libft.a
+LIBS = -lreadline # Enlaza libreadline (del sistema)
+INCLUDE_FLAG = -I$(INCLUDE_DIR) -I$(LIBFT_DIR) # Headers en inc/ e inc/libft/
+```