LUA_V = 5.4

CC = kos32-gcc
LD = kos32-ld
STRIP = kos32-strip
OBJCOPY = kos32-objcopy
STD = -std=gnu11
CFLAGS = $(SYSCFLAGS) -O2 -Wall -Wextra $(STD) $(MYCFLAGS)
LDFLAGS = $(SYSLDFLAGS) $(MYLDFLAGS)
LIBS = $(SYSLIBS) $(MYLIBS) -llua$(LUA_V).dll.a

ifeq ($(OS), Windows_NT)
	TOOLCHAIN_PATH = C:/MinGW/msys/1.0/home/autobuild/tools/win32
else
	TOOLCHAIN_PATH = /home/autobuild/tools/win32
endif

KOLIBRIOS_REPO = $(abspath ../kolibrios)



SDK_DIR = $(KOLIBRIOS_REPO)/contrib/sdk
NewLib_DIR = $(SDK_DIR)/sources/newlib
SYSCFLAGS = -fno-ident -fomit-frame-pointer -U__WIN32__ -U_Win32 -U_WIN32 -U__MINGW32__ -UWIN32 -I$(NewLib_DIR)/libc/include -I$(TOOLCHAIN_PATH)/include/lua$(LUA_V)
SYSLDFLAGS = --image-base 0 -Tapp-dynamic.lds
SYSLIBS = -nostdlib -L $(SDK_DIR)/lib -L$(TOOLCHAIN_PATH)/lib -L$(TOOLCHAIN_PATH)/mingw32/lib -lgcc -lc.dll -ldll
MYCFLAGS =
MYLDFLAGS =
MYLIBS =
MYOBJS =


Socket_O = src/sockets/socket.o src/sockets/socket_lua.o src/sockets/sockaddr.o
Debug_O = src/debug/debug.o src/debug/registers.o

ALL_O = src/syscalls.o src/ARP_entry.o src/systemColors.o src/graphic.o $(Socket_O) $(Debug_O)

syscalls.dll: $(ALL_O)
	$(CC) -shared -T dll.lds --entry _DllStartup -o $@ $(ALL_O) $(LIBS)

clean:
	rm -f $(ALL_O) syscalls.dll

# Depends

## Sources

src/syscalls.o:	src/syscalls.c	src/syscalls.h	src/systemColors.h	src/ARP_entry.h	src/scancodes.h	src/sockets/socket_lua.h	src/graphic.h
src/ARP_entry.o:	src/ARP_entry.c	src/ARP_entry.h	src/debug.h
src/systemColors.o:	src/systemColors.c	src/systemColors.h	src/debug.h
src/sockets/socket.o:	src/sockets/socket.c	src/sockets/socket.h
src/sockets/socket_lua.o:	src/sockets/socket_lua.c	src/sockets/socket_lua.h
src/sockets/sockaddr.o:	src/sockets/sockaddr.c	src/sockets/sockaddr.h
src/graphic.o:	src/graphic.c	src/graphic.h
src/debug/debug.o:	src/debug/debug.c	src/debug/debug.h	src/debug/registers.h
src/debug/registers.o:	src/debug/registers.c	src/debug/registers.h	src/syscalls.h

## headers

src/graphic.h:	src/syscalls.h
src/sockets/socket_lua.h:	src/syscalls.h	src/sockets/socket.h
src/sockets/sockaddr.h:	src/sockets/socket.h	src/syscalls.h
src/debug/debug.h:	src/syscalls.h
src/debug/registers.h:	src/syscalls.h
