54

I am studying the C language, and I saw a new extension that I had not seen before.

What do files with the extension like library.h.in mean?

Is it as the simple header with extension ".h"? What's the difference?

syb0rg
  • 8,057
  • 9
  • 41
  • 81
Anderson Carniel
  • 1,711
  • 2
  • 16
  • 22

3 Answers3

47

These files are usually the input for autoconf which will generate final .h files.

Here's an example from PCRE:

#define PCRE_MAJOR          @PCRE_MAJOR@
#define PCRE_MINOR          @PCRE_MINOR@
#define PCRE_PRERELEASE     @PCRE_PRERELEASE@
#define PCRE_DATE           @PCRE_DATE@

Autoconf will replace all variables (@…@) with the respective values and the result will be a .h file.

22

Typically, a .h.in file is a header template that is filled in to become the actual header by a configure script based on the outcome of several tests for features present on the target platform.

Jeff Camera
  • 5,324
  • 5
  • 44
  • 59
Daniel Fischer
  • 181,706
  • 17
  • 308
  • 431
6

Files ending with .in are typically template files used by a program called configure that generates a new file without the extension after substituting for variable expansions. I.e., if you're looking at a source tree that has files called, e.g. Makefile.in in the tree, then ./configure will generate a usable Makefile that can be used to "make" from source.

syb0rg
  • 8,057
  • 9
  • 41
  • 81