How should I cite a tool or a library in my article? When using an online library, tool, framework or something similar, what is the proper way to reference it in an article?

(I work in Computer Science). For example, I want to say that many popular implementations of the method presented in [article reference] use a slightly modified version of the main formula. I mention some examples for the implementation (e.g. OpenCV, VLFeat).

When thinking of a way to reference this, I have several dilemmas:


I could put a small explanation in a footnote or add it to the list of references
I could use the link to the main webpage or to an online manual
do I reference it at all?


This question about how to reference Python is somewhat similar. The difference is that the tools I want to reference are fairly well known in my community (unlike Python for biologists). 
In short, I am looking for a good way to acknowledge tools, frameworks or libraries not associated to any article in my writing.
A good citation has the following properties:


Gives credit where it is due for an (idea, tool, dataset, etc.) that is not your own.
Directs the reader of your paper where to look, if he/she wants to verify that your claims about the (idea, tool, dataset, etc.) are correct.


Any of the following can be used to cite a tool, as long as the above properties are satisfied:


If the authors of a tool explain how they would like it to be cited, follow those recommendations.
If there is a paper or tech report about the tool, cite that, because that is what the authors would probably want (if they didn't specify). 
If there is no paper or TR, cite the website of the tool. 


Of course, in most cases, you're not the first person to cite the tool - go search Google Scholar for the name of the tool, and find out how others cited it.