From d4880a9e603d6d19e06b442816e4c0fdc6f3fc06 Mon Sep 17 00:00:00 2001
From: galexander1 <gitgreg@galexander.org>
Date: Thu, 15 Jan 2015 18:52:10 -0500
Subject: [PATCH] Revert "Move Sd library out into library"

---
 .travis.yml                                   |  3 --
 .../Arduino_1.0.x/libraries/SdFat/SdFat.h     |  5 --
 Marlin/Marlin.pde                             |  5 --
 .../libraries/SdFat => Marlin}/Sd2Card.cpp    |  5 +-
 .../libraries/SdFat => Marlin}/Sd2Card.h      |  6 +++
 .../libraries/SdFat => Marlin}/Sd2PinMap.h    |  6 +++
 .../libraries/SdFat => Marlin}/SdBaseFile.cpp | 49 +++++++++----------
 .../libraries/SdFat => Marlin}/SdBaseFile.h   | 19 ++++---
 .../libraries/SdFat => Marlin}/SdFatConfig.h  |  6 +++
 .../libraries/SdFat => Marlin}/SdFatStructs.h |  6 +++
 .../libraries/SdFat => Marlin}/SdFatUtil.cpp  | 22 ++++-----
 .../libraries/SdFat => Marlin}/SdFatUtil.h    | 21 ++++++--
 .../libraries/SdFat => Marlin}/SdFile.cpp     |  6 +++
 .../libraries/SdFat => Marlin}/SdFile.h       |  6 +++
 .../libraries/SdFat => Marlin}/SdInfo.h       |  5 ++
 .../libraries/SdFat => Marlin}/SdVolume.cpp   |  5 +-
 .../libraries/SdFat => Marlin}/SdVolume.h     |  3 ++
 Marlin/temperature.cpp                        |  5 +-
 18 files changed, 116 insertions(+), 67 deletions(-)
 delete mode 100644 ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFat.h
 rename {ArduinoAddons/Arduino_1.0.x/libraries/SdFat => Marlin}/Sd2Card.cpp (96%)
 rename {ArduinoAddons/Arduino_1.0.x/libraries/SdFat => Marlin}/Sd2Card.h (96%)
 rename {ArduinoAddons/Arduino_1.0.x/libraries/SdFat => Marlin}/Sd2PinMap.h (96%)
 rename {ArduinoAddons/Arduino_1.0.x/libraries/SdFat => Marlin}/SdBaseFile.cpp (98%)
 rename {ArduinoAddons/Arduino_1.0.x/libraries/SdFat => Marlin}/SdBaseFile.h (98%)
 rename {ArduinoAddons/Arduino_1.0.x/libraries/SdFat => Marlin}/SdFatConfig.h (98%)
 rename {ArduinoAddons/Arduino_1.0.x/libraries/SdFat => Marlin}/SdFatStructs.h (99%)
 rename {ArduinoAddons/Arduino_1.0.x/libraries/SdFat => Marlin}/SdFatUtil.cpp (86%)
 rename {ArduinoAddons/Arduino_1.0.x/libraries/SdFat => Marlin}/SdFatUtil.h (67%)
 rename {ArduinoAddons/Arduino_1.0.x/libraries/SdFat => Marlin}/SdFile.cpp (95%)
 rename {ArduinoAddons/Arduino_1.0.x/libraries/SdFat => Marlin}/SdFile.h (96%)
 rename {ArduinoAddons/Arduino_1.0.x/libraries/SdFat => Marlin}/SdInfo.h (96%)
 rename {ArduinoAddons/Arduino_1.0.x/libraries/SdFat => Marlin}/SdVolume.cpp (96%)
 rename {ArduinoAddons/Arduino_1.0.x/libraries/SdFat => Marlin}/SdVolume.h (99%)

diff --git a/.travis.yml b/.travis.yml
index 14532987aeb..8a378c7871a 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -26,9 +26,6 @@ before_script:
   - cd $TRAVIS_BUILD_DIR
   # ino needs files in src directory
   - ln -s Marlin src
