Browse Source

Fix compatibility with Wine > 6.5

Signed-off-by: falkTX <falktx@falktx.com>
tags/v1.1.0
falkTX 3 years ago
parent
commit
4b4f68165f
Signed by: falkTX <falktx@falktx.com> GPG Key ID: CDBAA37ABC74FBA0
3 changed files with 61 additions and 17 deletions
  1. +1
    -1
      Makefile
  2. +15
    -10
      Makefile.mk
  3. +45
    -6
      README.md

+ 1
- 1
Makefile View File

@@ -4,7 +4,7 @@
# Created by falkTX # Created by falkTX
# #


VERSION = 1.0.0
VERSION = 1.1.0


all: all:
@echo "error: you must pass '32' or '64' as an argument to this Makefile in order to build WineASIO" @echo "error: you must pass '32' or '64' as an argument to this Makefile in order to build WineASIO"


+ 15
- 10
Makefile.mk View File

@@ -12,14 +12,17 @@ ifeq ($(M),)
$(error incorrect use of Makefile, M var is missing) $(error incorrect use of Makefile, M var is missing)
endif endif


wineasio_dll_MODULE = wineasio.dll

PREFIX = /usr PREFIX = /usr
SRCDIR = . SRCDIR = .
DLLS = wineasio.dll
DLLS = $(wineasio_dll_MODULE) $(wineasio_dll_MODULE).so


### Tools ### Tools


CC = gcc
WINECC = winegcc
CC = gcc
WINEBUILD = winebuild
WINECC = winegcc


### Common settings ### Common settings


@@ -50,9 +53,8 @@ else
CEXTRA += -O2 -DNDEBUG -fvisibility=hidden CEXTRA += -O2 -DNDEBUG -fvisibility=hidden
endif endif


### wineasio.dll sources and settings
### wineasio.dll settings


wineasio_dll_MODULE = wineasio.dll
wineasio_dll_C_SRCS = asio.c \ wineasio_dll_C_SRCS = asio.c \
main.c \ main.c \
regsvr.c regsvr.c
@@ -72,12 +74,11 @@ wineasio_dll_LDFLAGS = -shared \
-L/opt/wine-staging/lib/wine \ -L/opt/wine-staging/lib/wine \
-L/opt/wine-staging/lib$(M) \ -L/opt/wine-staging/lib$(M) \
-L/opt/wine-staging/lib$(M)/wine -L/opt/wine-staging/lib$(M)/wine
wineasio_dll_DLL_PATH =
wineasio_dll_DLLS = odbc32 \ wineasio_dll_DLLS = odbc32 \
ole32 \ ole32 \
winmm winmm
wineasio_dll_LIBRARY_PATH=
wineasio_dll_LIBRARIES= uuid
wineasio_dll_LIBRARY_PATH =
wineasio_dll_LIBRARIES = uuid


wineasio_dll_OBJS = $(wineasio_dll_C_SRCS:%.c=build$(M)/%.c.o) wineasio_dll_OBJS = $(wineasio_dll_C_SRCS:%.c=build$(M)/%.c.o)


@@ -88,7 +89,7 @@ C_SRCS = $(wineasio_dll_C_SRCS)
### Generic targets ### Generic targets


all: all:
build: rtaudio/include/asio.h $(DLLS:%=build$(M)/%.so)
build: rtaudio/include/asio.h $(DLLS:%=build$(M)/%)


### Build rules ### Build rules


@@ -105,5 +106,9 @@ build$(M)/%.c.o: %.c
### Target specific build rules ### Target specific build rules
DEFLIB = $(LIBRARY_PATH) $(LIBRARIES) $(DLL_PATH) DEFLIB = $(LIBRARY_PATH) $(LIBRARIES) $(DLL_PATH)


build$(M)/$(wineasio_dll_MODULE): $(wineasio_dll_OBJS)
$(WINEBUILD) --dll --fake-module -E $(wineasio_dll_MODULE).spec $^ > $@

