# cl /wd4996 /EHsc AScript.cpp Main.cpp
SRCS_COMMON = Common.cpp Symbol.cpp String.cpp Signal.cpp Formatter.cpp 
SRCS_COMMON = $(SRCS_COMMON) File.cpp Value.cpp Declaration.cpp Environment.cpp
SRCS_COMMON = $(SRCS_COMMON) Function.cpp Object.cpp Module.cpp
SRCS_COMMON = $(SRCS_COMMON) Object_Function.cpp Object_String.cpp Object_List.cpp Object_Dict.cpp
SRCS_COMMON = $(SRCS_COMMON) Object_File.cpp Object_FileStat.cpp Object_DateTime.cpp
SRCS_COMMON = $(SRCS_COMMON) Object_Expr.cpp Object_Environment.cpp Object_Error.cpp
SRCS_COMMON = $(SRCS_COMMON) Object_Struct.cpp Object_Custom.cpp
SRCS_COMMON = $(SRCS_COMMON) Operator.cpp Expr.cpp Parser.cpp

TGT_ASCRIPT = ..\AScript.exe
SRCS_ASCRIPT = $(SRCS_COMMON) Main.cpp
SRCS_ASCRIPT = $(SRCS_ASCRIPT) Module_math.cpp
SRCS_ASCRIPT = $(SRCS_ASCRIPT) Module_builtins.cpp
SRCS_ASCRIPT = $(SRCS_ASCRIPT) Module_os.cpp
SRCS_ASCRIPT = $(SRCS_ASCRIPT) Module_sys.cpp
SRCS_ASCRIPT = $(SRCS_ASCRIPT) Module_time.cpp
SRCS_ASCRIPT = $(SRCS_ASCRIPT) Module_string.cpp
TARGETS = $(TARGETS) $(TGT_ASCRIPT)

OBJS_EXTRA = SFMT-src-1.3.3\sfmt.obj

TGT_SCRATCH = Scratch.exe
SRCS_SCRATCH = $(SRCS_COMMON) Scratch.cpp
TARGETS = $(TARGETS) $(TGT_SCRATCH)

TGT_MODULE_CSV = ..\DLLs\csv.azd
SRCS_MODULE_CSV = $(SRCS_COMMON) Module_csv.cpp
TARGETS = $(TARGETS) $(TGT_MODULE_CSV)

TGT_MODULE_RE = ..\DLLs\re.azd
SRCS_MODULE_RE = $(SRCS_COMMON) Module_re.cpp
TARGETS = $(TARGETS) $(TGT_MODULE_RE)

TGT_MODULE_XML = ..\DLLs\xml.azd
SRCS_MODULE_XML = $(SRCS_COMMON) Module_xml.cpp
TARGETS = $(TARGETS) $(TGT_MODULE_XML)

TGT_MODULE_CANVAS = ..\DLLs\canvas.azd
SRCS_MODULE_CANVAS = $(SRCS_COMMON) Module_canvas.cpp
TARGETS = $(TARGETS) $(TGT_MODULE_CANVAS)

TGT_MODULE_SAMPLE = ..\DLLs\sample.azd
SRCS_MODULE_SAMPLE = $(SRCS_COMMON) Module_sample.cpp
TARGETS = $(TARGETS) $(TGT_MODULE_SAMPLE)

LDFLAGS = -q -L$(MAKEDIR)\..\Lib -L$(MAKEDIR)\..\Lib\psdk -lS:10000000
CFLAGS = -q -I$(MAKEDIR)\..\Include -w-8057 -w-8004
CFLAGS = $(CFLAGS) -Ionig-5.9.2
CFLAGS = $(CFLAGS) -ISFMT-src-1.3.3
CFLAGS = $(CFLAGS) -Iexpat-2.0.1\lib

#CFLAGS = $(CFLAGS) -DDEBUG_ASCRIPT

LIBS = onig-5.9.2\onig_s.lib
LIBS = $(LIBS) expat-2.0.1\bcb5\release\libexpats_mtd.lib

.cpp.obj:
	@bcc32 $(CFLAGS) -c -o$*.obj $<

all: $(TARGETS)

$(TGT_ASCRIPT): $(SRCS_ASCRIPT:.cpp=.obj) $(OBJS_EXTRA)
	@bcc32 $(LDFLAGS) -e$@ $** $(LIBS)

$(TGT_SCRATCH): $(SRCS_SCRATCH:.cpp=.obj) $(OBJS_EXTRA)
	@bcc32 $(LDFLAGS) -e$@ $** $(LIBS)

$(TGT_MODULE_CSV): $(SRCS_MODULE_CSV:.cpp=.obj) $(OBJS_EXTRA)
	@bcc32 $(LDFLAGS) -tWD -e$@ $** $(LIBS)

$(TGT_MODULE_RE): $(SRCS_MODULE_RE:.cpp=.obj) $(OBJS_EXTRA)
	@bcc32 $(LDFLAGS) -tWD -e$@ $** $(LIBS)

$(TGT_MODULE_XML): $(SRCS_MODULE_XML:.cpp=.obj) $(OBJS_EXTRA)
	@bcc32 $(LDFLAGS) -tWD -e$@ $** $(LIBS)

$(TGT_MODULE_CANVAS): $(SRCS_MODULE_CANVAS:.cpp=.obj) $(OBJS_EXTRA)
	@bcc32 $(LDFLAGS) -tWD -e$@ $** $(LIBS)

$(TGT_MODULE_SAMPLE): $(SRCS_MODULE_SAMPLE:.cpp=.obj) $(OBJS_EXTRA)
	@bcc32 $(LDFLAGS) -tWD -e$@ $** $(LIBS)

SFMT-src-1.3.3\sfmt.obj: SFMT-src-1.3.3\sfmt.c
	@bcc32 -I$(MAKEDIR)\..\Include -q -w-8027 -c -o$@ $**

clean:
	@del $(TARGETS) ..\*.tds ..\DLLs\*.tds *.obj $(OBJS_EXTRA)
