# WOW32 makefile
#
# Copyright (c) 1991, Microsoft Corporation
#
# History:
#   26-Jan-1991 Jeff Parsons (jeffpar)
#   Created.
#

!IFDEF NTMAKEENV

# DO NOT EDIT THIS FILE!!!  Edit .\sources. if you want to add a new source
# file to this component.  This file merely indirects to the real make file
# that is shared by all the components of NT OS/2
#
!INCLUDE $(NTMAKEENV)\makefile.def

!ELSE

.SUFFIXES:
.SUFFIXES: .c	.asm .h   .inc .obj .lst .sys .exe .com .map .sym .def .lib


!ifdef INCLUDE
WBIN	=
INCS	= -I. -I..\inc -I..\x86
!else
WBIN	= ..\win30bin\\
INCS	= -I. -I..\inc -I..\x86 -I..\win30inc -I$(BASEDIR)\private\tools\inc
!endif

AOBJ	= -Ml -t -DDEBUG $(INCS)

CS16	= -AS -Gsw -Os -W2 -Zp -DWIN_16 -DSIM_32 -DDEBUG $(INCS)
CS16L	= $(CS16) -B1 c1l.exe -B2 c2l.exe -B3 c3l.exe

CS32INC = -I. -I..\inc -I$(BASEDIR)\public\sdk\inc -I$(BASEDIR)\public\sdk\inc\crt
CS32FLG = -Di386=1 -DCONDITION_HANDLING=1 -DDEVL=1 -DNT_UP=1 -DNT_INST=0 -DDBG=1
CS32	= -G3sd -AS -H31 -Ot -W2 -Zdel -DWIN_32 -DSIM_32 -DDEBUG $(CS32FLG) $(CS32INC)

CW16	= -AM -G2csw -Oaegltwz -W2 -Zip -DWIN_16 -DX86 $(INCS)
CW16L	= $(CW16) -B1 c1l.exe -B2 c2l.exe -B3 c3l.exe

CU16	= -AM -G2csw -Oaegltwz -W2 -Zip -DWIN_16 -DX86 -DDEBUG $(INCS)
CU16L	= $(CU16) -B1 c1l.exe -B2 c2l.exe -B3 c3l.exe

CW17	= -AM -G2cs -Oaegltwz -W2 -Zip -ND WOW32_DATA -DWIN_16 -DX86 $(INCS)
CW17L	= $(CW17) -B1 c1l.exe -B2 c2l.exe -B3 c3l.exe

CU17	= -AM -G2cs -Oaegltwz -W2 -Zip -ND WOW32_DATA -DWIN_16 -DX86 -DDEBUG $(INCS)
CU17L	= $(CU17) -B1 c1l.exe -B2 c2l.exe -B3 c3l.exe

CW32INC = -I. -I..\inc -I..\x86 -I\nt\public\sdk\inc -I\nt\public\sdk\inc\crt
CW32FLG = -Di386=1 -DCONDITION_HANDLING=1 -DDEVL=1 -DNT_UP=1 -DNT_INST=0 -DDBG=1

CW32	= -G3sd -AS -H31 -Ot -W2 -Zdel -DWIN_32 -DX86 $(CW32FLG) $(CW32INC)
CU32	= -G3sd -AS -H31 -Ot -W2 -Zdel -DWIN_32 -DX86 -DDEBUG $(CW32FLG) $(CW32INC)

LINK	= /map /stack:8192

!ifdef LIB
W16LIBS = slibcew libw
!else
W16LIBS = ..\win30lib\slibcew.lib ..\win30lib\libw.lib
!endif

W32LIBS = \nt\public\sdk\lib\i386\user.lib \
	  \nt\public\sdk\lib\i386\userrtl.lib \
	  \nt\public\sdk\lib\i386\base.lib \
	  \nt\public\sdk\lib\i386\gre.lib \
	  \nt\public\sdk\lib\i386\ntdll.lib \
	  \nt\public\sdk\lib\i386\winspool.lib \
	  \nt\public\sdk\lib\i386\wincrt.lib

OBJDOS1 = wow32.o16 wktbl.o16 wkman.o16 wkernel.o16 wkglobal.o16 wklocal.o16
OBJDOS2 = wutbl.o16 wuman.o16 wuansi.o16 wuclass.o16 wuclip.o16
OBJDOS3 = wucomm.o16 wudlg.o16 wumenu.o16 wuser.o16 wutext.o16 wuwind.o16
OBJDOS4 = wgtbl.o16 wgman.o16 wgdi.o16 wgfont.o16 wgmeta.o16 wgtext.o16
OBJDOS5 = wkbtbl.o16 wkbman.o16 wstbl.o16 wsman.o16 wowmsg.o16 wowres.o16
OBJDOS	= $(OBJDOS1) $(OBJDOS2) $(OBJDOS3) $(OBJDOS4) $(OBJDOS5)

