如何编写干净的Makefile?

css*_*drx 6 makefile

我所处理的Makefile大部分都是复杂的,隐藏了很多关系.我自己从未写过一篇,并且想知道是否有人有关于编写易于阅读和可重用的Makefile的一些技巧?

Vin*_*ura 5

我通常使用这样的东西,在这个例子中,源文件是main.c file2.c file3.c file4.c,要添加更多内容,您只需添加到OBJECTSvar 中即可。

它们都依赖于Makefile,因此对于完整的重新编译,一个简单的touch Makefile就足够了。

PROGNAME = hi2u
LIBS = -ljpeg -ldirectfb -pthread 
INCLUDES = -I/usr/local/include/directfb 
LDFLAGS = -Llibs/
OBJECTS = main.o file2.o \
            file3.o file4.o

CFLAGS = -W -Wall -O2 -ggdb 

all: $(PROGNAME)

$(PROGNAME): $(OBJECTS)
    gcc -o $(PROGNAME) $(OBJECTS) $(LIBS) $(INCLUDES) $(LDFLAGS)

$(OBJECTS): Makefile

.c.o: 
    gcc -c $(CFLAGS) $(INCLUDES) -o $@ $< 

clean:
    rm *.o $(PROGNAME)
Run Code Online (Sandbox Code Playgroud)