The International Simutrans Forum

 

Author Topic: Simutrans 120.4.1 download for Linux x64 doesn't seem to have an executable  (Read 876 times)

0 Members and 1 Guest are viewing this topic.

Offline DThunder518

  • *
  • Posts: 10
  • Languages: EN
Hello! I've been trying to get this latest version for my Linux machine, however when I download the ZIP:
 file http://sourceforge.net/projects/simutrans/files/simutrans/120-4-1/simulinux-x64-120-4-1.zip/download

It has the usual files/file structure, but not the simutrans executable. I checked the 120-4-0 download and it seems to be the same way. Is there something I'm just not seeing/doing? So far I haven't had any problems with earlier versions. :-[
I apologize if this posting is in the wrong section, I wasn't sure where to do it.

Offline Ters

  • Coder/patcher
  • Devotee
  • *
  • Posts: 5374
  • Languages: EN, NO
Looks just as wrong to me.

Offline An_dz

  • Web Admin
  • Administrator
  • *
  • Posts: 2836
  • D'oh
    • by An_dz
  • Languages: pt, en, it, (de)
It definitely does not have the executable. I believe most users 'upgraded' without noticing the lack of the executable.

Offline prissi

  • Developer
  • Administrator
  • *
  • Posts: 9313
  • Languages: De,EN,JP
I just took it from the build server without looking inside (no linux at home any more). Will investigate.

Offline Ters

  • Coder/patcher
  • Devotee
  • *
  • Posts: 5374
  • Languages: EN, NO
I tried following the instructions in readme.txt (trying to build using the Ubuntu on Windows thingy), but the configure script mentioned does not exist after checking out. There appears to be a step missing: running autoconf.

Offline userfriendly

  • *
  • Posts: 21
    • GitHub Profile
  • Languages: EN
Running the latest Ubuntu 18.04, using clang 6 / gcc 7.3, I'm able to build the latest version from GitHub's repository without any issues. Well, clang requires suppressing certain checks:
Code: [Select]
-Wno-inconsistent-missing-override -Wno-c++11-narrowing I never used autotools for this project and manually copied and edited the config template (for both GCC and clang). You can regenerate the configure script with
Code: [Select]
autoreconf -vfi but it will fail if you don't have svn. Anyway, I would suggest manually editing config.default file and giving it another go.

Offline Ters

  • Coder/patcher
  • Devotee
  • *
  • Posts: 5374
  • Languages: EN, NO
I've been self-compiling Simutrans since way before autoconf, so I'm not used to using it for configuring Simutrans builds. I just thought I'd give the instructions in the readme a spin. After filling in the blanks, and figuring out the right things to install, I got an executable out of it. I could even run it using Xming. It wouldn't run on my actual Linux box, though, since Freetype would not statically link and the versions did not match.

Offline userfriendly

  • *
  • Posts: 21
    • GitHub Profile
  • Languages: EN
Didn't realize you're a seasoned developer and correction - the configure script doesn't fail, just outputs an error message stating svn is not present. The config.default does get generated and make builds the executable. So it's probably something on the build server? I'm curious what the issue is, if that's the case.

Offline DanteLives

  • *
  • Posts: 11
I'm on Ubuntu 18.04 and trying to get the latest version of Simutrans to work.

Guys, I seriously need the dummy version of the previous posts on what to do to compile 120.4.1. All I know to do in compiling is to install the needed libraries, run the configuration script, and run make. As noted above that isn't working. Linking libraries, manually editing configuration files, svn. . .  all that is beyond me without specific instruction.

Code: [Select]
user@host:~/simutrans source$ ./configure
bash: ./configure: No such file or directory
Code: [Select]
user@host:~/simutrans source$ make
Makefile:21: *** Unkown BACKEND "", must be one of "allegro gdi opengl sdl sdl2 mixer_sdl mixer_sdl2 posix".  Stop.
Code: [Select]
user@host:~/simutrans source$ -Wno-inconsistent-missing-override -Wno-c++11-narrowing
-Wno-inconsistent-missing-override: command not found
Code: [Select]
user@host:~/simutrans source$ autoreconf -vfi
autoreconf: 'configure.ac' or 'configure.in' is required

I have all the libraries listed in the readme file including lib2sdl-dev. I have clang 6 and gcc 7.
« Last Edit: October 10, 2018, 07:51:40 PM by DanteLives »

Offline Ters

  • Coder/patcher
  • Devotee
  • *
  • Posts: 5374
  • Languages: EN, NO
You need to run autoconf before ./configure. Alternatively, you can set up config.default manually.

Offline DanteLives

  • *
  • Posts: 11
Okay, prior to Ters' post about running autoconf I stumbled through and made some progress (it's compiling *crossed fingers). I copied config.default.in to config.default and changed these lines as follows:

Code: [Select]
BACKEND = sdl2
Code: [Select]
COLOUR_DEPTH = 16
Code: [Select]
OSTYPE = linux
Code: [Select]
# FLAGS = @flags@ @endian@
This caused make to run without exiting with an error. It's currently compiling. I'll come back and edit this post to report the result when it's done.

Offline DanteLives

  • *
  • Posts: 11
And. . .  *sigh* it exited with this error after much running:

Code: [Select]
===> LD  /home/user/simutrans
g++: error: source/sim: No such file or directory
common.mk:21: recipe for target '/home/user/simutrans' failed
make: *** [/home/user/simutrans] Error 1

