Newsgroup: it.comp.os.linux.software
Titolo: errore di compilazione

Premessa: questo articolo e' gia' stato postato su icoli 15 giorni fa 
circa. Mi scuso per il cross-post.
salute al ng.
Distro Suse 7.3.
Problema: tento di installare il programma chemtool 1.4.1 dai 
corrispondenti sorgenti. Da istruzioni eseguo il make senza errori. Il make 
install da il seguente errore:
/bin/cp chemtool src-cht/cht /usr/local/bin
/bin/cp chemtool.1 /usr/local/man/man1
/bin/cp cht.1 /usr/local/man/man1
ifdef LOCALEDIR
make: ifdef: Command not found
make: *** [install] Error 127
Idee?
Grazie Palo

 make: *** [install] Error 127
Fai un grep nella dir dei sorgenti:
grep -C5 "ifdef LOCALEDIR" *
e riporta il risultato.
A me pare comunque che il problema sia l'omissione di un # prima
della ifdef, nel file in cui risiede questa "ifdef LOCALEDIR".
Ciao, Elisa.

 e riporta il risultato.
First of all grazie per la risposta. L'output del comando e' il seguente:
linux:/usr/chemtool/chemtool-1.4.1 # grep -C5 "ifdef LOCALEDIR" *
Makefile-PREFIX=/usr/local
Makefile-LOCALEDIR=/usr/share/locale
Makefile-
Makefile:ifdef LOCALEDIR
Makefile-CFLAGS=-O2 -Wall `gtk-config --cflags` -DMENU 
-DLOCALEDIR=\"${LOCALEDIR}\"
Makefile-else
Makefile-CFLAGS=-O2 -Wall `gtk-config --cflags` -DMENU -DDISABLE_NLS
Makefile-endif
Makefile-
--
Makefile-
Makefile-install: chemtool src-cht/cht
Makefile-       ${CP} chemtool src-cht/cht ${PREFIX}/bin
Makefile-       ${CP} chemtool.1 ${PREFIX}/man/man1
Makefile-       ${CP} cht.1     ${PREFIX}/man/man1
Makefile:       ifdef LOCALEDIR
Makefile-       for L in `ls locales`; do ${CP} locales/$$L/chemtool.mo 
${LOCALEDIR}/$$L/LC_MESSAGES;done
Makefile-       endif
Makefile-clean:
Makefile-       ${RM} *.o *~ src-cht/*.o src-cht/*~ chemtool src-cht/cht
Makefile-
grep: examples: È una directory
grep: locales: È una directory
grep: src-cht: È una directory
Purtroppo per me e' arabo, a te dice qualcosa?
Ciao
Un Palo speranzoso

 Makefile-       ${RM} *.o *~ src-cht/*.o src-cht/*~ chemtool src-cht/cht
Allora, edita quel Makefile ed elimina gli spazi davanti ad ifdef e endif,
in modo che risultino ad inizio riga, in questo modo:
install: chemtool src-cht/cht
        ${CP} chemtool src-cht/cht ${PREFIX}/bin
        ${CP} chemtool.1 ${PREFIX}/man/man1
        ${CP} cht.1     ${PREFIX}/man/man1
ifdef LOCALEDIR
        for L in `ls locales`; do ${CP} locales/$$L/chemtool.mo ${LOCALEDIR}/$$L/LC_MESSAGES;done
endif
Poi puoi eseguire il make install che non dovrebbe piu' darti errori.
Ciao, Elisa.

 Ciao, Elisa.
Adesso sono al lavoro, appena rientro a casa incrocio le dita e faccio le 
prove. Grazie ancora per l'aiuto,
ciao Palo

 in modo che risultino ad inizio riga, in questo modo:
Oppure tagli le linee con un backslash, cosi`:
ifdef LOCALEDIR
        for L in `ls locales`; do \
	${CP} locales/$$L/chemtool.mo ${LOCALEDIR}/$$L/LC_MESSAGES; \
	done
endif
Bye,
 Emmanuele.
-- 
Emmanuele Bassi (Zefram)           [ 
http://www.radiance.d2g.com/~zefram
 ]
GnuPG Key fingerprint = 4DD0 C90D 4070 F071 5738  08BD 8ECC DB8F A432 0FF4

 endif
Si', ma che c'entra? :)
Il problema e' dato dalla ifdef (e dalla endif) che non vengono interpretati
correttamente dal make (che evidentemente e' diverso da quello dell'autore
e parsa in modo differente il makefile) se non sono posti ad inizio riga.
Ciao, Elisa.

 e parsa in modo differente il makefile) se non sono posti ad inizio riga.
Chiedo venia. :-)
Ad ogni modo, basta assicurarsi che gli ifdef non abbiano spazi davanti,
ma solo \t, altrimenti make si incazzurrisce di brutto.
