# -Bbin			use crt0elf.o, specs, ld and stubify from bin
# -B/dev/env/DJDIR/elf	use the ELF toolchain
CC = gcc -Bbin -B/dev/env/DJDIR/elf
CXX = gxx -Bbin -B/dev/env/DJDIR/elf

all: bin/crt0elf.o libez.so
	$(CC) -fpie -O2 -s -nodefaultlibs test.c -L. -lez
	$(CC) -o b.out -O2 -s -nodefaultlibs test.c -L. -lez
	$(CC) -o test2.exe -O2 -s test2.c
	$(CXX) -o test3.exe -O2 -s test3.cc

libez.so: easy.o
	$(CC) -o $@ -shared -nodefaultlibs $^

easy.o: easy.c
	$(CC) -o $@ -O2 -c $<

bin/crt0elf.o: crt0/crt0.o crt0/elven.o crt0/dos.o crt0/error.o
	ld -o $@ -m elf_i386 -r -x -S $^

crt0/crt0.o: crt0/crt0.S
	$(CC) -o $@ -c $<

crt0/dos.o: crt0/dos.S
	$(CC) -o $@ -c $<

crt0/error.o: crt0/error.S
	$(CC) -o $@ -c $<

crt0/elven.o: crt0/elven.c
#	$(CC) -o $@ -Wall -W -pedantic -O2 -fpie -c $<
	$(CC) -o $@ -Wall -W -pedantic -O2 -c $<

crt0/debug.o: crt0/debug.c
	$(CC) -o $@ -Wall -W -pedantic -O2 -c $<

clean:
	del crt0\crt0.o
	del crt0\dos.o
	del crt0\error.o
	del crt0\elven.o
	del crt0\debug.o
	del bin\crt0elf.o
	del a.out
	del a.exe
	del b.out
	del b.exe
	del easy.o
	del libez.so
	del test2.exe
	del test3.exe
