From 788bb50b8f6b6464dbfb6cdaf9ac86436141c904 Mon Sep 17 00:00:00 2001 From: John Kacur Date: Thu, 24 Sep 2015 00:21:30 +0200 Subject: build: Generate .o, .a, and .d files in bld dir When building rt-tests, object files, libs and .d (dependencies) were all generated in the base directory. Instead, place all of these build files in a dir called bld. The final programs are still in the basedir Signed-off-by: John Kacur --- Makefile | 39 +++++++++++++++++++++------------------ bld/.gitignore | 0 2 files changed, 21 insertions(+), 18 deletions(-) create mode 100644 bld/.gitignore diff --git a/Makefile b/Makefile index 4c0c096..87946fb 100644 --- a/Makefile +++ b/Makefile @@ -2,6 +2,8 @@ VERSION = 0.94 CC=$(CROSS_COMPILE)gcc AR=$(CROSS_COMPILE)ar +OBJDIR = bld + HAVE_NPTL ?= yes ifeq ($(HAVE_NPTL),yes) @@ -14,7 +16,7 @@ sources += signaltest.c ptsematest.c sigwaittest.c svsematest.c sendme.c \ TARGETS = $(sources:.c=) LIBS = -lrt -lpthread -RTTESTLIB = -lrttest -L. +RTTESTLIB = -lrttest -L$(OBJDIR) EXTRA_LIBS ?= -ldl # for get_cpu DESTDIR ?= prefix ?= /usr/local @@ -87,58 +89,59 @@ VPATH += src/backfire: VPATH += src/lib: VPATH += src/hackbench: -%.o: %.c - $(CC) -D VERSION=$(VERSION) -c $< $(CFLAGS) $(CPPFLAGS) +$(OBJDIR)/%.o: %.c + $(CC) -D VERSION=$(VERSION) -c $< $(CFLAGS) $(CPPFLAGS) -o $@ # Pattern rule to generate dependency files from .c files -%.d: %.c +$(OBJDIR)/%.d: %.c @$(CC) -MM $(CFLAGS) $(CPPFLAGS) $< | sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' > $@ || rm -f $@ .PHONY: all all: $(TARGETS) hwlatdetect # Include dependency files, automatically generate them if needed. --include $(sources:.c=.d) +-include $(addprefix $(OBJDIR)/,$(sources:.c=.d)) -cyclictest: cyclictest.o librttest.a +cyclictest: $(OBJDIR)/cyclictest.o $(OBJDIR)/librttest.a $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB) $(NUMA_LIBS) -signaltest: signaltest.o librttest.a +signaltest: $(OBJDIR)/signaltest.o $(OBJDIR)/librttest.a $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB) -pi_stress: pi_stress.o librttest.a +pi_stress: $(OBJDIR)/pi_stress.o $(OBJDIR)/librttest.a $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB) hwlatdetect: src/hwlatdetect/hwlatdetect.py chmod +x src/hwlatdetect/hwlatdetect.py ln -s src/hwlatdetect/hwlatdetect.py hwlatdetect -rt-migrate-test: rt-migrate-test.o librttest.a +rt-migrate-test: $(OBJDIR)/rt-migrate-test.o $(OBJDIR)/librttest.a $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB) -ptsematest: ptsematest.o librttest.a +ptsematest: $(OBJDIR)/ptsematest.o $(OBJDIR)/librttest.a $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB) $(EXTRA_LIBS) -sigwaittest: sigwaittest.o librttest.a +sigwaittest: $(OBJDIR)/sigwaittest.o $(OBJDIR)/librttest.a $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB) $(EXTRA_LIBS) -svsematest: svsematest.o librttest.a +svsematest: $(OBJDIR)/svsematest.o $(OBJDIR)/librttest.a $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB) $(EXTRA_LIBS) -pmqtest: pmqtest.o librttest.a +pmqtest: $(OBJDIR)/pmqtest.o $(OBJDIR)/librttest.a $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB) $(EXTRA_LIBS) -sendme: sendme.o librttest.a +sendme: $(OBJDIR)/sendme.o $(OBJDIR)/librttest.a $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB) $(EXTRA_LIBS) -pip_stress: pip_stress.o librttest.a +pip_stress: $(OBJDIR)/pip_stress.o $(OBJDIR)/librttest.a $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) $(RTTESTLIB) -hackbench: hackbench.o +hackbench: $(OBJDIR)/hackbench.o $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LIBS) -librttest.a: rt-utils.o error.o rt-get_cpu.o rt-sched.o - $(AR) rcs librttest.a $^ +LIBOBJS =$(addprefix $(OBJDIR)/,error.o rt-get_cpu.o rt-sched.o rt-utils.o) +$(OBJDIR)/librttest.a: $(LIBOBJS) + $(AR) rcs $@ $^ CLEANUP = $(TARGETS) *.o .depend *.*~ *.orig *.rej rt-tests.spec *.d *.a CLEANUP += $(if $(wildcard .git), ChangeLog) diff --git a/bld/.gitignore b/bld/.gitignore new file mode 100644 index 0000000..e69de29 -- cgit 1.2.3-korg