# Makefile
# CSE 333 Lecture 14 code

CXX = g++
CPPFLAGS = -Wall -g -std=c++17
PROGS = functiontemplate functiontemplate_infer valuetemplate usepair

# default target
all: $(PROGS)

# compare example with explicit types
functiontemplate: functiontemplate.cc
	$(CXX) $(CPPFLAGS) -o $@ $^

# compare example with inferred types
functiontemplate_infer: functiontemplate_infer.cc
	$(CXX) $(CPPFLAGS) -o $@ $^

# example with a non-type parameter N
valuetemplate: valuetemplate.cc
	$(CXX) $(CPPFLAGS) -o $@ $^

# template class Pair example
usepair: usepair.cc Pair.h Pair.cc
	$(CXX) $(CPPFLAGS) -o $@ $<

# phony target - remove generated files and backups
clean:
	rm -rf *.o *~ $(PROGS) *.dSYM