Connexion
Vous n'avez pas encore de compte personnel ? Vous devriez en créer un. Une fois enregistré vous aurez certains avantages, comme pouvoir modifier l'aspect du site, ou poster des commentaires signés...
Support
Activité du Site

Pages vues depuis 06/01/2019 : 12 708 849

  • Nb. de membres 366
  • Nb. d'articles 2 837
  • Nb. de forums 24
  • Nb. de sujets 13
  • Nb. de critiques 0

Top 10  Statistiques

Index du forum »»  Développement »» Développeur débutant sur MorphOS

Développeur débutant sur MorphOS#2209

6Contributeur(s)
BeChrisze_bucheronBeWorldPapiosaurJediTcheko
2 Modérateur(s)
PapiosaurBeWorld
BeChris BeChrisicon_post
Bonsoir la communauté,

Bon ben ça y est Papiosaur à réussi à me convaincre et me voici avec MorphOS sur un Mac Mini G4
J'avais lâché l'Amiga depuis 1998 et me voilà de retour.
Dans la vie je suis développeur (c'est mon métier depuis plus de 20 ans) mais plutôt sur Linux et Windows.
J'ai déjà touché à du C/C++, Perl/Python/Ruby, CMake/Makefiles écrits à la main et j'en passe.
J'ai à porté de main à la maison un iMac de 2011 (sous Linux Manjaro) et donc désormais ce Mac Mini G4 sous MorphOS 3.15 avec le SDK 3.16 installé.
Autant sous Linux je me sens très à l'aise pour développer, autant sous MorphOS j'ai l'impression d'être redevenu débutant
Pour l'instant je n'ai un super setup mais quand même : la combinaisont ALT-TAB pour passer d'une fenêtre à l'autre me manque énormément.
Et un vrai shell (genre Bash ou Zsh) me manque aussi beaucoup.
Egalement un éditeur tout simple qui affiche les numéros de lignes et si possible de la coloration syntaxique.
Il y a sûrement moyen d'y remédier non ?

J'ai jeté un coup d’œil dans les idées de portages de jeux en SDL2 ici : https://www.meta-morphos.org/viewtopic.php?topic=2132&forum=52
J'ai d'ors et déjà tenté le portage de deux jeux tournant sous SDL2 (CorsixTH et OpenRCT2) mais sans trop de succès (version de CMake trop ancienne pour l'un et CMake ne trouvant pas ma librairie lua pour l'autre).

S'il y a des développeurs qui lisent ce messages j'aurais quelques questions:

  1. Quel est votre éditeur de code favori (qui affiche au moins numéros de lignes) ?

  2. Y-a-t'il des dépôts sur GitHub (ou autres) de jeux portés sous MorphOS afin que je puisse m'inspirer des ficelles que vous avez pu utiliser ?

  3. J'envisage de cross compiler sous Linux car c'est beaucoup plus rapide que sur le Mac Mini.
    Et puis j'ai mes petites habitudes sous Linux.
    J'ai pu mettre en place un environnement croisé grâce à ce qui est indiqué ici : https://github.com/AmigaPorts/morphos-cross-toolchain.git
    Est-ce que vous avez de l'expérience avec la cross-compilation pour MorphOS sous Linux ?

  4. Rapatrier les diverses librairies pour pouvoir développer semble un petit peu laborieux : aller sur MorphOS-storage ou aminet, chercher la lib, la décompresser, ...
    Il n'existe pas de système de paquets sous MorphOS avec un outil utilisable en ligne de commandes (genre pacman de ArchLinux ou le système de ports de Haiku) ?

  5. Est-ce qu'il y a un lieu d'échange pour développeurs MorphOS (IRC, Discord, ...) ?



Mon post est déjà assez long comme ça.
Je vous laisse me répondre si vous avez des éléments à me fournir.

Merci d'avance.
ze_bucheron ze_bucheronicon_post
Bonsoir et bienvenue sur MorphOS.
Alors, même si je ne suis pas programmeur,
je peux peut-être aider un peu.

Pour la combinaison ALT-TAB permettant de faire défiler les fenêtres :
- ouvrir le menu d'Ambient (clic droit en haut de l'écran)
- choisir "Préférences/préférences de MorphOS"
- Cliquer sur l'icone Icontrol
- choisir fenêtre active : activer la suivante
- cliquer à droite sur le bouton déroulant
- et faire la capture des touches désirées

