diff options
author | Joshua Haberman <joshua@reverberate.org> | 2009-08-04 17:51:17 -0700 |
---|---|---|
committer | Joshua Haberman <joshua@reverberate.org> | 2009-08-04 17:51:17 -0700 |
commit | 2aaea5390a841e2682a318746e90aebbe8a955b9 (patch) | |
tree | 7fb416aafcf8d84d2d3b73344b4b68f21f3d01f5 /Makefile | |
parent | f03c8bd7dddb17f51e6baeacd68e4c0172411e82 (diff) |
Makefile is much improved ("make deps" works again, etc).
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 35 |
1 files changed, 23 insertions, 12 deletions
@@ -1,27 +1,38 @@ +# Function to expand a wildcard pattern recursively. +rwildcard=$(strip $(foreach d,$(wildcard $1*),$(call rwildcard,$d/,$2)$(filter $(subst *,%,$2),$d))) + .PHONY: all clean CC=gcc CXX=g++ CFLAGS=-std=c99 INCLUDE=-Idescriptor -Isrc -Itests -I. CPPFLAGS=-O3 -fomit-frame-pointer -Wall -Wextra -g -DNDEBUG $(INCLUDE) -OBJ=src/upb_parse.o src/upb_table.o src/upb_msg.o src/upb_enum.o src/upb_context.o \ - src/upb_string.o src/upb_text.o src/upb_serialize.o descriptor/descriptor.o -SRC=src/*.c src/*.h descriptor/*.c descriptor/*.h tests/*.c tests/*.h tools/*.c -ALL=$(OBJ) src/libupb.a tests/test_table tests/tests tools/upbc benchmark/benchmark + +ALL=deps $(OBJ) src/libupb.a tests/test_table tests/tests tools/upbc all: $(ALL) clean: - rm -f $(ALL) benchmark/google_messages.proto.pb benchmark/google_messages.pb.* - -test: tests/tests - ./tests/tests + rm -f $(call rwildcard,,*.o) $(ALL) benchmark/google_messages.proto.pb benchmark/google_messages.pb.* benchmark/b_* +# The core library (src/libupb.a) +OBJ=src/upb_parse.o src/upb_table.o src/upb_msg.o src/upb_enum.o src/upb_context.o \ + src/upb_string.o src/upb_text.o src/upb_serialize.o descriptor/descriptor.o +SRC=$(call rwildcard,,*.c) +HEADERS=$(call rwildcard,,*.h) src/libupb.a: $(OBJ) ar rcs src/libupb.a $(OBJ) + +# Tests +test: tests/tests + ./tests/tests tests/test_table: src/libupb.a tests/tests: src/libupb.a + +# Tools tools/upbc: src/libupb.a -benchmark/benchmark: src/libupb.a benchmark/google_messages.pb.h benchmark/google_messages.pb.o benchmark/benchmark.o - $(CXX) $(CPPFLAGS) -o benchmark/benchmark benchmark/google_messages.pb.o benchmark/benchmark.cc src/libupb.a -lm -lprotobuf -lpthread -benchmark/google_messages.pb.cc benchmark/google_messages.pb.h benchmark/google_messages.pb: benchmark/google_messages.proto - protoc benchmark/google_messages.proto --cpp_out=. -obenchmark/google_messages.proto.pb + +# Benchmarks + +-include deps +deps: $(SRC) $(HEADERS) gen-deps.sh Makefile + ./gen-deps.sh $(SRC) |