
Tries to simplify a lot of the configure code. This is mostly because I found what I expected the previous configure setup to do wasn't quite what it was doing. Also supports a --with-python3 option.
221 lines
5.9 KiB
Makefile
221 lines
5.9 KiB
Makefile
# Makefile.in
|
|
#
|
|
# Copyright © 2012, 2013 Brandon Invergo <brandon@invergo.net>
|
|
#
|
|
# Copying and distribution of this file, with or without modification,
|
|
# are permitted in any medium without royalty provided the copyright
|
|
# notice and this notice are preserved. This file is offered as-is,
|
|
# without any warranty.
|
|
|
|
# List whatever files you want to include in your source distribution here.
|
|
# You can include whole directories but note that *everything* under that
|
|
# directory will be included
|
|
DISTFILES = PKG-INFO Makefile.in configure setup.py install-sh
|
|
|
|
DESTDIR =
|
|
VPATH = @srcdir@
|
|
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
|
|
PACKAGE_NAME = @PACKAGE_NAME@
|
|
PACKAGE_STRING = @PACKAGE_STRING@
|
|
PACKAGE_TARNAME = @PACKAGE_TARNAME@
|
|
PACKAGE_DISTNAME = ${PACKAGE_NAME}-${PACKAGE_VERSION}
|
|
PACKAGE_URL = @PACKAGE_URL@
|
|
PACKAGE_VERSION = @PACKAGE_VERSION@
|
|
PATH_SEPARATOR = @PATH_SEPARATOR@
|
|
PYTHON = @PYTHON@
|
|
VIRTUALENV = @VIRTUALENV@
|
|
SHELL = @SHELL@
|
|
MKDIR_P = @MKDIR_P@
|
|
INSTALL = @INSTALL@
|
|
INSTALL_PROGRAM = @INSTALL_PROGRAM@
|
|
INSTALL_DATA = @INSTALL_DATA@
|
|
INSTALL_SCRIPT = @INSTALL_SCRIPT@
|
|
docdir = @docdir@
|
|
dvidir = @dvidir@
|
|
exec_prefix = @exec_prefix@
|
|
htmldir = @htmldir@
|
|
includedir = @includedir@
|
|
infodir = @infodir@
|
|
prefix = @prefix@
|
|
srcdir = @srcdir@
|
|
abs_srcdir = @abs_srcdir@
|
|
datadir = @datadir@
|
|
datarootdir = @datarootdir@
|
|
pkgdatadir = $(datadir)/@PACKAGE_NAME@
|
|
pkgincludedir = $(includedir)/@PACKAGE_NAME@
|
|
PYTHONPATH = $(pythondir)$(PATH_SEPARATOR)$(DESTDIR)$(pythondir)
|
|
|
|
# pkgpythondir = @pkgpythondir@
|
|
# pkgpyexecdir = @pkgpyexecdir@
|
|
# pythondir = @pythondir@
|
|
# pyexecdir = @pyexecdir@
|
|
# SPHINXBUILD = @SPHINXBUILD@
|
|
# POSTGRES = @POSTGRES@
|
|
|
|
|
|
# Maybe add a virtualenv prefix to a command
|
|
ifneq ($(VIRTUALENV),no)
|
|
# virtualenv specified to be included by config (default)
|
|
# ... we only use virtualenv for local development, we don't
|
|
# auto-deploy to it.
|
|
|
|
maybe_venved = ./bin/
|
|
maybe_venved_python = ./bin/python
|
|
# Yes, build the virtualenv as a dependency!
|
|
maybe_venv_dep = ./bin/python
|
|
|
|
else
|
|
# --without-virtualenv must have been passed in... don't build
|
|
# a local virtualenv or use such commands
|
|
maybe_venved =
|
|
maybe_venved_python = $(PYTHON)
|
|
# No need for commands to build virtualenv as a dependency!
|
|
maybe_venv_dep =
|
|
endif
|
|
|
|
|
|
|
|
.PHONY: all install uninstall distclean info install-html html \
|
|
install-pdf pdf install-dvi dvi install-ps ps clean dist check \
|
|
installdirs i18n virtualenv
|
|
# update postgresql
|
|
|
|
all: develop
|
|
|
|
develop: $(maybe_venv_dep) i18n
|
|
echo "nothin yet"
|
|
|
|
# base-configs: paste.ini mediagoblin.example.ini
|
|
|
|
install: installdirs
|
|
$(maybe_venved_python) $(srcdir)/setup.py install --prefix=$(DESTDIR)$(prefix)
|
|
|
|
|
|
i18n: $(maybe_venv_dep)
|
|
$(maybe_venved)pybabel compile -D mediagoblin -d mediagoblin/i18n/
|
|
|
|
|
|
ifneq ($(VIRTUALENV),no)
|
|
./bin/python:
|
|
rm -f ./bin/python
|
|
virtualenv --system-site-packages .
|
|
./bin/python setup.py develop --upgrade
|
|
|
|
virtualenv: bin/python
|
|
|
|
clean-virtualenv:
|
|
rm -rf ./bin/
|
|
rm -rf ./lib/
|
|
endif
|
|
|
|
# setup.py doesn't (yet) support an uninstall command, so until it does, you
|
|
# must manually remove everything that was installed here. The following example
|
|
# should remove a basic package installed via setup.py, but please double- and
|
|
# triple-check it so that you don't remove something you shouldn't!
|
|
# Be sure to remove any extra files you install, such as binaries or documentation!
|
|
#
|
|
# uninstall:
|
|
# rm -rvf $(pkgpythondir)
|
|
# rm -v $(pythondir)/$(PACKAGE_DISTNAME)-*.egg-info
|
|
#
|
|
|
|
# Just use the usual setup.py clean command
|
|
clean:
|
|
$(maybe_venved_python) setup.py clean
|
|
|
|
|
|
# Clean up the output of configure
|
|
distclean:
|
|
rm -v $(srcdir)/config.log
|
|
rm -v $(srcdir)/config.status
|
|
rm -rvf $(srcdir)/autom4te.cache
|
|
rm -v $(srcdir)/aclocal.m4
|
|
rm -v $(srcdir)/Makefile
|
|
rm -v $(srcdir)/env
|
|
|
|
|
|
# You can either use the setup.py sdist command or you can roll your own here
|
|
dist:
|
|
# $(maybe_venved_python) setup.py sdist
|
|
mkdir $(PACKAGE_DISTNAME)
|
|
cp -r $(DISTFILES) $(PACKAGE_DISTNAME)
|
|
tar -czf $(PACKAGE_DISTNAME).tar.gz $(PACKAGE_DISTNAME)
|
|
rm -rf $(PACKAGE_DISTNAME)
|
|
|
|
# Use the setup.py check command
|
|
check:
|
|
$(maybe_venved_python) setup.py check
|
|
|
|
# setup.py might complain if a directory doesn't exist so just in case, make the directory
|
|
# here
|
|
installdirs:
|
|
$(MKDIR_P) $(DESTDIR)$(prefix)
|
|
|
|
# # Set up PostgreSQL
|
|
# postgresql:
|
|
# sudo -u $(POSTGRES) createuser mediagoblin
|
|
# sudo -u $(POSTGRES) createdb -E UNICODE -O mediagoblin mediagoblin
|
|
|
|
# update:
|
|
# ifneq ($(VIRTUALENV),no)
|
|
# $(prefix)/bin/python $(srcdir)/setup.py develop --prefix=$(prefix) --upgrade
|
|
# else
|
|
# $(PYTHON) $(srcdir)/setup.py develop --prefix=$(prefix) --upgrade
|
|
# endif
|
|
# $(prefix)/bin/gmg dbupdate
|
|
|
|
# The following show how to install documentation. In this example,
|
|
# docs are built from a separate Makefile contained in the docs
|
|
# directory which uses the SPHINXBUILD variable to store the location
|
|
# of the sphinx-build (Python doc tool) binary to use.
|
|
|
|
$(DESTDIR)$(infodir)/mediagoblin.info: docs/build/texinfo/mediagoblin.info
|
|
$(POST_INSTALL)
|
|
$(INSTALL_DATA) @< $(DESTDIR)$@
|
|
if $(SHELL) -c 'install-info --version' >/dev/null 2>&1; then
|
|
install-info --dir-file=$(DESTDIR)$(infodir)/dir \
|
|
$(DESTDIR)$(infodir)/foo.info;
|
|
else true; fi
|
|
|
|
info: docs/build/texinfo/mediagoblin.info
|
|
|
|
docs/build/texinfo/mediagoblin.info: $(wildcard docs/source/*)
|
|
ifneq ($(SPHINXBUILD),no)
|
|
$(MAKE) -C docs info SPHINXBUILD=$(SPHINXBUILD)
|
|
endif
|
|
|
|
|
|
install-html: html installdirs
|
|
$(INSTALL_DATA) docs/build/html/* $(DESTDIR)$(htmldir)
|
|
|
|
html: docs/build/html/index.html
|
|
|
|
docs/build/html/index.html: $(wildcard $(srcdir)/docs/source/*)
|
|
ifneq ($(SPHINXBUILD),no)
|
|
$(MAKE) -C docs html SPHINXBUILD=$(SPHINXBUILD)
|
|
endif
|
|
|
|
|
|
install-pdf: pdf installdirs
|
|
$(INSTALL_DATA) docs/build/latex/mediagoblin.pdf $(DESTDIR)$(pdfdir)
|
|
|
|
pdf: docs/build/latex/mediagoblin.pdf
|
|
|
|
docs/build/latex/mediagoblin.pdf: $(wildcard $(srcdir)/docs/source/*)
|
|
ifneq ($(SPHINXBUILD),no)
|
|
$(MAKE) -C docs latexpdf SPHINXBUILD=$(SPHINXBUILD)
|
|
endif
|
|
|
|
|
|
# Targets that don't seem supported?
|
|
|
|
install-dvi:
|
|
|
|
dvi:
|
|
|
|
install-ps:
|
|
|
|
ps:
|
|
|
|
|