C: Создание статической библиотеки и создание ссылок с использованием Makefile

я пытаюсьпонимать статические и общие библиотеки.

Я хочу сделать следующее, чтобы создать make-файл, который выполняет раздельную компиляцию и компоновку, так что статическая библиотека создается и связывается при формировании конечного статического исполняемого файла.

У меня есть следующий код для Makefile, но я получаю следующую ошибку

Makefile:13: *** missing separator. Stop.

Но я также пытаюсь понять, как на самом деле связывать / создавать библиотеки.

Если я запускаю команды послеline 12 в терминале они работают, но не в make-файле.

myProgram: main.o addSorted.o freeLinks.o
    gcc -lm -o myProgram main.o addSorted.o freeLinks.o

main.o: main.c
    gcc -O -c -lm main.c main.h

addSorted.o: addSorted.c addSorted.h
    gcc -O -c -lm addSorted.c

freeLinks.o: freeLinks.c freeLinks.h
    gcc -O -c -lm freeLinks.c

ar rc libmylib.a main.o addSorted.o freeLinks.o    //Error Line

ranlib libmylib.a

gcc -o foo -L. -lmylib foo.o

clean:
    rm -f myProgram main.o addSorted.o freeLinks.o

Кроме того, если вы можете помочь в улучшении кода, я был бы очень признателен.