/neatx/Makefile.am

http://neatx.googlecode.com/ · Makefile · 248 lines · 193 code · 44 blank · 11 comment · 15 complexity · 52dbedbe2cc45c0da6c6ec92ae4e784f MD5 · raw file

  1. # Neatx makefile
  2. # - Indent with tabs only.
  3. # - Keep files sorted; one line per file.
  4. # - Directories in lib/ must have their own *dir variable.
  5. # - All directories must be listed in DIRS.
  6. # - Use autogen.sh to generate Makefile.in and configure script.
  7. # Automake doesn't export these variables before version 1.10.
  8. abs_top_builddir = @abs_top_builddir@
  9. abs_top_srcdir = @abs_top_srcdir@
  10. ACLOCAL_AMFLAGS = -I autotools
  11. REPLACE_VARS_SED = autotools/replace_vars.sed
  12. GEN_LOG_WRAPPER = $(top_srcdir)/autotools/gen-log-wrapper
  13. appdir = $(pkgpythondir)/app
  14. docdir = $(datadir)/doc/$(PACKAGE)
  15. AM_CFLAGS = -Wall -Werror -DPKGLIBDIR=\"$(pkglibdir)\"
  16. DIRS = \
  17. autotools \
  18. doc \
  19. extras \
  20. lib \
  21. lib/app \
  22. src \
  23. test \
  24. test/python
  25. CLEANFILES = \
  26. stamp-directories \
  27. extras/upload \
  28. lib/*.py[co] \
  29. lib/app/*.py[co] \
  30. test/python/*.py[co] \
  31. $(REPLACE_VARS_SED) \
  32. $(nodist_pkgpython_PYTHON) \
  33. $(PYTHON_BOOTSTRAP) \
  34. $(LOG_WRAPPER)
  35. DISTCLEANFILES = \
  36. $(dochtml)
  37. CLEANDIRS = \
  38. doc/api
  39. nodist_pkgpython_PYTHON = \
  40. lib/_autoconf.py
  41. pkgpython_PYTHON = \
  42. lib/__init__.py \
  43. lib/agent.py \
  44. lib/auth.py \
  45. lib/cli.py \
  46. lib/config.py \
  47. lib/constants.py \
  48. lib/daemon.py \
  49. lib/errors.py \
  50. lib/node.py \
  51. lib/protocol.py \
  52. lib/serializer.py \
  53. lib/session.py \
  54. lib/utils.py
  55. app_PYTHON = \
  56. lib/app/__init__.py \
  57. lib/app/nxdialog.py \
  58. lib/app/nxnode.py \
  59. lib/app/nxserver.py \
  60. lib/app/nxserver_login.py
  61. dist_pkglib_SCRIPTS = \
  62. src/ttysetup
  63. nodist_pkglib_SCRIPTS = \
  64. $(LOG_WRAPPER) \
  65. $(PYTHON_BOOTSTRAP)
  66. pkglib_PROGRAMS = \
  67. src/fdcopy
  68. dist_pkgdata_DATA = \
  69. extras/authorized_keys.nomachine
  70. docrst = \
  71. doc/design.rst
  72. dochtml = $(patsubst %.rst,%.html,$(docrst))
  73. doc_DATA = $(dochtml)
  74. dist_doc_DATA = \
  75. doc/neatx.conf.example \
  76. doc/processes.txt
  77. PYTHON_BOOTSTRAP = \
  78. src/nxdialog \
  79. src/nxnode \
  80. src/nxserver \
  81. src/nxserver-login
  82. LOG_WRAPPER = \
  83. src/nxnode-wrapper \
  84. src/nxserver-login-wrapper
  85. EXTRA_DIST = \
  86. pylintrc \
  87. autotools/gen-log-wrapper \
  88. doc/DEVNOTES \
  89. extras/upload.in \
  90. extras/rpm/neatx.spec \
  91. $(docrst) \
  92. $(dist_TESTS) \
  93. $(TEST_FILES)
  94. TEST_FILES = \
  95. test/python/mocks.py
  96. dist_TESTS = \
  97. test/python/neatx.app.nxserver_login_test.py \
  98. test/python/neatx.app.nxserver_test.py \
  99. test/python/neatx.auth_test.py \
  100. test/python/neatx.daemon_test.py \
  101. test/python/neatx.protocol_test.py \
  102. test/python/neatx.session_test.py \
  103. test/python/neatx.utils_test.py
  104. nodist_TESTS =
  105. TESTS = $(dist_TESTS) $(nodist_TESTS)
  106. TESTS_ENVIRONMENT = PYTHONPATH=.:$(top_builddir)
  107. all-local: stamp-directories lib/_autoconf.py extras/upload
  108. clean-local:
  109. -test -z "$(CLEANDIRS)" || rm -rf $(CLEANDIRS)
  110. extras/upload: extras/upload.in stamp-directories $(REPLACE_VARS_SED)
  111. sed -f $(REPLACE_VARS_SED) < $< > $@
  112. chmod u+x $@
  113. $(TESTS): neatx srclinks lib/_autoconf.py src/fdcopy src/ttysetup
  114. doc/%.html: doc/%.rst
  115. @if test -z "$(RST2HTML)"; then \
  116. echo "rst2html not found during configure, can't build docs"; \
  117. exit 1; \
  118. else \
  119. $(RST2HTML) $< $@; \
  120. fi
  121. lib/_autoconf.py: Makefile stamp-directories
  122. set -e; \
  123. { echo '# This file is automatically generated, do not edit!'; \
  124. echo '#'; \
  125. echo ''; \
  126. echo '"""Build-time configuration.'; \
  127. echo '';\
  128. echo 'This file is autogenerated by the build process.'; \
  129. echo 'For any changes you need to re-run ./configure and'; \
  130. echo 'not edit by hand.'; \
  131. echo ''; \
  132. echo '"""'; \
  133. echo ''; \
  134. echo "PACKAGE_VERSION = '$(PACKAGE_VERSION)'"; \
  135. echo "VERSION_MAJOR = '$(VERSION_MAJOR)'"; \
  136. echo "VERSION_MINOR = '$(VERSION_MINOR)'"; \
  137. echo "VERSION_REVISION = '$(VERSION_REVISION)'"; \
  138. echo "VERSION_SUFFIX = '$(VERSION_SUFFIX)'"; \
  139. echo "VERSION_FULL = '$(VERSION_FULL)'"; \
  140. echo "LOCALSTATEDIR = '$(localstatedir)'"; \
  141. echo "SYSCONFDIR = '$(sysconfdir)'"; \
  142. echo "PKGLIBDIR = '$(pkglibdir)'"; \
  143. } > $@
  144. $(REPLACE_VARS_SED): Makefile stamp-directories
  145. set -e; \
  146. { echo 's#@PREFIX@#$(prefix)#g'; \
  147. echo 's#@SYSCONFDIR@#$(sysconfdir)#g'; \
  148. echo 's#@LOCALSTATEDIR@#$(localstatedir)#g'; \
  149. echo 's#@SBINDIR@#$(sbindir)#g'; \
  150. echo 's#@PKGLIBDIR@#$(pkglibdir)#g'; \
  151. echo 's#@PKGPYTHONDIR@#$(pkgpythondir)#g'; \
  152. } > $@
  153. $(PYTHON_BOOTSTRAP): Makefile stamp-directories
  154. set -e; \
  155. module=`basename $@ | tr - _`; \
  156. { echo "#!$(PYTHON)"; \
  157. echo '# This file is automatically generated, do not edit!'; \
  158. echo "from neatx.app import $$module"; \
  159. echo "$$module.Main()"; \
  160. } > $@ || rm -f $@
  161. chmod u+x $@
  162. $(LOG_WRAPPER): Makefile stamp-directories $(GEN_LOG_WRAPPER)
  163. set -e; \
  164. progname=`basename $@ | sed -e 's/-wrapper//'`; \
  165. $(GEN_LOG_WRAPPER) "$(pkglibdir)/$$progname" "$(DESTDIR)$(pythondir)" > $@ || rm -f $@
  166. chmod u+x $@
  167. # We need to create symlinks because "make distcheck" will not install Python
  168. # files when building.
  169. srclinks: stamp-directories
  170. set -e; \
  171. for i in $(pkgpython_PYTHON) $(app_PYTHON) $(dist_pkglib_SCRIPTS); do \
  172. if test ! -f $$i -a -f $(abs_top_srcdir)/$$i; then \
  173. $(LN_S) $(abs_top_srcdir)/$$i $$i; \
  174. fi; \
  175. done
  176. neatx:
  177. cd $(top_builddir) && test -h "$@" || { rm -f $@ && $(LN_S) lib $@; }
  178. # a dist hook rule for catching revision control directories
  179. distcheck-hook:
  180. if find $(top_distdir) | grep -F -e .svn -e .git; then \
  181. echo "Found revision control files in final archive" 1>&2 ; \
  182. exit 1; \
  183. fi
  184. install-exec-local:
  185. @mkdir_p@ "$(DESTDIR)${localstatedir}/lib/neatx" \
  186. "$(DESTDIR)${localstatedir}/lib/neatx/sessions"
  187. @chmod 1777 "$(DESTDIR)${localstatedir}/lib/neatx/sessions"
  188. stamp-directories: Makefile
  189. @mkdir_p@ $(DIRS)
  190. touch $@
  191. .PHONY: apidoc
  192. apidoc: all
  193. mkdir -p doc/api
  194. TMPDIR=`mktemp -d ` && { \
  195. cp -r lib $$TMPDIR && \
  196. ( \
  197. CDIR=`pwd` && \
  198. cd $$TMPDIR && \
  199. mv lib neatx && \
  200. epydoc -v --conf $$CDIR/epydoc.conf -o $$CDIR/doc/api \
  201. ); \
  202. rm -rf $$TMPDIR ; \
  203. }
  204. # vim: set noet :