🔗 Automake Syntax Guidelines
details labeled ENFORCED are checked and forced by source testing mechanisms.
🔗 Makefile substitution variables
- Makefile.am must use the $(DEFAULT_FOO) form for autoconf variables passed with AC_SUBST(DEFAULT_FOO).
🔗 File naming
- .h files should only declare one class or a collection of simple, closely related classes.
- No two file names that differ only in capitalization
- For new group of files, follow Features/SourceLayout
- convenience libraries should be named for the subdirectory they are within. For example; foo/libfoo.la or foo/libfoosomething.la
- conveniece library names must contain only alphanumeric characters 0-9 a-z, avoid upper case or punctuation
- .h files MUST be parseable as a single translation unit. In other words, it must include its dependent headers / forward declares classes as needed
🔗 Component Macros in Automake
Squid uses autoconf defined macros to eliminate experimental or optional components at build time.
- name for variables passed to automake code should start with ENABLE_
Navigation: Site Search, Site Pages, Categories, 🔼 go up
if ENABLE_FOO FOO_SRC=foo.h foo.cc FOO_LIBS=foo.la else FOO_SRC= FOO_LIBS= endif squid_SOURCES= $(FOO_SRC) ... LDADD = $(FOO_LIBS)