maa_init: fix constructor attribute in maa_init and add working example
authorBrendan Le Foll <brendan.le.foll@intel.com>
Fri, 16 May 2014 08:43:01 +0000 (09:43 +0100)
committerBrendan Le Foll <brendan.le.foll@intel.com>
Fri, 16 May 2014 13:31:31 +0000 (14:31 +0100)
Signed-off-by: Brendan Le Foll <brendan.le.foll@intel.com>
api/maa.h
examples/analogin_a0.c
src/CMakeLists.txt
src/maa.c

index c6a9bb2..fbd37c4 100644 (file)
--- a/api/maa.h
+++ b/api/maa.h
@@ -174,7 +174,14 @@ typedef struct {
  * Detects running platform and attempts to use included pinmap
  * @return maa_result_t maa result
  */
+#ifndef SWIG
+// this sets a compiler attribute (supported by GCC & clang) to have maa_init()
+// be called as a constructor make sure your libc supports this!  uclibc needs
+// to be compiled with UCLIBC_CTOR_DTOR
+maa_result_t maa_init() __attribute__((constructor));
+#else
 maa_result_t maa_init();
+#endif
 
 /** Check GPIO
  *
index 010842f..721ff84 100644 (file)
@@ -28,7 +28,6 @@
 
 int main ()
 {
-    maa_init();
     maa_aio_context adc_a0;
     uint16_t adc_value = 0;
 
index 7374c72..89c20c4 100644 (file)
@@ -73,8 +73,6 @@ endif ()
 
 find_package (SWIG)
 if (SWIG_FOUND)
-  set (CMAKE_C_FLAGS -DSWIG=${SWIG_FOUND})
-  set (CMAKE_CXX_CFLAGS -DSWIG=${SWIG_FOUND})
   include (${SWIG_USE_FILE})
 
   add_subdirectory (python)
index 42e1ea8..822ae94 100644 (file)
--- a/src/maa.c
+++ b/src/maa.c
@@ -39,14 +39,13 @@ maa_get_version()
     return gVERSION;
 }
 
-#ifndef SWIG
-// this sets a compiler attribute (supported by GCC & clang) to have maa_init()
-// be called as a constructor make sure your libc supports this!  uclibc needs
-// to be compiled with UCLIBC_CTOR_DTOR
-maa_result_t maa_init() __attribute__((constructor));
-#endif
+#ifdef SWIG
 maa_result_t
 maa_init()
+#else
+maa_result_t __attribute__((constructor))
+maa_init()
+#endif
 {
     /** Once more board definitions have been added,
      *  A method for detecting them will need to be devised.