1
## Generic Makefile to allow the octave-forge packages to be build and
2
## installed using "configure; make all; make install". This Makefile
3
## includes the capability to install to a temporary location, and install
4
## an on_uninstall.m file that prevents the user removing this package
5
## with Octave's package manager. This is useful for for the distribution's
6
## various package managers and is forced by defining DESTDIR and DISTPKG.
8
PKGDIR := $(shell pwd | sed -e 's|^.*/||')
10
PACKAGE ?= $(TMPDIR)/$(PKGDIR).tar.gz
11
PKG := $(shell echo $(PKGDIR) | sed -e 's|^\(.*\)-.*|\1|')
16
@if [ -e src/Makefile ]; then \
21
@if [ -e src/Makefile ]; then \
22
mv src/Makefile src/Makefile.disable; \
24
if [ -e src/configure ]; then \
25
mv src/configure src/configure.disable; \
27
cd ..; tar -czf $(PACKAGE) $(PKGDIR); \
31
if [ "X${DISTPKG}X" != "XX" ]; then \
32
stripcmd="unlink(pkg('local_list'));unlink(pkg('global_list'));"; \
34
if [ "X$(DESTDIR)X" = "XX" ]; then \
35
pkgdir=`octave -H -q --no-site-file --eval "warning('off','all');pkg('install','$(PACKAGE)');l=pkg('list');disp(l{cellfun(@(x)strcmp(x.name,'$(PKG)'),l)}.dir);$$stripcmd;"`; \
37
shareprefix=$(DESTDIR)/`octave -H -q --no-site-file --eval "disp(fullfile(OCTAVE_HOME(),'share','octave'));"`; \
38
libexecprefix=$(DESTDIR)/`octave -H -q --no-site-file --eval "disp(fullfile(octave_config_info('libexecdir'),'octave'));"`; \
39
octprefix=$$shareprefix/packages; \
40
archprefix=$$libexecprefix/packages; \
41
if [ ! -e $$octprefix ]; then \
42
mkdir -p $$octprefix; \
44
if [ ! -e $$archprefix ]; then \
45
mkdir -p $$archprefix; \
47
octave -H -q --no-site-file --eval "warning('off','all');pkg('prefix','$$octprefix','$$archprefix');pkg('global_list',fullfile('$$shareprefix','octave_packages'));pkg('local_list',fullfile('$$shareprefix','octave_packages'));pkg('install','-nodeps','-verbose','$(PACKAGE)');"; \
48
pkgdir=`octave -H -q --no-site-file --eval "warning('off','all');pkg('prefix','$$octprefix','$$archprefix');pkg('global_list',fullfile('$$shareprefix','octave_packages'));pkg('local_list',fullfile('$$shareprefix','octave_packages'));l=pkg('list');disp(l{cellfun(@(x)strcmp(x.name,'$(PKG)'),l)}.dir);$$stripcmd;"`; \
50
if [ "X${DISTPKG}X" != "XX" ]; then \
51
if [ -e $$pkgdir/packinfo/on_uninstall.m ]; then \
52
mv $$pkgdir/packinfo/on_uninstall.m \
53
$$pkgdir/packinfo/on_uninstall.m.orig; \
55
echo "function on_uninstall (desc)" > $$pkgdir/packinfo/on_uninstall.m; \
56
echo " error ('Can not uninstall %s installed by the $(DISTPKG) package manager', desc.name);" >> $$pkgdir/packinfo/on_uninstall.m; \
57
echo "endfunction" >> $$pkgdir/packinfo/on_uninstall.m; \
58
echo "#! /bin/sh -f" > $$pkgdir/packinfo/dist_admin; \
59
echo "if [ \"\$$1\" == \"install\" ]; then" >> $$pkgdir/packinfo/dist_admin; \
60
echo " octave -H -q --no-site-file --eval \"pkg('rebuild');\"" >> $$pkgdir/packinfo/dist_admin; \
61
echo "else" >> $$pkgdir/packinfo/dist_admin; \
62
echo " pkgdir=\`octave -H -q --no-site-file --eval \"pkg('rebuild');l=pkg('list');disp(l{cellfun(@(x)strcmp(x.name,'$(PKG)'),l)}.dir);\"\`" >> $$pkgdir/packinfo/dist_admin; \
63
echo " rm \$$pkgdir/packinfo/on_uninstall.m" >> $$pkgdir/packinfo/dist_admin; \
64
echo " if [ -e \$$pkgdir/packinfo/on_uninstall.m.orig ]; then" >> $$pkgdir/packinfo/dist_admin; \
65
echo " mv \$$pkgdir/packinfo/on_uninstall.m.orig \$$pkgdir/packinfo/on_uninstall.m" >> $$pkgdir/packinfo/dist_admin; \
66
echo " cd \$$pkgdir/packinfo" >> $$pkgdir/packinfo/dist_admin; \
67
echo " octave -q -H --no-site-file --eval \"l=pkg('list');on_uninstall(l{cellfun(@(x)strcmp(x.name,'$(PKG)'),l)});\"" >> $$pkgdir/packinfo/dist_admin; \
68
echo " fi" >> $$pkgdir/packinfo/dist_admin; \
69
echo "fi" >> $$pkgdir/packinfo/dist_admin; \
70
chmod a+x $$pkgdir/packinfo/dist_admin; \
2
# Description: Makefile for OdePkg
3
# ChangeLog: 20070222, this Makefile was originally be created
4
# from the Makefile of the comm package. Modifications have
5
# been done to create OdePkg.
7
sinclude ../../Makeconf
9
PKG_FILES = COPYING DESCRIPTION INDEX $(wildcard src/*) $(wildcard inst/*) \
10
doc/odepkg.pdf doc/Makefile $(wildcard doc/*.texi)
16
@for _dir in $(SUBDIRS); do \
17
$(MAKE) -C $$_dir all; \
21
@for _dir in $(SUBDIRS); do \
22
$(MAKE) -C $$_dir $(MAKECMDGOALS); \