Skip to content

Commit

Permalink
replace makefiles with version based on the improved flint makefiles
Browse files Browse the repository at this point in the history
  • Loading branch information
fredrik-johansson committed Aug 18, 2014
1 parent 7554efe commit a401915
Show file tree
Hide file tree
Showing 30 changed files with 808 additions and 1,254 deletions.
212 changes: 151 additions & 61 deletions Makefile.in
Original file line number Diff line number Diff line change
@@ -1,106 +1,196 @@
LIBS=-L$(CURDIR) -L$(ARB_FLINT_LIB_DIR) -L$(ARB_GMP_LIB_DIR) -L$(ARB_MPFR_LIB_DIR) -larb -lflint -lmpfr -lgmp -lpthread -lm
LIBS2=-L$(ARB_FLINT_LIB_DIR) -L$(ARB_GMP_LIB_DIR) -L$(ARB_MPFR_LIB_DIR) -lflint -lmpfr -lgmp -lpthread -lm
INCS=-I$(CURDIR) -I$(ARB_GMP_INCLUDE_DIR) -I$(ARB_MPFR_INCLUDE_DIR) -I$(ARB_FLINT_INCLUDE_DIR)
LINKLIBS=$(ARB_GMP_LIB_DIR)/libgmp.a $(ARB_MPFR_LIB_DIR)/libmpfr.a $(ARB_FLINT_LIB_DIR)/libflint.so
ifdef $(DLPATH)
$(DLPATH):=$($(DLPATH)):$(DLPATH_ADD)
else
$(DLPATH):=$(DLPATH_ADD)
endif

QUIET_CC = @echo ' ' CC ' ' $@;
QUIET_CXX = @echo ' ' CXX ' ' $@;
QUIET_AR = @echo ' ' AR ' ' $@;

AT=@

BUILD_DIRS = fmpr arf mag arb arb_mat arb_poly arb_calc acb acb_mat acb_poly \
acb_calc fmprb fmprb_poly fmprb_mat fmprb_calc fmpcb fmpcb_poly fmpcb_mat \
fmpcb_calc elefun bernoulli hypgeom gamma zeta fmpz_extras partitions \
$(EXTRA_BUILD_DIRS)

TEMPLATE_DIRS =

LD_LIBRARY_PATH:=${CURDIR}:${ARB_FLINT_LIB_DIR}:${ARB_MPFR_LIB_DIR}:${ARB_GMP_LIB_DIR}:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
export

