From b8510c87be3a74307f4ad6122d75a353d350b84c Mon Sep 17 00:00:00 2001 From: Thomas Grill Date: Tue, 7 Jan 2003 04:38:10 +0000 Subject: "" svn path=/trunk/; revision=326 --- externals/grill/deljoin/license.txt | 4 +- externals/grill/deljoin/main.cpp | 2 +- externals/grill/delsplit/license.txt | 4 +- externals/grill/delsplit/main.cpp | 2 +- externals/grill/fftease/src/burrow~.cpp | 89 ++++++++++++++-------------- externals/grill/flext/config-pd-linux.txt | 5 +- externals/grill/flext/makefile.pd-linux | 16 +++-- externals/grill/flext/readme.txt | 76 +++++++++++------------- externals/grill/flext/source/flsupport.h | 16 ++--- externals/grill/vasp/license.txt | 4 +- externals/grill/xsample/config-pd-darwin.txt | 2 +- externals/grill/xsample/xsample.dsp | 10 ++-- 12 files changed, 116 insertions(+), 114 deletions(-) diff --git a/externals/grill/deljoin/license.txt b/externals/grill/deljoin/license.txt index d9d5a895..b421a0a8 100644 --- a/externals/grill/deljoin/license.txt +++ b/externals/grill/deljoin/license.txt @@ -1,5 +1,5 @@ deljoin - join a list with delimiter -Copyright (C) 2002 Thomas Grill +Copyright (C) 2002-2003 Thomas Grill This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -28,7 +28,7 @@ This package uses the flext C++ layer - See its license text below: --- flext ---------------------------------------------- flext - C++ layer for Max/MSP and pd (pure data) externals -Copyright (C) 2001,2002 Thomas Grill +Copyright (C) 2001-2003 Thomas Grill This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/externals/grill/deljoin/main.cpp b/externals/grill/deljoin/main.cpp index a6357163..1b02842d 100755 --- a/externals/grill/deljoin/main.cpp +++ b/externals/grill/deljoin/main.cpp @@ -2,7 +2,7 @@ deljoin - join a list with delimiter -Copyright (c) 2002 Thomas Grill (xovo@gmx.net) +Copyright (c) 2002-2003 Thomas Grill (xovo@gmx.net) For information on usage and redistribution, and for a DISCLAIMER OF ALL WARRANTIES, see the file, "license.txt," in this distribution. diff --git a/externals/grill/delsplit/license.txt b/externals/grill/delsplit/license.txt index 47ef13a0..2b7845ee 100644 --- a/externals/grill/delsplit/license.txt +++ b/externals/grill/delsplit/license.txt @@ -1,5 +1,5 @@ delsplit - split a delimited list-in-a-symbol -Copyright (C) 2002 Thomas Grill +Copyright (C) 2002-2003 Thomas Grill This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -28,7 +28,7 @@ This package uses the flext C++ layer - See its license text below: --- flext ---------------------------------------------- flext - C++ layer for Max/MSP and pd (pure data) externals -Copyright (C) 2001,2002 Thomas Grill +Copyright (C) 2001-2003 Thomas Grill This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/externals/grill/delsplit/main.cpp b/externals/grill/delsplit/main.cpp index c2e6945f..9880bf63 100755 --- a/externals/grill/delsplit/main.cpp +++ b/externals/grill/delsplit/main.cpp @@ -2,7 +2,7 @@ delsplit - split a delimited list-in-a-symbol -Copyright (c) 2002 Thomas Grill (xovo@gmx.net) +Copyright (c) 2002-2003 Thomas Grill (xovo@gmx.net) For information on usage and redistribution, and for a DISCLAIMER OF ALL WARRANTIES, see the file, "license.txt," in this distribution. diff --git a/externals/grill/fftease/src/burrow~.cpp b/externals/grill/fftease/src/burrow~.cpp index 7fbc45b8..ffb6c90a 100644 --- a/externals/grill/fftease/src/burrow~.cpp +++ b/externals/grill/fftease/src/burrow~.cpp @@ -28,6 +28,7 @@ protected: virtual V m_dsp(I n,S *const *in,S *const *out); virtual V m_signal(I n,S *const *in,S *const *out); + I blsz; BL _invert; I _inCount; I *_bitshuffle; @@ -45,8 +46,8 @@ protected: F *_trigland; private: - V Reset(); V Clear(); + V Delete(); V ms_thresh(F v) { _threshold = (float) (pow( 10., ((_thresh_dB = v) * .05))); } V ms_mult(F v) { _multiplier = (float) (pow( 10., ((_mult_dB = v) * .05))); } @@ -74,7 +75,8 @@ V burrow::setup(t_classid c) burrow::burrow(I argc,const t_atom *argv): _thresh_dB(-30),_mult_dB(-18), - _invert(false) + _invert(false), + blsz(0) { /* parse and set object's options given */ if(argc >= 1) { @@ -93,24 +95,25 @@ burrow::burrow(I argc,const t_atom *argv): if(CanbeBool(argv[2])) _invert = GetABool(argv[2]); else - post("%s - Invert flags must be a boolean value - set to %i",thisName(),_invert?1:0); + post("%s - Invert flag must be a boolean value - set to %i",thisName(),_invert?1:0); } ms_thresh(_thresh_dB); ms_mult(_mult_dB); - Reset(); + Clear(); - AddInSignal(2); - AddOutSignal(); + AddInSignal("Commands and original signal"); + AddInSignal("Modulating signal"); + AddOutSignal("Transformed signal"); } burrow::~burrow() { - Clear(); + Delete(); } -V burrow::Reset() +V burrow::Clear() { _bitshuffle = NULL; _trigland = NULL; @@ -122,7 +125,7 @@ V burrow::Reset() _output = NULL; } -V burrow::Clear() +V burrow::Delete() { if(_bitshuffle) delete[] _bitshuffle; if(_trigland) delete[] _trigland; @@ -142,31 +145,35 @@ V burrow::Clear() V burrow::m_dsp(I n,S *const *in,S *const *out) { - Clear(); - - /* preset the objects data */ const I _D = Blocksize(); - const I _N = _D* 4,_Nw = _N,_N2 = _N / 2,_Nw2 = _Nw / 2; - - _inCount = -_Nw; - - /* assign memory to the buffers */ - _bitshuffle = new I[_N*2]; - _trigland = new F[_N*2]; - _inputOne = new F[_Nw]; - _inputTwo = new F[_Nw]; - _Hwin = new F[_Nw]; - _Wanal = new F[_Nw]; - _Wsyn = new F[_Nw]; - _bufferOne = new F[_N]; - _bufferTwo = new F[_N]; - _channelOne = new F[_N+2]; - _channelTwo = new F[_N+2]; - _output = new F[_Nw]; - - /* initialize pv-lib functions */ - init_rdft( _N, _bitshuffle, _trigland); - makewindows( _Hwin, _Wanal, _Wsyn, _Nw, _N, _D, 0); + if(_D != blsz) { + blsz = _D; + + Delete(); + + /* preset the objects data */ + const I _N = _D*4,_Nw = _N,_N2 = _N/2,_Nw2 = _Nw/2; + + _inCount = -_Nw; + + /* assign memory to the buffers */ + _bitshuffle = new I[_N*2]; + _trigland = new F[_N*2]; + _inputOne = new F[_Nw]; + _inputTwo = new F[_Nw]; + _Hwin = new F[_Nw]; + _Wanal = new F[_Nw]; + _Wsyn = new F[_Nw]; + _bufferOne = new F[_N]; + _bufferTwo = new F[_N]; + _channelOne = new F[_N+2]; + _channelTwo = new F[_N+2]; + _output = new F[_Nw]; + + /* initialize pv-lib functions */ + init_rdft( _N, _bitshuffle, _trigland); + makewindows( _Hwin, _Wanal, _Wsyn, _Nw, _N, _D, 0); + } } V burrow::m_signal(I n,S *const *in,S *const *out) @@ -175,9 +182,8 @@ V burrow::m_signal(I n,S *const *in,S *const *out) S *outOne = out[0]; /* declare working variables */ - I i, j, even, odd; - const I _D = Blocksize(); - const I _N = _D* 4,_Nw = _N,_N2 = _N / 2,_Nw2 = _Nw / 2; + I i, j; + const I _D = blsz,_N = _D*4,_Nw = _N,_N2 = _N/2,_Nw2 = _Nw/2; /* fill our retaining buffers */ _inCount += _D; @@ -202,10 +208,9 @@ V burrow::m_signal(I n,S *const *in,S *const *out) /* convert to polar coordinates from complex values */ for ( i = 0; i <= _N2; i++ ) { + const I even = i<<1,odd = even+1; register F a,b; - odd = ( even = i<<1 ) + 1; - a = ( i == _N2 ? _bufferOne[1] : _bufferOne[even] ); b = ( i == 0 || i == _N2 ? 0. : _bufferOne[odd] ); @@ -224,12 +229,12 @@ V burrow::m_signal(I n,S *const *in,S *const *out) /* convert back to complex form, read for the inverse fft */ for ( i = 0; i <= _N2; i++ ) { - odd = ( even = i<<1 ) + 1; + const I even = i<<1,odd = even+1; - *(_bufferOne+even) = *(_channelOne+even) * cos( *(_channelOne+odd) ); + _bufferOne[even] = _channelOne[even] * cos( _channelOne[odd] ); if ( i != _N2 ) - *(_bufferOne+odd) = -(*(_channelOne+even)) * sin( *(_channelOne+odd) ); + _bufferOne[odd] = -_channelOne[even] * sin( _channelOne[odd] ); } /* do an inverse fft */ @@ -247,8 +252,6 @@ V burrow::m_signal(I n,S *const *in,S *const *out) _output[j] = _output[j+_D]; for (; j < _N; j++ ) _output[j] = 0.; - - /* restore state variables */ } diff --git a/externals/grill/flext/config-pd-linux.txt b/externals/grill/flext/config-pd-linux.txt index 018471f1..d5060e1b 100644 --- a/externals/grill/flext/config-pd-linux.txt +++ b/externals/grill/flext/config-pd-linux.txt @@ -25,5 +25,6 @@ TARGDIR=./pd-linux # (leave blank to omit installation) INSTDIR=/usr/local/lib/pd/flext - - +# additional compiler flags +UFLAGS= -mcpu=pentiumpro # gcc 2.95 +# UFLAGS= -mcpu=pentium3 -msse # gcc 3.2 diff --git a/externals/grill/flext/makefile.pd-linux b/externals/grill/flext/makefile.pd-linux index c48d8466..6e1901bf 100644 --- a/externals/grill/flext/makefile.pd-linux +++ b/externals/grill/flext/makefile.pd-linux @@ -15,11 +15,17 @@ include $(CONFIG) # compiler+linker stuff INCLUDES=$(PDPATH) $(SNDOBJ) $(STK) FLAGS=-DFLEXT_SYS=2 -CFLAGS=-O6 -fno-exceptions -CFLAGS+=-mcpu=pentiumpro # gcc 2.95 -# CFLAGS+=-mcpu=pentium3 -msse # gcc 3.2 -CFLAGS_D=-mcpu=pentiumpro -g -CFLAGS_T=-DFLEXT_THREADS + +# compiler flags for optimized build +CFLAGS=$(UFLAGS) -O6 -fno-exceptions + +# compiler flags for debug build +CFLAGS_D=$(UFLAGS) -g -fno-exceptions + +# additional flags for threading +CFLAGS_T=-DFLEXT_THREADS + +# libraries LIBS= # ---------------------------------------------- diff --git a/externals/grill/flext/readme.txt b/externals/grill/flext/readme.txt index 9eac2a1b..e95e51f7 100644 --- a/externals/grill/flext/readme.txt +++ b/externals/grill/flext/readme.txt @@ -11,38 +11,17 @@ Donations for further development of the package are highly appreciated. ---------------------------------------------------------------------------- -Package files: -- readme.txt: this one -- gpl.txt,license.txt: GPL license stuff -- flext.h: main include file -- flstdc.h: Basic definitions in classic C - some common vocabulary for the different platforms -- flbase.h,flbase.cpp: C++ interface -- flclass.h,flext.cpp: actual base classes for message (flext_base) and dsp (flext_dsp) processing -- fldsp.h,fldsp.cpp: code for signal externals -- flthr.h,flthr.cpp: code for threaded methods -- flsupport.h,flsupport.cpp: various flext support functions and classes -- flatom.cpp flatom_pr.cpp: code for functions dealing with lists of atoms -- flutil.cpp: additional utility functions -- flxlet.cpp: code for variable inlet/outlet stuff -- flattr.cpp: code for attribute stuff -- flinternals.h: internal definitions for flext library -- flbuf.cpp: buffer object handling for base classes -- fllib.cpp: code for handling external libraries in MaxMSP -- fldefs.h: definitions for internal flext use -- flcwmax*.h: trivial prefix headers for Max/MSP CodeWarrior projects -- flmspbuffer.h: MaxMSP's inofficial buffer.h included here for conveniance - -> for PD you need the pd source code (which is most likely part of the distribution) -> for Max/MSP you will also need the Max/MSP SDK (and for threading the Multiprocessing library) - -> if you choose to compile with SndObj support you will need the respective library -> download from: http://www.may.ie/academic/music/musictec/SndObj/main.html - -> if you choose to compile with STK support you will need the respective package and build a library -> download from: http://ccrma-www.stanford.edu/software/stk/ -> For linking it may preferable to use a library of all the STK objects. -> Under linux you can create one from the STK directory with: -> "g++ -c -pipe -I include -D __LINUX_OSS__ src/*.cpp && ar r libstk.a *.o && rm -f *.o" +o for PD you need the pd source code (which is most likely part of the distribution) +o for Max/MSP you will also need the Max/MSP SDK (and for threading the Multiprocessing library) + +o if you choose to compile with SndObj support you will need the respective library + download from: http://www.may.ie/academic/music/musictec/SndObj/main.html + +o if you choose to compile with STK support you will need the respective package and build a library + download from: http://ccrma-www.stanford.edu/software/stk/ + For linking it may preferable to use a library of all the STK objects. + Under linux you can create one from the STK directory with: + "g++ -c -pipe -I include -D __LINUX_OSS__ src/*.cpp && ar r libstk.a *.o && rm -f *.o" ---------------------------------------------------------------------------- @@ -50,40 +29,47 @@ The package should at least compile (and is tested) with the following compilers pd - Windows: ------------- -For any of these compilers define "FLEXT_SYS=2". - o Microsoft Visual C++ 6: edit "config-pd-msvc.txt" & run "build-pd-msvc.bat" o Borland C++ 5.5 (free): edit "config-pd-bcc.txt" & run "build-pd-bcc.bat" o Cygwin: edit "config-pd-cygwin.txt" & run "sh build-pd-cygwin.sh" + additional settings (e.g. target processor, compiler flags) can be made in makefile.pd-cygwin + +With your project using flext, be sure to define "FLEXT_SYS=2". + pd - linux: ----------- -Be sure to define "FLEXT_SYS=2". - o GCC: edit "config-pd-linux.txt" & run "sh build-pd-linux.sh" + additional settings (e.g. target processor, compiler flags) can be made in makefile.pd-linux + +With your project using flext, be sure to define "FLEXT_SYS=2". + pd - MacOSX: ----------- -Be sure to define "FLEXT_SYS=2". - o GCC: edit "config-pd-darwin.txt" & run "sh build-pd-darwin.sh" + additional settings (e.g. target processor, compiler flags) can be made in makefile.pd-darwin + +With your project using flext, be sure to define "FLEXT_SYS=2". + Max/MSP - MacOS 9: ------------------ -Be sure to define "FLEXT_SYS=1" - alternatively use the prefix file "flcwmax.h" - o Metrowerks CodeWarrior V6: edit & use the "flext.cw" project file You must have the following "Source Trees" defined: "flext" - Pointing to the flext main directory "Cycling74" - Pointing to the Cycling 74 SDK + +With your project using flext, be sure to define "FLEXT_SYS=1" +- alternatively use the prefix file "flcwmax.h" + + Max/MSP - MacOSX: ------------------ -Be sure to define "FLEXT_SYS=1" - alternatively use the prefix file "flcwmax-x.h" or "flcwmax-x-thr.h" for threading support. - o Metrowerks CodeWarrior V6: edit & use the "flext.cw" project file You must have the following "Source Trees" defined: @@ -92,6 +78,11 @@ You must have the following "Source Trees" defined: "Cycling74 OSX" - Pointing to the Cycling 74 SDK for xmax "MP SDK" - Pointing to the Multiprocessing SDK (for threading support) + +With your project using flext, be sure to define "FLEXT_SYS=1" +- alternatively use the prefix file "flcwmax-x.h" or "flcwmax-x-thr.h" for threading support. + + ---------------------------------------------------------------------------- Goals/features of the package: @@ -118,6 +109,7 @@ Version history: 0.4.2: - moved CLASS_MAINSIGNALIN to class scope (fixed "float method overwritten" warning) - unix makefiles: CXX should be commented out if standard (to enable environmental settings) +- introduced default returns for the different flext::GetA* functions 0.4.1: - full port for Max@OSX diff --git a/externals/grill/flext/source/flsupport.h b/externals/grill/flext/source/flsupport.h index 060da5d9..0c0c62c9 100644 --- a/externals/grill/flext/source/flsupport.h +++ b/externals/grill/flext/source/flsupport.h @@ -208,7 +208,7 @@ public: //! Get symbol string static const char *GetString(const t_symbol *s) { return s->s_name; } //! Check for symbol and get string - static const char *GetAString(const t_symbol *s) { return s?s->s_name:""; } + static const char *GetAString(const t_symbol *s,const char *def = "") { return s?GetString(s):def; } // --- atom stuff ---------------------------------------- @@ -246,7 +246,7 @@ public: static void SetSymbol(t_atom &a,const t_symbol *s) { a.a_type = A_SYMBOL; a.a_w.w_sym = const_cast(s); } #endif //! Check for a symbol and get its value - static t_symbol *GetASymbol(const t_atom &a) { return IsSymbol(a)?GetSymbol(a):NULL; } // NULL or empty symbol? + static t_symbol *GetASymbol(const t_atom &a,t_symbol *def = NULL) { return IsSymbol(a)?GetSymbol(a):def; } // NULL or empty symbol? //! Check whether the atom is a string static bool IsString(const t_atom &a) { return IsSymbol(a); } @@ -269,14 +269,14 @@ public: #if FLEXT_SYS == FLEXT_SYS_PD //! Check for a float and get its value - static float GetAFloat(const t_atom &a) { return IsFloat(a)?GetFloat(a):0; } + static float GetAFloat(const t_atom &a,float def = 0) { return IsFloat(a)?GetFloat(a):def; } //! Check whether the atom is an integer static bool IsInt(const t_atom &) { return false; } //! Access the integer value (without type check) static int GetInt(const t_atom &a) { return (int)GetFloat(a); } //! Check for an integer and get its value - static int GetAInt(const t_atom &a) { return (int)GetAFloat(a); } + static int GetAInt(const t_atom &a,int def = 0) { return (int)GetAFloat(a,(float)def); } //! Set the atom to represent a integer (depending on the system) static void SetInt(t_atom &a,int v) { a.a_type = A_FLOAT; a.a_w.w_float = (float)v; } @@ -287,20 +287,20 @@ public: //! Access the pointer value (without type check) static t_gpointer *GetPointer(const t_atom &a) { return a.a_w.w_gpointer; } //! Check for a pointer and get its value - static void *GetAPointer(const t_atom &a) { return IsPointer(a)?GetPointer(a):NULL; } + static void *GetAPointer(const t_atom &a,void *def = NULL) { return IsPointer(a)?GetPointer(a):def; } //! Set the atom to represent a pointer static void SetPointer(t_atom &a,void *p) { a.a_type = A_POINTER; a.a_w.w_gpointer = (t_gpointer *)p; } #elif FLEXT_SYS == FLEXT_SYS_MAX //! Check for a float and get its value - static float GetAFloat(const t_atom &a) { return IsFloat(a)?GetFloat(a):(IsInt(a)?GetInt(a):0); } + static float GetAFloat(const t_atom &a,float def = 0) { return IsFloat(a)?GetFloat(a):(IsInt(a)?GetInt(a):def); } //! Check whether the atom is an int static bool IsInt(const t_atom &a) { return a.a_type == A_INT; } //! Access the integer value (without type check) static int GetInt(const t_atom &a) { return a.a_w.w_long; } //! Check for an integer and get its value - static int GetAInt(const t_atom &a) { return IsInt(a)?GetInt(a):(IsFloat(a)?(int)GetFloat(a):0); } + static int GetAInt(const t_atom &a,int def = 0) { return IsInt(a)?GetInt(a):(IsFloat(a)?(int)GetFloat(a):def); } //! Set the atom to represent an integer static void SetInt(t_atom &a,int v) { a.a_type = A_INT; a.a_w.w_long = v; } @@ -309,7 +309,7 @@ public: //! Check whether the atom can be a pointer static bool CanbePointer(const t_atom &a) { return IsInt(a); } //! Check for a pointer and get its value - static void *GetAPointer(const t_atom &a) { return IsInt(a)?(void *)GetInt(a):NULL; } + static void *GetAPointer(const t_atom &a,void *def = NULL) { return IsInt(a)?(void *)GetInt(a):def; } //! Set the atom to represent a pointer static void SetPointer(t_atom &a,void *p) { SetInt(a,(int)p); } #else diff --git a/externals/grill/vasp/license.txt b/externals/grill/vasp/license.txt index 24063b2c..fecc0f5f 100644 --- a/externals/grill/vasp/license.txt +++ b/externals/grill/vasp/license.txt @@ -1,6 +1,6 @@ VASP modular - vector assembling signal processor Object library for Max/MSP and PD -Copyright (C) 2002 Thomas Grill +Copyright (C) 2002-2003 Thomas Grill This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License @@ -40,7 +40,7 @@ VASP modular uses some code - see the license texts below. --- flext ---------------------------------------------- flext - C++ layer for Max/MSP and pd (pure data) externals -Copyright (C) 2001,2002 Thomas Grill +Copyright (C) 2001-2003 Thomas Grill This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License diff --git a/externals/grill/xsample/config-pd-darwin.txt b/externals/grill/xsample/config-pd-darwin.txt index 005a3975..7fa15a68 100755 --- a/externals/grill/xsample/config-pd-darwin.txt +++ b/externals/grill/xsample/config-pd-darwin.txt @@ -1,5 +1,5 @@ # xsample - extended sample objects for Max/MSP and pd (pure data) -# Copyright (c) 2001,2002 Thomas Grill (xovo@gmx.net) +# Copyright (c) 2001-2003 Thomas Grill (xovo@gmx.net) # # your c++ compiler (if not g++) diff --git a/externals/grill/xsample/xsample.dsp b/externals/grill/xsample/xsample.dsp index 735b77c5..ec5bffb5 100644 --- a/externals/grill/xsample/xsample.dsp +++ b/externals/grill/xsample/xsample.dsp @@ -38,8 +38,8 @@ RSC=rc.exe # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 0 -# PROP Output_Dir "..\msvc" -# PROP Intermediate_Dir "..\msvc" +# PROP Output_Dir "pd-msvc\r" +# PROP Intermediate_Dir "pd-msvc\r" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XSAMPLE_EXPORTS" /YX /FD /c @@ -53,7 +53,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib pd.lib flext-pdwin.lib /nologo /dll /machine:I386 /libpath:"c:\programme\audio\pd\bin" /libpath:"..\flext\pd-msvc\\" +# ADD LINK32 kernel32.lib user32.lib pd.lib flext-pdwin.lib /nologo /dll /machine:I386 /out:"pd-msvc\xsample.dll" /libpath:"c:\programme\audio\pd\bin" /libpath:"..\flext\pd-msvc\\" !ELSEIF "$(CFG)" == "xsample - Win32 Debug" @@ -64,8 +64,8 @@ LINK32=link.exe # PROP BASE Target_Dir "" # PROP Use_MFC 0 # PROP Use_Debug_Libraries 1 -# PROP Output_Dir "..\msvc-debug" -# PROP Intermediate_Dir "..\msvc-debug" +# PROP Output_Dir "pd-msvc\d" +# PROP Intermediate_Dir "pd-msvc\d" # PROP Ignore_Export_Lib 0 # PROP Target_Dir "" # ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "XSAMPLE_EXPORTS" /YX /FD /GZ /c -- cgit v1.2.1