Kompilacja programu genesis 2.4

Chciałbym zainstalować na manjaro program genesis.
http://genesis-sim.org/GENESIS/genesis.html
Pobrałem paczkę z githuba w wersji 2.4 stabilna. Robię wszystko według instrukcji, ale nie udaje się zrobić make all. Udało mi się to skompilować dla Ubuntu. Wolałbym mieć to na manjaro, bo to mój główny system a ubuntu zainstalowałem tylko dla tego programu.

Kiedy zapuszczam make clean a potem make all to na koniec pokazuje się to:
All Libs Compiled
make[1]: *** Brak reguł do zrobienia obiektu ‘diskio/interface/netcdf/netcdflib.o’, wymaganego przez ‘genesis’. Stop.
make[1]: Opuszczenie katalogu ‘/home/radeit/Pobrane/genesis-2.4-master/genesis/src’
make: *** [Makefile:1505: default] Błąd 2

Czy da się coś na to poradzić? Czy jest to problem z jądrem manjaro czy może brakuje jakiejś biblioteki?

To najpewniej błąd w składni pliku Makefile – upewnij się, że odkomentowałeś właściwe linie w odpowiednim pliku.

# ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~
# System:	Linux 1.2.x and up on Intel x86-based, Xeon, and AMD
#               64-bit systems. This should be used for most Linux versions.
# Compiler:	GCC
# ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~  ~

## 2019-05-04
## Termcap/ncurses issues: The shell library makes reference to the
## termcap library. Most Linux distributions have an ncurses library
## which includes termcap emulation.  GENESIS appears to work
## properly with the ncurses supplied with recent Red Hat and
## Ubuntu/Debian Linux libraries.  However, linking with
## ncurses is known to have resulted in core dumps in GENESIS in older
## Linux versions.
##
## If you encounter problems linking with the TERMCAP flags listed below
## or the GENESIS command line interface does not work, try the
## following alternatives:
##
## 1) TERMCAP = -ltermcap
##
## 2) (If you are using SuSE Linux)
##    TERMCAP = /usr/lib/termcap/libtermcap.a
##
## 3) (If you are using Red Hat Linux prior to version 6.0)
##    TERMCAP = /usr/lib/libtermcap.a
##
## 4) The safest option is to use
##      TERMCAP=
##      TERMOPT=-DPLAINTERM
##    This provides a basic terminal interface to the 'genesis' shell,
##    but without the ability to recall and edit previous commands.
##

 MACHINE=Linux
 OS=BSD

 XINCLUDE=-I/usr/include/X11

## Choose ONE XLIB line to uncomment:
## For older 32-bit architectures
# XLIB=/usr/lib
## For recent 64-bit machines
  XLIB=/usr/lib64

## Older versions of Linux that use X11R6 may need one of these:
## XINCLUDE=-I/usr/X11R6/include
## XLIB=/usr/X11R6/lib
## XLIB=/usr/X11R6/lib64

## cc is usually a link to gcc. Provide any alternate compilers here'
## such as cc or the Intel C Compiler icc.
## 
 CC=cc

## Old (and probably broken) gcc installations may need the full
## path to cpp (preferably NOT one in /lib). If there isn't a 
## [link to] cpp in the same directory as 'cc', you should consider
## [re]installing a newer gcc.
## Another alternative is to use
## CPP=gcc -E -P

 CPP=cpp -P

## Choose ONE CFLAGS line to uncomment:
## For 32-bit architectures
# CFLAGS=-O2 -D__NO_MATH_INLINES
## For 64-bit architectures
 CFLAGS=-O2 -D__NO_MATH_INLINES -DLONGWORDS $(GCMALLOC_FLAG) $(GCMALLOCINCLUDE)

 LD=ld

## !!!
## Don't uncomment the next line unless you get errors about
## libraries not being found. Setting this path may interfere with
## the default (probably correct) operation of the loader, but some
## 64-bit architectures may need /usr/lib64 here.
## LDFLAGS=-L/usr/lib

# RANLIB=ranlib
 AR=ar

 YACC=bison -y
 LEX=flex -l
 LEXLIB=-lfl

## If /usr/lib64/libfl.a is not installed, and you need to install it
## locally, put it in genesis/locallibs and use
## LEXLIB= -L$(INSTALLDIR)/locallibs -lfl

## Some older linuxes (Gentoo?) may require -lSM and -lICE as well.
 LIBS= $(LEXLIB) $(GCMALLOCLIB) -lm

 TERMCAP=-lncurses
 TERMOPT=-DTERMIO -DDONT_USE_SIGIO

## end	Linux 1.2.x and up on Intel x86-based systems

