Signed-off-by: falkTX <falktx@falktx.com>tags/v1.1.0
| @@ -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" | ||||
| @@ -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 $@ | |||||
| @@ -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 | ||||