# 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"

target3: ; @echo ’hello \
world’ ; echo "hello \
world"
	@echo "hello"

target4: ; echo ’hello \
world’ ; echo "hello \
world"
	echo "hello"

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

# Variable Assignment
RELAXED ::= mello
rempl := x
foo := a b c
bar := foo
hello := $($(bar):a=$(rempl))
my??var=value
var??=value
var?=value
var? = value
var :::= value
var ::= value
var += value
var != value
  var = value\#nocomment
  var = value#comment
  var = value;value2
override var = a

define var :::=
bar
endef

override define var :::=
bar
endef

# 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

$(info "'")
$(info '"')
$(info $(??))
