Provided by: universal-ctags_6.2.1-1_amd64 bug

Name

       ctags-lang-make - Random notes about tagging Make source code with Universal Ctags

SYNOPSIS

       ctags ... --languages=+Make ...
       ctags ... --language-force=Make ...
       ctags ... --map-Make=+([Mm]akefile) --map-Make=+(GNUmakefile) ...
       ctags ... --map-Make=+.mak --map-Make=+.mk ...

DESCRIPTION

       This parser extracts macro and target definitions. It also extracts included files as references.

   Examples
       "input.mak"

          -include base.mak

          SRC = hello.c

          all: hello
          hello: hello.o
          hello.o: hello.c
          $(CC) -c $(CFLAGS) $(CPPFLAGS) $<

       "output.tags" with "--options=NONE --extras=+r --fields=+KlrE -o - input.mak"

          SRC  input.mak       /^SRC = hello.c$/;"     macro   language:Make   roles:def
          all  input.mak       /^all: hello$/;"        target  language:Make   roles:def
          base.mak     input.mak       /^-include base.mak$/;" makefile        language:Make   roles:optional  extras:reference
          hello        input.mak       /^hello: hello.o$/;"    target  language:Make   roles:def
          hello.o      input.mak       /^hello.o: hello.c$/;"  target  language:Make   roles:def

EXTRACTING CPP MACRO DEFINTIONS DEFINED WITH -DFOO

       With  -D  option  in  a  C compiler like gcc, a programmer can define a macro outside C source files. The
       options appears on a Makefile frequently. For an example:

          CPPFLAGS = -DDEBUG

       The Make parser has heuristics [DINMAKE] for extracting the macros defined with the option. With enabling
       CppDef extra, you can turn on the heuristics.

   Examples
       "input.mak"

          -include base.mak

          CFLAGS = -g -O2
          CPPFLAGS = -DOUTPUT=stdout
          SRC = hello.c

          all: hello
          hello: hello.o
          hello.o: hello.c
          $(CC) -c $(CFLAGS) $(CPPFLAGS) $<

       "output.tags" with "--options=NONE --extras-Make=+{CppDef} --fields=+KlE -o - input.mak"

          CFLAGS       input.mak       /^CFLAGS = -g -O2$/;"   macro   language:Make
          CPPFLAGS     input.mak       /^CPPFLAGS = -DOUTPUT=stdout$/;"        macro   language:Make
          OUTPUT       input.mak       /^CPPFLAGS = -DOUTPUT=stdout$/;"        macro   language:CPreProcessor  extras:CppDef
          SRC  input.mak       /^SRC = hello.c$/;"     macro   language:Make
          all  input.mak       /^all: hello$/;"        target  language:Make
          hello        input.mak       /^hello: hello.o$/;"    target  language:Make
          hello.o      input.mak       /^hello.o: hello.c$/;"  target  language:Make

VERSIONS

   Change since "0.0"
       • New extra CppDef [DINMAKE]

SEE ALSO

       ctags(1)

       [DINMAKE]
            CONFIG_X86_X32_ABI is not visible (defined in  Makefile,  not  C  or  Kconfig)  <https://github.com/
            bootlin/elixir/issues/221> (<https://github.com/bootlin/elixir/issues/221>)

6.2.1                                                                                         ctags-lang-make(7)