Compare commits
10 Commits
d95313cd98
...
0a36344f49
Author | SHA1 | Date | |
---|---|---|---|
0a36344f49 | |||
02931280d0 | |||
9d27eb5a98 | |||
2d5b01092b | |||
656d4145c1 | |||
735a0839ee | |||
548787d7b2 | |||
60916768ac | |||
bee745b199 | |||
928887d979 |
@ -1,4 +1,4 @@
|
|||||||
Copyright 2020 LoRd_MuldeR <mulder2@gmx.de>
|
Copyright 2024 LoRd_MuldeR <mulder2@gmx.de>
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
this software and associated documentation files (the "Software"), to deal in
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
393
Makefile
393
Makefile
@ -56,16 +56,17 @@ initialize:
|
|||||||
|
|
||||||
.PHONY: manifests
|
.PHONY: manifests
|
||||||
manifests: initialize
|
manifests: initialize
|
||||||
mkdir -p $(@D)
|
@mkdir -p tmp/assets
|
||||||
sed -e 's/$${{version}}/$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH).$(BUILDNO)/g' -e 's/$${{processorArchitecture}}/$(CPU_ARCH)/g' res/assets/manifest-console.xml > tmp/assets/manifest-console.$(CPU_ARCH).xml
|
sed -e 's/$${{version}}/$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH).$(BUILDNO)/g' -e 's/$${{processorArchitecture}}/$(CPU_ARCH)/g' res/assets/manifest-console.xml > tmp/assets/manifest-console.$(CPU_ARCH).xml
|
||||||
sed -e 's/$${{version}}/$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH).$(BUILDNO)/g' -e 's/$${{processorArchitecture}}/$(CPU_ARCH)/g' res/assets/manifest-windows.xml > tmp/assets/manifest-windows.$(CPU_ARCH).xml
|
sed -e 's/$${{version}}/$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH).$(BUILDNO)/g' -e 's/$${{processorArchitecture}}/$(CPU_ARCH)/g' res/assets/manifest-windows.xml > tmp/assets/manifest-windows.$(CPU_ARCH).xml
|
||||||
|
|
||||||
.PHONY: resources
|
.PHONY: resources
|
||||||
resources: manifests
|
resources: manifests
|
||||||
windres -DL5J_CPU_ARCH=$(CPU_ARCH) -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -o obj/common-console.$(CPU_ARCH).o res/common.rc
|
windres -DL5J_CPU_ARCH=$(CPU_ARCH) -DL5J_BUILDNO=$(BUILDNO) -o obj/common.$(CPU_ARCH).o res/common.rc
|
||||||
windres -DL5J_CPU_ARCH=$(CPU_ARCH) -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -o obj/common-windows.$(CPU_ARCH).o res/common.rc
|
windres -DL5J_CPU_ARCH=$(CPU_ARCH) -DL5J_BUILDNO=$(BUILDNO) -o obj/manifest-console.$(CPU_ARCH).o res/manifest-console.rc
|
||||||
windres -DL5J_CPU_ARCH=$(CPU_ARCH) -DL5J_BUILDNO=$(BUILDNO) -o obj/splash_screen.$(CPU_ARCH).o res/splash_screen.rc
|
windres -DL5J_CPU_ARCH=$(CPU_ARCH) -DL5J_BUILDNO=$(BUILDNO) -o obj/manifest-windows.$(CPU_ARCH).o res/manifest-windows.rc
|
||||||
windres -DL5J_CPU_ARCH=$(CPU_ARCH) -DL5J_BUILDNO=$(BUILDNO) -o obj/registry.$(CPU_ARCH).o res/registry.rc
|
windres -DL5J_CPU_ARCH=$(CPU_ARCH) -DL5J_BUILDNO=$(BUILDNO) -o obj/registry.$(CPU_ARCH).o res/registry.rc
|
||||||
|
windres -DL5J_CPU_ARCH=$(CPU_ARCH) -DL5J_BUILDNO=$(BUILDNO) -o obj/splash_screen.$(CPU_ARCH).o res/splash_screen.rc
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean: initialize
|
clean: initialize
|
||||||
@ -77,338 +78,338 @@ clean: initialize
|
|||||||
# Binaries
|
# Binaries
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
.PHONY: l5j_AC5E0F7B
|
.PHONY: launch5j_B855
|
||||||
l5j_AC5E0F7B: resources
|
launch5j_B855: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH).exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH).exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH).exe
|
strip bin/launch5j_$(CPU_ARCH).exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_D3650C28
|
.PHONY: launch5j_A2FE
|
||||||
l5j_D3650C28: resources
|
launch5j_A2FE: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_noenc.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_07E2C001
|
.PHONY: launch5j_D99E
|
||||||
l5j_07E2C001: resources
|
launch5j_D99E: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nosplash.exe src/head.c obj/common-windows.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nosplash.exe
|
strip bin/launch5j_$(CPU_ARCH)_nosplash.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_1A7CF93E
|
.PHONY: launch5j_6DCE
|
||||||
l5j_1A7CF93E: resources
|
launch5j_6DCE: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nosplash_noenc.exe src/head.c obj/common-windows.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nosplash_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nosplash_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_nosplash_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_E528C43C
|
.PHONY: launch5j_9E54
|
||||||
l5j_E528C43C: resources
|
launch5j_9E54: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nowait.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nowait.exe
|
strip bin/launch5j_$(CPU_ARCH)_nowait.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_F3DBFECB
|
.PHONY: launch5j_1CDC
|
||||||
l5j_F3DBFECB: resources
|
launch5j_1CDC: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nowait_noenc.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nowait_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nowait_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_nowait_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_3714ED45
|
.PHONY: launch5j_459A
|
||||||
l5j_3714ED45: resources
|
launch5j_459A: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nowait_nosplash.exe src/head.c obj/common-windows.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nowait_nosplash.exe
|
strip bin/launch5j_$(CPU_ARCH)_nowait_nosplash.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_8EB7DCEA
|
.PHONY: launch5j_AA99
|
||||||
l5j_8EB7DCEA: resources
|
launch5j_AA99: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nowait_nosplash_noenc.exe src/head.c obj/common-windows.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nowait_nosplash_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nowait_nosplash_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_nowait_nosplash_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_A6ADF807
|
.PHONY: launch5j_2F4C
|
||||||
l5j_A6ADF807: resources
|
launch5j_2F4C: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_registry.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_registry.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_registry.exe
|
strip bin/launch5j_$(CPU_ARCH)_registry.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_FD9D0A03
|
.PHONY: launch5j_1A0D
|
||||||
l5j_FD9D0A03: resources
|
launch5j_1A0D: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_registry_noenc.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_registry_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_registry_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_registry_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_715A4611
|
.PHONY: launch5j_9AA2
|
||||||
l5j_715A4611: resources
|
launch5j_9AA2: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_registry_nosplash.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_registry_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_registry_nosplash.exe
|
strip bin/launch5j_$(CPU_ARCH)_registry_nosplash.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_2342BF21
|
.PHONY: launch5j_7178
|
||||||
l5j_2342BF21: resources
|
launch5j_7178: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_registry_nosplash_noenc.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_registry_nosplash_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_registry_nosplash_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_registry_nosplash_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_CA4AEEEE
|
.PHONY: launch5j_A25D
|
||||||
l5j_CA4AEEEE: resources
|
launch5j_A25D: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_registry_nowait.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_registry_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_registry_nowait.exe
|
strip bin/launch5j_$(CPU_ARCH)_registry_nowait.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_CD6A91A5
|
.PHONY: launch5j_20DF
|
||||||
l5j_CD6A91A5: resources
|
launch5j_20DF: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_registry_nowait_noenc.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_registry_nowait_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_registry_nowait_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_registry_nowait_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_9112B169
|
.PHONY: launch5j_8568
|
||||||
l5j_9112B169: resources
|
launch5j_8568: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_registry_nowait_nosplash.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_registry_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_registry_nowait_nosplash.exe
|
strip bin/launch5j_$(CPU_ARCH)_registry_nowait_nosplash.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_0BF455CD
|
.PHONY: launch5j_2BCA
|
||||||
l5j_0BF455CD: resources
|
launch5j_2BCA: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_registry_nowait_nosplash_noenc.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_registry_nowait_nosplash_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_registry_nowait_nosplash_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_registry_nowait_nosplash_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_A92217A7
|
.PHONY: launch5j_7B70
|
||||||
l5j_A92217A7: resources
|
launch5j_7B70: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_wrapped.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_wrapped.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_wrapped.exe
|
strip bin/launch5j_$(CPU_ARCH)_wrapped.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_5C289D36
|
.PHONY: launch5j_91AC
|
||||||
l5j_5C289D36: resources
|
launch5j_91AC: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_noenc.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_wrapped_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_wrapped_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_E2BC6FC3
|
.PHONY: launch5j_FA0C
|
||||||
l5j_E2BC6FC3: resources
|
launch5j_FA0C: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_nosplash.exe src/head.c obj/common-windows.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_wrapped_nosplash.exe
|
strip bin/launch5j_$(CPU_ARCH)_wrapped_nosplash.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_F8FAA925
|
.PHONY: launch5j_2559
|
||||||
l5j_F8FAA925: resources
|
launch5j_2559: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_nosplash_noenc.exe src/head.c obj/common-windows.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_nosplash_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_wrapped_nosplash_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_wrapped_nosplash_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_BD28CD8F
|
.PHONY: launch5j_2EFE
|
||||||
l5j_BD28CD8F: resources
|
launch5j_2EFE: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_nowait.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_wrapped_nowait.exe
|
strip bin/launch5j_$(CPU_ARCH)_wrapped_nowait.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_3B402EED
|
.PHONY: launch5j_8F9C
|
||||||
l5j_3B402EED: resources
|
launch5j_8F9C: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_nowait_noenc.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_nowait_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_wrapped_nowait_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_wrapped_nowait_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_E3F9AD8D
|
.PHONY: launch5j_3478
|
||||||
l5j_E3F9AD8D: resources
|
launch5j_3478: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_nowait_nosplash.exe src/head.c obj/common-windows.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_wrapped_nowait_nosplash.exe
|
strip bin/launch5j_$(CPU_ARCH)_wrapped_nowait_nosplash.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_66F05454
|
.PHONY: launch5j_4F5B
|
||||||
l5j_66F05454: resources
|
launch5j_4F5B: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_nowait_nosplash_noenc.exe src/head.c obj/common-windows.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_nowait_nosplash_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_wrapped_nowait_nosplash_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_wrapped_nowait_nosplash_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_33F9ED38
|
.PHONY: launch5j_2A1E
|
||||||
l5j_33F9ED38: resources
|
launch5j_2A1E: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry.exe
|
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_5E944098
|
.PHONY: launch5j_FE04
|
||||||
l5j_5E944098: resources
|
launch5j_FE04: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_noenc.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_94CDE204
|
.PHONY: launch5j_2BCE
|
||||||
l5j_94CDE204: resources
|
launch5j_2BCE: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_nosplash.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_nosplash.exe
|
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_nosplash.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_7A0A8164
|
.PHONY: launch5j_9D63
|
||||||
l5j_7A0A8164: resources
|
launch5j_9D63: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_nosplash_noenc.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_nosplash_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_nosplash_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_nosplash_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_C5E0DAF5
|
.PHONY: launch5j_F5D7
|
||||||
l5j_C5E0DAF5: resources
|
launch5j_F5D7: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait.exe
|
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_4ABEF3E6
|
.PHONY: launch5j_33A4
|
||||||
l5j_4ABEF3E6: resources
|
launch5j_33A4: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait_noenc.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=1 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_F7A60AA5
|
.PHONY: launch5j_D3FD
|
||||||
l5j_F7A60AA5: resources
|
launch5j_D3FD: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait_nosplash.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait_nosplash.exe
|
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait_nosplash.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_AA445906
|
.PHONY: launch5j_D36F
|
||||||
l5j_AA445906: resources
|
launch5j_D36F: resources
|
||||||
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait_nosplash_noenc.exe src/head.c obj/common-windows.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
$(CC) $(CFLAGS) -mwindows -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait_nosplash_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-windows.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o -lcomctl32
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait_nosplash_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait_nosplash_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_E5119C07
|
.PHONY: launch5j_F945
|
||||||
l5j_E5119C07: resources
|
launch5j_F945: resources
|
||||||
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nogui.exe src/head.c obj/common-console.$(CPU_ARCH).o
|
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nogui.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-console.$(CPU_ARCH).o
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nogui.exe
|
strip bin/launch5j_$(CPU_ARCH)_nogui.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_05FC33A2
|
.PHONY: launch5j_4745
|
||||||
l5j_05FC33A2: resources
|
launch5j_4745: resources
|
||||||
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nogui_noenc.exe src/head.c obj/common-console.$(CPU_ARCH).o
|
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nogui_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-console.$(CPU_ARCH).o
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nogui_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_nogui_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_FD1A2285
|
.PHONY: launch5j_01E0
|
||||||
l5j_FD1A2285: resources
|
launch5j_01E0: resources
|
||||||
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nogui_nowait.exe src/head.c obj/common-console.$(CPU_ARCH).o
|
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nogui_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-console.$(CPU_ARCH).o
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nogui_nowait.exe
|
strip bin/launch5j_$(CPU_ARCH)_nogui_nowait.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_0A8603AF
|
.PHONY: launch5j_78AA
|
||||||
l5j_0A8603AF: resources
|
launch5j_78AA: resources
|
||||||
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nogui_nowait_noenc.exe src/head.c obj/common-console.$(CPU_ARCH).o
|
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nogui_nowait_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-console.$(CPU_ARCH).o
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nogui_nowait_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_nogui_nowait_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_04592BD0
|
.PHONY: launch5j_B8C6
|
||||||
l5j_04592BD0: resources
|
launch5j_B8C6: resources
|
||||||
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nogui_registry.exe src/head.c obj/common-console.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
|
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nogui_registry.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-console.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nogui_registry.exe
|
strip bin/launch5j_$(CPU_ARCH)_nogui_registry.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_CF815DD1
|
.PHONY: launch5j_3848
|
||||||
l5j_CF815DD1: resources
|
launch5j_3848: resources
|
||||||
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nogui_registry_noenc.exe src/head.c obj/common-console.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
|
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nogui_registry_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-console.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nogui_registry_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_nogui_registry_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_15FAE2C7
|
.PHONY: launch5j_778B
|
||||||
l5j_15FAE2C7: resources
|
launch5j_778B: resources
|
||||||
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nogui_registry_nowait.exe src/head.c obj/common-console.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
|
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nogui_registry_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-console.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nogui_registry_nowait.exe
|
strip bin/launch5j_$(CPU_ARCH)_nogui_registry_nowait.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_5256A700
|
.PHONY: launch5j_627C
|
||||||
l5j_5256A700: resources
|
launch5j_627C: resources
|
||||||
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nogui_registry_nowait_noenc.exe src/head.c obj/common-console.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
|
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=0 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nogui_registry_nowait_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-console.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nogui_registry_nowait_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_nogui_registry_nowait_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_735DFE78
|
.PHONY: launch5j_66EE
|
||||||
l5j_735DFE78: resources
|
launch5j_66EE: resources
|
||||||
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nogui_wrapped.exe src/head.c obj/common-console.$(CPU_ARCH).o
|
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nogui_wrapped.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-console.$(CPU_ARCH).o
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nogui_wrapped.exe
|
strip bin/launch5j_$(CPU_ARCH)_nogui_wrapped.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_4897DF6D
|
.PHONY: launch5j_9FFA
|
||||||
l5j_4897DF6D: resources
|
launch5j_9FFA: resources
|
||||||
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nogui_wrapped_noenc.exe src/head.c obj/common-console.$(CPU_ARCH).o
|
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nogui_wrapped_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-console.$(CPU_ARCH).o
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nogui_wrapped_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_nogui_wrapped_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_C11CE462
|
.PHONY: launch5j_7C79
|
||||||
l5j_C11CE462: resources
|
launch5j_7C79: resources
|
||||||
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nogui_wrapped_nowait.exe src/head.c obj/common-console.$(CPU_ARCH).o
|
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nogui_wrapped_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-console.$(CPU_ARCH).o
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nogui_wrapped_nowait.exe
|
strip bin/launch5j_$(CPU_ARCH)_nogui_wrapped_nowait.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_00128557
|
.PHONY: launch5j_2928
|
||||||
l5j_00128557: resources
|
launch5j_2928: resources
|
||||||
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nogui_wrapped_nowait_noenc.exe src/head.c obj/common-console.$(CPU_ARCH).o
|
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=0 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nogui_wrapped_nowait_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-console.$(CPU_ARCH).o
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nogui_wrapped_nowait_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_nogui_wrapped_nowait_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_7B89D793
|
.PHONY: launch5j_8EFD
|
||||||
l5j_7B89D793: resources
|
launch5j_8EFD: resources
|
||||||
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nogui_wrapped_registry.exe src/head.c obj/common-console.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
|
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nogui_wrapped_registry.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-console.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nogui_wrapped_registry.exe
|
strip bin/launch5j_$(CPU_ARCH)_nogui_wrapped_registry.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_B07DBB1C
|
.PHONY: launch5j_59FE
|
||||||
l5j_B07DBB1C: resources
|
launch5j_59FE: resources
|
||||||
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nogui_wrapped_registry_noenc.exe src/head.c obj/common-console.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
|
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=1 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nogui_wrapped_registry_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-console.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nogui_wrapped_registry_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_nogui_wrapped_registry_noenc.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_ABA57DBA
|
.PHONY: launch5j_C25B
|
||||||
l5j_ABA57DBA: resources
|
launch5j_C25B: resources
|
||||||
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nogui_wrapped_registry_nowait.exe src/head.c obj/common-console.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
|
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=1 -o bin/launch5j_$(CPU_ARCH)_nogui_wrapped_registry_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-console.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nogui_wrapped_registry_nowait.exe
|
strip bin/launch5j_$(CPU_ARCH)_nogui_wrapped_registry_nowait.exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
.PHONY: l5j_20B99C28
|
.PHONY: launch5j_DAFA
|
||||||
l5j_20B99C28: resources
|
launch5j_DAFA: resources
|
||||||
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nogui_wrapped_registry_nowait_noenc.exe src/head.c obj/common-console.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
|
$(CC) $(CFLAGS) -mconsole -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -DL5J_JAR_FILE_WRAPPED=1 -DL5J_DETECT_REGISTRY=1 -DL5J_STAY_ALIVE=0 -DL5J_ENABLE_SPLASH=0 -DL5J_ENCODE_ARGS=0 -o bin/launch5j_$(CPU_ARCH)_nogui_wrapped_registry_nowait_noenc.exe src/head.c obj/common.$(CPU_ARCH).o obj/manifest-console.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
|
||||||
ifeq ($(DEBUG),0)
|
ifeq ($(DEBUG),0)
|
||||||
strip bin/launch5j_$(CPU_ARCH)_nogui_wrapped_registry_nowait_noenc.exe
|
strip bin/launch5j_$(CPU_ARCH)_nogui_wrapped_registry_nowait_noenc.exe
|
||||||
endif
|
endif
|
||||||
@ -419,52 +420,52 @@ endif
|
|||||||
|
|
||||||
.PHONY: all
|
.PHONY: all
|
||||||
all: \
|
all: \
|
||||||
l5j_AC5E0F7B \
|
launch5j_B855 \
|
||||||
l5j_D3650C28 \
|
launch5j_A2FE \
|
||||||
l5j_07E2C001 \
|
launch5j_D99E \
|
||||||
l5j_1A7CF93E \
|
launch5j_6DCE \
|
||||||
l5j_E528C43C \
|
launch5j_9E54 \
|
||||||
l5j_F3DBFECB \
|
launch5j_1CDC \
|
||||||
l5j_3714ED45 \
|
launch5j_459A \
|
||||||
l5j_8EB7DCEA \
|
launch5j_AA99 \
|
||||||
l5j_A6ADF807 \
|
launch5j_2F4C \
|
||||||
l5j_FD9D0A03 \
|
launch5j_1A0D \
|
||||||
l5j_715A4611 \
|
launch5j_9AA2 \
|
||||||
l5j_2342BF21 \
|
launch5j_7178 \
|
||||||
l5j_CA4AEEEE \
|
launch5j_A25D \
|
||||||
l5j_CD6A91A5 \
|
launch5j_20DF \
|
||||||
l5j_9112B169 \
|
launch5j_8568 \
|
||||||
l5j_0BF455CD \
|
launch5j_2BCA \
|
||||||
l5j_A92217A7 \
|
launch5j_7B70 \
|
||||||
l5j_5C289D36 \
|
launch5j_91AC \
|
||||||
l5j_E2BC6FC3 \
|
launch5j_FA0C \
|
||||||
l5j_F8FAA925 \
|
launch5j_2559 \
|
||||||
l5j_BD28CD8F \
|
launch5j_2EFE \
|
||||||
l5j_3B402EED \
|
launch5j_8F9C \
|
||||||
l5j_E3F9AD8D \
|
launch5j_3478 \
|
||||||
l5j_66F05454 \
|
launch5j_4F5B \
|
||||||
l5j_33F9ED38 \
|
launch5j_2A1E \
|
||||||
l5j_5E944098 \
|
launch5j_FE04 \
|
||||||
l5j_94CDE204 \
|
launch5j_2BCE \
|
||||||
l5j_7A0A8164 \
|
launch5j_9D63 \
|
||||||
l5j_C5E0DAF5 \
|
launch5j_F5D7 \
|
||||||
l5j_4ABEF3E6 \
|
launch5j_33A4 \
|
||||||
l5j_F7A60AA5 \
|
launch5j_D3FD \
|
||||||
l5j_AA445906 \
|
launch5j_D36F \
|
||||||
l5j_E5119C07 \
|
launch5j_F945 \
|
||||||
l5j_05FC33A2 \
|
launch5j_4745 \
|
||||||
l5j_FD1A2285 \
|
launch5j_01E0 \
|
||||||
l5j_0A8603AF \
|
launch5j_78AA \
|
||||||
l5j_04592BD0 \
|
launch5j_B8C6 \
|
||||||
l5j_CF815DD1 \
|
launch5j_3848 \
|
||||||
l5j_15FAE2C7 \
|
launch5j_778B \
|
||||||
l5j_5256A700 \
|
launch5j_627C \
|
||||||
l5j_735DFE78 \
|
launch5j_66EE \
|
||||||
l5j_4897DF6D \
|
launch5j_9FFA \
|
||||||
l5j_C11CE462 \
|
launch5j_7C79 \
|
||||||
l5j_00128557 \
|
launch5j_2928 \
|
||||||
l5j_7B89D793 \
|
launch5j_8EFD \
|
||||||
l5j_B07DBB1C \
|
launch5j_59FE \
|
||||||
l5j_ABA57DBA \
|
launch5j_C25B \
|
||||||
l5j_20B99C28
|
launch5j_DAFA
|
||||||
|
|
||||||
|
69
README.md
69
README.md
@ -1,10 +1,10 @@
|
|||||||
![Launch5j](etc/img/logo.png)
|
![Launch5j](etc/img/logo.png)
|
||||||
|
|
||||||
**Java JAR file wrapper for creating Windows native executables**
|
**Java JAR file wrapper for creating Windows™ native executables**
|
||||||
|
|
||||||
# Introduction
|
# Introduction
|
||||||
|
|
||||||
**Launch5j** is a reimagination of “Launch4j”, *with full Unicode support*. This is a tool for wrapping Java applications distributed as JARs in lightweight Windows native executables. The executable can be configured to search for a certain JRE version or use a bundled one. The wrapper also provides better user experience through an application icon, a native pre-JRE splash screen, and a Java download page in case the appropriate JRE cannot be found.
|
**Launch5j** is a reimagination of “Launch4j”, *with full Unicode support*. This is a tool for wrapping Java applications distributed as JARs in lightweight Windows™ native executables. The executable can be configured to search for a certain JRE version or use a bundled one. The wrapper also provides better user experience through an application icon, a native pre-JRE splash screen, and a Java download page in case the appropriate JRE cannot be found.
|
||||||
|
|
||||||
# Usage
|
# Usage
|
||||||
|
|
||||||
@ -70,11 +70,11 @@ Launch5j executables come in a number of variants, allowing you to pick the most
|
|||||||
Expects that the JAR file and the executable launcher have been combined to a *single* file; default variant expects that a separate JAR file is present in the same directory where the executable launcher resides.
|
Expects that the JAR file and the executable launcher have been combined to a *single* file; default variant expects that a separate JAR file is present in the same directory where the executable launcher resides.
|
||||||
|
|
||||||
* **`registry`**
|
* **`registry`**
|
||||||
Tries to automatically detect the install path of the JRE from the Windows registry; default variant expects the JRE to be located in the `runtime` path relative to the location of the executable launcher.
|
Tries to automatically detect the install path of the JRE from the Windows™ registry; default variant expects the JRE to be located in the `runtime` path relative to the location of the executable launcher.
|
||||||
|
|
||||||
At this time, the following Java distributions can be detected from the registry:
|
At this time, the following Java distributions can be detected from the registry:
|
||||||
- [Oracle JDK (JavaSoft)](https://www.oracle.com/java/technologies/javase-downloads.html)
|
- [Oracle JDK (JavaSoft)](https://www.oracle.com/java/technologies/javase-downloads.html)
|
||||||
- [AdoptOpenJDK](https://adoptopenjdk.net/)
|
- [Eclipse Adoptium](https://adoptium.net/)
|
||||||
- [Liberica OpenJDK](https://bell-sw.com/)
|
- [Liberica OpenJDK](https://bell-sw.com/)
|
||||||
- [Zulu OpenJDK](https://www.azul.com/downloads/zulu-community/)
|
- [Zulu OpenJDK](https://www.azul.com/downloads/zulu-community/)
|
||||||
|
|
||||||
@ -92,9 +92,9 @@ Launch5j executables come in a number of variants, allowing you to pick the most
|
|||||||
|
|
||||||
## Supported platforms
|
## Supported platforms
|
||||||
|
|
||||||
All of the above Launch5j variants are available as `x86` (32-Bit) and `x64` (64-Bit) executables. The `x86` (32-Bit) executables can run on *32-Bit* and *64-Bit* versions of Microsoft® Windows™, whereas the `x64` (64-Bit) executables require a *64-Bit* version of Microsoft® Windows™. Consequently, it is generally recommended to distribute the `x86` (32-Bit) launcher executable. Please note that this does **not** restrict the “bitness” of the JRE that can be used. Even the `x86` (32-Bit) launcher executable is perfectly able to detect and launch a *64-Bit* JRE – if it is available.
|
All of the above Launch5j variants are available as `x86` (32-Bit) and `amd64` (64-Bit) executables. The `x86` (32-Bit) executables can run on *32-Bit* and *64-Bit* versions of Microsoft® Windows™, whereas the `amd64` (64-Bit) executables require a *64-Bit* version of Microsoft® Windows™. Consequently, it is generally recommended to distribute the `x86` (32-Bit) launcher executable. Please note that this does **not** restrict the “bitness” of the JRE that can be used. Even the `x86` (32-Bit) launcher executable is perfectly able to detect and launch a *64-Bit* JRE – if it is available.
|
||||||
|
|
||||||
*Note:* Launch5j has been tested to work correctly on Windows XP (Service Pack 2), or a compatible newer version.
|
*Note:* Launch5j has been tested to work correctly on Windows XP with Service Pack 3, or a compatible newer version.
|
||||||
|
|
||||||
|
|
||||||
# Customizations
|
# Customizations
|
||||||
@ -109,24 +109,24 @@ It is ***not*** necessary to re-build the executable files for that purpose. Ins
|
|||||||
|
|
||||||
Some options can be configured via the launcher executable's [STRINGTABLE](https://docs.microsoft.com/en-us/windows/win32/menurc/stringtable-resource) resource:
|
Some options can be configured via the launcher executable's [STRINGTABLE](https://docs.microsoft.com/en-us/windows/win32/menurc/stringtable-resource) resource:
|
||||||
|
|
||||||
* **`ID_STR_HEADING` (#1)**
|
* **`ID_STR_HEADING` (0x1)**
|
||||||
Specifies a custom application title that will be used, e.g., as the heading of message boxes.
|
Specifies a custom application title that will be used, e.g., as the heading of message boxes.
|
||||||
|
|
||||||
* **`ID_STR_JVMARGS` (#2)**
|
* **`ID_STR_JVMARGS` (0x2)**
|
||||||
Specifies *additional* options JVM options to be passed, such as `-Xmx2g` or `-Dproperty=value`.
|
Specifies *additional* options JVM options to be passed, such as `-Xmx2g` or `-Dproperty=value`.
|
||||||
See here for a list of available options:
|
See here for a list of available options:
|
||||||
<https://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html>
|
<https://docs.oracle.com/javase/7/docs/technotes/tools/windows/java.html>
|
||||||
|
|
||||||
* **`ID_STR_CMDARGS` (#3)**
|
* **`ID_STR_CMDARGS` (0x3)**
|
||||||
Specifies *additional* fixed command-line parameters to be passed to the Java application.
|
Specifies *additional* fixed command-line parameters to be passed to the Java application.
|
||||||
|
|
||||||
* **`ID_STR_JREPATH` (#4)**
|
* **`ID_STR_JREPATH` (0x4)**
|
||||||
Specifies the path to the Java runtime (`javaw.exe`) relative to the launcher executable location.
|
Specifies the path to the Java runtime (`javaw.exe`) relative to the launcher executable location.
|
||||||
If not specified, then the *default* runtime path `runtime\\bin\\javaw.exe` is assumed.
|
If not specified, then the *default* runtime path `runtime\\bin\\javaw.exe` is assumed.
|
||||||
|
|
||||||
(This option does **not** apply to the “registry” variant of Launch5j)
|
(This option does **not** apply to the “registry” variant of Launch5j)
|
||||||
|
|
||||||
* **`ID_STR_MUTEXID` (#5)**
|
* **`ID_STR_MUTEXID` (0x5)**
|
||||||
Specifies the application ID to be used when creating the [*single-instance*](http://www.bcbjournal.org/articles/vol3/9911/Single-instance_applications.htm) mutex.
|
Specifies the application ID to be used when creating the [*single-instance*](http://www.bcbjournal.org/articles/vol3/9911/Single-instance_applications.htm) mutex.
|
||||||
The ID **must** be at least 5 characters in length and **should** be a *unique* string for each application!
|
The ID **must** be at least 5 characters in length and **should** be a *unique* string for each application!
|
||||||
If not specified, then **no** mutex will be created and thus *multiple* instances will be allowed.
|
If not specified, then **no** mutex will be created and thus *multiple* instances will be allowed.
|
||||||
@ -135,7 +135,24 @@ Some options can be configured via the launcher executable's [STRINGTABLE](https
|
|||||||
|
|
||||||
(This option does **not** apply to the “nowait” variant of Launch5j)
|
(This option does **not** apply to the “nowait” variant of Launch5j)
|
||||||
|
|
||||||
* **`ID_STR_JAVAMIN` (#6)**
|
* **`ID_STR_HEAPMIN` (0x6)**
|
||||||
|
Specifies the the ***minimum*** Java heap size (i.e. JVM option `-Xms`), as percentage of the total physical memory.
|
||||||
|
This value must be an integral value in the `1` to `100` range.
|
||||||
|
|
||||||
|
(If `ID_STR_HEAPMAX` is specified too, then this value **must** be less than or equal to `ID_STR_HEAPMAX`).
|
||||||
|
|
||||||
|
* **`ID_STR_HEAPMAX` (0x7)**
|
||||||
|
Specifies the the ***maximum*** Java heap size (i.e. JVM option `-Xmx`), as percentage of the total physical memory.
|
||||||
|
This value must be an integral value in the `1` to `100` range.
|
||||||
|
|
||||||
|
(If `ID_STR_HEAPMIN` is specified too, then this value **must** be greater than or equal to `ID_STR_HEAPMIN`).
|
||||||
|
|
||||||
|
* **`ID_STR_NSETCWD` (0x8)**
|
||||||
|
If set to a non-zero value, do ***not*** change the current working directory.
|
||||||
|
|
||||||
|
(By default, the current working directory is set to the directory where the executable file is located)
|
||||||
|
|
||||||
|
* **`ID_STR_JAVAMIN` (0x9)**
|
||||||
Specifies the ***minimum*** supported JRE version, in the **`w.x.y.z`** format (e.g. `11.0.0.0`).
|
Specifies the ***minimum*** supported JRE version, in the **`w.x.y.z`** format (e.g. `11.0.0.0`).
|
||||||
This values is *inclusive*, i.e. the specified JRE version or any newer JRE version will be accepted.
|
This values is *inclusive*, i.e. the specified JRE version or any newer JRE version will be accepted.
|
||||||
If not specified, then the *default* minimum supported JRE version `8.0.0.0` applies.
|
If not specified, then the *default* minimum supported JRE version `8.0.0.0` applies.
|
||||||
@ -144,7 +161,7 @@ Some options can be configured via the launcher executable's [STRINGTABLE](https
|
|||||||
|
|
||||||
(This option only applies to the “registry” variant of Launch5j)
|
(This option only applies to the “registry” variant of Launch5j)
|
||||||
|
|
||||||
* **`ID_STR_JAVAMAX` (#7)**
|
* **`ID_STR_JAVAMAX` (0xA)**
|
||||||
Specifies the ***maximum*** supported JRE version, in the **`w.x.y.z`** format (e.g. `12.0.0.0`).
|
Specifies the ***maximum*** supported JRE version, in the **`w.x.y.z`** format (e.g. `12.0.0.0`).
|
||||||
This values is *exclusive*, i.e. only JRE versions *older* than the specified JRE version will be accepted.
|
This values is *exclusive*, i.e. only JRE versions *older* than the specified JRE version will be accepted.
|
||||||
If not specified, then there is **no** upper limit on the supported JRE version.
|
If not specified, then there is **no** upper limit on the supported JRE version.
|
||||||
@ -153,15 +170,15 @@ Some options can be configured via the launcher executable's [STRINGTABLE](https
|
|||||||
|
|
||||||
(This option only applies to the “registry” variant of Launch5j)
|
(This option only applies to the “registry” variant of Launch5j)
|
||||||
|
|
||||||
* **`ID_STR_BITNESS` (#8)**
|
* **`ID_STR_BITNESS` (0xB)**
|
||||||
Specifies the required ***bitness*** of the JRE. This can be either **`32`** (x86, aka i586) or **`64`** (x86-64).
|
Specifies the required ***bitness*** of the JRE. This can be either **`32`** (x86, aka i586) or **`64`** (x86-64).
|
||||||
If not specified, then 32-Bit *and* 64-Bit JREs are accepted, with a preference to 64-Bit.
|
If not specified, then 32-Bit *and* 64-Bit JREs are accepted, with a preference to 64-Bit.
|
||||||
|
|
||||||
(This option only applies to the “registry” variant of Launch5j)
|
(This option only applies to the “registry” variant of Launch5j)
|
||||||
|
|
||||||
* **`ID_STR_JAVAURL` (#9)**
|
* **`ID_STR_JAVAURL` (0xC)**
|
||||||
The Java download URL that will ne suggested, if **no** suitable JRE could be detected on the machine.
|
The Java download URL that will ne suggested, if **no** suitable JRE could be detected on the machine.
|
||||||
If not specified, wes suggest downloading OpenJDK as provided by the [AdoptOpenJDK](https://adoptopenjdk.net/) project.
|
If not specified, wes suggest downloading OpenJDK, as provided by the [Eclipse Adoptium](https://adoptium.net/) project.
|
||||||
|
|
||||||
*Hint:* The URL must begin with a `http://` or `https://` prefix; otherwise the URL will be ignored!
|
*Hint:* The URL must begin with a `http://` or `https://` prefix; otherwise the URL will be ignored!
|
||||||
|
|
||||||
@ -225,9 +242,21 @@ The launcher executable recognizes the following “special” command-line opti
|
|||||||
Enable experimental “slunk” mode; this is for experts only!
|
Enable experimental “slunk” mode; this is for experts only!
|
||||||
|
|
||||||
|
|
||||||
# Source code
|
# Downloads
|
||||||
|
|
||||||
The source code of **Launch5j** is available from the official Git mirrors at:
|
Official **Launch5j** download mirrors:
|
||||||
|
|
||||||
|
* <https://github.com/lordmulder/Launch5j/releases>
|
||||||
|
|
||||||
|
* <https://sourceforge.net/projects/muldersoft/files/Launch5j/>
|
||||||
|
|
||||||
|
* <https://bitbucket.org/muldersoft/launch5j/downloads/>
|
||||||
|
|
||||||
|
It is *highly recommended* to download Launch5j only from one of the mirrors listed above. We are **not** responsible for the integrity and trustworthiness of Launch5j downloads you may have received from other locations!
|
||||||
|
|
||||||
|
## Source code
|
||||||
|
|
||||||
|
**Launch5j** source code is available via [Git](https://git-scm.com/):
|
||||||
|
|
||||||
* `git clone https://github.com/lordmulder/Launch5j.git`
|
* `git clone https://github.com/lordmulder/Launch5j.git`
|
||||||
|
|
||||||
@ -238,7 +267,7 @@ The source code of **Launch5j** is available from the official Git mirrors at:
|
|||||||
|
|
||||||
# Build instructions
|
# Build instructions
|
||||||
|
|
||||||
In order to build **Launch5j** from the sources, it is recommended to use the [*GNU C Compiler* (GCC)](https://gcc.gnu.org/) for Windows, as provided by the [*Mingw-w64*](http://mingw-w64.org/) project. Other C compilers may work, but are **not** officially supported.
|
In order to build **Launch5j** from the sources, it is recommended to use the [*GNU C Compiler* (GCC)](https://gcc.gnu.org/) for Windows™, as provided by the [*Mingw-w64*](http://mingw-w64.org/) project. Other C compilers may work, but are **not** officially supported.
|
||||||
|
|
||||||
Probably the most simple way to set up the required build environment is by installing the [**MSYS2**](https://www.msys2.org/) distribution, which includes *GCC* (Mingw-w64) as well as all the required build tools, such as *Bash*, *GNU make* and *Git*.
|
Probably the most simple way to set up the required build environment is by installing the [**MSYS2**](https://www.msys2.org/) distribution, which includes *GCC* (Mingw-w64) as well as all the required build tools, such as *Bash*, *GNU make* and *Git*.
|
||||||
|
|
||||||
@ -272,7 +301,7 @@ This project is partly inspired by the “Launch4j” project, even though it ha
|
|||||||
|
|
||||||
This work has been released under the MIT license:
|
This work has been released under the MIT license:
|
||||||
|
|
||||||
Copyright 2020 LoRd_MuldeR <mulder2@gmx.de>
|
Copyright 2024 LoRd_MuldeR <mulder2@gmx.de>
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
this software and associated documentation files (the "Software"), to deal in
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
@ -65,7 +65,7 @@ for %%m in (32,64) do (
|
|||||||
echo Build %%m-Bit
|
echo Build %%m-Bit
|
||||||
echo ========================================================================
|
echo ========================================================================
|
||||||
echo.
|
echo.
|
||||||
call "%MSYS2_DIR%\msys2_shell.cmd" -mingw%%m -no-start -defterm -where "%~dp0" -c "make -B -j8"
|
call "%MSYS2_DIR%\msys2_shell.cmd" -mingw%%m -no-start -defterm -where "%~dp0" -c "make -B"
|
||||||
if not "!ERRORLEVEL!"=="0" goto:BuildHasFailed
|
if not "!ERRORLEVEL!"=="0" goto:BuildHasFailed
|
||||||
echo.
|
echo.
|
||||||
)
|
)
|
||||||
|
@ -11,15 +11,10 @@
|
|||||||
</trustInfo>
|
</trustInfo>
|
||||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||||
<application>
|
<application>
|
||||||
<!--The ID below indicates application support for Windows Vista -->
|
|
||||||
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
|
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
|
||||||
<!--The ID below indicates application support for Windows 7 -->
|
|
||||||
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
|
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
|
||||||
<!--The ID below indicates application support for Windows 8 -->
|
|
||||||
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
|
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
|
||||||
<!--The ID below indicates application support for Windows 8.1 -->
|
|
||||||
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
|
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
|
||||||
<!--The ID below indicates application support for Windows 10 -->
|
|
||||||
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
|
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
|
||||||
</application>
|
</application>
|
||||||
</compatibility>
|
</compatibility>
|
||||||
|
@ -11,15 +11,10 @@
|
|||||||
</trustInfo>
|
</trustInfo>
|
||||||
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
|
||||||
<application>
|
<application>
|
||||||
<!--The ID below indicates application support for Windows Vista -->
|
|
||||||
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
|
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
|
||||||
<!--The ID below indicates application support for Windows 7 -->
|
|
||||||
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
|
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
|
||||||
<!--The ID below indicates application support for Windows 8 -->
|
|
||||||
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
|
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
|
||||||
<!--The ID below indicates application support for Windows 8.1 -->
|
|
||||||
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
|
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
|
||||||
<!--The ID below indicates application support for Windows 10 -->
|
|
||||||
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
|
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
|
||||||
</application>
|
</application>
|
||||||
</compatibility>
|
</compatibility>
|
||||||
|
@ -17,14 +17,6 @@
|
|||||||
|
|
||||||
#include "../src/resource.h"
|
#include "../src/resource.h"
|
||||||
|
|
||||||
#ifndef L5J_CPU_ARCH
|
|
||||||
#error L5J_CPU_ARCH is not defined!
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef L5J_ENABLE_GUI
|
|
||||||
#error L5J_ENABLE_GUI is not defined!
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
// Neutral resources
|
// Neutral resources
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
@ -50,6 +42,9 @@ BEGIN
|
|||||||
ID_STR_CMDARGS L"?" /*additional command-line args*/
|
ID_STR_CMDARGS L"?" /*additional command-line args*/
|
||||||
ID_STR_JREPATH L"?" /*relative path to JRE*/
|
ID_STR_JREPATH L"?" /*relative path to JRE*/
|
||||||
ID_STR_MUTEXID L"?" /*single instance mutex ID*/
|
ID_STR_MUTEXID L"?" /*single instance mutex ID*/
|
||||||
|
ID_STR_HEAPMIN L"?" /*min. heap size, in percent of phys. memory*/
|
||||||
|
ID_STR_HEAPMAX L"?" /*max. heap size, in percent of phys. memory*/
|
||||||
|
ID_STR_NSETCWD L"?" /*do not set current working directory*/
|
||||||
END
|
END
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
@ -94,19 +89,3 @@ BEGIN
|
|||||||
VALUE "Translation", 0x0, 1200
|
VALUE "Translation", 0x0, 1200
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
// Manifest
|
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
|
||||||
|
|
||||||
#if L5J_ENABLE_GUI
|
|
||||||
#define MANIFEST_SUFFIX windows
|
|
||||||
#else
|
|
||||||
#define MANIFEST_SUFFIX console
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define L5J_MANIFEST_GLUE1(V,W,X,Y,Z) #V #W #X #Y #Z
|
|
||||||
#define L5J_MANIFEST_GLUE2(V,W,X,Y,Z) L5J_MANIFEST_GLUE1(V,W,X,Y,Z)
|
|
||||||
#define L5J_MANIFEST_STR L5J_MANIFEST_GLUE2(../tmp/assets/manifest-,MANIFEST_SUFFIX,.,L5J_CPU_ARCH,.xml)
|
|
||||||
|
|
||||||
1 RT_MANIFEST L5J_MANIFEST_STR
|
|
||||||
|
33
res/manifest-console.rc
Normal file
33
res/manifest-console.rc
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
/************************************************************/
|
||||||
|
/* Launch5j, by LoRd_MuldeR <MuldeR2@GMX.de> */
|
||||||
|
/* Java JAR wrapper for creating Windows native executables */
|
||||||
|
/* https://github.com/lordmulder/ */
|
||||||
|
/* */
|
||||||
|
/* This work has been released under the MIT license. */
|
||||||
|
/* Please see LICENSE.TXT for details! */
|
||||||
|
/* */
|
||||||
|
/* ACKNOWLEDGEMENT */
|
||||||
|
/* This project is partly inspired by the Launch4j project: */
|
||||||
|
/* https://sourceforge.net/p/launch4j/ */
|
||||||
|
/************************************************************/
|
||||||
|
|
||||||
|
#define APSTUDIO_READONLY_SYMBOLS
|
||||||
|
#include "WinResrc.h"
|
||||||
|
#undef APSTUDIO_READONLY_SYMBOLS
|
||||||
|
|
||||||
|
#include "../src/resource.h"
|
||||||
|
|
||||||
|
#ifndef L5J_CPU_ARCH
|
||||||
|
#error L5J_CPU_ARCH is not defined!
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Manifest
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#define L5J_MANIFEST_GLUE1(X) #X
|
||||||
|
#define L5J_MANIFEST_GLUE2(X,Y,Z) L5J_MANIFEST_GLUE1(X.Y.Z)
|
||||||
|
#define L5J_MANIFEST_GLUE3(X,Y,Z) L5J_MANIFEST_GLUE2(X,Y,Z)
|
||||||
|
#define L5J_MANIFEST_STR L5J_MANIFEST_GLUE3(../tmp/assets/manifest-console,L5J_CPU_ARCH,xml)
|
||||||
|
|
||||||
|
1 RT_MANIFEST L5J_MANIFEST_STR
|
33
res/manifest-windows.rc
Normal file
33
res/manifest-windows.rc
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
/************************************************************/
|
||||||
|
/* Launch5j, by LoRd_MuldeR <MuldeR2@GMX.de> */
|
||||||
|
/* Java JAR wrapper for creating Windows native executables */
|
||||||
|
/* https://github.com/lordmulder/ */
|
||||||
|
/* */
|
||||||
|
/* This work has been released under the MIT license. */
|
||||||
|
/* Please see LICENSE.TXT for details! */
|
||||||
|
/* */
|
||||||
|
/* ACKNOWLEDGEMENT */
|
||||||
|
/* This project is partly inspired by the Launch4j project: */
|
||||||
|
/* https://sourceforge.net/p/launch4j/ */
|
||||||
|
/************************************************************/
|
||||||
|
|
||||||
|
#define APSTUDIO_READONLY_SYMBOLS
|
||||||
|
#include "WinResrc.h"
|
||||||
|
#undef APSTUDIO_READONLY_SYMBOLS
|
||||||
|
|
||||||
|
#include "../src/resource.h"
|
||||||
|
|
||||||
|
#ifndef L5J_CPU_ARCH
|
||||||
|
#error L5J_CPU_ARCH is not defined!
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
// Manifest
|
||||||
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
#define L5J_MANIFEST_GLUE1(X) #X
|
||||||
|
#define L5J_MANIFEST_GLUE2(X,Y,Z) L5J_MANIFEST_GLUE1(X.Y.Z)
|
||||||
|
#define L5J_MANIFEST_GLUE3(X,Y,Z) L5J_MANIFEST_GLUE2(X,Y,Z)
|
||||||
|
#define L5J_MANIFEST_STR L5J_MANIFEST_GLUE3(../tmp/assets/manifest-windows,L5J_CPU_ARCH,xml)
|
||||||
|
|
||||||
|
1 RT_MANIFEST L5J_MANIFEST_STR
|
161
src/head.c
161
src/head.c
@ -22,6 +22,7 @@
|
|||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <direct.h>
|
#include <direct.h>
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
|
#include <mbctype.h>
|
||||||
|
|
||||||
// Win32 API
|
// Win32 API
|
||||||
#include <Windows.h>
|
#include <Windows.h>
|
||||||
@ -60,10 +61,11 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Const
|
// Const
|
||||||
static const wchar_t *const JRE_DOWNLOAD_LINK_DEFAULT = L"https://adoptopenjdk.net/";
|
static const wchar_t *const JRE_DOWNLOAD_LINK_DEFAULT = L"https://adoptium.net/";
|
||||||
static const wchar_t *const JRE_RELATIVE_PATH_DEFAULT = L"runtime\\bin";
|
static const wchar_t *const JRE_RELATIVE_PATH_DEFAULT = L"runtime\\bin";
|
||||||
static const wchar_t *const JRE_EXECUTABLE_NAME = L5J_ENABLE_GUI ? L"javaw.exe" : L"java.exe";
|
static const wchar_t *const JRE_EXECUTABLE_NAME = L5J_ENABLE_GUI ? L"javaw.exe" : L"java.exe";
|
||||||
static const size_t MIN_MUTEXID_LENGTH = 5U;
|
static const size_t MIN_MUTEXID_LENGTH = 5U;
|
||||||
|
static const size_t BYTES_PER_MEGABYTE = 1024U * 1024U;
|
||||||
static const DWORD SPLASH_SCREEN_TIMEOUT = 30000U;
|
static const DWORD SPLASH_SCREEN_TIMEOUT = 30000U;
|
||||||
|
|
||||||
// Check platform
|
// Check platform
|
||||||
@ -71,13 +73,29 @@ static const DWORD SPLASH_SCREEN_TIMEOUT = 30000U;
|
|||||||
#error Unknown target platform!
|
#error Unknown target platform!
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Boolean value
|
/* ======================================================================== */
|
||||||
|
/* Miscellaneous */
|
||||||
|
/* ======================================================================== */
|
||||||
|
|
||||||
#define BOOLIFY(X) ((X) ? TRUE : FALSE)
|
#define BOOLIFY(X) ((X) ? TRUE : FALSE)
|
||||||
|
#define PERCENT(X) (bound_value(1U, (X), 100U) / 100.0)
|
||||||
|
|
||||||
|
static DWORD bound_value(const DWORD min_value, const DWORD value, const DWORD max_value)
|
||||||
|
{
|
||||||
|
return max(min_value, min(max_value, value));
|
||||||
|
}
|
||||||
|
|
||||||
|
static ULONGLONG div_ceil(const ULONGLONG value, const ULONGLONG divisor)
|
||||||
|
{
|
||||||
|
return (!(value % divisor)) ? (value / divisor) : ((value / divisor) + 1ULL);
|
||||||
|
}
|
||||||
|
|
||||||
/* ======================================================================== */
|
/* ======================================================================== */
|
||||||
/* String routines */
|
/* String routines */
|
||||||
/* ======================================================================== */
|
/* ======================================================================== */
|
||||||
|
|
||||||
|
static const wchar_t SPACE_CHAR = L'\x20';
|
||||||
|
|
||||||
#define XSTR(S) STR(S)
|
#define XSTR(S) STR(S)
|
||||||
#define STR(S) #S
|
#define STR(S) #S
|
||||||
|
|
||||||
@ -145,13 +163,11 @@ static wchar_t *wcsndup (const wchar_t *const str, const size_t n)
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const wchar_t *skip_leading_spaces(const wchar_t *const str)
|
static const wchar_t *skip_leading_spaces(const wchar_t *str)
|
||||||
{
|
{
|
||||||
if (NOT_EMPTY(str))
|
if (NOT_EMPTY(str))
|
||||||
{
|
{
|
||||||
const wchar_t *result;
|
for (; (*str) && (*str <= SPACE_CHAR); ++str);
|
||||||
for (result = str; (*result) && iswspace(*result); ++result);
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
return str;
|
return str;
|
||||||
}
|
}
|
||||||
@ -322,6 +338,18 @@ static BOOL running_on_64bit(void)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static ULONGLONG get_physical_memory_size()
|
||||||
|
{
|
||||||
|
MEMORYSTATUSEX memory_status;
|
||||||
|
SecureZeroMemory(&memory_status, sizeof(MEMORYSTATUSEX));
|
||||||
|
memory_status.dwLength = sizeof(MEMORYSTATUSEX);
|
||||||
|
if (GlobalMemoryStatusEx(&memory_status))
|
||||||
|
{
|
||||||
|
return memory_status.ullTotalPhys;
|
||||||
|
}
|
||||||
|
return 0L;
|
||||||
|
}
|
||||||
|
|
||||||
/* ======================================================================== */
|
/* ======================================================================== */
|
||||||
/* File name routines */
|
/* File name routines */
|
||||||
/* ======================================================================== */
|
/* ======================================================================== */
|
||||||
@ -520,7 +548,7 @@ static DWORD load_uint32(const HINSTANCE hinstance, const UINT id, const DWORD f
|
|||||||
{
|
{
|
||||||
DWORD value = fallback;
|
DWORD value = fallback;
|
||||||
const wchar_t *const str = load_string(hinstance, id);
|
const wchar_t *const str = load_string(hinstance, id);
|
||||||
if(NOT_EMPTY(str))
|
if(AVAILABLE(str))
|
||||||
{
|
{
|
||||||
value = wcstoul(str, NULL, 10);
|
value = wcstoul(str, NULL, 10);
|
||||||
}
|
}
|
||||||
@ -941,7 +969,7 @@ static BOOL detect_java_runtime_scan_javasoft(const wchar_t *const key_name, con
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static BOOL detect_java_runtime_scan_adoptjdk(const wchar_t *const key_name, const ULONG_PTR user_data)
|
static BOOL detect_java_runtime_scan_adoptium(const wchar_t *const key_name, const ULONG_PTR user_data)
|
||||||
{
|
{
|
||||||
static const wchar_t *const JVM_NATURE[] = { L"hotspot", L"openj9", NULL };
|
static const wchar_t *const JVM_NATURE[] = { L"hotspot", L"openj9", NULL };
|
||||||
|
|
||||||
@ -1016,20 +1044,22 @@ static BOOL detect_java_runtime_scan_liberica(const wchar_t *const key_name, con
|
|||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const wchar_t *detect_java_runtime(const DWORD required_bitness, const ULONGLONG required_ver_min, const ULONGLONG required_ver_max)
|
static const wchar_t *detect_java_runtime(const DWORD required_bitness, const ULONGLONG required_ver_min, const ULONGLONG required_ver_max, DWORD *const bitness_out, ULONGLONG *const version_out)
|
||||||
{
|
{
|
||||||
typedef struct { UINT mode; const wchar_t *path; } reg_key_t;
|
typedef struct { UINT mode; const wchar_t *path; } reg_key_t;
|
||||||
static const reg_key_t REG_KEYS[] =
|
static const reg_key_t REG_KEYS[] =
|
||||||
{
|
{
|
||||||
{ 1U, L"SOFTWARE\\JavaSoft\\Java Runtime Environment" }, { 1U, L"SOFTWARE\\JavaSoft\\JRE" }, { 2U, L"SOFTWARE\\AdoptOpenJDK\\JRE" },
|
{ 1U, L"SOFTWARE\\Eclipse Adoptium\\JRE" }, { 1U, L"SOFTWARE\\AdoptOpenJDK\\JRE" },
|
||||||
{ 1U, L"SOFTWARE\\JavaSoft\\Java Development Kit" }, { 1U, L"SOFTWARE\\JavaSoft\\JDK" }, { 2U, L"SOFTWARE\\AdoptOpenJDK\\JDK" },
|
{ 1U, L"SOFTWARE\\Eclipse Adoptium\\JDK" }, { 1U, L"SOFTWARE\\AdoptOpenJDK\\JDK" },
|
||||||
|
{ 2U, L"SOFTWARE\\JavaSoft\\Java Runtime Environment" }, { 2U, L"SOFTWARE\\JavaSoft\\JRE" },
|
||||||
|
{ 2U, L"SOFTWARE\\JavaSoft\\Java Development Kit" }, { 2U, L"SOFTWARE\\JavaSoft\\JDK" },
|
||||||
{ 3U, L"SOFTWARE\\BellSoft\\Liberica" },
|
{ 3U, L"SOFTWARE\\BellSoft\\Liberica" },
|
||||||
{ 3U, L"SOFTWARE\\Azul Systems\\Zulu" }, { 0U, NULL }
|
{ 3U, L"SOFTWARE\\Azul Systems\\Zulu" }, { 0U, NULL }
|
||||||
};
|
};
|
||||||
|
|
||||||
const wchar_t *runtime_path = NULL;
|
const wchar_t *runtime_path = NULL;
|
||||||
DWORD bitness = 0U;
|
*bitness_out = 0U;
|
||||||
ULONGLONG version = 0U;
|
*version_out = 0U;
|
||||||
|
|
||||||
for (UINT i = running_on_64bit() ? 0U : 1U; i < 2U; ++i)
|
for (UINT i = running_on_64bit() ? 0U : 1U; i < 2U; ++i)
|
||||||
{
|
{
|
||||||
@ -1040,15 +1070,15 @@ static const wchar_t *detect_java_runtime(const DWORD required_bitness, const UL
|
|||||||
{
|
{
|
||||||
{ required_bitness, required_ver_min, required_ver_max },
|
{ required_bitness, required_ver_min, required_ver_max },
|
||||||
{ HKEY_LOCAL_MACHINE, REG_KEYS[j].path, reg_view_64bit },
|
{ HKEY_LOCAL_MACHINE, REG_KEYS[j].path, reg_view_64bit },
|
||||||
{ bitness, version, NULL }
|
{ *bitness_out, *version_out, NULL }
|
||||||
};
|
};
|
||||||
switch(REG_KEYS[j].mode)
|
switch(REG_KEYS[j].mode)
|
||||||
{
|
{
|
||||||
case 1U:
|
case 1U:
|
||||||
reg_enum_subkeys(HKEY_LOCAL_MACHINE, REG_KEYS[j].path, reg_view_64bit, detect_java_runtime_scan_javasoft, (ULONG_PTR)&search_state);
|
reg_enum_subkeys(HKEY_LOCAL_MACHINE, REG_KEYS[j].path, reg_view_64bit, detect_java_runtime_scan_adoptium, (ULONG_PTR)&search_state);
|
||||||
break;
|
break;
|
||||||
case 2U:
|
case 2U:
|
||||||
reg_enum_subkeys(HKEY_LOCAL_MACHINE, REG_KEYS[j].path, reg_view_64bit, detect_java_runtime_scan_adoptjdk, (ULONG_PTR)&search_state);
|
reg_enum_subkeys(HKEY_LOCAL_MACHINE, REG_KEYS[j].path, reg_view_64bit, detect_java_runtime_scan_javasoft, (ULONG_PTR)&search_state);
|
||||||
break;
|
break;
|
||||||
case 3U:
|
case 3U:
|
||||||
reg_enum_subkeys(HKEY_LOCAL_MACHINE, REG_KEYS[j].path, reg_view_64bit, detect_java_runtime_scan_liberica, (ULONG_PTR)&search_state);
|
reg_enum_subkeys(HKEY_LOCAL_MACHINE, REG_KEYS[j].path, reg_view_64bit, detect_java_runtime_scan_liberica, (ULONG_PTR)&search_state);
|
||||||
@ -1056,14 +1086,14 @@ static const wchar_t *detect_java_runtime(const DWORD required_bitness, const UL
|
|||||||
}
|
}
|
||||||
if(search_state.result.runtime_path)
|
if(search_state.result.runtime_path)
|
||||||
{
|
{
|
||||||
bitness = search_state.result.bitness;
|
*bitness_out = search_state.result.bitness;
|
||||||
version = search_state.result.version;
|
*version_out = search_state.result.version;
|
||||||
SET_STRING(runtime_path, search_state.result.runtime_path);
|
SET_STRING(runtime_path, search_state.result.runtime_path);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (((required_bitness == 0U) || (bitness == required_bitness)) && (version >= required_ver_min) && (version < required_ver_max) && runtime_path)
|
if (((required_bitness == 0U) || (*bitness_out == required_bitness)) && (*version_out >= required_ver_min) && (*version_out < required_ver_max) && runtime_path)
|
||||||
{
|
{
|
||||||
return runtime_path;
|
return runtime_path;
|
||||||
}
|
}
|
||||||
@ -1104,6 +1134,25 @@ static const wchar_t *get_java_full_path(const wchar_t *const jre_base_path, con
|
|||||||
/* Command-line */
|
/* Command-line */
|
||||||
/* ======================================================================== */
|
/* ======================================================================== */
|
||||||
|
|
||||||
|
static const wchar_t *get_commandline_args(const wchar_t *cmd_line)
|
||||||
|
{
|
||||||
|
BOOL double_quote = FALSE;
|
||||||
|
if (NOT_EMPTY(cmd_line))
|
||||||
|
{
|
||||||
|
cmd_line = skip_leading_spaces(cmd_line);
|
||||||
|
for (; (*cmd_line) && ((*cmd_line > SPACE_CHAR) || double_quote); ++cmd_line)
|
||||||
|
{
|
||||||
|
if (*cmd_line == L'"') double_quote = (!double_quote);
|
||||||
|
if (_ismbblead(*cmd_line) && cmd_line[1U]) ++cmd_line;
|
||||||
|
}
|
||||||
|
return skip_leading_spaces(cmd_line);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
return L""; /*no args*/
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static wchar_t *encode_commandline_args(const int argc, const LPWSTR *const argv)
|
static wchar_t *encode_commandline_args(const int argc, const LPWSTR *const argv)
|
||||||
{
|
{
|
||||||
if (!(argv && (argc > 0)))
|
if (!(argv && (argc > 0)))
|
||||||
@ -1179,6 +1228,29 @@ static const wchar_t *encode_commandline_str(const wchar_t *const command_line)
|
|||||||
return encoded;
|
return encoded;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const wchar_t *create_heap_size_parameters(const DWORD jvm_heap_percent_min, const DWORD jvm_heap_percent_max, const wchar_t *const jvm_extra_args, const DWORD heap_size_limit)
|
||||||
|
{
|
||||||
|
const ULONGLONG physical_memory_size = get_physical_memory_size();
|
||||||
|
if (physical_memory_size > 33554432ULL)
|
||||||
|
{
|
||||||
|
const DWORD heap_size_mbytes_min = jvm_heap_percent_min ? bound_value(16U, (DWORD)div_ceil((ULONGLONG)(PERCENT(jvm_heap_percent_min) * physical_memory_size), BYTES_PER_MEGABYTE), heap_size_limit) : 0U;
|
||||||
|
const DWORD heap_size_mbytes_max = jvm_heap_percent_max ? bound_value(16U, (DWORD)div_ceil((ULONGLONG)(PERCENT(jvm_heap_percent_max) * physical_memory_size), BYTES_PER_MEGABYTE), heap_size_limit) : 0U;
|
||||||
|
if ((heap_size_mbytes_min > 0U) && (heap_size_mbytes_max >= heap_size_mbytes_min))
|
||||||
|
{
|
||||||
|
return AVAILABLE(jvm_extra_args)
|
||||||
|
? aswprintf(L"-Xms%um -Xmx%um %s", heap_size_mbytes_min, heap_size_mbytes_max, jvm_extra_args)
|
||||||
|
: aswprintf(L"-Xms%um -Xmx%um", heap_size_mbytes_min, heap_size_mbytes_max);
|
||||||
|
}
|
||||||
|
else if ((heap_size_mbytes_min > 0U) || (heap_size_mbytes_max > 0U))
|
||||||
|
{
|
||||||
|
return AVAILABLE(jvm_extra_args)
|
||||||
|
? aswprintf(L"-Xm%c%um %s", (heap_size_mbytes_max > 0U) ? L'x' : L's', (heap_size_mbytes_max > 0U) ? heap_size_mbytes_max : heap_size_mbytes_min, jvm_extra_args)
|
||||||
|
: aswprintf(L"-Xm%c%um", (heap_size_mbytes_max > 0U) ? L'x' : L's', (heap_size_mbytes_max > 0U) ? heap_size_mbytes_max : heap_size_mbytes_min);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
static const wchar_t *build_commandline(const DWORD pid, const wchar_t *const java_runtime_path, const wchar_t *const jar_file_path, const wchar_t *const jvm_extra_args, const wchar_t *const cmd_extra_args, const wchar_t *const cmd_input_args)
|
static const wchar_t *build_commandline(const DWORD pid, const wchar_t *const java_runtime_path, const wchar_t *const jar_file_path, const wchar_t *const jvm_extra_args, const wchar_t *const cmd_extra_args, const wchar_t *const cmd_input_args)
|
||||||
{
|
{
|
||||||
const wchar_t *command_line;
|
const wchar_t *command_line;
|
||||||
@ -1357,7 +1429,7 @@ static const wchar_t *describe_system_error(const DWORD error_code)
|
|||||||
#if L5J_ENABLE_GUI
|
#if L5J_ENABLE_GUI
|
||||||
#define show_message(HWND, FLAGS, TITLE, TEXT) MessageBoxW((HWND), (TEXT), (TITLE), (FLAGS))
|
#define show_message(HWND, FLAGS, TITLE, TEXT) MessageBoxW((HWND), (TEXT), (TITLE), (FLAGS))
|
||||||
#else
|
#else
|
||||||
#define show_message(HWND, FLAGS, TITLE, TEXT) ({ __ms_fwprintf(stderr, L"%s\n", (TEXT)); fflush(stderr); IDCANCEL; })
|
#define show_message(HWND, FLAGS, TITLE, TEXT) ({ __ms_fwprintf(stderr, L"[%s]\n\n%s\n", (TITLE), (TEXT)); fflush(stderr); IDCANCEL; })
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static int show_message_format(HWND hwnd, const DWORD flags, const wchar_t *const title, const wchar_t *const format, ...)
|
static int show_message_format(HWND hwnd, const DWORD flags, const wchar_t *const title, const wchar_t *const format, ...)
|
||||||
@ -1477,7 +1549,7 @@ static BOOL initialize_mutex(HANDLE *const handle, const wchar_t *const mutex_na
|
|||||||
const ULONGLONG hash_0 = hash_code(0x6CAD7ECA, (const BYTE*)mutex_name, name_length);
|
const ULONGLONG hash_0 = hash_code(0x6CAD7ECA, (const BYTE*)mutex_name, name_length);
|
||||||
const ULONGLONG hash_1 = hash_code(0xE2503816, (const BYTE*)mutex_name, name_length);
|
const ULONGLONG hash_1 = hash_code(0xE2503816, (const BYTE*)mutex_name, name_length);
|
||||||
|
|
||||||
const wchar_t *const mutex_uuid = aswprintf(L"l5j.%016I64X%016I64X", hash_0, hash_1);
|
const wchar_t *const mutex_uuid = aswprintf(L"l5j.%016I64x%016I64x", hash_0, hash_1);
|
||||||
if (!mutex_uuid)
|
if (!mutex_uuid)
|
||||||
{
|
{
|
||||||
return TRUE; /*better safe than sorry*/
|
return TRUE; /*better safe than sorry*/
|
||||||
@ -1540,10 +1612,10 @@ static int launch5j_main(const HINSTANCE hinstance, const wchar_t *const cmd_lin
|
|||||||
const wchar_t *app_heading = NULL, *mutex_name = NULL, *executable_path = NULL, *executable_directory = NULL, *jarfile_path = NULL,
|
const wchar_t *app_heading = NULL, *mutex_name = NULL, *executable_path = NULL, *executable_directory = NULL, *jarfile_path = NULL,
|
||||||
*java_runtime_path = NULL, *jre_relative_path = NULL, *jvm_extra_args = NULL, *cmd_extra_args = NULL, *command_line = NULL;
|
*java_runtime_path = NULL, *jre_relative_path = NULL, *jvm_extra_args = NULL, *cmd_extra_args = NULL, *command_line = NULL;
|
||||||
HANDLE mutex_handle = NULL;
|
HANDLE mutex_handle = NULL;
|
||||||
DWORD java_required_bitness = 0U;
|
DWORD java_required_bitness = 0U, jvm_heap_percent_min = 0U, jvm_heap_percent_max = 0U, jvm_bitness = 0U;
|
||||||
ULONGLONG java_required_ver_min = 0ULL, java_required_ver_max = 0ULL;
|
ULONGLONG java_required_ver_min = 0ULL, java_required_ver_max = 0ULL, jvm_version = 0ULL;
|
||||||
HGDIOBJ splash_image = NULL;
|
HGDIOBJ splash_image = NULL;
|
||||||
BOOL have_screen_created = FALSE;
|
BOOL have_screen_created = FALSE, set_current_directory_enabled = TRUE;
|
||||||
PROCESS_INFORMATION process_info;
|
PROCESS_INFORMATION process_info;
|
||||||
STARTUPINFOW startup_info;
|
STARTUPINFOW startup_info;
|
||||||
|
|
||||||
@ -1621,7 +1693,7 @@ static int launch5j_main(const HINSTANCE hinstance, const wchar_t *const cmd_lin
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Set the current directory
|
// Set the current directory
|
||||||
if (_wcsicmp(executable_directory, L".") != 0)
|
if (set_current_directory_enabled = (!BOOLIFY(load_uint32(hinstance, ID_STR_NSETCWD, 0U))))
|
||||||
{
|
{
|
||||||
set_current_directory(executable_directory);
|
set_current_directory(executable_directory);
|
||||||
}
|
}
|
||||||
@ -1647,7 +1719,7 @@ static int launch5j_main(const HINSTANCE hinstance, const wchar_t *const cmd_lin
|
|||||||
java_required_ver_min = load_java_version(hinstance, ID_STR_JAVAMIN, (8ull << 48));
|
java_required_ver_min = load_java_version(hinstance, ID_STR_JAVAMIN, (8ull << 48));
|
||||||
java_required_ver_max = load_java_version(hinstance, ID_STR_JAVAMAX, MAXULONGLONG);
|
java_required_ver_max = load_java_version(hinstance, ID_STR_JAVAMAX, MAXULONGLONG);
|
||||||
java_required_bitness = load_java_bitness(hinstance, ID_STR_BITNESS);
|
java_required_bitness = load_java_bitness(hinstance, ID_STR_BITNESS);
|
||||||
if (!(java_runtime_path = detect_java_runtime(java_required_bitness, java_required_ver_min, java_required_ver_max)))
|
if (!(java_runtime_path = detect_java_runtime(java_required_bitness, java_required_ver_min, java_required_ver_max, &jvm_bitness, &jvm_version)))
|
||||||
{
|
{
|
||||||
show_message(hwnd, MB_ICONERROR | MB_TOPMOST, APP_HEADING, L"Java Runtime Environment (JRE) could not be found!");
|
show_message(hwnd, MB_ICONERROR | MB_TOPMOST, APP_HEADING, L"Java Runtime Environment (JRE) could not be found!");
|
||||||
show_jre_download_notice(hinstance, hwnd, APP_HEADING, java_required_bitness, java_required_ver_min);
|
show_jre_download_notice(hinstance, hwnd, APP_HEADING, java_required_bitness, java_required_ver_min);
|
||||||
@ -1660,7 +1732,7 @@ static int launch5j_main(const HINSTANCE hinstance, const wchar_t *const cmd_lin
|
|||||||
show_message(hwnd, MB_ICONERROR | MB_TOPMOST, APP_HEADING, L"The path of the Java runtime could not be determined!");
|
show_message(hwnd, MB_ICONERROR | MB_TOPMOST, APP_HEADING, L"The path of the Java runtime could not be determined!");
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
if (!BOOLIFY(file_is_executable(java_runtime_path)))
|
if (!BOOLIFY(jvm_bitness = file_is_executable(java_runtime_path)))
|
||||||
{
|
{
|
||||||
show_message_format(hwnd, MB_ICONERROR | MB_TOPMOST, APP_HEADING, L"The Java runtime could not be found or is invalid:\n\n%s\n\n\nRe-installing the application may fix the problem!", java_runtime_path);
|
show_message_format(hwnd, MB_ICONERROR | MB_TOPMOST, APP_HEADING, L"The Java runtime could not be found or is invalid:\n\n%s\n\n\nRe-installing the application may fix the problem!", java_runtime_path);
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
@ -1671,6 +1743,19 @@ static int launch5j_main(const HINSTANCE hinstance, const wchar_t *const cmd_lin
|
|||||||
jvm_extra_args = load_string(hinstance, ID_STR_JVMARGS);
|
jvm_extra_args = load_string(hinstance, ID_STR_JVMARGS);
|
||||||
cmd_extra_args = load_string(hinstance, ID_STR_CMDARGS);
|
cmd_extra_args = load_string(hinstance, ID_STR_CMDARGS);
|
||||||
|
|
||||||
|
// Set minimum/maximum Java heap size
|
||||||
|
jvm_heap_percent_min = bound_value(0U, load_uint32(hinstance, ID_STR_HEAPMIN, 0U), 100U);
|
||||||
|
jvm_heap_percent_max = bound_value(0U, load_uint32(hinstance, ID_STR_HEAPMAX, 0U), 100U);
|
||||||
|
if ((jvm_heap_percent_min > 0U) || (jvm_heap_percent_max > 0U))
|
||||||
|
{
|
||||||
|
const wchar_t *const jvm_heap_size_args = create_heap_size_parameters(jvm_heap_percent_min, jvm_heap_percent_max, jvm_extra_args, (jvm_bitness && (jvm_bitness < 64U)) ? 1024U : MAXDWORD);
|
||||||
|
if (jvm_heap_size_args)
|
||||||
|
{
|
||||||
|
free((void*)jvm_extra_args);
|
||||||
|
jvm_extra_args = jvm_heap_size_args;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Make sure command-line was created
|
// Make sure command-line was created
|
||||||
command_line = build_commandline(pid, java_runtime_path, jarfile_path, jvm_extra_args, cmd_extra_args, cmd_line_args);
|
command_line = build_commandline(pid, java_runtime_path, jarfile_path, jvm_extra_args, cmd_extra_args, cmd_line_args);
|
||||||
if (!command_line)
|
if (!command_line)
|
||||||
@ -1685,7 +1770,7 @@ static int launch5j_main(const HINSTANCE hinstance, const wchar_t *const cmd_lin
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Now actually start the process!
|
// Now actually start the process!
|
||||||
if (!CreateProcessW(NULL, (LPWSTR)command_line, NULL, NULL, FALSE, 0U, NULL, executable_directory, &startup_info, &process_info))
|
if (!CreateProcessW(NULL, (LPWSTR)command_line, NULL, NULL, FALSE, 0U, NULL, set_current_directory_enabled ? executable_directory : NULL, &startup_info, &process_info))
|
||||||
{
|
{
|
||||||
const wchar_t *const error_text = describe_system_error(GetLastError());
|
const wchar_t *const error_text = describe_system_error(GetLastError());
|
||||||
if (error_text)
|
if (error_text)
|
||||||
@ -1759,7 +1844,9 @@ cleanup:
|
|||||||
/* Entry points */
|
/* Entry points */
|
||||||
/* ======================================================================== */
|
/* ======================================================================== */
|
||||||
|
|
||||||
#define THE_NUMBER_OF_THE_BEAST 666
|
extern IMAGE_DOS_HEADER __ImageBase;
|
||||||
|
extern LPWSTR _wcmdln;
|
||||||
|
#define UNHANDELED_EXCEPTION_ERROR 666
|
||||||
|
|
||||||
static LONG WINAPI unhandeled_exception(EXCEPTION_POINTERS *ExceptionInfo)
|
static LONG WINAPI unhandeled_exception(EXCEPTION_POINTERS *ExceptionInfo)
|
||||||
{
|
{
|
||||||
@ -1770,22 +1857,23 @@ static LONG WINAPI unhandeled_exception(EXCEPTION_POINTERS *ExceptionInfo)
|
|||||||
DWORD chars_written;
|
DWORD chars_written;
|
||||||
WriteConsoleW(GetStdHandle(STD_ERROR_HANDLE), ERROR_MESSAGE, lstrlenW(ERROR_MESSAGE), &chars_written, NULL);
|
WriteConsoleW(GetStdHandle(STD_ERROR_HANDLE), ERROR_MESSAGE, lstrlenW(ERROR_MESSAGE), &chars_written, NULL);
|
||||||
#endif
|
#endif
|
||||||
TerminateProcess(GetCurrentProcess(), THE_NUMBER_OF_THE_BEAST);
|
TerminateProcess(GetCurrentProcess(), UNHANDELED_EXCEPTION_ERROR);
|
||||||
return EXCEPTION_EXECUTE_HANDLER;
|
return EXCEPTION_EXECUTE_HANDLER;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if L5J_ENABLE_GUI
|
#if L5J_ENABLE_GUI
|
||||||
|
|
||||||
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow)
|
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow)
|
||||||
{
|
{
|
||||||
#ifdef NDEBUG
|
#ifdef NDEBUG
|
||||||
SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);
|
SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);
|
||||||
SetUnhandledExceptionFilter(unhandeled_exception);
|
SetUnhandledExceptionFilter(unhandeled_exception);
|
||||||
#endif
|
#endif
|
||||||
return launch5j_main(hInstance, pCmdLine);
|
return launch5j_main(hInstance, get_commandline_args(_wcmdln));
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
extern HINSTANCE __mingw_winmain_hInstance;
|
#else /*L5J_ENABLE_GUI*/
|
||||||
extern LPWSTR __mingw_winmain_lpCmdLine;
|
|
||||||
int wmain(int argc, wchar_t **argv, wchar_t **envp)
|
int wmain(int argc, wchar_t **argv, wchar_t **envp)
|
||||||
{
|
{
|
||||||
#ifdef NDEBUG
|
#ifdef NDEBUG
|
||||||
@ -1793,6 +1881,7 @@ int wmain(int argc, wchar_t **argv, wchar_t **envp)
|
|||||||
SetUnhandledExceptionFilter(unhandeled_exception);
|
SetUnhandledExceptionFilter(unhandeled_exception);
|
||||||
#endif
|
#endif
|
||||||
_setmode(_fileno(stderr), _O_U8TEXT);
|
_setmode(_fileno(stderr), _O_U8TEXT);
|
||||||
return launch5j_main(__mingw_winmain_hInstance, __mingw_winmain_lpCmdLine);
|
return launch5j_main((HINSTANCE) &__ImageBase, get_commandline_args(_wcmdln));
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
#endif /*L5J_ENABLE_GUI*/
|
||||||
|
@ -56,16 +56,17 @@ initialize:
|
|||||||
|
|
||||||
.PHONY: manifests
|
.PHONY: manifests
|
||||||
manifests: initialize
|
manifests: initialize
|
||||||
mkdir -p $(@D)
|
@mkdir -p tmp/assets
|
||||||
sed -e 's/$${{version}}/$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH).$(BUILDNO)/g' -e 's/$${{processorArchitecture}}/$(CPU_ARCH)/g' res/assets/manifest-console.xml > tmp/assets/manifest-console.$(CPU_ARCH).xml
|
sed -e 's/$${{version}}/$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH).$(BUILDNO)/g' -e 's/$${{processorArchitecture}}/$(CPU_ARCH)/g' res/assets/manifest-console.xml > tmp/assets/manifest-console.$(CPU_ARCH).xml
|
||||||
sed -e 's/$${{version}}/$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH).$(BUILDNO)/g' -e 's/$${{processorArchitecture}}/$(CPU_ARCH)/g' res/assets/manifest-windows.xml > tmp/assets/manifest-windows.$(CPU_ARCH).xml
|
sed -e 's/$${{version}}/$(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH).$(BUILDNO)/g' -e 's/$${{processorArchitecture}}/$(CPU_ARCH)/g' res/assets/manifest-windows.xml > tmp/assets/manifest-windows.$(CPU_ARCH).xml
|
||||||
|
|
||||||
.PHONY: resources
|
.PHONY: resources
|
||||||
resources: manifests
|
resources: manifests
|
||||||
windres -DL5J_CPU_ARCH=$(CPU_ARCH) -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=0 -o obj/common-console.$(CPU_ARCH).o res/common.rc
|
windres -DL5J_CPU_ARCH=$(CPU_ARCH) -DL5J_BUILDNO=$(BUILDNO) -o obj/common.$(CPU_ARCH).o res/common.rc
|
||||||
windres -DL5J_CPU_ARCH=$(CPU_ARCH) -DL5J_BUILDNO=$(BUILDNO) -DL5J_ENABLE_GUI=1 -o obj/common-windows.$(CPU_ARCH).o res/common.rc
|
windres -DL5J_CPU_ARCH=$(CPU_ARCH) -DL5J_BUILDNO=$(BUILDNO) -o obj/manifest-console.$(CPU_ARCH).o res/manifest-console.rc
|
||||||
windres -DL5J_CPU_ARCH=$(CPU_ARCH) -DL5J_BUILDNO=$(BUILDNO) -o obj/splash_screen.$(CPU_ARCH).o res/splash_screen.rc
|
windres -DL5J_CPU_ARCH=$(CPU_ARCH) -DL5J_BUILDNO=$(BUILDNO) -o obj/manifest-windows.$(CPU_ARCH).o res/manifest-windows.rc
|
||||||
windres -DL5J_CPU_ARCH=$(CPU_ARCH) -DL5J_BUILDNO=$(BUILDNO) -o obj/registry.$(CPU_ARCH).o res/registry.rc
|
windres -DL5J_CPU_ARCH=$(CPU_ARCH) -DL5J_BUILDNO=$(BUILDNO) -o obj/registry.$(CPU_ARCH).o res/registry.rc
|
||||||
|
windres -DL5J_CPU_ARCH=$(CPU_ARCH) -DL5J_BUILDNO=$(BUILDNO) -o obj/splash_screen.$(CPU_ARCH).o res/splash_screen.rc
|
||||||
|
|
||||||
.PHONY: clean
|
.PHONY: clean
|
||||||
clean: initialize
|
clean: initialize
|
||||||
|
@ -21,9 +21,8 @@ import java.io.PrintStream;
|
|||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.time.Instant;
|
import java.util.LinkedHashSet;
|
||||||
import java.util.ArrayList;
|
import java.util.Set;
|
||||||
import java.util.List;
|
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -31,16 +30,23 @@ import java.util.regex.Pattern;
|
|||||||
*/
|
*/
|
||||||
public class Generator {
|
public class Generator {
|
||||||
|
|
||||||
private final static String EMPTY = "";
|
private static final String EMPTY = "";
|
||||||
private final static Pattern RTRIM = Pattern.compile("\\s+$");
|
private static final Pattern RTRIM = Pattern.compile("\\s+$");
|
||||||
|
|
||||||
|
private static final MessageDigest SHA256;
|
||||||
|
static {
|
||||||
|
try {
|
||||||
|
SHA256 = MessageDigest.getInstance("SHA-256");
|
||||||
|
} catch (final NoSuchAlgorithmException e) {
|
||||||
|
throw new Error(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void main(String[] args) throws IOException {
|
public static void main(String[] args) throws IOException {
|
||||||
final List<String> targets = new ArrayList<String>();
|
|
||||||
final String salt = Instant.now().toString();
|
|
||||||
final PrintStream out = new PrintStream(System.out, true, StandardCharsets.UTF_8.name());
|
final PrintStream out = new PrintStream(System.out, true, StandardCharsets.UTF_8.name());
|
||||||
|
|
||||||
outputTemplate(out, "header");
|
outputTemplate(out, "header");
|
||||||
|
|
||||||
|
final LinkedHashSet<String> targets = new LinkedHashSet<String>();
|
||||||
for (int enableGui = 1; enableGui > -1; --enableGui) {
|
for (int enableGui = 1; enableGui > -1; --enableGui) {
|
||||||
for (int wrapped = 0; wrapped < 2; ++wrapped) {
|
for (int wrapped = 0; wrapped < 2; ++wrapped) {
|
||||||
for (int registry = 0; registry < 2; ++registry) {
|
for (int registry = 0; registry < 2; ++registry) {
|
||||||
@ -50,7 +56,7 @@ public class Generator {
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
for (int encArgs = 1; encArgs > -1; --encArgs) {
|
for (int encArgs = 1; encArgs > -1; --encArgs) {
|
||||||
out.println(generateCommand(targets, salt, enableGui, wrapped, registry, stayAlive, enableSplash, encArgs));
|
out.println(generateCommand(targets, enableGui, wrapped, registry, stayAlive, enableSplash, encArgs));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -99,10 +105,12 @@ public class Generator {
|
|||||||
out.println();
|
out.println();
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String generateCommand(final List<String> targets, final String salt, final int enableGui, final int wrapped, final int registry, final int stayAlive, final int enableSplash, final int encArgs) {
|
private static String generateCommand(final Set<String> targets, final int enableGui, final int wrapped, final int registry, final int stayAlive, final int enableSplash, final int encArgs) {
|
||||||
final String nameSuffix = generateNameSuffix(enableGui, wrapped, registry, stayAlive, enableSplash, encArgs);
|
final String nameSuffix = generateNameSuffix(enableGui, wrapped, registry, stayAlive, enableSplash, encArgs);
|
||||||
final String targetName = "l5j_" + hash(nameSuffix, salt);
|
final String targetName = "launch5j_" + hash(nameSuffix);
|
||||||
targets.add(targetName);
|
if(!targets.add(targetName)) {
|
||||||
|
throw new Error("Hash collision detected!");
|
||||||
|
}
|
||||||
final String exeType = (enableGui > 0) ? "windows" : "console";
|
final String exeType = (enableGui > 0) ? "windows" : "console";
|
||||||
final StringBuilder cmdLine = new StringBuilder();
|
final StringBuilder cmdLine = new StringBuilder();
|
||||||
cmdLine.append(String.format(".PHONY: %s\n", targetName));
|
cmdLine.append(String.format(".PHONY: %s\n", targetName));
|
||||||
@ -118,7 +126,8 @@ public class Generator {
|
|||||||
"-DL5J_ENCODE_ARGS=%d " +
|
"-DL5J_ENCODE_ARGS=%d " +
|
||||||
"-o bin/launch5j_$(CPU_ARCH)%s.exe " +
|
"-o bin/launch5j_$(CPU_ARCH)%s.exe " +
|
||||||
"src/head.c " +
|
"src/head.c " +
|
||||||
"obj/common-%s.$(CPU_ARCH).o",
|
"obj/common.$(CPU_ARCH).o " +
|
||||||
|
"obj/manifest-%s.$(CPU_ARCH).o",
|
||||||
exeType,
|
exeType,
|
||||||
enableGui,
|
enableGui,
|
||||||
wrapped,
|
wrapped,
|
||||||
@ -174,15 +183,8 @@ public class Generator {
|
|||||||
builder.append(string);
|
builder.append(string);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String hash(final String str, final String salt) {
|
private static String hash(final String str) {
|
||||||
final MessageDigest digest;
|
final byte[] hash = SHA256.digest(str.getBytes(StandardCharsets.UTF_8));
|
||||||
try {
|
return String.format("%02X%02X", hash[30], hash[31]);
|
||||||
digest = MessageDigest.getInstance("SHA-256");
|
|
||||||
} catch (final NoSuchAlgorithmException e) {
|
|
||||||
throw new Error(e);
|
|
||||||
}
|
|
||||||
digest.update(salt.getBytes(StandardCharsets.UTF_8));
|
|
||||||
final byte[] hash = digest.digest(str.getBytes(StandardCharsets.UTF_8));
|
|
||||||
return String.format("%02X%02X%02X%02X", hash[31], hash[30], hash[29], hash[28]);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -21,8 +21,8 @@
|
|||||||
|
|
||||||
// VERSION
|
// VERSION
|
||||||
#define L5J_VERSION_MAJOR 0
|
#define L5J_VERSION_MAJOR 0
|
||||||
#define L5J_VERSION_MINOR 7
|
#define L5J_VERSION_MINOR 8
|
||||||
#define L5J_VERSION_PATCH 0
|
#define L5J_VERSION_PATCH 1
|
||||||
|
|
||||||
// ICON
|
// ICON
|
||||||
#define ID_ICON_MAIN 1
|
#define ID_ICON_MAIN 1
|
||||||
@ -31,14 +31,17 @@
|
|||||||
#define ID_BITMAP_SPLASH 1
|
#define ID_BITMAP_SPLASH 1
|
||||||
|
|
||||||
// STRINGS
|
// STRINGS
|
||||||
#define ID_STR_HEADING 1
|
#define ID_STR_HEADING 0x1
|
||||||
#define ID_STR_JVMARGS 2
|
#define ID_STR_JVMARGS 0x2
|
||||||
#define ID_STR_CMDARGS 3
|
#define ID_STR_CMDARGS 0x3
|
||||||
#define ID_STR_JREPATH 4
|
#define ID_STR_JREPATH 0x4
|
||||||
#define ID_STR_MUTEXID 5
|
#define ID_STR_MUTEXID 0x5
|
||||||
#define ID_STR_JAVAMIN 6
|
#define ID_STR_HEAPMIN 0x6
|
||||||
#define ID_STR_JAVAMAX 7
|
#define ID_STR_HEAPMAX 0x7
|
||||||
#define ID_STR_BITNESS 8
|
#define ID_STR_NSETCWD 0x8
|
||||||
#define ID_STR_JAVAURL 9
|
#define ID_STR_JAVAMIN 0x9
|
||||||
|
#define ID_STR_JAVAMAX 0xA
|
||||||
|
#define ID_STR_BITNESS 0xB
|
||||||
|
#define ID_STR_JAVAURL 0xC
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
Loading…
Reference in New Issue
Block a user