1

yop,

J'ai une installation de gcc4ti standard sous nux.
J'essaye de compiler un hello world on ne peut plus con :
#include <tigcclib.h>

#define USE_TI89

void _main(void)
{
	printf("hello world\n");
}

en faisant un tigcc main.c -o main
Et je me tape un "No calculator specified". Why ?? Où est-ce que je déconne ?

2

Il faudrait pas que ton #define USE_TI89 soit positionné avant l'inclusion de tigcclib.h ?
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

3

Ca a l'air d'être ça, merci. Je comprends pas trop pourquoi mais c'est pas grave ^^

4

Folco (./3) :
Ca a l'air d'être ça, merci. Je comprends pas trop pourquoi mais c'est pas grave ^^

yel

5

Folco (./3) :
Je comprends pas trop pourquoi mais c'est pas grave ^^

Y'aurait pas genre un truc "magique" fait dans les headers, qui active la compilation pour tel ou tel modèle... sauf que pour ça, il faut que le USE correspondant au modèle en question soit définit avant d'inclure les headers en question ?
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

6

Lionel m'a dit que ce define entrainait pas mal de choses par derrière (cc).

PpHd -> je voulais dire "pas important pour le moment", bien sûr que si ça m'intéresse sinon cheeky
Autre truc qui m'intéresse, que les headers de PedroM soient utilisables avec ceux de tigcc, qui incluent toujours default.h, ce qui met tes headers dans le vent pour je ne sais plus quelle raison.
Je propose que tu organise une conférence au sommet avec Lionel Debroux pour traiter du sujet. Je vous servirai les petits fours et la bière le champagne. cheeky

7

(Folco qui n'arrive pas à compiler un Hello World pour TI, mais dans quel monde bizarre ai-je atterri aujourd'hui ? confus)
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

8

grin
En fait, ce qui m'intéressait était de faire un setup de compilateur sous Codelite, le reste je m'en foutais. Ca marche (presque) bien.

9

/bin/sh -c 'make -e -f  Makefile'
----------Building project:[ ftk - Release ]----------
make[1]: Entering directory '/home/folco/.mars/ftk'
codelite-cc tigcc -c  "/home/folco/.mars/ftk/src/window.c" -O2 -W -Wextra -std=c99 -Wall -DNDEBUG  -I/usr/local/share/gcc4ti/include/c/   -o ./build/src_window.c.o
codelite-cc tigcc -c  "/home/folco/.mars/ftk/src/lib.c" -O2 -W -Wextra -std=c99 -Wall -DNDEBUG  -I/usr/local/share/gcc4ti/include/c/   -o ./build/src_lib.c.o
tigcc -o ./build/ftk ./build/src_window.c.o ./build/src_lib.c.o   -L/usr/local/share/gcc4ti/lib/
/usr/local/share/gcc4ti/lib/tigcc.a: Warning: Adding program startup section to library.
make[1]: Leaving directory '/home/folco/.mars/ftk'
0 errors, 0 warnings

Ca, c'est fort, j'ai pas de 89z dans le répertoire de build, alors que quand je lance à la main la commande qui apparait dans le log (la dernière, évidemment), ben j'ai le 89z tritop

10

Quel tire au flanc ce make ^^

11

Tiens, voici le makefile, si on me dit quelle règle provoque ce comportement désagréable, je serai probablement en mesure de régler le problème, merci d'avance. smile
tromb Fichier joint : ftk.mk

12

Ben l'enfin, je croyais avoir affaire à des spécialistes ici, pfff, me serais-je trompé ? embarrassed

13

erf, c'est tellement flagrant, on va te laisser trouver tout seul...


