¿Odias los anuncios? Ir Sin publicidad Hoy

Formateador de Makefile

DesarrolladorTexto
ANUNCIO · ¿ELIMINAR?
Usado para detectar la indentación inicial con espacios que deben convertirse en tabulaciones.
ANUNCIO · ¿ELIMINAR?

Guía

Formateador de Makefile

Formateador de Makefile

Pega tu Makefile en el panel de entrada y el formateador lo normaliza a las reglas estrictas de indentación con tabulaciones de GNU make. Las líneas de recetas que usan espacios en lugar de tabulaciones (la causa más común de errores de "falta de separador" y un problema frecuente en Makefiles generados por IA) se reparan automáticamente. El espacio en blanco final, líneas en blanco excesivas y espaciado inconsistente en asignaciones se limpian en la misma pasada, y cada cambio se muestra para que puedas auditarlo antes de copiarlo.

Cómo Usar

  1. Pega tu Makefile en el panel de entrada — o haz clic Prueba un ejemplo para cargar un ejemplo con problemas intencionados.
  2. Elige el ancho de tabulación (usado para detectar líneas indentadas que deben ser tabulaciones).
  3. Alternar las opciones de limpieza: convertir espacios en tabulaciones en líneas de recetas, eliminar el espacio final, normalizar secuencias de líneas en blanco, normalizar el espacio de asignación y alineación opcional de asignaciones consecutivas.
  4. Revisa el resumen de problemas y la lista de correcciones por línea, luego copia o descarga el Makefile formateado.

Características

  • Reparación de tabulaciones en recetas – convierte líneas de recetas indentadas con espacios en líneas indentadas con tabulaciones (la única indentación que acepta GNU make).
  • Clasificación inteligente de líneas – distingue entre objetivos, asignaciones de variables, condiciones (ifeq, else, endif), directivas (include, vpath, export) y líneas de recetas.
  • Espaciado de asignaciones – normaliza el espacio alrededor de =, :=, ::=, ?=, +=y !=.
  • Alineación opcional de columna – alinea asignaciones consecutivas de variables en la misma columna del operador para mejorar la legibilidad.
  • Informe de problemas – cada corrección se muestra con el número de línea de origen para que puedas verificar los cambios.
  • Seguridad en bloques definidos – el contenido entre define y endef se conserva tal cual.
  • Totalmente del lado del cliente – tu Makefile nunca abandona el navegador.

Preguntas frecuentes

  1. ¿Por qué GNU make requiere tabulaciones en líneas de recetas?

    El analizador de Make utiliza un solo carácter de tabulación como prefijo inambiguo que marca una línea como parte de la receta de una regla. Esta elección data de la primera versión pública de make en 1977 y se consolidó porque las tabulaciones eran un indicador confiable al inicio de la línea que no colisionaba con el espacio dentro de asignaciones de variables o definiciones de objetivos. Aunque ha causado décadas de confusión, cambiar esta regla rompería silenciosamente millones de Makefiles existentes, por lo que GNU make mantiene la tabulación como el valor predeterminado de RECIPEPREFIX.

  2. ¿Cuál es la diferencia entre =, :=, ::=, ?=, += y != en Makefiles?

    La asignación recursiva (=) retrasa la expansión hasta que se use la variable, por lo que las variables referenciadas se buscan en el momento de su uso. La asignación simple (:=) y la asignación POSIX simple (::=) expanden el lado derecho inmediatamente, por lo que el valor se fija en el momento de la definición. La asignación condicional (?=) solo establece la variable si actualmente no está definida, lo cual es útil para valores por defecto que pueden ser sobrescritos por el entorno. La asignación de adición (+=) añade al valor existente, preservando el comportamiento recursivo o simple del original. La asignación de shell (!=) ejecuta el lado derecho como un comando de shell y almacena el resultado, similar a las comillas en shell.

  3. ¿Cuál es la diferencia entre una línea de receta y una línea de continuación?

    Una línea de receta es la línea indentada que se ejecuta como parte de las acciones de una regla; en make estándar debe comenzar con un carácter de tabulación. Una línea de continuación es cualquier línea cuya línea anterior termina con una barra invertida, que lógicamente une las dos líneas en una. Las líneas de continuación heredan el contexto de la línea anterior, por lo que una línea de receta continuada sigue siendo una receta y una asignación de variable continuada sigue siendo una asignación. La indentación de una línea de continuación es puramente estética y no cambia cómo parsea make la línea.

  4. ¿Por qué se necesitan objetivos .PHONY y cómo afectan el análisis?

    Una declaración .PHONY le indica a make que los nombres listados no son archivos reales sino etiquetas de acción, por lo que make debe ejecutar siempre sus recetas independientemente de cualquier archivo con el mismo nombre en el directorio de trabajo. Sin ella, un archivo llamado clean desactivaría silenciosamente el comando make clean porque make lo consideraría actualizado. .PHONY no cambia las reglas de análisis de recetas ni de indentación — las líneas de receta bajo objetivos .PHONY aún deben comenzar con un carácter de tabulación — pero cambia la lógica de comparación de fechas para que la receta se considere fuera de fecha en cada invocación.

¿Quieres eliminar publicidad? Adiós publicidad hoy

Instalar extensiones

Agregue herramientas IO a su navegador favorito para obtener acceso instantáneo y búsquedas más rápidas

añadir Extensión de Chrome añadir Extensión de borde añadir Extensión de Firefox añadir Extensión de Opera

¡El marcador ha llegado!

Marcador es una forma divertida de llevar un registro de tus juegos, todos los datos se almacenan en tu navegador. ¡Próximamente habrá más funciones!

ANUNCIO · ¿ELIMINAR?
ANUNCIO · ¿ELIMINAR?
ANUNCIO · ¿ELIMINAR?

Noticias Aspectos técnicos clave

Involucrarse

Ayúdanos a seguir brindando valiosas herramientas gratuitas

Invítame a un café
ANUNCIO · ¿ELIMINAR?