-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
51 lines (41 loc) · 1015 Bytes
/
Copy pathMakefile
File metadata and controls
51 lines (41 loc) · 1015 Bytes
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
# 1. Variables Definition
CXX = g++
CXXFLAGS = -O3 -std=c++17
PYTHON = python3
NODE = node
# 2. PHONY Targets
.PHONY: cpp py js clean push validate test benchmark index
# 3. Execution Rules
cpp:
@echo "Compiling and running C++ file: $(file)..."
$(CXX) $(CXXFLAGS) $(file) -o executable
./executable
py:
@echo "Running Python script: $(file)..."
$(PYTHON) $(file)
js:
@echo "Running Node.js script: $(file)..."
$(NODE) $(file)
# 4. Infrastructure Rules
validate:
@echo "Running Repository Validator..."
python scripts/validator.py
test:
@echo "Running Test Framework..."
python scripts/tester.py
benchmark:
@echo "Running Reproducible Benchmarking..."
python scripts/benchmarker.py
index:
@echo "Generating Problem Index..."
python scripts/indexer.py
# 5. Clean Rule
clean:
@echo "Cleaning up workspace..."
rm -f executable test_bin test_bin.exe
# 6. Git Automation Rule
push:
@echo "Staging, Committing, and Pushing to GitHub..."
git add .
git commit -m "$(msg)"
git push origin main