Initial Contribution
diff --git a/sh/builtins.c b/sh/builtins.c
new file mode 100644
index 0000000..344dbd6
--- /dev/null
+++ b/sh/builtins.c
@@ -0,0 +1,61 @@
+/*
+ * This file was generated by the mkbuiltins program.
+ */
+
+#include "shell.h"
+#include "builtins.h"
+
+const struct builtincmd builtincmd[] = {
+
+	{ "command",	bltincmd },
+	{ "bg",	bgcmd },
+	{ "cd",	cdcmd },
+	{ "chdir",	cdcmd },
+	{ "echo",	echocmd },
+	{ "exp",	expcmd },
+	{ "let",	expcmd },
+	{ "false",	falsecmd },
+#if WITH_HISTORY
+	{ "fc",	histcmd },
+	{ "inputrc",	inputrc },
+#endif
+	{ "fg",	fgcmd },
+	{ "getopts",	getoptscmd },
+	{ "hash",	hashcmd },
+	{ "jobid",	jobidcmd },
+	{ "jobs",	jobscmd },
+	{ "local",	localcmd },
+#ifndef SMALL
+#endif
+	{ "pwd",	pwdcmd },
+	{ "read",	readcmd },
+	{ "setvar",	setvarcmd },
+	{ "true",	truecmd },
+	{ "type",	typecmd },
+	{ "umask",	umaskcmd },
+	{ "unalias",	unaliascmd },
+	{ "wait",	waitcmd },
+	{ "alias",	aliascmd },
+	{ "ulimit",	ulimitcmd },
+	{ "wordexp",	wordexpcmd },
+	{ 0, 0 },
+};
+
+const struct builtincmd splbltincmd[] = {
+	{ "break",	breakcmd },
+	{ "continue",	breakcmd },
+	{ ".",	dotcmd },
+	{ "eval",	evalcmd },
+	{ "exec",	execcmd },
+	{ "exit",	exitcmd },
+	{ "export",	exportcmd },
+	{ "readonly",	exportcmd },
+	{ "return",	returncmd },
+	{ "set",	setcmd },
+	{ "shift",	shiftcmd },
+	{ "times",	timescmd },
+	{ "trap",	trapcmd },
+	{ ":",	truecmd },
+	{ "unset",	unsetcmd },
+	{ 0, 0 },
+};