I have searched through this forum but am not able to find an answer to this question, still if I have missed it please excuse me and direct me to the same.
I am trying to understand makefiles and came across the makefile for the tcpreplay utility on Linux. There are lot of macros that have been defined with the value starting an ending in a @. What are these values, how are they used? A snippet:
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOGEN = @AUTOGEN@
AUTOHEADER = @AUTOHEADER@
This is a makefile template, likely for software built with a GNU
configurescript. Whenconfigureis run, the@NAME@placeholders are replaced with proper values as determined at runtime. E.g.@AR@will be the name (or path) of the archiver,/usr/bin/ar. You then have a properMakefilethat you can run with amakeinvokation. If an actualMakefilestill contains@NAME@placeholders, there was an error in runningconfigure.You are very likely not looking at a file named
Makefilebut one namedMakefile.in. The.insuffix indicating that this is input toconfigure.You can find all the gory details in the GNU autoconf manual.