# Build the 64-bit Windows GUI (no console window).
#
#   make
#   make gui
#
# If "make" is missing on Windows, use "mingw32-make" instead.
# You need 64-bit MinGW gcc on PATH (w64devkit, MSYS2, or winlibs).

CC      ?= gcc
CFLAGS  ?= -O2 -Wall
GUI_LIBS = -lcomdlg32 -lshell32 -lwinmm

.PHONY: all gui cli clean

all: gui

gui: ToySoundUnpacker.exe

cli: jlfs_unpack.exe extract_jl

extract_jl: jlfs_cli.c jlfs_unpack.c jlfs_unpack.h
	$(CC) $(CFLAGS) -o $@ jlfs_cli.c jlfs_unpack.c

.PHONY: extract_jl

# IMPORTANT: do not link jlfs_cli.c into the GUI.
# A leftover main() makes MinGW skip WinMain and the window never appears.
ToySoundUnpacker.exe: jlfs_unpack_gui.c jlfs_unpack.c jlfs_unpack.h
	$(CC) $(CFLAGS) -mwindows -o $@ jlfs_unpack_gui.c jlfs_unpack.c $(GUI_LIBS)

jlfs_unpack.exe: jlfs_cli.c jlfs_unpack.c jlfs_unpack.h
	$(CC) $(CFLAGS) -o $@ jlfs_cli.c jlfs_unpack.c

clean:
	rm -f ToySoundUnpacker.exe jlfs_unpack.exe jlfs_unpack.o jlfs_unpack_gui.o
