Makefile

    # comment

    include Makefile.in
    -include Makefile.doesntexist

    .PHONY: all

    all: target

    foo = bar $(var) \
        $(baz) quux

    ifeq ($(CC),gcc)
        bla=$(call func,param1,param2)
    else ifeq "x" "y"
        $(error this seems wrong)
    else
        libs=$(normal_libs)
    endif

    target1:
            error

    target2: bla.cpp $@
    	$(CC) bla.c -o bla.o
    	$(CC) bla.o $< \
    	    -o bla.exe
    	@echo "hello"

    # String Substitution
    VAR := $(ANOTHER_VAR:%=%+1)

    # Variable Assignment
    RELAXED ::= mello
    rempl := x
    foo := a b c
    bar := foo
    hello := $($(bar):a=$(rempl))

    # Conditionals
    bar =
    foo = $(bar)
    ifdef bar
    frobozz = yes
    else ifdef foo
    frobozz = no
    endif

    error_type := 0
    check:
    ifeq ($(error_type),0)
    else ifeq ($(error_type),1)
    else ifeq ($(error_type),2)
    else ifeq ($(error_type),3)
    endif