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
@@ -16,15 +16,25 @@ LIBRARY_DIR := library
16
16
LIBRARY_JAR := $(LIBRARY_DIR ) /build/libs/library-0.1.0.jar
17
17
18
18
# === Default Target ===
19
+ ifeq ($(IS_CI ) ,1)
20
+ all : rust java-linker asm-processor
21
+ @echo " $( GREEN) ✨ Build complete in CI mode! ✨$( RESET) "
22
+ else
19
23
all : rust gen-files java-linker asm-processor
20
24
@echo " $( GREEN) ✨ Build complete! ✨$( RESET) "
25
+ endif
26
+
27
+ # === CI Target ===
28
+ ci :
29
+ $(MAKE ) all IS_CI=1
21
30
22
31
# === Help ===
23
32
help :
24
33
@echo " $( CYAN) 🛠️ Makefile for building the project$( RESET) "
25
34
@echo " "
26
35
@echo " Available targets:"
27
36
@echo " make all - Build all components"
37
+ @echo " make ci - Build all components in CI mode (skips rust-components and shim-metadata-gen)"
28
38
@echo " make clean - Clean all components"
29
39
@echo " make rust-components - Install needed Rust components"
30
40
@echo " make rust - Build the Rust root project"
@@ -38,12 +48,18 @@ help:
38
48
# === Needed rust components ===
39
49
rust-components :
40
50
@echo " $( CYAN) 🔧 Installing Rust components...$( RESET) "
41
- rustup component add rust-src rustc-dev llvm-tools-preview
51
+ rustup component add rustc-dev llvm-tools
42
52
43
53
# === Rust root project (Cargo) ===
54
+ ifeq ($(IS_CI ) ,1)
55
+ rust : $(SHIM_METADATA_GEN_DIR ) /core.json
56
+ @echo " $( CYAN) 📦 Building Rust root project...$( RESET) "
57
+ cargo build
58
+ else
44
59
rust : $(SHIM_METADATA_GEN_DIR ) /core.json rust-components
45
60
@echo " $( CYAN) 📦 Building Rust root project...$( RESET) "
46
61
cargo build
62
+ endif
47
63
48
64
clean-rust :
49
65
@echo " $( CYAN) 🧹 Cleaning Rust root project...$( RESET) "
@@ -60,8 +76,14 @@ clean-java-linker:
60
76
61
77
# === Library Shim Metadata Generator ===
62
78
$(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
79
+ @if [ " $( IS_CI) " = " 1" ]; then \
80
+ echo " $( CYAN) CI mode: skipping shim-metadata-gen$( RESET) " ; \
81
+ elif [ -f $@ ]; then \
82
+ echo " $( CYAN) core.json already exists, skipping shim-metadata-gen$( RESET) " ; \
83
+ else \
84
+ echo " $( CYAN) 🛠️ Generating library shim metadata...$( RESET) " ; \
85
+ cd $(SHIM_METADATA_GEN_DIR ) && cargo run -- ../$(LIBRARY_JAR ) ./core.json; \
86
+ fi
65
87
66
88
clean-shim-metadata-gen :
67
89
@echo " $( CYAN) 🧹 Cleaning shim-metadata-gen...$( RESET) "
@@ -71,24 +93,40 @@ clean-shim-metadata-gen:
71
93
# === ASM Processor (Gradle) ===
72
94
asm-processor :
73
95
@echo " $( CYAN) ⚙️ Building ASM processor...$( RESET) "
96
+ ifeq ($(IS_CI ) ,1)
97
+ cd $(ASM_PROCESSOR_DIR) && gradle --no-daemon shadowJar
98
+ else
74
99
cd $(ASM_PROCESSOR_DIR) && gradle shadowJar
100
+ endif
75
101
76
102
clean-asm-processor :
77
103
@echo " $( CYAN) 🧹 Cleaning ASM processor...$( RESET) "
104
+ ifeq ($(IS_CI ) ,1)
105
+ cd $(ASM_PROCESSOR_DIR) && gradle --no-daemon clean
106
+ else
78
107
cd $(ASM_PROCESSOR_DIR) && gradle clean
108
+ endif
79
109
80
110
# === Standard Library Shim (Gradle) ===
81
111
library : $(LIBRARY_JAR )
82
112
83
113
$(LIBRARY_JAR ) :
84
114
@echo " $( CYAN) 📚 Building standard library shim...$( RESET) "
115
+ ifeq ($(IS_CI ) ,1)
116
+ cd $(LIBRARY_DIR) && gradle --no-daemon build && cd build/distributions && unzip -o library-0.1.0.zip
117
+ else
85
118
cd $(LIBRARY_DIR) && gradle build && cd build/distributions && unzip -o library-0.1.0.zip
119
+ endif
86
120
87
121
clean-library :
88
122
@echo " $( CYAN) 🧹 Cleaning library shim...$( RESET) "
123
+ ifeq ($(IS_CI ) ,1)
124
+ cd $(LIBRARY_DIR) && gradle --no-daemon clean
125
+ else
89
126
cd $(LIBRARY_DIR) && gradle clean
127
+ endif
90
128
91
- # === Generate files from templates ==
129
+ # === Generate files from templates ===
92
130
gen-files : clean-gen-files
93
131
@echo " $( CYAN) 🛠️ Generating files from templates...$( RESET) "
94
132
python3 GenerateFiles.py
@@ -100,4 +138,4 @@ clean-gen-files:
100
138
101
139
# === Clean All ===
102
140
clean : clean-rust clean-java-linker clean-asm-processor clean-library clean-shim-metadata-gen clean-gen-files
103
- @echo " $( GREEN) 🧼 All clean!$( RESET) "
141
+ @echo " $( GREEN) 🧼 All clean!$( RESET) "
0 commit comments