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 11:06:48 UTC
svn commit: r1132245 - /incubator/mesos/trunk/src/Makefile.in
Author: benh
Date: Sun Jun 5 09:06:47 2011
New Revision: 1132245
URL: http://svn.apache.org/viewvc?rev=1132245&view=rev
Log:
Fixed build so that you can build into any directory you want.
Modified:
incubator/mesos/trunk/src/Makefile.in
Modified: incubator/mesos/trunk/src/Makefile.in
URL: http://svn.apache.org/viewvc/incubator/mesos/trunk/src/Makefile.in?rev=1132245&r1=1132244&r2=1132245&view=diff
==============================================================================
--- incubator/mesos/trunk/src/Makefile.in (original)
+++ incubator/mesos/trunk/src/Makefile.in Sun Jun 5 09:06:47 2011
@@ -2,6 +2,8 @@
SHELL = '/bin/sh'
+SRCDIR = @srcdir@
+INCLUDEDIR = @top_builddir@/include
BINDIR = @top_builddir@/bin
LIBDIR = @top_builddir@/lib
CONFDIR = @top_builddir@/conf
@@ -11,6 +13,8 @@ CC = @CC@
CXX = @CXX@
SWIG = @SWIG@
+PROTOC=@top_builddir@/third_party/protobuf-2.3.0/src/protoc
+
CFLAGS = @CFLAGS@
CXXFLAGS = @CXXFLAGS@
LDFLAGS = @LDFLAGS@
@@ -30,38 +34,41 @@ WEBUI_CFLAGS = @WEBUI_CFLAGS@
WEBUI_CXXFLAGS = @WEBUI_CXXFLAGS@
WEBUI_LDFLAGS = @WEBUI_LDFLAGS@
-WITH_INCLUDED_SQLITE = @WITH_INCLUDED_ZOOKEEPER@
-
WITH_ZOOKEEPER = @WITH_ZOOKEEPER@
WITH_INCLUDED_ZOOKEEPER = @WITH_INCLUDED_ZOOKEEPER@
-LIBPROCESS = third_party/libprocess
-
-LIBEV = $(LIBPROCESS)/third_party/libev-3.8
-
+BOOST = third_party/boost-1.37.0
+PROTOBUF = third_party/protobuf-2.3.0
GLOG = third_party/glog-0.3.1
-
-SQLITE = third_party/sqlite-3.6.23.1
-
ZOOKEEPER = third_party/zookeeper-3.3.1/src/c
+LIBPROCESS = third_party/libprocess
+LIBEV = $(LIBPROCESS)/third_party/libev-3.8
# Ensure that we get better debugging info.
CFLAGS += -g
CXXFLAGS += -g
# Add source dir and build dir to CFLAGS and CXXFLAGS.
-CFLAGS += -I@srcdir@ -I.
-CXXFLAGS += -I@srcdir@ -I.
+CFLAGS += -I$(SRCDIR) -I.
+CXXFLAGS += -I$(SRCDIR) -I.
-# Add include to CFLAGS and CXXFLAGS.
-CFLAGS += -I@top_srcdir@/include
-CXXFLAGS += -I@top_srcdir@/include
+# Add include and build include to CFLAGS and CXXFLAGS.
+CFLAGS += -I@top_srcdir@/include -I$(INCLUDEDIR)
+CXXFLAGS += -I@top_srcdir@/include -I$(INCLUDEDIR)
# Add boost to CFLAGS and CXXFLAGS.
CFLAGS += -I@top_srcdir@/third_party/boost-1.37.0
CXXFLAGS += -I@top_srcdir@/third_party/boost-1.37.0
+# Add protobuf to include and lib paths.
+CXXFLAGS += -I@top_srcdir@/$(PROTOBUF)/src
+LDFLAGS += -L@top_builddir@/$(PROTOBUF)/src/.libs
+
+# Add glog to include and lib paths.
+CXXFLAGS += -I@top_srcdir@/$(GLOG)/src -I@top_builddir@/$(GLOG)/src
+LDFLAGS += -L@top_builddir@/$(GLOG)/.libs
+
# Add libprocess to CFLAGS, CXXFLAGS, and LDFLAGS.
CFLAGS += -I@top_srcdir@/$(LIBPROCESS)
CXXFLAGS += -I@top_srcdir@/$(LIBPROCESS)
@@ -70,16 +77,6 @@ LDFLAGS += -L@top_builddir@/$(LIBPROCESS
# Add libev to LDFLAGS.
LDFLAGS += -L@top_builddir@/$(LIBEV)/.libs
-# Add glog to include and lib paths.
-CXXFLAGS += -I@top_srcdir@/$(GLOG)/src -I@top_builddir@/$(GLOG)/src
-LDFLAGS += -L@top_builddir@/$(GLOG)/.libs
-
-# Add sqlite to include and lib paths if necessary.
-ifeq ($(WITH_INCLUDED_SQLITE),1)
- CXXFLAGS += -I@top_srcdir@/$(SQLITE) -I@top_builddir@/$(SQLITE)
- LDFLAGS += -L@top_builddir@/$(SQLITE)/.libs
-endif
-
# Add included ZooKeeper to include and lib paths if necessary.
ifeq ($(WITH_INCLUDED_ZOOKEEPER),1)
CXXFLAGS += -I@top_srcdir@/$(ZOOKEEPER)/include -I@top_srcdir@/$(ZOOKEEPER)/generated
@@ -101,20 +98,16 @@ CXXFLAGS += -DBUILD_USER="\"$$USER\""
# Add libev to LDFLAGS.
LDFLAGS += -L$(LIBEV)/.libs
-# Add glog, libev, libprocess, pthread, and dl to LIBS.
-LIBS += -lglog -lprocess -lev -lpthread -ldl
-
-# Add sqlite if necessary.
-ifeq ($(WITH_INCLUDED_SQLITE),1)
- LIBS += -lsqlite3
-endif
+# Add protobuf, glog, libev, libprocess, pthread, and dl to LIBS.
+LIBS += -lprotobuf -lglog -lprocess -lev -lpthread -ldl
# Add ZooKeeper if necessary.
ifeq ($(WITH_ZOOKEEPER),1)
LIBS += -lzookeeper_st
endif
-MASTER_OBJ = master/master.o master/allocator_factory.o master/simple_allocator.o
+MASTER_OBJ = master/master.o master/allocator_factory.o \
+ master/simple_allocator.o
SLAVE_OBJ = slave/slave.o launcher/launcher.o slave/isolation_module.o \
slave/process_based_isolation_module.o
@@ -127,6 +120,8 @@ ifeq ($(OS_NAME),linux)
SLAVE_OBJ += slave/lxc_isolation_module.o
endif
+PROTOBUF_OBJ = mesos.pb.o messaging/messages.pb.o
+
MASTER_WEBUI_OBJ = master/webui.o
MASTER_SWIG_WEBUI_OBJ = webui/master/swig/master_wrap.o
@@ -136,17 +131,10 @@ SLAVE_SWIG_WEBUI_OBJ = webui/slave/swig/
WEBUI_OBJ = $(MASTER_WEBUI_OBJ) $(SLAVE_WEBUI_OBJ)
SWIG_WEBUI_OBJ = $(MASTER_SWIG_WEBUI_OBJ) $(SLAVE_SWIG_WEBUI_OBJ)
-EVENT_HISTORY_OBJ = event_history/event_logger.o \
- event_history/file_event_writer.o
-
-ifeq ($(WITH_INCLUDED_SQLITE),1)
- EVENT_HISTORY_OBJ += event_history/sqlite_event_writer.o
-endif
-
-COMMON_OBJ = common/fatal.o messaging/messages.o common/lock.o \
- detector/detector.o common/params.o \
+COMMON_OBJ = common/fatal.o common/lock.o detector/detector.o \
detector/url_processor.o configurator/configurator.o \
- common/string_utils.o common/logging.o common/date_utils.o
+ common/string_utils.o common/logging.o \
+ common/date_utils.o common/tokenize.o common/resources.o
ifeq ($(WITH_ZOOKEEPER),1)
COMMON_OBJ += detector/zookeeper.o
@@ -155,21 +143,20 @@ endif
EXEC_LIB_OBJ = exec/exec.o
SCHED_LIB_OBJ = sched/sched.o local/local.o
-BASIC_OBJ = $(MASTER_OBJ) $(SLAVE_OBJ) $(EVENT_HISTORY_OBJ) $(COMMON_OBJ) \
+BASIC_OBJ = $(MASTER_OBJ) $(SLAVE_OBJ) $(COMMON_OBJ) \
$(SCHED_LIB_OBJ) $(EXEC_LIB_OBJ)
-ALL_OBJ = $(BASIC_OBJ) $(WEBUI_OBJ) $(SWIG_WEBUI_OBJ)
+ALL_OBJ = $(PROTOBUF_OBJ) $(BASIC_OBJ) $(WEBUI_OBJ) $(SWIG_WEBUI_OBJ)
MASTER_EXE_OBJ = $(MASTER_OBJ) $(MASTER_WEBUI_OBJ) \
- $(MASTER_SWIG_WEBUI_OBJ) $(EVENT_HISTORY_OBJ) $(COMMON_OBJ)
+ $(MASTER_SWIG_WEBUI_OBJ) $(COMMON_OBJ)
SLAVE_EXE_OBJ = $(SLAVE_OBJ) $(SLAVE_WEBUI_OBJ) \
$(SLAVE_SWIG_WEBUI_OBJ) $(COMMON_OBJ)
LAUNCHER_EXE_OBJ = launcher/launcher.o $(COMMON_OBJ)
-LOCAL_EXE_OBJ = local/local.o $(MASTER_OBJ) $(SLAVE_OBJ) $(EVENT_HISTORY_OBJ) \
- $(COMMON_OBJ)
+LOCAL_EXE_OBJ = local/local.o $(MASTER_OBJ) $(SLAVE_OBJ) $(COMMON_OBJ)
MESOS_MASTER_EXE = $(BINDIR)/mesos-master
MESOS_SLAVE_EXE = $(BINDIR)/mesos-slave
@@ -199,6 +186,10 @@ endif
MESOS_LIBS = $(MESOS_LIB) $(MESOS_SCHED_LIB) $(MESOS_EXEC_LIB)
+MESOS_JAVA_LIB_OBJ = java/jni/convert.o java/jni/construct.o \
+ java/jni/mesos_MesosSchedulerDriver.o \
+ java/jni/mesos_MesosExecutorDriver.o
+
# Java and Python shared libraries which contain the everything in
# MESOS_LIB as well as the SWIG wrappers (note, Java requires the use
# of the .dylib suffix on Mac OS X, but at the time Python required
@@ -213,6 +204,14 @@ MESOS_JAVA_JAR = $(LIBDIR)/java/mesos.ja
MESOS_PYTHON_LIB = $(LIBDIR)/python/_mesos.so
+MESOS_PYTHON_LIB_OBJ = python/native/module.o \
+ python/native/proxy_scheduler.o \
+ python/native/mesos_scheduler_driver_impl.o \
+ python/native/proxy_executor.o \
+ python/native/mesos_executor_driver_impl.o
+
+MESOS_PYTHON_FILE = $(LIBDIR)/python/mesos.py
+
# We copy all the webui files into the bin directory.
WEBUI_FILES = $(BINDIR)/webui/bottle-0.8.3 \
$(BINDIR)/webui/common/webui_lib.py \
@@ -240,17 +239,17 @@ DEPLOY_FILES = $(DEPLOYDIR)/deploy-to-sl
# Create rules for building the directories that aren't created
# automagically by configure.
-OBJ_DIRECTORIES = common configurator detector event_history exec launcher \
- local master messaging sched slave
+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
-DIRECTORIES = $(BINDIR) $(LIBDIR) $(LIBDIR)/java $(LIBDIR)/python \
- $(CONFDIR) $(DEPLOYDIR) $(OBJ_DIRECTORIES) \
- $(WEBUI_DIRECTORIES)
+DIRECTORIES = $(INCLUDEDIR) $(BINDIR) $(LIBDIR) $(LIBDIR)/java \
+ $(LIBDIR)/python $(CONFDIR) $(DEPLOYDIR) \
+ $(OBJ_DIRECTORIES) $(WEBUI_DIRECTORIES)
default: all
@@ -261,39 +260,53 @@ default: all
$(DIRECTORIES): %:
mkdir -p $@
-$(BASIC_OBJ): %.o: @srcdir@/%.cpp | $(OBJ_DIRECTORIES)
- $(CXX) -c $(CXXFLAGS) -o $@ $<
+mesos.pb.cc: @top_srcdir@/include/mesos.proto
+ mkdir -p java/generated
+ $(PROTOC) -I@top_srcdir@/include --cpp_out=. --java_out=java/generated @top_srcdir@/include/mesos.proto
-$(MESOS_LIBS): $(EVENT_HISTORY_OBJ) $(COMMON_OBJ) | $(LIBDIR)
+$(INCLUDEDIR)/mesos.hpp: mesos.pb.cc | $(INCLUDEDIR)
+ cp mesos.pb.h $(INCLUDEDIR)/mesos.hpp
-$(MESOS_SCHED_LIB): $(SCHED_LIB_OBJ) $(MASTER_OBJ) $(SLAVE_OBJ)
- $(AR) rcs $@ $^
+messaging/messages.pb.cc: $(SRCDIR)/messaging/messages.proto
+ mkdir -p messaging
+ $(PROTOC) -I$(SRCDIR)/messaging -I@top_srcdir@/include --cpp_out=messaging $(SRCDIR)/messaging/messages.proto
-$(MESOS_EXEC_LIB): $(EXEC_LIB_OBJ)
- $(AR) rcs $@ $^
+$(PROTOBUF_OBJ): %.pb.o: %.pb.cc $(INCLUDEDIR)/mesos.hpp
+ $(CXX) -c $(CXXFLAGS) -I@top_srcdir@/$(PROTOBUF)/src -I. -o $@ $<
-$(MESOS_LIB): $(SCHED_LIB_OBJ) $(MASTER_OBJ) $(SLAVE_OBJ) $(EXEC_LIB_OBJ)
- $(CXX) $(CXXFLAGS) -shared -o $@ $^ $(LDFLAGS) $(LIBS)
+$(BASIC_OBJ): %.o: $(SRCDIR)/%.cpp $(PROTOBUF_OBJ) | $(OBJ_DIRECTORIES)
+ $(CXX) -c $(CXXFLAGS) -o $@ $<
-$(WEBUI_OBJ): %.o: @srcdir@/%.cpp
+$(WEBUI_OBJ): %.o: $(SRCDIR)/%.cpp
$(CXX) -c $(CXXFLAGS) $(WEBUI_CXXFLAGS) -o $@ $<
$(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 $(BINDIR)/webui/master/swig
+$(MESOS_LIBS): $(COMMON_OBJ) | $(LIBDIR)
+
+$(MESOS_SCHED_LIB):$(SCHED_LIB_OBJ) $(MASTER_OBJ) $(SLAVE_OBJ) $(PROTOBUF_OBJ)
+ $(AR) rcs $@ $^
+
+$(MESOS_EXEC_LIB): $(EXEC_LIB_OBJ) $(PROTOBUF_OBJ)
+ $(AR) rcs $@ $^
+
+$(MESOS_LIB): $(SCHED_LIB_OBJ) $(MASTER_OBJ) $(SLAVE_OBJ) $(EXEC_LIB_OBJ) $(PROTOBUF_OBJ)
+ $(CXX) $(CXXFLAGS) -shared -o $@ $^ $(LDFLAGS) $(LIBS)
+
+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 $@ $<
+ $(SWIG) -c++ -python -outdir webui/master/swig -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 $(BINDIR)/webui/slave/swig
+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 $@ $<
+ $(SWIG) -c++ -python -outdir webui/slave/swig -I$(SRCDIR) -o $@ $<
cp -r webui/slave/swig/slave.py $(BINDIR)/webui/slave/swig
else
echo "" > $@
@@ -301,65 +314,85 @@ endif
$(MESOS_EXES): | $(BINDIR)
-$(MESOS_MASTER_EXE): @srcdir@/master/main.cpp $(MASTER_EXE_OBJ)
- $(CXX) $(CXXFLAGS) -o $@ $< $(MASTER_EXE_OBJ) $(LDFLAGS) $(WEBUI_LDFLAGS) $(LIBS)
+$(MESOS_MASTER_EXE): $(SRCDIR)/master/main.cpp $(MASTER_EXE_OBJ) $(PROTOBUF_OBJ)
+ $(CXX) $(CXXFLAGS) -o $@ $< $(MASTER_EXE_OBJ) $(PROTOBUF_OBJ) $(LDFLAGS) $(WEBUI_LDFLAGS) $(LIBS)
-$(MESOS_SLAVE_EXE): @srcdir@/slave/main.cpp $(SLAVE_EXE_OBJ)
- $(CXX) $(CXXFLAGS) -o $@ $< $(SLAVE_EXE_OBJ) $(LDFLAGS) $(WEBUI_LDFLAGS) $(LIBS)
+$(MESOS_SLAVE_EXE): $(SRCDIR)/slave/main.cpp $(SLAVE_EXE_OBJ) $(PROTOBUF_OBJ)
+ $(CXX) $(CXXFLAGS) -o $@ $< $(SLAVE_EXE_OBJ) $(PROTOBUF_OBJ) $(LDFLAGS) $(WEBUI_LDFLAGS) $(LIBS)
-$(MESOS_LAUNCHER_EXE): @srcdir@/launcher/main.cpp $(LAUNCHER_EXE_OBJ)
- $(CXX) $(CXXFLAGS) -o $@ $< launcher/launcher.o $(COMMON_OBJ) $(LDFLAGS) $(LIBS)
+$(MESOS_LAUNCHER_EXE): $(SRCDIR)/launcher/main.cpp $(LAUNCHER_EXE_OBJ) $(PROTOBUF_OBJ)
+ $(CXX) $(CXXFLAGS) -o $@ $< $(LAUNCHER_EXE_OBJ) $(PROTOBUF_OBJ) $(LDFLAGS) $(LIBS)
-$(MESOS_LOCAL_EXE): @srcdir@/local/main.cpp $(LOCAL_EXE_OBJ)
- $(CXX) $(CXXFLAGS) -o $@ $< $(LOCAL_EXE_OBJ) $(LDFLAGS) $(LIBS)
+$(MESOS_LOCAL_EXE): $(SRCDIR)/local/main.cpp $(LOCAL_EXE_OBJ) $(PROTOBUF_OBJ)
+ $(CXX) $(CXXFLAGS) -o $@ $< $(LOCAL_EXE_OBJ) $(PROTOBUF_OBJ) $(LDFLAGS) $(LIBS)
-$(MESOS_GETCONF_EXE): @srcdir@/configurator/get_conf.cpp $(COMMON_OBJ)
- $(CXX) $(CXXFLAGS) -o $@ $< $(COMMON_OBJ) $(LDFLAGS) $(LIBS)
+$(MESOS_GETCONF_EXE): $(SRCDIR)/configurator/get_conf.cpp $(COMMON_OBJ) $(PROTOBUF_OBJ)
+ $(CXX) $(CXXFLAGS) -o $@ $< $(COMMON_OBJ) $(PROTOBUF_OBJ) $(LDFLAGS) $(LIBS)
-$(MESOS_PROJD_EXE): @srcdir@/slave/projd.cpp $(COMMON_OBJ)
- $(CXX) $(CXXFLAGS) -o $@ $< $(COMMON_OBJ) $(LDFLAGS) $(LIBS)
+$(MESOS_PROJD_EXE): $(SRCDIR)/slave/projd.cpp $(COMMON_OBJ) $(PROTOBUF_OBJ)
+ $(CXX) $(CXXFLAGS) -o $@ $< $(COMMON_OBJ) $(PROTOBUF_OBJ) $(LDFLAGS) $(LIBS)
java: $(MESOS_JAVA_LIB) $(MESOS_JAVA_JAR)
-python: $(MESOS_PYTHON_LIB)
-
-$(MESOS_JAVA_JAR): $(MESOS_JAVA_LIB) | $(LIBDIR)/java
+$(MESOS_JAVA_JAR): $(SRCDIR)/java/src/mesos/*.java @top_srcdir@/include/mesos.proto | $(LIBDIR)/java
ifdef JAVA_HOME
- patch -N swig/java/mesos/mesosJNI.java < @srcdir@/swig/java/mesosJNI.java.patch1 || echo -n
- patch swig/java/mesos/mesosJNI.java < @srcdir@/swig/java/mesosJNI.java.patch2 || echo -n
- $(JAVA_HOME)/bin/javac -sourcepath swig/java -d swig/java swig/java/mesos/*.java
- $(JAVA_HOME)/bin/jar cf $@ -C swig/java mesos
+ mkdir -p @top_builddir@/$(PROTOBUF)/java/src/main/java
+ $(PROTOC) --java_out=@top_builddir@/$(PROTOBUF)/java/src/main/java -I@top_srcdir@/$(PROTOBUF)/src @top_srcdir@/$(PROTOBUF)/src/google/protobuf/descriptor.proto
+ $(JAVA_HOME)/bin/javac -d @top_builddir@/$(PROTOBUF)/java/src/main/java @top_srcdir@/$(PROTOBUF)/java/src/main/java/com/google/protobuf/*.java @top_builddir@/$(PROTOBUF)/java/src/main/java/com/google/protobuf/*.java
+ rm -f java/classes/mesos/*
+ mkdir -p java/classes/mesos
+ $(JAVA_HOME)/bin/javac -classpath @top_builddir@/$(PROTOBUF)/java/src/main/java -sourcepath java/generated -d java/classes java/generated/mesos/*.java
+ $(JAVA_HOME)/bin/javac -classpath @top_builddir@/$(PROTOBUF)/java/src/main/java:java/classes -sourcepath $(SRCDIR)/java/src -d java/classes $(SRCDIR)/java/src/mesos/*.java
+ $(JAVA_HOME)/bin/jar cf $@ -C java/classes mesos
+ $(JAVA_HOME)/bin/javah -d java/jni -classpath @top_builddir@/$(PROTOBUF)/java/src/main/java:java/classes mesos.MesosSchedulerDriver
+ $(JAVA_HOME)/bin/javah -d java/jni -classpath @top_builddir@/$(PROTOBUF)/java/src/main/java:java/classes mesos.MesosExecutorDriver
endif
-$(MESOS_JAVA_LIB): @srcdir@/swig/mesos.i $(MESOS_SCHED_LIB) $(MESOS_EXEC_LIB) | $(LIBDIR)/java
+$(MESOS_JAVA_LIB_OBJ): %.o: $(SRCDIR)/%.cpp $(MESOS_JAVA_JAR)
+ $(CXX) -c $(CXXFLAGS) -Ijava/jni -I$(JAVA_HOME)/include -I$(JAVA_HOME)/include/$(OS_NAME) -I $(JAVA_HEADERS) -o $@ $<
+
+$(MESOS_JAVA_LIB): $(MESOS_JAVA_LIB_OBJ) $(MESOS_SCHED_LIB) $(MESOS_EXEC_LIB) | $(LIBDIR)/java
ifdef JAVA_HOME
- rm -f swig/java/mesos/*
- mkdir -p swig/java/mesos
- $(SWIG) -c++ -java -I@top_srcdir@/include -o swig/java/mesos_wrap.cpp -outdir swig/java/mesos -package mesos @srcdir@/swig/mesos.i
- $(CXX) $(CXXFLAGS) -I$(JAVA_HOME)/include -I$(JAVA_HEADERS) -shared -o $@ swig/java/mesos_wrap.cpp $(MESOS_SCHED_LIB) $(MESOS_EXEC_LIB) $(LDFLAGS) $(LIBS)
+ $(CXX) $(CXXFLAGS) -shared -o $@ $(MESOS_JAVA_LIB_OBJ) $(MESOS_SCHED_LIB) $(MESOS_EXEC_LIB) $(LDFLAGS) $(LIBS)
+endif
+
+python: $(MESOS_PYTHON_LIB) $(MESOS_PYTHON_FILE) $(MESOS_PYTHON_PROTOBUFS)
+
+$(MESOS_PYTHON_LIB_OBJ): %.o: $(SRCDIR)/%.cpp
+ifdef PYTHON_HEADERS
+ mkdir -p python/native
+ $(CXX) -c $(CXXFLAGS) -Ipython/native -I$(PYTHON_HEADERS) -o $@ $<
+endif
+
+$(MESOS_PYTHON_LIB): $(MESOS_PYTHON_LIB_OBJ) $(MESOS_SCHED_LIB) $(MESOS_EXEC_LIB) | $(LIBDIR)/python
+ifdef PYTHON_HEADERS
+ $(CXX) $(CXXFLAGS) -shared -o $@ $(MESOS_PYTHON_LIB_OBJ) $(MESOS_SCHED_LIB) $(MESOS_EXEC_LIB) $(LDFLAGS) $(PYTHON_LDFLAGS) $(LIBS)
+endif
+
+$(MESOS_PYTHON_FILE): $(SRCDIR)/python/src/mesos.py
+ifdef PYTHON_HEADERS
+ cp $< $@
endif
-$(MESOS_PYTHON_LIB): @srcdir@/swig/mesos.i $(MESOS_SCHED_LIB) $(MESOS_EXEC_LIB) | $(LIBDIR)/python
+$(MESOS_PYTHON_PROTOBUFS): @top_srcdir@/include/mesos.proto | $(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)
- cp -r swig/python/mesos.py $(LIBDIR)/python/mesos.py
+ $(PROTOC) --python_out=@top_builddir@/$(PROTOBUF)/python -I@top_builddir@/$(PROTOBUF)/src @top_builddir@/$(PROTOBUF)/src/google/protobuf/descriptor.proto
+ $(PROTOC) -I@top_srcdir@/include --python_out=$(LIBDIR)/python @top_srcdir@/include/mesos.proto
endif
-$(WEBUI_FILES): $(BINDIR)/%: @srcdir@/% | $(WEBUI_DIRECTORIES)
+$(WEBUI_FILES): $(BINDIR)/%: $(SRCDIR)/% | $(WEBUI_DIRECTORIES)
ifeq ($(WITH_WEBUI),1)
cp -r $< $@
endif
-$(DEPLOY_FILES): $(DEPLOYDIR)/%: @srcdir@/deploy/% | $(DEPLOYDIR)
+$(DEPLOY_FILES): $(DEPLOYDIR)/%: $(SRCDIR)/deploy/% | $(DEPLOYDIR)
cp -r $< $@
-$(CONFDIR)/mesos.conf: | @srcdir@/conf/mesos.conf.template $(CONFDIR)
- cp -r @srcdir@/conf/mesos.conf.template $@
+$(CONFDIR)/mesos.conf: | $(SRCDIR)/conf/mesos.conf.template $(CONFDIR)
+ cp -r $(SRCDIR)/conf/mesos.conf.template $@
-$(CONFDIR)/deploy-env.sh: | @srcdir@/conf/deploy-env.sh.template $(CONFDIR)
- cp -r @srcdir@/conf/deploy-env.sh.template $@
+$(CONFDIR)/deploy-env.sh: | $(SRCDIR)/conf/deploy-env.sh.template $(CONFDIR)
+ cp -r $(SRCDIR)/conf/deploy-env.sh.template $@
test: all
$(MAKE) -C tests test
@@ -406,6 +439,9 @@ clean:
rm -f $(BINDIR)/webui/master/swig/master.py
rm -f $(BINDIR)/webui/master/swig/master.pc
rm -f $(DEPLOY_FILES)
+ rm -f $(INCLUDEDIR)/mesos.hpp
+ rm -f mesos.pb.cc
+ rm -f mesos.pb.h
rm -f TAGS
.PHONY: default java python test all clean