{ if (!any(dyn.load.functions=="dyn.load2")) { cat("Skipping this file since dyn.load2 not available.\n") end.do.test() } T } { cat(file="/tmp/my_routine.c", sep="\n", "/* #include */", "my_routine(i, d)", "long *i ; ", "double *d ;", "{", " /* printf(\"my_routine : i=%ld, d=%g\\n\", *i, *d) ; */", " *i *= *i ;", " *d *= *d ;", "}" ) cflags <- switch(platform(), SUN3="-f68881", IRIS4D=, DECSTATION="-G 0", "") unix(paste("cd /tmp ; cc -c", cflags, " my_routine.c"), o=F) dyn.load2("/tmp/my_routine.o") is.loaded(symbol.C("my_routine")) } { z <- .C("my_routine", as.integer(13), as.double(12)) unix("/bin/rm -f /tmp/my_routine*") # cat("Test 1 of 1", if (z[[1]] == as.integer(169) && # z[[2]] == as.double(144)) "passed\n" else "failed\n") (z[[1]] == as.integer(169) && z[[2]] == as.double(144)) }