all: mkeyb.asm \
     keyb.exe
     


TCCLINK=$(TCC) -lm -O -Z -g1
TCCCOMP=$(TCC) -c  -O -Z -g1 -a-


#
# each language gets 2 binaries:
# the miniminimum 'mkeybXX.exe'
# and additional  'mkeybXXc.exe' with additional COMBI characters
#


depends=prf.obj
resdep = mKEYBA.obj mkeybrc.obj mkeybr.obj mkeybrf.obj
keydefs = \
        keydefBG.obj \
        keydefBP.obj \
        keydefB1.obj \
        keydefB2.obj \
        keydefB4.obj \
        keydefB5.obj \
        keydefB6.obj \
        keydefB7.obj \

#
# GERMAN
#
keyb.exe: mkeyb.obj  $(resdep) $(depends) $(keydefs)
	$(TCCLINK) mKEYB.obj $(resdep) $(depends) keydef.lib
	$(XAPACK) mkeyb.exe mkeyb.exe
# 	copy mkeyb.exe keyb.exe
#	del  mkeyb.exe

mkeyb.obj: mkeyb.c mkeyb.h
	$(TCCCOMP) mKEYB.c


keydefbg.obj: keydefbg.h  mkeyb.h
	$(TCCCOMP) keydefbg.h
	$(TLIB) keydef.lib -+ keydefbg.obj

keydefbp.obj: keydefbp.h  mkeyb.h
	$(TCCCOMP) keydefbp.h
	$(TLIB) keydef.lib -+ keydefbp.obj

keydefb1.obj: keydefb1.h  mkeyb.h
        $(TCCCOMP) keydefb1.h
        $(TLIB) keydef.lib -+ keydefb1.obj

keydefb2.obj: keydefb2.h  mkeyb.h
        $(TCCCOMP) keydefb2.h
        $(TLIB) keydef.lib -+ keydefb2.obj

keydefb4.obj: keydefb4.h  mkeyb.h
        $(TCCCOMP) keydefb4.h
        $(TLIB) keydef.lib -+ keydefb4.obj

keydefb5.obj: keydefb5.h  mkeyb.h
        $(TCCCOMP) keydefb5.h
        $(TLIB) keydef.lib -+ keydefb5.obj

keydefb6.obj: keydefb6.h  mkeyb.h
        $(TCCCOMP) keydefb6.h
        $(TLIB) keydef.lib -+ keydefb6.obj

keydefb7.obj: keydefb7.h  mkeyb.h
        $(TCCCOMP) keydefb7.h
        $(TLIB) keydef.lib -+ keydefb7.obj

keydefsl.obj: keydefsl.h  mkeyb.h
	$(TCCCOMP) keydefsl.h
	$(TLIB) keydef.lib -+ keydefsl.obj


#mkeybGRc.exe: mkeyb.c keydefGR.h $(combidepends)
#	$(TCCLINK) -emkeybGRc -DLANG_GR -DCOMBI mKEYB.c $(combidepends)
#	$(XUPX) mkeybGRc.exe




# ############## generic ##########################
#
# for all languages same:
#


#
#assembly stub
#
mkeybA.obj: mkeybA.ASM
	$(XNASM) mKEYBA.asm -fobj

#
# resident part
#

mkeybr.obj: mkeybr.c
	$(TCCCOMP) -mt    -zAINIT -zCI_TEXT -zDIB -zRID -zTID -zPI_GR -zBIB -zGI_GR -zSI_GR    mKEYBr.c
	$(TCCCOMP) -mt -S -zAINIT -zCI_TEXT -zDIB -zRID -zTID -zPI_GR -zBIB -zGI_GR -zSI_GR    mKEYBr.c

#
# resident part with combiES
#
mkeybrC.obj: mkeybr.c
	$(TCCCOMP) -mt    -zAINIT -zCI_TEXT -zDIB -zRID -zTID -zPI_GR -zBIB -zGI_GR -zSI_GR    -DCOMBI -omkeybrC mKEYBr.c
	$(TCCCOMP) -mt -S -zAINIT -zCI_TEXT -zDIB -zRID -zTID -zPI_GR -zBIB -zGI_GR -zSI_GR    -DCOMBI -omkeybrC mKEYBr.c

#
# FASTSWITCH resident part without ALTGREY, REPLACESCAN, DECIMALDINGSBUMS
# The right Ctrl toggles between native QWERTY and national keyboard
#
mkeybrf.obj: mkeybr.c
	$(TCCCOMP) -mt    -zAINIT -zCI_TEXT -zDIB -zRID -zTID -zPI_GR -zBIB -zGI_GR -zSI_GR    -DFASTSWITCH -omkeybrF mKEYBr.c
	$(TCCCOMP) -mt -S -zAINIT -zCI_TEXT -zDIB -zRID -zTID -zPI_GR -zBIB -zGI_GR -zSI_GR    -DFASTSWITCH -omkeybrF mKEYBr.c


prf.obj: prf.c
	$(TCCCOMP) -DFORSYS prf.c

sscani.obj: sscani.c
	$(TCCCOMP) sscani.c


#useful when debugging/analysing code
mkeyb.asm: mkeyb.c mkeyb.h
	$(TCCCOMP) -S mKEYB.c


# ############## end generic ##########################
