summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTing-Wei Lan <lantw44@gmail.com>2015-01-29 23:28:57 +0800
committerTing-Wei Lan <lantw44@gmail.com>2015-01-29 23:28:57 +0800
commited356a2a315e1028937c6ed94771c519eb448385 (patch)
tree2d77a69af1a83e9c110612647b9ddcddf00807da
parentae8bb35d10c22e3c62b963b5b7f70b4475fd9b6f (diff)
downloadmisc-tools-ed356a2a315e1028937c6ed94771c519eb448385.tar.gz
misc-tools-ed356a2a315e1028937c6ed94771c519eb448385.tar.zst
misc-tools-ed356a2a315e1028937c6ed94771c519eb448385.zip
Add a Makefile to make compiling programs and documents easier
-rw-r--r--Makefile102
1 files changed, 102 insertions, 0 deletions
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..c04d498
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,102 @@
+# vim: set ts=8 sts=8 sw=8 ft=make:
+
+.POSIX:
+
+# Suffix rules
+.SUFFIXES:
+.SUFFIXES: \
+ .c .C .cc .cxx .cpp .o .so .bin \
+ .txt .adoc .asciidoc .docbook \
+ .md .mkd .markdown \
+ .html .pdf
+
+# Defaults
+CP= cp
+RM= rm
+ASCIIDOC= asciidoc
+A2X= a2x
+MARKDOWN= markdown
+DBLATEX= dblatex
+PANDOC= pandoc
+
+# Eqivalent extensions
+.C.cpp:
+ $(CP) "$<" "$@"
+.cc.cpp:
+ $(CP) "$<" "$@"
+.cxx.cpp:
+ $(CP) "$<" "$@"
+.txt.asciidoc:
+ $(CP) "$<" "$@"
+.adoc.asciidoc:
+ $(CP) "$<" "$@"
+.markdown.md:
+ $(CP) "$<" "$@"
+.mkd.md:
+ $(CP) "$<" "$@"
+
+.c.o:
+ $(CC) -c $(CPPFLAGS) $(CFLAGS) "$<" -o "$@"
+.c.bin:
+ $(CC) $(CPPFLAGS) $(CFLAGS) "$<" -o "$@" $(LDFLAGS)
+
+.cpp.o:
+ $(CXX) -c $(CPPFLAGS) $(CXXFLAGS) "$<" -o "$@"
+.cpp.bin:
+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) "$<" -o "$@" $(LDFLAGS)
+
+.md.html:
+ $(MARKDOWN) $(MARKDOWN_FLAGS) < "$<" > "$@"
+
+
+USE_A2X= no
+
+ASCIIDOC_HTML_COMMAND= $(ASCIIDOC_HTML_COMMAND_$(USE_A2X))
+ASCIIDOC_HTML_COMMAND_yes= \
+ $(A2X) -L -f xhtml $(A2X_FLAGS) "$<"
+ASCIIDOC_HTML_COMMAND_no= \
+ $(ASCIIDOC) $(ASCIIDOC_FLAGS) -o "$@" "$<"
+
+ASCIIDOC_HTML_COMMAND_true= $(ASCIIDOC_HTML_COMMAND_yes)
+ASCIIDOC_HTML_COMMAND_false= $(ASCIIDOC_HTML_COMMAND_no)
+ASCIIDOC_HTML_COMMAND_1= $(ASCIIDOC_HTML_COMMAND_yes)
+ASCIIDOC_HTML_COMMAND_0= $(ASCIIDOC_HTML_COMMAND_no)
+
+.asciidoc.html:
+ $(ASCIIDOC_HTML_COMMAND)
+
+ASCIIDOC_PDF_FONT= AR PL UMing TW
+ASCIIDOC_PDF_COMMAND= $(ASCIIDOC_PDF_COMMAND_$(USE_A2X))
+ASCIIDOC_PDF_COMMAND_yes= \
+ ( echo '<?xml version="1.0" encoding="iso-8859-1"?>'; \
+ echo '<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">'; \
+ echo ' <xsl:param name="xetex.font">'; \
+ echo ' <xsl:text>\usepackage{fontspec}'; \
+ echo ' </xsl:text>'; \
+ echo ' <xsl:text>\usepackage{xeCJK}'; \
+ echo ' </xsl:text>'; \
+ echo ' <xsl:text>\setCJKmainfont{$(ASCIIDOC_PDF_FONT)}'; \
+ echo ' </xsl:text>'; \
+ echo ' <xsl:text>\XeTeXlinebreaklocale "zh"'; \
+ echo ' </xsl:text>'; \
+ echo ' </xsl:param>'; \
+ echo '</xsl:stylesheet>'; ) > "$<-chinese.xsl" && \
+ $(A2X) -L -f pdf --dblatex-opts="-b xetex -P doc.publisher.show=0 -p $<-chinese.xsl $(DBLATEX_FLAGS)" $(A2X_FLAGS) "$<" && \
+ $(RM) "$<-chinese.xsl"
+ASCIIDOC_PDF_COMMAND_no= \
+ ( echo '\usepackage{fontspec}'; \
+ echo '\usepackage{xeCJK}'; \
+ echo '\setCJKmainfont{$(ASCIIDOC_PDF_FONT)}'; \
+ echo '\XeTeXlinebreaklocale "zh"'; ) > "$<-chinese.tex" && \
+ $(ASCIIDOC) -b docbook $(ASCIIDOC_FLAGS) -o "$<.docbook" "$<" && \
+ $(PANDOC) -f docbook -t latex --latex-engine=xelatex \
+ -H "$<-chinese.tex" $(PANDOC_FLAGS) -o "$@" "$<.docbook" && \
+ $(RM) "$<-chinese.tex" "$<.docbook"
+
+ASCIIDOC_PDF_COMMAND_true= $(ASCIIDOC_PDF_COMMAND_yes)
+ASCIIDOC_PDF_COMMAND_false= $(ASCIIDOC_PDF_COMMAND_no)
+ASCIIDOC_PDF_COMMAND_1= $(ASCIIDOC_PDF_COMMAND_yes)
+ASCIIDOC_PDF_COMMAND_0= $(ASCIIDOC_PDF_COMMAND_no)
+
+.asciidoc.pdf:
+ $(ASCIIDOC_PDF_COMMAND)