[DEV] Autoconf, automake et libtool : erreur liée à l'objective-C
Bonjour à tous,
Vous êtes sûrement au courant de mon projet d'interface graphique avec OpenGL (qui avance assez bien d'ailleurs, voir ici). Depuis quelques temps (1/2h en fait) je me suis mis en tête de créer un paquet d'installation classique avec les premières sources pour donner une idée. Je pense que la méthode ./configure, make, sudo make install est la plus appropriée.
J'ai donc commencé à apprendre comment créer tout le fratras de fichiers pour obtenir la paquet final et évidemment… ça a fini par coincer. J'ai effectué les étapes à l'aide de cette page et de mon livre C en action chez O'Reilly.
En fait lors de la dernière étape de préparation, automake, j'obtiens cette erreur :
Code:
1 2
| automake
src/Makefile.am: Objective C source seen but `OBJC' is undefined |
Et absolument aucun autre problème pour la préparation. Je cherche sur le net et je trouve à cette adresse :
Citation:
Objective C source seen but `OBJC' is undefined
The configure process stops halfway.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| + aclocal-1.9 -I m4
+ autoconf
+ autoheader
+ automake-1.9 --add-missing --copy -Wall
configure.ac: installing `autotools/install-sh'
configure.ac: installing `autotools/missing'
activex/Makefile.am:143: shell $(VLC_CONFIG: non-POSIX variable name
activex/Makefile.am:143: (probably a GNU make extension)
activex/Makefile.am: installing `autotools/compile'
activex/Makefile.am: installing `autotools/depcomp'
modules/gui/macosx/Makefile.am: Objective C source seen but `OBJC' is undefined
modules/misc/testsuite/Makefile.am: Objective C source seen but `OBJC' is undefi
ned
src/Makefile.am: Objective C source seen but `OBJC' is undefined
Makefile.am:282: user target `vlc$(EXEEXT)' defined here...
/usr/share/automake-1.9/am/program.am: ... overrides Automake target `vlc$(EXEEX
T)' defined here
Makefile.am:230: while processing program `vlc'
make: *** No targets specified and no makefile found. Stop. |
This problem is related to a warning earlier on and only occured in a few revisions where a built-in workaround wasn't working properly:
Code:
1 2
| + echo 'Enabling provisional autoconf 2.59 work-around. Update autoconf ASAP.'
Enabling provisional autoconf 2.59 work-around. Update autoconf ASAP. |
FIX: update autoconf to 2.60 or newer.
Or il se trouve que j'avais la version 2.61… j'ai tenté de revenir à la version 2.60 (on ne sait jamais) et j'ai le même problème.
Mon deuxième problème est cet avertissement pendant une tentative d'exécution du script de configuration :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
./configure
[...]
checking objc/objc.h usability... yes
checking objc/objc.h presence... yes
checking for objc/objc.h... yes
checking objc/Object.h usability... no
checking objc/Object.h presence... yes
configure: WARNING: objc/Object.h: present but cannot be compiled
configure: WARNING: objc/Object.h: check for missing prerequisite headers?
configure: WARNING: objc/Object.h: see the Autoconf documentation
configure: WARNING: objc/Object.h: section "Present But Cannot Be Compiled"
configure: WARNING: objc/Object.h: proceeding with the preprocessor's result
configure: WARNING: objc/Object.h: in the future, the compiler will take precedence
configure: WARNING: ## ------------------------------------ ##
configure: WARNING: ## Report this to spootnikdev@orange.fr ##
configure: WARNING: ## ------------------------------------ ##
checking for objc/Object.h... yes
[...] |
Je finis par trouver la page… mais après avoir suivi ce qui était indiqué j'ai toujours la même erreur.
Voici la ligne concernée du fichier configure.ac :
Code:
1 2 3 4 5
| AC_CHECK_HEADERS([stdlib.h string.h stdio.h unistd.h stddef.h objc/objc.h objc/Object.h SDL/SDL_events.h OpenGL/gl.h OpenGL/glu.h AGL/agl.h libpng/png.h], [], [],
[[#ifdef HAVE_OBJECT_H
#include <objc/Object.h>
#endif
]]) |
Enfin j'ai une erreur à cause du fichier Makefile.in inexistant, je l'ai créé manuellement, en le laissant vide et l'erreur a disparu. Je ne sais pas s'il aurait dû être généré dans l'une des étapes de préparation. Enfin je pense que oui puisqu'après quand je fais make j'ai…
Code:
make: *** No targets. Stop.
Voila, si quelqu'un aurait une idée ça serait vraiment simpa, là je calle :mrgreen:, merci.
Bon développement à tous