@@ -11,6 +11,7 @@ BUILDDIR := dist
1111BUILDCONF := $(BUILDDIR)/setup-config
1212BUILDVARS := vars
1313CONFIGURE := configure
14+ODTSTYLES := odt-styles
1415
1516#-------------------------------------------------------------------------------
1617# Cabal constants
@@ -23,7 +24,7 @@ EXECSBASE := $(shell sed -ne 's/^[Ee]xecutable:\{0,1\}[[:space:]]*//p' $(CABAL))
2324#-------------------------------------------------------------------------------
2425# Install targets
2526#-------------------------------------------------------------------------------
26−WRAPPERS := html2markdown markdown2pdf hsmarkdown
27+WRAPPERS := html2markdown markdown2pdf hsmarkdown markdown2odt
2728# Add .exe extensions if we're running Windows/Cygwin.
2829EXTENSION := $(shell uname | tr '[:upper:]' '[:lower:]' | \
2930 sed -ne 's/^cygwin.*$$/\.exe/p')
@@ -33,6 +34,7 @@ PROGS := $(EXECS) $(WRAPPERS)
3334MAIN := $(firstword $(EXECS))
3435DOCS := README.html README BUGS
3536MANPAGES := $(patsubst %.md,%,$(wildcard $(MANDIR)/man?/*.?.md))
37+ODTREF := $(ODTSTYLES)/reference.odt
3638
3739#-------------------------------------------------------------------------------
3840# Variables to setup through environment
@@ -106,10 +108,21 @@ awk ' \
106108chmod +x $@
107109endef
108110
111+cleanup_files+=$(ODTREF)
112+$(ODTREF): $(addprefix $(ODTSTYLES)/, layout-cache meta.xml styles.xml content.xml mimetype \
113+ settings.xml Configurations2 Thumbnails META-INF)
114+ cd $(ODTSTYLES) ; \
115+ zip -9 -r $(notdir $@) * -x $(notdir $@)
116+
117+ODTREFSH=$(SRCDIR)/wrappers/odtref.sh
118+cleanup_files+=$(ODTREFSH)
119+$(ODTREFSH): $(ODTREF)
120+ echo "REFERENCEODT='$(PKGDATAPATH)/$(notdir $(ODTREF))'" > $@
121+
109122.PHONY: wrappers
110123wrappers: $(WRAPPERS)
111124cleanup_files+=$(WRAPPERS)
112−$(WRAPPERS): %: $(SRCDIR)/wrappers/%.in $(SRCDIR)/wrappers/*.sh
125+$(WRAPPERS): %: $(SRCDIR)/wrappers/%.in $(SRCDIR)/wrappers/*.sh $(ODTREFSH)
113126 @$(generate-shell-script)
114127
115128CABAL_BACKUP=$(CABAL).orig
@@ -179,7 +192,15 @@ install-doc: build-doc
179192uninstall-doc:
180193 -for f in $(DOCS); do rm -f $(PKGDOCPATH)/$$f; done
181194 -for f in $(man_all); do rm -f $(MANPATH)/$$f; done
182− rmdir $(PKGDOCPATH) $(PKGDATAPATH) 2>/dev/null ||:
195+ rmdir $(PKGDOCPATH) 2>/dev/null ||:
196+
197+# Data file installation.
198+.PHONY: install-data uninstall-data
199+install-data: $(ODTREF)
200+ $(INSTALL) -d $(PKGDATAPATH) && $(INSTALL_DATA) $(ODTREF) $(PKGDATAPATH)/
201+uninstall-data:
202+ -rm -f $(PKGDATAPATH)/$(notdir $(ODTREF))
203+ rmdir $(PKGDATAPATH) 2>/dev/null ||:
183204
184205# Program only installation.
185206.PHONY: install-exec uninstall-exec
@@ -197,8 +218,8 @@ uninstall-exec:
197218
198219# Program + user documents installation.
199220.PHONY: install-program uninstall-program
200−install-program: install-exec install-doc
201−uninstall-program: uninstall-exec uninstall-doc
221+install-program: install-exec install-data install-doc
222+uninstall-program: uninstall-exec uninstall-doc uninstall-data
202223
203224.PHONY: install-all uninstall-all
204225# Full installation through Cabal: main + wrappers + user docs + lib + lib docs