26

Sometimes in the sources of projects I see "*.in" files. For example, a bunch of "Makefile.in"s. What are they for and/or what does the ".in" part mean? I assume that this has something to do with autoconf or make or something like those, but I'm not sure.

I've tried searching for ".in file extension", "autoconf .in file extension", "autoconf .in", "autoconf dot in", and other variants, with no luck.

18

it's just a convention that signifies the given file is for input; in my experience, these files tend to be a sort of generic template from which a specific output file or script results.

  • 3
    Out of interest, could you cite some examples where ".in" is used in this way outside of the autoconf realm? – spinkus Jul 5 '14 at 12:08
30

I believe the automake process involving a Makefile.in is something like this:

  Makefile.am
       |
      \'/
+--------------+
|   automake   |
+--------------+
       |
      \'/
   Makefile.in
       |
      \'/
+--------------+    +--------------+
| ./configure  |<-- |   autoconf   |<-- configure.in
+--------------+    +--------------+
       |
      \'/
    Makefile

Nobody actually writes a Makefile.in. The only programmer-defined file here is the Makefile.am.

  • 2
    Well, on occasion I've written a Makefile.in, because automake wouldn't do what I want. – Simon Richter Jul 25 '13 at 14:03
6

They are input files for the m4 macro preprocessor. Among other things, these files contain macros marked by @, that get expanded by m4.

  • 1
    Nope. Makefile.in is never touched by anything m4 related. – Simon Richter Jul 25 '13 at 14:02

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.