W pliku makefile należy odnaleźć linuxa i odkomentować takie linijki, Powiększony i pogrubiony tekst jest chyba ze względu na formatowanie (dwa ## przed linijką). Preferowaną dystrybucją jest debian.
Kompilację programu robię wg instrukcji z książki profesora, którą pisał dla ubuntu (chyba wersji 10) kilka lat temu. To wlaściwie mój pierwszy raz z makefile.

Pamiętaj @Radeit, że dystrybucje Arch-like, to ciut inny świat. Jeżeli chcesz coś tutaj prawidłowo zainstalować, to musisz to zrobić za pomocą pacman’a. Jeżeli nie masz gotowej paczki z binarkami i musisz je skompilować, to robisz, to na sposób arch’owy.

Alternatywnie:

  • dostępne, są binaria windows’owe. Wymagają obecności Cygwin’a, więc nie wiem czy da radę uruchomić je pod Wine, ale można spróbować;
  • można również postawić Debiana na wirtualce i na nim zainstalować Genesis.

O ta wiadomość dała mi do myślenia. Przecież ja nie robię tego na sposób arch’owy, tylko z instrukcji napisanej konkretnie pod Ubuntu.
Zapoznam się z tymi instrukcjami. Jeśli znajdę, to obejrzę tutorial jak ktoś buduje jakąś paczkę na archu.

Myslę, że można w ten prostszy sposób. Ja tak robię i zawsze bez problemów działa. Co prawda @Tomek stwierdził, że kompilacja ze źródeł jest koszmarnie ciężka - ale dałem radę. Z pomocą przyszły repozytoria AUR (ja mam mabox linux) i informacje a anglo-języcznych stron.
Ze strony Arch Linux - Arch Linux Community wyszukujemy genesis
wyskakuje https://pkgs.org/search/?q=genesis
i możemy kompilowac i instalować, ale najpierw musimy z konsoli zainstalować

sudo pacmaman -S yay

@azja napisze, że to nie są paczki pod Manjaro (owszem ale o wspólnych korzeniach ARCH) i właśnie tak zainstalowałem najnowszą wersję libreoffice a @Tomek twierdził, że to kompilowanie to trzeba poczytać tam i tam. Stosujmy bardzo proste i sprawdzone metody.
Następnie wchodzimy TUTAJ odczytując nazwę paczki genesis ( w naszym przypadku Package name libretro-genesis-plus-gx)
i polecenie
yay libretro-genesis-plus-gx
i wybieramy jakie paczki z tym programem zainstalować.
Kompilacja i instalacja LibreOffice trwała ze 40 minut - ale na plus i kolejne duże aktualizacje (ze trzy dni temu) zaktualizowały libreoffice do najnowszej wersji.
Podobnie kompilowałem i instalowałem aplikacje Stacer, QNapi, Balena-Etcher i sporo innych (m.i. do drukarki)
EDiT: na koniec (ale musisz cały czas konsolę obserwować - bo zajdzie potrzeba wprowadzenia hasła roota)
Usuwanie pozostałości po instalacji pakietów z AUR

yay -Sc --aur

@lcoyote ale my tu nie mówimy o symulatorze konsoli Sega Genesis, tylko o GENESIS, oprogramowaniu do konstruowania modeli neurobiologicznych. Gdyby chodziło o Sega Genesis, to problemu by nie było, program jest w repozytoriach.

Może offtop, ale nie przypominam sobie, żebym kiedyś tak twierdził :wink:

No właśnie, to niestety nie ten pakiet.
Włączyłem obsługę AUR w pamac’u. Może rano poczytam jak się kompiluje programy na archu.
Dla mnie ta kompilacja jest strasznie trudna. Dopiero niedawno zacząłem używać na co dzień manjaro. Na ubuntu udało mi się skompilować, bo miałem napisane w skrypcie, co należy zrobić krok po kroku.
O mam pytanie - hipotetycznie, jeśli wszystko w makefile i zależnościach jest ok, to sama kompilacja może się nie udać ze względu na dystrybucję/kernel ?
Gdyby ktoś miał za dużo czasu, to mogę podesłać skrypt z instrukcją instalacji.

Zawsze może się coś nie udać, z miliarda powodów.
Pamiętaj, że kompilacja, to tylko etap. Twoim celem jest stworzenie paczki, którą będziesz mógł zainstalować w systemie, wykorzystując Pacman’a / Pamac’a.

Inną drogą do celu może być stworzenie aplikacji w formacie AppImage lub Flatpak.

Jeśli użyjesz polecenia
yay

  • to tylko pozostaje obserwować jak system (programy w nim/demony działające w tle) same to zrobią. To nie jest straszne. Ja dopiero na maboxlinux zacząłem się w to bawić - i wyszło.
    Nie taki diabeł straszny - jak go malują.

@lcoyote to, co proponujesz to instalacja programu z AUR, a nie jego kompilacja. Programu tam nie ma, nie ma także dla niego PKGBUILD-a nigdzie w sieci (a przynajmniej ja nie znalazłem). Najlepsza droga to stworzenie dla niego pliku PKGBUILD i kompilacja.

Jak wspomniał @azja mnóstwo rzeczy może pójść nie tak. Ja dodam od siebie tylko to, że zbudowanie programu na sposób ubuntowy może doprowadzić do różnych problemów. O ile nowsze wersje pakietów niż wymagane raczej nie powinny być problemem, o tyle problem może powstać, gdy uda ci się zbudować w ten sposób program. Taka instalacja może naruszyć jakieś pliki systemowe i w drugą stronę, któraś z aktualizacji może zepsuć instalację programu. W obu przypadkach będzie płacz, zgrzytanie zębów i desperackie próby naprawy. Instalacja na sposób archowy pozwoli ci uniknąć tej sytuacji. Stworzenie Appimage lub Flatpaka jest dobrym obejściem – pod linkami znajdziesz oficjalne poradniki.

jeśli popełniłem błąd literówkę/złą nazwę - to sorry. Czasem mi się zdarza - ale uważam, że jak zwał tak zwał. Wszak nie ma ludzi “Alfa i Omega