diff --git a/srcpkgs/libmcpp b/srcpkgs/libmcpp
new file mode 120000
index 0000000000..7539443a48
--- /dev/null
+++ b/srcpkgs/libmcpp
@@ -0,0 +1 @@
+mcpp
\ No newline at end of file
diff --git a/srcpkgs/mcpp-devel b/srcpkgs/mcpp-devel
new file mode 120000
index 0000000000..7539443a48
--- /dev/null
+++ b/srcpkgs/mcpp-devel
@@ -0,0 +1 @@
+mcpp
\ No newline at end of file
diff --git a/srcpkgs/mcpp/depends b/srcpkgs/mcpp/depends
new file mode 100644
index 0000000000..c4aa4697a4
--- /dev/null
+++ b/srcpkgs/mcpp/depends
@@ -0,0 +1,2 @@
+abi_depends=">=2.7.2"
+api_depends="${abi_depends}"
diff --git a/srcpkgs/mcpp/libmcpp.template b/srcpkgs/mcpp/libmcpp.template
new file mode 100644
index 0000000000..fd2900bbfc
--- /dev/null
+++ b/srcpkgs/mcpp/libmcpp.template
@@ -0,0 +1,15 @@
+# Template file for 'libmcpp'.
+#
+short_desc="${short_desc} - Runtime library"
+long_desc="${long_desc}
+
+ This package contains the mcpp runtime library"
+
+Add_dependency run glibc
+Add_dependency run mcpp
+
+do_install()
+{
+	vmkdir usr/lib
+	vmove "usr/lib/*.so*" usr/lib
+}
diff --git a/srcpkgs/mcpp/mcpp-devel.template b/srcpkgs/mcpp/mcpp-devel.template
new file mode 100644
index 0000000000..d1be3dc94d
--- /dev/null
+++ b/srcpkgs/mcpp/mcpp-devel.template
@@ -0,0 +1,17 @@
+# Template file for 'mcpp-devel'.
+#
+short_desc="${short_desc} - development files"
+long_desc="${long_desc}
+
+ This package contains files for development, headers, static libs, etc."
+
+Add_dependency run glibc-devel
+Add_dependency run mcpp
+
+do_install()
+{
+	vmkdir usr/lib
+	vmkdir usr/include
+	vmove usr/include usr
+	vmove "usr/lib/*.a" usr/lib
+}
diff --git a/srcpkgs/mcpp/template b/srcpkgs/mcpp/template
new file mode 100644
index 0000000000..9662585d98
--- /dev/null
+++ b/srcpkgs/mcpp/template
@@ -0,0 +1,34 @@
+# Template file for 'mcpp'
+pkgname=mcpp
+version=2.7.2
+distfiles="${SOURCEFORGE_SITE}/${pkgname}/${pkgname}-${version}.tar.gz"
+build_style=gnu-configure
+configure_args="--enable-mcpplib"
+homepage="http://mcpp.sourceforge.net/"
+license="BSD-Style"
+short_desc="Portable C preprocessor"
+maintainer="davehome <davehome@redthumb.info.tm>"
+checksum=3b9b4421888519876c4fc68ade324a3bbd81ceeb7092ecdbbc2055099fcb8864
+long_desc="
+ mcpp is a C/C++ preprocessor with the following features:
+
+ * Implements all of C90, C99 and C++98 specifications.
+ * Provides a validation suite to test C/C++ preprocessor's conformance and
+   quality comprehensively. When this validation suite is applied, mcpp
+   distinguishes itself among many existing preprocessors.
+ * Has plentiful and on-target diagnostics to check all the preprocessing
+   problems such as latent bug or lack of portability in source code.
+ * Has #pragma directives to output debugging information.
+ * Is portable and has been ported to many compiler-systems, including GCC
+   and Visual C++, on UNIX-like systems and Windows.
+ * Has various behavior modes.
+ * Can be built either as a compiler-specific preprocessor to replace the
+   resident preprocessor of a particular compiler system, or as a compiler-independent command, or even as a subroutine called from some other main program.
+ * Provides comprehensive documents both in Japanese and in English.
+ * Is an open source software released under BSD-style-license.
+ * It is probably number one C/C++ preprocessor now available in the world."
+
+subpackages="lib$pkgname $pkgname-devel"
+
+Add_dependency run glibc
+Add_dependency run libmcpp
diff --git a/xbps-src/common/mapping_shlib_binpkg.txt b/xbps-src/common/mapping_shlib_binpkg.txt
index 8da6019cf2..72bc374a74 100644
--- a/xbps-src/common/mapping_shlib_binpkg.txt
+++ b/xbps-src/common/mapping_shlib_binpkg.txt
@@ -940,3 +940,4 @@ libportaudiocpp.so.0		portaudiocpp		portaudiocpp-devel
 libprotoc.so.7			protobuf		protobuf-devel
 libprotobuf.so.7		protobuf		protobuf-devel
 libprotobuf-lite.so.7		protobuf-lite		protobuf-devel
+libmcpp.so.0			libmcpp			mcpp-devel