Clarify the "make clean" caution'ing
[mediagoblin.git] / Makefile.in
1 # Makefile.in
2 #
3 # Copyright © 2012, 2013 Brandon Invergo <brandon@invergo.net>
4 #
5 # Copying and distribution of this file, with or without modification,
6 # are permitted in any medium without royalty provided the copyright
7 # notice and this notice are preserved. This file is offered as-is,
8 # without any warranty.
9
10 # List whatever files you want to include in your source distribution here.
11 # You can include whole directories but note that *everything* under that
12 # directory will be included
13 DISTFILES = PKG-INFO Makefile.in configure setup.py install-sh
14
15 DESTDIR =
16 VPATH = @srcdir@
17 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
18 PACKAGE_NAME = @PACKAGE_NAME@
19 PACKAGE_STRING = @PACKAGE_STRING@
20 PACKAGE_TARNAME = @PACKAGE_TARNAME@
21 PACKAGE_DISTNAME = ${PACKAGE_NAME}-${PACKAGE_VERSION}
22 PACKAGE_URL = @PACKAGE_URL@
23 PACKAGE_VERSION = @PACKAGE_VERSION@
24 PATH_SEPARATOR = @PATH_SEPARATOR@
25 PYTHON = @PYTHON@
26 VIRTUALENV = @VIRTUALENV@
27 SHELL = @SHELL@
28 MKDIR_P = @MKDIR_P@
29 INSTALL = @INSTALL@
30 INSTALL_PROGRAM = @INSTALL_PROGRAM@
31 INSTALL_DATA = @INSTALL_DATA@
32 INSTALL_SCRIPT = @INSTALL_SCRIPT@
33 docdir = @docdir@
34 dvidir = @dvidir@
35 exec_prefix = @exec_prefix@
36 htmldir = @htmldir@
37 includedir = @includedir@
38 infodir = @infodir@
39 prefix = @prefix@
40 srcdir = @srcdir@
41 abs_srcdir = @abs_srcdir@
42 datadir = @datadir@
43 datarootdir = @datarootdir@
44 pkgdatadir = $(datadir)/@PACKAGE_NAME@
45 pkgincludedir = $(includedir)/@PACKAGE_NAME@
46 PYTHONPATH = $(pythondir)$(PATH_SEPARATOR)$(DESTDIR)$(pythondir)
47 USE_PYTHON3 = @USE_PYTHON3@
48
49 EXTLIB_INSTALLS = extlib/jquery extlib/video.js extlib/leaflet extlib/tinymce
50
51 # pkgpythondir = @pkgpythondir@
52 # pkgpyexecdir = @pkgpyexecdir@
53 # pythondir = @pythondir@
54 # pyexecdir = @pyexecdir@
55 # SPHINXBUILD = @SPHINXBUILD@
56 # POSTGRES = @POSTGRES@
57
58
59 # Maybe add a virtualenv prefix to a command
60 ifneq ($(VIRTUALENV),no)
61 # virtualenv specified to be included by config (default)
62 # ... we only use virtualenv for local development, we don't
63 # auto-deploy to it.
64
65 maybe_venved = ./bin/
66 maybe_venved_python = ./bin/python
67 # Yes, build the virtualenv as a dependency!
68 maybe_venv_dep = virtualenv
69 # And to clean up!
70 maybe_venv_clean = clean-virtualenv
71
72 else
73 # --without-virtualenv must have been passed in... don't build
74 # a local virtualenv or use such commands
75 maybe_venved =
76 maybe_venved_python = $(PYTHON)
77 # No need for commands to build virtualenv as a dependency!
78 maybe_venv_dep =
79 # Nor to clean up!
80 maybe_venv_clean =
81 endif
82
83 .PHONY: all install uninstall distclean info install-html html \
84 install-pdf pdf install-dvi dvi install-ps ps clean dist check \
85 installdirs i18n virtualenv docs extlib
86
87 # update postgresql
88
89 all: develop
90
91 docs:
92 ifneq ($(VIRTUALENV),no)
93 source bin/activate && cd docs && make html
94 else
95 cd docs && make html
96 endif
97
98 # In the future we may provide more options than just npm/bower here
99 # eg, we may support guix updating.
100 extlib:
101 ./devtools/update_extlib.sh
102
103 develop: $(maybe_venv_dep) i18n mediagoblin.ini
104
105 # NEVER clobber a user's mediagoblin.ini once they've defined it
106 mediagoblin.ini:
107 cp --no-clobber mediagoblin.example.ini mediagoblin.ini
108
109 # base-configs: paste.ini mediagoblin.example.ini
110
111 install: installdirs
112 $(maybe_venved_python) $(srcdir)/setup.py install --prefix=$(DESTDIR)$(prefix)
113
114
115 # In the future, maybe we can compile the individual .po files here?
116 i18n: $(maybe_venv_dep)
117 ./devtools/compile_translations.sh
118
119
120 ifneq ($(VIRTUALENV),no)
121 ./bin/python:
122 rm -f ./bin/python
123 virtualenv --system-site-packages --python=$(PYTHON) .
124 ./bin/python setup.py develop --upgrade
125
126 virtualenv: bin/python extlib
127
128 clean-virtualenv:
129 rm -rf ./bin/
130 rm -rf ./lib/
131 rm -rf ./include/
132 endif
133
134 # setup.py doesn't (yet) support an uninstall command, so until it does, you
135 # must manually remove everything that was installed here. The following example
136 # should remove a basic package installed via setup.py, but please double- and
137 # triple-check it so that you don't remove something you shouldn't!
138 # Be sure to remove any extra files you install, such as binaries or documentation!
139 #
140 # uninstall:
141 # rm -rvf $(pkgpythondir)
142 # rm -v $(pythondir)/$(PACKAGE_DISTNAME)-*.egg-info
143 #
144
145
146 clean:
147 @echo "No rule to clean house, yet."
148 @echo "distclean works but might do more than you want. :)"
149
150
151 # We don't know what this does yet.
152 # Originally:
153 ## Just use the usual setup.py clean command
154 #clean:
155 # $(maybe_venved_python) setup.py clean
156
157
158 # It's not obvious to me whether the virtualenv/bower/npm things should be
159 # auto-cleaned as part of distclean. I'm leaning towards "yes" for now but
160 # I'm not really happy about that.
161
162 # Clean up the output of configure
163 distclean: $(maybe_venv_clean)
164 rm -vf $(srcdir)/config.log
165 rm -vf $(srcdir)/config.status
166 rm -rvf $(srcdir)/autom4te.cache
167 rm -vf $(srcdir)/aclocal.m4
168 rm -rf $(EXTLIB_INSTALLS)
169 rm -rf node_modules
170 rm -vf $(srcdir)/Makefile
171
172
173 ###########################################################################
174 # These things aren't really tested / supported yet.
175 ###########################################################################
176
177
178
179 # You can either use the setup.py sdist command or you can roll your own here
180 dist: extlib
181 # $(maybe_venved_python) setup.py sdist
182 mkdir $(PACKAGE_DISTNAME)
183 cp -r $(DISTFILES) $(PACKAGE_DISTNAME)
184 tar -czf $(PACKAGE_DISTNAME).tar.gz $(PACKAGE_DISTNAME)
185 rm -rf $(PACKAGE_DISTNAME)
186
187 # Use the setup.py check command
188 check:
189 $(maybe_venved_python) setup.py check
190
191 # setup.py might complain if a directory doesn't exist so just in case, make the directory
192 # here
193 installdirs:
194 $(MKDIR_P) $(DESTDIR)$(prefix)
195
196 # # Set up PostgreSQL
197 # postgresql:
198 # sudo -u $(POSTGRES) createuser mediagoblin
199 # sudo -u $(POSTGRES) createdb -E UNICODE -O mediagoblin mediagoblin
200
201 # update:
202 # ifneq ($(VIRTUALENV),no)
203 # $(prefix)/bin/python $(srcdir)/setup.py develop --prefix=$(prefix) --upgrade
204 # else
205 # $(PYTHON) $(srcdir)/setup.py develop --prefix=$(prefix) --upgrade
206 # endif
207 # $(prefix)/bin/gmg dbupdate
208
209 ######################
210 # Needs to be updated?
211 ######################
212
213 # The following show how to install documentation. In this example,
214 # docs are built from a separate Makefile contained in the docs
215 # directory which uses the SPHINXBUILD variable to store the location
216 # of the sphinx-build (Python doc tool) binary to use.
217
218 $(DESTDIR)$(infodir)/mediagoblin.info: docs/build/texinfo/mediagoblin.info
219 $(POST_INSTALL)
220 $(INSTALL_DATA) @< $(DESTDIR)$@
221 if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then
222 install-info --dir-file=$(DESTDIR)$(infodir)/dir \
223 $(DESTDIR)$(infodir)/foo.info;
224 else true; fi
225
226 info: docs/build/texinfo/mediagoblin.info
227
228 docs/build/texinfo/mediagoblin.info: $(wildcard docs/source/*)
229 ifneq ($(SPHINXBUILD),no)
230 $(MAKE) -C docs info SPHINXBUILD=$(SPHINXBUILD)
231 endif
232
233
234 install-html: html installdirs
235 $(INSTALL_DATA) docs/build/html/* $(DESTDIR)$(htmldir)
236
237 html: docs/build/html/index.html
238
239 docs/build/html/index.html: $(wildcard $(srcdir)/docs/source/*)
240 ifneq ($(SPHINXBUILD),no)
241 $(MAKE) -C docs html SPHINXBUILD=$(SPHINXBUILD)
242 endif
243
244
245 install-pdf: pdf installdirs
246 $(INSTALL_DATA) docs/build/latex/mediagoblin.pdf $(DESTDIR)$(pdfdir)
247
248 pdf: docs/build/latex/mediagoblin.pdf
249
250 docs/build/latex/mediagoblin.pdf: $(wildcard $(srcdir)/docs/source/*)
251 ifneq ($(SPHINXBUILD),no)
252 $(MAKE) -C docs latexpdf SPHINXBUILD=$(SPHINXBUILD)
253 endif
254
255
256 # Targets that don't seem supported?
257
258 install-dvi:
259
260 dvi:
261
262 install-ps:
263
264 ps:
265
266