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 > [email protected] > https://lists.puredata.info/listinfo/pd-dev _______________________________________________ Pd-dev mailing list [email protected] https://lists.puredata.info/listinfo/pd-dev
