diff --git a/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp b/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp
index d38cb56c145a43424173518c51c955936037514b..1c4a44710deffe4bf0e8308f8c3051c9add8969a 100644
--- a/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakeprojectplugin.cpp
@@ -34,6 +34,8 @@
 #include "cmakeprojectplugin.h"
 #include "cmakeprojectmanager.h"
 #include "cmakerunconfiguration.h"
+#include "cmakestep.h"
+#include "makestep.h"
 
 #include <coreplugin/icore.h>
 #include <coreplugin/mimedatabase.h>
@@ -58,6 +60,8 @@ bool CMakeProjectPlugin::initialize(const QStringList & /*arguments*/, QString *
     if (!core->mimeDatabase()->addMimeTypes(QLatin1String(":cmakeproject/CMakeProject.mimetypes.xml"), errorMessage))
         return false;
     addAutoReleasedObject(new CMakeManager());
+    addAutoReleasedObject(new CMakeBuildStepFactory());
+    addAutoReleasedObject(new MakeBuildStepFactory());
     addAutoReleasedObject(new CMakeRunConfigurationFactory());
     return true;
 }
diff --git a/src/plugins/cmakeprojectmanager/cmakestep.cpp b/src/plugins/cmakeprojectmanager/cmakestep.cpp
index c286712c9141f17aa99d4d3e5cdeb29ef115483d..9ed0a67f35883ec8c5da5b361c978499a3094865 100644
--- a/src/plugins/cmakeprojectmanager/cmakestep.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakestep.cpp
@@ -37,6 +37,8 @@
 #include "cmakeprojectconstants.h"
 
 #include <utils/qtcassert.h>
+#include <QtGui/QFormLayout>
+#include <QtGui/QLineEdit>
 
 using namespace CMakeProjectManager;
 using namespace CMakeProjectManager::Internal;
@@ -83,7 +85,7 @@ QString CMakeStep::displayName()
 
 ProjectExplorer::BuildStepConfigWidget *CMakeStep::createConfigWidget()
 {
-    return new CMakeBuildStepConfigWidget();
+    return new CMakeBuildStepConfigWidget(this);
 }
 
 bool CMakeStep::immutable() const
@@ -95,6 +97,15 @@ bool CMakeStep::immutable() const
 // CMakeBuildStepConfigWidget
 //
 
+CMakeBuildStepConfigWidget::CMakeBuildStepConfigWidget(CMakeStep *cmakeStep)
+    : m_cmakeStep(cmakeStep)
+{
+    QFormLayout *fl = new QFormLayout(this);
+    setLayout(fl);
+    m_arguments = new QLineEdit(this);
+    fl->addRow("Additional arguments", m_arguments);
+}
+
 QString CMakeBuildStepConfigWidget::displayName() const
 {
     return "CMake";
diff --git a/src/plugins/cmakeprojectmanager/cmakestep.h b/src/plugins/cmakeprojectmanager/cmakestep.h
index 44f9bf7f60178b7a0dfd283ae36bab1c805f6939..ec7c9cf9ad4c6b6aae38f610d6444d895c738a55 100644
--- a/src/plugins/cmakeprojectmanager/cmakestep.h
+++ b/src/plugins/cmakeprojectmanager/cmakestep.h
@@ -37,6 +37,8 @@
 #include <projectexplorer/buildstep.h>
 #include <projectexplorer/abstractprocessstep.h>
 
+class QLineEdit;
+
 namespace CMakeProjectManager {
 namespace Internal {
 
@@ -65,8 +67,12 @@ private:
 class CMakeBuildStepConfigWidget :public ProjectExplorer::BuildStepConfigWidget
 {
 public:
+    CMakeBuildStepConfigWidget(CMakeStep *cmakeStep);
     virtual QString displayName() const;
     virtual void init(const QString &buildConfiguration);
+private:
+    CMakeStep *m_cmakeStep;
+    QLineEdit *m_arguments;
 };
 
 class CMakeBuildStepFactory : public ProjectExplorer::IBuildStepFactory
diff --git a/src/plugins/cmakeprojectmanager/makestep.cpp b/src/plugins/cmakeprojectmanager/makestep.cpp
index ef956f38eeafbd36ecdae52d3bcbd4bcf425b369..279e9e75485c60a8bd6dbecea9c4123f5bcd13c5 100644
--- a/src/plugins/cmakeprojectmanager/makestep.cpp
+++ b/src/plugins/cmakeprojectmanager/makestep.cpp
@@ -71,7 +71,7 @@ void MakeStep::run(QFutureInterface<bool> &fi)
 
 QString MakeStep::name()
 {
-    return Constants::CMAKESTEP;
+    return Constants::MAKESTEP;
 }
 
 QString MakeStep::displayName()