I'm not the language you're looking for! Isn't it annoying when you find a piece of code and you don't know what language it was written in? This challenge attempts to somewhat solve this.

Challenge

You will have to write a program that when run in two different languages, will output the string: 

This program wasn't written in &lt;language program compiled/interpreted in&gt;, it was built for &lt;other language the program can be run in&gt;!


In the output, language names should have official capitalization. eg: CJam, C++
Neither program should take any input from the user.
When run in both languages, output should be to stdout or equivalent.
There should be no output to stderr in either program.
You may use comments in either language.
Two different versions of the same language count as different languages.


If this is done, the program should output the major version number, and if running on two different minor versions, should report the minor version also.
You should not use prebuilt version functions (this includes variables that have already been evaluated at runtime).



Example output:

Perl and Ruby:


Perl: This program wasn't written in Perl, it was built for Ruby!
Ruby: This program wasn't written in Ruby, it was built for Perl!


Python and C:


Python: This program wasn't written in Python, it was built for C!
C: This program wasn't written in C, it was built for Python!


Python 2 and Python 3:


Python 2: This program wasn't written in Python 2, it was built for Python 3!
Python 3: This program wasn't written in Python 3, it was built for Python 2!


Python 2.4 and Python 2.7:


Python 2.4: This program wasn't written in Python 2.4, it was built for Python 2.7!
Python 2.7: This program wasn't written in Python 2.7, it was built for Python 2.4!


This is code golf so the shortest code in bytes wins.
C89/C99, 171 152 136 114 111 107 105 bytes

Thanks at @Hurkyls, @Qwertiys, @jimmy23013 and @MD XF for your hints.

golfed version:

c;main(){c=-4.5//**/
-4.5;printf("This program wasn't written in C%d, it was built for C%d!",90-c,98+c);}


ungolfed version:

c;

main()
{
    c = -4.5//**/
    -4.5;
    printf("This program wasn't written in C%d, it was built for C%d!",90-c,98+c);
}


Little description:

C versions previous C99 just had the multiline comment like this:

/*foo*/


with C99 the single line comment was introduced. like this:

//foo


so if you compile a line like this:

c =-4.5//**/
-4.5;


the for the c99 compiler compiling-related code would be:

c = -4.5 -4.5;


while the for a c89 compiler relevant code would be:

(as the first / isn't part of a comment and therfor treat as operator)

c = -4.5 / -4.5;