build$(M)/$(wineasio_dll_MODULE).so: $(wineasio_dll_OBJS) build$(M)/$(wineasio_dll_MODULE).so: $(wineasio_dll_OBJS)
$(WINECC) $(wineasio_dll_LDFLAGS) -o $@ $(wineasio_dll_OBJS) $(wineasio_dll_LIBRARY_PATH) $(DEFLIB) $(wineasio_dll_DLLS:%=-l%) $(wineasio_dll_LIBRARIES:%=-l%)
$(WINECC) $^ $(wineasio_dll_LDFLAGS) $(wineasio_dll_LIBRARY_PATH) $(DEFLIB) \
$(wineasio_dll_DLLS:%=-l%) $(wineasio_dll_LIBRARIES:%=-l%) -o $@

+ 45
- 6
README.md View File

@@ -18,22 +18,56 @@ Do the following to build for 32-bit Wine.
make 32 make 32
``` ```


To install (substitute with the path to the 32-bit wine libs for your distro).
Do the following to build for 64-bit Wine.


```sh ```sh
sudo cp build32/wineasio.dll.so /usr/lib/i386-linux-gnu/wine/wineasio.dll.so
make 64
``` ```


Do the following to build for 64-bit Wine.
#### LEGACY WINE

To install on 32bit wine <= 6.5 (substitute with the path to the 32-bit wine libs for your distro).


```sh ```sh
make 64
sudo cp build32/wineasio.dll.so /usr/lib/i386-linux-gnu/wine/wineasio.dll.so
```

To install on 64bit wine <= 6.5 (substitute with the path to the 64-bit wine libs for your distro).

```sh
sudo cp build64/wineasio.dll.so /usr/lib/x86_64-linux-gnu/wine/wineasio.dll.so
```

Finally the dll must be registered in the wineprefix.
For both 32 and 64-bit wine do:

```sh
regsvr32 wineasio.dll

```

On a 64-bit system with wine supporting both 32 and 64-bit applications,
regsrv32 will register the 32-bit driver in a 64-bit prefix,
use the following command to register the 64-bit driver in a 64-bit wineprefix:

```sh
wine64 regsvr32 wineasio.dll
```

#### WINE > 6.5

To install on 32bit wine > 6.5 (substitute with the path to the 32-bit wine libs for your distro).

```sh
sudo cp build32/wineasio.dll /usr/lib/i386-linux-gnu/wine/i386-windows/wineasio.dll
sudo cp build32/wineasio.dll.so /usr/lib/i386-linux-gnu/wine/i386-unix/wineasio.dll.so
``` ```


To install (substitute with the path to the 64-bit wine libs for your distro).
To install on 64bit wine > 6.5 (substitute with the path to the 64-bit wine libs for your distro).


```sh ```sh
sudo cp build64/wineasio.dll.so /usr/lib/x86_64-linux-gnu/wine/wineasio.dll.so
sudo cp build64/wineasio.dll /usr/lib/x86_64-linux-gnu/wine/x86_64-windows/wineasio.dll
sudo cp build64/wineasio.dll.so /usr/lib/x86_64-linux-gnu/wine/x86_64-unix/wineasio.dll.so
``` ```


Finally the dll must be registered in the wineprefix. Finally the dll must be registered in the wineprefix.
@@ -52,6 +86,8 @@ use the following command to register the 64-bit driver in a 64-bit wineprefix:
wine64 regsvr32 wineasio.dll wine64 regsvr32 wineasio.dll
``` ```


#### CUSTOM WINEPREFIX

regsvr32 registers the ASIO COM object in the default prefix `~/.wine`. regsvr32 registers the ASIO COM object in the default prefix `~/.wine`.
To use another prefix specify it explicitly, like: To use another prefix specify it explicitly, like:


@@ -110,6 +146,9 @@ that overrides the JACK client name derived from the program name.


### CHANGE LOG ### CHANGE LOG


#### 1.1.0
* 24-NOV-2021: Fix compatibility with Wine > 6.5

#### 1.0.0 #### 1.0.0
* 14-JUL-2020: Add packaging script * 14-JUL-2020: Add packaging script
* 12-MAR-2020: Fix control panel startup * 12-MAR-2020: Fix control panel startup


Loading…
Cancel
Save