(Si dans une semaine t'as toujours pas trouvé, demandes moi en mmsg smile)
avatar
Webmaster du site Ti-FRv3 (et aussi de DevLynx)
Si moins de monde enculait le système, alors celui ci aurait plus de mal à nous sortir de si grosses merdes !
"L'erreur humaine est humaine"©Nil (2006) // topics/6238-moved-jamais-jaurais-pense-faire-ca

14

Folco (./12) :
Ben l'enfin, je croyais avoir affaire à des spécialistes ici, pfff, me serais-je trompé ? embarrassed

Non, mais quelqu'un qui utilise un outil pour générer son Makefile... M'enfin voilà !

15

Tu snobbes aussi tous les utilisateurs de CMake, alors ? tongue
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

16

vince (./13) :
erf, c'est tellement flagrant, on va te laisser trouver tout seul...


(Si dans une semaine t'as toujours pas trouvé, demandes moi en mmsg smile)

Non, si c'est à ce point-là, je préfère mettre le nez dedans. C'est qu'une histoire de temps à passer, et j'en ai pas beaucoup. J'ai déjà mis le nez deux fois dans les Makefile, et appris à en écrire correctement, même si évidemment c'était relativement basique. Mais j'oublie car je ne suis pas un pro, j'en utilise pas tous les jours.

PpHd -> le pire c'est que j'aimerais bien les faire moi-même, j'aime bien contrôler les choses, mais j'ai pas une mémoire absolue, et quand on se sert peu d'un outil, on oublie malheureusement...

17

Bon, j'ai pas corrigé le problème, de toute façon de makefile est autogénéré. La ligne exécutée par Make est celle-ci :
tigcc -o ./build-dynamic/ ./build-dynamic/src_lib.c.o ./build-dynamic/src_layout.c.o ./build-dynamic/src_control.c.o ./build-dynamic/src_label.c.o -L/usr/local/share/gcc4ti/lib/
Comme on voit, il manque l'argument de -o, alors que j'ai bien $(IntermediateDirectory)/$(ProjectName‎) dans le paramètre de ficher de sortie du compilateur. Certainement de ma faute, mais je sais pas où, après bien des recherches. Je suis en train de voir ça avec l'auteur de Codelite. Génial ce soft, au passage, du genre C::B mais sans les bugs ni les crashs grin

18

bon, problèmes réglés, je peux faire maintenant des exécutables, des archives et des libs statiques, c'est parfait. smile

19

Alors, keskecété ?
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

20

un '?' qui apparaissait dans le makefile généré, et non dans la configuration du compilateur. Probablement un caractère foireux, utf8 toussa. Le truc tout couillon mais ô combien pénible à trouver grin

21

Vicieux grin
avatar
Zeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo

22

Normalement plutôt qu'un #define USE_TI89, je pense qu'il vaut mieux mettre dans le makefile un -DUSE_TI89 dans les options de CC. Cette instruction n'a pas grand chose à faire dans le code wink
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

23

Ah, je suis bien d'accord, justement je me posais la question aujourd'hui :
quand on passe -Dmachinchose au compilo, c'est chaque source qui reçoit la définition en question ?
Autre chose, pour faire une lib avec TIGCC, il faut définir int _library quelque part dans un des sources. Ca peut pas se faire avec un switch du compilateur ça aussi ? C'est quand même crade de définir un faux int pour dire "je veux compiler une librairie dynamique", non ?

24

Ben c'est ton makefile qui définit tout ça, mais oui dans la plupart des "environnements" (comprendre on y inclut un makefile.mk qui provient de la toolchain) les CFLAGS sont passés à chaque fichier compilé.
avatar
Highway Runners, mon jeu de racing à la Outrun qu'il est sorti le 14 décembre 2016 ! N'hésitez pas à me soutenir :)

https://itunes.apple.com/us/app/highway-runners/id964932741

25


Additionally, if you want to make your program even smaller but only want to support new versions of the PreOS kernel, you can define USE_PREOS_COMPRESSED_TABLES. This will create compressed versions of the relocation tables, which are not available in older kernels. If you try to run the program with an old kernel installed, you will get an error message.

???? Heu ???? Je crois pas que ca soit supporté ! gni

26

La doc plus à jour que le kernel, c'est pas beau ça ? grin

27

Bon, je suis toujours sur le même exercice, créer tigcc/gcc4ti comme compilateur pour Codelite.
J'ai un souci à je ne sais quel niveau.
Voici la sortie de compilation :
/bin/sh -c 'make -j 1 -e -f  Makefile'
----------Building project:[ as - Release ]----------
make[1]: Entering directory '/mnt/Data/prog/asc/as'
tigcc: /usr/local/share/gcc4ti/bin/m68k-coff-tigcc-gcc -v -Wall -Wextra -std=c99 -O2 -DUSE_TI89 -I. -MG -MP -MT./Release/main.c.o -MF./Release/main.c.o.d -MM -B/usr/local/share/gcc4ti/bin/ -I/usr/local/share/gcc4ti/include/c main.c -S -o main.s
Using built-in specs.
Target: m68k-coff
Configured with: ../../download/gcc.ti/configure --prefix=/usr/local/share/gcc4ti --program-prefix=m68k-coff-tigcc- --target=m68k-coff --with-gnu-as --disable-nls --disable-multilib --disable-shared --enable-static --disable-threads --disable-win32-registry --disable-checking --disable-werror --disable-pch --disable-mudflap --disable-libssp
Thread model: single
gcc version 4.1.2 (TIGCC 4.1.2-tigcc-4)
 /usr/local/share/gcc4ti/bin/cc1 -E -quiet -v -I. -I/usr/local/share/gcc4ti/include/c -MM -MF./Release/main.c.o.d -MG -MP -MT./Release/main.c.o -D__TIGCC_ENV__ -D__INT_SHORT__ -DUSE_TI89 main.c -o main.s -std=c99 -Wall -Wextra -O2
#include "..." search starts here:
#include <...> search starts here:
 .
 /usr/local/share/gcc4ti/include/c
End of search list.
tigcc: /usr/local/share/gcc4ti/bin/tigcc-patcher main.s -o main.s
tigcc: /usr/local/share/gcc4ti/bin/m68k-coff-tigcc-as -mc68000 -I/usr/local/share/gcc4ti/include/s main.s -o main.o
tigcc: /usr/local/share/gcc4ti/bin/ld-tigcc -v main.o /usr/local/share/gcc4ti/lib/tigcc.a -o main
Error: No target calculators specified.
as.mk:99: recipe for target 'Release/main.c.o.d' failed
make[1]: *** [Release/main.c.o.d] Error 1
make[1]: Leaving directory '/mnt/Data/prog/asc/as'
Makefile:4: recipe for target 'All' failed
make: *** [All] Error 2
1 errors, 0 warnings
Ca se fait avec ce code source :
#include <tigcclib.h>
void _main(void)
{
	return;
}
En fait j'obtiens un main.s vide, et la compilation échoue.

De manière étonnante, quand je compile à la main (tigcc -DUSE_TI89 main.c -S -o main.s), j'ai bien un main.s valide :
	.file	"main.c"
#NO_APP
	.text
tigcc_compiled.:
	.text
#APP
	.xdef _ti89
	.text
	.xdef _ti89ti
	.text
	.xdef __ref_all___startup_code
	.text
	.xdef __ref_all___detect_calc
	.text
	.xdef __ref_all___test_for_specific_calc
	.text
	.xdef __ref_all___test_for_89
	.text
	.set _A_LINE,0xA000
	.text
	.xdef __ref_all___kernel_format_data_var
	.text
	.xdef _tigcc_native
	.text
	.xdef __ref_all___nostub
	.text
	.xdef __ref_all___kernel_format_bss
	.text
	.xdef __ref_all___kernel_format_rom_calls
	.text
	.set MT_TEXT,0x8000
	.text
	.set MT_XREF,0x9000
	.text
	.set MT_ICON,0xA000
	.text
	.set MT_CASCADE,0x4000
#NO_APP
	.text
	.even
	.globl	__main
__main:
	link.w %fp,#0
	unlk %fp
	rts
Du coup, je peux compiler, linker, et j'obtiens bien un .89z.
Alors, qu'est-ce qui pourrait déconner ?
J'ajoute aussi le makefile auto-généré, moi j'y comprends pas grand chose : tromb Fichier joint : as.mk

edit -> bon, j'ai réappris (pour la troisième fois) à écrire un Makefile, c'est quand même plus simple, faudrait vraiment que j'enregistre cette techno une bonne fois pour toutes :/

28

C'est l'étape de la détermination automatique des dépendances qui foire:
@$(CC) $(CFLAGS) $(IncludePath) -MG -MP -MT$(IntermediateDirectory)/main.c$(ObjectSuffix) -MF$(IntermediateDirectory)/main.c$(DependSuffix) -MM "main.c"parce que tigcc ne gère pas les flags -MG -MP …. (Il les passe à GCC, mais ne comprend pas que GCC ne génère pas de fichier .s dans ce cas.)

En génèral, aucun EDI tiers n'est compatible avec TIGCC ou GCC4TI.
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité

29

Ca doit être pour ça que j'ai jamais réussi à en configurer un grin

30

F:/Programmation/Qtw> C:/MinGW/bin/mingw32-make.exe -j4 all
C:/MinGW/bin/mingw32-make -C src all
mingw32-make[1]: Entering directory 'F:/Programmation/Qtw/src'
tigcc -v -std=c99 -Wall -W -O2 -DUSE_TI89 -DUSE_TI89TI -DUSE_TI92PLUS -DUSE_V200 -DDYNAMIC_BUILD -DUSE_KERNEL   -c -o Widget.o Widget.c
tigcc -v -std=c99 -Wall -W -O2 -DUSE_TI89 -DUSE_TI89TI -DUSE_TI92PLUS -DUSE_V200 -DDYNAMIC_BUILD -DUSE_KERNEL   -c -o Window.o Window.c
tigcc -v -std=c99 -Wall -W -O2 -DUSE_TI89 -DUSE_TI89TI -DUSE_TI92PLUS -DUSE_V200 -DDYNAMIC_BUILD -DUSE_KERNEL   -c -o Qtw.o Qtw.c
C:\PROGRA~2\GCC4TI\BIN\GCC.EXE -BC:\PROGRA~2\GCC4TI\BIN\ -I C:\PROGRA~2\GCC4TI\INCLUDE\C\ -v -std=c99 -Wall -W -O2 -DUSE_TI89 -DUSE_TI89TI -DUSE_TI92PLUS -DUSE_V200 -DDYNAMIC_BUILD -DUSE_KERNEL Widget.c -S
C:\PROGRA~2\GCC4TI\BIN\GCC.EXE -BC:\PROGRA~2\GCC4TI\BIN\ -I C:\PROGRA~2\GCC4TI\INCLUDE\C\ -v -std=c99 -Wall -W -O2 -DUSE_TI89 -DUSE_TI89TI -DUSE_TI92PLUS -DUSE_V200 -DDYNAMIC_BUILD -DUSE_KERNEL Window.c -S
C:\PROGRA~2\GCC4TI\BIN\GCC.EXE -BC:\PROGRA~2\GCC4TI\BIN\ -I C:\PROGRA~2\GCC4TI\INCLUDE\C\ -v -std=c99 -Wall -W -O2 -DUSE_TI89 -DUSE_TI89TI -DUSE_TI92PLUS -DUSE_V200 -DDYNAMIC_BUILD -DUSE_KERNEL Qtw.c -S
Using built-in specs.
Target: m68k-coff
Configured with: ../../download/gcc.ti/configure --prefix=/tmp/gcc4ti-cross --target=m68k-coff --with-gnu-as --disable-nls --disable-multilib --disable-shared --enable-static --disable-threads --disable-win32-registry --disable-checking --disable-werror --disable-pch --disable-mudflap --disable-libssp --host=i586-mingw32msvc
Thread model: single
gcc version 4.1.2 (TIGCC 4.1.2-tigcc-4)
 C:/PROGRA~2/GCC4TI/BIN/cc1.exe -quiet -v -I C:\PROGRA~2\GCC4TI\INCLUDE\C\ -D__TIGCC_ENV__ -D__TIGCC_WIN_ENV__ -D__INT_SHORT__ -DUSE_TI89 -DUSE_TI89TI -DUSE_TI92PLUS -DUSE_V200 -DDYNAMIC_BUILD -DUSE_KERNEL Widget.c -quiet -dumpbase Widget.c -auxbase Widget -O2 -Wall -W -std=c99 -version -o Widget.s
Using built-in specs.
Target: m68k-coff
Configured with: ../../download/gcc.ti/configure --prefix=/tmp/gcc4ti-cross --target=m68k-coff --with-gnu-as --disable-nls --disable-multilib --disable-shared --enable-static --disable-threads --disable-win32-registry --disable-checking --disable-werror --disable-pch --disable-mudflap --disable-libssp --host=i586-mingw32msvc
Thread model: single
gcc version 4.1.2 (TIGCC 4.1.2-tigcc-4)
 C:/PROGRA~2/GCC4TI/BIN/cc1.exe -quiet -v -I C:\PROGRA~2\GCC4TI\INCLUDE\C\ -D__TIGCC_ENV__ -D__TIGCC_WIN_ENV__ -D__INT_SHORT__ -DUSE_TI89 -DUSE_TI89TI -DUSE_TI92PLUS -DUSE_V200 -DDYNAMIC_BUILD -DUSE_KERNEL Window.c -quiet -dumpbase Window.c -auxbase Window -O2 -Wall -W -std=c99 -version -o Window.s
Using built-in specs.
Target: m68k-coff
Configured with: ../../download/gcc.ti/configure --prefix=/tmp/gcc4ti-cross --target=m68k-coff --with-gnu-as --disable-nls --disable-multilib --disable-shared --enable-static --disable-threads --disable-win32-registry --disable-checking --disable-werror --disable-pch --disable-mudflap --disable-libssp --host=i586-mingw32msvc
Thread model: single
gcc version 4.1.2 (TIGCC 4.1.2-tigcc-4)
 C:/PROGRA~2/GCC4TI/BIN/cc1.exe -quiet -v -I C:\PROGRA~2\GCC4TI\INCLUDE\C\ -D__TIGCC_ENV__ -D__TIGCC_WIN_ENV__ -D__INT_SHORT__ -DUSE_TI89 -DUSE_TI89TI -DUSE_TI92PLUS -DUSE_V200 -DDYNAMIC_BUILD -DUSE_KERNEL Qtw.c -quiet -dumpbase Qtw.c -auxbase Qtw -O2 -Wall -W -std=c99 -version -o Qtw.s
#include "..." search starts here:
#include <...> search starts here:
 C:\PROGRA~2\GCC4TI\INCLUDE\C
End of search list.
GNU C version 4.1.2 (TIGCC 4.1.2-tigcc-4) (m68k-coff)
	compiled by GNU C version 4.8.2.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 3f3ed5896515e750854f046c8b93b8d6
#include "..." search starts here:
#include <...> search starts here:
 C:\PROGRA~2\GCC4TI\INCLUDE\C
End of search list.
GNU C version 4.1.2 (TIGCC 4.1.2-tigcc-4) (m68k-coff)
	compiled by GNU C version 4.8.2.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 3f3ed5896515e750854f046c8b93b8d6
C:\PROGRA~2\GCC4TI\BIN\AS.EXE -mc68000 -I C:\PROGRA~2\GCC4TI\INCLUDE\S\ Qtw.s -o Qtw.o
#include "..." search starts here:
#include <...> search starts here:
 C:\PROGRA~2\GCC4TI\INCLUDE\C
End of search list.
GNU C version 4.1.2 (TIGCC 4.1.2-tigcc-4) (m68k-coff)
	compiled by GNU C version 4.8.2.
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 3f3ed5896515e750854f046c8b93b8d6
C:\PROGRA~2\GCC4TI\BIN\AS.EXE -mc68000 -I C:\PROGRA~2\GCC4TI\INCLUDE\S\ Widget.s -o Widget.o
C:\PROGRA~2\GCC4TI\BIN\AS.EXE -mc68000 -I C:\PROGRA~2\GCC4TI\INCLUDE\S\ Window.s -o Window.o
tigcc -o qtw Widget.o Window.o Qtw.o -v --remove-unused --optimize-relocs --optimize-code --cut-ranges --reorder-sections
Program Variable Size:                      12648448 Bytes
Absolute Relocs:                            0
Natively Emitted Relocs:                    0
Relocs Saved by Branch Optimization:        65536
mingw32-make[1]: Leaving directory 'F:/Programmation/Qtw/src'
*** Finished ***
Pas de doute, j'ai bien fait une extension mémoire réalisable rapidement © à ma TI.
Plus sérieusement, comment cela se fait-ce ? grin