Mercurial > pub > dyncall > dyncall
diff doc/README.embedded @ 0:3e629dc19168
initial from svn dyncall-1745
author | Daniel Adler |
---|---|
date | Thu, 19 Mar 2015 22:24:28 +0100 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/doc/README.embedded Thu Mar 19 22:24:28 2015 +0100 @@ -0,0 +1,84 @@ +Makefile.embedded - hybrid DynCall makefiles for GNU, BSD and SUN make +====================================================================== + + +Brief overview +-------------- +This is one of the latest build systems designed for DynCall. +It was designed for being embeddable in bigger 'make' based systems. +It uses a very simple structure and it does not require any 'configure' phase. +Instead the user can specify the CFLAGS and LDFLAGS by himself. +For a couple of platforms, the make system supports phony targets of popular +operating-systems such as 'bsd'. + +Building the library: +--------------------- +$ make -f Makefile.embedded <variant> + +Building the tests: +------------------- +$ cd test ; make -f Makefile.embedded <variant> + +Installation: +------------- +$ make -f Makefile.embedded PREFIX=/usr/local install + +Installation with support for DESTDIR: +-------------------------------------- +$ make -f Makefile.embedded DESTDIR=/tmp/staging PREFIX=/usr/local install + + +Available variants: +------------------- +bsd Free/Net/Open/DragonFly/Mir BSD +linux Linux +osx Mac OS X +osx-universal Mac OS X universal binaries (i386,x86_64 and ppc) +sun SunOS and Sun Pro compiler +sun-64bit SunOS and Sun Pro compiler for sparc64(? amd64) +sun-gcc SunOS and GCC compiler +sun-gcc-64bit SunOS and GCC compiler for sparc64 (? amd64) +ios61 iOS SDK 6.1 armv7 (untested!) +ios61-nothumb iOS SDK 6.1 armv7 -mno-thumb (untested!) + +Tweaking the build: +------------------- +$ VAR1=<VALUE1> VAR2=<VALUE2> .. make -f Makefile.embedded <variant> + +Adding a variant +----------------- +Currently we deal with two files to specify a custom target. + +The top-level Makefile.embedded controls for building the libraries. +Useful variables are AR, CC, CFLAGS and ASFLAGS. + +The test/Makefile.embedded file controls for building the tests. +The tests currently involve sometimes C++ and some platforms need +to link with the math library. Others need the dynamic linker. +Useful variables are CXX, CC, CCC (Sun), CFLAGS, CCFLAGS (Sun), +CXXFLAGS andLDFLAGS. + +Background +---------- +During the preparation for the public release of the R package 'rdyncall' I was +looking for a way to get DynCall integrated into an existing Make system such +as offered by R for build R packages. + +It was inspired by the make files of Lua which are damn simple and +don't need a configure but a user that knows the target platform name. + +The source package can be configured automatically during compilation and +does not require explicit configuration anymore using "*.S" files that +are Assembly files which are preprocessed by the C Preprocessor. + +This feature is available by GCC and SunPro compilers. + +Limitations +----------- + +Mac OS X universal static libraries require to use + +'libtool -static -o libname.a obj1.o obj2.o ...' instead of 'ar cru libname.a obj1.o obj2.o'. +We use predefined variables AR and ARFLAGS. +The variant osx-universal uses AR=libtool. +