resources/examples/llvm-c/Makefile
changeset 43 9327987437ae
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/resources/examples/llvm-c/Makefile	Wed Aug 12 07:32:13 2015 +0100
@@ -0,0 +1,43 @@
+CC=gccxml
+CFLAGS=-D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS
+XSLTPROC=xsltproc
+XML2DEF_XSL=../../styles/gccxml2def.xsl
+
+
+
+
+INCLUDE_DIR=$(shell llvm-config-3.8 --includedir)
+HEADERS=Core.h ExecutionEngine.h Target.h Analysis.h BitWriter.h
+DEFFILES=$(HEADERS:%.h=%.h.def)
+DEFFILE=llvm-c.def
+XMLFILES=$(HEADERS:%.h=%.h.xml)
+
+XSL_PARAMS=--stringparam c-header-file $(INCLUDE_DIR)/llvm-c/$(<:%.h.xml=%.h)
+
+XSLTPROC_FLAGS=$(XSL_PARAMS)
+
+default: all
+
+all: $(DEFFILE)
+
+xml: $(XMLFILES)
+
+
+$(DEFFILE): $(DEFFILES)
+	cat $(DEFFILES) > $(DEFFILE)
+#	sed -i -e 's/^(struct-foreign LLVM/(struct LLVM/g' $(DEFFILE)
+#	sed -i -e 's/^(typedef-foreign LLVM/(typedef LLVM/g' $(DEFFILE)
+#	sed -i -e 's/^(enum-foreign LLVM/(enum LLVM/g' $(DEFFILE)
+
+
+%.h.def:%.h.xml
+	$(XSLTPROC) $(XSLTPROC_FLAGS) -o $@ $(XML2DEF_XSL) $<
+
+%.h.xml: $(INCLUDE_DIR)/llvm-c/%.h
+	$(CC) -m64 $(CFLAGS) -I$(INCLUDE_DIR) $< -fxml=$@
+
+clean:
+	rm -rf *.h.def *.h.xml
+
+distclean: clean
+	rm -rf $(DEFFILE)