This repository was archived by the owner on May 12, 2026. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathMakefile
More file actions
124 lines (104 loc) Β· 4.23 KB
/
Copy pathMakefile
File metadata and controls
124 lines (104 loc) Β· 4.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# Academic Portfolio Makefile
# Builds and runs homework assignments across all courses
# Compiler settings
CXX = g++
CXXFLAGS = -std=c++17 -Wall -Wextra -g
PYTHON = python3
MATLAB = matlab
# CS1570 Homework paths (relative from current working directory)
CS1570_BASE = ../cs1570-intro-to-programming
HW1_DIR = $(CS1570_BASE)/Homework1
HW2_DIR = $(CS1570_BASE)/Homework2
HW3_DIR = $(CS1570_BASE)/Homework3
HW4_DIR = $(CS1570_BASE)/Homework4
HW5_DIR = $(CS1570_BASE)/Homework5
HW6_DIR = $(CS1570_BASE)/Homework6
HW7_DIR = $(CS1570_BASE)/Homework7
HW8_DIR = $(CS1570_BASE)/Homework8
# Default target
.PHONY: all clean help
all: homework1 homework2 homework3 homework4 homework5 homework6 homework7 homework8
help:
@echo "Available targets:"
@echo " all - Build and run all homework assignments"
@echo " homework1 - Run homework 1 (algorithm descriptions)"
@echo " homework2 - Build and run homework 2 (GGPA Program)"
@echo " homework3 - Build and run homework 3 (SherlockHolmes)"
@echo " homework4 - Build and run homework 4 (WavelengthCalculator5000)"
@echo " homework5 - Build and run homework 5 (TODist)"
@echo " homework6 - Build and run homework 6 (WavelengthCalculator5001)"
@echo " homework7 - Build and run homework 7"
@echo " homework8 - Build and run homework 8"
@echo " clean - Clean all build artifacts"
# Homework 1 - Algorithm descriptions (text only)
homework1:
@echo "=== Running Homework 1 ==="
@echo "This homework contains algorithm descriptions:"
@if [ -f "$(HW1_DIR)/Homework1.txt" ]; then \
head -10 "$(HW1_DIR)/Homework1.txt"; \
echo "... (showing first 10 lines)"; \
else \
echo "Homework1.txt not found"; \
fi
@echo
# Homework 2 - GGPA Program
homework2: $(HW2_DIR)/Homework2
@echo "=== Running Homework 2 ==="
@echo "Providing test input: height=10, width=5, length=8, angle=0.5"
cd $(HW2_DIR) && echo -e "10\n5\n8\n0.5" | ./Homework2
@echo
$(HW2_DIR)/Homework2: $(HW2_DIR)/Homework2.cpp
cd $(HW2_DIR) && $(CXX) $(CXXFLAGS) Homework2.cpp -o Homework2
# Homework 3 - SherlockHolmes
homework3: $(HW3_DIR)/SherlockHolmes
@echo "=== Running Homework 3 ==="
cd $(HW3_DIR) && ./SherlockHolmes
@echo
$(HW3_DIR)/SherlockHolmes: $(HW3_DIR)/SherlockHolmes.cpp
cd $(HW3_DIR) && $(CXX) $(CXXFLAGS) SherlockHolmes.cpp -o SherlockHolmes
# Homework 4 - WavelengthCalculator5000
homework4: $(HW4_DIR)/WavelengthCalculator5000
@echo "=== Running Homework 4 ==="
cd $(HW4_DIR) && ./WavelengthCalculator5000
@echo
$(HW4_DIR)/WavelengthCalculator5000: $(HW4_DIR)/WavelengthCalculator5000.cpp
cd $(HW4_DIR) && $(CXX) $(CXXFLAGS) WavelengthCalculator5000.cpp -o WavelengthCalculator5000
# Homework 5 - TODist
homework5: $(HW5_DIR)/TODist
@echo "=== Running Homework 5 ==="
cd $(HW5_DIR) && ./TODist
@echo
$(HW5_DIR)/TODist: $(HW5_DIR)/TODist.cpp
cd $(HW5_DIR) && $(CXX) $(CXXFLAGS) TODist.cpp -o TODist
# Homework 6 - WavelengthCalculator5001 (multi-file)
homework6: $(HW6_DIR)/WavelengthCalculator5001
@echo "=== Running Homework 6 ==="
cd $(HW6_DIR) && ./WavelengthCalculator5001
@echo
$(HW6_DIR)/WavelengthCalculator5001: $(HW6_DIR)/WavelengthCalculator5001.cpp $(HW6_DIR)/WavelengthCalculator5001_Functions.cpp $(HW6_DIR)/WavelengthCalculator5001.h
cd $(HW6_DIR) && $(CXX) $(CXXFLAGS) WavelengthCalculator5001.cpp WavelengthCalculator5001_Functions.cpp -o WavelengthCalculator5001
# Homework 7 - Xcode project (compile with g++)
homework7: $(HW7_DIR)/hw7
@echo "=== Running Homework 7 ==="
cd $(HW7_DIR) && ./hw7
@echo
$(HW7_DIR)/hw7: $(HW7_DIR)/Homework7/main.cpp
cd $(HW7_DIR) && $(CXX) $(CXXFLAGS) Homework7/main.cpp -o hw7
# Homework 8 - Xcode project (multi-file)
homework8: $(HW8_DIR)/hw8
@echo "=== Running Homework 8 ==="
cd $(HW8_DIR) && ./hw8
@echo
$(HW8_DIR)/hw8: $(HW8_DIR)/Homework\ 8/main.cpp $(HW8_DIR)/Homework\ 8/Functions.cpp $(HW8_DIR)/Homework\ 8/Functions.h $(HW8_DIR)/Homework\ 8/Constants.h
cd $(HW8_DIR) && $(CXX) $(CXXFLAGS) "Homework 8/main.cpp" "Homework 8/Functions.cpp" -o hw8
# Clean target
clean:
@echo "Cleaning build artifacts..."
-rm -f $(HW2_DIR)/Homework2
-rm -f $(HW3_DIR)/SherlockHolmes
-rm -f $(HW4_DIR)/WavelengthCalculator5000
-rm -f $(HW5_DIR)/TODist
-rm -f $(HW6_DIR)/WavelengthCalculator5001
-rm -f $(HW7_DIR)/hw7
-rm -f $(HW8_DIR)/hw8
@echo "Clean complete."