Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when cross-compiling from Linux to Windows: src/gentables/make_tables.exe: No such file or directory #477

Closed
realnc opened this issue Nov 28, 2018 · 2 comments

Comments

@realnc
Copy link
Contributor

realnc commented Nov 28, 2018

FluidSynth version

Git master and 2.0.2

Current behavior

When cross-compiling from Linux to Windows using MXE (https://mxe.cc), compilation fails with:

[  1%] Performing install step for 'gentables'
/bin/sh: /home/realnc/tmp/fluidsynth/build/src/gentables/make_tables.exe: No such file or directory

Steps to reproduce

Install and build the MXE toolchain ("make cc" should suffice), and then build Fluidsynth with:

i686-w64-mingw32.static-cmake
make

Other information

The issue is because of this line in src/CMakeLists.txt:

INSTALL_COMMAND ${CMAKE_CURRENT_BINARY_DIR}/gentables/make_tables${CMAKE_EXECUTABLE_SUFFIX} "${CMAKE_BINARY_DIR}/"

${CMAKE_EXECUTABLE_SUFFIX} is .exe, but when cross-compiling make_tables is a Linux binary without the .exe suffix.

cmake invocation output:

$ i686-w64-mingw32.static-cmake ../
== Using MXE wrapper: /home/realnc/opt/mxe/usr/bin/i686-w64-mingw32.static-cmake
     - cmake version 3.10.0
     - warnings for unused CMAKE_POLICY_DEFAULT variables can be ignored
== Using MXE toolchain: /home/realnc/opt/mxe/usr/i686-w64-mingw32.static/share/cmake/mxe-conf.cmake
== Using MXE runresult: /home/realnc/opt/mxe/usr/share/cmake/modules/TryRunResults.cmake
== Adding "-DCMAKE_BUILD_TYPE=Release"
loading initial cache file /home/realnc/opt/mxe/usr/share/cmake/modules/TryRunResults.cmake
-- The C compiler identification is GNU 8.2.0
-- Check for working C compiler: /home/realnc/opt/mxe/usr/bin/i686-w64-mingw32.static-gcc
-- Check for working C compiler: /home/realnc/opt/mxe/usr/bin/i686-w64-mingw32.static-gcc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Checking whether system has ANSI C header files
-- Looking for 8 include files dlfcn.h, ..., float.h
-- Looking for 8 include files dlfcn.h, ..., float.h - not found
-- ANSI C header files - not found
-- Looking for include file unistd.h
-- Looking for include file unistd.h - found
-- Looking for DIR in sys/stat.h;sys/types.h;dirent.h
-- Looking for DIR in sys/stat.h;sys/types.h;dirent.h - found
-- Looking for string.h
-- Looking for string.h - found
-- Looking for stdlib.h
-- Looking for stdlib.h - found
-- Looking for stdio.h
-- Looking for stdio.h - found
-- Looking for math.h
-- Looking for math.h - found
-- Looking for errno.h
-- Looking for errno.h - found
-- Looking for stdarg.h
-- Looking for stdarg.h - found
-- Looking for memory.h
-- Looking for memory.h - found
-- Looking for sys/mman.h
-- Looking for sys/mman.h - not found
-- Looking for sys/time.h
-- Looking for sys/time.h - found
-- Looking for sys/ioctl.h
-- Looking for sys/ioctl.h - not found
-- Looking for fcntl.h
-- Looking for fcntl.h - found
-- Looking for sys/socket.h
-- Looking for sys/socket.h - not found
-- Looking for netinet/in.h
-- Looking for netinet/in.h - not found
-- Looking for netinet/tcp.h
-- Looking for netinet/tcp.h - not found
-- Looking for arpa/inet.h
-- Looking for arpa/inet.h - not found
-- Looking for limits.h
-- Looking for limits.h - found
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for signal.h
-- Looking for signal.h - found
-- Looking for getopt.h
-- Looking for getopt.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Performing Test _have_inline
-- Performing Test _have_inline - Success
-- Performing Test _have_vla
-- Performing Test _have_vla - Success
-- Check if the system is big endian
-- Searching 16 bit integer
-- Looking for stddef.h
-- Looking for stddef.h - found
-- Check size of unsigned short
-- Check size of unsigned short - done
-- Using unsigned short
-- Check if the system is big endian - little endian
-- Looking for windows.h
-- Looking for windows.h - found
-- Looking for io.h
-- Looking for io.h - found
-- Looking for dsound.h
-- Looking for dsound.h - found
-- Looking for include files windows.h, mmsystem.h
-- Looking for include files windows.h, mmsystem.h - found
-- Looking for inet_ntop
-- Looking for inet_ntop - not found
-- Found clang-tidy
-- Found PkgConfig: /home/realnc/opt/mxe/usr/bin/i686-w64-mingw32.static-pkg-config (found version "0.28") 
-- Checking for modules 'glib-2.0>=2.6.5;gthread-2.0>=2.6.5'
--   Found glib-2.0, version 2.50.2
--   Found gthread-2.0, version 2.50.2
-- Checking for module 'sndfile>=1.0.0'
--   Found sndfile, version 1.0.28
-- Checking for module 'sndfile>=1.0.18'
--   Found sndfile, version 1.0.28
-- Checking for module 'libpulse-simple>=0.9.8'
--   Package libpulse-simple was not found in the pkg-config search path.
Perhaps you should add the directory containing `libpulse-simple.pc'
to the PKG_CONFIG_PATH environment variable
Package 'libpulse-simple', required by 'world', not found
-- Checking for module 'jack'
--   Package jack was not found in the pkg-config search path.
Perhaps you should add the directory containing `jack.pc'
to the PKG_CONFIG_PATH environment variable
Package 'jack', required by 'world', not found
-- Checking for module 'dbus-1>=1.0.0'
--   Found dbus-1, version 1.13.6
-- Looking for ladspa.h
-- Looking for ladspa.h - not found
-- Could NOT find READLINE (missing: READLINE_INCLUDE_DIR READLINE_LIBRARIES) 
-- Found OpenMP 201511
-- Found Doxygen: /usr/bin/doxygen (found version "1.8.14") found components:  doxygen dot 

**************************************************************
Summary:
Build type:            Release
Install Prefix:        /home/realnc/opt/mxe/usr/i686-w64-mingw32.static
libsndfile:            yes (with ogg vorbis support)
D-Bus:                 yes
PulseAudio:            no
JACK:                  no
ALSA:                  no
PortAudio:             no
OSS:                   no
MidiShare:             no
CoreAudio:             no
CoreMIDI:              no
Windows:               yes
DSound:                yes
WinMidi support:       yes
LADSPA support:        no
LASH support:          no
OS/2 DART support:     no
Audio to file driver:  yes
NETWORK Support :      yes
IPV6 Support :         no
Readline:              no
Samples type=float:    no (using double)
Profiling:             no
OpenMP 4.0:            yes
Multi-thread support   yes
Debug:                 no
Trap on FPE (debug):   no
Check FPE (debug):     no
**************************************************************


-- Configuring done
-- Generating done
CMake Warning:
  Manually-specified variables were not used by the project:

    CMAKE_POLICY_DEFAULT_CMP0017
    CMAKE_POLICY_DEFAULT_CMP0020


-- Build files have been written to: /home/realnc/tmp/fluidsynth/build
@derselbst
Copy link
Member

derselbst commented Nov 29, 2018 via email

@realnc
Copy link
Contributor Author

realnc commented Nov 29, 2018

As workaround, remove the ${CMAKE_EXECUTABLE_SUFFIX} from the line you've provided and try again.

I did that already, and gets it past the error. It then runs into another error, which I reported previously but then closed it (#475). I'll reopen it later and add build logs.

I did that this way to avoid having two separate issues in the same bug report.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants