Paquete R que enlaza a la biblioteca C externa

Tengo un código c que utiliza eligraph biblioteca. Me gustaría poner un envoltorio R alrededor y enviarlo a CRAN como un paquete R.

igraph ya tiene un puerto R en CRAN, por lo que tendría sentido que mi paquete 'R' dependiera del igraph de R. Como foo usa su propio código C que depende del gráfico, ¿cómo puedo vincular mis funciones C a la biblioteca igraph original? He leído que esto se hace en un archivo llamado Makevars, pero el enlace a una biblioteca externa es muy delicado.

Si esto no es posible, ¿es mejor copiar todo el código fuente de igraph y ponerlo en mi directorio / src? El paquete R igraph ya tiene un archivo llamado Makevars, pero no entiendo cómo se construyen todos los archivos c. Normalmente, en mi Makefile tengo algo como gcc (alguna lista de archivos fuente .c) -o, pero Makevar solo contiene

PKG_CFLAGS=-DUSING_R -I. -Ics -Iglpk -Iglpk/amd -Iglpk/colamd \
-g -O2 -I/usr/include/libxml2 -g -O2 -I/usr/include/libxml2 -DNDEBUG \
-DPACKAGE_VERSION=\"0.6\" -DINTERNAL_ARPACK \
-DIGRAPH_THREAD_LOCAL=/**/
PKG_CXXFLAGS= -DUSING_R -DIGRAPH_THREAD_LOCAL=/**/ -DNDEBUG
PKG_LIBS=-lxml2 -lz -lpthread -licucore -lm -lgmp  $(FLIBS) $(LAPACK_LIBS) $(BLAS_LIBS)

all: $(SHLIB)

y no hay otro Makefile. En resumen, ¿cómo hago para colocar el código C en un paquete R que depende de otra biblioteca C y cómo escribo los Makevars correspondientes (o Makefile) para incorporar las funciones C?

Una pregunta más antigua fue publicadaaquí pero solo parece enlazar para ayudar a escribir su propio código C que no depende de nada.

Respuestas a la pregunta(2)

Su respuesta a la pregunta