#-- start of library_no_static ------

${CONSTITUENT}LIB :: $(${CONSTITUENT}shstamp)
	$(echo) "${CONSTITUENT} : library ok"

$(${CONSTITUENT}arc) :: ${OBJS}
	$(lib_echo) library
	$(lib_silent) $(ar) /out:$(bin)${CONSTITUENT}.arc @<<
${OBJS}
<<
	$(lib_silent) echo "" >$(${CONSTITUENT}stamp)

#$(${CONSTITUENT}shstamp) :: $(${CONSTITUENT}arc) requirements $(use_requirements) $(${CONSTITUENT}stamps)
$(${CONSTITUENT}shstamp) :: ${OBJS} $(use_requirements) $(${CONSTITUENT}stamps)
	$(lib_echo) dynamic library $(bin)${CONSTITUENT}.dll
#	$(lib_silent) $(make_shlib) $(tag) ${CONSTITUENT} $(cpplinkflags) $(${CONSTITUENT}_shlibflags)
!IF EXIST ("$(bin)${CONSTITUENT}\${CONSTITUENT}_dll.obj")
	$(lib_silent) link.exe /nologo /dll /out:$(bin)${CONSTITUENT}.dll $(bin)${CONSTITUENT}\${CONSTITUENT}_dll.obj @<< /machine:ix86 $(cpplinkflags) $(${CONSTITUENT}_shlibflags)
${OBJS}
<<
!ELSE IF EXIST ("$(bin)${CONSTITUENT}\${CONSTITUENT}_entries.obj")
	$(lib_silent) link.exe /nologo /dll /out:$(bin)${CONSTITUENT}.dll $(bin)${CONSTITUENT}\${CONSTITUENT}_load.obj @<< /machine:ix86 $(cpplinkflags) $(${CONSTITUENT}_shlibflags)
${OBJS}
<<
!ELSE
#	$(lib_silent) $(cmtexe) build windefs $(bin)${CONSTITUENT}.arc >$(bin)${CONSTITUENT}.def
	$(lib_silent) $(cmtexe) build windefs /name:${CONSTITUENT} @<<$(bin)${CONSTITUENT}.txt >$(bin)${CONSTITUENT}.def
${OBJS}
<<
	$(lib_silent) lib.exe /nologo /machine:ix86 /def:$(bin)${CONSTITUENT}.def /out:$(bin)${CONSTITUENT}.lib
	$(lib_silent) if exist $(bin)${CONSTITUENT}.dll del $(bin)${CONSTITUENT}.dll
	$(lib_silent) link.exe /nologo /dll /out:$(bin)${CONSTITUENT}.dll $(bin)${CONSTITUENT}.exp @$(bin)${CONSTITUENT}.txt $(cpplinkflags) $(${CONSTITUENT}_shlibflags)
!ENDIF
	$(lib_silent) if exist $(bin)${CONSTITUENT}.dll echo "" >$(${CONSTITUENT}stamp)
	$(lib_silent) if exist $(bin)${CONSTITUENT}.dll echo "" >$(${CONSTITUENT}shstamp)

${CONSTITUENT}clean ::
	$(cleanup_echo) #objects
	$(cleanup_silent) for %f in (${OBJS}) do $(cleanup_silent)if exist %f del %f
	$(cleanup_silent) if exist $(bin)${CONSTITUENT} rmdir /S /Q $(bin)${CONSTITUENT}
	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.arc del $(bin)${CONSTITUENT}.arc
	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.lib del $(bin)${CONSTITUENT}.lib
	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.def del $(bin)${CONSTITUENT}.def
	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.exp del $(bin)${CONSTITUENT}.exp
	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.dll del $(bin)${CONSTITUENT}.dll
	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.dll.manifest del $(bin)${CONSTITUENT}.dll.manifest
	$(cleanup_silent) if exist $(bin)${CONSTITUENT}.pdb del $(bin)${CONSTITUENT}.pdb


install_dir = $(CMTINSTALLAREA)\$(tag)\lib
${CONSTITUENT}installlibname = $(library_prefix)${CONSTITUENT}$(library_suffix).lib
${CONSTITUENT}installdllname = $(library_prefix)${CONSTITUENT}$(library_suffix).dll
${CONSTITUENT}installpdbname = $(library_prefix)${CONSTITUENT}$(library_suffix).pdb

${CONSTITUENT} :: ${CONSTITUENT}install ;

install :: ${CONSTITUENT}install ;

!IF "$(vsCONFIG)" == "Debug" 
${CONSTITUENT}install :: $(${CONSTITUENT}shstamp) $(install_dir)\$(${CONSTITUENT}installlibname) $(install_dir)\$(${CONSTITUENT}installdllname) $(install_dir)\$(${CONSTITUENT}installpdbname)
!if "$(CMTINSTALLAREA)" != ""
	$(echo) "installation done"
!endif

!ELSE

${CONSTITUENT}install :: $(${CONSTITUENT}shstamp) $(install_dir)\$(${CONSTITUENT}installlibname) $(install_dir)\$(${CONSTITUENT}installdllname)
!if "$(CMTINSTALLAREA)" != ""
	$(echo) "installation done"
!endif
!ENDIF

$(install_dir)\$(${CONSTITUENT}installlibname) :: $(bin)$(${CONSTITUENT}installlibname)
!if "$(CMTINSTALLAREA)" != ""
	$(install_echo) $(@F) into $(@D)
	$(install_silent) $(cmt_install_action) "$(BIN)" "$(${CONSTITUENT}installlibname)" "$(install_dir)"
!endif

$(install_dir)\$(${CONSTITUENT}installdllname) :: $(bin)$(${CONSTITUENT}installdllname)
!if "$(CMTINSTALLAREA)" != ""
	$(install_echo) $(@F) into $(@D)
	$(install_silent) $(cmt_install_action) "$(BIN)" "$(${CONSTITUENT}installdllname)" "$(install_dir)"
!endif

$(install_dir)\$(${CONSTITUENT}installpdbname) :: $(bin)$(${CONSTITUENT}installpdbname)
!if "$(CMTINSTALLAREA)" != ""
	$(install_echo) $(@F) into $(@D)
	$(install_silent) $(cmt_install_action) "$(BIN)" "$(${CONSTITUENT}installpdbname)" "$(install_dir)"
!endif

##${CONSTITUENT}clean :: ${CONSTITUENT}uninstall

uninstall :: ${CONSTITUENT}uninstall ;

${CONSTITUENT}uninstall ::
!if "$(CMTINSTALLAREA)" != ""
	$(cleanup_echo) "$(${CONSTITUENT}installlibname)" from "$(install_dir)"
	$(cleanup_silent) $(cmt_uninstall_action) "$(BIN)" "$(${CONSTITUENT}installlibname)" "$(install_dir)"
	$(cleanup_echo) "$(${CONSTITUENT}installdllname)" from "$(install_dir)"
	$(cleanup_silent) $(cmt_uninstall_action) "$(BIN)" "$(${CONSTITUENT}installdllname)" "$(install_dir)"
!endif

#-- end of library_no_static ------
