# ============================================================
# Web (WASM) build
# ============================================================
RAYLIB_WEB_PATH = /opt/devel
WEB_SRC = main.cc
WEB_OUTPUT = index.js

WEB_CC = emcc
WEB_CFLAGS = -I$(RAYLIB_WEB_PATH)/include -DPLATFORM_WEB
WEB_LDFLAGS = -L$(RAYLIB_WEB_PATH)/lib -lraylib.web \
              -s USE_GLFW=3 \
              -s ASYNCIFY \
              -s FORCE_FILESYSTEM=1 \
              -s ALLOW_MEMORY_GROWTH=1 \
              --preload-file assets

all:
	$(WEB_CC) $(WEB_SRC) -o $(WEB_OUTPUT) $(WEB_CFLAGS) $(WEB_LDFLAGS)

# ============================================================
# Local (native macOS) build
# ============================================================
RAYLIB_LOCAL_PATH = /opt/local
LOCAL_SRC = local.cc
LOCAL_OUTPUT = penger

LOCAL_CC = clang++
LOCAL_CFLAGS = -I$(RAYLIB_LOCAL_PATH)/include -std=c++17 -O2
LOCAL_LDFLAGS = -L$(RAYLIB_LOCAL_PATH)/lib -lraylib \
                -framework CoreVideo -framework IOKit \
                -framework Cocoa -framework GLUT -framework OpenGL

local:
	$(LOCAL_CC) $(LOCAL_SRC) -o $(LOCAL_OUTPUT) $(LOCAL_CFLAGS) $(LOCAL_LDFLAGS)

# ============================================================
# macOS .app bundle
# ============================================================
APP_NAME = Penger
APP_DIR = $(APP_NAME).app
APP_CONTENTS = $(APP_DIR)/Contents
APP_MACOS = $(APP_CONTENTS)/MacOS
APP_RESOURCES = $(APP_CONTENTS)/Resources

bundle: local
	rm -rf $(APP_DIR)
	mkdir -p $(APP_MACOS) $(APP_RESOURCES)
	cp $(LOCAL_OUTPUT) $(APP_MACOS)/
	cp -R assets $(APP_MACOS)/
	@echo '<?xml version="1.0" encoding="UTF-8"?>'           >  $(APP_CONTENTS)/Info.plist
	@echo '<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">' >> $(APP_CONTENTS)/Info.plist
	@echo '<plist version="1.0">'                            >> $(APP_CONTENTS)/Info.plist
	@echo '<dict>'                                           >> $(APP_CONTENTS)/Info.plist
	@echo '    <key>CFBundleExecutable</key>'                >> $(APP_CONTENTS)/Info.plist
	@echo '    <string>$(LOCAL_OUTPUT)</string>'             >> $(APP_CONTENTS)/Info.plist
	@echo '    <key>CFBundleName</key>'                      >> $(APP_CONTENTS)/Info.plist
	@echo '    <string>$(APP_NAME)</string>'                 >> $(APP_CONTENTS)/Info.plist
	@echo '    <key>CFBundleIdentifier</key>'                >> $(APP_CONTENTS)/Info.plist
	@echo '    <string>com.vincent.penger</string>'          >> $(APP_CONTENTS)/Info.plist
	@echo '    <key>CFBundleVersion</key>'                   >> $(APP_CONTENTS)/Info.plist
	@echo '    <string>1.0</string>'                         >> $(APP_CONTENTS)/Info.plist
	@echo '    <key>CFBundleShortVersionString</key>'        >> $(APP_CONTENTS)/Info.plist
	@echo '    <string>1.0</string>'                         >> $(APP_CONTENTS)/Info.plist
	@echo '    <key>NSHighResolutionCapable</key>'           >> $(APP_CONTENTS)/Info.plist
	@echo '    <true/>'                                      >> $(APP_CONTENTS)/Info.plist
	@echo '</dict>'                                          >> $(APP_CONTENTS)/Info.plist
	@echo '</plist>'                                         >> $(APP_CONTENTS)/Info.plist
	@echo "✔  $(APP_DIR) ready"

# ============================================================
# Common
# ============================================================
clean:
	rm -f $(WEB_OUTPUT) *.wasm *.data $(LOCAL_OUTPUT)
	rm -rf $(APP_DIR)
