# $(WIN32) can be either WIN32 or WIN16
WIN32=WIN16
#WIN32=WIN32

!IF "$(WIN32)"=="WIN32"
CPU=i386

OS=NT
ENV=WIN32

!include <ntwin32.mak>

!ELSE

cc      = cl
cflags  = -c -I. -Gsw -AS
cvars   =
LFLAGS  = /map/nod/noe /al:16

!IFDEF DEBUG
cflags  =$(cflags) -Gs -Zi
cvars   = -DDEBUG
LFLAGS  =$(LFLAGS) /co
!ENDIF

!ENDIF


!IF "$(WIN32)"=="WIN32"
goal: vlist32.dll vlist32.lib listt32.exe
!ELSE
goal: vlist.dll vlist.lib listtest.exe
!ENDIF

#
# list test
#
listtest.obj: listtest.c listtest.h
   $(cc) $(cflags) $(cvars) $(cdebug) listtest.c

# Update the resource if necessary
listtest.res : listtest.rc
!IF "$(WIN32)"=="WIN32"
    rc -r -fo listtest.res $(cvars) listtest.rc
!IFDEF CPUTYPE
    cvtres -$(CPU) listtest.res -o listtest.rbj
!ENDIF
!ELSE
    rc -r listtest.rc listtest.res
!ENDIF


listt32.exe : listtest.res listtest.obj listtest.def vlist32.lib
    $(cvtobj) $(cvtdebug) listtest.obj
    $(link) $(linkdebug) $(guiflags) listtest.obj $(guilibs) vlist32.lib VERSION.LIB listtest.rbj -out:listtest.exe

listtest.exe : listtest.res listtest.obj listtest.def vlist.lib
   link $(LFLAGS) listtest,listtest,listtest,libw slibcew vlist,listtest.def
   rc $(DFLAGS) listtest.res
   mapsym listtest.map


#
#  VLIST
#
# Update the resource if necessary
vlistt.res : vlist.rc
!IF "$(WIN32)"=="WIN32"
    rc -r -fo vlist.res $(cvars) vlist.rc
!IFDEF CPUTYPE
    cvtres -$(CPU) vlist.res -o vlist.rbj
!ENDIF
!ELSE
    rc -r vlist.rc vlist.res
!ENDIF

vlist.obj: vlist.c vlistint.h
   $(cc) $(cflags) $(cvars) $(cdebug) $*.c

vlscroll.obj: vlscroll.c vlistint.h
   $(cc) $(cflags) $(cvars) $(cdebug) $*.c

vlrare.obj: vlrare.c vlistint.h
   $(cc) $(cflags) $(cvars) $(cdebug) $*.c

vlsetcur.obj: vlsetcur.c vlistint.h
   $(cc) $(cflags) $(cvars) $(cdebug) $*.c

dllstuff.obj: dllstuff.c vlistint.h
   $(cc) $(cflags) $(cvars) $(cdebug) $*.c

!IF "$(WIN32)"=="WIN16"
dlgvlist.obj: dlgvlist.c dlgvlist.h
   $(cc) $(cflags) $(cvars) $(cdebug) $*.c
!ENDIF

draw3d.obj:   draw3d.c draw3d.h
   $(cc) $(cflags) $(cvars) $(cdebug) $*.c

# Update the dynamic link library
!IF "$(WIN32)"=="WIN32"
vlist32.dll: vlist.obj vlist.def vlist.res dllstuff.obj vlscroll.obj vlrare.obj \
           vlsetcur.obj draw3d.obj
	$(link) $(linkdebug)            \
	-dll                            \
	-entry:DllEntryPoint$(DLLENTRY) \
        -out:vlist32.dll                 \
        vlist.obj vlrare.obj vlscroll.obj vlsetcur.obj dllstuff.obj draw3d.obj $(guilibsdll)
!ELSE
vlist.dll: vlist.obj vlist.def vlist.res dllstuff.obj vlscroll.obj vlrare.obj \
           vlsetcur.obj dlgvlist.obj draw3d.obj
    link /NOE /NOD /CO vlist vlrare vlscroll vlsetcur dllstuff dlgvlist draw3d libentry, vlist.dll,,libw sdllcew, vlist.def
    rc vlist.res vlist.dll
!ENDIF

# Update the import library
!IF "$(WIN32)"=="WIN32"
vlist32.lib: vlist32.dll
	lib32 -machine:$(CPU) \
        -def:vlist32.def     \
        -out:vlist32.lib vlist.obj dllstuff.obj vlscroll.obj vlrare.obj vlsetcur.obj draw3d.obj
!ELSE
    implib vlist.lib vlist.def
!ENDIF


# next to godliness
clean:
        -del *.dll
        -del *.obj
        -del *.res
        -del listtest.exe
        -del *.map
        -del *.sym
