1" Vim syntax file 2" Language: automake Makefile.am 3" Maintainer: John Williams <[email protected]> 4" Last change: 2001 May 09 5 6 7" This script adds support for automake's Makefile.am format. It highlights 8" Makefile variables significant to automake as well as highlighting 9" autoconf-style @variable@ substitutions . Subsitutions are marked as errors 10" when they are used in an inappropriate place, such as in defining 11" EXTRA_SOURCES. 12 13 14" Read the Makefile syntax to start with 15if version < 600 16 source <sfile>:p:h/make.vim 17else 18 runtime! syntax/make.vim 19endif 20 21syn match automakePrimary "^[A-Za-z0-9_]\+\(_PROGRAMS\|LIBRARIES\|_LIST\|_SCRIPTS\|_DATA\|_HEADERS\|_MANS\|_TEXINFOS\|_JAVA\|_LTLIBRARIES\)\s*="me=e-1 22syn match automakePrimary "^TESTS\s*="me=e-1 23syn match automakeSecondary "^[A-Za-z0-9_]\+\(_SOURCES\|_LDADD\|_LIBADD\|_LDFLAGS\|_DEPENDENCIES\)\s*="me=e-1 24syn match automakeSecondary "^OMIT_DEPENDENCIES\s*="me=e-1 25syn match automakeExtra "^EXTRA_[A-Za-z0-9_]\+\s*="me=e-1 26syn match automakeOptions "^\(AUTOMAKE_OPTIONS\|ETAGS_ARGS\|TAGS_DEPENDENCIES\)\s*="me=e-1 27syn match automakeClean "^\(MOSTLY\|DIST\|MAINTAINER\)\=CLEANFILES\s*="me=e-1 28syn match automakeSubdirs "^\(DIST_\)\=SUBDIRS\s*="me=e-1 29syn match automakeConditional "^\(if\s*[a-zA-Z0-9_]\+\|else\|endif\)\s*$" 30 31syn match automakeSubst "@[a-zA-Z0-9_]\+@" 32syn match automakeSubst "^\s*@[a-zA-Z0-9_]\+@" 33syn match automakeComment1 "#.*$" contains=automakeSubst 34syn match automakeComment2 "##.*$" 35 36syn match automakeMakeError "$[{(][^})]*[^a-zA-Z0-9_})][^})]*[})]" " GNU make function call 37 38syn region automakeNoSubst start="^EXTRA_[a-zA-Z0-9_]*\s*=" end="$" contains=ALLBUT,automakeNoSubst transparent 39syn region automakeNoSubst start="^DIST_SUBDIRS\s*=" end="$" contains=ALLBUT,automakeNoSubst transparent 40syn region automakeNoSubst start="^[a-zA-Z0-9_]*_SOURCES\s*=" end="$" contains=ALLBUT,automakeNoSubst transparent 41syn match automakeBadSubst "@\([a-zA-Z0-9_]*@\=\)\=" contained 42 43syn region automakeMakeDString start=+"+ skip=+\\"+ end=+"+ contains=makeIdent,automakeSubstitution 44syn region automakeMakeSString start=+'+ skip=+\\'+ end=+'+ contains=makeIdent,automakeSubstitution 45syn region automakeMakeBString start=+`+ skip=+\\`+ end=+`+ contains=makeIdent,makeSString,makeDString,makeNextLine,automakeSubstitution 46 47" Define the default highlighting. 48" For version 5.7 and earlier: only when not done already 49" For version 5.8 and later: only when an item doesn't have highlighting yet 50if version >= 508 || !exists("did_automake_syntax_inits") 51 if version < 508 52 let did_automake_syntax_inits = 1 53 command -nargs=+ HiLink hi link <args> 54 else 55 command -nargs=+ HiLink hi def link <args> 56 endif 57 58 HiLink automakePrimary Statement 59 HiLink automakeSecondary Type 60 HiLink automakeExtra Special 61 HiLink automakeOptions Special 62 HiLink automakeClean Special 63 HiLink automakeSubdirs Statement 64 HiLink automakeConditional PreProc 65 HiLink automakeSubst PreProc 66 HiLink automakeComment1 makeComment 67 HiLink automakeComment2 makeComment 68 HiLink automakeMakeError makeError 69 HiLink automakeBadSubst makeError 70 HiLink automakeMakeDString makeDString 71 HiLink automakeMakeSString makeSString 72 HiLink automakeMakeBString makeBString 73 74 delcommand HiLink 75endif 76 77let b:current_syntax = "automake" 78 79" vi: ts=8 sw=4 sts=4 80