GNU Autotools - Graphiken installeren und wieder finden

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
chr.gogolin
Beiträge: 441
Registriert: 12.10.2005 23:09:28
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

GNU Autotools - Graphiken installeren und wieder finden

Beitrag von chr.gogolin » 25.08.2008 13:46:44

Hallo,

ich habe hier ein kleines Projekt/Spiel und bin gerade dabei von handgeschriebenen Makefiles auf autoconf und automake umzusteigen. Kompilieren, linken und so weiter funktionieren auch super, obwohl ich mehrer Bibliotheken verwende 8). Der Umgang mit "normalen Dateien" (Einstellungen, Graphiken, ...) jedoch ist mir nicht ganz klar und er wird auch in keinem der Tutorials die ich gelesen habe vernünfig behandelt.

Ich habe zum Beispiel einen Ordner gfx/ mit einer Reihe von .tga-Graphiken drin. Die sollen in dem durch "make dist" erstellten tarball enthalten sein und dann von "make install" an die "richtige Stelle" im Dateisystem kopiert werden. Außerdem muss mein Programm (C++) die Bilder dann auch wieder finden können.

In dem Ordner gfx/ habe ich ein Makefile.am erstellt, doch weiß ich nicht was ich da rein schreiben soll.
Welch Suffixe muss ich verwenden damit die Dateien an der "richtigen Stelle" landen? Was ist die "Richtige stelle"?
Ich denke folgende Orte kämen unter Linux in Frage:
/usr/share/mein-spiel/gfx/
/usr/games/mein-spiel/gfx/

Wie findet mein Programm die Dateien dann wieder? Mit einem geeigneten Eintrag in der config.h.in?

Das selbe Problem ergibt sich auch noch mal für Konfigurationsdateien. Da sollte es eine systemweite Datei geben und dann benutzerspeziefische Dateien im Heimatverzeichnis angelegt werden wenn der Nutzer zum ersten mal seine Einstellungen speichert.

Dann soll das Projekt auch noch nach Windows portabel sein. Der Quellcode ist es schon, aber da müssten alle Bilder in Unterordnern des Projekt-Ordners landen und die Konfigurationsdateien unter "Benutzer und Einstellungen"...

Wäre super wenn mir jemand einen Hinweis geben könnte - Danke!
"Linux supports the notion of a command line or a shell for the same reason that only children read books with only pictures in them." - Bill Garrett

chr.gogolin
Beiträge: 441
Registriert: 12.10.2005 23:09:28
Lizenz eigener Beiträge: MIT Lizenz
Kontaktdaten:

Re: GNU Autotools - Graphiken installeren und wieder finden

Beitrag von chr.gogolin » 26.08.2008 13:10:51

Die Grafiken installiere ich jetzt mittels:

Code: Alles auswählen

gfxdir = $(pkgdatadir)/gfx
dist_gfx_DATA = $(top_srcdir)/gfx/*.tga
Ich bin mir aber nach wie vor nicht sicher ob das so ok ist, ich würde mich deshalb freuen wenn noch jemand was dazu sagen könnte.

Die große ungelöste Frage ist:

:?: Wie findet mein Programm anschließend seine Dateien wieder :?:

Zusätzlich zu dem Problem das die Dateien bei verschiedenen Systemen in verschiedenen Ordnern landen gibt es ja für den Benutzer auch noch die Möglichkeit mittels

Code: Alles auswählen

make DESTDIR=... install

zu installieren. Das passiert ja nachdem Kompilieren, daher lässt sich das auch nicht mit precompiler directives lösen.
"Linux supports the notion of a command line or a shell for the same reason that only children read books with only pictures in them." - Bill Garrett

Antworten