#
#	Layers makefile (generated from 12/26/90 template)
#

#	Remove '#' from next line for "silent" operation
#!CMDSWITCHES +s

#	Path to WGA Tools Project
W	= $(WGA)

#	Path to Layers Project Directory
L	= $(LAYERS)

#	Path to directory holding make stuff
M	= $W\makestuf
F	= $W\tools\efilter

#	Path to directory holding forms preprocessor
FPP	= $L\bin\formpp.exe

#	Path to Local project
Z	= $(BULLET)

#	Location of the Calendar Source Include directory
X	= $Z\inc

#	Location of the Laser Source Include directory
I	= $L\inc

#	Location of the Demilayr directory
D	= $L\src\demilayr

#	Path to dllcore directory
C	= $L\src\dllcore

#	Sibling-invariant name of this directory
H	= $Z\src\ab\exe

#	Temporary files
T1	= $(TMP)\caz1.tmp
T2	= $(TMP)\caz2.tmp
T3	= $(TMP)\caz3.tmp


#	Ensure version is defined
!IF "$(VERSION)" == ""
VERSION	= WINDOWS
!ENDIF

#	Ensure DLL is defined (default value 0)
!IF "$(DLL)" == ""
DLL	= 0
!ENDIF

!IF "$(LANG)" == ""
LANG	= USA
!ENDIF

goal: abapp.exe

#	Build string resource file from components supplied
#	by each subsystem

MYSTRINGS = $Z\src\lang\non\strings\_abapp.s

strings: setdefs
	set LANG=$(LANG)
	set VERSION=$(VERSION)
	set MYSTRINGS=$(MYSTRINGS)
	nmake -e -f $Z\src\lang\$(LANG)\strings\makefile -nologo strings.obj
#strings:
#	set VERSION=$(VERSION)
#	nmake -f ..\..\strings\makefile -nologo abapp

#	List of all subsystem "external" files, which list all
#	the .OBJ files the subsystem uses.

ALLEXT=  abapp.ext 


#	Get list of OBJ files used in abapp

abapp.ext: version.txt $Z\src\ab\exe\makefile
	echo +++++++++ 
	echo OBTAINING .OBJ LIST FROM abapp
		nmake -e -f $Z\src\ab\exe\makefile -nologo objs.ext
		fixwhite -l < objs.ext > $@
		del objs.ext


#	Build list of all .OBJ files used in included subsystems.

allobjs.txt: $(ALLEXT)
	echo +++++++++
	echo BUILDING ALLOBJS.TXT
	-del $(T1)
	sed -n -f $M\allobj.sed $** >> $(T1)
	sed -e "s/\.obj//" $(T1) > $@
	del $(T1)



#	Produces a file named 'version.txt' as a side effect.

setdefs:
	set VERSION=$(VERSION)
	echo MAKING $(VERSION) VERSION
	chkvrs $(VERSION) version.txt makefile


MYFORMS	=  $Z\src\ab\exe\myforms.map $I\myforms.map
forms.map: $(MYFORMS) $(FPP)
	echo +++++++++
!IF "$(VERSION)" == "WINDOWS"
	echo BUILDING DEBUG FORMS.MAP
	formpp -d DEBUG -d MINTEST -merge $(MYFORMS)
!ENDIF
!IF "$(VERSION)" == "WINDOWS_SHIP"
	echo BUILDING SHIP FORMS.MAP
	formpp -merge $(MYFORMS)
!ENDIF
!IF "$(VERSION)" == "WINDOWS_TEST"
	echo BUILDING TEST FORMS.MAP
	formpp -d MINTEST -merge $(MYFORMS)
!ENDIF


subclass.cxx: forms.map $(FPP)
	echo +++++++++
	echo BUILDING subclass.cxx
	formpp -class



#	Build abapp subsystem in this directory

abapp.sub: setdefs
	echo +++++++++
	echo BUILDING abapp
	nmake -e -f $Z\src\ab\exe\makefile -nologo external


#	Build the Windows resource file

abapp.res: $Z\src\ab\exe\abapp.rc
	echo +++++++++
!IF "$(VERSION)" == "WINDOWS"
	echo BUILDING DEBUG $@
	rc -dDEBUG -dMINTEST -fo temp.res -r $**
  cvtres -i386 -o $@ temp.res
  del temp.res
!ENDIF
!IF "$(VERSION)" == "WINDOWS_SHIP"
	echo BUILDING SHIP $@
	rc -fo temp.res -r $**
  cvtres -i386 -o $@ temp.res
  del temp.res
!ENDIF
!IF "$(VERSION)" == "WINDOWS_TEST"
	echo BUILDING TEST $@
	rc -dMINTEST -fo temp.res -r $**
  cvtres -i386 -o $@ temp.res
  del temp.res
!ENDIF

OBJS	= exe.obj verinit.obj version.obj strings.obj


##### Executable #####

TARGET	= abapp

!IF "$(VERSION)" == "WINDOWS"
OTHERLIBS	= $L\..\lib\dab.lib $L\..\lib\dmailmgr.lib
!ENDIF
!IF "$(VERSION)" == "WINDOWS_SHIP"
OTHERLIBS	= $L\..\lib\ab.lib $L\..\lib\mailmgr.lib
!ENDIF
!IF "$(VERSION)" == "WINDOWS_TEST"
OTHERLIBS	= $L\..\lib\tab.lib $L\..\lib\tmailmgr.lib
!ENDIF

