はじめに
忘れがちなGNU makeのmakefileの書き方を記載します。
バージョンはGNU Make 3.81です。
テンプレート
markdownで記載するとなぜか半角スペースに変換されてしまっていますが
makefile内のインデントはタブ文字です。
makefile
CFLAGS=-I. -g -Wall -Werror
INCS=test.h
OBJS=test.o
LIBS=#-lpthread -lm
TARGET=test
%.o: %.c $(INCS)
$(CC) $(CFLAGS) -c -o $@ $<
$(TARGET): $(OBJS)
$(CC) $(CFLAGS) -o $@ $^ $(LIBS)
clean:
rm -rf $(TARGET) *.o
test.h
# define STRING "Hello World!\n"
test.c
# include "test.h"
# include <stdio.h>
int main(int argc, char*argv[])
{
printf(STRING);
return 0;
}