-  - mkdir lib
-  - ln -s ../ArduinoAddons/Arduino_1.0.x/libraries/SdFat lib/SdFat
-  - ls -la lib/SdFat
   # remove Marlin.pde as it confuses ino after it finds Marlin.ino
   - rm Marlin/Marlin.pde
 script:
diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFat.h b/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFat.h
deleted file mode 100644
index 77c1d0d5e0a..00000000000
--- a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFat.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#ifndef AT90USB
-#define  HardwareSerial_h // trick to disable the standard HWserial
-#endif
-
-#include <Arduino.h>
diff --git a/Marlin/Marlin.pde b/Marlin/Marlin.pde
index f65681f5950..79c934bf0f7 100644
--- a/Marlin/Marlin.pde
+++ b/Marlin/Marlin.pde
@@ -54,8 +54,3 @@
 #if defined(DIGIPOT_I2C)
   #include <Wire.h>
 #endif
-
-#if defined(HEATER_0_USES_MAX6675) || defined(SDSUPPORT)
-#include <Sd2Card.h>
-#endif
-
diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/Sd2Card.cpp b/Marlin/Sd2Card.cpp
similarity index 96%
rename from ArduinoAddons/Arduino_1.0.x/libraries/SdFat/Sd2Card.cpp
rename to Marlin/Sd2Card.cpp
index 55bc5870a98..69ae777358f 100644
--- a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/Sd2Card.cpp
+++ b/Marlin/Sd2Card.cpp
@@ -17,8 +17,9 @@
  * along with the Arduino Sd2Card Library.  If not, see
  * <http://www.gnu.org/licenses/>.
  */
-#include "SdFat.h"
+#include "Marlin.h"
 
+#ifdef SDSUPPORT
 #include "Sd2Card.h"
 //------------------------------------------------------------------------------
 #ifndef SOFTWARE_SPI
@@ -718,3 +719,5 @@ bool Sd2Card::writeStop() {
   chipSelectHigh();
   return false;
 }
+
+#endif
diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/Sd2Card.h b/Marlin/Sd2Card.h
similarity index 96%
rename from ArduinoAddons/Arduino_1.0.x/libraries/SdFat/Sd2Card.h
rename to Marlin/Sd2Card.h
index 06dfa1c67de..d6b302bfed4 100644
--- a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/Sd2Card.h
+++ b/Marlin/Sd2Card.h
@@ -18,6 +18,9 @@
  * <http://www.gnu.org/licenses/>.
  */
 
+#include "Marlin.h"
+#ifdef SDSUPPORT
+
 #ifndef Sd2Card_h
 #define Sd2Card_h
 /**
@@ -235,3 +238,6 @@ class Sd2Card {
   bool writeData(uint8_t token, const uint8_t* src);
 };
 #endif  // Sd2Card_h
+
+
+#endif
\ No newline at end of file
diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/Sd2PinMap.h b/Marlin/Sd2PinMap.h
similarity index 96%
rename from ArduinoAddons/Arduino_1.0.x/libraries/SdFat/Sd2PinMap.h
rename to Marlin/Sd2PinMap.h
index 77e4e5c5249..93ab943cef5 100644
--- a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/Sd2PinMap.h
+++ b/Marlin/Sd2PinMap.h
@@ -18,6 +18,9 @@
  * <http://www.gnu.org/licenses/>.
  */
 // Warning this file was generated by a program.
+#include "Marlin.h"
+#ifdef SDSUPPORT
+
 #ifndef Sd2PinMap_h
 #define Sd2PinMap_h
 #include <avr/io.h>
@@ -360,3 +363,6 @@ static inline __attribute__((always_inline))
   }
 }
 #endif  // Sd2PinMap_h
+
+
+#endif
\ No newline at end of file
diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdBaseFile.cpp b/Marlin/SdBaseFile.cpp
similarity index 98%
rename from ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdBaseFile.cpp
rename to Marlin/SdBaseFile.cpp
index 1a12af5c892..dbcf77fbdc0 100644
--- a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdBaseFile.cpp
+++ b/Marlin/SdBaseFile.cpp
@@ -17,8 +17,9 @@
  * along with the Arduino SdFat Library.  If not, see
  * <http://www.gnu.org/licenses/>.
  */
