aboutsummaryrefslogtreecommitdiff
path: root/externals/grill/flext
diff options
context:
space:
mode:
authorThomas Grill <xovo@users.sourceforge.net>2005-07-19 23:08:33 +0000
committerThomas Grill <xovo@users.sourceforge.net>2005-07-19 23:08:33 +0000
commit2a58dfbcf6eb4fd72d19f46067d841a4aab873bf (patch)
tree4dd3c7725bae39ad31a5d49309cf4a96c6e16c16 /externals/grill/flext
parent8994dac676a881dce818238d4519182a8bf635ea (diff)
more corrections to cygwin... seems to work now for Max/MSP as well
avoid problems with paths containing spaces enhancements for cygwin builds (working for PD now, but not for Max) svn path=/trunk/; revision=3362
Diffstat (limited to 'externals/grill/flext')
-rw-r--r--externals/grill/flext/build.txt27
-rw-r--r--externals/grill/flext/buildsys/win/gnumake-cygwin-ext.inc4
-rw-r--r--externals/grill/flext/buildsys/win/gnumake-cygwin-flext.inc6
-rw-r--r--externals/grill/flext/buildsys/win/gnumake-cygwin.inc4
-rw-r--r--externals/grill/flext/buildsys/win/gnumake-mingw.inc4
-rw-r--r--externals/grill/flext/buildsys/win/max/config-cygwin.def51
-rw-r--r--externals/grill/flext/buildsys/win/max/gnumake-cygwin-ext.inc1
-rw-r--r--externals/grill/flext/buildsys/win/max/gnumake-cygwin-flext.inc6
-rw-r--r--externals/grill/flext/buildsys/win/max/gnumake-cygwin.inc10
-rw-r--r--externals/grill/flext/buildsys/win/max/gnumake-mingw.inc4
-rw-r--r--externals/grill/flext/buildsys/win/max/nmake-msvc.inc2
-rw-r--r--externals/grill/flext/buildsys/win/pd/config-cygwin.def2
-rw-r--r--externals/grill/flext/buildsys/win/pd/gnumake-cygwin.inc7
-rw-r--r--externals/grill/flext/changes.txt1
-rwxr-xr-xexternals/grill/flext/source/flprefix.h2
-rw-r--r--externals/grill/flext/source/flstdc.h1
16 files changed, 108 insertions, 24 deletions
diff --git a/externals/grill/flext/build.txt b/externals/grill/flext/build.txt
index fd7be6c8..74311f45 100644
--- a/externals/grill/flext/build.txt
+++ b/externals/grill/flext/build.txt
@@ -76,8 +76,24 @@ Operating System, real-time system and compiler need to be provided as arguments
See buildsys/readme.txt for developer-centered information.
+1.1) Prerequisites
+==================
-1.1) Building and installing flext
+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, .NET 2003 or .NET 2005
+ be sure to use the VCVARS32.BAT command on the prompt to set up the environment variables
+or
+- cygwin with binutils, gcc and make packages
+
+
+1.2) Building and installing flext
==================================
Flext can build itself using the build system.
@@ -111,7 +127,7 @@ into the default location.
(try "sudo" or "su -c" prefixes, or log in as root)
-1.2) Building externals
+1.3) Building externals
=======================
The flext build system can be used to compile flext-based externals or also
@@ -135,7 +151,7 @@ You can clean up the intermediate build folders with
bash ../flext/build.sh pd gcc clean
-1.3) Tested configurations
+1.4) Tested configurations
==========================
Both flext and flext-based externals have been successfully built with the
@@ -145,9 +161,10 @@ A missing combination does not necessarily mean that it won't work.
win-pd-msvc, single/multi/shared
win-pd-bcc, single/multi/shared
win-pd-mingw, single/multi/shared (from CMD prompt, not MSYS)
-win-pd-cygwin, --- NOT WORKING (compiles but crashes) ----
+win-pd-cygwin, single/multi/shared
win-max-msvc, single/multi/shared
-win-max-mingw, --- NOT WORKING (wrong structure packing) ----
+win-max-mingw, --- NOT WORKING (linker problems) ----
+win-max-cygwin, --- NOT WORKING (linker problems) ----
mac-pd-gcc, single/multi/shared
diff --git a/externals/grill/flext/buildsys/win/gnumake-cygwin-ext.inc b/externals/grill/flext/buildsys/win/gnumake-cygwin-ext.inc
index 91eff1ed..141d5093 100644
--- a/externals/grill/flext/buildsys/win/gnumake-cygwin-ext.inc
+++ b/externals/grill/flext/buildsys/win/gnumake-cygwin-ext.inc
@@ -24,7 +24,7 @@ $(TARGETPATH)/%.o : $(SRCDIR)/%.c
$(TARGET) :: $(TARGETPATH)
$(TARGET) :: $(COBJS) $(CPPOBJS)
- $(CXX) $(LDFLAGS) $(LIBPATH) -o $@ $(COBJS) $(CPPOBJS) $(LIBS)
+ $(CXX) $(LDFLAGS) $(LIBPATH) -o $@ $(COBJS) $(CPPOBJS) $(LIBS) $(SYSLIBS)
strip --strip-unneeded $@
chmod 755 $@
@@ -36,7 +36,7 @@ _clean_:
##############################################
$(INSTPATH):
- -mkdir -p $@
+ -mkdir -p $(INSTPATH)
_install_: $(INSTPATH)
install $(TARGET) $(INSTPATH)
diff --git a/externals/grill/flext/buildsys/win/gnumake-cygwin-flext.inc b/externals/grill/flext/buildsys/win/gnumake-cygwin-flext.inc
index ec55d6b8..e8940a5d 100644
--- a/externals/grill/flext/buildsys/win/gnumake-cygwin-flext.inc
+++ b/externals/grill/flext/buildsys/win/gnumake-cygwin-flext.inc
@@ -21,7 +21,7 @@ $(TARGET) :: $(TARGETPATH)
$(TARGET) :: $(COBJS) $(CPPOBJS)
ifdef SHARED
- $(CXX) $(LDFLAGS) $(LIBPATH) -o $@ $(COBJS) $(CPPOBJS) $(LIBS)
+ $(CXX) $(LDFLAGS) $(LIBPATH) -o $@ $(COBJS) $(CPPOBJS) $(LIBS) $(SYSLIBS)
chmod 755 $@
strip --strip-unneeded $@
else
@@ -42,10 +42,10 @@ FLEXTLIBINST=$(FLEXTLIB)
endif
$(FLEXTINC):
- -mkdir -p $@
+ -mkdir -p $(FLEXTINC)
$(FLEXTLIBINST):
- -mkdir -p $@
+ -mkdir -p $(FLEXTLIBINST)
_install_: $(FLEXTINC) $(FLEXTLIBINST)
install $(TARGET) $(FLEXTLIBINST)
diff --git a/externals/grill/flext/buildsys/win/gnumake-cygwin.inc b/externals/grill/flext/buildsys/win/gnumake-cygwin.inc
index e98de396..48155ff1 100644
--- a/externals/grill/flext/buildsys/win/gnumake-cygwin.inc
+++ b/externals/grill/flext/buildsys/win/gnumake-cygwin.inc
@@ -6,8 +6,8 @@ TARGET=$(TARGETPATH)/$(OUTNAME).$(EXT)
##############################################
-CFLAGS +=
-LDFLAGS += -shared
+CFLAGS += -mno-cygwin
+LDFLAGS += -shared -mno-cygwin
##############################################
diff --git a/externals/grill/flext/buildsys/win/gnumake-mingw.inc b/externals/grill/flext/buildsys/win/gnumake-mingw.inc
index 063bc058..5f9e3633 100644
--- a/externals/grill/flext/buildsys/win/gnumake-mingw.inc
+++ b/externals/grill/flext/buildsys/win/gnumake-mingw.inc
@@ -6,8 +6,8 @@ TARGET=$(TARGETPATH)\$(OUTNAME).$(EXT)
##############################################
-CFLAGS += -mms-bitfields
-LDFLAGS += -shared
+CFLAGS += -mms-bitfields -mno-cygwin
+LDFLAGS += -shared -mno-cygwin
##############################################
diff --git a/externals/grill/flext/buildsys/win/max/config-cygwin.def b/externals/grill/flext/buildsys/win/max/config-cygwin.def
new file mode 100644
index 00000000..a4562a73
--- /dev/null
+++ b/externals/grill/flext/buildsys/win/max/config-cygwin.def
@@ -0,0 +1,51 @@
+# where is the Max/MSP application?
+MAXAPPPATH=/cygdrive/c/program\ files/MaxMSP\ 4.5
+
+# where are the Max/MSP common files?
+MAXCOMPATH=/cygdrive/c/program\ files/common\ files/Cycling\ \'74
+
+
+# where are the Max/MSP SDK header files?
+# you should have the latest version!
+MAXSDKPATH=$(MAXAPPPATH)/maxmspsdk_win/4.5\ headers/c74support
+
+###############################################################
+
+###############################################################
+
+# where do/should the flext headers reside/be built?
+FLEXTINC=$(MAXCOMPATH)/flext
+
+# where do/should the flext static libraries reside/be built?
+FLEXTLIB=$(FLEXTINC)
+
+# where do/should the flext shared libraries reside/be built?
+# (a good place is the MaxMSP program folder)
+FLEXTSHLIB=$(MAXAPPPATH)
+
+###############################################################
+
+# where should the external be built?
+# (path for temporary files)
+OUTPATH=max-cygwin
+
+# where should the external be installed?
+INSTPATH=$(MAXCOMPATH)/externals/flext
+
+# where should the initialization files be installed?
+INITPATH=$(MAXCOMPATH)/init
+
+# where should the help files be installed?
+HELPPATH=$(MAXAPPPATH)/max-help/flext
+
+###############################################################
+
+# user defined compiler flags
+# (check if they match your system!)
+UFLAGS=-msse -mfpmath=sse -ffast-math
+
+# user defined optimization flags
+# (check if they match your system!)
+OFLAGS=-O3
+# optimizations for Pentium 4
+OFLAGS+=-march=pentium4
diff --git a/externals/grill/flext/buildsys/win/max/gnumake-cygwin-ext.inc b/externals/grill/flext/buildsys/win/max/gnumake-cygwin-ext.inc
new file mode 100644
index 00000000..5df7e2f2
--- /dev/null
+++ b/externals/grill/flext/buildsys/win/max/gnumake-cygwin-ext.inc
@@ -0,0 +1 @@
+EXT=mxe
diff --git a/externals/grill/flext/buildsys/win/max/gnumake-cygwin-flext.inc b/externals/grill/flext/buildsys/win/max/gnumake-cygwin-flext.inc
new file mode 100644
index 00000000..60cd079a
--- /dev/null
+++ b/externals/grill/flext/buildsys/win/max/gnumake-cygwin-flext.inc
@@ -0,0 +1,6 @@
+ifdef SHARED
+EXT=dll
+else
+EXT=a
+endif
+
diff --git a/externals/grill/flext/buildsys/win/max/gnumake-cygwin.inc b/externals/grill/flext/buildsys/win/max/gnumake-cygwin.inc
new file mode 100644
index 00000000..743d0e79
--- /dev/null
+++ b/externals/grill/flext/buildsys/win/max/gnumake-cygwin.inc
@@ -0,0 +1,10 @@
+DEFS += -DFLEXT_SYS=1
+
+# fpack-struct should align to 2 bytes... can't specify that...
+CFLAGS += -DWINVER=0x0501 -D_WIN32_WINNT=0x501
+
+INCPATH += -I$(MAXSDKPATH)/max-includes -I$(MAXSDKPATH)/msp-includes
+LIBPATH += -L$(MAXSDKPATH)/max-includes -L$(MAXSDKPATH)/msp-includes
+
+# these are both in MAXSDKPATH
+SYSLIBS += -lMaxAPI -lMaxAudio
diff --git a/externals/grill/flext/buildsys/win/max/gnumake-mingw.inc b/externals/grill/flext/buildsys/win/max/gnumake-mingw.inc
index ccf14536..26e234c8 100644
--- a/externals/grill/flext/buildsys/win/max/gnumake-mingw.inc
+++ b/externals/grill/flext/buildsys/win/max/gnumake-mingw.inc
@@ -1,10 +1,10 @@
DEFS += -DFLEXT_SYS=1
# fpack-struct should align to 2 bytes... can't specify that...
-CFLAGS += -fpack-struct -D_WIN32_WINNT=0x501
+CFLAGS += -DWINVER=0x0501 -D_WIN32_WINNT=0x501
INCPATH += -I$(MAXSDKPATH)/max-includes -I$(MAXSDKPATH)/msp-includes
LIBPATH += -L$(MAXSDKPATH)/max-includes -L$(MAXSDKPATH)/msp-includes
# these are both in MAXSDKPATH
-LIBS += -lmaxapi -lmaxaudio
+LIBS += -lMaxAPI -lMaxAudio
diff --git a/externals/grill/flext/buildsys/win/max/nmake-msvc.inc b/externals/grill/flext/buildsys/win/max/nmake-msvc.inc
index 94cdc32e..c78b74aa 100644
--- a/externals/grill/flext/buildsys/win/max/nmake-msvc.inc
+++ b/externals/grill/flext/buildsys/win/max/nmake-msvc.inc
@@ -1,5 +1,5 @@
DEFS=$(DEFS) /DFLEXT_SYS=1
-CFLAGS=$(CFLAGS) /Zp2 /D_WIN32_WINNT=0x501
+CFLAGS=$(CFLAGS) /Zp2 /DWINVER=0x0501 /D_WIN32_WINNT=0x501
INCPATH=$(INCPATH) /I$(MAXSDKPATH)\max-includes /I$(MAXSDKPATH)\msp-includes
LIBPATH=$(LIBPATH) /LIBPATH:$(MAXSDKPATH)\max-includes /LIBPATH:$(MAXSDKPATH)\msp-includes
diff --git a/externals/grill/flext/buildsys/win/pd/config-cygwin.def b/externals/grill/flext/buildsys/win/pd/config-cygwin.def
index d7c319e0..6c35151a 100644
--- a/externals/grill/flext/buildsys/win/pd/config-cygwin.def
+++ b/externals/grill/flext/buildsys/win/pd/config-cygwin.def
@@ -1,6 +1,6 @@
# where is the PD installation?
# (this should point to the main folder, which has a "src" subfolder)
-PDPATH=/cygdrive/c/programme/pd
+PDPATH=/cygdrive/c/program files/pd
###############################################################
diff --git a/externals/grill/flext/buildsys/win/pd/gnumake-cygwin.inc b/externals/grill/flext/buildsys/win/pd/gnumake-cygwin.inc
index 017635ae..7ddba80b 100644
--- a/externals/grill/flext/buildsys/win/pd/gnumake-cygwin.inc
+++ b/externals/grill/flext/buildsys/win/pd/gnumake-cygwin.inc
@@ -2,8 +2,5 @@ DEFS += -DFLEXT_SYS=2
INCPATH += -I$(PDPATH)/src
-# trick PD in a way that only the cygwin pthread headers are used
-CFLAGS += -include /usr/include/sched.h -include /usr/include/pthread.h -DPTHREAD_H
-
-LIBS += $(PDPATH)/bin/pd.dll
-#LIBS += $(PDPATH)/bin/pthreadVC.dll
+LIBS += $(PDPATH)/bin/pthreadVC.dll
+SYSLIBS += $(PDPATH)/bin/pd.dll
diff --git a/externals/grill/flext/changes.txt b/externals/grill/flext/changes.txt
index 46277b4a..8c2cbb15 100644
--- a/externals/grill/flext/changes.txt
+++ b/externals/grill/flext/changes.txt
@@ -10,6 +10,7 @@ Version history:
0.5.1:
- optimizations for message handling and memory footprint
+- enhanced build system for cygwin
0.5.0:
- fixes for 64 bit builds (size_t is integer type of pointer size)
diff --git a/externals/grill/flext/source/flprefix.h b/externals/grill/flext/source/flprefix.h
index 68d9e120..36a7dbbe 100755
--- a/externals/grill/flext/source/flprefix.h
+++ b/externals/grill/flext/source/flprefix.h
@@ -377,7 +377,7 @@ WARRANTIES, see the file, "license.txt," in this distribution.
/* Set the right calling convention (and exporting) for the OS */
-#ifdef _MSC_VER
+#if defined(_WIN32)
#ifdef FLEXT_SHARED
// for compiling a shared flext library FLEXT_EXPORTS must be defined
#ifdef FLEXT_EXPORTS
diff --git a/externals/grill/flext/source/flstdc.h b/externals/grill/flext/source/flstdc.h
index d0c2c163..17d28e26 100644
--- a/externals/grill/flext/source/flstdc.h
+++ b/externals/grill/flext/source/flstdc.h
@@ -114,6 +114,7 @@ typedef t_clock t_qelem;
#endif
#elif FLEXT_OS == FLEXT_OS_WIN
#define WIN_VERSION 1
+ #define WIN_EXT_VERSION 1
#endif