Sinon, tu peux également accéder directement à une fenêtre, avec un clic-droit sur
l'icone d'une fenêtre, qui va ouvrir un menu déroulant contenant le nom des fenêtres.

A moins que tu préfères utiliser un écran dédié à chaque application que tu feras
défiler de la même façon. Mais pour cela, il te faudra créer différents écrans pour
tes applications.

Pour le vrai shell, vu que je ne connais que Morphos et que je ne sais pas trop ce que tu
attends d'un shell, je ne peux pas t'aider.

Pour l'éditeur qui affiche les numéros de lignes et la coloration syntaxique,
FlowStudio me parait tout indiquer.



Obligement contient également des pages sur la programmation :
http://obligement.free.fr/programmation.php
BeWorld BeWorldicon_post
Bonjour ! et bienvenue dans le monde MorphOS :-)

J'essai de faire court pour répondre, car c'est un grand sujet et pas toujours simple aussi.

1. FlowStudio est parfait pour le développement sur MorphOS, faut le mettre par defaut sur les fichiers txt (c, cpp, h etc....) pour être tranquille.

2. Vas faire un tour sur mon github : https://github.com/BeWorld2018, j'ai partagé pas mal de truc pour MorphOS (portages)
Sinon mon truc c'est la recherche sur github de code aussi pour trouver de l'aide....

Je t'avoue que cmake/configure, c'est pas mon fort, en règle général je fais un vrai makefile souvent à la mano....
Tu parles de OpenRCT2 mais ce jeu me semble t-il n'est pas Big-endian ?

3. oui j'ai le même système Docker pour cross compiler et je l'utilise pour ScmmVM par exemple et de temps en temps pour pré-compiler avec cmake (oui en cross-compiling ca marche bcq mieux). Par contre c'est avec un ancien gcc (9) donc pas top pour certains trucs, mais c'ets bcq + rapide lol ScummVM il faut 3-4 minutes pour le pré-compiler alors que sur mon PowerPC G5 2.7Ghz, il faut au moins 3-4 heures lol, vive le Ryzen de compète.

4. les libs c'est toujours un peu le bordel en effet et non il n'y a pas de système comme sous linux, donc à la mano aussi
Beaucoup de libs sont intégrées au SDK :
- libpng / libz (il faut mettre -D__MORPHOS_SHAREDLIBS pour les utiliser)
- libssl cypto curl sont aussi dispo via le SDK
Après il faut les compiler pour les autres mais si tu as besoin, j'en ai un paquet sur mon DD, j'en ai publié pas mal aussi sur morphos-storage
Lua par exemple est simple à compiler.

5. la c'est un peu le drame, faut peut être faire un truc en effet ca serait bien.
donc si tu as des questions en gros c'est un peu "démerdes toi" lol. Après il y a les forums, donc ici ou morph.zone ou si motivé les IRC de MorphOS.

Hesites à pas demander soit ici, soir par mail, je suis aussi sur Facedebook et je peux partager sans problème et aider aussi (à mon niveau) car je ne suis pas un expert de tout non plus.



IMAC 2.1 / PB 1.5G 17 / PM G5 2.7
My Works
Papiosaur Papiosauricon_post
BeChris is back !

Content de te voir sur le forum :-D

Je vais changer mon pseudo en BePapiosaur moi, ok je sors... :-D
 Message édité par : Papiosaur / 16-05-2021 08:12
BeChris BeChrisicon_post
Hello et merci pour toutes ces informations.
ze_bucheron je crois qu'on s'était déjà rencontré à l'Alchimie de 2015

