Separate output dir for .d and .o files.

JNI-106
heck 3 years ago
parent 80c0b1e542
commit f991fd2dd3

@ -41,8 +41,7 @@ $(info ---------------------------------------------------)
# relative to "src/"
JAVA_PKG_ROOT=foundation/pEp/jniadapter/
JAVA_BUILD_ROOT=../build/java/
# Separate dir for derived objects DOES NOT WORK YET :/ (has to be .)
OBJ_DIR=.
OBJ_DIR=../build/cxx/
DIST_DIR=../dist/
# for "make clean" only
@ -86,7 +85,8 @@ CXXFLAGS+= -MMD -MP
SOURCES=$(wildcard *.cc)
SOURCES+=$(GENERATED_CC)
OBJECTS=$(SOURCES:.cc=.o)
tmp=$(SOURCES:.cc=.o)
OBJECTS=$(addprefix $(OBJ_DIR), $(tmp))
DEPENDS=$(OBJECTS:.o=.d)
.PHONY: all lib-java lib-cxx compile-java compile-cxx gen-jni-headers codegen clean create-dirs remove-dirs
@ -108,10 +108,10 @@ $(LIB_JAVA): compile-java
$(JAVA_BIN_DIR)/jar cf $(DIST_DIR)/$@ -C $(JAVA_BUILD_ROOT) foundation
$(LIB_CXX_DYN): compile-cxx
$(CXX) *.o $(LDFLAGS) $(LDLIBS) -o $(DIST_DIR)/$@
$(CXX) $(OBJ_DIR)*.o $(LDFLAGS) $(LDLIBS) -o $(DIST_DIR)/$@
$(LIB_CXX_STATIC): compile-cxx
$(AR) -r $(DIST_DIR)/$@ *.o
$(AR) -r $(DIST_DIR)/$@ $(OBJ_DIR)*.o
# -------------- Compile -----------------
@ -119,8 +119,12 @@ compile-java: create-dirs codegen
$(JAVA_BIN_DIR)/javac -d $(JAVA_BUILD_ROOT) $(JAVA_PKG_ROOT)/*.java
$(JAVA_BIN_DIR)/javac -d $(JAVA_BUILD_ROOT) $(JAVA_PKG_ROOT)/exceptions/*.java
# Compile C++ using implicit rules
compile-cxx: create-dirs gen-jni-headers $(OBJECTS)
$(OBJECTS): $(OBJ_DIR)%.o: %.cc
$(CXX) $(CXXFLAGS) -c $< -o $@
-include $(DEPENDS)
@ -145,6 +149,7 @@ create-dirs:
$(MAKE) -C codegen create-dirs
mkdir -p $(JAVA_BUILD_ROOT)/$(JAVA_PKG_ROOT)
mkdir -p $(JAVA_BUILD_ROOT)/$(JAVA_PKG_ROOT)/exceptions
mkdir -p $(OBJ_DIR)
mkdir -p $(DIST_DIR)
#rm -rf is too dangerous for vars

Loading…
Cancel
Save