# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
# Firefox Portable String Convert Plugin - Makefile
#   version: 0.0.0.2
#   description: this file is a compile script that makes compile much more
#                easier.
#   author: hobbyscripter <hobbyscripter@gmail.com>
#   copyright: licensed under NSIS-license
# %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


# ================
# Variables
# ================
# ----------------
# Path
# ----------------
ObjsDir = objs
LibsDir = libs

# ----------------
# Used Program
# ----------------
CC = gcc
CCFLAGS =
CXX = g++
CXXFLAGS =
STRIP = strip
NSISC = makensis
NSISCFLAGS =


# ================
# Rules
# ================
# ----- Deps -----
all: mkdirectory mkobjs mkdlls mksample

mkobjs: "src/PFxStringConvertPlugin.c"

# ----- Work -----
"src/PFxStringConvertPlugin.c":
	$(CC) -c "src/PFxStringConvertPlugin.c" -o "$(ObjsDir)/PFxStringConvertPlugin.obj" -DBUILD_DLL

mkdlls: mkobjs
	dllwrap -o "$(LibsDir)/PFxStringConvertPlugin.dll" "$(ObjsDir)/PFxStringConvertPlugin.obj"
	$(STRIP) "$(LibsDir)/PFxStringConvertPlugin.dll"

mkdirectory:
	if not exist $(ObjsDir) mkdir $(ObjsDir)
	if not exist $(LibsDir) mkdir $(LibsDir)

mksample:
	$(NSISC) "sample/PFxStringConvertPlugin.nsi"

.PHONY: clean
clean:
	if exist $(ObjsDir) rmdir /S /Q $(ObjsDir)
	if exist $(LibsDir) rmdir /S /Q $(LibsDir)
	if exist "sample\output.txt" del "sample\output.txt"
	if exist "sample\PFxStringConvPluginEx.exe" del "sample\PFxStringConvPluginEx.exe"

