Das erste mal Cmake

  • Hallo,
    auf die Bitte von Adi schreibe ich es mal hier ins Forum.
    Ich habe mich heute mal an Cmake versucht. Nur leider ging dieses nicht so gut.
    Ich habe mich an die Anleitung der svxlink.de Seite gehalten, bekomme aber folgende probleme.



    Dieses nur als Info


    Würde mich freuen wenn mir da jemand helfen könnte


    Danke
    73
    SA7BNT
    Tim

  • Hi Tim,


    vielen Dank. Ich denke, dass es am Anfang noch ein paar mehr OM's "erwischen" wird.
    Aber so "schief" ist das gar nicht, nur ein klitzekleiner Fehler:


    Hier hast Du cmake eine ganze Reihe von Optionen übergeben:

    Code
    debian@debian:~/svxlink/src/build$ cmake -DUSE_QT=OFF -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc -DLOCAL_STATE_DIR=/var ..


    da fehlt noch die Option, dass er beim Compilieren ein Release erstellen soll:

    Code
    -DCMAKE_BUILD_TYPE=Release


    Also im ganzen Satz:


    Code
    cmake -DUSE_QT=OFF -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc -DLOCAL_STATE_DIR=/var -DCMAKE_BUILD_TYPE=Release ..


    Danach gibt es eine ganze Reihe von Ausschriften, unter anderem so was hier

    Quote


    -- Could NOT find OPUS (missing: Opus_LIBRARY Opus_INCLUDE_DIR)


    sollte man etwas näher betrachten. Hier fehlt die libopus-dev (oder je nachdem wie die unter Debian heißt). Diese Lib ist nicht obligatorisch, allerdings habe ich bei meinen vernetzten Stationen zu 100% auf diesen Codec umgestellt und ich empfehle ihn bei Neuinstallationen immer mit reinzunehmen.


    Das "make release" hier

    Quote

    debian@debian:~/svxlink/src/build$ make release


    ist nicht mehr notwendig weil Du ja dem cmake Deinen Wunsch eine Release-Variante zu erstellen schon mitgeteilt hattest, siehe oben. Es reicht hier ein simples "make" und später ein "make install"


    vy 73's de Adi, DL1HRC

  • Sind dieses Fehlermeldungen die man als wichtig einstuffen sollte??


    Ich mag keine Fehlermeldungen :lol:
    SA7BNT
    Tim


    EDIT:
    Und noch mehr :(

  • Hallo Adi,
    aber gerne doch

    Quote

    debian@debian:~/svxlink/src/build$ make install


    Nachdem ich das mit dem User svxlink gemacht habe :oops: hat es geklappt :D


    Gibt es für die neue Conf. eine beschreibung der einzelnen neuen Punkte der Conf.??

  • Quote

    Nachdem ich das mit dem User svxlink gemacht habe :oops: hat es geklappt :D


    Hä? Das ist mir jetzt aber nicht ganz klar, für /usr/bin brauchst Du normalerweise root-Rechte. Das sollten wir uns noch mal ganz genau anschauen. Die Fehler bei Dir sind mir bisher bei mir noch nicht untergekommen :?
    Es gibt ein paar neue Parameter in der svxlink.conf, mal schauen eventuell komme ich über Weihnachten dazu das zu übersetzen und auf svxlink.de hochzuladen. Was beispielsweise recht interessant sein kann sind die pty-Erweiterungen, also die Kommunikation über Pseudo-TTY-Schnittstellen.


    vy 73's de Adi, DL1HRC

  • Hi Zusammen,


    wo setzt man den jetzt die Compileroptionen?


    In einem älteren GIT-Abzug habe es noch eine makefile.cfg , aber in einem heute frisch gezogenen gibt es die nicht mehr.


    Da ich aber zwei Alix1D mit Geode habe brauche ich das schon ....


    73 de Andreas

  • Hallo,


    das Problem mit den Compileroptionen habe ich auch noch nicht zufriedenstellen gelöst. Es gibt in .../svxlink/src eine Datei CMakeList.txt in der verdächtige Passagen auftauchen:


    Code
    if(NOT DEFINED INTERNAL_SAMPLE_RATE)  set(INTERNAL_SAMPLE_RATE 16000)endif(NOT DEFINED INTERNAL_SAMPLE_RATE)add_definitions(-DINTERNAL_SAMPLE_RATE=${INTERNAL_SAMPLE_RATE})


    und


    Code
    if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
      set(CMAKE_C_FLAGS
        "${CMAKE_C_FLAGS} -Wall -Wstrict-prototypes -Wpointer-arith")
      set(CMAKE_C_FLAGS_RELEASE "-O3")
      set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")
    ...


    aber ob das wirklich die "amtlichen" Stellen für unsere Comileroptionen sind? Dateien mit dem Namen CMakeList gibt es ja an jeder Ecke.


    Bei meinen Raspberry Pi Typ B habe ich die neueste Svx-Version einfach mal ohne Änderungen durchgeführt. Die danach mit TOP gemessenen Werte bei verschiedenen Svxlink-Aktivitäten entsprachen denen älterer Versionen mit den bekannten Optionen.


    Frage in die Runde:
    - Ist CMake so schlau, dass der Prozessoertyp erkannt und die richtigen Optionen automatisch verwendet werden?
    - Wenn nicht, ist die Datei CMakeList.txt in /src unsere neue makefile.cfg?


    73 de Matthias, DL8BBY

  • Hallo zusammen,


    ich hatte mich anfangs auch über das Fehlen der makefile.cfg gewundert. Allerdings geht es mit cmake ohne irgendwelche Anpassungen (zumindest auf den Raspberrys) genauso gut.


    Was ich mir nun als Linux-Anfänger noch wünschen würde wäre ein einfaches, aber funktionierndes Startscript. Im Moment mache ich das noch "barfuß" über die /etc/rc.local ...


    Schönen Gruß
    Frank, DL3DCW