# Mf-a6nt
# Copyright 1984-2017 Cisco Systems, Inc.
# 
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
# 
# http://www.apache.org/licenses/LICENSE-2.0
# 
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

m = a6nt
Cpu = X86_64

clib=
o = obj
mdobj=windows.$o
mdsrc=a6nt-jump.asm windows.c Makefile.$m cs.ico scheme.rc make.bat
mdclean=vs.bat make.bat scheme.res ../bin/$m/*.exp mtscheme.exe* mdscheme.exe*
cross=f

include Mf-base

export MSYS_NO_PATHCONV=1
export MSYS2_ARG_CONV_EXCL=*

${Scheme}${cross:f=}: make.bat
	cmd.exe /c make.bat
	cp ../bin/$m/scheme.exe ../bin/$m/petite.exe
	cp ../bin/$m/scheme.pdb ../bin/$m/petite.pdb

make.bat: vs.bat
	echo '@echo off' > $@
	echo 'set MAKEFLAGS=' >> $@
	echo 'vs.bat amd64 && nmake /f Makefile.$m /nologo %*' >> $@
	chmod +x $@

# -------------------------------------------------------
# For cross-compilation, triggered by setting cross=t o=o

C = ${CC} ${CPPFLAGS} -O2 ${CFLAGS}

${Scheme}${cross:t=}: ${Main} ${Kernel} ${KernelLinkDeps}
	$C -o ${Scheme} ${Main} ${Kernel} ${mdclib} ${KernelLinkLibs} ${LDFLAGS} -lshell32 -luser32 -lole32 -lrpcrt4 -luuid

.c.$o:
	$C -c -D${Cpu} -I${Include} ${zlibInc} ${LZ4Inc} $*.c

${KernelLib}: ${kernelobj}
	${AR} ${ARFLAGS} ${KernelLib} ${kernelobj}

${KernelO}: ${kernelobj} ${zlibDep} ${LZ4Dep}
	${LD} -r -X -o ${KernelO} ${kernelobj} ${zlibLib} ${LZ4Lib}

../zlib/configure.log:
	echo "all:" >> ../zlib/Makefile
	echo '	$$(MAKE) -f win32/Makefile.gcc CC="$(CC)" CFLAGS="$(CFLAGS)" AR="$(AR)" RANLIB="$(RANLIB)" RC="$(WINDRES)"' >> ../zlib/Makefile
	touch ../zlib/configure.log

../lz4/lib/liblz4.a: ${LZ4Sources}
	(cd ../lz4/lib; CC="$(CC)" CFLAGS="$(CFLAGS)" AR="$(AR)" RANLIB="$(RANLIB)" ${MAKE} liblz4.a)