abapp.exe: setdefs strings forms.map \
	$(ALLEXT:.ext=.sub) allobjs.txt \
	$Z\src\ab\exe\abapp.def abapp.res
		echo +++++++++
		echo LINKING $@
		set APPNAME=$(TARGET)
		set TARGET=$(TARGET)
    set OBJECTS=$(OBJ)
		set OTHERLIBS=$(OTHERLIBS)
		set DEFDIR=$Z\src\ab\exe
		nmake -e -f $M\winlink -nologo $@
!IF "$(VERSION)" == "WINDOWS"
		mv abapp.exe dabapp.exe
		cp dabapp.exe dabapp2.exe
!ENDIF
!IF "$(VERSION)" == "WINDOWS_TEST"
		mv abapp.exe tabapp.exe
		cp tabapp.exe tabapp2.exe
!ENDIF
!IF "$(VERSION)" == "WINDOWS_SHIP"
		cp abapp.exe abapp2.exe
!ENDIF
		bell 50 700 600 500 400


#	Remove all generated files in this directory.  Add to this list
#	if any other generated file types (like *.RES) or generated files
#	exist.

clean:
	echo +++++++++
	echo MAKING CLEAN
		-del *.obj
		-del *.ext
		-del *.lst
		-del *.cod
		-del *.exe
		-del *.lnk
		-del *.ilk
		-del *.res
		-del *.sym
		-del abapp.map
		-del *.frm
		-del forms.map
		-del forms.ndx
		-del subclass.cxx
		-del allobjs.txt
		-del strings.*
		-del *.ir
		-del version.txt

#
#	Layers subsystem makefile (generated from 12/26/90 template)
#


#	Files on which every file of a given type depends.
#	Add others as appropriate, for instance, add $I\framewrk.hxx
#	if the Framework is used.
NSINCLS = $X\ab.h
INCLS	= $I\slingsho.h $I\demilayr.h $H\_verneed.h
AINCLS	= $I\slingsho.inc $I\debug.inc
INCLSXX	= $I\slingsho.h $I\demilayr.h $I\framewrk.hxx $I\forms.hxx $H\exe.hxx \
	$H\verinit.hxx
INCLSDES= forms.map $(FPP)


#	Ensure DLLXDEFS is not defined if not a DLL
!IF "$(DLL)" == "0"
!IF	"$(DLLXDEFS)" != ""
DLLXDEFS=
!ENDIF
!ENDIF

#	Compiler and assembler flags

!IF "$(VERSION)" == "WINDOWS"
DEFS	= -DDEBUG -DMINTEST -DWINDOWS $(DLLXDEFS) -Di386 -DWIN32
CFLAGS	= -c -Od -Zip -DCC -W3 -J -I. -nologo
AFLAGS	= -Mx -Z -Zi -L -t
!ENDIF
!IF "$(VERSION)" == "WINDOWS_SHIP"
DEFS	= -DWINDOWS $(DLLXDEFS) -Di386 -DWIN32
CFLAGS	= -c -Od -Zp -DCC -W3 -J -I. -nologo
AFLAGS	= -Mx -t
!ENDIF
!IF "$(VERSION)" == "WINDOWS_TEST"
DEFS	= -DMINTEST -DWINDOWS $(DLLXDEFS) -Di386 -DWIN32
CFLAGS	= -c -Od -Zip -DCC -W3 -J -I. -nologo
AFLAGS	= -Mx -Zi -t
!ENDIF


OBJS0	= exe.obj verinit.obj version.obj

OBJSEXE	= strings.obj 

#####

.SUFFIXES: .h .c .asm .obj .exe .cxx .res .rc .bas .des

{$H}.c.obj:
	echo +++++++++
	echo COMPILING $*.c
		cl $(CFLAGS) $(DEFS) $H\$*.c


{$H}.asm.obj:
   echo +++++++++
   echo ASSEMBLING $*.asm
		masm $(AFLAGS) $(DEFS) $H\$*.asm;


{$H}.cxx.obj:
	echo +++++++++
	echo COMPILING $*.c
		cl $(CFLAGS) $(DEFS) $H\$*.cxx

#	note: .frm and .hxx generated together; only one rule is/need be called
{$H}.des.frm:
	echo +++++++++
	echo PROCESSING $*.des
		formpp -dialog $H\$*

{$H}.des.hxx:
	echo +++++++++
	echo PROCESSING $*.des
		formpp -dialog $H\$*


##### Put subsystem-specific make rules here #####

strings.obj: $D\strings.c strings.h strings.sr $(INCLS)
	echo +++++++++
	echo COMPILING $*.c
		cl $(CFLAGS) $(DEFS) $D\$*.c | efilter

always:
	echo +++++++++
	echo ALWAYS REBUILD VERSION INFORMATION



##### EXTERNAL #####

objs.ext: $H\makefile
	echo ++++++++++
	echo BUILDING $@
		-del objs.ext
		echo $(OBJS0)					>> objs.ext
		echo $(OBJSEXE)					>> objs.ext


external: \
		$(OBJS0) \
		$(OBJSEXE) \

			echo +++ MADE EXTERNAL $(VERSION) exe



##### Dependencies #####

#	WARNING!!! These dependencies are obviously not complete.  
#	They need to filled in by the developer.

exe.obj:  subclass.cxx $H\exe.cxx $(NSINCLS) $(INCLSXX)
verinit.obj: $H\verinit.cxx $(INCLSXX)
version.obj: $H\version.c $(INCLS) always

abexe.frm abexe.hxx: $H\abexe.des $(INCLSDES)
