You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by be...@apache.org on 2011/06/05 10:21:37 UTC
svn commit: r1131997 - in /incubator/mesos/trunk: Makefile.in
src/Makefile.in src/examples/Makefile.in src/tests/Makefile.in
tests/simple/simple.c tests/simple/simple_exec.c tests/simple/simple_sched.c
Author: benh
Date: Sun Jun 5 08:21:37 2011
New Revision: 1131997
URL: http://svn.apache.org/viewvc?rev=1131997&view=rev
Log:
More Makefile updates, in particular, added building into bin and lib directories.
Removed:
incubator/mesos/trunk/tests/simple/simple.c
incubator/mesos/trunk/tests/simple/simple_exec.c
incubator/mesos/trunk/tests/simple/simple_sched.c
Modified:
incubator/mesos/trunk/Makefile.in
incubator/mesos/trunk/src/Makefile.in
incubator/mesos/trunk/src/examples/Makefile.in
incubator/mesos/trunk/src/tests/Makefile.in
Modified: incubator/mesos/trunk/Makefile.in
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/Makefile.in?rev=1131997&r1=1131996&r2=1131997&view=diff
==============================================================================
--- incubator/mesos/trunk/Makefile.in (original)
+++ incubator/mesos/trunk/Makefile.in Sun Jun 5 08:21:37 2011
@@ -28,15 +28,15 @@ ifeq ($(WITH_INCLUDED_ZOOKEEPER),1)
endif
install:
- if test ! -d $(MESOS_HOME); \
- then mkdir $(MESOS_HOME); \
+ if test ! -d $(MESOS_HOME)/bin; \
+ then mkdir -p $(MESOS_HOME)/bin; \
fi
- if test ! -d $(MESOS_HOME); \
- then mkdir $(MESOS_HOME); \
+ if test ! -d $(MESOS_HOME)/bin; \
+ then mkdir -p $(MESOS_HOME)/bin; \
fi
- install -m 755 src/mesos-master $(MESOS_HOME)
- install -m 755 src/mesos-slave $(MESOS_HOME)
- install -m 755 src/swig/java/libmesos.so $(MESOS_HOME)
+ install -m 755 $(BINDIR)/mesos-master $(MESOS_HOME)/bin
+ install -m 755 $(BINDIR)/mesos-slave $(MESOS_HOME)/bin
+ install -m 755 $(LIBDIR)/java/libmesos.so $(MESOS_HOME)/lib/java
rsync -avz src/webui $(MESOS_HOME)
if test ! -d $(MESOS_HOME)/third_party; \
then mkdir $(MESOS_HOME)/third_party; \
@@ -49,7 +49,14 @@ uninstall:
dist:
$(error unimplemented)
-all: src
+distclean:
+ $(MAKE) -C src clean
+ $(MAKE) -C $(LIBPROCESS) distclean
+ $(MAKE) -C $(GLOG) distclean
+ $(MAKE) -C $(GTEST) distclean
+ifeq ($(WITH_INCLUDED_ZOOKEEPER),1)
+ $(MAKE) -C $(ZOOKEEPER) distclean
+endif
doxygen:
doxygen
@@ -64,6 +71,11 @@ ctags:
#TODO(*): make the above use conditionals to handle old-school UNIX style ctags too.
#cd src; ctags --typedefs-and-c++ -I -members --declarations ../include/*.h ../include/*.c ../include/*.hpp ../include/*.cpp -o tags
+test: all
+ $(MAKE) -C src test
+
+all: src
+
clean:
$(MAKE) -C src clean
$(MAKE) -C $(LIBPROCESS) clean
@@ -73,4 +85,4 @@ ifeq ($(WITH_INCLUDED_ZOOKEEPER),1)
$(MAKE) -C $(ZOOKEEPER) clean
endif
-.PHONY: default src third_party install uninstall dist all clean
+.PHONY: default src third_party install uninstall dist test all clean
Modified: incubator/mesos/trunk/src/Makefile.in
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/Makefile.in?rev=1131997&r1=1131996&r2=1131997&view=diff
==============================================================================
--- incubator/mesos/trunk/src/Makefile.in (original)
+++ incubator/mesos/trunk/src/Makefile.in Sun Jun 5 08:21:37 2011
@@ -2,6 +2,9 @@
SHELL = '/bin/sh'
+BINDIR = @top_builddir@/bin
+LIBDIR = @top_builddir@/lib
+
CC = @CC@
CXX = @CXX@
SWIG = @SWIG@
@@ -142,21 +145,30 @@ LAUNCHER_EXE_OBJ = launcher/launcher.o $
LOCAL_EXE_OBJ = local/local.o $(MASTER_OBJ) $(SLAVE_OBJ) $(COMMON_OBJ)
-MESOS_EXES = mesos-master mesos-slave mesos-local mesos-launcher mesos-getconf
+MESOS_MASTER_EXE = $(BINDIR)/mesos-master
+MESOS_SLAVE_EXE = $(BINDIR)/mesos-slave
+MESOS_LOCAL_EXE = $(BINDIR)/mesos-local
+MESOS_LAUNCHER_EXE = $(BINDIR)/mesos-launcher
+MESOS_GETCONF_EXE = $(BINDIR)/mesos-getconf
+MESOS_PROJD_EXE = $(BINDIR)/mesos-projd
+
+MESOS_EXES = $(MESOS_MASTER_EXE) $(MESOS_SLAVE_EXE) $(MESOS_LOCAL_EXE) \
+ $(MESOS_LAUNCHER_EXE) $(MESOS_GETCONF_EXE)
ifeq ($(OS_NAME),solaris)
- MESOS_EXES += mesos-projd
+ MESOS_EXES += $(MESOS_PROJD_EXE)
endif
-MESOS_SCHED_LIB = libmesos_sched.a
-MESOS_EXEC_LIB = libmesos_exec.a
+MESOS_SCHED_LIB = $(LIBDIR)/libmesos_sched.a
+MESOS_EXEC_LIB = $(LIBDIR)/libmesos_exec.a
# C/C++ shared library which contains both the scheduler and executor
# libraries, in addition to libglog, libprocess, and libev.
+MESOS_LIB_OBJ =
ifeq ($(OS_NAME),darwin)
- MESOS_LIB = libmesos.dylib
+ MESOS_LIB = $(LIBDIR)/libmesos.dylib
else
- MESOS_LIB = libmesos.so
+ MESOS_LIB = $(LIBDIR)/libmesos.so
endif
MESOS_LIBS = $(MESOS_LIB) $(MESOS_SCHED_LIB) $(MESOS_EXEC_LIB)
@@ -166,37 +178,38 @@ MESOS_LIBS = $(MESOS_LIB) $(MESOS_SCHED_
# of the .dylib suffix on Mac OS X, but at the time Python required
# the .so suffix even on Mac OS X).
ifeq ($(OS_NAME),darwin)
- MESOS_JAVA_LIB = swig/java/libmesos.dylib
+ MESOS_JAVA_LIB = $(LIBDIR)/java/libmesos.dylib
else
- MESOS_JAVA_LIB = swig/java/libmesos.so
+ MESOS_JAVA_LIB = $(LIBDIR)/java/libmesos.so
endif
-MESOS_PYTHON_LIB = swig/python/_mesos.so
+MESOS_JAVA_JAR = $(LIBDIR)/java/mesos.jar
+
+MESOS_PYTHON_LIB = $(LIBDIR)/python/_mesos.so
+
+# We copy all the webui files into the bin directory.
+WEBUI_FILES = $(BINDIR)/webui/bottle-0.5.6 \
+ $(BINDIR)/webui/common/webui_lib.py \
+ $(BINDIR)/webui/master/framework.tpl \
+ $(BINDIR)/webui/master/index.tpl \
+ $(BINDIR)/webui/master/webui.py \
+ $(BINDIR)/webui/slave/framework.tpl \
+ $(BINDIR)/webui/slave/index.tpl \
+ $(BINDIR)/webui/slave/webui.py \
+ $(BINDIR)/webui/static/stylesheet.css
+
+# Create rules for building the directories that aren't created
+# automagically by configure.
+OBJ_DIRECTORIES = common configurator detector exec launcher local \
+ master messaging sched slave
+
+WEBUI_DIRECTORIES = $(BINDIR)/webui/common $(BINDIR)/webui/master \
+ $(BINDIR)/webui/slave $(BINDIR)/webui/static \
+ $(BINDIR)/webui/master/swig \
+ $(BINDIR)/webui/slave/swig
-# In the event we are building in a directory other than source we
-# need to copy over the webui stuff so that the binaries can be run.
-WEBUI_FILES = webui/bottle-0.5.6 webui/common/webui_lib.py \
- webui/master/framework.tpl webui/master/index.tpl \
- webui/master/webui.py webui/slave/framework.tpl \
- webui/slave/index.tpl webui/slave/webui.py \
- webui/static/stylesheet.css
-
-# Create all the directories that we use but don't get created by
-# default because we don't have a Makefile.in in them.
-$(shell mkdir -p common)
-$(shell mkdir -p configurator)
-$(shell mkdir -p detector)
-$(shell mkdir -p exec)
-$(shell mkdir -p launcher)
-$(shell mkdir -p local)
-$(shell mkdir -p master)
-$(shell mkdir -p messaging)
-$(shell mkdir -p sched)
-$(shell mkdir -p slave)
-$(shell mkdir -p webui/common)
-$(shell mkdir -p webui/master)
-$(shell mkdir -p webui/slave)
-$(shell mkdir -p webui/static)
+DIRECTORIES = $(BINDIR) $(LIBDIR) $(LIBDIR)/java $(LIBDIR)/python \
+ $(OBJ_DIRECTORIES) $(WEBUI_DIRECTORIES)
default: all
@@ -204,10 +217,13 @@ default: all
-include $(patsubst %.o, %.d, $(ALL_OBJ))
-include $(patsubst %, %.d, $(MESOS_EXES))
-$(BASIC_OBJ): %.o: @srcdir@/%.cpp
+$(DIRECTORIES): %:
+ mkdir -p $@
+
+$(BASIC_OBJ): %.o: @srcdir@/%.cpp | $(OBJ_DIRECTORIES)
$(CXX) -c $(CXXFLAGS) -o $@ $<
-$(MESOS_LIBS): $(COMMON_OBJ)
+$(MESOS_LIBS): $(COMMON_OBJ) | $(LIBDIR)
$(MESOS_SCHED_LIB): $(SCHED_LIB_OBJ) $(MASTER_OBJ) $(SLAVE_OBJ)
$(AR) rcs $@ $^
@@ -224,47 +240,49 @@ $(WEBUI_OBJ): %.o: @srcdir@/%.cpp
$(SWIG_WEBUI_OBJ): %.o: %.cpp
$(CXX) -c $(CXXFLAGS) $(WEBUI_CXXFLAGS) -o $@ $<
-webui/master/swig/master_wrap.cpp: @srcdir@/webui/master/swig/master.i @srcdir@/master/state.hpp @srcdir@/master/webui.hpp @srcdir@/master/master.hpp config/config.hpp
+webui/master/swig/master_wrap.cpp: @srcdir@/webui/master/swig/master.i @srcdir@/master/state.hpp @srcdir@/master/webui.hpp @srcdir@/master/master.hpp config/config.hpp $(BINDIR)/webui/master/swig
ifeq ($(WITH_WEBUI),1)
mkdir -p webui/master/swig
$(SWIG) -c++ -python -outdir webui/master/swig -I@top_srcdir@/include -I@srcdir@ -o $@ $<
+ cp -r webui/master/swig/master.py $(BINDIR)/webui/master/swig
else
echo "" > $@
endif
-webui/slave/swig/slave_wrap.cpp: @srcdir@/webui/slave/swig/slave.i @srcdir@/slave/state.hpp @srcdir@/slave/webui.hpp @srcdir@/slave/slave.hpp config/config.hpp
+webui/slave/swig/slave_wrap.cpp: @srcdir@/webui/slave/swig/slave.i @srcdir@/slave/state.hpp @srcdir@/slave/webui.hpp @srcdir@/slave/slave.hpp config/config.hpp $(BINDIR)/webui/slave/swig
ifeq ($(WITH_WEBUI),1)
mkdir -p webui/slave/swig
$(SWIG) -c++ -python -outdir webui/slave/swig -I@top_srcdir@/include -I@srcdir@ -o $@ $<
+ cp -r webui/slave/swig/slave.py $(BINDIR)/webui/slave/swig
else
echo "" > $@
endif
-$(MESOS_EXES): $(COMMON_OBJ)
+$(MESOS_EXES): | $(BINDIR)
-mesos-master: @srcdir@/master/main.cpp $(MASTER_EXE_OBJ)
+$(MESOS_MASTER_EXE): @srcdir@/master/main.cpp $(MASTER_EXE_OBJ)
$(CXX) $(CXXFLAGS) -o $@ $< $(MASTER_EXE_OBJ) $(LDFLAGS) $(WEBUI_LDFLAGS) $(LIBS)
-mesos-slave: @srcdir@/slave/main.cpp $(SLAVE_EXE_OBJ)
+$(MESOS_SLAVE_EXE): @srcdir@/slave/main.cpp $(SLAVE_EXE_OBJ)
$(CXX) $(CXXFLAGS) -o $@ $< $(SLAVE_EXE_OBJ) $(LDFLAGS) $(WEBUI_LDFLAGS) $(LIBS)
-mesos-launcher: @srcdir@/launcher/main.cpp $(LAUNCHER_EXE_OBJ)
+$(MESOS_LAUNCHER_EXE): @srcdir@/launcher/main.cpp $(LAUNCHER_EXE_OBJ)
$(CXX) $(CXXFLAGS) -o $@ $< launcher/launcher.o $(COMMON_OBJ) $(LDFLAGS) $(LIBS)
-mesos-local: @srcdir@/local/main.cpp $(LOCAL_EXE_OBJ)
+$(MESOS_LOCAL_EXE): @srcdir@/local/main.cpp $(LOCAL_EXE_OBJ)
$(CXX) $(CXXFLAGS) -o $@ $< $(LOCAL_EXE_OBJ) $(LDFLAGS) $(LIBS)
-mesos-getconf: @srcdir@/configurator/get_conf.cpp
+$(MESOS_GETCONF_EXE): @srcdir@/configurator/get_conf.cpp $(COMMON_OBJ)
$(CXX) $(CXXFLAGS) -o $@ $< $(COMMON_OBJ) $(LDFLAGS) $(LIBS)
-mesos-projd: @srcdir@/slave/projd.cpp
+$(MESOS_PROJD_EXE): @srcdir@/slave/projd.cpp $(COMMON_OBJ)
$(CXX) $(CXXFLAGS) -o $@ $< $(COMMON_OBJ) $(LDFLAGS) $(LIBS)
-java: $(MESOS_JAVA_LIB) swig/java/mesos.jar
+java: $(MESOS_JAVA_LIB) $(MESOS_JAVA_JAR)
python: $(MESOS_PYTHON_LIB)
-swig/java/mesos.jar: $(MESOS_JAVA_LIB)
+$(MESOS_JAVA_JAR): $(MESOS_JAVA_LIB) | $(LIBDIR)/java
ifdef JAVA_HOME
$(JAVA_HOME)/bin/javac -sourcepath swig/java -d swig/java swig/java/mesos/*.java
patch -N swig/java/mesos/mesosJNI.java < @srcdir@/swig/java/mesosJNI.java.patch1 || echo -n
@@ -272,7 +290,7 @@ ifdef JAVA_HOME
$(JAVA_HOME)/bin/jar cf $@ -C swig/java mesos
endif
-$(MESOS_JAVA_LIB): @srcdir@/swig/mesos.i $(MESOS_SCHED_LIB) $(MESOS_EXEC_LIB)
+$(MESOS_JAVA_LIB): @srcdir@/swig/mesos.i $(MESOS_SCHED_LIB) $(MESOS_EXEC_LIB) | $(LIBDIR)/java
ifdef JAVA_HOME
rm -f swig/java/mesos/*
mkdir -p swig/java/mesos
@@ -280,16 +298,18 @@ ifdef JAVA_HOME
$(CXX) $(CXXFLAGS) -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/$(OS_NAME) -shared -o $@ swig/java/mesos_wrap.cpp $(MESOS_SCHED_LIB) $(MESOS_EXEC_LIB) $(LDFLAGS) $(LIBS)
endif
-$(MESOS_PYTHON_LIB): @srcdir@/swig/mesos.i $(MESOS_SCHED_LIB) $(MESOS_EXEC_LIB)
+$(MESOS_PYTHON_LIB): @srcdir@/swig/mesos.i $(MESOS_SCHED_LIB) $(MESOS_EXEC_LIB) | $(LIBDIR)/python
ifdef PYTHON_HEADERS
mkdir -p swig/python
$(SWIG) -c++ -python -threads -I@top_srcdir@/include -o swig/python/mesos_wrap.cpp -outdir swig/python @srcdir@/swig/mesos.i
$(CXX) $(CXXFLAGS) -I$(PYTHON_HEADERS) -shared -o $@ swig/python/mesos_wrap.cpp $(MESOS_SCHED_LIB) $(MESOS_EXEC_LIB) $(LDFLAGS) $(PYTHON_LDFLAGS) $(LIBS)
endif
-$(WEBUI_FILES): %: @srcdir@/%
+$(WEBUI_FILES): | $(WEBUI_DIRECTORIES)
+
+$(WEBUI_FILES): $(BINDIR)/%: @srcdir@/%
ifeq ($(WITH_WEBUI),1)
- cp -r @srcdir@/$@ $@
+ cp -r $< $@
endif
test: all
@@ -307,15 +327,17 @@ clean:
rm -rf $(patsubst %, %.dSYM, $(MESOS_EXES))
rm -f $(ALL_OBJ)
rm -f $(MESOS_EXES) $(MESOS_LIBS)
- rm -f $(MESOS_JAVA_LIB) $(MESOS_PYTHON_LIB)
+ rm -f $(MESOS_JAVA_JAR)
+ rm -rf $(patsubst %, %.d, $(MESOS_JAVA_LIB))
+ rm -rf $(patsubst %, %.d, $(MESOS_PYTHON_LIB))
rm -rf $(MESOS_JAVA_LIB).dSYM $(MESOS_PYTHON_LIB).dSYM
+ rm -f $(MESOS_JAVA_LIB) $(MESOS_PYTHON_LIB)
+ rm -rf $(WEBUI_FILES)
rm -f swig/*/mesos_wrap.cpp
rm -f swig/*/mesos_wrap.h
rm -f swig/*/*.o
rm -f swig/*/*.d
- rm -f swig/java/mesos.jar
rm -f swig/java/mesos/*
- rm -f swig/java/*.class
rm -f swig/python/mesos.py
rm -f swig/python/mesos.pyc
rm -f webui/master/swig/master_wrap.h
Modified: incubator/mesos/trunk/src/examples/Makefile.in
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/examples/Makefile.in?rev=1131997&r1=1131996&r2=1131997&view=diff
==============================================================================
--- incubator/mesos/trunk/src/examples/Makefile.in (original)
+++ incubator/mesos/trunk/src/examples/Makefile.in Sun Jun 5 08:21:37 2011
@@ -2,6 +2,9 @@
SHELL = '/bin/sh'
+BINDIR = @top_builddir@/bin
+LIBDIR = @top_builddir@/lib
+
CC = @CC@
CXX = @CXX@
SWIG = @SWIG@
@@ -85,35 +88,53 @@ ifeq ($(WITH_ZOOKEEPER),1)
LIBS += -lzookeeper_st
endif
-EXAMPLES_EXES = test-framework test-executor cpp-test-framework \
- cpp-test-executor memhog memhog-executor scheduled-memhog
+SCHED_EXES = $(BINDIR)/examples/test-framework \
+ $(BINDIR)/examples/cpp-test-framework \
+ $(BINDIR)/examples/memhog \
+ $(BINDIR)/examples/scheduled-memhog
+
+EXEC_EXES = $(BINDIR)/examples/test-executor \
+ $(BINDIR)/examples/cpp-test-executor \
+ $(BINDIR)/examples/memhog-executor
+
+EXAMPLES_EXES = $(SCHED_EXES) $(EXEC_EXES)
+
+MESOS_SCHED_LIB = $(LIBDIR)/libmesos_sched.a
+MESOS_EXEC_LIB = $(LIBDIR)/libmesos_exec.a
+
+# Create rules for building the directories that aren't created
+# automagically by configure.
+DIRECTORIES = $(BINDIR)/examples
-MESOS_SCHED_LIB = ../libmesos_sched.a
-MESOS_EXEC_LIB = ../libmesos_exec.a
default: all
-include $(patsubst %, %.d, $(EXAMPLES_EXES))
-test-framework: @srcdir@/test_framework.cpp $(MESOS_SCHED_LIB)
+$(DIRECTORIES): %:
+ mkdir -p $@
+
+$(EXAMPLES_EXES): | $(BINDIR)/examples
+
+$(BINDIR)/examples/test-framework: @srcdir@/test_framework.cpp $(MESOS_SCHED_LIB)
$(CXX) $(CXXFLAGS) -o $@ $< $(MESOS_SCHED_LIB) $(LDFLAGS) $(LIBS)
-test-executor: @srcdir@/test_exec.cpp $(MESOS_EXEC_LIB)
+$(BINDIR)/examples/test-executor: @srcdir@/test_exec.cpp $(MESOS_EXEC_LIB)
g++ $(CXXFLAGS) -o $@ $< $(MESOS_EXEC_LIB) $(LDFLAGS) $(LIBS)
-cpp-test-framework: @srcdir@/cpp_test_framework.cpp $(MESOS_SCHED_LIB)
+$(BINDIR)/examples/cpp-test-framework: @srcdir@/cpp_test_framework.cpp $(MESOS_SCHED_LIB)
$(CXX) $(CXXFLAGS) -o $@ $< $(MESOS_SCHED_LIB) $(LDFLAGS) $(LIBS)
-cpp-test-executor: @srcdir@/cpp_test_executor.cpp $(MESOS_EXEC_LIB)
+$(BINDIR)/examples/cpp-test-executor: @srcdir@/cpp_test_executor.cpp $(MESOS_EXEC_LIB)
$(CXX) $(CXXFLAGS) -o $@ $< $(MESOS_EXEC_LIB) $(LDFLAGS) $(LIBS)
-memhog: @srcdir@/memhog.cpp $(MESOS_SCHED_LIB)
+$(BINDIR)/examples/memhog: @srcdir@/memhog.cpp $(MESOS_SCHED_LIB)
$(CXX) $(CXXFLAGS) -o $@ $< $(MESOS_SCHED_LIB) $(LDFLAGS) $(LIBS)
-memhog-executor: @srcdir@/memhog_executor.cpp $(MESOS_EXEC_LIB)
+$(BINDIR)/examples/memhog-executor: @srcdir@/memhog_executor.cpp $(MESOS_EXEC_LIB)
$(CXX) $(CXXFLAGS) -o $@ $< $(MESOS_EXEC_LIB) $(LDFLAGS) $(LIBS)
-scheduled-memhog: @srcdir@/scheduled_memhog.cpp $(MESOS_SCHED_LIB)
+$(BINDIR)/examples/scheduled-memhog: @srcdir@/scheduled_memhog.cpp $(MESOS_SCHED_LIB)
$(CXX) $(CXXFLAGS) -o $@ $< $(MESOS_SCHED_LIB) $(LDFLAGS) $(LIBS)
all: $(EXAMPLES_EXES)
Modified: incubator/mesos/trunk/src/tests/Makefile.in
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/tests/Makefile.in?rev=1131997&r1=1131996&r2=1131997&view=diff
==============================================================================
--- incubator/mesos/trunk/src/tests/Makefile.in (original)
+++ incubator/mesos/trunk/src/tests/Makefile.in Sun Jun 5 08:21:37 2011
@@ -2,6 +2,9 @@
SHELL = '/bin/sh'
+BINDIR = @top_builddir@/bin
+LIBDIR = @top_builddir@/lib
+
CC = @CC@
CXX = @CXX@
@@ -77,30 +80,34 @@ ifeq ($(WITH_ZOOKEEPER),1)
LIBS += -lzookeeper_st
endif
-SCHED_LIB = ../libmesos_sched.a
-EXEC_LIB = ../libmesos_exec.a
+SCHED_LIB = $(LIBDIR)/libmesos_sched.a
+EXEC_LIB = $(LIBDIR)/libmesos_exec.a
TESTS_OBJ = main.o test_master.o test_resources.o external_test.o \
test_sample_frameworks.o testing_utils.o \
test_configurator.o test_string_utils.o \
test_lxc_isolation.o
-EXTERNAL_SCRIPTS = external/LxcIsolation/HoldMoreMemThanRequested.sh \
- external/LxcIsolation/ScaleUpAndDown.sh \
- external/LxcIsolation/TwoSeparateTasks.sh \
- external/LxcIsolation/run_scheduled_memhog_test.sh \
- external/SampleFrameworks/CFramework.sh \
- external/SampleFrameworks/CFrameworkCmdlineParsing.sh \
- external/SampleFrameworks/CFrameworkInvalidCmdline.sh \
- external/SampleFrameworks/CFrameworkInvalidEnv.sh \
- external/SampleFrameworks/CppFramework.sh \
- external/SampleFrameworks/JavaExceptionFramework.sh \
- external/SampleFrameworks/JavaFramework.sh \
- external/SampleFrameworks/PythonFramework.sh
-
-# Create the external directories in case they aren't there.
-$(shell mkdir -p external/LxcIsolation)
-$(shell mkdir -p external/SampleFrameworks)
+ALLTESTS_EXE = $(BINDIR)/alltests
+
+EXTERNAL_SCRIPTS = \
+ $(BINDIR)/tests/external/LxcIsolation/HoldMoreMemThanRequested.sh \
+ $(BINDIR)/tests/external/LxcIsolation/ScaleUpAndDown.sh \
+ $(BINDIR)/tests/external/LxcIsolation/TwoSeparateTasks.sh \
+ $(BINDIR)/tests/external/LxcIsolation/run_scheduled_memhog_test.sh \
+ $(BINDIR)/tests/external/SampleFrameworks/CFramework.sh \
+ $(BINDIR)/tests/external/SampleFrameworks/CFrameworkCmdlineParsing.sh \
+ $(BINDIR)/tests/external/SampleFrameworks/CFrameworkInvalidCmdline.sh \
+ $(BINDIR)/tests/external/SampleFrameworks/CFrameworkInvalidEnv.sh \
+ $(BINDIR)/tests/external/SampleFrameworks/CppFramework.sh \
+ $(BINDIR)/tests/external/SampleFrameworks/JavaExceptionFramework.sh \
+ $(BINDIR)/tests/external/SampleFrameworks/JavaFramework.sh \
+ $(BINDIR)/tests/external/SampleFrameworks/PythonFramework.sh
+
+# Create rules for building the directories that aren't created
+# automagically by configure.
+DIRECTORIES = $(BINDIR)/tests/external/LxcIsolation \
+ $(BINDIR)/tests/external/SampleFrameworks
default: all
@@ -108,24 +115,30 @@ default: all
-include $(patsubst %.o, %.d, $(TESTS_OBJ))
-include $(patsubst %, %.d, alltests)
+$(DIRECTORIES): %:
+ mkdir -p $@
+
$(TESTS_OBJ): %.o: @srcdir@/%.cpp
$(CXX) -c $(CXXFLAGS) -o $@ $<
-$(EXTERNAL_SCRIPTS): %: @srcdir@/%
- cp @srcdir@/$@ $@
+$(EXTERNAL_SCRIPTS): | $(BINDIR)/tests/external/LxcIsolation
+$(EXTERNAL_SCRIPTS): | $(BINDIR)/tests/external/SampleFrameworks
+$(EXTERNAL_SCRIPTS): $(BINDIR)/tests/%: @srcdir@/%
+ cp $< $@
-alltests: $(TESTS_OBJ)
+$(ALLTESTS_EXE): $(TESTS_OBJ)
$(CXX) $(CXXFLAGS) -o $@ $(TESTS_OBJ) $(SCHED_LIB) $(EXEC_LIB) $(LDFLAGS) $(LIBS)
test: all
+ cd $(BINDIR)
./alltests
-all: alltests $(EXTERNAL_SCRIPTS)
+all: $(ALLTESTS_EXE) $(EXTERNAL_SCRIPTS)
clean:
rm -f $(patsubst %.o, %.d, $(TESTS_OBJ))
rm -f $(TESTS_OBJ)
- rm -f alltests
+ rm -f $(ALLTESTS_EXE)
rm -f TAGS
-.PHONY: default all clean test
+.PHONY: default all test clean