# This file is part of Named Constant Generator.
# Copyright  2009,2010,2011,2012 Johannes Willkomm 
# See the file gennc for copying conditions.

PROJ_NAME = named-constant

INSTALL ?= install
DESTDIR ?= 

prefix        ?= /usr/local
exec_prefix   ?= $(prefix)
bindir        ?= $(exec_prefix)/bin
datarootdir   ?= $(prefix)/share
includedir    ?= $(prefix)/include
libdir        ?= $(exec_prefix)/lib
docdir        ?= $(datarootdir)/doc/$(PROJ_NAME)
mandir        ?= $(datarootdir)/man
man1dir       ?= $(mandir)/man1
man3dir       ?= $(mandir)/man3
datadir       ?= $(datarootdir)/$(PROJ_NAME)
xsldir        ?= $(datadir)/xsl
matdir        ?= $(datadir)/matlab
jsdir         ?= $(datadir)/js
srcdir        ?= .

XSLS = $(addprefix $(srcdir)/, gennc.xsl gennc-js.xsl gennc-mat.xsl patch-gennc-gen-value.xsl listnc.xsl)

c_examples = example.ncd.cc example.ncd.hh example.ncd.enum.hh
js_examples = example.ncd.js
mat_examples = createdemo.m
examples = example.ncd.cc example.ncd.hh example.ncd.enum.hh $(js_examples) $(mat_examples)

default all: gennc.1 $(examples)

gennc.1: gennc man-texts.txt
	LANG=C PATH=.:$$PATH help2man -Len_US.utf8 -N --include man-texts.txt gennc > $@

$(c_examples): example.ncd.xml gennc
	GENNC_XSL=. ./gennc -f $<

$(js_examples): example.ncd.xml gennc
	GENNC_XSL=. GENNC_JS=. ./gennc -m JavaScript $<

$(mat_examples): example.ncd.xml gennc
	GENNC_XSL=. ./gennc -m Matlab $<

install: gennc gennc.1 $(examples)
	$(INSTALL) -d $(DESTDIR)$(bindir) $(DESTDIR)$(xsldir) $(DESTDIR)$(man1dir) $(DESTDIR)$(docdir)
	$(INSTALL) -d $(DESTDIR)$(matdir)
	$(INSTALL) -d $(DESTDIR)$(jsdir)
	$(INSTALL) $(srcdir)/gennc $(DESTDIR)$(bindir)
	$(INSTALL) -m 644 $(srcdir)/gennc.1 $(DESTDIR)$(man1dir)
	$(INSTALL) -m 644 $(srcdir)/matlab/*.m $(DESTDIR)$(matdir)
	$(INSTALL) -m 644 $(srcdir)/gennc-common.js $(DESTDIR)$(jsdir)
	$(INSTALL) -m 644 $(XSLS) $(DESTDIR)$(xsldir)
	$(INSTALL) -m 644 schemas.xml $(DESTDIR)$(datadir)
	$(INSTALL) -m 644 ncdef.rnc $(DESTDIR)$(datadir)
#	$(INSTALL) -m 644 gennc-config-nxml-mode.el $(DESTDIR)$(datadir)
	$(INSTALL) -m 644 example.ncd.xml $(examples) $(DESTDIR)$(docdir)
	$(INSTALL) -m 644 README.txt $(DESTDIR)$(docdir)

clean:
	$(RM) gennc.1 $(examples)

test check:
	make -C test $@

.PHONY: test check
