Makefile 738 B

1234567891011121314151617181920212223242526272829303132333435
  1. OS := $(shell uname)
  2. SOURCES = $(wildcard common/*.c) $(wildcard dec/*.c) $(wildcard enc/*.c) \
  3. tools/bro.c
  4. BINDIR = bin
  5. OBJDIR = $(BINDIR)/obj
  6. OBJECTS = $(addprefix $(OBJDIR)/, $(SOURCES:.c=.o))
  7. EXECUTABLE = bro
  8. DIRS = $(OBJDIR)/common $(OBJDIR)/dec $(OBJDIR)/enc \
  9. $(OBJDIR)/tools $(BINDIR)/tmp
  10. CFLAGS += -O2
  11. ifeq ($(os), Darwin)
  12. CPPFLAGS += -DOS_MACOSX
  13. endif
  14. all: test
  15. @:
  16. .PHONY: all clean test
  17. $(DIRS):
  18. mkdir -p $@
  19. $(OBJECTS): $(DIRS)
  20. $(CC) $(CFLAGS) $(CPPFLAGS) \
  21. -c $(patsubst %.o,%.c,$(patsubst $(OBJDIR)/%,%,$@)) -o $@
  22. $(EXECUTABLE): $(OBJECTS)
  23. $(CC) $(OBJECTS) -lm -o $(BINDIR)/$(EXECUTABLE)
  24. test: $(EXECUTABLE)
  25. tests/compatibility_test.sh
  26. tests/roundtrip_test.sh
  27. clean:
  28. rm -rf $(BINDIR)