name = CLOCKPOD	# AvP[V

UseDebug = 0	# 1 Ȃ debug w
!ifndef UseBCC
UseBCC = 1	# 1 Ȃ BCC32 , 0 Ȃ CL
!endif
UseTASM = 1	# 1 Ȃ TASMgp
UseIlink = 0	# 1 Ȃ ilink32(BCC 5.5ȍ~) gp
!ifndef ARM
ARM = 0		# 1 Ȃ Arm/Arm64(UNICODE)
!endif
!ifndef VCTOOLKIT
VCTOOLKIT = 0	# VC TOOL KIT gȂLɁAVS2008Ȃ疳
!endif
#=======================================
!ifndef UseUnicode
UseUnicode = 0	# 1 Ȃ UNICODE 
!else
  UnicodeCopt	= -DUNICODE
!endif

!ifndef X64
X64 = 0		# 1 Ȃ x64(UNICODE)
!if $(UseUnicode)
TAIL	=
!else
TAIL	=
!endif
!else
X64 = 1
UseBCC	= 0
UseTASM = 0
UseUnicode	= 1
UnicodeCopt	= -DUNICODE
TAIL	=64
!endif

!if $(ARM)
UseBCC	= 0
UseTASM = 0
UseUnicode	= 1
UnicodeCopt	= -DUNICODE
TAIL	= $(TAIL)A
!endif
#=============================================================== Borland pݒ
!if $(UseBCC)
.autodepend
!if $(UseDebug)
  DebugCopt	= -R -v -vG -DDEBUG	# ǉ C RpCIvV
  DebugLopt	= -v
  DebugLib	= CG32.LIB		# ǉCu
!endif
#-------------------------------------- RpCʎw
cc	= @BCC32 -ps -4 -c -C -d -H -Hc -w -O -O1 -RT- -x- -DWINVER=0x400 $(bc56opt) $(DebugCopt) $(UnicodeCopt)
#-------------------------------------- Jʎw
!if $(UseIlink)
 bc56opt = -Oc -q -a4
 linkopt = @ilink32 -c -m -P -V4.0 -Gn -q $(DebugLopt)
!else
 linkopt = @tlink32 -c -m -P -V4.0 $(DebugLopt)
!endif
  C0CON	= C0X32
  C0GUI	= C0W32
!if $(UseTASM)
  C0DLL	= TINYC0D
  C0DOBJ= TINYC0D.OBJ
!else
  C0DLL	= C0D32X
!endif
#-------------------------------------- J(GUI)
linkexe	= $(linkopt) -Tpe -aa
#-------------------------------------- J(CONSOLE)
linkcon	= $(linkopt) -Tpe -ap
#-------------------------------------- J(DLL)
linkdll	= $(linkopt) -Tpd -aa

#-------------------------------------- C|[g
implib  = @implib
#-------------------------------------- \[XRpC
rc	= @Brc32 -r
#-------------------------------------- Öق̎w
.C.OBJ:
  $(cc) -o$@ $<

.CPP.OBJ:
  $(cc) -o$@ $<

.RC.RES:
  $(rc) -fo$@ $<

!if $(UseTASM)
.ASM.OBJ:
  @tasm32 /mx /w2 $&
!endif
#============================================================= Microsoft pݒ
!else
#EXTLIB	= nvapi.lib
EXTLIB	= oleacc.lib Ole32.Lib oleaut32.lib

!if $(UseDebug)
Copt	= /Od /Zi /GS #/analyze
DebugLopt	= /DEBUG /PDB:$(name)$(spi).pdb
!else # UseDebug
!ifdef RELEASE
Copt	= /Gz /O2 /Os /Oy /DRELEASE
!else # RELEASE
Copt	= /Gz /O2 /Os /Oy
!endif # RELEASE
!endif # UseDebug

!if $(X64)
!if $(VCTOOLKIT)
LIB64	= bufferoverflowu.lib
!endif

!if !$(ARM) # x64
LINK64	= /MACHINE:AMD64 /LARGEADDRESSAWARE
RCOPT	= /d_WIN64
!else # ARM64
LINK64	= /MACHINE:ARM64 /LARGEADDRESSAWARE
Copt	= /O2 /Os /Oy /DRELEASE
X64Copt	= /wd4244 /wd4267
RCOPT	= /d_WIN64 /d_ARM64_ /d_M_ARM64
!endif # ARM64
!else # !$(X64), x86, ARM32
!if $(ARM) # ARM32
LINK64	= /MACHINE:ARM /LARGEADDRESSAWARE
RCOPT	= /d_M_ARM
!endif # ARM32
!endif
#-------------------------------------- RpC
cc	= @"cl" /GF /nologo /c /DWINVER=0x400 $(Copt) $(UnicodeCopt) $(X64Copt) /W3 /wd4068 /wd4996
# 4068:s #pragma	4996:Â֐gp	/Wp64:64bitڐA`FbN

