#
# Makefile for OSLib for UNIX.
#

include GNUmakefile.settings

#------------------------------------------------------------------------
#tools
CP		= cp -p
RM		= rm -fr

#------------------------------------------------------------------------
#macros

ALL		= Tools Source OSLibSupport

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

.PHONY: 	${ALL} tools oslib support cstrong clean distclean install release
.PHONY:		release/wide release/deep release/unix release/help
.PHONY:		release/OSLibSupport release/unix/OSLibSupport
.PHONY:		dist/wide dist/deep dist/unix dist/help dist/OSLibSupport dist/examples
.PHONY:		zips/wide zips/deep zips/unix zips/help zips/OSLibSupport zips/examples

all:		${ALL} release

tools:		Tools
Tools:		;${MAKE} -C $@

oslib:		Source
Source:		Tools
		${MAKE} -C $@

support:	OSLibSupport
OSLibSupport:	Source
		${MAKE} -C $@

cstrong:	;${MAKE} -C Source cstrong

clean:		;$(foreach TARGET, ${ALL}, ${MAKE} -C ${TARGET} clean; )

distclean:	clean
		${RM} release Bin zips dist

install:	release/unix
		cd release/unix/OSLib; ${GCCSDK_INSTALL_ENV}/ro-install OSLib32.o ${GCCSDK_INSTALL_ENV}/lib/libOSLib32.o
		cd release/unix/OSLib; ${GCCSDK_INSTALL_ENV}/ro-install -d oslib ${GCCSDK_INSTALL_ENV}/include

release:	release_wide \
		release_deep \
		release_unix \
		release_help \
		release_support \
		release_unix_support \
		release_examples

release_wide	: release/wide
release/wide:	oslib
		${MAKE} -C Source/Computer/oslib release_wide RELEASEDIR=${CURDIR}/$@
		${MAKE} -C Source/Core/oslib release_wide RELEASEDIR=${CURDIR}/$@
		${MAKE} -C Source/Toolbox/oslib release_wide RELEASEDIR=${CURDIR}/$@
		${MAKE} -C Source/User/oslib release_wide RELEASEDIR=${CURDIR}/$@
		${MAKE} -C Source/Types/oslib release_wide RELEASEDIR=${CURDIR}/$@
		${MAKE} -C Source/Macros/oslib release_wide RELEASEDIR=${CURDIR}/$@
		@if [ ! -d $@/OSLib/o ]; then mkdir -p $@/OSLib/o; fi
		@${CP}	docs/ChangeLog		$@/
		@${CP}	docs/Copying		$@/
		@${CP}	docs/OSLib_API		$@/
		@${CP}	docs/OSLib_readme	$@/
		@${CP}	docs/WideFuncts		$@/
		@${CP}	docs/Unix_Build		$@/
		@${CP}	Source/SetVarsRO4,feb	$@/OSLib/SetVars,feb
		@${CP}	Source/OSLib.o		$@/OSLib/o/OSLib,ffd
		@${CP}	Source/OSLib32.o	$@/OSLib/o/OSLib32,ffd

release_deep	: release/deep
release/deep:	oslib
		${MAKE} -C Source/Computer/oslib release_deep RELEASEDIR=${CURDIR}/$@
		${MAKE} -C Source/Core/oslib release_deep RELEASEDIR=${CURDIR}/$@
		${MAKE} -C Source/Toolbox/oslib release_deep RELEASEDIR=${CURDIR}/$@
		${MAKE} -C Source/User/oslib release_deep RELEASEDIR=${CURDIR}/$@
		${MAKE} -C Source/Types/oslib release_deep RELEASEDIR=${CURDIR}/$@
		${MAKE} -C Source/Macros/oslib release_deep RELEASEDIR=${CURDIR}/$@
		@if [ ! -d $@/OSLib/o ]; then mkdir -p $@/OSLib/o; fi
		@${CP}	docs/ChangeLog		$@/
		@${CP}	docs/Copying		$@/
		@${CP}	docs/OSLib_API		$@/
		@${CP}	docs/OSLib_readme	$@/
		@${CP}	docs/WideFuncts		$@/
		@${CP}	docs/Unix_Build		$@/
		@${CP}	Source/SetVars,feb	$@/OSLib/SetVars,feb
		@${CP}	Source/OSLib.o		$@/OSLib/o/OSLib,ffd
		@${CP}	Source/OSLib32.o	$@/OSLib/o/OSLib32,ffd