I tried autoconf with this result:

Code: [Select]
user@host:~/simutrans source$ autoconf
autoconf: error: no input file

Offline DanteLives

  • *
  • Posts: 11
I am about to bang my head against a wall.  :( Here's what happened.

I compared config.default.in to default.template. From the comments towards the end of default.template I figured I needed to comment out these lines as so.

Code: [Select]
#MAKEOBJ_PROGDIR = $(shell pwd)
#NETTOOL_PROGDIR = $(shell pwd)
#PROGDIR  = $(shell pwd)

After that I ran make and it exited cleanly. And then. . . *drum roll* I found NO EXECUTABLE FILE. There's now a subdirectory titled "simutrans." When I go there the directory looks the same as the contents of simulinux-x64-12-4-1.zip. I compiled from simutrans-src-120-4-1.zip.

ARGH! (sorry, I had to get that out)

So, do I need to get different source files to compile from? What gives? How can a compiler work through a makefile and not produce an executable file? I thought that was the whole point of compiling.

BTW, I'm still not understanding autoconf. I've had it installed this whole time. The man file talks about needing a configure.in file for it. There is no configure.in file in the zip. Was I supposed to target config.default.in? Before or after editing that file? Either way it seems moot because I still have no executable after running make.
« Last Edit: October 10, 2018, 09:59:28 PM by DanteLives »

Offline TurfIt

  • Dev Team, Coder/patcher
  • Devotee
  • *
  • Posts: 1309
Code: [Select]
# Output directories:
#
# use this put objects file in same directory, where the sources are (not recommended):
# ... otherwise defaults to 'build/default')
#
# BUILDDIR = $(shell pwd)

Offline DanteLives

  • *
  • Posts: 11
The reply that I quote at the end of this post was not as helpful as it may have been intended to be. I'm uncertain what I was supposed to do with that information.

I found the build/default sub-directory. In it was a file called "sim." I try running that and it exited with an error that it couldn't find certain fonts. I can find the fonts myself in a sub-directory to simutrans, but the program said it was using the build/default directory as "work dir" and the simutrans directory is elsewhere.
Code: [Select]
user@host:~/simutrans source/build/default$ ./sim
Use work dir /home/user/simutrans source/build/default/
Reading low level config data ...
SDL Driver: x11
Error: Cannot open 'font/prop.fnt'
Error: Cannot open 'font/prop.fnt'
No fonts found!Error: No fonts found!

I'm seriously confused. I don't know if I need to change settings and recompile or if there are other settings I need to change.

Code: [Select]
# Output directories:
#
# use this put objects file in same directory, where the sources are (not recommended):
# ... otherwise defaults to 'build/default')
#
# BUILDDIR = $(shell pwd)

Offline userfriendly

  • *
  • Posts: 21
    • GitHub Profile
  • Languages: EN
Move the executable to the simutrans directory, within simutrans. Get the paks you desire and optionally get languages.
Code: [Select]
mv /home/user/simutrans/build/default/sim /home/user/simutrans/simutrans
cd /home/user/simutrans
./get_pak.h
# You may have to get the lang files as well, but I'm not sure.
# ./get_lang_files.sh
cd simutrans
./sim

Offline DanteLives

  • *
  • Posts: 11
Just before I read userfriendly's reply I got it to work by doing the reverse: I moved everything in the simutrans directory into build/default. I then put a pak directory in there and it runs.

I feel like I just recreated Frankenstein's monster to get here. I've compiled programs before and I've never had to restructure directories or move files to get it to run. I did nothing like what the readme file says.

Offline prissi

  • Developer
  • Administrator
  • *
  • Posts: 9313
  • Languages: De,EN,JP
The readme has not even been touched when autoconf was added. I think it is seriously out of data. I was also never very keen on the build directory myself, so this is why the nightly fails to contain anything useful.

However, that you have to move other files to an executable is not very new, especially there are no pak sets with a default simutrans. Still it should be meantioned somewhere.

Offline prissi

  • Developer
  • Administrator
  • *
  • Posts: 9313
  • Languages: De,EN,JP
Ok, the new distribution scropt now takes folder location into account and also the readme has been updated.

Offline Ters

  • Coder/patcher
  • Devotee
  • *
  • Posts: 5374
  • Languages: EN, NO
Move the executable to the simutrans directory, within simutrans. Get the paks you desire and optionally get languages.
Code: [Select]
mv /home/user/simutrans/build/default/sim /home/user/simutrans/simutrans
cd /home/user/simutrans
./get_pak.h
# You may have to get the lang files as well, but I'm not sure.
# ./get_lang_files.sh
cd simutrans
./sim

I think it's best to keep the build directories and the ones where you play Simutrans separate. After running make, copy the files from the simutrans subdirectory, and the executable from the sub-directory of the build directory, into where you want to have Simutrans installed. In my case, it is something like (cwd = ~/development/simutrans):
Code: [Select]
cp simutrans ~/simutrans
cp build/default/sim ~/simutrans/
(I don't bother renaming the executable from sim to simutrans.)
Then I manually download the english base text from the translator site, and copy in the pak set which I have also built myself.

The readme has not even been touched when autoconf was added.
Then how can it even mention running configure?

Offline prissi

  • Developer
  • Administrator
  • *
  • Posts: 9313
  • Languages: De,EN,JP
There was a manual configure script almost ten years ago. Still, there was more obselete text.