#-------------------------------------- Jʎw
linkopt = @"link" /NOLOGO /INCREMENTAL:NO /MAP /OPT:REF /OPT:ICF /NXCOMPAT /DYNAMICBASE $(DebugLopt) $(LINK64)
linkout = /OUT:
C0DLL	= Kernel32.Lib AdvAPI32.Lib Ole32.Lib Imm32.Lib Gdi32.Lib WSOCK32.LIB\
	  Shell32.Lib User32.Lib comctl32.lib Comdlg32.lib winmm.lib $(LIB64)
C0GUI	= $(C0DLL)
C0CON	= $(C0DLL)
#-------------------------------------- J(GUI)
linkexe	= $(linkopt) /SUBSYSTEM:WINDOWS
#-------------------------------------- J(CONSOLE)
linkcon	= $(linkopt) /SUBSYSTEM:CONSOLE
#-------------------------------------- J(DLL)
linkdll	= $(linkopt) /DLL
#-------------------------------------- \[XRpC
rc	= @%COMSPEC% /C RC /dSDKRC $(RCOPT) $(UnicodeCopt)

#-------------------------------------- Öق̎w
.C.OBJ:
  $(cc) /Fo$@ $<

.CPP.OBJ:
  $(cc) /Fo$@ $<

.RC.RES:
  $(rc) $<
!endif

#------------------------------------------------------------------------------
allFiles:	CODE$(TAIL).OBJ $(name)$(TAIL).DLL $(name)$(TAIL).EXE PODSEND$(TAIL).EXE SYSLOGD$(TAIL).EXE HWINFS$(TAIL).EXE
#-------------------------------------- ǉ OBJ files
objects	=	$(name).OBJ	CLK_MAIN.OBJ	CLK_TIME.OBJ	CLK_SUB.OBJ\
		CLK_INFO.OBJ	CHRTYPE.OBJ	CLK_GVAR.OBJ	CLK_AC.OBJ\
		CLK_MSG.OBJ	CLK_MAIL.OBJ	THEAP.OBJ	CLK_MENU.OBJ\
		CLK_CUST.OBJ	CFG.OBJ		MD5.OBJ		CLK_DLG.OBJ\
		CALC.OBJ	FALTDLG.OBJ	CLK_ACC.OBJ	INTHL.OBJ

#------------------------------------------------------ coděn؊p
CODE$(TAIL).OBJ:
  -@del *.obj 2> nul
  -@del *.res 2> nul
  -@if exist %CSM% del %CSM%\*.CSM
  @copy nul CODE$(TAIL).OBJ > nul

#------------------------------------------------------------------------------
$(name)$(TAIL).EXE:	$(objects)	$(name).RES	$(name)$(TAIL).DLL
#  -@WINCLOSE $(name)
  $(linkexe) @&&|
	$(C0GUI) $(objects) $(name)$(TAIL).lib $(EXTLIB)
	$(linkout)$.
!if $(UseBCC)
	$*
	$(DebugLib) NOEH32 IMPORT32 CW32

!endif
	$(name).RES
|

CLK_MENU.OBJ:	CLK_MENU.C	CLK_MSTR.C
CLOCKPOD.OBJ:	CLOCKPOD.C	CLK_MSTR.C
#---------------------------------------------------------------------
$(name)$(TAIL).DLL:	CLK_DLL.OBJ	CLK_DLL.RES	$(C0DOBJ)
#  -@WINCLOSE $(name)
  $(linkdll) @&&|
	$(C0DLL) CLK_DLL
	$(linkout)$.
!if $(UseBCC)
	$&
	$(DebugLib) NOEH32 IMPORT32 CW32

!endif
	CLK_DLL.RES
|
!if $(UseBCC)
  $(implib) $& $.
!endif
  copy $(name)$(TAIL).map $(name)$(TAIL)dll.map

#------------------------------------------------------------------------------
PODSEND$(TAIL).EXE:	PODSEND.OBJ	PODSEND.RES
  $(linkexe) @&&|
	$(C0GUI) PODSEND
	$(linkout)$.
!if $(UseBCC)
	$*
	$(DebugLib) NOEH32 import32 cw32

!endif
	PODSEND.RES
|
#------------------------------------------------------------------------------
SYSLOGD$(TAIL).EXE:	SYSLOGD.OBJ	SYSLOGD.RES	TCFG.OBJ	TTHEAP.OBJ
  $(linkexe) @&&|
	$(C0GUI) SYSLOGD TTHEAP TCFG
	$(linkout)$.
!if $(UseBCC)
	$*
	$(DebugLib) NOEH32 import32 cw32

!endif
	SYSLOGD.RES
|
#------------------------------------------------------------------------------
HWINFS$(TAIL).EXE:	HWINFS.OBJ	SERVICE.OBJ	TSECU.OBJ
!if $(UseBCC)
  $(linkcon) $(C0CON) SERVICE HWINFS TSECU,$<,$*,NOEH32 IMPORT32 CW32,,
!else
  $(linkcon) $(C0CON) SERVICE HWINFS TSECU $(linkout)$.
!endif
