SubDir FT2_TOP tests ;

test_programs = gview ;

SubDirHdrs [ FT2_SubDir .. .. nirvana include ] ;

NV_TOP = [ FT2_SubDir .. .. .. nirvana ] ;

NIRVANA_LINKLIBS = $(NV_TOP)\\objs\\nirvana$(SUFLIB) ;

{
  local t ;
  
  for t in $(test_programs)
  {
    Main  $(t) : $(t).c ;
    
    LinkLibraries $(t) : $(FT2_LIB) ;
    
    if $(TOOLSET) = MINGW
    {
      LINKKLIBS on $(t)$(SUFEXE) = "-luser32 -lgdi32" ;
    }
    else
    {
      LINKLIBS on $(t)$(SUFEXE) = user32.lib gdi32.lib ;
    }
    
    NEEDLIBS on $(t)$(SUFEXE) += $(NIRVANA_LINKLIBS) ;
  }
}
