Wat is het IN-bestandsformaat?
Een .in-bestand is een plat tekst-sjabloonbestand dat wordt verwerkt door het GNU Autotools-bouwsysteem. De meest voorkomende voorbeelden zijn Makefile.in (sjabloon voor de Makefile van een project) en config.h.in (sjabloon voor een C/C++ configuratie-header). Wanneer een ontwikkelaar ./configure uitvoert - het script gegenereerd door GNU Autoconf - leest het script deze .in-sjablonen, vervangt het @VARIABLE@-placeholders door waarden die zijn gedetecteerd in de bouwomgeving (compilerpaden, library-flags, systeemfuncties) en schrijft het de uiteindelijke uitvoerbestanden.
GNU Autoconf is in 1991 gemaakt door David MacKenzie en wordt onderhouden door het GNU Project. Autoconf 2.72 (december 2023) is de huidige versie. Het macro-invoerbestand op het hoogste niveau heette historisch configure.in; dit werd hernoemd naar configure.ac in Autoconf 2.50 om ambiguïteit te verminderen, hoewel veel oudere projecten nog steeds de oorspronkelijke naam gebruiken.
Veelvoorkomende .in-sjabloontypen:
Makefile.in- wordtMakefilenadat./configureis uitgevoerdconfig.h.in- wordtconfig.hmet#define//* #undef */vervangingenfoo.pc.in- wordt een pkg-config.pc-bestand
Omdat .in-bestanden platte tekst zijn, kan elke editor ze openen en lezen. Gerelateerde extensies zijn onder meer .ac (Autoconf-macrobestanden), .am (Automake-invoer) en .m4 (M4-macrobestanden). Merk op dat de .in-extensie niet exclusief is voor Autotools - het configure_file()-commando van CMake gebruikt ook .in-sjablonen - maar softwareontwikkelaars die met Autotools-bouwsystemen werken, vormen de dominante gebruikersgroep.
Beveiliging & veiligheid
RISICO: LOWEen .in-sjabloonbestand is platte tekst en kan zelf geen code uitvoeren. Het is veilig om te openen in een teksteditor. Het configure-script dat .in-bestanden verwerkt is een shell-script (dat wel code uitvoert) - de normale voorzichtigheid voor het uitvoeren van ./configure vanuit een niet-vertrouwde bron is van toepassing. Het .in-bestand zelf is passief.
Formaatdetails
in een notendop- McAfee VirusScan Intern/Tijdelijk bestand - Sommige McAfee-antivirusversies gebruiken .in als een interne bestandsextensie voor tijdelijke of quarantaine-gerelateerde gegevens; geen gedocumenteerd openbaar formaat en zelden tegengekomen door gebruikers.
- Generiek sjabloon/invoerbestand - Veel applicaties gebruiken .in als een generieke conventie voor elk sjabloon- of invoerbestand dat wordt verwerkt om een uitvoerbestand te produceren (bijv. configure_file van CMake gebruikt .in-sjablonen).
- Perl Module Build Input - Sommige Perl/CPAN-bouwsystemen gebruiken .in-bestanden als invoersjablonen voor gegenereerde bestanden tijdens de module-installatie.
Programma's die IN-bestanden openen
Technische details
diepe specificaties| Bestandscodering | Platte ASCII/UTF-8 tekst |
| Primaire rol | Sjabloonbestand gebruikt door ./configure (gegenereerd door GNU Autoconf) om uiteindelijke build-uitvoerbestanden te produceren |
| Placeholder-syntaxis | @VARIABLE@-markeringen vervangen door configure met gedetecteerde systeemwaarden (compilerpad, library-flags, feature-flags) |
| Veelvoorkomende sjabloontypen | Makefile.in → Makefile; config.h.in → config.h; foo.pc.in → foo.pc (pkg-config metadata) |
| Structuur van config.h.in | Bevat #undef FEATURE-richtlijnen; configure vervangt deze door #define FEATURE 1 of /* #undef FEATURE */ |
| configure.in vs configure.ac | configure.in is de oudere naam voor de Autoconf-macro-invoer op het hoogste niveau; hernoemd naar configure.ac in Autoconf 2.50 |
| M4-macrotaal | configure.in / configure.ac bestanden gebruiken M4-macro's en AC_*-aanroepen (AC_INIT, AC_PROG_CC, AC_CHECK_LIB, etc.) |
| Automake-pijplijn | Makefile.am (Automake-invoer) → Makefile.in (geproduceerd door automake) → Makefile (geproduceerd door ./configure) |
| Binaire handtekening | Geen - platte tekst, geen magic bytes |
| Typische bestandsgrootte | 1 KB-500 KB (configure.in doorgaans 5-100 KB; Makefile.in varieert sterk per projectcomplexiteit) |
| Huidige Autoconf-versie | GNU Autoconf 2.72, uitgebracht in december 2023 |
| Platform | Voornamelijk Linux/macOS/Unix; beschikbaar op Windows via MSYS2, Cygwin of WSL |
| Gerelateerde extensies | .ac (Autoconf-macrobestanden), .am (Automake-invoersjablonen), .m4 (ruwe M4-macrodefinities) |
| Uitgebracht | 1991 (GNU Autoconf 1.0 by David MacKenzie) |
| Laatste versie | Autoconf 2.72 (December 2023) |
| Open standaard | Ja · royaltyvrij |
| Specificatie | www.gnu.org |
IN conversies
Community V&A
gevraagd door gebruikersNog geen vragen - wees de eerste om iets te vragen over IN-bestanden.