Store the minimum (and maximum) required Java version as well as the required "bitness" in the resources.

This commit is contained in:
LoRd_MuldeR 2020-09-29 12:01:43 +02:00
parent 23ebc433c2
commit e0769c60b9
6 changed files with 169 additions and 242 deletions

162
Makefile
View File

@ -33,88 +33,25 @@ init:
resources: init resources: init
windres -o obj/common.$(CPU_ARCH).o res/common.rc windres -o obj/common.$(CPU_ARCH).o res/common.rc
windres -o obj/splash_screen.$(CPU_ARCH).o res/splash_screen.rc windres -o obj/splash_screen.$(CPU_ARCH).o res/splash_screen.rc
windres -o obj/registry.$(CPU_ARCH).o res/registry.rc
build: init resources build: init resources
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=0 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH).exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o $(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH).exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=0 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o $(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=0 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o $(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=0 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o $(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o $(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o $(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o $(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o $(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry_only32bit.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o $(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_only32bit_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o $(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry_only32bit_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o $(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_only32bit_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o $(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry_only64bit.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o $(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_only64bit_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o $(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry_only64bit_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o $(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_only64bit_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o $(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o obj/registry.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry_java9.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_java9_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry_java9_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_java9_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry_java9_only32bit.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_java9_only32bit_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry_java9_only32bit_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_java9_only32bit_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry_java9_only64bit.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_java9_only64bit_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry_java9_only64bit_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_java9_only64bit_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry_java11.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_java11_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry_java11_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_java11_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry_java11_only32bit.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_java11_only32bit_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry_java11_only32bit_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_java11_only32bit_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry_java11_only64bit.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_java11_only64bit_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_registry_java11_only64bit_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=0 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_registry_java11_only64bit_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=0 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=0 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=0 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=0 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_only32bit.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_only32bit_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_only32bit_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_only32bit_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_only64bit.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_only64bit_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_only64bit_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=8 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_only64bit_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_only32bit.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_only32bit_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_only32bit_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_only32bit_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_only64bit.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_only64bit_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_only64bit_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=9 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_only64bit_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=0 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_only32bit.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_only32bit_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_only32bit_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=32 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_only32bit_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=1 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_only64bit.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=1 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_only64bit_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=0 -DENABLE_SPLASH=1 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_only64bit_nowait.exe src/head.c obj/common.$(CPU_ARCH).o obj/splash_screen.$(CPU_ARCH).o
$(CC) $(CFLAGS) -DJAR_FILE_WRAPPED=1 -DDETECT_REGISTRY=1 -DREQUIRE_JAVA=11 -DREQUIRE_BITNESS=64 -DSTAY_ALIVE=0 -DENABLE_SPLASH=0 -o bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_only64bit_nowait_nosplash.exe src/head.c obj/common.$(CPU_ARCH).o
strip: build strip: build
strip bin/launch5j_$(CPU_ARCH).exe strip bin/launch5j_$(CPU_ARCH).exe
@ -125,38 +62,6 @@ strip: build
strip bin/launch5j_$(CPU_ARCH)_registry_nosplash.exe strip bin/launch5j_$(CPU_ARCH)_registry_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_registry_nowait.exe strip bin/launch5j_$(CPU_ARCH)_registry_nowait.exe
strip bin/launch5j_$(CPU_ARCH)_registry_nowait_nosplash.exe strip bin/launch5j_$(CPU_ARCH)_registry_nowait_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_registry_only32bit.exe
strip bin/launch5j_$(CPU_ARCH)_registry_only32bit_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_registry_only32bit_nowait.exe
strip bin/launch5j_$(CPU_ARCH)_registry_only32bit_nowait_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_registry_only64bit.exe
strip bin/launch5j_$(CPU_ARCH)_registry_only64bit_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_registry_only64bit_nowait.exe
strip bin/launch5j_$(CPU_ARCH)_registry_only64bit_nowait_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java9.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java9_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java9_nowait.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java9_nowait_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java9_only32bit.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java9_only32bit_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java9_only32bit_nowait.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java9_only32bit_nowait_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java9_only64bit.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java9_only64bit_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java9_only64bit_nowait.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java9_only64bit_nowait_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java11.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java11_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java11_nowait.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java11_nowait_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java11_only32bit.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java11_only32bit_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java11_only32bit_nowait.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java11_only32bit_nowait_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java11_only64bit.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java11_only64bit_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java11_only64bit_nowait.exe
strip bin/launch5j_$(CPU_ARCH)_registry_java11_only64bit_nowait_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped.exe strip bin/launch5j_$(CPU_ARCH)_wrapped.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_nosplash.exe strip bin/launch5j_$(CPU_ARCH)_wrapped_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_nowait.exe strip bin/launch5j_$(CPU_ARCH)_wrapped_nowait.exe
@ -165,39 +70,8 @@ strip: build
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_nosplash.exe strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait.exe strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait_nosplash.exe strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_nowait_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_only32bit.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_only32bit_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_only32bit_nowait.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_only32bit_nowait_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_only64bit.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_only64bit_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_only64bit_nowait.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_only64bit_nowait_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_nowait.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_nowait_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_only32bit.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_only32bit_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_only32bit_nowait.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_only32bit_nowait_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_only64bit.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_only64bit_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_only64bit_nowait.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java9_only64bit_nowait_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_nowait.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_nowait_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_only32bit.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_only32bit_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_only32bit_nowait.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_only32bit_nowait_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_only64bit.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_only64bit_nosplash.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_only64bit_nowait.exe
strip bin/launch5j_$(CPU_ARCH)_wrapped_registry_java11_only64bit_nowait_nosplash.exe
clean: init clean: init
rm -f bin/*.exe rm -f bin/*.exe
rm -f obj/*.o rm -f obj/*.o

View File

@ -33,3 +33,4 @@ init:
resources: init resources: init
windres -o obj/common.$(CPU_ARCH).o res/common.rc windres -o obj/common.$(CPU_ARCH).o res/common.rc
windres -o obj/splash_screen.$(CPU_ARCH).o res/splash_screen.rc windres -o obj/splash_screen.$(CPU_ARCH).o res/splash_screen.rc
windres -o obj/registry.$(CPU_ARCH).o res/registry.rc

View File

@ -38,21 +38,9 @@ public class MakefileGenerator {
out.println("build: init resources"); out.println("build: init resources");
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) {
for(int requireJava = 8; requireJava < 12; ++requireJava) {
if(requireJava == 10) {
continue;
}
for(int requireBitness = 0; requireBitness < 65; requireBitness += 32) {
for(int stayAlive = 1; stayAlive > -1; --stayAlive) { for(int stayAlive = 1; stayAlive > -1; --stayAlive) {
for(int enableSplash = 1; enableSplash > -1; --enableSplash) { for(int enableSplash = 1; enableSplash > -1; --enableSplash) {
if((registry == 0) && ((requireJava != 8) || (requireBitness != 0))) { out.println(generateCommand(filenNames, wrapped, registry, stayAlive, enableSplash));
continue;
}
out.println(generateCommand(
filenNames, wrapped, registry, requireJava,
requireBitness, stayAlive, enableSplash));
}
}
} }
} }
} }
@ -95,24 +83,20 @@ public class MakefileGenerator {
out.println(); out.println();
} }
private static String generateCommand(final List<String> filenNames, final int wrapped, final int registry, final int requireJava, final int requireBitness, final int stayAlive, final int enableSplash) private static String generateCommand(final List<String> filenNames, final int wrapped, final int registry, final int stayAlive, final int enableSplash)
{ {
final String fileName = String.format("bin/launch5j_$(CPU_ARCH)%s.exe", final String fileName = String.format("bin/launch5j_$(CPU_ARCH)%s.exe",
generateNameSuffix(wrapped, registry, requireJava, requireBitness, stayAlive, enableSplash)); generateNameSuffix(wrapped, registry, stayAlive, enableSplash));
final StringBuilder cmdLine = new StringBuilder(String.format( final StringBuilder cmdLine = new StringBuilder(String.format(
"\t$(CC) $(CFLAGS) " "\t$(CC) $(CFLAGS) "
+ "-DJAR_FILE_WRAPPED=%d " + "-DJAR_FILE_WRAPPED=%d "
+ "-DDETECT_REGISTRY=%d " + "-DDETECT_REGISTRY=%d "
+ "-DREQUIRE_JAVA=%-2d "
+ "-DREQUIRE_BITNESS=%-2d "
+ "-DSTAY_ALIVE=%d " + "-DSTAY_ALIVE=%d "
+ "-DENABLE_SPLASH=%d " + "-DENABLE_SPLASH=%d "
+ "-o %s " + "-o %s "
+ "src/head.c obj/common.$(CPU_ARCH).o", + "src/head.c obj/common.$(CPU_ARCH).o",
wrapped, wrapped,
registry, registry,
requireJava,
requireBitness,
stayAlive, stayAlive,
enableSplash, enableSplash,
fileName)); fileName));
@ -120,12 +104,15 @@ public class MakefileGenerator {
if(enableSplash > 0) { if(enableSplash > 0) {
append(cmdLine, ' ', "obj/splash_screen.$(CPU_ARCH).o"); append(cmdLine, ' ', "obj/splash_screen.$(CPU_ARCH).o");
} }
if(registry > 0) {
append(cmdLine, ' ', "obj/registry.$(CPU_ARCH).o");
}
filenNames.add(fileName); filenNames.add(fileName);
return cmdLine.toString(); return cmdLine.toString();
} }
private static String generateNameSuffix(final int wrapped, final int registry, final int requireJava, final int requireBitness, final int stayAlive, final int enableSplash) { private static String generateNameSuffix(final int wrapped, final int registry, final int stayAlive, final int enableSplash) {
final StringBuilder builder = new StringBuilder(); final StringBuilder builder = new StringBuilder();
if(wrapped > 0) { if(wrapped > 0) {
append(builder, '_', "wrapped"); append(builder, '_', "wrapped");
@ -133,12 +120,6 @@ public class MakefileGenerator {
if(registry > 0) { if(registry > 0) {
append(builder, '_', "registry"); append(builder, '_', "registry");
} }
if(requireJava != 8) {
append(builder, '_', String.format("java%d", requireJava));
}
if(requireBitness != 0) {
append(builder, '_', String.format("only%dbit", requireBitness));
}
if(stayAlive == 0) { if(stayAlive == 0) {
append(builder, '_', "nowait"); append(builder, '_', "nowait");
} }

37
res/registry.rc Normal file
View File

@ -0,0 +1,37 @@
/************************************************************/
/* 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"
/////////////////////////////////////////////////////////////////////////////
// Neutral resources
/////////////////////////////////////////////////////////////////////////////
#ifdef _WIN32
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
#pragma code_page(1252)
#endif //_WIN32
/////////////////////////////////////////////////////////////////////////////
// Strings
/////////////////////////////////////////////////////////////////////////////
STRINGTABLE
BEGIN
ID_STR_JAVAMIN L"?" /*min supported JRE version, in "w.x.y.z" format*/
ID_STR_JAVAMAX L"?" /*max supported JRE version, in "w.x.y.z" format*/
ID_STR_BITNESS L"?" /*required JRE "bitness", i.e. "32" or "64"*/
END

View File

@ -35,12 +35,6 @@
#ifndef DETECT_REGISTRY #ifndef DETECT_REGISTRY
#define DETECT_REGISTRY 0 #define DETECT_REGISTRY 0
#endif #endif
#ifndef REQUIRE_JAVA
#define REQUIRE_JAVA 8
#endif
#ifndef REQUIRE_BITNESS
#define REQUIRE_BITNESS 0
#endif
#ifndef ENABLE_SPLASH #ifndef ENABLE_SPLASH
#define ENABLE_SPLASH 1 #define ENABLE_SPLASH 1
#endif #endif
@ -51,26 +45,10 @@
#define WAIT_FOR_WINDOW 1 #define WAIT_FOR_WINDOW 1
#endif #endif
// Sanity check
#if (REQUIRE_JAVA < 5) || (REQUIRE_JAVA > 255)
#error Invalid REQUIRE_JAVA value!
#endif
#if (REQUIRE_BITNESS != 0) && (REQUIRE_BITNESS != 32) && (REQUIRE_BITNESS != 64)
#error Invalid REQUIRE_BITNESS value!
#endif
// Dependant
#if (REQUIRE_BITNESS == 64)
#define REQUIRE_BITNESS_CPUARCH "x64"
#else
#define REQUIRE_BITNESS_CPUARCH "x86"
#endif
// Const // Const
static const wchar_t *const JRE_RELATIVE_PATH = L"runtime\\bin\\javaw.exe"; static const wchar_t *const JRE_RELATIVE_PATH = L"runtime\\bin\\javaw.exe";
static const wchar_t *const JRE_DOWNLOAD_LINK = L"https://adoptopenjdk.net/"; static const wchar_t *const JRE_DOWNLOAD_LINK = L"https://adoptopenjdk.net/";
static const DWORD SPLASH_SCREEN_TIMEOUT = 30000U; static const DWORD SPLASH_SCREEN_TIMEOUT = 30000U;
static const ULONGLONG JAVA_MINIMUM_VERSION = ((ULONGLONG)(REQUIRE_JAVA)) << 48;
/* ======================================================================== */ /* ======================================================================== */
/* String routines */ /* String routines */
@ -296,6 +274,18 @@ static wchar_t *load_string(const HINSTANCE hinstance, const UINT id)
return NULL; return NULL;
} }
static DWORD load_uint32(const HINSTANCE hinstance, const UINT id, const DWORD fallback)
{
DWORD value = fallback;
const wchar_t *const str = load_string(hinstance, id);
if(NOT_EMPTY(str))
{
value = wcstoul(str, NULL, 10);
}
free((void*)str);
return value;
}
/* ======================================================================== */ /* ======================================================================== */
/* Registry routines */ /* Registry routines */
/* ======================================================================== */ /* ======================================================================== */
@ -504,6 +494,8 @@ static const BOOL set_current_directory(const wchar_t *const path)
typedef struct typedef struct
{ {
const BOOL flag_x64; const BOOL flag_x64;
const ULONGLONG required_ver_min;
const ULONGLONG required_ver_max;
const HKEY root_key; const HKEY root_key;
const wchar_t *const base_reg_path; const wchar_t *const base_reg_path;
ULONGLONG version; ULONGLONG version;
@ -614,29 +606,26 @@ static const wchar_t *detect_java_runtime_verify(const BOOL flag_x64, const HKEY
static BOOL detect_java_runtime_callback(const wchar_t *const key_name, const ULONG_PTR user_data) static BOOL detect_java_runtime_callback(const wchar_t *const key_name, const ULONG_PTR user_data)
{ {
java_home_t *const context_ptr = (java_home_t*) user_data;
const ULONGLONG version = parse_java_version(key_name); const ULONGLONG version = parse_java_version(key_name);
if(version > JAVA_MINIMUM_VERSION) if ((version >= context_ptr->required_ver_min) && (version < context_ptr->required_ver_max) && (version > context_ptr->version))
{ {
java_home_t *const ptr = (java_home_t*) user_data; wchar_t *const full_reg_path = awprintf(L"%ls\\%ls", context_ptr->base_reg_path, key_name);
if(version > ptr->version)
{
wchar_t *const full_reg_path = awprintf(L"%ls\\%ls", ptr->base_reg_path, key_name);
if (full_reg_path) if (full_reg_path)
{ {
const wchar_t *const java_runtime_path = detect_java_runtime_verify(ptr->flag_x64, ptr->root_key, full_reg_path); const wchar_t *const java_runtime_path = detect_java_runtime_verify(context_ptr->flag_x64, context_ptr->root_key, full_reg_path);
if(java_runtime_path) if(java_runtime_path)
{ {
SET_STRING(ptr->runtime_path, java_runtime_path); SET_STRING(context_ptr->runtime_path, java_runtime_path);
ptr->version = version; context_ptr->version = version;
} }
free(full_reg_path); free(full_reg_path);
} }
} }
}
return TRUE; return TRUE;
} }
static const wchar_t *detect_java_runtime_loop(const BOOL flag_x64) static const wchar_t *detect_java_runtime_loop(const BOOL flag_x64, const ULONGLONG required_ver_min, const ULONGLONG required_ver_max)
{ {
static const wchar_t *const REG_KEY_PATHS[2U][3U] = static const wchar_t *const REG_KEY_PATHS[2U][3U] =
{ {
@ -651,38 +640,70 @@ static const wchar_t *detect_java_runtime_loop(const BOOL flag_x64)
{ {
for (size_t j = 0; REG_KEY_PATHS[i][j]; ++j) for (size_t j = 0; REG_KEY_PATHS[i][j]; ++j)
{ {
java_home_t state = { flag_x64, HKEY_LOCAL_MACHINE, REG_KEY_PATHS[i][j], version, runtime_path }; java_home_t state = { flag_x64, required_ver_min, required_ver_max, HKEY_LOCAL_MACHINE, REG_KEY_PATHS[i][j], version, NULL };
reg_enum_subkeys(HKEY_LOCAL_MACHINE, REG_KEY_PATHS[i][j], flag_x64, detect_java_runtime_callback, (ULONG_PTR)&state); reg_enum_subkeys(HKEY_LOCAL_MACHINE, REG_KEY_PATHS[i][j], flag_x64, detect_java_runtime_callback, (ULONG_PTR)&state);
if((state.version > version) && state.runtime_path)
{
version = state.version; version = state.version;
runtime_path = state.runtime_path; SET_STRING(runtime_path, state.runtime_path);
} }
if ((version > JAVA_MINIMUM_VERSION) && runtime_path) else
{
free((void*)state.runtime_path);
}
}
if ((version >= required_ver_min) && (version < required_ver_max) && runtime_path)
{ {
return runtime_path; return runtime_path;
} }
} }
free((void*)runtime_path);
return NULL; return NULL;
} }
static const wchar_t *detect_java_runtime(void) static const wchar_t *detect_java_runtime(const DWORD required_bitness, const ULONGLONG required_ver_min, const ULONGLONG required_ver_max)
{ {
const wchar_t *java_runtime; const wchar_t *java_runtime_path;
#if (REQUIRE_BITNESS != 32) if (required_bitness != 32U)
if(java_runtime = running_on_64bit() ? detect_java_runtime_loop(TRUE) : NULL)
{ {
return java_runtime; if (java_runtime_path = running_on_64bit() ? detect_java_runtime_loop(TRUE, required_ver_min, required_ver_max) : NULL)
{
return java_runtime_path;
}
}
if (required_bitness != 64U)
{
if(java_runtime_path = detect_java_runtime_loop(FALSE, required_ver_min, required_ver_max))
{
return java_runtime_path;
} }
#endif
#if (REQUIRE_BITNESS != 64)
if(java_runtime = detect_java_runtime_loop(FALSE))
{
return java_runtime;
} }
#endif
return NULL; return NULL;
} }
static const ULONGLONG load_java_version(const HINSTANCE hinstance, const UINT id, const ULONGLONG fallback)
{
ULONGLONG value = fallback;
const wchar_t *const str = load_string(hinstance, id);
if(NOT_EMPTY(str))
{
const ULONGLONG temp = parse_java_version(str);
if(temp >= (5ull << 48))
{
value = temp;
}
}
free((void*)str);
return value;
}
static DWORD load_java_bitness(const HINSTANCE hinstance, const UINT id)
{
const DWORD value = load_uint32(hinstance, id, 0U);
return ((value == 32U) || (value == 64U)) ? value : 0U;
}
/* ======================================================================== */ /* ======================================================================== */
/* Splash screen */ /* Splash screen */
/* ======================================================================== */ /* ======================================================================== */
@ -739,14 +760,15 @@ find_window_t;
static BOOL CALLBACK enum_windows_callback(const HWND hwnd, const LPARAM lparam) static BOOL CALLBACK enum_windows_callback(const HWND hwnd, const LPARAM lparam)
{ {
DWORD process_id = MAXDWORD; find_window_t *const context_ptr = (find_window_t*)lparam;
find_window_t *const ptr = (find_window_t*) lparam; const DWORD required_process_id = context_ptr->process_id;
if(IsWindowVisible(hwnd)) if(IsWindowVisible(hwnd))
{ {
DWORD process_id = MAXDWORD;
GetWindowThreadProcessId(hwnd, &process_id); GetWindowThreadProcessId(hwnd, &process_id);
if(process_id == ptr->process_id) if(process_id == required_process_id)
{ {
ptr->hwnd = hwnd; context_ptr->hwnd = hwnd;
return FALSE; return FALSE;
} }
} }
@ -836,26 +858,30 @@ static int show_message_format(HWND hwnd, const DWORD flags, const wchar_t *cons
return result; return result;
} }
static void show_jre_download_notice(const HWND hwnd, const wchar_t *const title) static void show_jre_download_notice(const HWND hwnd, const wchar_t *const title, const DWORD required_bitness, const ULONGLONG required_ver)
{ {
const DWORD REQUIRED_VERSION[] = const DWORD req_version_comp[] =
{ {
(JAVA_MINIMUM_VERSION >> 48) & 0xFFFF, (JAVA_MINIMUM_VERSION >> 32) & 0xFFFF, (required_ver >> 48) & 0xFFFF, (required_ver >> 32) & 0xFFFF, (required_ver >> 16) & 0xFFFF, required_ver & 0xFFFF
(JAVA_MINIMUM_VERSION >> 16) & 0xFFFF, JAVA_MINIMUM_VERSION & 0xFFFF
}; };
wchar_t *const version_str = (REQUIRED_VERSION[3U] != 0U) wchar_t *const version_str = (req_version_comp[3U] != 0U)
? awprintf(L"%u.%u.%u_%u", REQUIRED_VERSION[0U], REQUIRED_VERSION[1U], REQUIRED_VERSION[2U], REQUIRED_VERSION[3U]) ? awprintf(L"%u.%u.%u_%u", req_version_comp[0U], req_version_comp[1U], req_version_comp[2U], req_version_comp[3U])
: ((REQUIRED_VERSION[2U] != 0U) : ((req_version_comp[2U] != 0U)
? awprintf(L"%u.%u.%u", REQUIRED_VERSION[0U], REQUIRED_VERSION[1U], REQUIRED_VERSION[2U]) ? awprintf(L"%u.%u.%u", req_version_comp[0U], req_version_comp[1U], req_version_comp[2U])
: awprintf(L"%u.%u", REQUIRED_VERSION[0U], REQUIRED_VERSION[1U])); : awprintf(L"%u.%u", req_version_comp[0U], req_version_comp[1U]));
if(version_str) if(version_str)
{ {
if (show_message_format(hwnd, MB_ICONWARNING | MB_OKCANCEL | MB_TOPMOST, L"JRE not found", const int result = (required_bitness == 0U)
? show_message_format(hwnd, MB_ICONWARNING | MB_OKCANCEL | MB_TOPMOST, title,
L"This application requires the Java Runtime Environment, version %ls, or a compatible newer version.\n\n" L"This application requires the Java Runtime Environment, version %ls, or a compatible newer version.\n\n"
#if (REQUIRE_BITNESS != 0) L"We recommend downloading the OpenJDK runtime here:\n%ls",
L"Only the " XSTR(REQUIRE_BITNESS) "-Bit (" REQUIRE_BITNESS_CPUARCH ") version of the JRE is supported!\n\n" version_str, JRE_DOWNLOAD_LINK)
#endif : show_message_format(hwnd, MB_ICONWARNING | MB_OKCANCEL | MB_TOPMOST, title,
L"We recommend downloading the OpenJDK runtime here:\n%ls", version_str, JRE_DOWNLOAD_LINK) == IDOK) L"This application requires the Java Runtime Environment, version %ls, or a compatible newer version.\n\n"
L"Only the %u-Bit (%ls) version of the JRE is supported!\n\n",
L"We recommend downloading the OpenJDK runtime:\n%ls",
version_str, required_bitness, (required_bitness == 64) ? L"x64" : L"x86", JRE_DOWNLOAD_LINK);
if (result == IDOK)
{ {
ShellExecuteW(hwnd, NULL, JRE_DOWNLOAD_LINK, NULL, NULL, SW_SHOW); ShellExecuteW(hwnd, NULL, JRE_DOWNLOAD_LINK, NULL, NULL, SW_SHOW);
} }
@ -905,6 +931,8 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine
{ {
int result = -1; int result = -1;
const wchar_t *app_heading = NULL, *executable_path = NULL, *executable_directory = NULL, *jarfile_path = NULL, *java_runtime_path = NULL, *jvm_extra_args = NULL, *cmd_extra_args = NULL, *command_line = NULL; const wchar_t *app_heading = NULL, *executable_path = NULL, *executable_directory = NULL, *jarfile_path = NULL, *java_runtime_path = NULL, *jvm_extra_args = NULL, *cmd_extra_args = NULL, *command_line = NULL;
DWORD java_required_bitness = 0U;
ULONGLONG java_required_ver_min = 0ULL, java_required_ver_max = 0ULL;
HGDIOBJ splash_image = NULL; HGDIOBJ splash_image = NULL;
PROCESS_INFORMATION process_info; PROCESS_INFORMATION process_info;
STARTUPINFOW startup_info; STARTUPINFOW startup_info;
@ -968,10 +996,13 @@ int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine
// Find the Java runtime executable path (possibly from the registry) // Find the Java runtime executable path (possibly from the registry)
#if DETECT_REGISTRY #if DETECT_REGISTRY
if (!(java_runtime_path = detect_java_runtime())) 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_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)))
{ {
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(hwnd, APP_HEADING); show_jre_download_notice(hwnd, APP_HEADING, java_required_bitness, java_required_ver_min);
goto cleanup; goto cleanup;
} }
#else #else

View File

@ -21,3 +21,6 @@
#define ID_STR_HEADING 1 #define ID_STR_HEADING 1
#define ID_STR_JVMARGS 2 #define ID_STR_JVMARGS 2
#define ID_STR_CMDARGS 3 #define ID_STR_CMDARGS 3
#define ID_STR_JAVAMIN 4
#define ID_STR_JAVAMAX 5
#define ID_STR_BITNESS 6