<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<!-- Makefile syntaxfile v0.9 by Per Wigren <wigren@home.se> -->
<!-- Modified by Joseph Wenninger <jowenn@kde.org> -->
<language name="Makefile" version="1.08" kateversion="2.4" section="Other" extensions="*makefile*;*Makefile*" mimetype="text/x-makefile" author="Per Wigren (wigren@home.se)" license="">
  <highlighting>
    <list name = "keywords">
      <item> include </item>
      <item> define </item>
      <item> else </item>
      <item> endef </item>
      <item> endif </item>
      <item> ifdef </item>
      <item> ifeq </item>
      <item> ifndef </item>
      <item> ifneq </item>
    </list>

    <contexts>
      <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
        <keyword attribute="Keyword" context="#stay" String="keywords"/>
        <RegExpr attribute="Variable" context="Value" String="[_\w\d]*\s*(?=:=|=)"/>
        <RegExpr attribute="Target" context="#stay" String="[_\w\d-]*\s*:" firstNonSpace="true"/>
        <RegExpr attribute="Section" context="#stay" String="^[.].*:"/>
        <DetectChar attribute="String" context="String" char="&quot;"/>
        <RegExpr attribute="Operator" context="VarFromNormal" String="[$][\({]"/>
        <Detect2Chars attribute="Special" context="#stay" char="\" char1="#"/>
        <Detect2Chars attribute="Special" context="#stay" char="\" char1="\"/>
        <AnyChar attribute="Operator" context="#stay" String="+*=%$():\&#059;"/>
        <AnyChar attribute="Operator" context="Commands" String="@-" firstNonSpace="true"/>
        <RegExpr attribute="Comment" context="#stay" String="#.*$"/>
      </context>

      <context attribute="String" lineEndContext="#pop" name="String">
        <LineContinue attribute="String" context="#stay"/>
        <DetectChar attribute="String" context="#pop" char="&quot;"/>
      </context>

      <context name="Value" attribute="String" lineEndContext="#stay">
        <RegExpr attribute="Operator" String="\\$"     context="#stay"/>
        <RegExpr attribute="String"   String="[^\\]?$" context="#pop"/>
        <RegExpr attribute="Operator" String="[$][\({]" context="VarFromValue"/>
        <RegExpr attribute="Special" context="#pop" String="@[-_\d\w]*@" />
        <DetectChar attribute="Operator" char="&#059;" context="#pop"/>
      </context>

      <context name="VarFromValue" attribute="Variable" lineEndContext="#stay">
        <RegExpr attribute="Operator" String="[\)}](?=/)" context="#pop"/>
        <RegExpr attribute="Operator" String="[\)}][^$]" context="#pop"/>
        <RegExpr attribute="Operator" String="[\)}]$" context="#pop#pop"/>
      </context>

      <context name="VarFromNormal" attribute="Variable" lineEndContext="#stay">
        <AnyChar attribute="Operator" String=")}" context="#pop"/>
      </context>

      <context name="Commands" attribute="Normal Text" lineEndContext="#pop">
        <RegExpr attribute="Operator" context="VarFromNormal" String="[$][\({]"/>
        <RegExpr attribute="Commands" context="#pop" String="[_\w-]*\b"/>
      </context>

    </contexts>
    <itemDatas>
      <itemData name="Normal Text" defStyleNum="dsNormal"/>
      <itemData name="Keyword"     defStyleNum="dsKeyword"/>
      <itemData name="Comment"     defStyleNum="dsComment"/>
      <itemData name="String"      defStyleNum="dsString"/>
      <itemData name="Variable"    defStyleNum="dsDataType"/>
      <itemData name="Target"      defStyleNum="dsDecVal"/>
      <itemData name="Section"     defStyleNum="dsOthers"/>
      <itemData name="Operator"    defStyleNum="dsChar"/>
      <itemData name="Commands"    defStyleNum="dsBaseN"/>
      <itemData name="Special"    defStyleNum="dsFloat"/>
    </itemDatas>
  </highlighting>
  <general>
    <comments>
      <comment name = "singleLine" start = "#"/>
    </comments>
    <keywords casesensitive = "1" />
  </general>
</language>