SOURCES = $(wildcard *.c)
SOURCES =
LIB_SOURCES = $(wildcard $(patsubst %, %/*.c, $(BUILD_DIRS))) $(patsubst %, %/*.c, $(TEMPLATE_DIRS))

HEADERS = $(wildcard *.h)
HEADERS = $(patsubst %, %.h, $(BUILD_DIRS))

OBJS = $(patsubst %.c, build/%.o, $(SOURCES))
LIB_OBJS = $(patsubst %, build/%/*.o, $(BUILD_DIRS))

LOBJS = $(patsubst %.c, build/%.lo, $(SOURCES))

LIB_SOURCES = $(SOURCES) $(foreach dir, $(BUILD_DIRS), $(wildcard $(dir)/*.c))

LIB_OBJS = $(patsubst %.c, build/%.lo, $(LIB_SOURCES))
LIB_LOBJS = $(patsubst %, build/%/*.lo, $(BUILD_DIRS))
MOD_LOBJS = $(patsubst %, build/%.lo, $(BUILD_DIRS))

EXMP_SOURCES = $(wildcard examples/*.c)
EXMPS = $(patsubst %.c, %, $(EXMP_SOURCES))

TEST_SOURCES = $(wildcard test/*.c)
TESTS = $(patsubst %.c, build/%$(EXEEXT), $(TEST_SOURCES))

PROF_SOURCES = $(wildcard profile/*.c)
PROFS = $(patsubst %.c, %$(EXEEXT), $(PROF_SOURCES))

EXMPS = $(patsubst %.c, %, $(EXMP_SOURCES))
TUNE_SOURCES = $(wildcard tune/*.c)
TUNE = $(patsubst %.c, %$(EXEEXT), $(TUNE_SOURCES))

TESTS = $(patsubst %.c, %, $(TEST_SOURCES))
EXT_SOURCES = $(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), $(wildcard $(ext)/$(dir)/*.c)))
EXT_TEST_SOURCES = $(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), $(wildcard $(ext)/$(dir)/test/t-*.c)))
EXT_TUNE_SOURCES = $(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), $(wildcard $(ext)/$(dir)/tune/*.c)))
EXT_PROF_SOURCES = $(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), $(wildcard $(ext)/$(dir)/profile/p-*.c)))
EXT_OBJS = $(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), build/$(dir).lo))
EXT_HEADERS = $(foreach ext, $(EXTENSIONS), $(wildcard $(ext)/*.h))

PROFS = $(patsubst %.c, %, $(PROF_SOURCES))
all: library

all: all-dirs $(OBJS) recursive library
quiet: library

all-dirs:
$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir);)
verbose:
$(MAKE) AT= QUIET_CC= QUIET_CXX= QUIET_AR=

clean:
$(foreach dir, $(BUILD_DIRS), export BUILD_DIR=../build/$(dir); $(MAKE) -C $(dir) clean;)
$(AT)$(foreach dir, $(BUILD_DIRS), BUILD_DIR=../build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) clean || exit $$?;)
$(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) clean || exit $$?;))
rm -f $(OBJS) $(LOBJS) $(TESTS) $(PROFS) $(EXMPS) $(ARB_LIB) libarb.a
rm -rf build

distclean: clean
rm -f Makefile

dist:
git archive --format tar --prefix arb-0.0/ trunk > ../arb-0.0.tar; gzip ../arb-0.0.tar

profile: all profiler.o
profile: library $(PROF_SOURCES) $(EXT_PROF_SOURCES) build/profiler.o
mkdir -p build/profile
$(foreach prog, $(PROFS), $(CC) -O2 -std=c99 $(INCS) $(prog).c profiler.o -o build/$(prog) $(LIBS);)
$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir)/profile; export BUILD_DIR=../build/$(dir); $(MAKE) -C $(dir) profile;)
ifndef MOD
$(AT)$(foreach prog, $(PROFS), $(CC) $(ABI_FLAG) -std=c99 -O2 -g $(INCS) $(prog).c build/profiler.o -o build/$(prog) $(LIBS) || exit $$?;)
$(AT)$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir)/profile; BUILD_DIR=../build/$(dir); export BUILD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) profile || exit $$?;)
$(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), mkdir -p build/$(dir)/profile; BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) profile || exit $$?;))
else
$(AT)$(foreach dir, $(MOD), mkdir -p build/$(dir)/profile; BUILD_DIR=../build/$(dir); export BUILD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) profile || exit $$?;)
endif

recursive:
$(foreach dir, $(BUILD_DIRS), export BUILD_DIR=../build/$(dir); $(MAKE) -C $(dir);)
tune: library $(TUNE_SOURCES) $(EXT_TUNE_SOURCES)
mkdir -p build/tune
$(AT)$(foreach prog, $(TUNE), $(CC) $(CFLAGS) $(INCS) $(prog).c -o build/$(prog) $(LIBS) || exit $$?;)
$(AT)$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir)/tune; BUILD_DIR=../build/$(dir); export BUILD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) tune || exit $$?;)
$(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), mkdir -p build/$(dir)/tune; BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) tune || exit $$?;))

examples: all $(LOBJS) library
examples: library $(EXMP_SOURCES)
mkdir -p build/examples
$(foreach prog, $(EXMPS), $(CC) $(CFLAGS) $(INCS) $(prog).c -o build/$(prog) $(LIBS);)
$(AT)$(foreach prog, $(EXMPS), $(CC) $(CFLAGS) $(INCS) $(prog).c -o build/$(prog) $(LIBS) || exit $$?;)

$(ARB_LIB): $(LOBJS) $(LIB_SOURCES) $(EXT_SOURCES) $(HEADERS) $(EXT_HEADERS) | build build/interfaces
$(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), mkdir -p build/$(dir); BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) shared || exit $$?;))
$(AT)$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir); BUILD_DIR=../build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) shared || exit $$?;)
$(AT)if [ "$(WANT_NTL)" -eq "1" ]; then \
$(MAKE) build/interfaces/NTL-interface.lo; \
$(CXX) $(ABI_FLAG) -shared $(EXTRA_SHARED_FLAGS) build/interfaces/NTL-interface.lo $(LOBJS) $(MOD_LOBJS) $(EXT_OBJS) $(LIBS2) -o $(ARB_LIB); \
fi
$(AT)if [ "$(WANT_NTL)" -ne "1" ]; then \
$(CC) $(ABI_FLAG) -shared $(EXTRA_SHARED_FLAGS) $(LOBJS) $(MOD_LOBJS) $(EXT_OBJS) $(LIBS2) -o $(ARB_LIB); \
fi

libarb.a: $(OBJS) $(LIB_SOURCES) $(EXT_SOURCES) $(HEADERS) $(EXT_HEADERS) | build build/interfaces
$(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), mkdir -p build/$(dir); BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) static || exit $$?;))
$(AT)$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir); BUILD_DIR=../build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) static || exit $$?;)
$(AT)if [ "$(ARB_SHARED)" -eq "0" ]; then \
touch test/t-*.c; \
$(foreach dir, $(BUILD_DIRS), touch $(dir)/test/t-*.c;) \
$(foreach ext, $(EXTENSIONS), $(foreach mod, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), touch $(ext)/$(mod)/test/t-*.c;)) \
fi
$(AT)if [ "$(WANT_NTL)" -eq "1" ]; then \
$(MAKE) build/interfaces/NTL-interface.o; \
$(AR) rcs libarb.a build/interfaces/NTL-interface.o; \
fi
$(QUIET_AR) $(AR) rcs libarb.a $(OBJS);
$(AT)$(foreach mod, $(BUILD_DIRS), $(AR) rcs libarb.a build/$(mod)/*.o || exit $$?;)
$(AT)$(foreach ext, $(EXTENSIONS), $(foreach mod, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), $(AR) rcs libarb.a build/$(mod)/*.o || exit $$?;))

library:
$(AT)if [ "$(ARB_SHARED)" -eq "1" ]; then \
$(MAKE) shared; \
fi
$(AT)if [ "$(ARB_STATIC)" -eq "1" ]; then \
$(MAKE) static; \
fi

shared: $(ARB_LIB)

static: libarb.a

tests: library $(TESTS)
$(AT)$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir)/test; BUILD_DIR=../build/$(dir); export BUILD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) tests || exit $$?;)
$(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), mkdir -p build/$(dir)/test; BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) tests || exit $$?;))
mkdir -p build/interfaces/test
$(AT)if [ "$(WANT_NTL)" -eq "1" ]; then \
$(MAKE) build/interfaces/test/t-NTL-interface; \
fi

check: library
ifndef MOD
$(AT)$(MAKE) $(TESTS)
$(AT)$(foreach prog, $(TESTS), $(prog) || exit $$?;)
$(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), mkdir -p build/$(dir)/test; BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) check || exit $$?;))
$(AT)$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir)/test; BUILD_DIR=../build/$(dir); export BUILD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) check || exit $$?;)
mkdir -p build/interfaces/test
$(AT)if [ "$(WANT_NTL)" -eq "1" ]; then \
$(MAKE) build/interfaces/test/t-NTL-interface; \
build/interfaces/test/t-NTL-interface; \
fi
else
$(AT)$(foreach dir, $(MOD), test ! -d $(dir) || mkdir -p build/$(dir)/test; BUILD_DIR=../build/$(dir); export BUILD_DIR; test ! -d $(dir) || $(MAKE) -f ../Makefile.subdirs -C $(dir) check || exit $$?;)
$(AT)$(foreach ext, $(EXTENSIONS), $(AT)$(foreach dir, $(MOD), MOD_DIR=$(dir); export MOD_DIR; test ! -d $(ext)/$(dir) || mkdir -p build/$(dir)/test; BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; test ! -d $(ext)/$(dir) || $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) check || exit $$?;))
endif

check: $(ARB_LIB)
valgrind: library
ifndef MOD
mkdir -p build/test
$(foreach prog, $(TESTS), $(CC) $(CFLAGS) $(INCS) $(prog).c -o build/$(prog) $(LIBS);)
$(foreach prog, $(TESTS), build/$(prog);)
$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir)/test; export BUILD_DIR=../build/$(dir); $(MAKE) -C $(dir) check;)
$(AT)$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir)/test; BUILD_DIR=../build/$(dir); export BUILD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) valgrind || exit $$?;)
$(AT)$(foreach ext, $(EXTENSIONS), $(foreach dir, $(patsubst $(ext)/%.h, %, $(wildcard $(ext)/*.h)), mkdir -p build/$(dir)/test; BUILD_DIR=$(CURDIR)/build/$(dir); export BUILD_DIR; MOD_DIR=$(dir); export MOD_DIR; $(MAKE) -f $(CURDIR)/Makefile.subdirs -C $(ext)/$(dir) valgrind || exit $$?;))
else
$(foreach dir, $(MOD), mkdir -p build/$(dir)/test; export BUILD_DIR=../build/$(dir); $(MAKE) -C $(dir) check;)
$(AT)$(foreach dir, $(MOD), mkdir -p build/$(dir)/test; BUILD_DIR=../build/$(dir); export BUILD_DIR; $(MAKE) -f ../Makefile.subdirs -C $(dir) valgrind || exit $$?;)
endif

library: library-recursive $(OBJS) $(LIB_OBJS)
install: library
mkdir -p $(DESTDIR)$(PREFIX)/lib
mkdir -p $(DESTDIR)$(PREFIX)/include/arb
$(AT)if [ "$(ARB_SHARED)" -eq "1" ]; then \
cp $(ARB_LIB) $(DESTDIR)$(PREFIX)/lib; \
fi
$(AT)if [ "$(ARB_STATIC)" -eq "1" ]; then \
cp libarb.a $(DESTDIR)$(PREFIX)/lib; \
fi
cp $(HEADERS) $(DESTDIR)$(PREFIX)/include/arb
$(AT)if [ ! -z $(EXT_HEADERS) ]; then \
cp $(EXT_HEADERS) $(DESTDIR)$(PREFIX)/include; \
fi

build:
mkdir -p build
ifdef ARB_SHARED
$(CC) -fPIC -shared $(LIB_OBJS) $(LIBS2) -o $(ARB_LIB)
endif
ifdef ARB_STATIC
$(AR) rcs libarb.a $(OBJS) $(LINKLIBS)
endif

library-recursive:
$(foreach dir, $(BUILD_DIRS), mkdir -p build/$(dir); export BUILD_DIR=../build/$(dir); $(MAKE) -C $(dir) library;)
build/%.lo: %.c $(HEADERS) | build
$(QUIET_CC) $(CC) $(PIC_FLAG) $(CFLAGS) $(INCS) -c $< -o $@;

$(ARB_LIB): library
build/%.o: %.c $(HEADERS) | build
$(QUIET_CC) $(CC) $(CFLAGS) $(INCS) -c $< -o $@;

install: library
mkdir -p $(PREFIX)/lib
mkdir -p $(PREFIX)/include
ifdef ARB_SHARED
cp $(ARB_LIB) $(PREFIX)/lib
endif
ifdef ARB_STATIC
cp libarb.a $(PREFIX)/lib
endif
cp *.h $(PREFIX)/include
build/test/%$(EXEEXT): test/%.c $(HEADERS) | build/test
$(QUIET_CC) $(CC) $(CFLAGS) $(INCS) $< -o $@ $(LIBS)

.PHONY: profile library library-recursive recursive clean check check-recursive all
build/test:
mkdir -p build/test

build/%.lo: %.c
$(CC) -fPIC $(CFLAGS) $(INCS) -c $< -o $@
build/interfaces:
mkdir -p build/interfaces

build/%.o: %.c
$(CC) -fPIC $(CFLAGS) $(INCS) -c $< -o $@
print-%:
@echo '$*=$($*)'

BUILD_DIRS = fmpr arf mag arb arb_mat arb_poly arb_calc acb acb_mat acb_poly acb_calc fmprb fmprb_poly fmprb_mat fmprb_calc fmpcb fmpcb_poly fmpcb_mat fmpcb_calc elefun bernoulli hypgeom gamma zeta fmpz_extras partitions
.PHONY: profile library shared static clean examples tune check tests distclean dist install all valgrind

89 changes: 89 additions & 0 deletions Makefile.subdirs
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
QUIET_CC = @echo ' ' CC ' ' $@;

AT=@

SOURCES = $(wildcard *.c)

HEADERS = $(wildcard ../*.h)
TEST_HEADERS = $(wildcard *.h)

OBJS = $(patsubst %.c, $(BUILD_DIR)/$(MOD_DIR)_%.o, $(SOURCES))

LOBJS = $(patsubst %.c, $(BUILD_DIR)/%.lo, $(SOURCES))
MOD_LOBJ = $(BUILD_DIR)/../$(MOD_DIR).lo

TEST_SOURCES = $(wildcard test/*.c)
TESTXX_SOURCES = $(wildcard test/*.cpp)

PROF_SOURCES = $(wildcard profile/*.c)

TUNE_SOURCES = $(wildcard tune/*.c)

TESTS = $(patsubst %.c, $(BUILD_DIR)/%$(EXEEXT), $(TEST_SOURCES)) \
$(patsubst %.cpp, $(BUILD_DIR)/%$(EXEEXT), $(TESTXX_SOURCES))

TESTS_RUN = $(patsubst %, %_RUN, $(TESTS))

VALGRIND_RUN = $(patsubst %, %_VALGRIND_RUN, $(TESTS))

PROFS = $(patsubst %.c, $(BUILD_DIR)/%$(EXEEXT), $(PROF_SOURCES))

TUNE = $(patsubst %.c, %$(EXEEXT), $(TUNE_SOURCES))

all: shared static

shared: $(MOD_LOBJ)

static: $(OBJS)

profile: $(PROFS)

-include $(patsubst %, %.d, $(PROFS))

$(BUILD_DIR)/profile/%$(EXEEXT): profile/%.c $(BUILD_DIR)/../profiler.o
$(QUIET_CC) $(CC) $(ABI_FLAG) -O2 -std=c99 -g $(INCS) $< $(BUILD_DIR)/../profiler.o -o $@ $(LIBS) -MMD -MP -MF $@.d -MT "$@" -MT "$@.d"

tune: $(TUNE_SOURCES) $(HEADERS)
$(AT)$(foreach prog, $(TUNE), $(CC) $(CFLAGS) $(INCS) $(prog).c -o $(BUILD_DIR)/$(prog) $(LIBS) || exit $$?;)

-include $(OBJS:.o=.d)

$(BUILD_DIR)/$(MOD_DIR)_%.o: %.c
$(QUIET_CC) $(CC) $(CFLAGS) $(INCS) -c $< -o $@ -MMD -MP -MF "$(BUILD_DIR)/$(MOD_DIR)_$*.d" -MT "$(BUILD_DIR)/$(MOD_DIR)_$*.d" -MT "$@"

$(MOD_LOBJ): $(LOBJS)
$(QUIET_CC) $(CC) $(ABI_FLAG) -Wl,-r $^ -o $@ -nostdlib

-include $(LOBJS:.lo=.d)

$(BUILD_DIR)/%.lo: %.c
$(QUIET_CC) $(CC) $(PIC_FLAG) $(CFLAGS) $(INCS) -c $< -o $@ -MMD -MP -MF "$(BUILD_DIR)/$*.d" -MT "$(BUILD_DIR)/$*.d" -MT "$@"

clean:
rm -rf $(BUILD_DIR) $(MOD_LOBJ)

tests: $(TESTS)

check: tests $(TESTS_RUN)

valgrind: tests $(VALGRIND_RUN)

-include $(patsubst %, %.d, $(TESTS))

ifeq ($(ARB_SHARED), 0)
$(BUILD_DIR)/test/%$(EXEEXT): $(BUILD_DIR)/../../libarb.a
endif

$(BUILD_DIR)/test/%$(EXEEXT): test/%.c
$(QUIET_CC) $(CC) $(CFLAGS) $(INCS) $< -o $@ $(LIBS) -MMD -MP -MF $@.d -MT "$@" -MT "$@.d"

$(BUILD_DIR)/test/%$(EXEEXT): test/%.cpp $(BUILD_DIR)/../../test_helpers.o
$(QUIET_CC) $(CXX) $(CFLAGS) $(INCS) $< -o $@ $(LIBS) -MMD -MP -MF $@.d -MT "$@" -MT "$@.d"

%_RUN: %
@$<

%_VALGRIND_RUN: %
valgrind --track-origins=yes --leak-check=full --show-reachable=yes --log-file="$*.valgrind" $<

.PHONY: profile tune clean check tests all shared static valgrind %_RUN %_VALGRIND_RUN
43 changes: 0 additions & 43 deletions acb/Makefile

This file was deleted.

Loading

0 comments on commit a401915

Please sign in to comment.