Continuing to iterate toward the right autoconf/make solution

This commit is contained in:
Christopher Allan Webber 2014-10-03 22:57:24 -05:00
parent a9dc855ada
commit 07778a69da
3 changed files with 75 additions and 60 deletions

View File

@ -51,51 +51,54 @@ pkgpythondir = @pkgpythondir@
pkgpyexecdir = @pkgpyexecdir@ pkgpyexecdir = @pkgpyexecdir@
PYTHONPATH = $(pythondir)$(PATH_SEPARATOR)$(DESTDIR)$(pythondir) PYTHONPATH = $(pythondir)$(PATH_SEPARATOR)$(DESTDIR)$(pythondir)
# 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 all: develop
.PHONY: all install develop uninstall distclean info install-html html \ develop:
install-pdf pdf install-dvi dvi install-ps ps clean dist check \ echo "nothin yet"
installdirs postgresql update
# Since installing to a virtualenv is all the rage these days, support
# it here. If the VIRTUALENV variable is set to anything other than
# "no", set up a new virtualenv and install there, otherwise install
# as usual from setup.py
install: installdirs install: installdirs
$(NORMAL_INSTALL) $(maybe_venved_python) $(srcdir)/setup.py install --prefix=$(DESTDIR)$(prefix)
ifneq ($(VIRTUALENV),no)
$(VIRTUALENV) $(VIRTUALENV_FLAGS) --python=$(PYTHON) \
--system-site-packages $(DESTDIR)$(prefix) || \
$(VIRTUALENV) $(DESTDIR)$(prefix)
$(DESTDIR)$(prefix)/bin/python $(srcdir)/setup.py install \
--prefix=$(DESTDIR)$(prefix)
else
$(PYTHON) $(srcdir)/setup.py install --prefix=$(DESTDIR)$(prefix)
endif
# if [[ $(DESTDIR)$(prefix) != $(abs_srcdir) ]]; then \
# $(INSTALL_DATA) $(srcdir)/Makefile $(DESTDIR)$(prefix)/Makefile; \
# $(INSTALL_DATA) $(srcdir)/lazycelery.sh $(DESTDIR)$(prefix)/lazycelery.sh; \
# $(INSTALL_DATA) $(srcdir)/lazyserver.sh $(DESTDIR)$(prefix)/lazyserver.sh; \
# fi
# The same as "install", except use the "develop" setup.py target
develop: installdirs
$(NORMAL_INSTALL)
ifneq ($(VIRTUALENV),no)
$(VIRTUALENV) $(VIRTUALENV_FLAGS) --python=$(PYTHON) \
--system-site-packages $(DESTDIR)$(prefix) || \
$(VIRTUALENV) $(DESTDIR)$(prefix)
$(DESTDIR)$(prefix)/bin/python $(srcdir)/setup.py develop \
--prefix=$(DESTDIR)$(prefix)
else
$(PYTHON) $(srcdir)/setup.py develop --prefix=$(DESTDIR)$(prefix)
endif
if [ "$(DESTDIR)$(prefix)" != "$(abs_srcdir)" ]; then \
$(INSTALL_DATA) $(srcdir)/Makefile $(DESTDIR)$(prefix)/Makefile; \
$(INSTALL_DATA) $(srcdir)/lazycelery.sh $(DESTDIR)$(prefix)/lazycelery.sh; \
$(INSTALL_DATA) $(srcdir)/lazyserver.sh $(DESTDIR)$(prefix)/lazyserver.sh; \
fi
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
endif
# setup.py doesn't (yet) support an uninstall command, so until it does, you # 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 # must manually remove everything that was installed here. The following example
@ -110,7 +113,7 @@ endif
# Just use the usual setup.py clean command # Just use the usual setup.py clean command
clean: clean:
$(PYTHON) setup.py clean $(maybe_venved_python) setup.py clean
# Clean up the output of configure # Clean up the output of configure
@ -123,7 +126,7 @@ distclean:
# You can either use the setup.py sdist command or you can roll your own here # You can either use the setup.py sdist command or you can roll your own here
dist: dist:
# $(PYTHON) setup.py sdist # $(maybe_venved_python) setup.py sdist
mkdir $(PACKAGE_DISTNAME) mkdir $(PACKAGE_DISTNAME)
cp -r $(DISTFILES) $(PACKAGE_DISTNAME) cp -r $(DISTFILES) $(PACKAGE_DISTNAME)
tar -czf $(PACKAGE_DISTNAME).tar.gz $(PACKAGE_DISTNAME) tar -czf $(PACKAGE_DISTNAME).tar.gz $(PACKAGE_DISTNAME)
@ -131,25 +134,25 @@ dist:
# Use the setup.py check command # Use the setup.py check command
check: check:
$(PYTHON) setup.py check $(maybe_venved_python) setup.py check
# setup.py might complain if a directory doesn't exist so just in case, make the directory # setup.py might complain if a directory doesn't exist so just in case, make the directory
# here # here
installdirs: installdirs:
$(MKDIR_P) $(DESTDIR)$(prefix) $(MKDIR_P) $(DESTDIR)$(prefix)
# Set up PostgreSQL # # Set up PostgreSQL
postgresql: # postgresql:
sudo -u $(POSTGRES) createuser mediagoblin # sudo -u $(POSTGRES) createuser mediagoblin
sudo -u $(POSTGRES) createdb -E UNICODE -O mediagoblin mediagoblin # sudo -u $(POSTGRES) createdb -E UNICODE -O mediagoblin mediagoblin
update: # update:
ifneq ($(VIRTUALENV),no) # ifneq ($(VIRTUALENV),no)
$(prefix)/bin/python $(srcdir)/setup.py develop --prefix=$(prefix) --upgrade # $(prefix)/bin/python $(srcdir)/setup.py develop --prefix=$(prefix) --upgrade
else # else
$(PYTHON) $(srcdir)/setup.py develop --prefix=$(prefix) --upgrade # $(PYTHON) $(srcdir)/setup.py develop --prefix=$(prefix) --upgrade
endif # endif
$(prefix)/bin/gmg dbupdate # $(prefix)/bin/gmg dbupdate
# The following show how to install documentation. In this example, # The following show how to install documentation. In this example,
# docs are built from a separate Makefile contained in the docs # docs are built from a separate Makefile contained in the docs
@ -194,6 +197,8 @@ ifneq ($(SPHINXBUILD),no)
endif endif
# Targets that don't seem supported?
install-dvi: install-dvi:
dvi: dvi:

View File

@ -1,6 +1,7 @@
dnl configure.ac dnl configure.ac
dnl dnl
dnl Copyright 2012, 2013 Brandon Invergo <brandon@invergo.net> dnl Copyright 2012, 2013 Brandon Invergo <brandon@invergo.net>
dnl 2014 MediaGoblin contributors (see MediaGoblin's AUTHORS)
dnl dnl
dnl Copying and distribution of this file, with or without modification, dnl Copying and distribution of this file, with or without modification,
dnl are permitted in any medium without royalty provided the copyright dnl are permitted in any medium without royalty provided the copyright
@ -56,9 +57,9 @@ dnl
AC_CONFIG_MACRO_DIR([m4]) AC_CONFIG_MACRO_DIR([m4])
# The default prefix should be changed from /usr/local. Set it, as in dnl # The default prefix should be changed from /usr/local. Set it, as in
# the documentation, to /srv/mediagoblin.example.org/mediagoblin/ dnl # the documentation, to /srv/mediagoblin.example.org/mediagoblin/
AC_PREFIX_DEFAULT([`pwd`]) dnl AC_PREFIX_DEFAULT([`pwd`])
dnl########################### dnl###########################
@ -84,7 +85,7 @@ dnl series and the max is in the 3.0 series, non-existent
dnl releases (2.8 & 2.9) will be correctly skipped. dnl releases (2.8 & 2.9) will be correctly skipped.
dnl---- dnl----
dnl dnl
PC_INIT([2.7], [3.3.1]) dnl PC_INIT([2.7], [3.3.1])
dnl--PC_PROG_PYTHON--------------------------------------------------- dnl--PC_PROG_PYTHON---------------------------------------------------
@ -126,12 +127,12 @@ dnl available, checking both for "virtualenv" and "virtualenv2"
dnl (AC_CHECK_PROGS) dnl (AC_CHECK_PROGS)
dnl---- dnl----
dnl dnl
# Support installing to a virtualenv via the --with-virtualenv # Support doing development in a virtualenv via the --with-virtualenv
# configure flag # configure flag
AC_ARG_WITH([virtualenv], AC_ARG_WITH([virtualenv],
[AS_HELP_STRING([--with-virtualenv], [install to a Python virtualenv])], [AS_HELP_STRING([--without-virtualenv], [install to a Python virtualenv])],
[], [],
[with_virtualenv=no]) [with_virtualenv=yes])
AS_IF([test "x$with_virtualenv" != xno], AS_IF([test "x$with_virtualenv" != xno],
AC_CHECK_PROGS([VIRTUALENV], [virtualenv virtualenv3 virtualenv2], [no]) AC_CHECK_PROGS([VIRTUALENV], [virtualenv virtualenv3 virtualenv2], [no])
AS_IF([test "x$VIRTUALENV" = xno], AS_IF([test "x$VIRTUALENV" = xno],
@ -401,11 +402,16 @@ dnl
dnl PC_PYTHON_CHECK_ABI_FLAGS dnl PC_PYTHON_CHECK_ABI_FLAGS
dnl--MediaGoblin specific variables ----------------------------------
dnl######### dnl#########
dnl Finish # dnl Finish #
dnl######### dnl#########
dnl Define the files to be configured dnl Define the files to be configured
AC_CONFIG_FILES([Makefile]) AC_CONFIG_FILES([Makefile])
AC_CONFIG_FILES([env], [chmod +x env])
dnl Generate config.status dnl Generate config.status
AC_OUTPUT AC_OUTPUT

4
env.in Normal file
View File

@ -0,0 +1,4 @@
#!/bin/sh
our_python=@PYTHON@