1
1
# === Phony Targets ===
2
2
.PHONY : all help clean rust-components rust clean-rust java-linker clean-java-linker \
3
3
shim-metadata-gen clean-shim-metadata-gen asm-processor clean-asm-processor \
4
- library clean-library gen-files clean-gen-files
4
+ library clean-library gen-files clean-gen-files ci
5
5
6
6
# === Terminal Colors ===
7
7
GREEN := \033[1;32m
@@ -19,12 +19,18 @@ LIBRARY_JAR := $(LIBRARY_DIR)/build/libs/library-0.1.0.jar
19
19
all : rust gen-files java-linker asm-processor
20
20
@echo " $( GREEN) ✨ Build complete! ✨$( RESET) "
21
21
22
+ # === CI Target ===
23
+ # Running "make ci" sets IS_CI=1 and then behaves exactly like "make all"
24
+ ci :
25
+ $(MAKE ) all IS_CI=1
26
+
22
27
# === Help ===
23
28
help :
24
29
@echo " $( CYAN) 🛠️ Makefile for building the project$( RESET) "
25
30
@echo " "
26
31
@echo " Available targets:"
27
32
@echo " make all - Build all components"
33
+ @echo " make ci - Build all components in CI mode (skips rust-components and shim-metadata-gen)"
28
34
@echo " make clean - Clean all components"
29
35
@echo " make rust-components - Install needed Rust components"
30
36
@echo " make rust - Build the Rust root project"
@@ -38,12 +44,18 @@ help:
38
44
# === Needed rust components ===
39
45
rust-components :
40
46
@echo " $( CYAN) 🔧 Installing Rust components...$( RESET) "
41
- rustup component add rust-src rustc-dev llvm-tools-preview
47
+ rustup component add rustc-dev llvm-tools
42
48
43
49
# === Rust root project (Cargo) ===
50
+ ifeq ($(IS_CI ) ,1)
51
+ rust : $(SHIM_METADATA_GEN_DIR ) /core.json
52
+ @echo " $( CYAN) 📦 Building Rust root project...$( RESET) "
53
+ cargo build
54
+ else
44
55
rust : $(SHIM_METADATA_GEN_DIR ) /core.json rust-components
45
56
@echo " $( CYAN) 📦 Building Rust root project...$( RESET) "
46
57
cargo build
58
+ endif
47
59
48
60
clean-rust :
49
61
@echo " $( CYAN) 🧹 Cleaning Rust root project...$( RESET) "
@@ -60,8 +72,14 @@ clean-java-linker:
60
72
61
73
# === Library Shim Metadata Generator ===
62
74
$(SHIM_METADATA_GEN_DIR ) /core.json : library
63
- @echo " $( CYAN) 🛠️ Generating library shim metadata...$( RESET) "
64
- cd $(SHIM_METADATA_GEN_DIR ) && cargo run -- ../$(LIBRARY_JAR ) ./core.json
75
+ @if [ " $( IS_CI) " = " 1" ]; then \
76
+ echo " $( CYAN) CI mode: skipping shim-metadata-gen$( RESET) " ; \
77
+ elif [ -f $@ ]; then \
78
+ echo " $( CYAN) core.json already exists, skipping shim-metadata-gen$( RESET) " ; \
79
+ else \
80
+ echo " $( CYAN) 🛠️ Generating library shim metadata...$( RESET) " ; \
81
+ cd $(SHIM_METADATA_GEN_DIR ) && cargo run -- ../$(LIBRARY_JAR ) ./core.json; \
82
+ fi
65
83
66
84
clean-shim-metadata-gen :
67
85
@echo " $( CYAN) 🧹 Cleaning shim-metadata-gen...$( RESET) "
@@ -88,7 +106,7 @@ clean-library:
88
106
@echo " $( CYAN) 🧹 Cleaning library shim...$( RESET) "
89
107
cd $(LIBRARY_DIR ) && gradle clean
90
108
91
- # === Generate files from templates ==
109
+ # === Generate files from templates ===
92
110
gen-files : clean-gen-files
93
111
@echo " $( CYAN) 🛠️ Generating files from templates...$( RESET) "
94
112
python3 GenerateFiles.py
0 commit comments