Je vais du coup essayer de mettre en place un système de package en m'inspirant de l'outil HaikuPorts de HaikuOS.
Il est écrit en Python à 100% donc ça ne devrait pas être très compliqué de taper dedans.
L'outil pourrait être utilisé directement dans MorphOS ou en crosscompilation sous Linux.
Et ne demandez pas pour Windows je ne le supporterai pas!
Cela représente plusieurs avantages:

  1. Des fichiers de construction centralisés à un seul endroit dans un dépôt GitHub par exemple : permet aux dev de collaborer plus facilement puisque tout est au même endroit

  2. Du coup, au lieu que chaque dev maintienne ses dépôts tout seul dans son coin, il maintiendra plutôt un ou plusieurs fichiers de recettes avec l'URL du dépôt original et les éventuels patchs à appliquer aux sources

  3. Pour tous les dev il suffira d'indiquer dans un fichier de recette, par exemple, qu'il faut la SDL2 (en version >= 2.0.14) + libfreetype (en version = 2.10.2) et l'outil de construction ira les chercher, les compilera et les installera automatiquement s'ils ne sont pas déjà présents sur le système

  4. On pourrait aussi envisager qu'à la fin de la compilation, une archive lha ou autre du logiciel soit générée et uploadée automatiquement sur morphos-storage ou autre

  5. Pour les utilisateurs, ils pourront également utiliser l'outil en ligne de commande ou, mieux, via une interface graphique pour installer les paquets disponibles en format déjà compilé



A mon humble avis un gestionnaire de paquet est un gros plus sur un OS pour faciliter la vie des dev et des utilisateurs.
MorphOS gagnerait sûrement en attrait.
J'ai pu voir qu'il existe Grunch mais ça n'est pas opensource malheureusement : donc no way pour moi.
Il faut que les choses soient ouvertes si on veut que les gens contribuent.
Un projet fermé d'une seule personne fini toujours par mourir!

Par contre je me pose quelques questions du coup:

  1. Est-il envisageable d'après vous de penser l'outil "multiplateforme" genre MorphOS/AROS/OS4 ?
    Je ne sais pas si les trois communautés s'entendent bien et/ou collaborent.
    Sinon on fait du pur MorphOS et en plus ça sera sûrement plus facile à gérer.

  2. Il faut pouvoir catégoriser les librairies et logiciels.
    Est-ce qu'il faut utiliser les mêmes catégories que morphos-storage ou celles d'aminet ou encore celles de HaikuPorts (https://github.com/haikuports/haikuports) ?
    Ou alors vous avez une autre proposition ?



N'hésitez pas à me dire si mon idée vous semble complètement folle ou irréalisable
 Message édité par : BeChris / 16-05-2021 12:18
BeChris BeChrisicon_post
Voilà une première proposition de fichier de recette afin de construire un logiciel.
C'est un premier jet, je dois encore peaufiner la chose.
Mon idée est que seul Python sera utilisé ce qui facilitera les choses.

Une recette est un fichier .ini (facilement parseable en Python).

Un exemple pour construire la librairie SDL2 portée par BeWorld:
Je vous détaillerai plus tard la signification des différentes parties du fichier



[DESCRIPTION]
Simple DirectMedia Layer is a cross-platform development
library designed to provide low level access to audio, keyboard,
mouse, joystick, and graphics hardware via OpenGL and Direct3D. It is used by video playback software, emulators, and
popular games including Valve's award winning catalog and many Humble Bundle games.
SDL officially supports Windows, Mac OS X, Linux, iOS, and Android. Support for other platforms may be found in the source code.
SDL is written in C, works natively with C++, and there are bindings available for several other languages, including C# and Python.
SDL 2.0 is distributed under the zlib license. This license allows you to use SDL freely in any software.

[HOMEPAGE]
https://www.libsdl.org/

[VERSION]
2.0.14

[SOURCE_URI]
https://www.libsdl.org/release/SDL2-$(VERSION).tar.gz
https://github.com/BeWorld2018/SDL.git#MorphOS

[CHECKSUM_SHA256]
d8215b571a581be1332d2106f8036fcb03d12a70bae01e20f424976d275432bc

[PATCHSET]

[RUN_REQUIRES]

[BUILD_REQUIRES]
sdk=20210211

[BUILD]
make

[INSTALL]
make sdk lib

 Message édité par : BeChris / 16-05-2021 16:53
 Message édité par : BeChris / 16-05-2021 16:55
 Message édité par : BeChris / 16-05-2021 16:55
Papiosaur Papiosauricon_post
Je ne m'y connait pas en programmation mais l'idée à l'air excellente !

ça donne envie d'en apprendre un peu plus mais faudrait que je trouve du temps :-)

Merci BeChris pour ce projet !
Jedi Jediicon_post
Super ! Un nouveau développeur motivé !

Bienvenue à toi sur MorphOS

(et bravo à Papio pour cette prise ! ^^)
ze_bucheron ze_bucheronicon_post
BeChris en effet, je me souviens qu'on s'était rencontré lors de l'Alchimie 2015 et j'espérais déjà que tu nous rejoignent ;-)

