From bea61147cc268cf99c6417712f0da34d3cdfdea3 Mon Sep 17 00:00:00 2001 From: Mick Jordan <mick.jordan@oracle.com> Date: Fri, 10 Feb 2017 11:43:57 -0800 Subject: [PATCH] native project: institute a version scheme to force a clean build --- com.oracle.truffle.r.native/Makefile | 29 ++++++++++++++++++- .../fficall/src/jni/rffiutils.c | 2 +- .../fficall/src/jni/rffiutils.h | 2 +- com.oracle.truffle.r.native/version.source | 1 + .../oracle/truffle/r/nodes/ffi/RFFIUtils.java | 1 - .../r/runtime/ffi/jni/JNIUpCallsRFFIImpl.java | 1 + 6 files changed, 32 insertions(+), 4 deletions(-) create mode 100644 com.oracle.truffle.r.native/version.source diff --git a/com.oracle.truffle.r.native/Makefile b/com.oracle.truffle.r.native/Makefile index 2b59c073ff..1207d671c8 100644 --- a/com.oracle.truffle.r.native/Makefile +++ b/com.oracle.truffle.r.native/Makefile @@ -30,12 +30,17 @@ export FASTR_NATIVE_DIR = $(TOPDIR) export R_VERSION = $(subst R-,,$(notdir $(basename $(basename $(wildcard $(FASTR_R_HOME)/libdownloads/R-*.gz))))) export GNUR_HOME = $(TOPDIR)/gnur/R-$(R_VERSION) -all: +# Completely accurate dependency analysis is very difficult for this project, so use a version number +# to force a clean build, and elsewhere use sentinels to avoid rebuilding when we can't compute the +# dependencies accurately. + +all: checkversion $(MAKE) -C gnur $(MAKE) -C include $(MAKE) -C fficall $(MAKE) -C library $(MAKE) -C run + cp version.source version.built clean: $(MAKE) -C include clean @@ -44,3 +49,25 @@ clean: $(MAKE) -C run clean $(MAKE) -C gnur clean +version.source := $(shell cat version.source) + +#$(info version: $(version.source)) +ifeq ($(wildcard version.built),) + doclean = 1 +else +version.built := $(shell cat version.built) +#$(info version.built: $(version.built)) +ifneq ($(version.source),$(version.built)) + doclean = 1 +else + doclean = 0 +endif +endif + +#$(info doclean: $(doclean)) +checkversion: +ifeq ($(doclean),1) + $(MAKE) clean +endif + + \ No newline at end of file diff --git a/com.oracle.truffle.r.native/fficall/src/jni/rffiutils.c b/com.oracle.truffle.r.native/fficall/src/jni/rffiutils.c index bf170af25d..03118d01c2 100644 --- a/com.oracle.truffle.r.native/fficall/src/jni/rffiutils.c +++ b/com.oracle.truffle.r.native/fficall/src/jni/rffiutils.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/com.oracle.truffle.r.native/fficall/src/jni/rffiutils.h b/com.oracle.truffle.r.native/fficall/src/jni/rffiutils.h index 6ed346d211..c86fc4bc15 100644 --- a/com.oracle.truffle.r.native/fficall/src/jni/rffiutils.h +++ b/com.oracle.truffle.r.native/fficall/src/jni/rffiutils.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015, 2016, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2015, 2017, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it diff --git a/com.oracle.truffle.r.native/version.source b/com.oracle.truffle.r.native/version.source new file mode 100644 index 0000000000..78c24caea0 --- /dev/null +++ b/com.oracle.truffle.r.native/version.source @@ -0,0 +1 @@ +2/10/17 diff --git a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/RFFIUtils.java b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/RFFIUtils.java index f98624c494..9b7df136ad 100644 --- a/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/RFFIUtils.java +++ b/com.oracle.truffle.r.nodes/src/com/oracle/truffle/r/nodes/ffi/RFFIUtils.java @@ -149,7 +149,6 @@ public class RFFIUtils { } private static void traceCall(CallMode mode, String name, int depthValue, Object... args) { - assert initialized; if (traceEnabled) { StringBuffer sb = new StringBuffer(); sb.append("CallRFFI["); diff --git a/com.oracle.truffle.r.runtime.ffi/src/com/oracle/truffle/r/runtime/ffi/jni/JNIUpCallsRFFIImpl.java b/com.oracle.truffle.r.runtime.ffi/src/com/oracle/truffle/r/runtime/ffi/jni/JNIUpCallsRFFIImpl.java index 17087d2880..94381998e7 100644 --- a/com.oracle.truffle.r.runtime.ffi/src/com/oracle/truffle/r/runtime/ffi/jni/JNIUpCallsRFFIImpl.java +++ b/com.oracle.truffle.r.runtime.ffi/src/com/oracle/truffle/r/runtime/ffi/jni/JNIUpCallsRFFIImpl.java @@ -33,6 +33,7 @@ import com.oracle.truffle.r.runtime.ffi.CharSXPWrapper; * Some additional methods to support the native JNI side. */ public final class JNIUpCallsRFFIImpl extends JavaUpCallsRFFIImpl { + // Checkstyle: stop method name check /** * Helper function for {@code R_TopLevelExec}, see {@link #R_ToplevelExec()}, called after C -- GitLab