Commit 0c680a4a authored by Jonathan Wilkes's avatar Jonathan Wilkes
Browse files

update flext source from git (should probably make this a submodule at some point)

the last commit deleted the old flext files. I didn't realize git automatically puts deleted files with a commit, otherwise I would have done this all in a single commit
parent 22e23f6b
.DS_Store
config.txt
pd-darwin/
max-darwin/
buildsys/config-*.txt
flext.xcodeproj/project.xcworkspace/
flext.xcodeproj/xcuserdata/
CompiledObject files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
# autoconf temporary files
Makefile
Makefile.in
autom4te.cache
compile
config.guess
config.log
config.status
config.sub
configure
depcomp
install-sh
libtool
ltmain.sh
missing
source/.deps
source/Makefile
source/Makefile.in
aclocal.m4
m4/
# Doxyfile 1.4.3
#---------------------------------------------------------------------------
# Project related configuration options
#---------------------------------------------------------------------------
PROJECT_NAME = flext
PROJECT_NUMBER = 0.5.0
OUTPUT_DIRECTORY = ./doc
CREATE_SUBDIRS = NO
OUTPUT_LANGUAGE = English
USE_WINDOWS_ENCODING = NO
BRIEF_MEMBER_DESC = YES
REPEAT_BRIEF = YES
ABBREVIATE_BRIEF = "The $name class" \
"The $name widget" \
"The $name file" \
is \
provides \
specifies \
contains \
represents \
a \
an \
the
ALWAYS_DETAILED_SEC = NO
INLINE_INHERITED_MEMB = NO
FULL_PATH_NAMES = YES
STRIP_FROM_PATH = /Applications/util/
STRIP_FROM_INC_PATH =
SHORT_NAMES = NO
JAVADOC_AUTOBRIEF = NO
MULTILINE_CPP_IS_BRIEF = NO
DETAILS_AT_TOP = NO
INHERIT_DOCS = YES
DISTRIBUTE_GROUP_DOC = NO
SEPARATE_MEMBER_PAGES = NO
TAB_SIZE = 8
ALIASES =
OPTIMIZE_OUTPUT_FOR_C = NO
OPTIMIZE_OUTPUT_JAVA = NO
SUBGROUPING = YES
#---------------------------------------------------------------------------
# Build related configuration options
#---------------------------------------------------------------------------
EXTRACT_ALL = YES
EXTRACT_PRIVATE = YES
EXTRACT_STATIC = YES
EXTRACT_LOCAL_CLASSES = YES
EXTRACT_LOCAL_METHODS = NO
HIDE_UNDOC_MEMBERS = NO
HIDE_UNDOC_CLASSES = NO
HIDE_FRIEND_COMPOUNDS = NO
HIDE_IN_BODY_DOCS = NO
INTERNAL_DOCS = NO
CASE_SENSE_NAMES = NO
HIDE_SCOPE_NAMES = NO
SHOW_INCLUDE_FILES = YES
INLINE_INFO = YES
SORT_MEMBER_DOCS = YES
SORT_BRIEF_DOCS = NO
SORT_BY_SCOPE_NAME = NO
GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS =
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_DIRECTORIES = YES
FILE_VERSION_FILTER =
#---------------------------------------------------------------------------
# configuration options related to warning and progress messages
#---------------------------------------------------------------------------
QUIET = NO
WARNINGS = YES
WARN_IF_UNDOCUMENTED = YES
WARN_IF_DOC_ERROR = YES
WARN_NO_PARAMDOC = NO
WARN_FORMAT = "$file:$line: $text"
WARN_LOGFILE =
#---------------------------------------------------------------------------
# configuration options related to the input files
#---------------------------------------------------------------------------
INPUT = \
source
FILE_PATTERNS = *.c \
*.cc \
*.cxx \
*.cpp \
*.c++ \
*.d \
*.java \
*.ii \
*.ixx \
*.ipp \
*.i++ \
*.inl \
*.h \
*.hh \
*.hxx \
*.hpp \
*.h++ \
*.idl \
*.odl \
*.cs \
*.php \
*.php3 \
*.inc \
*.m \
*.mm \
*.dox \
*.C \
*.CC \
*.C++ \
*.II \
*.I++ \
*.H \
*.HH \
*.H++ \
*.CS \
*.PHP \
*.PHP3 \
*.M \
*.MM
RECURSIVE = NO
EXCLUDE =
EXCLUDE_SYMLINKS = NO
EXCLUDE_PATTERNS =
EXAMPLE_PATH =
EXAMPLE_PATTERNS = *
EXAMPLE_RECURSIVE = NO
IMAGE_PATH =
INPUT_FILTER =
FILTER_PATTERNS =
FILTER_SOURCE_FILES = NO
#---------------------------------------------------------------------------
# configuration options related to source browsing
#---------------------------------------------------------------------------
SOURCE_BROWSER = NO
INLINE_SOURCES = NO
STRIP_CODE_COMMENTS = YES
REFERENCED_BY_RELATION = NO
REFERENCES_RELATION = NO
USE_HTAGS = NO
VERBATIM_HEADERS = YES
#---------------------------------------------------------------------------
# configuration options related to the alphabetical class index
#---------------------------------------------------------------------------
ALPHABETICAL_INDEX = NO
COLS_IN_ALPHA_INDEX = 5
IGNORE_PREFIX =
#---------------------------------------------------------------------------
# configuration options related to the HTML output
#---------------------------------------------------------------------------
GENERATE_HTML = YES
HTML_OUTPUT = html
HTML_FILE_EXTENSION = .html
HTML_HEADER =
HTML_FOOTER =
HTML_STYLESHEET =
HTML_ALIGN_MEMBERS = YES
GENERATE_HTMLHELP = YES
CHM_FILE =
HHC_LOCATION =
GENERATE_CHI = NO
BINARY_TOC = NO
TOC_EXPAND = NO
DISABLE_INDEX = NO
ENUM_VALUES_PER_LINE = 4
GENERATE_TREEVIEW = NO
TREEVIEW_WIDTH = 250
#---------------------------------------------------------------------------
# configuration options related to the LaTeX output
#---------------------------------------------------------------------------
GENERATE_LATEX = YES
LATEX_OUTPUT = latex
LATEX_CMD_NAME = latex
MAKEINDEX_CMD_NAME = makeindex
COMPACT_LATEX = NO
PAPER_TYPE = a4wide
EXTRA_PACKAGES =
LATEX_HEADER =
PDF_HYPERLINKS = YES
USE_PDFLATEX = YES
LATEX_BATCHMODE = NO
LATEX_HIDE_INDICES = NO
#---------------------------------------------------------------------------
# configuration options related to the RTF output
#---------------------------------------------------------------------------
GENERATE_RTF = NO
RTF_OUTPUT = rtf
COMPACT_RTF = NO
RTF_HYPERLINKS = NO
RTF_STYLESHEET_FILE =
RTF_EXTENSIONS_FILE =
#---------------------------------------------------------------------------
# configuration options related to the man page output
#---------------------------------------------------------------------------
GENERATE_MAN = NO
MAN_OUTPUT = man
MAN_EXTENSION = .3
MAN_LINKS = NO
#---------------------------------------------------------------------------
# configuration options related to the XML output
#---------------------------------------------------------------------------
GENERATE_XML = NO
XML_OUTPUT = xml
XML_SCHEMA =
XML_DTD =
XML_PROGRAMLISTING = YES
#---------------------------------------------------------------------------
# configuration options for the AutoGen Definitions output
#---------------------------------------------------------------------------
GENERATE_AUTOGEN_DEF = NO
#---------------------------------------------------------------------------
# configuration options related to the Perl module output
#---------------------------------------------------------------------------
GENERATE_PERLMOD = NO
PERLMOD_LATEX = NO
PERLMOD_PRETTY = YES
PERLMOD_MAKEVAR_PREFIX =
#---------------------------------------------------------------------------
# Configuration options related to the preprocessor
#---------------------------------------------------------------------------
ENABLE_PREPROCESSING = YES
MACRO_EXPANSION = YES
EXPAND_ONLY_PREDEF = NO
SEARCH_INCLUDES = YES
INCLUDE_PATH =
INCLUDE_FILE_PATTERNS =
PREDEFINED = FLEXT_SYS=2 \
FLEXT_SHARED \
__DOXYGEN__
EXPAND_AS_DEFINED =
SKIP_FUNCTION_MACROS = YES
#---------------------------------------------------------------------------
# Configuration::additions related to external references
#---------------------------------------------------------------------------
TAGFILES =
GENERATE_TAGFILE =
ALLEXTERNALS = NO
EXTERNAL_GROUPS = YES
PERL_PATH = /usr/bin/perl
#---------------------------------------------------------------------------
# Configuration options related to the dot tool
#---------------------------------------------------------------------------
CLASS_DIAGRAMS = YES
HIDE_UNDOC_RELATIONS = YES
HAVE_DOT = NO
CLASS_GRAPH = YES
COLLABORATION_GRAPH = YES
GROUP_GRAPHS = YES
UML_LOOK = NO
TEMPLATE_RELATIONS = NO
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
CALL_GRAPH = NO
GRAPHICAL_HIERARCHY = YES
DIRECTORY_GRAPH = YES
DOT_IMAGE_FORMAT = png
DOT_PATH =
DOTFILE_DIRS =
MAX_DOT_GRAPH_WIDTH = 1024
MAX_DOT_GRAPH_HEIGHT = 1024
MAX_DOT_GRAPH_DEPTH = 1000
DOT_TRANSPARENT = NO
DOT_MULTI_TARGETS = NO
GENERATE_LEGEND = YES
DOT_CLEANUP = YES
#---------------------------------------------------------------------------
# Configuration::additions related to the search engine
#---------------------------------------------------------------------------
SEARCHENGINE = NO
#
# automake template
# added by tim blechmann
# modified by Thomas Grill
#
ACLOCAL_AMFLAGS = -I m4
SUBDIRS = source # tutorial
# EXTRA_DIST = flext.doxy
pkgconfigdir = $(libdir)/pkgconfig
pkgconfig_DATA = $(SYSTEM)-flext.pc
#! /bin/sh
(
(
(
test -x "$(which libtoolize)" && libtoolize --force
) ||
(
# MacOS has no libtoolize... use glibtoolize instead
test -x "$(which glibtoolize)" && glibtoolize --force
)
) &&
aclocal &&
automake --foreign --add-missing &&
autoconf
) ||
(
echo Bootstrapping failed
false
)
@echo off
rem
rem flext - C++ layer for Max/MSP and pd (pure data) externals
rem
rem Copyright (c) 2001-2005 Thomas Grill (gr@grrrr.org)
rem For information on usage and redistribution, and for a DISCLAIMER OF ALL
rem WARRANTIES, see the file, "license.txt," in this distribution.
rem
rem more information on http://grrrr.org/ext
rem ------------------------------------------------------------------------
rem
rem To build flext or flext-based externals simply run this script.
rem Running it without arguments will print some help to the console.
rem
rem ------------------------------------------------------------------------
echo ------------------------------------------------
set flext=%~dp0
rem Arguments:
rem %1 - system (pd/max)
rem %2 - compiler (msvc/gcc/mingw/cygwin/bcc/icc)
rem %3 - target (build/clean/install)
set platform=win
set rtsys=%1
set compiler=%2
set target=%3
rem --- The subbatch knowns which make utility to use ---
set subbatch=%flext%\buildsys\build-%compiler%.bat
if "%platform%"=="" goto syntax
if "%rtsys%"=="" goto syntax
if "%compiler%"=="" goto syntax
if not exist "%subbatch%" goto syntax
call "%subbatch%" %platform% %rtsys% %target% %4 %5 %6 %7 %8 %9
goto end
rem -----------------------------------------
:syntax
echo .
echo SYNTAX: build [system] [compiler] {target}
echo system ... pd / max
echo compiler ... msvc / gcc / mingw / cygwin / bcc / icc
echo target ... all (default) / clean / install
echo .
echo Please make sure that your make program and compiler can be accessed with the
echo system path and that all relevant environment variables are properly set.
echo .
echo For further information read flext/build.txt
echo .
:end
#! /bin/bash
# flext - C++ layer for Max/MSP and pd (pure data) externals
#
# Copyright (c) 2001-2005 Thomas Grill (gr@grrrr.org)
# For information on usage and redistribution, and for a DISCLAIMER OF ALL
# WARRANTIES, see the file, "license.txt," in this distribution.
#
# more information on http://grrrr.org/ext
# ------------------------------------------------------------------------
#
# To build flext or flext-based externals simply run this script.
# Running it without arguments will print some help to the console.
#
# ------------------------------------------------------------------------
flext=${0%/*}/
if [ "$flext" = "$0"/ ]; then flext=./ ; fi
# Arguments:
# $1 - system (pd/max)
# $2 - compiler (msvc/gcc/mingw/cygwin/bcc/icc)
# $3 - target (build/clean/install)
unamesys=$(uname -s)
case $unamesys in
Linux) platform=lnx;;
Darwin) platform=mac;;
CYGWIN*|MINGW*) platform=win;;
*) echo Platform $unamesys not supported; exit;;
esac
rtsys=$1
compiler=$2
target=$3
# --- The subbatch knows which make utility to use ---
subbatch=${flext}buildsys/build-${compiler}.sh
if
[ -n "$platform" -a -n "$rtsys" -a -n "$compiler" -a -f $subbatch ]
then
sh $subbatch $platform $rtsys $target $4 $5 $6 $7 $8 $9
else
echo
echo SYNTAX: build.sh [system] [compiler] {target}
echo system ..... pd / max
echo compiler ... msvc / gcc / mingw / cygwin / bcc / icc
echo target ..... build \(default\) / clean / install
echo
echo Please make sure that your make program and compiler can be accessed with the
echo system path and that all relevant environment variables are properly set.
echo
echo For further information read flext/build.txt
echo
fi
flext - C++ layer for Max/MSP and pd (pure data) externals
Copyright (c) 2001-2012 Thomas Grill (gr@grrrr.org)
For information on usage and redistribution, and for a DISCLAIMER OF ALL
WARRANTIES, see the file, "license.txt," in this distribution.
----------------------------------------------------------------------------
This document consists of the following parts:
0) Important stuff at the beginning
1) Using the flext build system
1.1) Building and installing flext
1.2) Building externals
1.3) Tested configurations
2) Using autoconf
3) Other ways to compile flext and flext-based externals
----------------------------------------------------------------------------
0) Important stuff at the beginning
===================================
Please be aware that the build system might have difficulties handling paths with spaces.
Under unix you might get along with escaping your\ path or quoting "your path".
Under Windows escaping doesn't work at all and quoting might not work either - therefore it's
best not to use spaced paths at all.
----------------------------------------------------------------------------
1) Using the flext build system
===============================
flext provides a universal build system which supports
- various operating systems
Windows (win)
Linux (lnx)
MacOSX (mac)
- various real-time systems
Pure Data (pd)
Max/MSP (max)
- various make programs
GNU make (gnumake)
Microsoft nmake (nmake)
- various compilers
Microsoft Visual C/C++ 6.0, .NET 2002/2003/2005/2008 (msvc)
GNU gcc 2.95 and above (gcc,cygwin,mingw)
Useful combinations of the above are
under Windows:
pd msvc, using nmake
pd cygwin, using GNU make
pd mingw, using GNU make (from the CMD prompt, not msys!)
max msvc, using nmake
max cygwin, using GNU make
max mingw, using GNU make (from the CMD prompt, not msys!)
pd bcc, using Borland make
under Linux or MacOSX:
pd gcc, using GNU make
under MacOSX:
max gcc, using GNU make - Mach-O externals only (Max 4.5 upwards)
There are two central scripts in the flext folder which invoke the building process:
- build.sh for bash shells (Linux, MacOSX, cygwin)
- build.bat for the Windows command prompt
A project needs to provide some information in order to be built properly.
By default, this resides in a file called package.txt
Please note, that the build system is shell-oriented, which means, that you'll have
to launch a command prompt (cmd.exe under Windows) and probably also set some
environment variables for your development system (e.g. run vcvars32.bat included with Microsoft Visual Studio)
By invoking one of the build scripts (e.g. with "bash build.sh" under unix,
or just "build" unter Windows) you'll get some lines of help.
Operating System, real-time system and compiler need to be provided as arguments.
See buildsys/readme.txt for developer-centered information.
1.1) Prerequisites
==================
Linux:
- A gnu g/g++ compiler should be present on any system.
The command "g++ --version" should show version 2.95 at least. Compiler version >= 3.3 is recommended.
OSX:
- The developer package must be installed which contains all necessary parts.
Windows:
- Microsoft Visual Studio 6, .NET 2002/2003/2005/2008
Be sure to use the VCVARS32.BAT (or probably SDKVARS.BAT) command on the prompt to set up the environment variables
Also be sure NOT to put flext or other externals into a path containing spaces!!
or
- cygwin with binutils, gcc and make packages
Max:
- The Max/MSP SDK must be installed. On OSX, the frameworks therein must be copied to /Library/Frameworks
1.2) Building and installing flext
==================================
Flext can build itself using the build system.
From the flext main directory, run the build script
e.g. under Windows
build pd msvc
or under unix with
bash build.sh pd gcc
When you run it for the first time, one or more configuration files will be created
from templates - you will get a message on the console.
You should edit the files to adapt it to your system.
Depending on your platform these will have name like
buildsys/config-win-pd-msvc.txt
or
buildsys/config-lnx-pd-gcc.txt
or
buildsys/config-mac-max-gcc.txt
After editing the files you will have to run the build script again to ensure that flext is built.
After successfully building everything, you can install flext with (under Windows)
build pd msvc install
or (under unix)
bash build.sh pd gcc install
You will probably have to have superuser rights in order to install things
into the default location.
(try "sudo" or "su -c" prefixes, or log in as root)