changeset 0:bb756f67f264

start cospy
author Thinker K.F. Li <thinker@codemud.net>
date Tue, 07 Sep 2010 09:49:12 +0800
parents
children 4ebd1d0373ee
files src/Makefile src/test.c src/testplugin.c
diffstat 3 files changed, 34 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/Makefile	Tue Sep 07 09:49:12 2010 +0800
@@ -0,0 +1,13 @@
+GCC=/home/thinker/progm/gcc-4.5.1/dist/bin/gcc
+PLUGIN_SOURCE_FILES= testplugin.c
+PLUGIN_OBJECT_FILES= $(patsubst %.c,%.o,$(PLUGIN_SOURCE_FILES))
+GCCPLUGINS_DIR:= $(shell $(GCC) -print-file-name=plugin)
+CFLAGS+= -I$(GCCPLUGINS_DIR)/include -fPIC -O2
+
+all: testplugin.so
+
+testplugin.so: $(PLUGIN_OBJECT_FILES)
+	$(GCC) -shared $^ -o $@
+
+test:
+	$(GCC) -fplugin=`pwd`/testplugin.so $(CFLAGS) -c test.c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/test.c	Tue Sep 07 09:49:12 2010 +0800
@@ -0,0 +1,7 @@
+#include <stdio.h>
+
+int
+main(int argc, const char *argv[]) {
+    printf("test\n");
+    return 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/testplugin.c	Tue Sep 07 09:49:12 2010 +0800
@@ -0,0 +1,14 @@
+#include "gcc-plugin.h"
+#include "plugin-version.h"
+#include <stdio.h>
+
+int plugin_is_GPL_compatible;
+
+int
+plugin_init(struct plugin_name_args *plugin_info,
+	    struct plugin_gcc_version *version) {
+    if (!plugin_default_version_check (version, &gcc_version))
+	return 1;
+    printf("Initialize plugin %s\n", plugin_info->base_name);
+    return 0;
+}