-#include "SdFat.h"
-#include <Print.h>
+
+#include "Marlin.h"
+#ifdef SDSUPPORT
 
 #include "SdBaseFile.h"
 //------------------------------------------------------------------------------
@@ -314,14 +315,14 @@ void SdBaseFile::getpos(fpos_t* pos) {
  * \param[in] indent Amount of space before file name. Used for recursive
  * list to indicate subdirectory level.
  */
-void SdBaseFile::ls(Print *p, uint8_t flags, uint8_t indent) {
+void SdBaseFile::ls(uint8_t flags, uint8_t indent) {
   rewind();
   int8_t status;
-  while ((status = lsPrintNext( p, flags, indent))) {
+  while ((status = lsPrintNext( flags, indent))) {
     if (status > 1 && (flags & LS_R)) {
       uint16_t index = curPosition()/32 - 1;
       SdBaseFile s;
-      if (s.open(this, index, O_READ)) s.ls( p, flags, indent + 2);
+      if (s.open(this, index, O_READ)) s.ls( flags, indent + 2);
       seekSet(32 * (index + 1));
     }
   }
@@ -329,8 +330,7 @@ void SdBaseFile::ls(Print *p, uint8_t flags, uint8_t indent) {
 //------------------------------------------------------------------------------
 // saves 32 bytes on stack for ls recursion
 // return 0 - EOF, 1 - normal file, or 2 - directory
-int8_t SdBaseFile::lsPrintNext( Print *p, uint8_t flags, uint8_t indent) {
-	Print &MYSERIAL = *p;
+int8_t SdBaseFile::lsPrintNext( uint8_t flags, uint8_t indent) {
   dir_t dir;
   uint8_t w = 0;
 
@@ -365,9 +365,9 @@ int8_t SdBaseFile::lsPrintNext( Print *p, uint8_t flags, uint8_t indent) {
   // print modify date/time if requested
   if (flags & LS_DATE) {
     MYSERIAL.write(' ');
-    printFatDate( p, dir.lastWriteDate);
+    printFatDate( dir.lastWriteDate);
     MYSERIAL.write(' ');
-    printFatTime( p, dir.lastWriteTime);
+    printFatTime( dir.lastWriteTime);
   }
   // print size if requested
   if (!DIR_IS_SUBDIR(&dir) && (flags & LS_SIZE)) {
@@ -939,8 +939,8 @@ int SdBaseFile::peek() {
  * \param[in] width Blank fill name if length is less than \a width.
  * \param[in] printSlash Print '/' after directory names if true.
  */
-void SdBaseFile::printDirName(Print *p, const dir_t& dir, uint8_t width, bool printSlash) {
-		Print &MYSERIAL = *p;
+void SdBaseFile::printDirName(const dir_t& dir,
+  uint8_t width, bool printSlash) {
   uint8_t w = 0;
   for (uint8_t i = 0; i < 11; i++) {
     if (dir.name[i] == ' ')continue;
@@ -962,8 +962,7 @@ void SdBaseFile::printDirName(Print *p, const dir_t& dir, uint8_t width, bool pr
 }
 //------------------------------------------------------------------------------
 // print uint8_t with width 2
-static void print2u( Print *p, uint8_t v) {
-	Print &MYSERIAL = *p;
+static void print2u( uint8_t v) {
   if (v < 10) MYSERIAL.write('0');
   MYSERIAL.print(v, DEC);
 }
@@ -983,14 +982,12 @@ static void print2u( Print *p, uint8_t v) {
  * \param[in] pr Print stream for output.
  * \param[in] fatDate The date field from a directory entry.
  */
-void SdBaseFile::printFatDate(Print *p, uint16_t fatDate) {
-	Print &MYSERIAL = *p;
-
+void SdBaseFile::printFatDate(uint16_t fatDate) {
   MYSERIAL.print(FAT_YEAR(fatDate));
   MYSERIAL.write('-');
-  print2u( p, FAT_MONTH(fatDate));
+  print2u( FAT_MONTH(fatDate));
   MYSERIAL.write('-');
-  print2u( p, FAT_DAY(fatDate));
+  print2u( FAT_DAY(fatDate));
 }
 
 //------------------------------------------------------------------------------
@@ -1001,14 +998,12 @@ void SdBaseFile::printFatDate(Print *p, uint16_t fatDate) {
  * \param[in] pr Print stream for output.
  * \param[in] fatTime The time field from a directory entry.
  */
-void SdBaseFile::printFatTime( Print *p, uint16_t fatTime) {
-	Print &MYSERIAL = *p;
-
-  print2u( p, FAT_HOUR(fatTime));
+void SdBaseFile::printFatTime( uint16_t fatTime) {
+  print2u( FAT_HOUR(fatTime));
   MYSERIAL.write(':');
-  print2u( p, FAT_MINUTE(fatTime));
+  print2u( FAT_MINUTE(fatTime));
   MYSERIAL.write(':');
-  print2u( p, FAT_SECOND(fatTime));
+  print2u( FAT_SECOND(fatTime));
 }
 //------------------------------------------------------------------------------
 /** Print a file's name to Serial
@@ -1016,8 +1011,7 @@ void SdBaseFile::printFatTime( Print *p, uint16_t fatTime) {
  * \return The value one, true, is returned for success and
  * the value zero, false, is returned for failure.
  */
-bool SdBaseFile::printName(Print *p) {
-	Print &MYSERIAL = *p;
+bool SdBaseFile::printName() {
   char name[13];
   if (!getFilename(name)) return false;
   MYSERIAL.print(name);
@@ -1826,3 +1820,6 @@ int16_t SdBaseFile::write(const void* buf, uint16_t nbyte) {
 #if ALLOW_DEPRECATED_FUNCTIONS && !defined(DOXYGEN)
 void (*SdBaseFile::oldDateTime_)(uint16_t& date, uint16_t& time) = 0;  // NOLINT
 #endif  // ALLOW_DEPRECATED_FUNCTIONS
+
+
+#endif
diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdBaseFile.h b/Marlin/SdBaseFile.h
similarity index 98%
rename from ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdBaseFile.h
rename to Marlin/SdBaseFile.h
index 9df19c4759b..dea299a6465 100644
--- a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdBaseFile.h
+++ b/Marlin/SdBaseFile.h
@@ -17,12 +17,16 @@
  * along with the Arduino SdFat Library.  If not, see
  * <http://www.gnu.org/licenses/>.
  */
+#include "Marlin.h"
+#ifdef SDSUPPORT
+
 #ifndef SdBaseFile_h
 #define SdBaseFile_h
 /**
  * \file
  * \brief SdBaseFile class
  */
+#include "Marlin.h"
 #include "SdFatConfig.h"
 #include "SdVolume.h"
 //------------------------------------------------------------------------------
@@ -170,8 +174,6 @@ static inline uint8_t FAT_SECOND(uint16_t fatTime) {
 uint16_t const FAT_DEFAULT_DATE = ((2000 - 1980) << 9) | (1 << 5) | 1;
 /** Default time for file timestamp is 1 am */
 uint16_t const FAT_DEFAULT_TIME = (1 << 11);
-
-class Print;
 //------------------------------------------------------------------------------
 /**
  * \class SdBaseFile
@@ -264,7 +266,7 @@ class SdBaseFile {
   bool isRoot() const {
     return type_ == FAT_FILE_TYPE_ROOT_FIXED || type_ == FAT_FILE_TYPE_ROOT32;
   }
-  void ls( Print *p, uint8_t flags = 0, uint8_t indent = 0);
+  void ls( uint8_t flags = 0, uint8_t indent = 0);
   bool mkdir(SdBaseFile* dir, const char* path, bool pFlag = true);
   // alias for backward compactability
   bool makeDir(SdBaseFile* dir, const char* path) {
@@ -276,9 +278,9 @@ class SdBaseFile {
   bool openNext(SdBaseFile* dirFile, uint8_t oflag);
   bool openRoot(SdVolume* vol);
   int peek();
-  static void printFatDate(Print *p, uint16_t fatDate);
-  static void printFatTime(Print *p, uint16_t fatTime);
-  bool printName(Print *p);
+  static void printFatDate(uint16_t fatDate);
+  static void printFatTime( uint16_t fatTime);
+  bool printName();
   int16_t read();
   int16_t read(void* buf, uint16_t nbyte);
   int8_t readDir(dir_t* dir, char* longFilename);
@@ -350,7 +352,7 @@ class SdBaseFile {
   bool addCluster();
   bool addDirCluster();
   dir_t* cacheDirEntry(uint8_t action);
-  int8_t lsPrintNext( Print *p, uint8_t flags, uint8_t indent);
+  int8_t lsPrintNext( uint8_t flags, uint8_t indent);
   static bool make83Name(const char* str, uint8_t* name, const char** ptr);
   bool mkdir(SdBaseFile* parent, const uint8_t dname[11]);
   bool open(SdBaseFile* dirFile, const uint8_t dname[11], uint8_t oflag);
@@ -358,7 +360,7 @@ class SdBaseFile {
   dir_t* readDirCache();
 //------------------------------------------------------------------------------
 // to be deleted
-  static void printDirName( Print *p, const dir_t& dir,
+  static void printDirName( const dir_t& dir,
     uint8_t width, bool printSlash);
 //------------------------------------------------------------------------------
 // Deprecated functions  - suppress cpplint warnings with NOLINT comment
@@ -478,3 +480,4 @@ class SdBaseFile {
 };
 
 #endif  // SdBaseFile_h
+#endif
diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFatConfig.h b/Marlin/SdFatConfig.h
similarity index 98%
rename from ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFatConfig.h
rename to Marlin/SdFatConfig.h
index 406a5a5bedf..24caf6f3eb6 100644
--- a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFatConfig.h
+++ b/Marlin/SdFatConfig.h
@@ -21,6 +21,9 @@
  * \file
  * \brief configuration definitions
  */
+#include "Marlin.h"
+#ifdef SDSUPPORT
+
 #ifndef SdFatConfig_h
 #define SdFatConfig_h
 #include <stdint.h>
@@ -115,3 +118,6 @@ uint8_t const SOFT_SPI_SCK_PIN = 13;
 /** Total size of the buffer used to store the long filenames */
 #define LONG_FILENAME_LENGTH (13*MAX_VFAT_ENTRIES+1)
 #endif  // SdFatConfig_h
+
+
+#endif
diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFatStructs.h b/Marlin/SdFatStructs.h
similarity index 99%
rename from ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFatStructs.h
rename to Marlin/SdFatStructs.h
index 899131655b8..38672161609 100644
--- a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFatStructs.h
+++ b/Marlin/SdFatStructs.h
@@ -17,6 +17,9 @@
  * along with the Arduino SdFat Library.  If not, see
  * <http://www.gnu.org/licenses/>.
  */
+#include "Marlin.h"
+#ifdef SDSUPPORT
+
 #ifndef SdFatStructs_h
 #define SdFatStructs_h
 
@@ -638,3 +641,6 @@ static inline uint8_t DIR_IS_FILE_OR_SUBDIR(const dir_t* dir) {
   return (dir->attributes & DIR_ATT_VOLUME_ID) == 0;
 }
 #endif  // SdFatStructs_h
+
+
+#endif
diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFatUtil.cpp b/Marlin/SdFatUtil.cpp
similarity index 86%
rename from ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFatUtil.cpp
rename to Marlin/SdFatUtil.cpp
index f6c825a4975..32cd198b667 100644
--- a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFatUtil.cpp
+++ b/Marlin/SdFatUtil.cpp
@@ -17,8 +17,9 @@
  * along with the Arduino SdFat Library.  If not, see
  * <http://www.gnu.org/licenses/>.
  */
-#include "SdFat.h"
-#include <Print.h>
+#include "Marlin.h"
+
+#ifdef SDSUPPORT
 #include "SdFatUtil.h"
 
 //------------------------------------------------------------------------------
@@ -49,8 +50,7 @@ int SdFatUtil::FreeRam() {
  * \param[in] pr Print object for output.
  * \param[in] str Pointer to string stored in flash memory.
  */
-void SdFatUtil::print_P( Print *p, PGM_P str) {
-	Print &MYSERIAL = *p;
+void SdFatUtil::print_P( PGM_P str) {
   for (uint8_t c; (c = pgm_read_byte(str)); str++) MYSERIAL.write(c);
 }
 //------------------------------------------------------------------------------
@@ -59,9 +59,8 @@ void SdFatUtil::print_P( Print *p, PGM_P str) {
  * \param[in] pr Print object for output.
  * \param[in] str Pointer to string stored in flash memory.
  */
-void SdFatUtil::println_P( Print *p, PGM_P str) {
-	Print &MYSERIAL = *p;
-  print_P( p, str);
+void SdFatUtil::println_P( PGM_P str) {
+  print_P( str);
   MYSERIAL.println();
 }
 //------------------------------------------------------------------------------
@@ -69,14 +68,15 @@ void SdFatUtil::println_P( Print *p, PGM_P str) {
  *
  * \param[in] str Pointer to string stored in flash memory.
  */
-void SdFatUtil::SerialPrint_P( Print *p, PGM_P str) {
-  print_P(p, str);
+void SdFatUtil::SerialPrint_P(PGM_P str) {
+  print_P(str);
 }
 //------------------------------------------------------------------------------
 /** %Print a string in flash memory to Serial followed by a CR/LF.
  *
  * \param[in] str Pointer to string stored in flash memory.
  */
-void SdFatUtil::SerialPrintln_P(Print *p, PGM_P str) {
-  println_P( p, str);
+void SdFatUtil::SerialPrintln_P(PGM_P str) {
+  println_P( str);
 }
+#endif
diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFatUtil.h b/Marlin/SdFatUtil.h
similarity index 67%
rename from ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFatUtil.h
rename to Marlin/SdFatUtil.h
index 4265d8c421a..7f1809422b3 100644
--- a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFatUtil.h
+++ b/Marlin/SdFatUtil.h
@@ -17,19 +17,32 @@
  * along with the Arduino SdFat Library.  If not, see
  * <http://www.gnu.org/licenses/>.
  */
+#include "Marlin.h"
+#ifdef SDSUPPORT
+
 #ifndef SdFatUtil_h
 #define SdFatUtil_h
 /**
  * \file
  * \brief Useful utility functions.
  */
+#include "Marlin.h"
+#include "MarlinSerial.h"
+/** Store and print a string in flash memory.*/
+#define PgmPrint(x) SerialPrint_P(PSTR(x))
+/** Store and print a string in flash memory followed by a CR/LF.*/
+#define PgmPrintln(x) SerialPrintln_P(PSTR(x))
 
 namespace SdFatUtil {
   int FreeRam();
-  void print_P( Print *p, PGM_P str);
-  void println_P( Print *p, PGM_P str);
-  void SerialPrint_P(Print *p, PGM_P str);
-  void SerialPrintln_P(Print *p, PGM_P str);
+  void print_P( PGM_P str);
+  void println_P( PGM_P str);
+  void SerialPrint_P(PGM_P str);
+  void SerialPrintln_P(PGM_P str);
 }
+
 using namespace SdFatUtil;  // NOLINT
 #endif  // #define SdFatUtil_h
+
+
+#endif
\ No newline at end of file
diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFile.cpp b/Marlin/SdFile.cpp
similarity index 95%
rename from ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFile.cpp
rename to Marlin/SdFile.cpp
index 09e2fbaeff0..29f5efadc1f 100644
--- a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFile.cpp
+++ b/Marlin/SdFile.cpp
@@ -17,6 +17,9 @@
  * along with the Arduino SdFat Library.  If not, see
  * <http://www.gnu.org/licenses/>.
  */
+#include "Marlin.h"
+
+#ifdef SDSUPPORT
 #include "SdFile.h"
 /**  Create a file object and open it in the current working directory.
  *
@@ -87,3 +90,6 @@ void SdFile::writeln_P(PGM_P str) {
   write_P(str);
   write_P(PSTR("\r\n"));
 }
+
+
+#endif
diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFile.h b/Marlin/SdFile.h
similarity index 96%
rename from ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFile.h
rename to Marlin/SdFile.h
index f0611c4750d..cbf1bbdbd90 100644
--- a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdFile.h
+++ b/Marlin/SdFile.h
@@ -21,6 +21,9 @@
  * \file
  * \brief SdFile class
  */
+#include "Marlin.h"
+
+#ifdef SDSUPPORT
 #include "SdBaseFile.h"
 #include <Print.h>
 #ifndef SdFile_h
@@ -46,3 +49,6 @@ class SdFile : public SdBaseFile, public Print {
   void writeln_P(PGM_P str);
 };
 #endif  // SdFile_h
+
+
+#endif
\ No newline at end of file
diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdInfo.h b/Marlin/SdInfo.h
similarity index 96%
rename from ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdInfo.h
rename to Marlin/SdInfo.h
index 2a58eb7db41..03ece102243 100644
--- a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdInfo.h
+++ b/Marlin/SdInfo.h
@@ -17,6 +17,9 @@
  * along with the Arduino Sd2Card Library.  If not, see
  * <http://www.gnu.org/licenses/>.
  */
+#include "Marlin.h"
+#ifdef SDSUPPORT
+
 #ifndef SdInfo_h
 #define SdInfo_h
 #include <stdint.h>
@@ -273,3 +276,5 @@ union csd_t {
   csd2_t v2;
 };
 #endif  // SdInfo_h
+
+#endif
\ No newline at end of file
diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdVolume.cpp b/Marlin/SdVolume.cpp
similarity index 96%
rename from ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdVolume.cpp
rename to Marlin/SdVolume.cpp
index 3c84c1881b4..f14d7bc70b8 100644
--- a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdVolume.cpp
+++ b/Marlin/SdVolume.cpp
@@ -17,7 +17,9 @@
  * along with the Arduino SdFat Library.  If not, see
  * <http://www.gnu.org/licenses/>.
  */
-#include "SdFat.h"
+#include "Marlin.h"
+#ifdef SDSUPPORT
+
 #include "SdVolume.h"
 //------------------------------------------------------------------------------
 #if !USE_MULTIPLE_CARDS
@@ -400,3 +402,4 @@ bool SdVolume::init(Sd2Card* dev, uint8_t part) {
  fail:
   return false;
 }
+#endif
\ No newline at end of file
diff --git a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdVolume.h b/Marlin/SdVolume.h
similarity index 99%
rename from ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdVolume.h
rename to Marlin/SdVolume.h
index 0f2e55ab2ac..2ff2b6eb964 100644
--- a/ArduinoAddons/Arduino_1.0.x/libraries/SdFat/SdVolume.h
+++ b/Marlin/SdVolume.h
@@ -17,6 +17,8 @@
  * along with the Arduino SdFat Library.  If not, see
  * <http://www.gnu.org/licenses/>.
  */
+#include "Marlin.h"
+#ifdef SDSUPPORT
 #ifndef SdVolume_h
 #define SdVolume_h
 /**
@@ -209,3 +211,4 @@ class SdVolume {
 #endif  // ALLOW_DEPRECATED_FUNCTIONS
 };
 #endif  // SdVolume
+#endif
\ No newline at end of file
diff --git a/Marlin/temperature.cpp b/Marlin/temperature.cpp
index d902d456952..d04f1fefb19 100644
--- a/Marlin/temperature.cpp
+++ b/Marlin/temperature.cpp
@@ -35,9 +35,8 @@
 #include "watchdog.h"
 #include "thermistortables.h"
 
-#ifdef HEATER_0_USES_MAX6675
-//#include <Sd2PinMap.h>
-#endif
+#include "Sd2PinMap.h"
+
 
 //===========================================================================
 //=============================public variables============================