-
Notifications
You must be signed in to change notification settings - Fork 0
Makefile
El Makefile es una parte esencial del proyecto ft_printf, ya que automatiza el proceso de compilación.
NAME = libftprintf.a
CC = cc
CFLAGS = -Wall -Wextra -Werror
SRC = ft_printf.c ft_putchar.c ft_putnbr.c ft_putstr.c ft_putunsigned.c ft_puthex.c ft_putptr.c
OBJ = $(SRC:.c=.o)
all: $(NAME)
$(NAME): $(OBJ)
ar rcs $(NAME) $(OBJ)
%.o: %.c
$(CC) $(CFLAGS) -c $< -o $@
clean:
rm -f $(OBJ)
fclean: clean
rm -f $(NAME)
re: fclean all
.PHONY: all clean fclean re-
NAME: Define el nombre del archivo de la librería que se va a crear, en este caso
libftprintf.a. -
CC: El compilador que se va a utilizar, en este caso es
cc, el compilador estándar de C. -
CFLAGS: Flags de compilación. Se incluyen:
-
-Wall: Habilita todos los mensajes de advertencia. -
-Wextra: Habilita advertencias adicionales que no están cubiertas por-Wall. -
-Werror: Trata todas las advertencias como errores, lo que asegura un código más robusto.
-
-
SRC: Lista de archivos fuente (
.c) que forman parte del proyecto. -
OBJ: Convierte todos los archivos
.clistados enSRCen sus correspondientes archivos objeto (.o).
-
all: Regla predeterminada que se ejecuta cuando se invoca
make. Llama a la regla para crear el archivo de la librería ($(NAME)). -
$(NAME): Esta regla se asegura de que todos los archivos objeto (
.o) están actualizados y crea la librería estática usandoar rcs. -
%.o: %.c: Regla genérica que indica cómo compilar un archivo
.cen un archivo.outilizando el compilador definido enCCy los flags enCFLAGS. -
clean: Elimina los archivos objeto (
.o) generados durante la compilación. -
fclean: Llama a
cleany además elimina el archivo de la librería (libftprintf.a). -
re: Llama a
fcleany luego recompila todo desde cero.
La línea .PHONY se utiliza para indicar que las reglas all, clean, fclean, y re no son archivos, sino comandos que se ejecutan como parte de la compilación.