@@ -101,13 +101,14 @@ $(PATCH_DEV_DIR)/th17/st%.ecl: game-files/patched/st%.txt game-files/patched/ECL
101
101
DIR_TO_PACK =.make/dist/seasonize-v$(VERSION )
102
102
PACKED_PATCH_DIR =$(DIR_TO_PACK ) /seasonize
103
103
THCRAP_CONFIG_FILENAME =seasonize.js
104
+ BUILD_THCRAP_DIR =.make/thcrap
104
105
PACKED_THCRAP_DIR =$(DIR_TO_PACK ) /thcrap
105
106
PACKED_EXE_DIR =$(DIR_TO_PACK ) /game-files
106
- PROOF_OF_THCRAP =$(PACKED_THCRAP_DIR ) /bin/thcrap_loader.exe
107
+ PROOF_OF_THCRAP =$(BUILD_THCRAP_DIR ) /bin/thcrap_loader.exe
107
108
PROOFS_OF_PATCHES = \
108
- $(PACKED_THCRAP_DIR ) /repos/thpatch/lang_en/patch.js \
109
- $(PACKED_THCRAP_DIR ) /repos/ExpHP/c_key/patch.js \
110
- $(PACKED_THCRAP_DIR ) /repos/32th/score_uncap/patch.js \
109
+ $(BUILD_THCRAP_DIR ) /repos/thpatch/lang_en/patch.js \
110
+ $(BUILD_THCRAP_DIR ) /repos/ExpHP/c_key/patch.js \
111
+ $(BUILD_THCRAP_DIR ) /repos/32th/score_uncap/patch.js \
111
112
# end
112
113
PACKED_SOURCE_ARCHIVE = $(DIR_TO_PACK ) /seasonize-v$(VERSION ) -src.tar.gz
113
114
ECLPLUS_REPO_DIR = .make/ECLplus
@@ -130,13 +131,8 @@ THINGS_TO_PACK = \
130
131
$(DIR_TO_PACK ) /LICENSE_ECLPLUS.txt \
131
132
$(DIR_TO_PACK ) /README.md \
132
133
$(PACKED_LAUNCHER_EXE ) \
133
- $(PROOF_OF_THCRAP ) \
134
- $(PROOF_OF_CKEY_PATCH ) \
135
- $(PROOF_OF_EN_PATCH ) \
136
- $(PACKED_THCRAP_DIR ) /bin/thcrap_update_nope.dll \
137
- $(PACKED_THCRAP_DIR ) /config/games.js \
138
- $(PACKED_THCRAP_DIR ) /config/$(THCRAP_CONFIG_FILENAME ) \
139
134
$(PACKED_ECLPLUS_FILES ) \
135
+ copy-thcrap-to-dist \
140
136
copy-dist-patch-files \
141
137
check-no-game-files \
142
138
# end
@@ -164,22 +160,29 @@ $(ECLPLUS_BUILD_ARTIFACTS) &: .make/submodules.stamp
164
160
@echo >&2 ' =============================================='
165
161
@false
166
162
163
+ FILES_REQUIRED_IN_THCRAP = \
164
+ $(PROOF_OF_THCRAP ) \
165
+ $(PROOFS_OF_PATCHES ) \
166
+ $(BUILD_THCRAP_DIR ) /bin/thcrap_update_nope.dll \
167
+ $(BUILD_THCRAP_DIR ) /config/games.js \
168
+ $(BUILD_THCRAP_DIR ) /config/$(THCRAP_CONFIG_FILENAME ) \
169
+
167
170
$(PROOF_OF_THCRAP ) :
168
- rm -rf $(PACKED_THCRAP_DIR )
169
- mkdir -p $(PACKED_THCRAP_DIR )
170
- cd $(PACKED_THCRAP_DIR ) && ( \
171
+ rm -rf $(BUILD_THCRAP_DIR )
172
+ mkdir -p $(BUILD_THCRAP_DIR )
173
+ cd $(BUILD_THCRAP_DIR ) && ( \
171
174
wget -O thcrap.zip https://github.com/thpatch/thcrap/releases/download/$(THCRAP_VERSION ) /thcrap.zip && \
172
175
unzip thcrap.zip && \
173
176
rm thcrap.zip && \
174
177
true) || { rm -f $( PROOF_OF_THCRAP) ; false ; }
175
178
176
179
# The order-only prerequisite here is to prevent interleaving output to
177
180
# stderr when both of these need attention.
178
- $(PROOFS_OF_PATCHES ) & : $(PROOF_OF_THCRAP ) $(PACKED_THCRAP_DIR ) /config/games.js | $(ECLPLUS_BUILD_ARTIFACTS )
181
+ $(PROOFS_OF_PATCHES ) & : $(PROOF_OF_THCRAP ) $(BUILD_THCRAP_DIR ) /config/games.js | $(ECLPLUS_BUILD_ARTIFACTS )
179
182
@echo >&2 ' =============================================='
180
183
@echo >&2 " == Hi! It's me again, the makefile that can't do anything!"
181
184
@echo >&2 " == I know it's a pain and all, but... could you by any chance run"
182
- @echo >&2 " == $( PACKED_THCRAP_DIR ) /thcrap_configure.exe"
185
+ @echo >&2 " == $( BUILD_THCRAP_DIR ) /thcrap_configure.exe"
183
186
@echo >&2 " == and create a configuration with the following patches installed?"
184
187
@echo >&2 " == thpatch/lang_en"
185
188
@echo >&2 " == 32th/score_uncap"
@@ -190,17 +193,22 @@ $(PROOFS_OF_PATCHES) &: $(PROOF_OF_THCRAP) $(PACKED_THCRAP_DIR)/config/games.js
190
193
191
194
# thcrap_update.dll needs to exist for patches to be downloaded.
192
195
# After that, we disable it for distribution.
193
- $(PACKED_THCRAP_DIR ) /bin/thcrap_update_nope.dll : $(PROOFS_OF_PATCHES )
196
+ $(BUILD_THCRAP_DIR ) /bin/thcrap_update_nope.dll : $(PROOFS_OF_PATCHES )
194
197
@# The check for existence is in case something somehow causes this to be spuriously run again
195
198
@# after thcrap_update.dll has already been moved.
196
199
@# We don't list thcrap_update.dll as a dependency because, without a recipe, make would treat
197
200
@# it like a phony target and constantly rerun this rule.
198
- [ -e " $@ " ] || mv $(PACKED_THCRAP_DIR ) /bin/thcrap_update.dll $@
201
+ [ -e " $@ " ] || mv $(BUILD_THCRAP_DIR ) /bin/thcrap_update.dll $@
199
202
touch $@
200
203
201
- $(PACKED_THCRAP_DIR ) /config/% .js : source/dist-files/% .js $(PROOF_OF_THCRAP )
204
+ $(BUILD_THCRAP_DIR ) /config/% .js : source/dist-files/% .js $(PROOF_OF_THCRAP )
202
205
mkdir -p $(@D ) && cp $< $@
203
206
207
+ .PHONY : copy-thcrap-to-dist
208
+ copy-thcrap-to-dist : $(FILES_REQUIRED_IN_THCRAP )
209
+ rm -rf $(PACKED_THCRAP_DIR )
210
+ cp -a $(BUILD_THCRAP_DIR ) $(PACKED_THCRAP_DIR )
211
+
204
212
$(DIR_TO_PACK ) /LICENSE_ECLPLUS.txt : LICENSE_ECLPLUS.txt
205
213
mkdir -p $(@D ) && cp $< $@
206
214
$(DIR_TO_PACK ) /README.md : README.md
@@ -211,7 +219,7 @@ $(DIR_TO_PACK)/README.md: README.md
211
219
212
220
$(PACKED_LAUNCHER_EXE ) : $(BUILT_LAUNCHER_EXE )
213
221
mkdir -p $(@D ) && cp $< $@
214
- $(BUILT_LAUNCHER_EXE ) : $(LAUNCHER_SOURCE_FILES ) $(PACKED_THCRAP_DIR ) /config/games.js | $(ECLPLUS_BUILD_ARTIFACTS )
222
+ $(BUILT_LAUNCHER_EXE ) : $(LAUNCHER_SOURCE_FILES ) $(BUILD_THCRAP_DIR ) /config/games.js | $(ECLPLUS_BUILD_ARTIFACTS )
215
223
@echo >&2 ' =============================================='
216
224
@echo >&2 ' == NOT FOUND:' $@
217
225
@echo >&2 ' =='
@@ -245,5 +253,6 @@ check-no-game-files:
245
253
# .PHONY targets with echoed output are included here too so that repeated runs to make
246
254
# don't repeatedly produce interleaved output.
247
255
$(BUILT_LAUNCHER_EXE ) : | $(ECLPLUS_BUILD_ARTIFACTS ) $(PROOFS_OF_PATCHES )
256
+ copy-thcrap-to-dist : | $(BUILT_LAUNCHER_EXE )
248
257
copy-dist-patch-files : | $(BUILT_LAUNCHER_EXE )
249
- check-no-game-files : | copy-dist-patch-files pack-source-archive
258
+ check-no-game-files : | copy-dist-patch-files pack-source-archive copy-thcrap-to-dist
0 commit comments