aboutsummaryrefslogtreecommitdiff
path: root/doc/Makefile.buildlayout
diff options
context:
space:
mode:
authorHans-Christoph Steiner <eighthave@users.sourceforge.net>2005-11-21 04:39:02 +0000
committerHans-Christoph Steiner <eighthave@users.sourceforge.net>2005-11-21 04:39:02 +0000
commitc67180156bb011ebe9a0524757052a28a6c62692 (patch)
treea0c3e3660a926a44c1254516338ac83cff0d05b2 /doc/Makefile.buildlayout
parent3382e067199abb3bb8fcb2044711910640a459c1 (diff)
Lots of changes, got the first complete(-ish) build with the new extended
build system. I left as much of the old functionality in place as possible, definitely were it was being used. But there are some changes that break backwards compatibility, thought they should be noticed by few, and be easy to fix going forward. Some highlights: - centralized patch system (packages/patches with targets patch_pd and unpatch_pd) - easily redirected builds, using INSTALL_PREFIX and all of the *_DEST variables. This makes building packages like Pd.app, .deb, .rpm, etc. much easier. - libdir format: basically a libdir is a directory that has both the objects and the help files together in one folder. It can be added using -lib or the StartUp preferences, or you can access them via geiger namespaces, i.e. [mylibrary/myobject]. - special characters allow in setup function/file names for objects. This makes objects like [||~] possible without having to be in a library. Now they can be either .pd files or individual .pd_darwin files (thanks IOhannes for the patch). svn path=/trunk/; revision=3993
Diffstat (limited to 'doc/Makefile.buildlayout')
-rw-r--r--doc/Makefile.buildlayout191
1 files changed, 191 insertions, 0 deletions
diff --git a/doc/Makefile.buildlayout b/doc/Makefile.buildlayout
new file mode 100644
index 00000000..d5b9e9f3
--- /dev/null
+++ b/doc/Makefile.buildlayout
@@ -0,0 +1,191 @@
+#==============================================================================#
+#
+# Centralized cross-platform build system Makefile.buildsystem
+#
+# this file contains all the common locations and targets
+# <hans@at.or.at>
+#
+#==============================================================================#
+# This file should be exactly the same in each section of the CVS. A copy is
+# kept in each section of the CVS so that each section will be self-contained.
+# To use it, you need to include it in your Makefile (i.e. "include
+# Makefile.buildlayout") and then define $(INSTALL_PREFIX) and $(SRC_ROOT_DIR).
+#
+# $(SRC_ROOT_DIR) is the base directory of src tree, equivalent to the root
+# level of the pure-data CVS.
+#
+# $(INSTALL_PREFIX) is the base directory to where all of the resulting files
+# will be copied.
+#
+# This file is currently located in these places:
+# abstractions
+# externals/build
+# packages
+#
+# it will be going here too:
+# doc
+# extensions
+# gem
+# pd
+#
+# <hans@at.or.at>
+
+#==============================================================================#
+#
+## PLATFORM-SPECIFIC SETTINGS
+#
+#==============================================================================#
+# which OS to compile for
+UNAME := $(shell uname -s)
+ifeq ($(UNAME),Linux)
+ OS_NAME = linux
+ EXTENSION = pd_linux
+else
+ ifeq ($(UNAME),Darwin)
+ OS_NAME = darwin
+ EXTENSION = pd_darwin
+ else
+ ifeq (MINGW,$(findstring MINGW,$(UNAME)))
+ OS_NAME = win
+ EXTENSION = dll
+ else
+ OS_NAME = unknown
+ EXTENSION = so
+ $(warning WARNING: unknown environment "$(UNAME)".)
+ endif
+ endif
+endif
+
+
+#==============================================================================#
+#
+# DIRECTORY STRUCTURE
+#
+#==============================================================================#
+
+# sources
+ABSTRACTIONS_SRC = $(SRC_ROOT_DIR)/abstractions
+DOC_SRC = $(SRC_ROOT_DIR)/doc
+EXTERNALS_SRC = $(SRC_ROOT_DIR)/externals
+FLEXT_SRC = $(SRC_ROOT_DIR)/externals/grill/flext
+GEM_SRC = $(SRC_ROOT_DIR)/Gem
+GEMLIBS_SRC = $(SRC_ROOT_DIR)/GemLibs
+PACKAGES_SRC = $(SRC_ROOT_DIR)/packages
+PD_SRC = $(SRC_ROOT_DIR)/pd
+SCRIPTS_SRC = $(SRC_ROOT_DIR)/scripts
+
+
+# destinations
+APPLICATIONS_DEST = $(DOCS_DEST)/examples
+BIN_DEST = $(INSTALL_PREFIX)/bin
+DOCS_DEST = $(INSTALL_PREFIX)/doc
+INCLUDE_DEST = $(INSTALL_PREFIX)/include
+LIB_DEST = $(INSTALL_PREFIX)/lib
+MAN_DEST = $(INSTALL_PREFIX)/man
+OBJECTS_DEST = $(INSTALL_PREFIX)/extra
+HELP_DEST = $(DOCS_DEST)/5.reference
+MANUALS_DEST = $(DOCS_DEST)/manuals
+
+
+#==============================================================================#
+#
+# DIRECTORY STRUCTURE TARGETS
+#
+#==============================================================================#
+
+# first make sure that the directory structure is setup
+$(INSTALL_PREFIX):
+ install -d $(INSTALL_PREFIX)
+
+$(APPLICATIONS_DEST): $(INSTALL_PREFIX)
+ install -d $(APPLICATIONS_DEST)
+
+$(DOCS_DEST): $(INSTALL_PREFIX)
+ install -d $(DOCS_DEST)
+
+$(HELP_DEST): $(INSTALL_PREFIX)
+ install -d $(HELP_DEST)
+
+$(MANUALS_DEST): $(INSTALL_PREFIX)
+ install -d $(MANUALS_DEST)
+
+$(OBJECTS_DEST): $(INSTALL_PREFIX)
+ install -d $(OBJECTS_DEST)
+
+
+#==============================================================================#
+#
+# CLEAN TARGETS
+#
+#==============================================================================#
+
+applications_clean:
+ -rm -f -- $(APPLICATIONS_DEST)/*/*/*/*/*.*
+ -rm -f -- $(APPLICATIONS_DEST)/*/*/*/*.*
+ -rm -f -- $(APPLICATIONS_DEST)/*/*/*.*
+ -rm -f -- $(APPLICATIONS_DEST)/*/*.*
+ -rmdir $(APPLICATIONS_DEST)/*/*/*/*
+ -rmdir $(APPLICATIONS_DEST)/*/*/*
+ -rmdir $(APPLICATIONS_DEST)/*/*
+ -rmdir $(APPLICATIONS_DEST)/*
+ -rmdir $(APPLICATIONS_DEST)
+
+
+help_clean:
+ -rm -f -- $(HELP_DEST)/*/*/*.*
+ -rm -f -- $(HELP_DEST)/*/*.*
+ -rm -f -- $(HELP_DEST)/*.*
+ -rmdir $(HELP_DEST)/*/*
+ -rmdir $(HELP_DEST)/*
+ -rmdir $(HELP_DEST)
+
+
+manuals_clean:
+ -rm -f -- $(MANUALS_DEST)/*/*/*.*
+ -rm -f -- $(MANUALS_DEST)/*/*.*
+ -rmdir $(MANUALS_DEST)/*/*
+ -rmdir $(MANUALS_DEST)/*
+ -rmdir $(MANUALS_DEST)
+
+
+objects_clean:
+ -rm $(OBJECTS_DEST)/*/*/*.pd
+ -rm $(OBJECTS_DEST)/*/*.pd
+ -rm $(OBJECTS_DEST)/*.pd
+ -rm $(OBJECTS_DEST)/*/*/*.$(EXTENSION)
+ -rm $(OBJECTS_DEST)/*/*.$(EXTENSION)
+ -rm $(OBJECTS_DEST)/*.$(EXTENSION)
+ -rmdir $(OBJECTS_DEST)/*/*
+ -rmdir $(OBJECTS_DEST)/*
+ -rmdir $(OBJECTS_DEST)
+
+
+install_clean: applications_clean help_clean manuals_clean objects_clean
+ -rmdir $(DOCS_DEST)
+ -rmdir $(INSTALL_PREFIX)
+ @echo " "
+ @echo "Build destination cleaned: $(INSTALL_PREFIX)"
+
+
+cruft_clean:
+# emacs litter
+ -rm -f -- */*/*/*/*.*~
+ -rm -f -- */*/*/*.*~
+ -rm -f -- */*/*.*~
+ -rm -f -- */*.*~
+ -rm -f -- *.*~
+ -rm -f -- Makefile~ Makefile.buildlayout~
+# sed replace litter
+ -rm -f -- */*/*/*/*.*.bak
+ -rm -f -- */*/*/*.*.bak
+ -rm -f -- */*/*.*.bak
+ -rm -f -- */*.*.bak
+ -rm -f -- *.*.bak
+# autoconf cache
+ -rm -rf -- */*/*/*/autom4te.cache
+ -rm -rf -- */*/*/autom4te.cache
+ -rm -rf -- */*/autom4te.cache
+ -rm -rf -- */autom4te.cache
+ -rm -rf -- autom4te.cache
+
+