Simplified Makefile

gcc and clang can generate dep files as well as compiling in a single
pass, no need for two.

Signed-off-by: Michel Pollet <buserror@gmail.com>
This commit is contained in:
Michel Pollet
2016-09-13 21:41:19 +01:00
committed by Patrick J Cherry
parent e3360a3a1b
commit fcd3d33498

View File

@@ -50,8 +50,7 @@ CC?=gcc
LIBS=-lpthread LIBS=-lpthread
INC=-I/usr/include/libev -Isrc/common -Isrc/server -Isrc/proxy INC=-I/usr/include/libev -Isrc/common -Isrc/server -Isrc/proxy
COMPILE=$(CC) $(INC) -c $(CCFLAGS) COMPILE=$(CC) -MMD $(INC) -c $(CCFLAGS)
SAVEDEP=$(CC) $(INC) -MM $(CCFLAGS)
LINK=$(CC) $(LLDFLAGS) -Isrc $(LIBS) LINK=$(CC) $(LLDFLAGS) -Isrc $(LIBS)
LIB=build/ LIB=build/
@@ -71,12 +70,11 @@ SRCS := $(COMMON_SRC) $(SERVER_SRC) $(PROXY_SRC)
OBJS := $(COMMON_OBJ) $(SERVER_OBJ) $(PROXY_OBJ) OBJS := $(COMMON_OBJ) $(SERVER_OBJ) $(PROXY_OBJ)
all: build/flexnbd build/flexnbd-proxy doc all: build/flexnbd build/flexnbd-proxy #doc
build/%.o: %.c build/%.o: %.c
mkdir -p $(dir $@) mkdir -p $(dir $@)
$(COMPILE) $< -o $@ $(COMPILE) $< -o $@
$(SAVEDEP) $< > build/$*.d
objs: $(OBJS) objs: $(OBJS)
@@ -91,16 +89,13 @@ proxy: build/flexnbd-proxy
CHECK_SRC := $(wildcard tests/unit/*.c) CHECK_SRC := $(wildcard tests/unit/*.c)
CHECK_OBJ := $(CHECK_SRC:tests/unit/%.c=build/tests/%.o) CHECK_OBJ := $(CHECK_SRC:tests/unit/%.c=build/%.o)
# Why can't we reuse the build/%.o rule above? Not sure. # Why can't we reuse the build/%.o rule above? Not sure.
build/tests/%.o: tests/unit/%.c
mkdir -p $(dir $@)
$(COMPILE) $< -o $@
$(SAVEDEP) $< > build/tests/$*.d
CHECK_BINS := $(CHECK_OBJ:build/tests/%.o=build/tests/%) CHECK_BINS := $(CHECK_SRC:tests/unit/%.c=build/%)
build/tests/%: build/tests/%.o $(OBJS)
$(LINK) $^ -o $@ -lcheck build/check_%: build/check_%.o
$(LINK) $^ -o $@ $(COMMON_OBJ) -lcheck
check_objs: $(CHECK_OBJ) check_objs: $(CHECK_OBJ)