From 2a58dfbcf6eb4fd72d19f46067d841a4aab873bf Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Tue, 19 Jul 2005 23:08:33 +0000 Subject: 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 --- externals/grill/flext/build.txt | 27 +++++++++--- .../flext/buildsys/win/gnumake-cygwin-ext.inc | 4 +- .../flext/buildsys/win/gnumake-cygwin-flext.inc | 6 +-- .../grill/flext/buildsys/win/gnumake-cygwin.inc | 4 +- .../grill/flext/buildsys/win/gnumake-mingw.inc | 4 +- .../grill/flext/buildsys/win/max/config-cygwin.def | 51 ++++++++++++++++++++++ .../flext/buildsys/win/max/gnumake-cygwin-ext.inc | 1 + .../buildsys/win/max/gnumake-cygwin-flext.inc | 6 +++ .../flext/buildsys/win/max/gnumake-cygwin.inc | 10 +++++ .../grill/flext/buildsys/win/max/gnumake-mingw.inc | 4 +- .../grill/flext/buildsys/win/max/nmake-msvc.inc | 2 +- .../grill/flext/buildsys/win/pd/config-cygwin.def | 2 +- .../grill/flext/buildsys/win/pd/gnumake-cygwin.inc | 7 +-- externals/grill/flext/changes.txt | 1 + externals/grill/flext/source/flprefix.h | 2 +- externals/grill/flext/source/flstdc.h | 1 + 16 files changed, 108 insertions(+), 24 deletions(-) create mode 100644 externals/grill/flext/buildsys/win/max/config-cygwin.def create mode 100644 externals/grill/flext/buildsys/win/max/gnumake-cygwin-ext.inc create mode 100644 externals/grill/flext/buildsys/win/max/gnumake-cygwin-flext.inc create mode 100644 externals/grill/flext/buildsys/win/max/gnumake-cygwin.inc (limited to 'externals/grill/flext') 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 -- cgit v1.2.1