diff options
Diffstat (limited to 'extensions')
-rw-r--r-- | extensions/Makefile.buildlayout | 213 |
1 files changed, 213 insertions, 0 deletions
diff --git a/extensions/Makefile.buildlayout b/extensions/Makefile.buildlayout new file mode 100644 index 00000000..921a7959 --- /dev/null +++ b/extensions/Makefile.buildlayout @@ -0,0 +1,213 @@ +#==============================================================================# +# +# 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 +# doc +# +# it will be going here too: +# 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) + + +#==============================================================================# +# +# PD VERSION AND PACKAGE NAMING +# +#==============================================================================# + + +PD_MAJOR_VERSION := $(shell grep 'Pd version' $(PD_SRC)/src/s_main.c | \ + sed 's/char pd_version\[\] = "Pd version \([0-9]\)\.[0-9]*[. TES-]*[0-9]*[0-9extndRC.-]*\\n";/\1/') +PD_MINOR_VERSION := $(shell grep 'Pd version' $(PD_SRC)/src/s_main.c | \ + sed 's/char pd_version\[\] = "Pd version [0-9]\.\([0-9]*\)[. TES-]*\([0-9]*\)[0-9extndRC.-]*\\n";/\1/') +PD_BUGFIX_VERSION := $(shell grep 'Pd version' $(PD_SRC)/src/s_main.c | \ + sed 's/char pd_version\[\] = "Pd version [0-9]\.[0-9]*[. TES-]*\([0-9]*\)[0-9extndRC.-]*\\n";/\1/') +# the separators [.-] need to be the same as in s_main.c or the regexps break +PD_VERSION = $(PD_MAJOR_VERSION).$(PD_MINOR_VERSION).$(PD_BUGFIX_VERSION) + + +# release version for this distro +PACKAGE_VERSION = extended-RC4 +PACKAGE_NAME = Pd-$(PD_VERSION)-$(PACKAGE_VERSION) + + + +#==============================================================================# +# +# 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 + + |