77TARGET := $(LIBRETRO)_libretro.js
88endif
99endif
10+ TARGET_BASE := $(subst .js,,$(TARGET))
1011
1112OS = Emscripten
1213OBJ :=
@@ -293,18 +294,24 @@ RARCH_OBJ := $(addprefix $(OBJDIR)/,$(OBJ))
293294
294295all: $(TARGET)
295296
296- $(libretro_new) : $(libretro)
297- mv -f $(libretro) $(libretro_new)
297+ $(libretro_new): ;
298+
299+ mv_libretro:
300+ mv -f $(libretro) $(libretro_new) || true
298301
299302# until emscripten adds something like WASM_WORKERS=2 but for audio worklets, DIY.
300- $(TARGET): $(RARCH_OBJ) $(libretro_new)
303+ ifeq ($(HAVE_AUDIOWORKLET), 1)
304+ $(TARGET): $(RARCH_OBJ) $(libretro_new) mv_libretro
305+ @$(if $(Q), $(shell echo echo "LD $@ \<obj\> $(libretro_new) $(LIBS) $(LDFLAGS)"),)
306+ $(Q)$(LD) -o $@ $(RARCH_OBJ) $(libretro_new) $(LIBS) $(LDFLAGS)
307+ $(Q)tr -d '\n' < "$(TARGET_BASE).aw.js" | sed -e "s/[\/&]/\\\\&/g" -e "s/'/\\\\\\\\&/g" > _audioworklet.js
308+ $(Q)sed -i.bak -e "s/\"$(TARGET_BASE)\.aw\.js\"/URL.createObjectURL(new Blob(['$$(cat _audioworklet.js)'],{type:'text\/javascript'}))/" -- "$@"
309+ $(Q)rm -f "$(TARGET_BASE).aw.js" _audioworklet.js "$@".bak
310+ else
311+ $(TARGET): $(RARCH_OBJ) $(libretro_new) mv_libretro
301312 @$(if $(Q), $(shell echo echo "LD $@ \<obj\> $(libretro_new) $(LIBS) $(LDFLAGS)"),)
302313 $(Q)$(LD) -o $@ $(RARCH_OBJ) $(libretro_new) $(LIBS) $(LDFLAGS)
303- @if [ "$(HAVE_AUDIOWORKLET)" = 1 ]; then\
304- tr -d '\n' < "$${TARGET%%\.js}.aw.js" | sed -e "s/[\/&]/\\\\&/g" -e "s/'/\\\\\\\\&/g" > _audioworklet.js;\
305- sed -i "s/\"$${TARGET%%\.js}\.aw\.js\"/URL.createObjectURL(new Blob(['$$(cat _audioworklet.js)'],{type:'text\/javascript'}))/" "$@";\
306- rm "$${TARGET%%\.js}.aw.js" _audioworklet.js;\
307- fi
314+ endif
308315
309316$(OBJDIR)/%.o: %.c
310317 @mkdir -p $(dir $@)
@@ -320,4 +327,4 @@ clean:
320327 rm -rf $(OBJDIR)
321328 rm -f $(TARGET)
322329
323- .PHONY: all clean
330+ .PHONY: all clean mv_libretro
0 commit comments