3 # Copyright © 2012, 2013 Brandon Invergo <brandon@invergo.net>
4 # Copyright © 2014, 2015 Christopher Allan Webber <cwebber@dustycloud.org>
6 # Copying and distribution of this file, with or without modification,
7 # are permitted in any medium without royalty provided the copyright
8 # notice and this notice are preserved. This file is offered as-is,
9 # without any warranty.
11 # List whatever files you want to include in your source distribution here.
12 # You can include whole directories but note that *everything* under that
13 # directory will be included
14 DISTFILES
= PKG-INFO Makefile.in configure setup.py install-sh
18 PACKAGE_BUGREPORT
= @PACKAGE_BUGREPORT@
19 PACKAGE_NAME
= @PACKAGE_NAME@
20 PACKAGE_STRING
= @PACKAGE_STRING@
21 PACKAGE_TARNAME
= @PACKAGE_TARNAME@
22 PACKAGE_DISTNAME
= ${PACKAGE_NAME}-${PACKAGE_VERSION}
23 PACKAGE_URL
= @PACKAGE_URL@
24 PACKAGE_VERSION
= @PACKAGE_VERSION@
25 PATH_SEPARATOR
= @PATH_SEPARATOR@
27 VIRTUALENV
= @VIRTUALENV@
31 INSTALL_PROGRAM
= @INSTALL_PROGRAM@
32 INSTALL_DATA
= @INSTALL_DATA@
33 INSTALL_SCRIPT
= @INSTALL_SCRIPT@
36 exec_prefix = @
exec_prefix@
38 includedir = @
includedir@
42 abs_srcdir
= @abs_srcdir@
44 datarootdir
= @datarootdir@
45 pkgdatadir
= $(datadir)/@PACKAGE_NAME@
46 pkgincludedir
= $(includedir)/@PACKAGE_NAME@
47 PYTHONPATH
= $(pythondir
)$(PATH_SEPARATOR
)$(DESTDIR
)$(pythondir
)
48 USE_PYTHON3
= @USE_PYTHON3@
50 EXTLIB_INSTALLS
= extlib
/jquery extlib
/video.js extlib
/leaflet extlib
/tinymce
52 # pkgpythondir = @pkgpythondir@
53 # pkgpyexecdir = @pkgpyexecdir@
54 # pythondir = @pythondir@
55 # pyexecdir = @pyexecdir@
56 # SPHINXBUILD = @SPHINXBUILD@
57 # POSTGRES = @POSTGRES@
60 # Maybe add a virtualenv prefix to a command
61 ifneq ($(VIRTUALENV
),no
)
62 # virtualenv specified to be included by config (default)
63 # ... we only use virtualenv for local development, we don't
67 maybe_venved_python
= .
/bin
/python
68 # Yes, build the virtualenv as a dependency!
69 maybe_venv_dep
= virtualenv
71 maybe_venv_clean
= clean-virtualenv
74 # --without-virtualenv must have been passed in... don't build
75 # a local virtualenv or use such commands
77 maybe_venved_python
= $(PYTHON
)
78 # No need for commands to build virtualenv as a dependency!
84 .PHONY
: all install uninstall distclean info install-html html \
85 install-pdf pdf install-dvi
dvi install-ps ps
clean dist check \
86 installdirs i18n virtualenv docs extlib
93 ifneq ($(VIRTUALENV
),no
)
94 source bin
/activate
&& cd docs
&& make html
99 # In the future we may provide more options than just npm/bower here
100 # eg, we may support guix updating.
102 .
/devtools
/update_extlib.sh
104 develop
: $(maybe_venv_dep
) i18n mediagoblin.ini
106 # NEVER clobber a user's mediagoblin.ini once they've defined it
108 cp
-n mediagoblin.example.ini mediagoblin.ini
110 # base-configs: paste.ini mediagoblin.example.ini
113 $(maybe_venved_python
) $(srcdir)/setup.py
install --prefix=$(DESTDIR
)$(prefix)
116 # In the future, maybe we can compile the individual .po files here?
117 i18n
: $(maybe_venv_dep
)
118 .
/devtools
/compile_translations.sh
121 ifneq ($(VIRTUALENV
),no
)
124 ${VIRTUALENV} --system-site-packages
--python
=$(PYTHON
) .
125 .
/bin
/python setup.py develop
--upgrade
127 virtualenv
: bin
/python extlib
135 # setup.py doesn't (yet) support an uninstall command, so until it does, you
136 # must manually remove everything that was installed here. The following example
137 # should remove a basic package installed via setup.py, but please double- and
138 # triple-check it so that you don't remove something you shouldn't!
139 # Be sure to remove any extra files you install, such as binaries or documentation!
142 # rm -rvf $(pkgpythondir)
143 # rm -v $(pythondir)/$(PACKAGE_DISTNAME)-*.egg-info
146 # We don't know what this does yet.
148 ## Just use the usual setup.py clean command
150 # $(maybe_venved_python) setup.py clean
152 @echo
"No rule to clean house, yet."
153 @echo
"distclean works but might do more than you want. :)"
156 # It's not obvious to me whether the virtualenv/bower/npm things should be
157 # auto-cleaned as part of distclean. I'm leaning towards "yes" for now but
158 # I'm not really happy about that.
160 # Clean up the output of configure
161 distclean: $(maybe_venv_clean
)
162 rm -vf
$(srcdir)/config.log
163 rm -vf
$(srcdir)/config.status
164 rm -rvf
$(srcdir)/autom4te.cache
165 rm -vf
$(srcdir)/aclocal.m4
166 rm -rf
$(EXTLIB_INSTALLS
)
168 rm -vf
$(srcdir)/Makefile
171 ###########################################################################
172 # These things aren't really tested / supported yet.
173 ###########################################################################
177 # You can either use the setup.py sdist command or you can roll your own here
179 # $(maybe_venved_python) setup.py sdist
180 mkdir
$(PACKAGE_DISTNAME
)
181 cp
-r
$(DISTFILES
) $(PACKAGE_DISTNAME
)
182 tar -czf
$(PACKAGE_DISTNAME
).
tar.gz
$(PACKAGE_DISTNAME
)
183 rm -rf
$(PACKAGE_DISTNAME
)
185 # Use the setup.py check command
189 # setup.py might complain if a directory doesn't exist so just in case, make the directory
192 $(MKDIR_P
) $(DESTDIR
)$(prefix)
194 ######################
195 # Needs to be updated?
196 ######################
198 # The following show how to install documentation. In this example,
199 # docs are built from a separate Makefile contained in the docs
200 # directory which uses the SPHINXBUILD variable to store the location
201 # of the sphinx-build (Python doc tool) binary to use.
203 $(DESTDIR
)$(infodir)/mediagoblin.
info: docs
/build
/texinfo
/mediagoblin.
info
205 $(INSTALL_DATA
) @
< $(DESTDIR
)$@
206 if
$(SHELL
) -c
'install-info --version' >/dev
/null
2>&1; then
207 install-info
--dir-file
=$(DESTDIR
)$(infodir)/dir \
208 $(DESTDIR
)$(infodir)/foo.
info;
211 info: docs
/build
/texinfo
/mediagoblin.
info
213 docs
/build
/texinfo
/mediagoblin.
info: $(wildcard docs
/source
/*)
214 ifneq ($(VIRTUALENV
),no
)
215 source bin
/activate
&& cd docs
&& make
info
221 install-html
: html
installdirs
222 $(INSTALL_DATA
) docs
/build
/html
/* $(DESTDIR
)$(htmldir
)