#endif\r
 \r
        /* Preprocessor Checks and Defines: */\r
-               #if (F_CPU == 8000000)\r
+               #if !defined(F_CLOCK)\r
+                       #error F_CLOCK is not defined. You must device F_CLOCK to the frequency of the unprescaled input clock in your project makefile.\r
+                       #define F_CLOCK 0\r
+               #endif\r
+       \r
+               #if (F_CLOCK == 8000000)\r
                        #if (defined(__AVR_AT90USB82__) || defined(__AVR_AT90USB162__))\r
                                #define USB_PLL_PSC                0\r
                        #elif (defined(__AVR_AT90USB646__)  || defined(__AVR_AT90USB647__)  || \\r
                        #elif (defined(__AVR_ATmega16U4__) || defined(__AVR_ATmega32U4__))\r
                                #define USB_PLL_PSC                0\r
                        #endif\r
-               #elif (F_CPU == 16000000)\r
+               #elif (F_CLOCK == 16000000)\r
                        #if (defined(__AVR_AT90USB646__) || defined(__AVR_AT90USB647__) || defined(__AVR_ATmega32U6__))\r
                                #define USB_PLL_PSC                ((1 << PLLP2) | (1 << PLLP1))\r
                        #elif (defined(__AVR_AT90USB1286__) || defined(__AVR_AT90USB1287__))\r