Make старый инструмент и он рассмотрен со всех мыслимых углов.
Вот самый простяцкий, топорный без всякой автоматизации Makefile:
# Which do you want install the program
INSTALLDIR=/usr/local/bin
MANDIR=/usr/local/man
HEADERS=extern.h vary.h
TESTS=bsddate
SRCS=date.c netdate.c vary.c
OBJS=date.o netdate.o vary.o
LIBS=-lbsd
MAN=bsddate.1
CC=gcc
# Flags for Linux
CFLAGS=-pipe -funsigned-char -ggdb -g3
RMF = -/bin/rm -f
all: $(TESTS)
.c.o:
$(CC) -c $(DEFS) $(CFLAGS) $<
$(OBJS): $(HEADERS)
install:
strip $(TESTS)
install -d -m 755 -o root -g root $(INSTALLDIR)
install -d -m 755 -o root -g root $(MANDIR)/man1
install -c -m 755 -o root -g root $(TESTS) $(INSTALLDIR)
install -c -m 644 -o root -g root $(MAN) $(MANDIR)/man1
clean:
$(RMF) $(OBJS) $(TESTS) *~ *.core *.bak *.BAK
bsddate: $(OBJS)
$(CC) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
Этот файл соберет бинарь bsddate из трех файлов исходников date.c, netdate.c и vary.c и двух файлов заголовков extern.h и vary.h, используя библиотеку libbsd, при установке раскидает по каталогам. Берешь приведенный в ответе
AlexVWill ман и разбираешь по нему этот пример (если не хватит тяму его просто поправить под себя).