diff --git a/include/slibtool/slibtool.h b/include/slibtool/slibtool.h
index e81f00a..a987a40 100644
--- a/include/slibtool/slibtool.h
+++ b/include/slibtool/slibtool.h
@@ -186,6 +186,7 @@ slbt_api int  slbt_unmap_input		(struct slbt_input *);
 
 /* utility api */
 slbt_api int  slbt_output_config	(const struct slbt_driver_ctx *);
+slbt_api int  slbt_output_exec		(const struct slbt_driver_ctx *, const struct slbt_exec_ctx *, const char *);
 slbt_api int  slbt_output_compile	(const struct slbt_driver_ctx *, const struct slbt_exec_ctx *);
 
 #ifdef __cplusplus
diff --git a/project/common.mk b/project/common.mk
index 7dd48ba..25fb716 100644
--- a/project/common.mk
+++ b/project/common.mk
@@ -4,8 +4,8 @@ COMMON_SRCS = \
 	src/logic/slbt_exec_compile.c \
 	src/logic/slbt_exec_ctx.c \
 	src/logic/slbt_map_input.c \
-	src/output/slbt_output_compile.c \
 	src/output/slbt_output_config.c \
+	src/output/slbt_output_exec.c \
 	src/skin/slbt_skin_default.c \
 
 APP_SRCS = \
diff --git a/src/output/slbt_output_compile.c b/src/output/slbt_output_compile.c
deleted file mode 100644
index c86148a..0000000
--- a/src/output/slbt_output_compile.c
+++ /dev/null
@@ -1,27 +0,0 @@
-/*******************************************************************/
-/*  slibtool: a skinny libtool implementation, written in C        */
-/*  Copyright (C) 2016  Z. Gilboa                                  */
-/*  Released under the Standard MIT License; see COPYING.SLIBTOOL. */
-/*******************************************************************/
-
-#include <stdio.h>
-#include <slibtool/slibtool.h>
-
-int slbt_output_compile(
-	const struct slbt_driver_ctx *	dctx,
-	const struct slbt_exec_ctx *	ectx)
-{
-	char ** parg;
-
-	if (fprintf(stdout,"%s: compile:",dctx->program) < 0)
-		return -1;
-
-	for (parg=ectx->argv; *parg; parg++)
-		if (fprintf(stdout," %s",*parg) < 0)
-			return -1;
-
-	if (fputc('\n',stdout) < 0)
-		return -1;
-
-	return 0;
-}
diff --git a/src/output/slbt_output_exec.c b/src/output/slbt_output_exec.c
new file mode 100644
index 0000000..62b15cc
--- /dev/null
+++ b/src/output/slbt_output_exec.c
@@ -0,0 +1,35 @@
+/*******************************************************************/
+/*  slibtool: a skinny libtool implementation, written in C        */
+/*  Copyright (C) 2016  Z. Gilboa                                  */
+/*  Released under the Standard MIT License; see COPYING.SLIBTOOL. */
+/*******************************************************************/
+
+#include <stdio.h>
+#include <slibtool/slibtool.h>
+
+int slbt_output_exec(
+	const struct slbt_driver_ctx *	dctx,
+	const struct slbt_exec_ctx *	ectx,
+	const char *			step)
+{
+	char ** parg;
+
+	if (fprintf(stdout,"%s: %s:",dctx->program,step) < 0)
+		return -1;
+
+	for (parg=ectx->argv; *parg; parg++)
+		if (fprintf(stdout," %s",*parg) < 0)
+			return -1;
+
+	if (fputc('\n',stdout) < 0)
+		return -1;
+
+	return 0;
+}
+
+int slbt_output_compile(
+	const struct slbt_driver_ctx *	dctx,
+	const struct slbt_exec_ctx *	ectx)
+{
+	return slbt_output_exec(dctx,ectx,"compile");
+}