• libft.
En este proyecto, se descargó e incluyó la librería readline. Para compilarla, se utilizaron las siguientes variables, flags, comandos y reglas en el Makefile del proyecto:
Indicamos la ruta donde se encuentran los archivos de cabecera (headers) de la biblioteca readline y los incluimos en nuestro proyecto utilizando el flag -I. Este flag informa al compilador sobre la ubicación de los archivos de cabecera, permitiéndonos utilizar las funciones y estructuras definidas en la biblioteca durante la compilación de nuestro código fuente.
INC = -I ./lib/readline/ #line 44Este condicional en el Makefile realiza una verificación crucial antes de compilar el proyecto. Primero, verifica la existencia del archivo config.status en el directorio de la biblioteca readline.
#line 73
conf:
@if [ ! -f $(READL)config.status ]; then\
cd $(READL) && ./configure &> /dev/null; \
echo "✅ ==== $(G)$(ligth)Create config.status$(E)==== ✅"; \
fiSi el archivo config.status no existe, el condicional ejecuta el script ./configure este script prepara el entorno para la compilación. Configura las opciones, detecta dependencias del sistema, ajusta rutas y realiza otras tareas esenciales para asegurarse de que el código se compile correctamente en el entorno del usuario.
#line 12
config.statusFinalmente, cuando se completa el proceso de configuración y se crea el archivo config.status.
Para compilar correctamente los objetos, es necesario informar al sistema que la biblioteca readline está disponible. Para hacer esto, creamos una macro llamada READLINE_LIBRARY con un valor de 1 usando el flag -D READLINE_LIBRARY=1.
$(CC) -MMD $(FLAGS) -c -D READLINE_LIBRARY=1 $< -o $@ $(INC) #line 87Por último, agregamos el flag –ltermcap en nuestra regla para compilar el programa.
El flag -ltermcap en el comando de compilación indica al compilador que debe vincular el programa con la biblioteca termcap. Esta biblioteca proporciona funcionalidades para el control avanzado de la terminal, permitiendo que el programa interactúe con el terminal de manera más sofisticada, incluyendo el manejo de teclas especiales, el posicionamiento del cursor y otras características avanzadas de la terminal. La opción -ltermcap indica que se debe utilizar esta biblioteca durante el proceso de enlace para asegurar que el programa pueda utilizar estas funcionalidades de la terminal.
Este script está desarrollado utilizando GNU Bash, versión 3.2.57, y se ejecuta en sistemas operativos Darwin Kernel, versión 19.6.0.
Comandos en bash para saber la versión que tienes:
bash --version
uname -a