Probleme de script

Fermé
EwenB Messages postés 4 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 18 août 2008 - 18 août 2008 à 12:24
EwenB Messages postés 4 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 18 août 2008 - 18 août 2008 à 13:34
Bonjour,

J'utilise un logiciel que je peux développer/modifier sur Mandriva, et je n'arrive pas a utiliser le script pour recompiler le fichier (ce n'est pas moi qui l'ai développé et j'avoue que je debute "un peu" sur linux).

#!/bin/bash

# Version O2
OPTIF = -O -g
OPTIC = -O -g
OPTIL = $(OPTIF) 

.SUFFIXES: .eso .for .f .c .o .a

.SILENT:

.IGNORE:

# Version de developpement personnel
DEVEL = ./Cast3m_devel

# fichiers objets surcharges

CAST = Lib_Castem/bdata.o main.o

# fichiers de developpements personnels
SOUDEV = $(wildcard ESODEV/*.eso)
SOUDEV1 = $(wildcard ESODEV/*.for)

# objets castem pour developpement
OBJDEV = $(SOUDEV:.eso=.o) $(SOUDEV1:.for=.o)

# librairies Castem, Gemat et standards
LIBCAS = Lib_Castem/castem.a
LIBGEM = Lib_Castem/esope.a

LIBBLAS = /home/david/d-blas/libblas.a

# END = /opt/langtools/lib/end.o

LIBSTD = /usr/X11R6/lib/libX11.so

default : 
	echo 'gmake -r '$(DEVEL)

$(DEVEL) : $(OBJDEV) $(CAST) $(LIBCAS) $(LIBGEM) $(LIBSTD) 
	echo ' edition de lien pour ' $@
	g77 $(OPTIL) -o $@ $(OBJDEV) $(CAST) $(LIBCAS) $(LIBGEM) $(LIBBLAS) $(LIBSTD) -lncurses -lpthread 2>&1   | grep -v 'multiple common' \
                                 | grep -v 'previous common is here'     \
                                 | grep -v 'overridden by definition' \
                                 | grep -v 'overridden by larger common' \
                                 | grep -v 'larger common is here' \
                                 | grep -v 'defined here' \
                                 | grep -v 'overriding common' \
                                 | grep -v 'overriding smaller common' \
                                 | grep -v 'common is here'
	echo ' edition de lien terminee'


.eso.o :;
	echo ' precompilation de ' $*.eso
	./e2f_new $*.eso
	echo ' compilation de ' $*.f
	g77 $(OPTIF) -c $*.f -o $*.o

.for.o :;
	echo ' compilation de ' $*.for
	cp $*.for $*.f
	g77 $(OPTIF) -c $*.f -o $*.o

.f.o :;
	echo ' compilation de ' $*.f
	g77 $(OPTIF) -c $*.f -o $*.o

.c.o :;
	echo ' compilation de ' $*.c
	gcc $(OPTIC) -c $*.c -o $*.o


Que je lance en bash ou en sh, le même message d'erreur apparaît pour quasiment chacune des lignes : "./Makefile: line 4: OPTIF: command not found"... Du coup bien sur ca ne marche pas ;)

J'ai l'impression que mon interpreteur est mal reconnu, ou alors c'est plus subtil que ca et j'n'ai rien compris (problème de syntaxe du fichier ?)...

Si l'un de vous a du temps pour me filer un petit coup de pouce ce serait sympa !

Merci d'avance,
Ewen

4 réponses

jipicy Messages postés 40805 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 901
18 août 2008 à 12:33
Salut,

Supprime tous les espaces dans tes variables avant et après le signe "égale", et entoure les déclarations par des quotes (simples ou doubles) :
# Version O2
OPTIF="-O -g"
OPTIC="-O -g"
OPTIL="$(OPTIF)"
;-))
0
EwenB Messages postés 4 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 18 août 2008
18 août 2008 à 12:37
Ca j'avais plus ou moins tenté et vu que ca passait, mais je n'étais pas très sur de moi...

Du coup l'erreur se décale à "./Makefile: line 8: .SUFFIXES:: command not found"

...

Merci pour ta réponse rapide !
0
EwenB Messages postés 4 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 18 août 2008
18 août 2008 à 12:40
J'ai modifié le début du fichier comme suit :

#!/bin/bash

# Version O2
OPTIF='-O -g'
OPTIC='-O -g'
OPTIL=$OPTIF 

SUFFIXES='.eso .for .f .c .o .a'

# Version de developpement personnel
DEVEL=./Cast3m_devel

# fichiers objets surcharges

CAST='Lib_Castem/bdata.o main.o'

# fichiers de developpements personnels
SOUDEV=$(wildcard ESODEV/*.eso)


Ca passe au début, mais le wildcard n'est pas reconnu : "./Makefile: line 18: wildcard: command not found"
0
dubcek Messages postés 18582 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 1 février 2023 5 584
18 août 2008 à 12:41
ce n'est pas un script mais un makefile, non ?
enlever la ligne /bin/bash et faire make -f fichier
0
EwenB Messages postés 4 Date d'inscription lundi 18 août 2008 Statut Membre Dernière intervention 18 août 2008
18 août 2008 à 13:34
Je crois qu'il y a de l'idée dans ce que tu as dis... Dumoins ca change tout au niveau des message d'erreur !
Ca résoud pas le problème mais ca le fait bien avancer ^^

Merci !!
0