AR	= ar
AS	=
AFLAGS	=
CC	= 
CF32	= gcc -m32 -D_PEKOE32_ -mpush-args
CF64	= 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	= /bin/ld -e ___crtLeaf32
LF64	= ld -e __crtLeaf64 -T ../env/link64.txt
LFBASE	=  --gc-sections
LFLAGS	= $(LF64) $(LFBASE)
MAKE	= make
BIM2BIN	= ../tools/bim2bin.exe
ELF2COM	= ../tools/elf2com.exe
BINDCOM	= ../tools/bindcom.exe
OBJCOPY	= objcopy

CFINCLUDE	= -Iinclude
STDLIB	= lib/pekoe64.a
CRT	= lib/crt64.o
TARGET	= lib/crt64.o lib/crt32.o lib/pekoe64.a lib/pekoe32.a tools/sfx64.bin tools/sfx32.bin

.cpp.o:
	$(CC) $(CFLAGS) $(CFINCLUDE) $*.cpp

all: $(TARGET)
	(cd system; $(MAKE))
	(cd user; $(MAKE))
	(cd sample; $(MAKE))
	(cd private; $(MAKE))
	echo make is all over

clean:
	-rm -f $(TARGET) tools/*.bsc
	(cd lib64; $(MAKE) clean)
	(cd lib32; $(MAKE) clean)
	(cd system; $(MAKE) clean)
	(cd user; $(MAKE) clean)
	(cd sample; $(MAKE) clean)
	(cd private; $(MAKE) clean)

reclean: clean
	-rm Makefile src-lib/Makefile system/Makefile user/Makefile tools/*.bsc
	cp Makefile.null Makefile

tools/sfx32.bin: tools/sfx32.nas
	nasm -f bin -o tools/sfx32.bin tools/sfx32.nas

tools/sfx64.bin: tools/sfx64.nas
	yasm -f bin -o tools/sfx64.bin tools/sfx64.nas

lib/crt64.o: src-crt/crt64.cpp
	$(CC) $(CF64) $(CFBASE) $(CFINCLUDE) -o lib/crt64.o src-crt/crt64.cpp

lib/crt32.o: src-crt/crt32.nas
	nasm -f elf -o lib/crt32.o src-crt/crt32.nas
#	$(CC) $(CF32) $(CFBASE) $(CFINCLUDE) -o lib/crt32.o src-crt/crt32.cpp

lib/pekoe64.a: lib64/*.cpp lib64/Makefile
	(cd lib64; $(MAKE))
	$(AR) r lib/pekoe64.a lib64/*.o

lib/pekoe32.a: lib32/*.cpp lib32/Makefile
	(cd lib32; $(MAKE))
	$(AR) r lib/pekoe32.a lib32/*.o
