# On OSX do: # make OSX=OSX LIBNAME_LINEAR = librangetree_linear LIBNAME_TLOG = librangetree_tlog LIBNAME_LOG = librangetree_log OPTFLAGS = -O2 ifneq ($(GCOV),) GCOV_FLAGS = -fprofile-arcs -ftest-coverage else GCOV_FLAGS = endif CFLAGS = -W -Wall -Wextra -Werror -fPIC $(OPTFLAGS) -g3 -ggdb3 $(GCOV_FLAGS) CFLAGS += -Wbad-function-cast -Wcast-align -Wconversion -Waggregate-return CFLAGS += -Wmissing-noreturn -Wmissing-format-attribute CPPFLAGS = -I../../include -I../../newbrt CPPFLAGS += -D_GNU_SOURCE -D_THREAD_SAFE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE ifneq ($(OSX),) LIBEXT=dylib SHARED=-dynamiclib CFLAGS+=-fno-common else LIBEXT=so SHARED=-shared endif .PHONY: install logformat install: $(LIBNAME_LINEAR).$(LIBEXT) $(LIBNAME_LINEAR).a #$(LIBNAME_TLOG).$(LIBEXT) $(LIBNAME_TLOG).a $(LIBNAME_LOG).$(LIBEXT) $(LIBNAME_LOG).a clean: rm -rf *.o *.gcno *.gcda *.gcov rm -rf $(LIBNAME_LINEAR).$(LIBEXT) $(LIBNAME_LINEAR).a rm -rf $(LIBNAME_TLOG).$(LIBEXT) $(LIBNAME_TLOG).a rm -rf $(LIBNAME_LOG).$(LIBEXT) $(LIBNAME_LOG).a cd tests && make clean linear.o: linear.c rangetree.h gcc $(CFLAGS) $(CPPFLAGS) -c $< -o $@ log.o: log.c rangetree.h gcc $(CFLAGS) $(CPPFLAGS) -c $< -o $@ tlog.o: tlog.c rangetree.h gcc $(CFLAGS) $(CPPFLAGS) -c $< -o $@ $(LIBNAME_TLOG).$(LIBEXT): tlog.o cc $(CPPFLAGS) $< $(SHARED) -o $@ $(CFLAGS) $(LIBNAME_LOG).$(LIBEXT): log.o cc $(CPPFLAGS) $< $(SHARED) -o $@ $(CFLAGS) $(LIBNAME_LINEAR).$(LIBEXT): linear.o cc $(CPPFLAGS) $< $(SHARED) -o $@ $(CFLAGS) $(LIBNAME_TLOG).a: tlog.o $(AR) rv $@ $< $(LIBNAME_LOG).a: log.o $(AR) rv $@ $< $(LIBNAME_LINEAR).a: linear.o $(AR) rv $@ $<