aboutsummaryrefslogtreecommitdiff
path: root/packages/linux_make
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2005-11-28 06:46:18 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2005-11-28 06:46:18 +0000
commit030d2eec4fd115d8fa54c32873095420ce30ccad (patch)
treeaaf158eb959a1e1e8f641e2e324d238d3fb04c3f /packages/linux_make
parent450695869e334f4626e08c53e429501d61b11e18 (diff)
- finally got a Linux Pd-extended release out, RC5
- built a tar.bz2 package maker with a generated Makefile for installing and uninstalling - switched all Makefiles to follow GNU $(DESTDIR)/$(prefix) standards svn path=/trunk/; revision=4064
Diffstat (limited to 'packages/linux_make')
-rwxr-xr-xpackages/linux_make/Makefile57
-rwxr-xr-xpackages/linux_make/generate_install_makefile.bash79
2 files changed, 136 insertions, 0 deletions
diff --git a/packages/linux_make/Makefile b/packages/linux_make/Makefile
new file mode 100755
index 00000000..8c81bb8a
--- /dev/null
+++ b/packages/linux_make/Makefile
@@ -0,0 +1,57 @@
+#
+# for making a tar.bz2 that installs using a Makefile
+#
+all: install
+
+CWD := $(shell pwd)
+
+DESTDIR = $(CWD)/build/
+cvs_root_dir = $(CWD)/../..
+BUILDLAYOUT_DIR = $(CWD)/..
+
+
+include $(BUILDLAYOUT_DIR)/Makefile.buildlayout
+
+
+# these are sent to all of the various Makefiles so that they all copy their
+# output to the same directory tree
+DEST_PATHS = BUILDLAYOUT_DIR=$(BUILDLAYOUT_DIR) \
+ cvs_root_dir=$(cvs_root_dir) \
+ DESTDIR=$(DESTDIR) \
+ prefix=$(prefix) \
+ UNAME=$(UNAME)
+
+
+install:
+ cd $(packages_src) && make $(DEST_PATHS) install
+ cd $(packages_src) && make $(DEST_PATHS) doc_format
+ @echo " "
+ @echo "linux_make install succeeded!"
+
+#==============================================================================#
+#
+##
+#
+#==============================================================================#
+
+PACKAGE_NAME = Pd-$(PD_VERSION)-$(PACKAGE_VERSION)-$(OS_NAME)-$(shell uname -m)
+tarbz2:
+# it is very hard to escape the $ in shell scripts so delete files
+ -rm -f -- $(helpdir)/iemabs/*\$$*.pd $(objectsdir)/iemabs/*\$$*.pd
+ -./generate_install_makefile.bash $(DESTDIR)$(prefix) > tarbz2Makefile
+ mv -i tarbz2Makefile $(DESTDIR)$(prefix)/Makefile
+ mv $(DESTDIR)$(prefix) $(DESTDIR)$(PACKAGE_NAME)
+ cd $(DESTDIR) && \
+ tar cjf $(PACKAGE_NAME).tar.bz2 $(PACKAGE_NAME)
+ mv $(DESTDIR)$(PACKAGE_NAME) $(DESTDIR)$(prefix)
+
+#==============================================================================#
+#
+## CVS SOURCES
+#
+#==============================================================================#
+
+clean:
+ cd $(packages_src) && make $(DEST_PATHS) clean
+
+
diff --git a/packages/linux_make/generate_install_makefile.bash b/packages/linux_make/generate_install_makefile.bash
new file mode 100755
index 00000000..9cf87bc4
--- /dev/null
+++ b/packages/linux_make/generate_install_makefile.bash
@@ -0,0 +1,79 @@
+#!/bin/bash
+
+ROOT_DIR=`echo $1 | sed 's|/*$||'`
+prefix=$2
+
+if [ $# -ne 1 ]; then
+ echo "Usage: $0 ROOT_DIR"
+ exit;
+fi
+
+SED=`echo sed "s|${ROOT_DIR}/||"`
+
+function print_file ()
+{
+ local my_file=$1
+ echo -e "\tinstall -p '$my_file' '\$(prefix)/$my_file'"
+}
+
+function print_dir ()
+{
+ echo -e "\tinstall -d -m0755 '\$(prefix)/$1'"
+}
+
+function traverse_install_tree ()
+{
+ for file in `\ls -1d $1/*`; do
+ local target=`echo $file | $SED`
+ if [ -d "$file" ]; then
+ print_dir "$target"
+ traverse_install_tree "$file"
+ elif [ -f "$file" ]; then
+ print_file "$target"
+# else
+# echo "MYSTERY FILE: $file"
+ fi
+ done
+}
+
+function remove_file ()
+{
+# arg, $n-help.pd causes lots of problems
+# local my_file=`echo $1 | sed 's|$|\\$|g'`
+ local my_file=$1
+ echo -e "\trm -f -- '\$(prefix)/$my_file'"
+}
+
+function remove_dir ()
+{
+ echo -e "\t-rmdir '\$(prefix)/$1'"
+}
+
+function uninstall_tree ()
+{
+ for file in `\ls -1d $1/*`; do
+ local target=`echo $file | $SED`
+ if [ -d "$file" ]; then
+ uninstall_tree "$file"
+ remove_dir "$target"
+ elif [ -f "$file" ]; then
+ remove_file "$target"
+# else
+# echo "MYSTERY FILE: $file"
+ fi
+ done
+}
+
+
+echo ""
+echo "prefix = /usr/local"
+echo ""
+echo ""
+echo "install:"
+traverse_install_tree $ROOT_DIR
+
+echo ""
+echo ""
+echo ""
+echo "uninstall:"
+uninstall_tree $ROOT_DIR