TOOLPATH = ../z_tools/
AR      = $(TOOLPATH)ar
AS      = $(TOOLPATH)as
AFLAGS  =
CC      = 
CF32    = $(TOOLPATH)gcc -m32 -D_PEKOE32_ -mpush-args
CF64    = $(TOOLPATH)xgcc -m64 -z nodefaultlib -mpush-args -falign-functions=2 
CFBASE  = -Wall -mno-red-zone -nostdlib -fno-exceptions -fno-builtin -fno-rtti -c -O3
CFLAGS  = $(CF64) $(CFBASE)
LD      = 
#LF32   = /bin/ld --format pe-i386 --oformat pe-i386 -m i386pe -e ___crtLeaf32 -T ../env/link32.txt
LF32    = $(TOOLPATH)ld32 -e ___crtLeaf32
LF64    = $(TOOLPATH)ld64 -e __crtLeaf64 -T $(TOOLPATH)link64.txt
LFBASE  = --gc-sections
LFLAGS  = $(LF64) $(LFBASE)
MAKE    = make
BIM2BIN = $(TOOLPATH)bim2bin.exe
ELF2COM = $(TOOLPATH)elf2com.exe
BINDCOM = $(TOOLPATH)bindcom.exe
EDIMG   = $(TOOLPATH)edimg.exe
OBJCOPY = $(TOOLPATH)objcopy
LIB64   = $(TOOLPATH)lib/pekoe64.a
CRT64   = $(TOOLPATH)lib/crt64.o
LIB32   = $(TOOLPATH)lib/pekoe32.a
CRT32   = $(TOOLPATH)lib/crt32.o
CFINCLUDE = -I$(TOOLPATH)include
DELE    = rm -f
COPY    = cp
BXSHARE = bin

.cpp.o:
	$(CC) $(CF64) $(CFBASE) $(CFINCLUDE) $*.cpp

all: $(TARGET).t

clean:
	$(DELE) *.o *.elf *.com *.tek *.exe *.ld *.t $(TOOLPATH)test64.com

$(TARGET).t: $(TARGET)64.com
	touch $(TARGET).t

$(TARGET)64.com: $(OBJ) $(CRT64)
	$(LD) $(LF64) $(LFBASE) -o $(TARGET)64.elf $(OBJ) $(CRT64) $(LIB64)
	$(ELF2COM) $(TARGET)64.elf $(TARGET)64.exe
	$(BIM2BIN) -osacmp -tek1 BS:0 in:$(TARGET)64.exe out:$(TARGET)64.tek
	$(BINDCOM) tek $(TOOLPATH)sfx64.bin $(TARGET)64.tek $(TARGET)64.com

run: $(TARGET)64.com
	$(COPY) $(TARGET)64.com ..\z_tools\test64.com
	$(EDIMG) @$(TOOLPATH)edimgopt64.txt
	$(MAKE) -C $(TOOLPATH)bochs
