# ------------------------------------------------
#
# autest build 
#
# ------------------------------------------------

#
#
# AutoIt 
#

AU2EXE       = $(AUTOIT_ROOT)/Aut2Exe/Aut2exe.exe
AUT2EXEFLAGS += /console

AUTEST_AU3DIR = $(AUTEST_ROOT)/include


#
#
# Preprocessor Configuration
#

CCFLAGS +=
PPFLAGS ?= -E -P

#
#
# Build Config
#

OBJDIR  = .obj
MAKEFILE = Makefile
AUTEST_INC := $(AUTEST_ROOT)/toolchain/include/autest.h


#
#
# Build
#

PREPRO_AU3_EXT = pau3
PREPRO_TARGETS = $(SOURCES:%.au3=%.$(PREPRO_AU3_EXT))
C_TARGETS      = $(SOURCES:%.au3=$(OBJDIR)/%.c)
TARGETS        = $(SOURCES:%.au3=%.exe)
AUTEST_INCLUDE = $(AUTEST_INC:%=-include "%")

.PHONY: clean all run default

default: DEFAULT_TARGETS

all: clean default

clean:
	rm -rf $(OBJDIR)
	rm -rf $(TARGETS)
	rm -rf $(PREPRO_TARGETS)

run: $(TARGETS)
	$(TARGETS:%.exe=./%.exe;)

DEFAULT_TARGETS : $(TARGETS)

define	MKTMP
	if [ ! -d $(@D) ]; then \
	  mkdir -p $(@D); \
	fi
endef

$(TARGETS) : %.exe : $(PREPRO_TARGETS) $(MAKEFILE) $(AUTEST_AU3DIR)/*.au3
	"$(AU2EXE)" /in $(@:%.exe=%.$(PREPRO_AU3_EXT)) /out $@ $(AUT2EXEFLAGS)


# cs - ce fBNeBu𖳎悤ɒu
$(C_TARGETS) : $(SOURCES)
	@$(MKTMP)
	@sed -e 's/#/__sharp__/g' $(@:$(OBJDIR)/%.c=%.au3) > $@
	
$(PREPRO_TARGETS) : %.pau3 : $(C_TARGETS) $(AUTEST_INC)
	@$(CC) $(CCFLAGS) $(PPFLAGS) $(AUTEST_INCLUDE) -I./  -xc $(@:%.$(PREPRO_AU3_EXT)=$(OBJDIR)/%.c) \
		| sed -e 's/__sharp__/#/g' \
		| sed -e 's/__lf__/\n/g' \
		| sed -e 's|$(@:%.$(PREPRO_AU3_EXT)=$(OBJDIR)/%.c)|$(@:%.$(PREPRO_AU3_EXT)=%.au3)|g' \
		| sed -e 's/\\"/""/g' > $@
	