So far I'm getting...
s_entry.c(11) : fatal error C1083: Cannot open include file: 'windows.h': No suc h file or directory
Probably because I have to invoke it with the correct paths in the command line - I'll give that a look when I get home next.
cheers Miller
On Tue, Jun 27, 2017 at 09:27:34PM +0200, IOhannes m zmölnig wrote:
On 06/27/2017 12:33 AM, Miller Puckette wrote:
Maybe you can just omit asiolib.lib from makefile.msvc now?
ah interesting.
so i've tried to remove all the cruft from the makefile.msvc and now Pd builds on appveyor (both in i386 and amd64).
it also removes the VCSDK/VC9 cruft, which shouldn't actually be needed (afaict the ordinary workflow is to call a number of batch-files (vcvarsall.bat for the compiler, and SetEnv.cmd for the MS-SDK) to initialize some environment variables, including PATH, INCLUDES and LIB to make the compiler find the correct headers/libraries automatically).
this means that it should be much easier to build Pd with different versions of MSVC (without having to edit the makefile; i still haven't grokked how anybody is able to do serious stuff with a syntax that seems to be oblivious to quoting and escaping interacting with a system that heavily pushes towards backslashes and spaces in filenames)
@miller: could you try whether the attached makefile still works for your wine-builds. if not, I also have a slightly more ugly version that tries to follow the original behaviour a bit more strictly. i would of course be happy to receive any full build failures, in case of emergency.
(i'm not using a github pull-request for this, as it might require a few iterations to get the thing right).
gamsrd IOhannes
# Makefile for PD using Microsoft Visual C/C++ (MSVC) -- note defines # which will have to be adapted to whichever specific version of MSVC you # have lying around.
MSCC = cl MSLN = link COPY = copy DELETE = del
#VCSDK = "C:/Program Files/Microsoft SDKs/Windows/v6.0A" #VC = "C:/Program Files/Microsoft Visual Studio 9.0/VC"
PDINCLUDE = -I./
PDLIB = /NODEFAULTLIB:libcmt /NODEFAULTLIB:libcpmt /NODEFAULTLIB:oldnames \ /NODEFAULTLIB:libc /NODEFAULTLIB:uuid /NODEFAULTLIB:ole32 \ kernel32.lib \ wsock32.lib winmm.lib \ advapi32.lib setupapi.lib \ ../bin/pthreadVC.lib \ libcmt.lib oldnames.lib
AFLAGS = /D__i386__ # MSW, NT: legacy defines of Pd # WIN32: portmidi, portaudio # WINDOWS: portaudio # _WINDOWS: unused! CFLAGS = /nologo \ /W3 /Ox $(AFLAGS) \ /DMSW /DNT /DWIN32 /DWINDOWS /D_WINDOWS \ /DPD /DPD_INTERNAL \ /DUSEAPI_MMIO /DUSEAPI_PORTAUDIO \ /DPA_LITTLE_ENDIAN /DPA19 \ /D_CRT_SECURE_NO_WARNINGS LFLAGS = /nologo
SYSSRC = s_audio_pa.c s_audio_paring.c \ s_audio_mmio.c s_midi_pm.c
SRC = g_canvas.c g_graph.c g_text.c g_rtext.c g_array.c g_template.c g_io.c \ g_scalar.c g_traversal.c g_guiconnect.c g_readwrite.c g_editor.c g_clone.c \ g_all_guis.c g_bang.c g_hdial.c g_hslider.c g_mycanvas.c g_numbox.c \ g_toggle.c g_vdial.c g_vslider.c g_vumeter.c \ m_pd.c m_class.c m_obj.c m_atom.c m_memory.c m_binbuf.c \ m_conf.c m_glob.c m_sched.c \ s_main.c s_inter.c s_file.c s_print.c \ s_loader.c s_path.c s_entry.c s_audio.c s_midi.c s_utf8.c \ d_ugen.c d_ctl.c d_arithmetic.c d_osc.c d_filter.c d_dac.c d_misc.c \ d_math.c d_fft.c d_fft_fftsg.c d_array.c d_global.c \ d_delay.c d_resample.c d_soundfile.c \ x_arithmetic.c x_connective.c x_interface.c x_midi.c x_misc.c \ x_time.c x_acoustics.c x_net.c x_text.c x_gui.c x_list.c x_array.c \ x_scalar.c x_vexp.c x_vexp_if.c x_vexp_fun.c \ $(SYSSRC)
PADIR = ../portaudio/portaudio INCPA = -I$(PADIR)/include -I$(PADIR)/src/common -I$(PADIR)/src/os/win PASRC = $(PADIR)/src
PAOBJ = pa_stream.obj pa_trace.obj pa_process.obj \ pa_front.obj pa_dither.obj pa_cpuload.obj pa_converters.obj \ pa_allocation.obj pa_ringbuffer.obj \ pa_win_hostapis.obj pa_win_util.obj pa_win_waveformat.obj \ pa_win_wmme.obj # pa_win_wdmks.obj
PMDIR = ../portmidi/portmidi INCPM = -I$(PMDIR)/pm_common -I$(PMDIR)/pm_win -I$(PMDIR)/porttime -DNEWBUFFER SRCPM = $(PADIR)/pm_common/portmidi.c \ $(PMDIR)/pm_common/pmutil.c \ $(PMDIR)/porttime/porttime.c \ $(PMDIR)/porttime/ptwinmm.c \ $(PMDIR)/pm_win/pmwin.c \ $(PMDIR)/pm_win/pmwinmm.c
PMOBJ = portmidi.obj pmutil.obj porttime.obj ptwinmm.obj pmwin.obj pmwinmm.obj
OBJC = $(SRC:.c=.obj) $(PAOBJ) $(PMOBJ)
GSRC = t_main.c t_tkcmd.c
GOBJ = $(GSRC:.c=.obj)
ALLCF = $(CFLAGS) $(PDINCLUDE) $(INCPA) $(INCPM)
.SUFFIXES: .obj .c.obj: $(MSCC) /c $(ALLCF) /Tc$*.c
all: pd ../bin/pdsend.exe ../bin/pdreceive.exe
.PHONY: pd
pd: ../bin/pd.exe ../bin/pd.com
../bin/pd.exe: s_entry.obj ../bin/pd.lib $(MSLN) $(LFLAGS) /OUT:../bin/pd.exe /INCREMENTAL:NO s_entry.obj \ ../bin/pd.lib $(PDLIB)
../bin/pd.dll ../bin/pd.lib: $(OBJC) $(MSLN) /DLL /OUT:../bin/pd.dll /EXPORT:sys_main $(LFLAGS) $(OBJC) \ $(PDLIB)
../bin/pdsend.exe: u_pdsend.obj $(MSLN) $(LFLAGS) /out:../bin/pdsend.exe /INCREMENTAL:NO \ u_pdsend.obj $(PDLIB)
../bin/pdreceive.exe: u_pdreceive.obj $(MSLN) $(LFLAGS) /out:../bin/pdreceive.exe /INCREMENTAL:NO \ u_pdreceive.obj $(PDLIB)
../bin/pd.com: s_entry_com.obj ../bin/pd.lib $(MSLN) $(LFLAGS) /out:../bin/pd.com /INCREMENTAL:NO s_entry_com.obj \ ../bin/pd.lib $(PDLIB)
s_entry_com.obj: s_entry.c $(COPY) s_entry.c s_entry_com.c $(MSCC) /c -DCOMMANDVERSION s_entry_com.c $(DELETE) s_entry_com.c
PAAPI = -DPA_USE_WMME PACF= $(PAAPI) $(ALLCF) # explicit rules to compile portaudio sources: pa_stream.obj: $(PASRC)/common/pa_stream.c $(MSCC) /c $(PACF) $(PASRC)/common/pa_stream.c pa_trace.obj: $(PASRC)/common/pa_trace.c $(MSCC) /c $(PACF) $(PASRC)/common/pa_trace.c pa_process.obj: $(PASRC)/common/pa_process.c $(MSCC) /c $(PACF) $(PASRC)/common/pa_process.c pa_front.obj: $(PASRC)/common/pa_front.c $(MSCC) /c $(PACF) $(PASRC)/common/pa_front.c pa_dither.obj: $(PASRC)/common/pa_dither.c $(MSCC) /c $(PACF) $(PASRC)/common/pa_dither.c pa_cpuload.obj: $(PASRC)/common/pa_cpuload.c $(MSCC) /c $(PACF) $(PASRC)/common/pa_cpuload.c pa_converters.obj: $(PASRC)/common/pa_converters.c $(MSCC) /c $(PACF) $(PASRC)/common/pa_converters.c pa_allocation.obj: $(PASRC)/common/pa_allocation.c $(MSCC) /c $(PACF) $(PASRC)/common/pa_allocation.c pa_ringbuffer.obj: $(PASRC)/common/pa_ringbuffer.c $(MSCC) /c $(PACF) $(PASRC)/common/pa_ringbuffer.c
pa_win_hostapis.obj: $(PASRC)/os/win/pa_win_hostapis.c $(MSCC) /c $(PACF) $(PASRC)/os/win/pa_win_hostapis.c pa_win_util.obj: $(PASRC)/os/win/pa_win_util.c $(MSCC) /c $(PACF) $(PASRC)/os/win/pa_win_util.c pa_win_waveformat.obj: $(PASRC)/os/win/pa_win_waveformat.c $(MSCC) /c $(PACF) $(PASRC)/os/win/pa_win_waveformat.c pa_win_coinitialize.obj: $(PASRC)/os/win/pa_win_coinitialize.c $(MSCC) /c $(PACF) $(PASRC)/os/win/pa_win_coinitialize.c pa_win_wmme.obj: $(PASRC)/hostapi/wmme/pa_win_wmme.c $(MSCC) /c $(PACF) $(PASRC)/hostapi/wmme/pa_win_wmme.c pa_win_wdmks.obj: $(PADIR)/a_win_wdmks/pa_win_wdmks.c $(MSCC) /c $(PACF) \ -DWINVER=0x400 -DKSAUDIO_SPEAKER_DIRECTOUT \ $(PADIR)/pa_win_wdmks/pa_win_wdmks.c pa_asio.obj: $(PASRC)/hostapi/asio/pa_asio.cpp $(MSCC) /c $(PACF) $(PASRC)/hostapi/asio/pa_asio.cpp
portmidi.obj: $(PMDIR)/pm_common/portmidi.c $(MSCC) /c $(PACF) $(PMDIR)/pm_common/portmidi.c pmutil.obj: $(PMDIR)/pm_common/pmutil.c $(MSCC) /c $(PACF) $(PMDIR)/pm_common/pmutil.c pmwin.obj: $(PMDIR)/pm_win/pmwin.c $(MSCC) /c $(PACF) $(PMDIR)/pm_win/pmwin.c pmwinmm.obj: $(PMDIR)/pm_win/pmwinmm.c $(MSCC) /c $(PACF) $(PMDIR)/pm_win/pmwinmm.c porttime.obj: $(PMDIR)/porttime/porttime.c $(MSCC) /c $(PACF) $(PMDIR)/porttime/porttime.c ptwinmm.obj: $(PMDIR)/porttime/ptwinmm.c $(MSCC) /c $(PACF) $(PMDIR)/porttime/ptwinmm.c
# the following should also clean up "bin" but it doesn't because "bin" holds # precious stuff from elsewhere. clean: $(DELETE) *.obj
Pd-dev mailing list Pd-dev@lists.iem.at https://lists.puredata.info/listinfo/pd-dev