NAME = kpm

FASM = fasm
CC = kos32-gcc
AR = kos32-ar
LD = kos32-ld
CPP = kos32-g++
STRIP = kos32-strip

CFLAGS = -U_Win32 -U_WIN32 -U__MINGW32__ -c -Os -fomit-frame-pointer -fno-asynchronous-unwind-tables -fno-ident -fomit-frame-pointer  -mno-ms-bitfields
ARFLAG = crs

SDK_DIR = $(abspath ../../sdk)
LIB_DIR = $(SDK_DIR)/lib

INCLUDES = -I. -I$(SDK_DIR)/sources/newlib/libc/include
INCLUDES += -I$(SDK_DIR)/sources/freetype/include

#DEFINES= -DDEBUG=1 -D_7ZIP_PPMD_SUPPPORT

DEFINES = -DNDEBUG

LIBS = -liberty -lsupc++ -lgcc -lc.dll 

LIBPATH = -L$(LIB_DIR) -L/home/autobuild/tools/win32/mingw32/lib

LDFLAGS = -static -nostdlib --stack 0x10000 -Map kpm.map -T$(SDK_DIR)/sources/newlib/app.lds --image-base 0 --subsystem native

SOURCES =	http.asm			\
			kpm.c				\
			utils.c				\
			collection.cpp			\
			tinyxml/tinyxml.cpp		\
			tinyxml/tinystr.cpp		\
			tinyxml/tinyxmlparser.cpp	\
			tinyxml/tinyxmlerror.cpp	\
			7z/7z.c				\
			7z/7zFile.c			\
			7z/7zStream.c			\
			7z/7zCrc.c			\
			7z/7zCrcOpt.c			\
			7z/CpuArch.c			\
			7z/7zArcIn.c			\
			7z/7zBuf.c			\
			7z/7zDec.c			\
			7z/LzmaDec.c			\
			7z/Lzma2Dec.c			\
			7z/Bcj2.c			\
			7z/Delta.c			\
			7z/Bra.c			\
			7z/Bra86.c			\
			7z/BraIA64.c			\
			7z/7zAlloc.c			\
			$(NULL)
 
OBJECTS = $(patsubst %.asm, %.o, $(patsubst %.cpp, %.o, $(patsubst %.c, %.o, $(SOURCES))))

# targets  

all: $(NAME)

$(NAME): $(OBJECTS) Makefile
	$(LD) $(LDFLAGS) $(LIBPATH) -o $@ $(OBJECTS) $(LIBS)
	kos32-objcopy $@ -O binary

%.o : %.c Makefile
	$(CC) $(CFLAGS) $(DEFINES) $(INCLUDES) -o $@ $<

%.o : %.cpp Makefile
	$(CPP) $(CFLAGS) -fno-rtti -fno-exceptions $(DEFINES) $(INCLUDES) -o $@ $<

%.o : %.asm Makefile
	$(FASM) $< $@


clean: 
	-rm -f *.o */*.o