OBJNT1	= wow32.s32 wktbl.s32 wkman.s32 wkernel.s32 wkglobal.s32 wklocal.s32
OBJNT2	= wutbl.s32 wuman.s32 wuansi.s32 wuclass.s32 wuclip.s32
OBJNT3	= wucomm.s32 wudlg.s32 wumenu.s32 wuser.s32 wutext.s32 wuwind.s32
OBJNT4  = wgtbl.s32 wgman.s32 wgdi.s32 wgfont.s32 wgmeta.s32 wgtext.s32
OBJNT5	= wkbtbl.s32 wkbman.s32 wstbl.s32 wsman.s32 wowmsg.s32 wowres.s32
OBJNT	= $(OBJNT1) $(OBJNT2) $(OBJNT3) $(OBJNT4) $(OBJNT5)

OBJW161 = wow32.u16 wktbl.u17 wkman.u16 wkernel.u16 wkglobal.u16 wklocal.u16
OBJW162 = wutbl.u17 wuman.u16 wuansi.u16 wuclass.u16 wuclip.u16
OBJW163 = wucomm.u16 wudlg.u16 wumenu.u16 wuser.u16 wutext.u16 wuwind.u16
OBJW164 = wgtbl.u17 wgman.u16 wgdi.u16 wgfont.u16 wgmeta.u16 wgtext.u16
OBJW165 = wkbtbl.u17 wkbman.u16 wstbl.u17 wsman.u16 wowmsg.u16 wowres.u16
OBJW16	= $(OBJW161) $(OBJW162) $(OBJW163) $(OBJW164) $(OBJW165)

OBJU161 = wow32.u16 wktbl.u17 wkman.u16 wkernel.u16 wkglobal.u16 wklocal.u16
OBJU162 = wutbl.u17 wuman.u16 wuansi.u16 wuclass.u16 wuclip.u16
OBJU163 = wucomm.u16 wudlg.u16 wumenu.u16 wuser.u16 wutext.u16 wuwind.u16
OBJU164 = wgtbl.u17 wgman.u16 wgdi.u16 wgfont.u16 wgmeta.u16 wgtext.u16
OBJU165 = wkbtbl.u17 wkbman.u16 wstbl.u17 wsman.u16 wowmsg.u16 wowres.u16
OBJU16	= $(OBJU161) $(OBJU162) $(OBJU163) $(OBJU164) $(OBJU165)

OBJW321 = wow32.u32 wktbl.u32 wkman.u32 wkernel.u32 wkglobal.u32 wklocal.u32
OBJW322 = wutbl.u32 wuman.u32 wuansi.u32 wuclass.u32 wuclip.u32
OBJW323 = wucomm.u32 wudlg.u32 wumenu.u32 wuser.u32 wutext.u32 wuwind.u32
OBJW324 = wgtbl.u32 wgman.u32 wgdi.u32 wgfont.u32 wgmeta.u32 wgtext.u32
OBJW325 = wkbtbl.u32 wkbman.u32 wstbl.u32 wsman.u32 wowmsg.u32 wowres.u32
OBJW32	= $(OBJW321) $(OBJW322) $(OBJW323) $(OBJW324) $(OBJW325)

OBJU321 = wow32.u32 wktbl.u32 wkman.u32 wkernel.u32 wkglobal.u32 wklocal.u32
OBJU322 = wutbl.u32 wuman.u32 wuansi.u32 wuclass.u32 wuclip.u32
OBJU323 = wucomm.u32 wudlg.u32 wumenu.u32 wuser.u32 wutext.u32 wuwind.u32
OBJU324 = wgtbl.u32 wgman.u32 wgdi.u32 wgfont.u32 wgmeta.u32 wgtext.u32
OBJU325 = wkbtbl.u32 wkbman.u32 wstbl.u32 wsman.u32 wowmsg.u32 wowres.u32
OBJU32	= $(OBJU321) $(OBJU322) $(OBJU323) $(OBJU324) $(OBJU325)


.h.inc:
    h2inc -t $*.h -o $*.inc


.asm.obj:
    masm $(AOBJ) $*;

.asm.lst:
    masm $(AOBJ) -l $*,nul,$*.lst;


.c.o16:
    cl -c -nologo $(CS16) $*.c

.c.l16:
    cl -c -nologo $(CS16) -Fonul -Fc$*.l16 $*.c

.c.s32:
    cl386 -c -nologo $(CS32) -Fo$*.s32 $*.c
    cvtomf $*.s32

.c.l32:
    cl386 -c -nologo $(CS32) -Fonul -Fc$*.l32 $*.c

.c.w16:
    cl -c -nologo $(CW16) -Fo$@ $*.c

.c.u16:
    cl -c -nologo $(CU16) -Fo$@ $*.c

.c.u17:
    cl -c -nologo $(CU17) -Fo$@ $*.c

