# Makefile
# CSE 333 Lecture 9 code

CXX = g++
CPPFLAGS = -Wall -g -std=c++11
PROGS = hello helloworld helloworld2 concat manip helloworld3 echonum msg

# default target builds all executables
all: $(PROGS)

# hello world in C
hello: helloworld.c
	gcc -Wall -g -std=c11 -o $@ $<

# hello world in C++
helloworld: helloworld.cc
	$(CXX) $(CPPFLAGS) -o $@ $<

# hello world in C++ with namespace std
helloworld2: helloworld2.cc
	$(CXX) $(CPPFLAGS) -o $@ $<

# hello world with string concatenation
concat: concat.cc
	$(CXX) $(CPPFLAGS) -o $@ $<

# stream manipulators example
manip: manip.cc
	$(CXX) $(CPPFLAGS) -o $@ $<

# C++ example using printf
helloworld3: helloworld3.cc
	$(CXX) $(CPPFLAGS) -o $@ $<

# C++ example using cin for reading input
echonum: echonum.cc
	$(CXX) $(CPPFLAGS) -o $@ $<

# operator overloading peer instruction question code
msg: msg.cc
	$(CXX) $(CPPFLAGS) -o $@ $<

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