summaryrefslogtreecommitdiffstats
path: root/Source/cmBorlandMakefileGenerator.h
diff options
context:
space:
mode:
authorJohn Biddiscombe <jbiddiscombe@skippingmouse.co.uk>2001-09-04 20:29:11 (GMT)
committerJohn Biddiscombe <jbiddiscombe@skippingmouse.co.uk>2001-09-04 20:29:11 (GMT)
commitecd4acfb01035d227f68c29ce0f65b2193bbd410 (patch)
tree1a5bcf2a84a54426a082fe79fc78ed57767d77b9 /Source/cmBorlandMakefileGenerator.h
parentcc5c1fa6f739648d2dfc61355908752c5e073621 (diff)
downloadCMake-ecd4acfb01035d227f68c29ce0f65b2193bbd410.zip
CMake-ecd4acfb01035d227f68c29ce0f65b2193bbd410.tar.gz
CMake-ecd4acfb01035d227f68c29ce0f65b2193bbd410.tar.bz2
NEW: First check in of Borland Makefile Generator and template stuff
Diffstat (limited to 'Source/cmBorlandMakefileGenerator.h')
-rw-r--r--Source/cmBorlandMakefileGenerator.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/Source/cmBorlandMakefileGenerator.h b/Source/cmBorlandMakefileGenerator.h
new file mode 100644
index 0000000..1646944
--- /dev/null
+++ b/Source/cmBorlandMakefileGenerator.h
@@ -0,0 +1,81 @@
+#ifndef cmBorlandMakefileGenerator_h
+#define cmBorlandMakefileGenerator_h
+
+#include "cmMakefile.h"
+#include "cmMakefileGenerator.h"
+
+/** \class cmBorlandMakefileGenerator
+ * \brief Write a Unix makefiles.
+ *
+ * cmBorlandMakefileGenerator produces a Unix makefile from its
+ * member m_Makefile.
+ */
+class cmBorlandMakefileGenerator : public cmMakefileGenerator {
+ public:
+ ///! Set cache only and recurse to false by default.
+ cmBorlandMakefileGenerator();
+
+ //! just sets the Cache Only and Recurse flags
+ virtual void SetLocal(bool local);
+
+ /**
+ * If cache only is on.
+ * Only stub makefiles are generated, and no depends, for speed.
+ * The default is OFF.
+ **/
+ void SetCacheOnlyOn() {m_CacheOnly = true;}
+ void SetCacheOnlyOff() {m_CacheOnly = false;}
+
+ /**
+ * If recurse is on, then all the makefiles below this one are parsed as well.
+ */
+ void SetRecurseOn() {m_Recurse = true;}
+ void SetRecurseOff() {m_Recurse = false;}
+
+ /**
+ * Produce the makefile (in this case a Unix makefile).
+ */
+ virtual void GenerateMakefile();
+
+ /**
+ * Output the depend information for all the classes
+ * in the makefile. These would have been generated
+ * by the class cmMakeDepend.
+ */
+ void OutputObjectDepends(std::ostream&);
+
+ /**
+ * Try to determine system infomation such as shared library
+ * extension, pthreads, byte order etc.
+ */
+ virtual void ComputeSystemInfo();
+
+ private:
+ void RecursiveGenerateCacheOnly();
+ void GenerateCacheOnly();
+ void OutputMakefile(const char* file);
+ void OutputTargetRules(std::ostream& fout);
+ void OutputTargets(std::ostream&);
+ void OutputSubDirectoryRules(std::ostream&);
+ void OutputDependInformation(std::ostream&);
+ void OutputDependencies(std::ostream&);
+ void OutputCustomRules(std::ostream&);
+ void OutputMakeVariables(std::ostream&);
+ void OutputMakeRules(std::ostream&);
+ void OutputSubDirectoryVars(std::ostream& fout,
+ const char* var,
+ const char* target,
+ const char* target1,
+ const char* target2,
+ const std::vector<std::string>& SubDirectories);
+ void OutputMakeRule(std::ostream&,
+ const char* comment,
+ const char* target,
+ const char* depends,
+ const char* command);
+ private:
+ bool m_CacheOnly;
+ bool m_Recurse;
+};
+
+#endif