# to make all lib and examples
# make -f Makefile-mono all
# to clean the build
# make -f Makefile-mono clean
# mcs and vbnc must be installed and added to path
# to run example execute on bin folder mono <example_name>.exe

CSC = mcs
VBC = vbc

NAME = DeathByCaptcha

JSON_SRC = DeathByCaptcha/SimpleJson/*.cs
LIB_SRC = DeathByCaptcha/$(NAME)/*.cs


all: clean lib examples


clean:
	rm -rf bin doc lib

.PHONY: lib
lib:
	-mkdir lib doc
	$(CSC) -r:System.Web -target:library -nowarn:1591,1587 -out:lib/$(NAME).dll -doc:doc/$(NAME).xml $(JSON_SRC) $(LIB_SRC)

examples:
	$(MAKE) -f Makefile-mono $(MAKEFLAGS) examples.cs examples.vb

.PHONY: examples.cs
examples.cs:
	-mkdir -p bin
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/GetBalance.cs.exe -main:$(NAME).GetBalance DBC_Examples/Examples.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/FuncaptchaExample.cs.exe -main:$(NAME).FuncaptchaExample DBC_Examples/FuncaptchaExample.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/HcaptchaExample.cs.exe -main:$(NAME).HcaptchaExample DBC_Examples/HcaptchaExample.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/RecaptchaCoordinatesExample.cs.exe -main:$(NAME).RecaptchaCoordinatesExample DBC_Examples/RecaptchaCoordinatesExample.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/RecaptchaImageGroupExample.cs.exe -main:$(NAME).RecaptchaImageGroupExample DBC_Examples/RecaptchaImageGroupExample.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/RecaptchaV2Example.cs.exe -main:$(NAME).RecaptchaV2Example DBC_Examples/RecaptchaV2Example.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/RecaptchaV3Example.cs.exe -main:$(NAME).RecaptchaV3Example DBC_Examples/RecaptchaV3Example.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/GeetestV4Example.cs.exe -main:$(NAME).GeetestV4Example DBC_Examples/GeetestV4Example.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/GeetestV3Example.cs.exe -main:$(NAME).GeetestV3Example DBC_Examples/GeetestV3Example.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/AmazonWafExample.cs.exe -main:$(NAME).AmazonWafExample DBC_Examples/AmazonWafExample.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/AudioExample.cs.exe -main:$(NAME).AudioExample DBC_Examples/AudioExample.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/TurnstileExample.cs.exe -main:$(NAME).TurnstileExample DBC_Examples/TurnstileExample.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/SiaraExample.cs.exe -main:$(NAME).SiaraExample DBC_Examples/SiaraExample.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/TextcaptchaExample.cs.exe -main:$(NAME).TextcaptchaExample DBC_Examples/TextcaptchaExample.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/LeminExample.cs.exe -main:$(NAME).LeminExample DBC_Examples/LeminExample.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/FriendlycaptchaExample.cs.exe -main:$(NAME).FriendlycaptchaExample DBC_Examples/FriendlycaptchaExample.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/CutcaptchaExample.cs.exe -main:$(NAME).CutcaptchaExample DBC_Examples/CutcaptchaExample.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/MtcaptchaExample.cs.exe -main:$(NAME).MtcaptchaExample DBC_Examples/MtcaptchaExample.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/AtbExample.cs.exe -main:$(NAME).AtbExample DBC_Examples/AtbExample.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/TencentExample.cs.exe -main:$(NAME).TencentExample DBC_Examples/TencentExample.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/FuncaptchaImageExample.cs.exe -main:$(NAME).FuncaptchaImageExample DBC_Examples/FuncaptchaImageExample.cs
	$(CSC) -r:lib/$(NAME).dll -target:exe -out:bin/NormalCaptchaExample.cs.exe -main:$(NAME).NormalCaptchaExample DBC_Examples/NormalCaptchaExample.cs
	cp lib/DeathByCaptcha.dll bin

.PHONY: examples.vb
examples.vb:
	-mkdir -p bin
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/GetBalance.vb.exe -main:GetBalance DBC_Examples_VB/Examples.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/Funcaptcha.vb.exe -main:Funcaptcha DBC_Examples_VB/Funcaptcha.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/Hcaptcha.vb.exe -main:Hcaptcha DBC_Examples_VB/Hcaptcha.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/RecaptchaCoordinates.vb.exe -main:RecaptchaCoordinates DBC_Examples_VB/RecaptchaCoordinates.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/RecaptchaImageGroup.vb.exe -main:RecaptchaImageGroup DBC_Examples_VB/RecaptchaImageGroup.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/RecaptchaV2.vb.exe -main:RecaptchaV2 DBC_Examples_VB/RecaptchaV2.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/RecaptchaV3.vb.exe -main:RecaptchaV3 DBC_Examples_VB/RecaptchaV3.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/GeetestV4.vb.exe -main:GeetestV4 DBC_Examples_VB/GeetestV4.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/GeetestV3.vb.exe -main:GeetestV3 DBC_Examples_VB/GeetestV3.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/AmazonWaf.vb.exe -main:AmazonWaf DBC_Examples_VB/AmazonWaf.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/Audio.vb.exe -main:Audio DBC_Examples_VB/Audio.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/Turnstile.vb.exe -main:Turnstile DBC_Examples_VB/Turnstile.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/Textcaptcha.vb.exe -main:Textcaptcha DBC_Examples_VB/Textcaptcha.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/Siara.vb.exe -main:Siara DBC_Examples_VB/Siara.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/Lemin.vb.exe -main:Lemin DBC_Examples_VB/Lemin.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/Friendlycaptcha.vb.exe -main:Friendlycaptcha DBC_Examples_VB/Friendlycaptcha.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/Cutcaptcha.vb.exe -main:Cutcaptcha DBC_Examples_VB/Cutcaptcha.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/Mtcaptcha.vb.exe -main:Mtcaptcha DBC_Examples_VB/Mtcaptcha.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/Atb.vb.exe -main:Atb DBC_Examples_VB/Atb.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/Tencent.vb.exe -main:Tencent DBC_Examples_VB/Tencent.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/FuncaptchaImage.vb.exe -main:FuncaptchaImage DBC_Examples_VB/FuncaptchaImage.vb
	$(VBC) -r:lib/$(NAME).dll -target:exe -out:bin/Normal_Captcha.vb.exe -main:Normal_Captcha DBC_Examples_VB/Normal_Captcha.vb
	cp lib/DeathByCaptcha.dll bin

