CXX      := g++
LDFLAGS  := 
CXXFLAGS := 
PID      := $(shell echo $$$$)

CPP_FILES := main.cpp alt1.cpp
OBJ_FILES := $(CPP_FILES:%.cpp=%.o)
DDD_FILES := $(CPP_FILES:%.cpp=%.d)
EXE_FILES := $(CPP_FILES:%.cpp=%.exe)

all:           main.exe alt1.exe
main.exe:      main.o
alt1.exe:      alt1.o
main.o main.d: main.cpp
alt1.o alt1.d: alt1.cpp

$(EXE_FILES):
	$(CXX) $(LDFLAGS) $^ -o $@

$(OBJ_FILES):
	$(CXX) -c $(CXXFLAGS) $< -o $@

DFILE_HDR := \
\# DO NOT CHANGE THIS FILE; it was auto-generated by a make process.

# Generate header prerequisites automatically.
# Taken and modified from:
# http://www.gnu.org/software/make/manual/html_chapter/make_4.html#SEC51
$(DDD_FILES):
	@echo -- generating makefile: $@
	set -e; rm -f $@;                                          \
	echo "$(DFILE_HDR)" > $@;                                   \
	$(CXX) -M $(CXXFLAGS) $< > $@.$(PID);                      \
	sed 's,^.*\.o[ :]*,$(@:%.d=%.o) $@: ,g' < $@.$(PID) >> $@;  \
	rm -f $@.$(PID)

ifeq ($(MAKECMDGOALS),all)
-include $(DDD_FILES)
endif
ifeq ($(MAKECMDGOALS),main.exe)
-include main.d
endif
ifeq ($(MAKECMDGOALS),alt1.exe)
-include alt1.d
endif

clean:
	rm -f $(OBJ_FILES) $(DDD_FILES) $(EXE_FILES) 