.c.v16:
    cl -c -nologo $(CU16) -Fonul -Fc$@ $*.c

.c.w32:
    cl386 -c -nologo $(CW32) -Fo$@ $*.c
    cvtomf $*.w32

.c.u32:
    cl386 -c -nologo $(CU32) -Fo$@ $*.c
    cvtomf $*.u32

.c.v32:
    cl386 -c -nologo $(CU32) -Fonul -Fc$@ $*.c


.def.lib:
    implib $*.lib $*.def

.map.sym:
    $(WBIN)mapsym $*


default:
    cd ..\x86
    $(MAKE) -c ntwin
    cd ..\wow32

all: wow32nt.exe

clean:
    if exist *.lrf del *.lrf
    if exist *.def del *.def
    if exist *.obj del *.obj
    if exist *.s32 del *.s32
    if exist *.w16 del *.w16
    if exist *.u16 del *.u16
    if exist *.w17 del *.w17
    if exist *.u17 del *.u17
    if exist *.w32 del *.w32
    if exist *.u32 del *.u32
   -if exist *.exe del *.exe
    if exist *.map del *.map
    if exist *.sym del *.sym
    if exist *.lib del *.lib


wow32dos.lrf: makefile
    echo $(OBJDOS1)+>wow32dos.lrf
    echo $(OBJDOS2)+>>wow32dos.lrf
    echo $(OBJDOS3)+>>wow32dos.lrf
    echo $(OBJDOS4)+>>wow32dos.lrf
    echo $(OBJDOS5)>>wow32dos.lrf
    echo wow32dos $(LINK)>>wow32dos.lrf
    echo wow32dos>>wow32dos.lrf
    echo /nod:slibce $(W16LIBS) ..\sim16\sim16>>wow32dos.lrf
    echo wow32dos;>>wow32dos.lrf

wow32dos.def: makefile
    echo name wow32dos>wow32dos.def
    echo exetype windows>>wow32dos.def
    echo stub 'winstub.exe'>>wow32dos.def
    echo code preload moveable discardable>>wow32dos.def
    echo data preload moveable multiple>>wow32dos.def
    echo heapsize 4096>>wow32dos.def
    echo exports WOW32WndProc>>wow32dos.def
    echo exports WOW32About>>wow32dos.def
    echo exports WOW32DialogFunc>>wow32dos.def
    echo exports WOW32TimerFunc>>wow32dos.def

wow32dos.exe: $(OBJDOS) ..\sim16\sim16.lib wow32dos.lrf wow32dos.def
    link @wow32dos.lrf;
    rc wow32dos.exe


wow32nt.lrf: makefile
    echo -machine:i386>wow32nt.lrf
    echo -base:@\NT\PUBLIC\SDK\LIB\coffbase.txt,usermode>>wow32nt.lrf
    echo -subsystem:windows>>wow32nt.lrf
    echo -entry:BaseProcessStartup>>wow32nt.lrf
    echo.>>wow32nt.lrf
    echo $(OBJNT) ..\sim32\obj\i386\sim32.obj>>wow32nt.lrf
    echo $(W32LIBS)>>wow32nt.lrf

wow32nt.exe: $(OBJNT) ..\sim32\obj\i386\sim32.obj wow32nt.lrf
    coff -link -out:wow32nt.exe @wow32nt.lrf


x86w16.lrf: makefile
    echo x86w16>x86w16.lrf
    echo y>>x86w16.lrf
    echo $(OBJW161)^&>>x86w16.lrf
    echo $(OBJW162)^&>>x86w16.lrf
    echo $(OBJW163)^&>>x86w16.lrf
    echo $(OBJW164)^&>>x86w16.lrf
    echo $(OBJW165);>>x86w16.lrf

x86w16.lib: $(OBJW16) x86w16.lrf
    if exist x86w16.lib del x86w16.lib
    lib /nologo @x86w16.lrf


x86u16.lrf: makefile
    echo x86u16>x86u16.lrf
    echo y>>x86u16.lrf
    echo $(OBJU161)^&>>x86u16.lrf
    echo $(OBJU162)^&>>x86u16.lrf
    echo $(OBJU163)^&>>x86u16.lrf
    echo $(OBJU164)^&>>x86u16.lrf
    echo $(OBJU165);>>x86u16.lrf

x86u16.lib: $(OBJW16) x86u16.lrf
    if exist x86u16.lib del x86u16.lib
    lib /nologo @x86u16.lrf


x86w32.lrf: makefile
    echo $(OBJW32)>x86w32.lrf

x86w32.lib: $(OBJW32) x86w32.lrf
    coff -lib -out:x86w32.lib @x86w32.lrf


x86u32.lrf: makefile
    echo $(OBJU32)>x86u32.lrf

x86u32.lib: $(OBJU32) x86u32.lrf
    coff -lib -out:x86u32.lib @x86u32.lrf

!ENDIF
