summaryrefslogtreecommitdiff
path: root/Makefile
diff options
context:
space:
mode:
authorJohn MacFarlane <jgm@berkeley.edu>2014-11-06 23:36:49 -0800
committerJohn MacFarlane <jgm@berkeley.edu>2014-11-06 23:36:49 -0800
commit423de04c79ec06f0bdfeb0d5087fbb88071a6b92 (patch)
treed21651f018390568f5b0e6f8dfdc0fabb6cce045 /Makefile
parent91910b094af8bedb08f612ec3e4036a25a748a0f (diff)
parentbc978561c1616985df6a73657db5015822c4b33b (diff)
Merge branch 'cmake'
Conflicts: Makefile
Diffstat (limited to 'Makefile')
-rw-r--r--Makefile82
1 files changed, 52 insertions, 30 deletions
diff --git a/Makefile b/Makefile
index 6322a6f..097ad2d 100644
--- a/Makefile
+++ b/Makefile
@@ -3,16 +3,30 @@ LDFLAGS?=-g -O3 -Wall -Werror -fPIC $(OPTLDFLAGS)
SRCDIR?=src
DATADIR?=data
BENCHINP?=README.md
-PROG?=./cmark
JSMODULES=$(wildcard js/lib/*.js)
PREFIX?=/usr/local
SPEC=spec.txt
SITE=_site
SPECVERSION=$(shell grep version: $(SPEC) | sed -e 's/version: *//')
-.PHONY: all spec leakcheck clean fuzztest dingus upload jshint test testjs benchjs update-site upload-site
+BUILDDIR=build
+PROG?=$(BUILDDIR)/src/cmark
-all: $(PROG) libcmark.so
+.PHONY: all spec leakcheck clean fuzztest dingus upload jshint test testjs benchjs update-site upload-site check
+
+all: check
+ mkdir -p $(BUILDDIR); cd build; cmake ..; make
+
+install: check
+ mkdir -p $(BUILDDIR); cd build; cmake ..; make install
+
+clean:
+ rm -rf $(BUILDDIR)
+
+check:
+ @cmake --version >/dev/null || (echo "You need cmake to build this program: http://www.cmake.org/download/" && exit 1)
+
+$(PROG): all
README.html: README.md template.html
pandoc --template template.html -S -s -t html5 -o $@ $<
@@ -46,36 +60,44 @@ jshint:
benchjs:
node js/bench.js ${BENCHINP}
-HTML_OBJ=$(SRCDIR)/html/html.o $(SRCDIR)/html/houdini_href_e.o $(SRCDIR)/html/houdini_html_e.o $(SRCDIR)/html/houdini_html_u.o
-
-CMARK_OBJ=$(SRCDIR)/inlines.o $(SRCDIR)/buffer.o $(SRCDIR)/blocks.o $(SRCDIR)/scanners.c $(SRCDIR)/print.o $(SRCDIR)/utf8.o $(SRCDIR)/references.o
+#HTML_OBJ=$(SRCDIR)/html/html.o $(SRCDIR)/html/houdini_href_e.o $(SRCDIR)/html/houdini_html_e.o $(SRCDIR)/html/houdini_html_u.o
+#
+#CMARK_OBJ=$(SRCDIR)/inlines.o $(SRCDIR)/buffer.o $(SRCDIR)/blocks.o $(SRCDIR)/scanners.c $(SRCDIR)/print.o $(SRCDIR)/utf8.o $(SRCDIR)/references.o
+#
+#CMARK_HDR = $(SRCDIR)/cmark.h $(SRCDIR)/buffer.h $(SRCDIR)/references.h \
+# $(SRCDIR)/chunk.h $(SRCDIR)/debug.h $(SRCDIR)/utf8.h \
+# $(SRCDIR)/scanners.h $(SRCDIR)/inlines.h
+#
+#HTML_HDR = $(SRCDIR)/html/html_unescape.h $(SRCDIR)/html/houdini.h
+#
+#$(PROG): $(SRCDIR)/html/html_unescape.h $(SRCDIR)/case_fold_switch.inc $(HTML_OBJ) $(CMARK_OBJ) $(SRCDIR)/main.c
+# $(CC) $(LDFLAGS) -o $@ $(HTML_OBJ) $(CMARK_OBJ) $(SRCDIR)/main.c
+#
+#$(SRCDIR)/scanners.c: $(SRCDIR)/scanners.re
+# re2c --case-insensitive -bis $< > $@ || (rm $@ && false)
-CMARK_HDR = $(SRCDIR)/cmark.h $(SRCDIR)/buffer.h $(SRCDIR)/references.h \
- $(SRCDIR)/chunk.h $(SRCDIR)/debug.h $(SRCDIR)/utf8.h \
- $(SRCDIR)/scanners.h $(SRCDIR)/inlines.h
-
-HTML_HDR = $(SRCDIR)/html/html_unescape.h $(SRCDIR)/html/houdini.h
-
-$(PROG): $(SRCDIR)/html/html_unescape.h $(SRCDIR)/case_fold_switch.inc $(HTML_OBJ) $(CMARK_OBJ) $(SRCDIR)/main.c
- $(CC) $(LDFLAGS) -o $@ $(HTML_OBJ) $(CMARK_OBJ) $(SRCDIR)/main.c
-
-$(SRCDIR)/scanners.c: $(SRCDIR)/scanners.re
- re2c --case-insensitive -bis $< > $@ || (rm $@ && false)
$(SRCDIR)/case_fold_switch.inc: $(DATADIR)/CaseFolding-3.2.0.txt
perl mkcasefold.pl < $< > $@
-$(SRCDIR)/html/html_unescape.h: $(SRCDIR)/html/html_unescape.gperf
- gperf -I -t -N find_entity -H hash_entity -K entity -C -l --null-strings -m5 $< > $@
-
-libcmark.so: $(HTML_OBJ) $(CMARK_OBJ)
- $(CC) $(LDFLAGS) -shared -o $@ $^
-
-install: libcmark.so $(cmark_HDR) $(HTML_HDR)
- install -d $(PREFIX)/lib $(PREFIX)/include/cmark/html
- install libcmark.so $(PREFIX)/lib/
- install $(cmark_HDR) $(PREFIX)/include/cmark/
- install $(HTML_HDR) $(PREFIX)/include/cmark/html/
+#$(SRCDIR)/html/html_unescape.h: $(SRCDIR)/html/html_unescape.gperf
+# gperf -I -t -N find_entity -H hash_entity -K entity -C -l
+# --null-strings -m5 $< > $@
+#
+#libcommonmark.so: $(HTML_OBJ) $(CMARK_OBJ)
+# $(CC) $(LDFLAGS) -shared -o $@ $^
+#
+#install: libcommonmark.so $(cmark_HDR) $(HTML_HDR)
+# install -d $(PREFIX)/lib $(PREFIX)/include/cmark/html
+# install libcommonmark.so $(PREFIX)/lib/
+# install $(cmark_HDR) $(PREFIX)/include/cmark/
+# install $(HTML_HDR) $(PREFIX)/include/cmark/html/
+
+#CMARK_HDR = $(SRCDIR)/cmark.h $(SRCDIR)/buffer.h $(SRCDIR)/references.h \
+# $(SRCDIR)/chunk.h $(SRCDIR)/debug.h $(SRCDIR)/utf8.h \
+# $(SRCDIR)/scanners.h $(SRCDIR)/inlines.h
+#
+#HTML_HDR = $(SRCDIR)/html/html_unescape.h $(SRCDIR)/html/houdini.h
dingus: js/commonmark.js
echo "Starting dingus server at http://localhost:9000" && python -m SimpleHTTPServer 9000
@@ -107,8 +129,8 @@ update-site: $(SITE)/dingus.html $(SITE)/js/commonmark.js $(SITE)/index.html $(S
upload-site:
cd $(SITE) ; git pull; git commit -a -m "Updated site for latest spec, js" ; git push; cd ..
-clean:
- -rm -f test $(SRCDIR)/*.o $(SRCDIR)/scanners.c $(SRCDIR)/html/*.o libcmark.so
+distclean: clean
+ -rm -f test $(SRCDIR)/*.o $(SRCDIR)/scanners.c $(SRCDIR)/html/*.o libcommonmark.so
-rm -f js/commonmark.js
-rm -rf *.dSYM
-rm -f README.html