2013-04-25 6 views
4

Я пытаюсь построить библиотеку какого-либо проекта. Когда я запускаю его как ./MakeFile с терминала, я получаю кучу ошибок для каждой строки. Ниже приведен файл makefile и ошибки. Что с этим не так? Для другого проекта Makefie работает нормально, так что это не значит, что система не знает, как интерпретировать этот файл. Спасибо!make file issue: ошибка в каждой строке

LIBDIR = ../../lib 

IFLAGS = -I../../include -I/usr/local/include 

CFLAGS = $(IFLAGS) -O3 -Wunused -m32 #-fPIC 

CC = gcc 

AR = ar 

SRC = allocfailed.c cleanup.c ECDFwd.c ECDLeadField.c ECDSolve.c ECDSolve2.c \ 
    GetBasis.c GetCoeffs.c GetHull.c NLeadField.c NSolveFwd.c NSolveWts.c \ 
    rnynm.c xbd.c xlubksb.c xludcmp.c 

OBJ = $(SRC:.c=.o) 

all: liblfu.a 

liblfu.a: $(OBJ) 
    $(AR) cr liblfu.a $(OBJ) 
    @mkdir -p $(LIBDIR) 
    mv liblfu.a $(LIBDIR) 

clean: 
    /bin/rm -rf *.o *.il *.a core 


./Makefile: line 1: LIBDIR: command not found 
./Makefile: line 3: IFLAGS: command not found 
./Makefile: line 5: IFLAGS: command not found 
./Makefile: line 5: CFLAGS: command not found 
./Makefile: line 7: CC: command not found 
./Makefile: line 9: AR: command not found 
./Makefile: line 11: SRC: command not found 
./Makefile: line 15: SRC:.c=.o: command not found 
./Makefile: line 15: OBJ: command not found 
./Makefile: line 17: all:: command not found 
./Makefile: line 19: OBJ: command not found 
./Makefile: line 19: liblfu.a:: command not found 
./Makefile: line 20: AR: command not found 
./Makefile: line 20: OBJ: command not found 
./Makefile: line 20: cr: command not found 
./Makefile: line 21: LIBDIR: command not found 
./Makefile: line 21: @mkdir: command not found 
./Makefile: line 22: LIBDIR: command not found 
+0

как же первая линия другой, работая Makefile выглядеть как? –

ответ

10

Вы запускаете файл сделать как сценарий, просто введите команду make

грим принимает Makefile (или Makefile) в качестве входных данных по умолчанию. Это невозможно.

Вы можете сделать его работоспособным добавлением (при условии, сделать в/USR/бен)

#!/usr/bin/make -f 

в первой строке файла

+0

Спасибо! сделайте работу. Но почему в другом проекте ./MakeFile тоже работает? – user1597969

+0

Наверное, не нужно, но '#!/usr/bin/env make -f' может обслуживать несколько нечетных систем, которые «делают» в каком-то другом месте. –