J'aime bien l'idée, et je vais donner mon avis, parce qu'il n'y a pas de raison que seul les programmeurs en ai un ;-)

Mais d'abord, je vais remettre ton lien sur Haikuports pour les curieux comme moi.
http://github.com/haikuports/haikuports

Bon, j'ai été voir rapidement ce site, alors je n'ais peut être pas tout compris mais du point de vu de l'utilisateur que je suis, j'aimerais qu'on ne reproduise pas l'erreur de Grunch qui est malheureusement sous-utilisé, j'aimerais voir ton outil utiliser morphos-storage pour ne pas réinventer la roue.
Et si tu pouvais en profiter pour nous faire un outil multi-langues, ça serait plus sympa.

je pense qu'un outil "multiplateforme" genre MorphOS/AROS/OS4 peu être une très bonne chose pour les programmeurs mais pour les utilisateurs ça serais mieux de garder un accès spécifique, même si pour ma part, je m'entends bien
avec les utilisateurs OS4, Aros, MacOS, Linux ou même Window, après tout, chacun prend son plaisir où il veut...

Pour les catégories si tu choisis d'utiliser morphos-storage, ça me paraît logique d'unifier les catégories entre ton futur programme et les catégories de morphos-storage.
BeChris BeChrisicon_post
Salut ze_bucheron.
Pour le côté multi langue effectivement j'y avais pensé.
Tu pourras détailler un petit peu ce qui pour toi fait que Grunch est sous-utilisé? (afin d'éviter de commettre les mêmes erreurs)

Je suis en train de rédiger un document pour présenter ce que l'outil permettra de faire.
Je le vois pouvant servir pour faciliter la vie des utilisateurs finaux mais aussi des développeurs et des "packagers" (ceux qui créent des paquets installables par les utilisateurs finaux à partir des fichiers de recette fournies par les développeurs).
Ensuite je me dis que qui peut faire plus peut faire moins donc pour l'instant je le pense comme pouvant servir sur les AmigaOS-like comme AROS, OS4 et MorphOS.
Par contre je ne le vois pas étendu à d'autres OS comme Linux, Windows ou MacOS : ces OS sont trop différents des AmigaOS-like et en plus il existe déjà des gestionnaires de paquets sur ces OS.
Nous pourrons ainsi l'utiliser pour MorphOS mais d'autres personnes des autres AmigaOS-like pourront aussi l'utiliser s'ils le souhaitent.
Seul l'outil sera générique : les données manipulées (par exemple les bases de données, packages à installer, serveur de packages, ...) seront spécifiques à chaque OS.
Et puis je pense aussi que finalement le langage le plus adapté sera Hollywood car il permet d'adresser les AmigaOS-like avec une seule base de code.
Croyez moi c'est un sacré confort de ne pas avoir à écrire autant de versions de l'outil qu'il y a d'OS à prendre en compte!
Ceux qui voudront l'utiliser n'auront qu'à installer le Player Hollywood.
Inconvénient : ceux qui voudront contribuer au code de l'outil devront acheter la version complète d'Hollywood.
Un seul développeur dans son coin ne peut pas penser à tous les cas : l'outil sera en open source afin de faciliter les contributions.
J'y associerai une licence logicielle qui interdit qu'un opportuniste en fasse un dérivé commercial par exemple.
Non pas que je pense avoir la science infuse pour écrire l'outil parfait mais ça me ferait ch... que d'autres personnes en profitent sans avoir rien fait.

J'espère terminer le document rapidement et vous mettrai le lien pour que vous y jetiez tous un coup d’œil.
Par contre c'est en Anglais : en tant que développeur c'est le langage naturel et puis ça ouvre les possibilités de contributions aux non francophones.
Si certains d'entre vous font vraiment un blocage avec l'anglais je pourrai fournir une traduction.

A+