File jack-mingw.diff of Package mingw64-jack
--- jack-1.9.4/common/JackControlAPI.h
+++ jack-1.9.4/common/JackControlAPI.h
@@ -26,7 +26,7 @@
#include "JackCompilerDeps.h"
#ifdef WIN32
-#ifdef __MINGW32__
+#if defined(__MINGW32__) && !defined(__MINGW64_VERSION_MAJOR)
#include <sys/types.h>
#else
typedef HANDLE sigset_t;
--- jack-1.9.4/common/JackPort.h
+++ jack-1.9.4/common/JackPort.h
@@ -101,7 +101,7 @@
// Since we are in shared memory, the resulting pointer cannot be cached, so align it here...
float* GetBuffer()
{
- return (float*)((long)fBuffer & ~15L) + 4;
+ return (float*)((size_t)fBuffer & ~15L) + 4;
}
int GetRefNum() const;
--- jack-1.9.4/common/JackLibGlobals.h
+++ jack-1.9.4/common/JackLibGlobals.h
@@ -29,6 +29,7 @@
#include "JackTime.h"
#include "JackClient.h"
#include "JackError.h"
+#include "JackControlAPI.h"
#include <assert.h>
#include <signal.h>
dummy
--- jack-1.9.4/common/JackConstants.h
+++ jack-1.9.4/common/JackConstants.h
@@ -60,7 +60,7 @@
#ifdef WIN32
#define jack_server_dir "server"
#define jack_client_dir "client"
-#define ADDON_DIR "jack"
+#define ADDON_DIR "lib\\jack"
#endif
#ifdef __APPLE__
--- jack-1.9.4/windows/portaudio/JackPortAudioDevices.cpp
+++ jack-1.9.4/windows/portaudio/JackPortAudioDevices.cpp
@@ -239,7 +239,7 @@
jack_info ( "Max inputs = %d", fDeviceInfo[id]->maxInputChannels );
jack_info ( "Max outputs = %d", fDeviceInfo[id]->maxOutputChannels );
-#ifdef WIN32
+#ifdef WIN32_notdefined /* We haven't built portaudio with the ASIO backend */
/* ASIO specific latency information */
if ( Pa_GetHostApiInfo(fDeviceInfo[id]->hostApi)->type == paASIO )
{
--- jack-1.9.4/windows/winmme/JackWinMMEDriver.cpp
+++ jack-1.9.4/windows/winmme/JackWinMMEDriver.cpp
@@ -121,7 +121,7 @@
HMIDIIN handle;
fMidiDestination[devindex].fIndex = i;
- MMRESULT ret = midiInOpen(&handle, fMidiDestination[devindex].fIndex, (DWORD)MidiInProc, (DWORD)fRingBuffer[devindex], CALLBACK_FUNCTION);
+ MMRESULT ret = midiInOpen(&handle, fMidiDestination[devindex].fIndex, (DWORD_PTR)MidiInProc, (DWORD_PTR)fRingBuffer[devindex], CALLBACK_FUNCTION);
if (ret == MMSYSERR_NOERROR) {
fMidiDestination[devindex].fHandle = handle;
--- /dev/null
+++ jack-1.9.4/Makefile
@@ -0,0 +1,305 @@
+# Simple manually written Makefile to build jack for Windows
+# No IDE, no Python-based thingies, no autofoo, no libtool. Just straight commands
+
+VPATH = common:windows
+
+all: \
+ libjackserver.dll \
+ libjack.dll \
+ jack_audioadapter.dll \
+ jack_dummy.dll \
+ jack_netadapter.dll \
+ jack_netmanager.dll \
+ jack_portaudio.dll \
+ jack_winmme.dll \
+ jackd.exe \
+ jack_connect.exe \
+ jack_disconnect.exe \
+ jack_load.exe \
+ jack_lsp.exe \
+ jack_metro.exe \
+ jack_test.exe \
+ jack_unload.exe
+
+INCLUDES = -Icommon -Icommon/jack -Iwindows -Iwindows/portaudio
+
+DEFINES = -DWIN32 -DNDEBUG -D_WINDOWS -D_MBCS -DREGEX_MALLOC -DSTDC_HEADERS
+
+# Just link all binaries with all the import libs.
+# The PE format won't actually refer to DLLs from which
+# nothing is imported anyway.
+
+LIBS = `pkg-config --libs samplerate portaudio-2.0` -lws2_32
+
+LIBJACKSERVER_SOURCES = \
+ common/JackAPI.cpp \
+ common/JackActivationCount.cpp \
+ common/JackArgParser.cpp \
+ common/JackAudioDriver.cpp \
+ common/JackAudioPort.cpp \
+ common/JackClient.cpp \
+ common/JackConnectionManager.cpp \
+ common/JackControlAPI.cpp \
+ common/JackDriver.cpp \
+ common/JackDriverLoader.cpp \
+ common/JackEngine.cpp \
+ common/JackEngineControl.cpp \
+ common/JackError.cpp \
+ common/JackExternalClient.cpp \
+ common/JackFrameTimer.cpp \
+ common/JackFreewheelDriver.cpp \
+ common/JackGlobals.cpp \
+ common/JackGraphManager.cpp \
+ common/JackInternalClient.cpp \
+ common/JackLoopbackDriver.cpp \
+ common/JackMessageBuffer.cpp \
+ common/JackMidiAPI.cpp \
+ common/JackMidiDriver.cpp \
+ common/JackMidiPort.cpp \
+ common/JackNetInterface.cpp \
+ common/JackNetTool.cpp \
+ common/JackPort.cpp \
+ common/JackPortType.cpp \
+ common/JackRestartThreadedDriver.cpp \
+ common/JackServer.cpp \
+ common/JackServerAPI.cpp \
+ common/JackServerGlobals.cpp \
+ common/JackShmMem.cpp \
+ common/JackThreadedDriver.cpp \
+ common/JackTools.cpp \
+ common/JackTransportEngine.cpp \
+ common/JackWaitThreadedDriver.cpp \
+ windows/JackNetWinSocket.cpp \
+ windows/JackWinNamedPipe.cpp \
+ windows/JackWinNamedPipeClientChannel.cpp \
+ windows/JackWinNamedPipeNotifyChannel.cpp \
+ windows/JackWinNamedPipeServerChannel.cpp \
+ windows/JackWinNamedPipeServerNotifyChannel.cpp \
+ windows/JackWinProcessSync.cpp \
+ windows/JackWinSemaphore.cpp \
+ windows/JackWinThread.cpp \
+
+LIBJACKSERVER_OBJECTS = \
+ getopt.o \
+ getopt1.o \
+ regex.o \
+ ringbuffer.o \
+ shm.o \
+ JackWinTime.server.o \
+ libjackserver.res.o
+
+LIBJACK_SOURCES = \
+ common/JackActivationCount.cpp \
+ common/JackAPI.cpp \
+ common/JackAudioPort.cpp \
+ common/JackClient.cpp \
+ common/JackConnectionManager.cpp \
+ common/JackEngineControl.cpp \
+ common/JackError.cpp \
+ common/JackFrameTimer.cpp \
+ common/JackGlobals.cpp \
+ common/JackGraphManager.cpp \
+ common/JackLibAPI.cpp \
+ common/JackLibClient.cpp \
+ common/JackMessageBuffer.cpp \
+ common/JackMidiAPI.cpp \
+ common/JackMidiPort.cpp \
+ common/JackPort.cpp \
+ common/JackPortType.cpp \
+ common/JackShmMem.cpp \
+ common/JackTools.cpp \
+ common/JackTransportEngine.cpp \
+ windows/JackWinNamedPipe.cpp \
+ windows/JackWinNamedPipeClientChannel.cpp \
+ windows/JackWinProcessSync.cpp \
+ windows/JackWinSemaphore.cpp \
+ windows/JackWinServerLaunch.cpp \
+ windows/JackWinThread.cpp
+
+LIBJACK_OBJECTS = \
+ regex.o \
+ shm.o \
+ JackWinTime.o \
+ libjack.res.o
+
+JACK_AUDIOADAPTER_SOURCES = \
+ common/JackAudioAdapter.cpp \
+ common/JackAudioAdapterFactory.cpp \
+ common/JackAudioAdapterInterface.cpp \
+ common/JackLibSampleRateResampler.cpp \
+ common/JackResampler.cpp \
+ windows/portaudio/JackPortAudioAdapter.cpp \
+ windows/portaudio/JackPortAudioDevices.cpp \
+
+JACK_AUDIOADAPTER_OBJECTS = \
+ jackaudioadapter.res.o
+
+JACK_DUMMY_SOURCES = \
+ common/JackDummyDriver.cpp
+
+JACK_NETADAPTER_SOURCES = \
+ common/JackAudioAdapter.cpp \
+ common/JackAudioAdapterInterface.cpp \
+ common/JackLibSampleRateResampler.cpp \
+ common/JackNetAdapter.cpp \
+ common/JackResampler.cpp
+
+JACK_NETADAPTER_OBJECTS = \
+ jacknetadapter.res.o
+
+JACK_NETMANAGER_SOURCES = \
+ common/JackNetManager.cpp
+
+JACK_NETMANAGER_OBJECTS = \
+ jacknetmanager.res.o
+
+JACK_PORTAUDIO_SOURCES = \
+ windows/portaudio/JackPortAudioDevices.cpp \
+ windows/portaudio/JackPortAudioDriver.cpp
+
+JACK_PORTAUDIO_OBJECTS = \
+ jackportaudio.res.o
+
+JACK_WINMME_SOURCES = \
+ windows/winmme/JackWinMMEDriver.cpp
+
+JACK_WINMME_OBJECTS = \
+ jackwinmme.res.o
+
+JACKD_SOURCES = \
+ common/Jackdmp.cpp
+
+JACKD_OBJECTS = \
+ getopt.o \
+ getopt1.o
+
+JACK_CONNECT_SOURCES = \
+ windows/getopt.c \
+ windows/getopt1.c \
+ example-clients/connect.c
+
+JACK_UNLOAD_SOURCES = \
+ example-clients/ipunload.c
+
+JACK_LOAD_SOURCES = \
+ example-clients/ipload.c
+
+JACK_LSP_SOURCES = \
+ example-clients/lsp.c
+
+JACK_METRO_SOURCES = \
+ example-clients/metro.c
+
+JACK_TEST_SOURCES = \
+ tests/test.cpp
+
+libjackserver.dll: $(LIBJACKSERVER_SOURCES) $(LIBJACKSERVER_OBJECTS)
+ $(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) \
+ -DLIBJACKDMP_EXPORTS -DSERVER_SIDE \
+ -shared -o $@ -Wl,--out-implib=libjackserver.dll.a \
+ $(LIBJACKSERVER_SOURCES) $(LIBJACKSERVER_OBJECTS) \
+ $(LIBS) -lstdc++
+
+libjack.dll: $(LIBJACK_SOURCES) $(LIBJACK_OBJECTS)
+ $(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) \
+ -DLIBJACKMP_EXPORTS \
+ -shared -o $@ -Wl,--out-implib=libjack.dll.a \
+ $(LIBJACK_SOURCES) $(LIBJACK_OBJECTS) \
+ $(LIBS) -lstdc++
+
+jack_audioadapter.dll: $(JACK_AUDIOADAPTER_SOURCES) $(JACK_AUDIOADAPTER_OBJECTS) libjackserver.dll
+ $(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) \
+ -DBUILD_DLL -DSERVER_SIDE \
+ -shared -o $@ \
+ $(JACK_AUDIOADAPTER_SOURCES) $(JACK_AUDIOADAPTER_OBJECTS) libjackserver.dll.a \
+ $(LIBS) -lstdc++
+
+jack_dummy.dll: $(JACK_DUMMY_SOURCES) libjackserver.dll
+ $(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) \
+ -DBUILD_DLL -DSERVER_SIDE \
+ -shared -o $@ \
+ $(JACK_DUMMY_SOURCES) libjackserver.dll.a \
+ $(LIBS) -lstdc++
+
+jack_netadapter.dll: $(JACK_NETADAPTER_SOURCES) $(JACK_NETADAPTER_OBJECTS) libjackserver.dll
+ $(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) \
+ -DBUILD_DLL -DSERVER_SIDE \
+ -shared -o $@ \
+ $(JACK_NETADAPTER_SOURCES) $(JACK_NETADAPTER_OBJECTS) libjackserver.dll.a \
+ $(LIBS) -lstdc++
+
+jack_netmanager.dll: $(JACK_NETMANAGER_SOURCES) $(JACK_NETMANAGER_OBJECTS) libjackserver.dll
+ $(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) \
+ -DSERVER_SIDE \
+ -shared -o $@ \
+ $(JACK_NETMANAGER_SOURCES) $(JACK_NETMANAGER_OBJECTS) libjackserver.dll.a \
+ $(LIBS) -lstdc++
+
+jack_portaudio.dll: $(JACK_PORTAUDIO_SOURCES) $(JACK_PORTAUDIO_OBJECTS) libjackserver.dll
+ $(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) \
+ -D_USRDLL -DJACK_PORTAUDIO_EXPORTS -DSERVER_SIDE \
+ -shared -o $@ \
+ $(JACK_PORTAUDIO_SOURCES) $(JACK_PORTAUDIO_OBJECTS) libjackserver.dll.a \
+ $(LIBS) -lstdc++
+
+jack_winmme.dll: $(JACK_WINMME_SOURCES) $(JACK_WINMME_OBJECTS) libjackserver.dll
+ $(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) \
+ -D_USRDLL -DSERVER_SIDE \
+ -shared -o $@ \
+ $(JACK_WINMME_SOURCES) $(JACK_WINMME_OBJECTS) libjackserver.dll.a \
+ $(LIBS) -lstdc++
+
+jackd.exe: $(JACKD_SOURCES) $(JACKD_OBJECTS) libjackserver.dll
+ $(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) \
+ -D_CONSOLE \
+ -o $@ \
+ $(JACKD_SOURCES) $(JACKD_OBJECTS) libjackserver.dll.a \
+ $(LIBS) -lstdc++
+
+jack_connect.exe: $(JACK_CONNECT_SOURCES) libjack.dll
+ $(CC) $(CFLAGS) $(INCLUDES) $(DEFINES) \
+ -o $@ \
+ $(JACK_CONNECT_SOURCES) libjack.dll.a \
+ $(LIBS)
+
+jack_disconnect.exe: jack_connect.exe
+ cp $^ $@
+
+jack_load.exe: $(JACK_LOAD_SOURCES) libjack.dll
+ $(CC) $(CFLAGS) $(INCLUDES) $(DEFINES) \
+ -o $@ \
+ $(JACK_LOAD_SOURCES) libjack.dll.a \
+ $(LIBS)
+
+jack_lsp.exe: $(JACK_LSP_SOURCES) libjack.dll
+ $(CC) $(CFLAGS) $(INCLUDES) $(DEFINES) \
+ -o $@ \
+ $(JACK_LSP_SOURCES) libjack.dll.a \
+ $(LIBS)
+
+jack_metro.exe: $(JACK_METRO_SOURCES) libjack.dll
+ $(CC) $(CFLAGS) $(INCLUDES) $(DEFINES) \
+ -o $@ \
+ $(JACK_METRO_SOURCES) libjack.dll.a \
+ $(LIBS)
+
+jack_test.exe: $(JACK_TEST_SOURCES) libjack.dll
+ $(CXX) $(CXXFLAGS) $(INCLUDES) $(DEFINES) \
+ -o $@ \
+ $(JACK_TEST_SOURCES) libjack.dll.a \
+ $(LIBS) -lstdc++
+
+jack_unload.exe: $(JACK_UNLOAD_SOURCES) libjack.dll
+ $(CC) $(CFLAGS) $(INCLUDES) $(DEFINES) \
+ -o $@ \
+ $(JACK_UNLOAD_SOURCES) libjack.dll.a \
+ $(LIBS)
+
+%.res.o: %.rc
+ $(WINDRES) $^ $@
+
+%.server.o: %.c
+ $(CC) $(CFLAGS) $(INCLUDES) $(DEFINES) -DSERVER_SIDE -c $^ -o $@
+
+%.o: %.c
+ $(CC) $(CFLAGS) $(INCLUDES) $(DEFINES) -c $^ -o $@