.POSIX: DATE = 1970-01-01 VERSION = 0.1.0 NAME = papo NAME_UC = $(NAME) URL = papo.im LIST = list@$(URL) TRANSLATIONS = ## Installation prefix. Defaults to "/usr". PREFIX = /usr BINDIR = $(PREFIX)/bin LIBDIR = $(PREFIX)/lib JSLIBDIR = $(LIBDIR)/node_modules/$(NAME) SHAREDIR = $(PREFIX)/share LOCALEDIR = $(SHAREDIR)/locale MANDIR = $(SHAREDIR)/man ## Where to store the installation. Empty by default. DESTDIR = JSIMPL = node .SUFFIXES: .SUFFIXES: .in .in: sed \ -e 's:@VERSION@:$(VERSION):g' \ -e 's:@DATE@:$(DATE):g' \ -e 's:@NAME@:$(NAME):g' \ -e 's:@LIST@:$(LIST):g' \ -e 's:@URL@:$(URL):g' \ < $< > $@ if [ -x $< ]; then chmod +x $@; fi manpages.en.in = \ doc/$(NAME).README.en.7.in \ doc/$(NAME).CHANGELOG.en.7.in \ doc/$(NAME).TODOs.en.7.in \ doc/$(NAME).en.1.in \ doc/$(NAME).tutorial.en.7.in \ doc/$(NAME).recipes.en.7.in \ doc/$(NAME).why.en.7.in manpages.in = $(manpages.en.in) manpages = $(manpages.in:.in=) sources.js = \ src/api.js \ src/cli.js \ src/utils.js \ tests.js = \ tests/js/compat.js \ tests/js/utils.js \ sources = \ $(sources.js) \ derived-assets = \ $(manpages) \ ## Default target. Builds all artifacts required for testing ## and installation. all: $(derived-assets) $(manpages): Makefile .SUFFIXES: .js .js-t tests.js-t = $(tests.js:.js=.js-t) $(tests.js-t): $(JSIMPL) tests/runner.js $*.js check-t: $(tests.js-t) assert-tests = \ tests/assert-deps.sh \ $(assert-tests): ALWAYS sh $@ check-asserts: $(assert-tests) ## Run all tests. Each test suite is isolated, so that a parallel ## build can run tests at the same time. The required artifacts ## are created if missing. check: check-t check-asserts ## Remove *all* derived artifacts produced during the build. ## A dedicated test asserts that this is always true. clean: rm -rf $(derived-assets) ## Installs into $(DESTDIR)$(PREFIX). Its dependency target ## ensures that all installable artifacts are crafted beforehand. install: all mkdir -p \ '$(DESTDIR)$(BINDIR)' \ '$(DESTDIR)$(JSLIBDIR)'/src cp package.json '$(DESTDIR)$(JSLIBDIR)' cp src/*.js '$(DESTDIR)$(JSLIBDIR)'/src ln -frs '$(DESTDIR)$(JSLIBDIR)'/src/cli.js '$(DESTDIR)$(BINDIR)'/$(NAME) sh tools/manpages.sh -ip '$(DESTDIR)$(MANDIR)' $(manpages) ## Uninstalls from $(DESTDIR)$(PREFIX). This is a perfect mirror ## of the "install" target, and removes *all* that was installed. ## A dedicated test asserts that this is always true. uninstall: rm -f \ '$(DESTDIR)$(BINDIR)'/$(NAME) rm -rf '$(DESTDIR)$(JSLIBDIR)' sh tools/manpages.sh -up '$(DESTDIR)$(MANDIR)' $(manpages) run-ircd: $(JSIMPL) src/server/web.js server -l http://localhost:3000 run-web: $(JSIMPL) src/server/web.js server -l http://localhost:3003 ## Run the web and IRC server locally run: $(MAKE) run-ircd & $(MAKE) run-web & wait MAKEFILE = Makefile ## Show this help. help: cat $(MAKEFILE) | sh tools/makehelp.sh ALWAYS: