#
# Makefile for SOURCES under GNU
#
 
#------------------------------------------------------------------------
include ../GNUmakefile.settings
SOURCEDIR	= ${CURDIR}
include GNUmakefile.settings

#------------------------------------------------------------------------
# paths & directories

#------------------------------------------------------------------------
# tools
LIBFILE		= ${GCCSDK_INSTALL_CROSSBIN}/libfile
INDEXHELP	= ${BINDIR}/IndexHelp
BINDHELP	= ${BINDIR}/BindHelp
RM		= rm -f
RD		= rm -fr

#------------------------------------------------------------------------
# target-specific macros

SOURCES = Computer Core Toolbox User

OSLIB	= OSLib.o
OSLIB32	= OSLib32.o
CSTRONG	= OSLib,3d6
LIST	= OSLib.list
LIST32	= OSLib32.list

#------------------------------------------------------------------------
# targets

.PHONY:	all cstrong Computer Core Toolbox User Test oslib libs clean

all:		oslib Test cstrong

cstrong:	${CSTRONG}

computer:	Computer
Computer:	;${MAKE} -C $@/oslib all

core:		Core
Core:		;${MAKE} -C $@/oslib all

toolbox:	Toolbox
Toolbox:	;${MAKE} -C $@/oslib all

user:		User
User:		;${MAKE} -C $@/oslib all

test:		Test
Test:		;${MAKE} -C $@ all

oslib:
	${MAKE} -C Computer/oslib oslib
	${MAKE} -C Core/oslib oslib
	${MAKE} -C Toolbox/oslib oslib
	${MAKE} -C User/oslib oslib
	${MAKE} list
	${MAKE} list32

hdrs:
	${MAKE} -C Computer/oslib hdrs
	${MAKE} -C Core/oslib hdrs
	${MAKE} -C Toolbox/oslib hdrs
	${MAKE} -C User/oslib hdrs

list:		${LIST}
${LIST}:	${OSLIB}
		${LIBFILE} -s ${OSLIB} > ${LIST}

list32:		${LIST32}
${LIST32}:	${OSLIB32}
		${LIBFILE} -s ${OSLIB} > ${LIST32}

libs:
	${MAKE} -C Computer/oslib libs
	${MAKE} -C Core/oslib libs
	${MAKE} -C Toolbox/oslib libs
	${MAKE} -C User/oslib libs

${CSTRONG}:
	${MAKE} -C Computer/oslib cstrong
	${MAKE} -C Core/oslib cstrong
	${MAKE} -C Toolbox/oslib cstrong
	${MAKE} -C User/oslib cstrong
	${INDEXHELP} HelpData/action_	-p Action
	${INDEXHELP} HelpData/class_	-p Class
	${INDEXHELP} HelpData/error_	-p Error
	${INDEXHELP} HelpData/message_	-p Message
	${INDEXHELP} HelpData/service_	-p Service
	${BINDHELP}  HelpData $@

clean:	;$(foreach dir, ${SOURCES}, ${MAKE} -C ${dir}/oslib clean; )
	${MAKE} -C Test clean
	-${RM} OSLib.o OSLib32.o ${LIST} ${LIST32} ${CSTRONG}
	-${RD} HelpData

cleanhelp:
	${MAKE} -C Computer/oslib cleanhelp
	${MAKE} -C Core/oslib cleanhelp
	${MAKE} -C Toolbox/oslib cleanhelp
	${MAKE} -C User/oslib cleanhelp
	${RD} HelpData/*
	${RM} ${CSTRONG}