release_unix	: release/unix
release/unix:	oslib
		${MAKE} -C Source/Computer/oslib release_unix RELEASEDIR=${CURDIR}/$@
		${MAKE} -C Source/Core/oslib release_unix RELEASEDIR=${CURDIR}/$@
		${MAKE} -C Source/Toolbox/oslib release_unix RELEASEDIR=${CURDIR}/$@
		${MAKE} -C Source/User/oslib release_unix RELEASEDIR=${CURDIR}/$@
		${MAKE} -C Source/Types/oslib release_unix RELEASEDIR=${CURDIR}/$@
		${MAKE} -C Source/Macros/oslib release_unix RELEASEDIR=${CURDIR}/$@
		@if [ ! -d $@/OSLib ]; then mkdir -p $@/OSLib; fi
		@${CP}	docs/ChangeLog		$@/
		@${CP}	docs/Copying		$@/
		@${CP}	docs/OSLib_API		$@/
		@${CP}	docs/OSLib_readme	$@/
		@${CP}	docs/WideFuncts		$@/
		@${CP}	docs/Unix_Build		$@/
		@${CP}	Source/SetVarsRO4,feb	$@/OSLib/SetVars,feb
		@${CP}	Source/OSLib.o		$@/OSLib/OSLib.o
		@${CP}	Source/OSLib32.o	$@/OSLib/OSLib32.o

release_unix_support: release/unix/OSLibSupport
release/unix/OSLibSupport: support
		${MAKE} -C OSLibSupport release_unix RELEASEDIR=${CURDIR}/$@

release_help:	release/help
release/help:	cstrong
		@if [ ! -d $@ ]; then mkdir -p $@; fi
		@${CP}	Source/OSLib,3d6	$@/

release_support:	release/OSLibSupport
release/OSLibSupport:	;${MAKE} -C OSLibSupport release RELEASEDIR=${CURDIR}/$@

release_examples:	release/examples
release/examples:	;@if [ ! -d $@ ]; then mkdir -p $@; fi
			@${CP}	examples/*.c		$@/
			@${CP}	examples/!*		$@/
			@${CP}	examples/*makefile*	$@/

dist:		dist_wide dist_deep dist_unix dist_help dist_support dist_examples

dist_wide:	zips/wide
zips/wide:	release/wide
		@if [ ! -d $@ ]; then mkdir -p $@; fi
		${RM} $@/OSLib_wide.zip
		cd release/wide; ${GCCSDK_INSTALL_CROSSBIN}/zip -, -9r ${CURDIR}/$@/OSLib_wide *

dist_deep:	zips/deep
zips/deep:	release/deep
		@if [ ! -d $@ ]; then mkdir -p $@; fi
		${RM} $@/OSLib_deep.zip
		cd release/deep; ${GCCSDK_INSTALL_CROSSBIN}/zip -, -9r ${CURDIR}/$@/OSLib_deep *

dist_unix:	zips/unix
zips/unix:	release/unix release_unix_support
		@if [ ! -d $@ ]; then mkdir -p $@; fi
		${RM} $@/OSLib_unix.zip
		cd release/unix; ${GCCSDK_INSTALL_CROSSBIN}/zip -, -9r ${CURDIR}/$@/OSLib_unix *

dist_support:		zips/OSLibSupport
zips/OSLibSupport:	release/OSLibSupport
		@if [ ! -d $@ ]; then mkdir -p $@; fi
		${RM} $@/OSLib_support.zip
		cd release/OSLibSupport; ${GCCSDK_INSTALL_CROSSBIN}/zip -, -9r ${CURDIR}/$@/OSLib_support *

dist_help:	zips/help
zips/help:	release/help
		@if [ ! -d $@ ]; then mkdir -p $@; fi
		${RM} $@/OSLib_help.zip
		cd release/help; ${GCCSDK_INSTALL_CROSSBIN}/zip -, -9r ${CURDIR}/$@/OSLib_help *

dist_examples:	zips/examples
zips/examples:	release/examples
		@if [ ! -d $@ ]; then mkdir -p $@; fi
		${RM} $@/OSLib_examples.zip
		cd release/examples; ${GCCSDK_INSTALL_CROSSBIN}/zip -, -9r ${CURDIR}/$@/OSLib_examples *

#------------------------------------------------------------------------
