<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>fileTypes</key>
	<array>
		<string>Makefile</string>
		<string>makefile</string>
		<string>GNUmakefile</string>
		<string>OCamlMakefile</string>
	</array>
	<key>name</key>
	<string>Makefile</string>
	<key>patterns</key>
	<array>
		<dict>
			<key>include</key>
			<string>#comment</string>
		</dict>
		<dict>
			<key>include</key>
			<string>#variable-assignment</string>
		</dict>
		<dict>
			<key>include</key>
			<string>#recipe</string>
		</dict>
		<dict>
			<key>include</key>
			<string>#directives</string>
		</dict>
	</array>
	<key>repository</key>
	<dict>
		<key>comment</key>
		<dict>
			<key>begin</key>
			<string>(^[ \t]+)?(?=#)</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>name</key>
					<string>punctuation.whitespace.comment.leading.makefile</string>
				</dict>
			</dict>
			<key>end</key>
			<string>(?!\G)</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>#</string>
					<key>beginCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.comment.makefile</string>
						</dict>
					</dict>
					<key>end</key>
					<string>\n</string>
					<key>name</key>
					<string>comment.line.number-sign.makefile</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>match</key>
							<string>\\\n</string>
							<key>name</key>
							<string>constant.character.escape.continuation.makefile</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>directives</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>^[ ]*([s\-]?include)\b</string>
					<key>beginCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>keyword.control.include.makefile</string>
						</dict>
					</dict>
					<key>end</key>
					<string>^</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#comment</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#variables</string>
						</dict>
						<dict>
							<key>match</key>
							<string>%</string>
							<key>name</key>
							<string>constant.other.placeholder.makefile</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>^[ ]*(vpath)\b</string>
					<key>beginCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>keyword.control.vpath.makefile</string>
						</dict>
					</dict>
					<key>end</key>
					<string>^</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#comment</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#variables</string>
						</dict>
						<dict>
							<key>match</key>
							<string>%</string>
							<key>name</key>
							<string>constant.other.placeholder.makefile</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>^(?:(override)\s*)?(define)\s*([^\s]+)\s*(=|\?=|:=|\+=)?(?=\s)</string>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>keyword.control.override.makefile</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>keyword.control.define.makefile</string>
						</dict>
						<key>3</key>
						<dict>
							<key>name</key>
							<string>variable.other.makefile</string>
						</dict>
						<key>4</key>
						<dict>
							<key>name</key>
							<string>punctuation.separator.key-value.makefile</string>
						</dict>
					</dict>
					<key>end</key>
					<string>^(endef)\b</string>
					<key>name</key>
					<string>meta.scope.conditional.makefile</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>begin</key>
							<string>\G(?!\n)</string>
							<key>end</key>
							<string>^</string>
							<key>patterns</key>
							<array>
								<dict>
									<key>include</key>
									<string>#comment</string>
								</dict>
							</array>
						</dict>
						<dict>
							<key>include</key>
							<string>#variables</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#comment</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>^[ ]*(export)\b</string>
					<key>beginCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>keyword.control.$1.makefile</string>
						</dict>
					</dict>
					<key>end</key>
					<string>^</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#comment</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#variable-assignment</string>
						</dict>
						<dict>
							<key>match</key>
							<string>[^\s]+</string>
							<key>name</key>
							<string>variable.other.makefile</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>^[ ]*(override|private)\b</string>
					<key>beginCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>keyword.control.$1.makefile</string>
						</dict>
					</dict>
					<key>end</key>
					<string>^</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#comment</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#variable-assignment</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>^[ ]*(unexport|undefine)\b</string>
					<key>beginCaptures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>keyword.control.$1.makefile</string>
						</dict>
					</dict>
					<key>end</key>
					<string>^</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#comment</string>
						</dict>
						<dict>
							<key>match</key>
							<string>[^\s]+</string>
							<key>name</key>
							<string>variable.other.makefile</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>^(ifdef|ifndef)\s*([^\s]+)(?=\s)</string>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>keyword.control.$1.makefile</string>
						</dict>
						<key>2</key>
						<dict>
							<key>name</key>
							<string>variable.other.makefile</string>
						</dict>
						<key>3</key>
						<dict>
							<key>name</key>
							<string>punctuation.separator.key-value.makefile</string>
						</dict>
					</dict>
					<key>end</key>
					<string>^(endif)\b</string>
					<key>name</key>
					<string>meta.scope.conditional.makefile</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>begin</key>
							<string>\G(?!\n)</string>
							<key>end</key>
							<string>^</string>
							<key>patterns</key>
							<array>
								<dict>
									<key>include</key>
									<string>#comment</string>
								</dict>
							</array>
						</dict>
						<dict>
							<key>include</key>
							<string>$self</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>^(ifeq|ifneq)(?=\s)</string>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>keyword.control.$1.makefile</string>
						</dict>
					</dict>
					<key>end</key>
					<string>^(endif)\b</string>
					<key>name</key>
					<string>meta.scope.conditional.makefile</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>begin</key>
							<string>\G</string>
							<key>end</key>
							<string>^</string>
							<key>name</key>
							<string>meta.scope.condition.makefile</string>
							<key>patterns</key>
							<array>
								<dict>
									<key>include</key>
									<string>#variables</string>
								</dict>
								<dict>
									<key>include</key>
									<string>#comment</string>
								</dict>
							</array>
						</dict>
						<dict>
							<key>begin</key>
							<string>^else(?=\s)</string>
							<key>beginCaptures</key>
							<dict>
								<key>0</key>
								<dict>
									<key>name</key>
									<string>keyword.control.else.makefile</string>
								</dict>
							</dict>
							<key>end</key>
							<string>^</string>
						</dict>
						<dict>
							<key>include</key>
							<string>$self</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>interpolation</key>
		<dict>
			<key>begin</key>
			<string>(?=`)</string>
			<key>end</key>
			<string>(?!\G)</string>
			<key>name</key>
			<string>meta.embedded.line.shell</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>`</string>
					<key>beginCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.makefile</string>
						</dict>
					</dict>
					<key>contentName</key>
					<string>source.shell</string>
					<key>end</key>
					<string>(`)</string>
					<key>endCaptures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.string.makefile</string>
						</dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>source.shell</string>
						</dict>
					</dict>
					<key>name</key>
					<string>string.interpolated.backtick.makefile</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>source.shell</string>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
		<key>recipe</key>
		<dict>
			<key>begin</key>
			<string>^(?!\t)([^:]*)(:)(?!\=)</string>
			<key>beginCaptures</key>
			<dict>
				<key>1</key>
				<dict>
					<key>patterns</key>
					<array>
						<dict>
							<key>captures</key>
							<dict>
								<key>1</key>
								<dict>
									<key>name</key>
									<string>support.function.target.$1.makefile</string>
								</dict>
							</dict>
							<key>match</key>
							<string>^\s*(\.(PHONY|SUFFIXES|DEFAULT|PRECIOUS|INTERMEDIATE|SECONDARY|SECONDEXPANSION|DELETE_ON_ERROR|IGNORE|LOW_RESOLUTION_TIME|SILENT|EXPORT_ALL_VARIABLES|NOTPARALLEL|ONESHELL|POSIX))\s*$</string>
						</dict>
						<dict>
							<key>begin</key>
							<string>(?=\S)</string>
							<key>end</key>
							<string>(?=\s|$)</string>
							<key>name</key>
							<string>entity.name.function.target.makefile</string>
							<key>patterns</key>
							<array>
								<dict>
									<key>include</key>
									<string>#variables</string>
								</dict>
								<dict>
									<key>match</key>
									<string>%</string>
									<key>name</key>
									<string>constant.other.placeholder.makefile</string>
								</dict>
							</array>
						</dict>
					</array>
				</dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>punctuation.separator.key-value.makefile</string>
				</dict>
			</dict>
			<key>end</key>
			<string>^(?!\t)</string>
			<key>name</key>
			<string>meta.scope.target.makefile</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>begin</key>
					<string>\G</string>
					<key>end</key>
					<string>^</string>
					<key>name</key>
					<string>meta.scope.prerequisites.makefile</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>match</key>
							<string>\\\n</string>
							<key>name</key>
							<string>constant.character.escape.continuation.makefile</string>
						</dict>
						<dict>
							<key>match</key>
							<string>%|\*</string>
							<key>name</key>
							<string>constant.other.placeholder.makefile</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#comment</string>
						</dict>
						<dict>
							<key>include</key>
							<string>#variables</string>
						</dict>
					</array>
				</dict>
				<dict>
					<key>begin</key>
					<string>^\t</string>
					<key>name</key>
					<string>meta.scope.recipe.makefile</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>captures</key>
							<dict>
								<key>0</key>
								<dict>
									<key>patterns</key>
									<array>
										<dict>
											<key>match</key>
											<string>\\\n</string>
											<key>name</key>
											<string>constant.character.escape.continuation.makefile</string>
										</dict>
										<dict>
											<key>include</key>
											<string>#variables</string>
										</dict>
										<dict>
											<key>include</key>
											<string>source.shell</string>
										</dict>
									</array>
								</dict>
							</dict>
							<key>match</key>
							<string>.+\n?</string>
						</dict>
					</array>
					<key>while</key>
					<string>^\t</string>
				</dict>
			</array>
		</dict>
		<key>variable-assignment</key>
		<dict>
			<key>begin</key>
			<string>(^[ ]*|\G\s*)([^\s]+)\s*(=|\?=|:=|\+=)</string>
			<key>beginCaptures</key>
			<dict>
				<key>2</key>
				<dict>
					<key>name</key>
					<string>variable.other.makefile</string>
				</dict>
				<key>3</key>
				<dict>
					<key>name</key>
					<string>punctuation.separator.key-value.makefile</string>
				</dict>
			</dict>
			<key>end</key>
			<string>\n</string>
			<key>patterns</key>
			<array>
				<dict>
					<key>match</key>
					<string>\\\n</string>
					<key>name</key>
					<string>constant.character.escape.continuation.makefile</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#comment</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#variables</string>
				</dict>
				<dict>
					<key>include</key>
					<string>#interpolation</string>
				</dict>
			</array>
		</dict>
		<key>variables</key>
		<dict>
			<key>patterns</key>
			<array>
				<dict>
					<key>captures</key>
					<dict>
						<key>1</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.variable.makefile</string>
						</dict>
					</dict>
					<key>match</key>
					<string>(\$?\$)[@%&lt;?^+*]</string>
					<key>name</key>
					<string>variable.language.makefile</string>
				</dict>
				<dict>
					<key>begin</key>
					<string>\$?\$\(</string>
					<key>captures</key>
					<dict>
						<key>0</key>
						<dict>
							<key>name</key>
							<string>punctuation.definition.variable.makefile</string>
						</dict>
					</dict>
					<key>end</key>
					<string>\)</string>
					<key>name</key>
					<string>string.interpolated.makefile</string>
					<key>patterns</key>
					<array>
						<dict>
							<key>include</key>
							<string>#variables</string>
						</dict>
						<dict>
							<key>match</key>
							<string>\G(MAKEFILES|VPATH|SHELL|MAKESHELL|MAKE|MAKELEVEL|MAKEFLAGS|MAKECMDGOALS|CURDIR|SUFFIXES|\.LIBPATTERNS)(?=\s*\))</string>
							<key>name</key>
							<string>variable.language.makefile</string>
						</dict>
						<dict>
							<key>begin</key>
							<string>\G(subst|patsubst|strip|findstring|filter(-out)?|sort|word(list)?|firstword|lastword|dir|notdir|suffix|basename|addprefix|join|wildcard|realpath|abspath|info|error|warning|shell|foreach|if|or|and|call|eval|value)\s</string>
							<key>beginCaptures</key>
							<dict>
								<key>1</key>
								<dict>
									<key>name</key>
									<string>support.function.$1.makefile</string>
								</dict>
							</dict>
							<key>end</key>
							<string>(?=\))</string>
							<key>name</key>
							<string>meta.scope.function-call.makefile</string>
							<key>patterns</key>
							<array>
								<dict>
									<key>include</key>
									<string>#variables</string>
								</dict>
								<dict>
									<key>match</key>
									<string>%|\*</string>
									<key>name</key>
									<string>constant.other.placeholder.makefile</string>
								</dict>
							</array>
						</dict>
						<dict>
							<key>begin</key>
							<string>\G(origin|flavor)\s(?=[^\s)]+\s*\))</string>
							<key>contentName</key>
							<string>variable.other.makefile</string>
							<key>end</key>
							<string>\)</string>
							<key>name</key>
							<string>meta.scope.function-call.makefile</string>
							<key>patterns</key>
							<array>
								<dict>
									<key>include</key>
									<string>#variables</string>
								</dict>
							</array>
						</dict>
						<dict>
							<key>begin</key>
							<string>\G(?!\))</string>
							<key>end</key>
							<string>(?=\))</string>
							<key>name</key>
							<string>variable.other.makefile</string>
							<key>patterns</key>
							<array>
								<dict>
									<key>include</key>
									<string>#variables</string>
								</dict>
							</array>
						</dict>
					</array>
				</dict>
			</array>
		</dict>
	</dict>
	<key>scopeName</key>
	<string>source.makefile</string>
	<key>uuid</key>
	<string>FF1825E8-6B1C-11D9-B883-000D93589AF6</string>
</dict>
</plist>