[PD-dev] compile pd with cygwin
Hans-Christoph Steiner
hans at eds.org
Thu Dec 6 03:25:30 CET 2007
Wow, that's awesome! So you are using X11 to display Pd? I am going
to try this tonight. Which version of Pd did you try?
.hc
On Dec 5, 2007, at 7:46 PM, Patrice Colet wrote:
> Cygwin1.dll have to be in pd/bin for running, and it require
> cygwin shell, Puredata into cygwin environment is working greatly
> even when Gem crashes.
>
>
>
> $ diff -uw configure.in.old configure.in
> --- configure.in.old 2007-11-04 23:08:24.000000000 +0100
> +++ configure.in 2007-12-06 00:25:36.035890800 +0100
> @@ -21,6 +21,9 @@
> AC_SUBST(OSNUMBER)
> AC_SUBST(EXTERNTARGET)
> AC_SUBST(ASIOSRC)
> +AC_SUBST(PID)
> +AC_SUBST(CYGDLL)
> +
>
> dnl other defaults
>
> @@ -232,6 +235,7 @@
> fi
> STRIPFLAG=-s
> GUINAME="pd-gui"
> + PID="pd-watchdog"
> if test x$USE_DEBUG_CFLAGS == "xyes";
> then
> MORECFLAGS=$MORECFLAGS" -g"
> @@ -300,7 +304,7 @@
> ../portmidi/porttime/ptmacosx_cf.c "
> STRIPFLAG=""
> GUINAME="libPdTcl.dylib"
> -
> + PID="pd-watchdog"
> # find the Tcl/Tk Frameworks
> if test -d "../../Frameworks";
> then
> @@ -334,10 +338,9 @@
> LDFLAGS=$LDFLAGS" -weak_framework Jack"
> fi
> fi
> -
> # only Windows uses ASIO, for the rest, set to blank
> ASIOSRC=
> -
> +EXT=
> if test `uname -s` == MINGW32_NT-5.0;
> then
> EXT=dll
> @@ -368,6 +371,46 @@
> GUIFLAGS=
> fi
>
> +if test `uname -s` == CYGWIN_NT-5.1 || \
> + test `uname -s` == CYGWIN_NT-5.0 || \
> + test `uname -s` == CYGWIN_NT-6.0 ;
> +then
> +
> + EXT=".exe"
> + MORECFLAGS="-mno-cygwin -DPD -DNT -DUSEAPI_PORTAUDIO -
> DUSEAPI_MMIO -DPA_LIT
> TLE_ENDIAN -DMSW -DPA19 -DPD_INTERNAL \
> + -I/cygdrive/c/Mingw/include -L/cygdrive/c/Mingw/lib \
> + -I../portaudio/pa_common -I../portaudio/pablio \
> + -I../portaudio/pa_asio -I../asio \
> + -mms-bitfields "$MORECFLAGS
> +
> + CYGDLL="cygwin1.dll"$CYGDLL
> + PDLIB=$PDLIB" -lwsock32 -lwinmm -lole32 -ltcl84 -ltk84 -lstdc++"
> +
> + SYSSRC="s_audio_pa.c s_audio_pablio.c s_audio_paring.c \
> + s_audio_mmio.c s_midi_mmio.c \
> + ../portaudio/pa_common/pa_allocation.c \
> + ../portaudio/pa_common/pa_converters.c \
> + ../portaudio/pa_common/pa_cpuload.c \
> + ../portaudio/pa_common/pa_dither.c \
> + ../portaudio/pa_common/pa_front.c \
> + ../portaudio/pa_common/pa_process.c \
> + ../portaudio/pa_common/pa_skeleton.c \
> + ../portaudio/pa_common/pa_stream.c \
> + ../portaudio/pa_common/pa_trace.c \
> + ../portaudio/pa_win/pa_win_util.c \
> + ../portaudio/pa_win/pa_win_hostapis.c \
> + ../portaudio/pa_win_wmme/pa_win_wmme.c \
> + ../portaudio/pa_win_ds/pa_win_ds.c \
> + ../portaudio/pa_win_ds/dsound_wrapper.c"
> +
> + ASIOSRC="../portaudio/pa_asio/iasiothiscallresolver.cpp \
> + ../portaudio/pa_asio/pa_asio.cpp ../asio/asio.cpp \
> + ../asio/asiodrivers.cpp ../asio/asiolist.cpp"
> + STRIPFLAG="--strip-unneeded"
> + GUINAME="pdtcl.dll"
> + PID="pd.com"
> + GUIFLAGS=
> +fi
> # support for jack, on either linux or darwin:
>
> if test x$jack == "xyes";
>
>
> ================================================================
>
>
> $ diff -uw makefile.in.old makefile.in
> --- makefile.in.old 2007-11-04 23:08:24.000000000 +0100
> +++ makefile.in 2007-12-06 00:50:20.832765800 +0100
> @@ -8,9 +8,11 @@
> VPATH = ../obj:./
> OBJ_DIR = ../obj
> BIN_DIR = ../bin
> -PDEXEC = $(BIN_DIR)/pd
> EXT= @EXT@
> +PDEXEC = $(BIN_DIR)/pd$(EXT)
> GUINAME= @GUINAME@
> +# pd-watchdog or pd.com?
> +PID= @PID@
>
> prefix = @prefix@
> exec_prefix = @exec_prefix@
> @@ -36,7 +38,8 @@
> LIB = @PDLIB@
>
> WARN_CFLAGS = -Wall -W -Wstrict-prototypes \
> - -Wno-unused -Wno-parentheses -Wno-switch
> + -Wno-unused -Wno-unused-parameter -Wno-parentheses -Wno-switch
> +
> ARCH_CFLAGS = -DPD
>
> CFLAGS = @CFLAGS@ $(ARCH_CFLAGS) $(WARN_CFLAGS) $(CPPFLAGS) $
> (MORECFLAGS)
> @@ -45,6 +48,12 @@
>
> SYSSRC += @SYSSRC@
>
> +#windows stuff
> +
> +PDDLL = pd.dll
> +
> +STRIP = strip --strip-unneeded -R .note -R .comment
> +
> ASIOSRC = @ASIOSRC@
>
> ASIOOBJ = $(ASIOSRC:.cpp=.o)
> @@ -89,21 +98,21 @@
> #
>
> .PHONY: pd gui externs all
> -
> -all: $(PDEXEC) $(BIN_DIR)/pd-watchdog $(BIN_DIR)/$(GUINAME) $
> (BIN_DIR)/pdsend \
>
> +all: $(BIN_DIR)/$(GUINAME) $(PDEXEC) $(BIN_DIR)/$(PID) $(BIN_DIR)/
> pdsend \
> $(BIN_DIR)/pdreceive $(BIN_DIR)/pd.tk externs
>
> bin: $(PDEXEC) $(BIN_DIR)/pd-watchdog $(BIN_DIR)/$(GUINAME) $
> (BIN_DIR)/pdsend \
>
> $(BIN_DIR)/pdreceive $(BIN_DIR)/pd.tk
>
> +
> $(OBJ) : %.o : %.c
> - $(CC) $(CFLAGS) $(GFLAGS) $(INCLUDE) -c -o $(OBJ_DIR)/$*.o
> $*.c
> + $(CC) $(CFLAGS) $(GFLAGS) -c -o $(OBJ_DIR)/$*.o $*.c
>
> $(GOBJ) : %.o : %.c
> $(CC) $(CFLAGS) $(GFLAGS) $(GINCLUDE) -c -o $(OBJ_DIR)/$*.o
> $*.c
>
> $(ASIOOBJ): %.o : %.cpp
> - $(CXX) $(CFLAGS) $(INCLUDE) -c -o $(OBJ_DIR)/$*.o $*.cpp
> + $(CXX) $(CFLAGS) -c -o $(OBJ_DIR)/$*.o $*.cpp
>
> pd: $(PDEXEC)
>
> @@ -118,25 +127,26 @@
> $(CC) $(CFLAGS) $(STRIPFLAG) -o $(BIN_DIR)/pd-watchdog
> s_watchdog.c
>
> $(BIN_DIR)/pdsend: u_pdsend.c $(BIN_DIR)
> - $(CC) $(CFLAGS) $(STRIPFLAG) -o $(BIN_DIR)/pdsend u_pdsend.c
> + $(CC) $(CFLAGS) $(STRIPFLAG) -o $(BIN_DIR)/pdsend
> u_pdsend.c $(LIB)
>
> $(BIN_DIR)/pdreceive: u_pdreceive.c $(BIN_DIR)
> - $(CC) $(CFLAGS) $(STRIPFLAG) -o $(BIN_DIR)/pdreceive
> u_pdreceive.c
> + $(CC) $(CFLAGS) $(STRIPFLAG) -o $(BIN_DIR)/pdreceive
> u_pdreceive.c $(LI
> B)
>
> -$(PDEXEC): $(OBJ) $(BIN_DIR)
> +$(BIN_DIR)/pd: $(OBJ) $(BIN_DIR)
> cd ../obj; $(CC) $(LDFLAGS) $(DBG_CFLAGS) -o $(PDEXEC) $
> (OBJ) \
> $(LIB)
>
> $(BIN_DIR)/pd-gui: $(GOBJ) $(GSRC)
> - cd ../obj; $(CC) $(INCLUDE) -o $(BIN_DIR)/$(GUINAME) $(GOBJ) \
> + cd $(OBJ_DIR); $(CC) $(CFLAG) $(LIB) -o $(BIN_DIR)/$
> (GUINAME) $(GOBJ) \
> $(GLIB)
>
> $(BIN_DIR)/pd.tk: u_main.tk
> cp u_main.tk $(BIN_DIR)/pd.tk
>
> +
> #this is for Max OSX only...
> $(BIN_DIR)/libPdTcl.dylib: $(GOBJ) $(GSRC)
> - cd ../obj && $(CC) $(CFLAGS) -dynamiclib -read_only_relocs
> warning \
> + cd $(OBJ_DIR) && $(CC) $(CFLAGS) -dynamiclib -
> read_only_relocs warning
> \
> -o $(BIN_DIR)/libPdTcl.dylib $(GOBJ) \
> -F at TCLTK_FRAMEWORKS_PATH@ \
> -framework Tcl -framework Tk -framework System \
> @@ -147,12 +157,33 @@
> @executable_path/../Frameworks/Tk.framework/Versions/8.4/Tk \
> ../bin/libPdTcl.dylib
>
> -# this is for Windows/MinGW (only?)
> +
> +# this is for mingw /cygwin
> +$(BIN_DIR)/pd.com: s_entry.o
> + cd $(OBJ_DIR); $(CC) $(LDFLAGS) -o pd.com s_entry.o $(LIBS) \
> + -L$(BIN_DIR) -lpd; $(STRIP) -s pd.com
> + cp $(OBJ_DIR)/pd.com $(BIN_DIR)
> +
> $(BIN_DIR)/pdtcl.dll: $(GOBJ)
> - cd $(BIN_DIR); dllwrap --export-all-symbols --output-def
> pdtcl.def \
> - --output-lib=pdtcl.a --dllname=$(GUINAME) $(OBJ_DIR)/
> t_tkcmd.o $(LIB) $(
> GLIB)
> + cd $(BIN_DIR); dllwrap $(CFLAGS) --output-def pdtcl.def \
> + --output-lib=pdtcl.a --dllname=pdtcl.dll $(OBJ_DIR)/
> t_tkcmd.o $(LIB) $(G
> LIB)
> strip --strip-unneeded $(BIN_DIR)/pdtcl.dll
>
> +$(BIN_DIR)/pd.exe: pd.dll pd.exe
> +
> +pd.exe: $(OBJ) $(BIN_DIR)
> + cd $(OBJ_DIR); $(CC) $(CFLAGS) $(LDFLAGS) $(DBG_CFLAGS) -o $
> (PDEXEC) s_e
> ntry.o $(LIB) \
> + -L$(BIN_DIR) -lpd
> + $(STRIP) -s $(BIN_DIR)/pd.exe
> +
> +
> +pd.dll: $(OBJ) $(ASIOOBJ)
> + cd $(OBJ_DIR); $(CXX) -shared $(LDFLAGS) -o pd.dll -mno-
> cygwin $(OBJ) $(
> ASIOOBJ) $(LIB) \
> + -Wl,--export-all-symbols -Wl,--out-implib=pd.a;
> + $(STRIP) $(OBJ_DIR)/pd.dll
> + cp $(OBJ_DIR)/pd.dll $(BIN_DIR)
> +
> +
> externs:
> cd ../extra/bonk~;make @EXTERNTARGET@
> cd ../extra/choice;make @EXTERNTARGET@
> @@ -203,17 +234,18 @@
> @echo "Pd install succeeded."
>
> local-clean:
> - -rm -f ../obj/* $(BIN_DIR)/pd $(BIN_DIR)/$(GUINAME) $
> (BIN_DIR)/pdsend \
> - $(BIN_DIR)/pdreceive $(BIN_DIR)/pd-watchdog m_stamp.c
> + -rm -f ../obj/* $(BIN_DIR)/pd* $(BIN_DIR)/$(GUINAME) $
> (BIN_DIR)/pdsend*
> \
> + $(BIN_DIR)/pdreceive* $(BIN_DIR)/pd-watchdog m_stamp.c
> -rm -f `find ../portaudio -name "*.o"`
> -rm -f *~
> - -(cd ../doc/6.externs; rm -f *.pd_linux)
> + -(cd ../doc/6.externs; rm -f *.pd_linux; rm -f *.dll)
> -rm -f makefile.dependencies
> touch makefile.dependencies
> chmod 666 makefile.dependencies
>
> extra-clean:
> -rm -f `find ../extra/ -name "*.pd_*"`
> + -rm -f `find ../extra/ -name "*.dll*"`
> -rm -f tags
>
> clean: extra-clean local-clean
> @@ -229,7 +261,7 @@
> depend: makefile.dependencies
>
> makefile.dependencies: makefile
> - $(CC) $(CPPFLAGS) -M $(SRC) > makefile.dependencies
> + $(CC) $(CFLAGS) -M $(SRC) > makefile.dependencies
>
> uninstall:
> rm -f -r $(libpddir)
------------------------------------------------------------------------
----
You can't steal a gift. Bird gave the world his music, and if you can
hear it, you can have it. - Dizzy Gillespie
More information about the Pd-dev
mailing list