]> Creatis software - gdcm.git/commitdiff
ENH: Rework the stuff for HAVE_SA_LEN
authormalaterre <malaterre>
Mon, 17 Jan 2005 21:41:47 +0000 (21:41 +0000)
committermalaterre <malaterre>
Mon, 17 Jan 2005 21:41:47 +0000 (21:41 +0000)
CMakeLists.txt
gdcmConfigure.h.in
src/gdcmUtil.cxx

index 4ebaa055b006fc2b71af1f71c9856dae4a85ebc7..82ea94e3deedecd09eddc6f3d622efb6a2711759 100644 (file)
@@ -62,6 +62,36 @@ IF("GDCM_COMPILER_HAS_FUNCTION" MATCHES "^GDCM_COMPILER_HAS_FUNCTION$")
   ENDIF(GDCM_COMPILER_HAS_FUNCTION)
 ENDIF("GDCM_COMPILER_HAS_FUNCTION" MATCHES "^GDCM_COMPILER_HAS_FUNCTION$")
 
+#-----------------------------------------------------------------------------
+# Test if os defines a lenght for sockaddr
+IF("GDCM_OS_HAVE_SA_LEN" MATCHES "^GDCM_OS_HAVE_SA_LEN$")
+  MESSAGE(STATUS "Checking if ifreq has a sa_len")
+  STRING(ASCII 35 POUND)
+  FILE(WRITE ${GDCM_BINARY_DIR}/gdcmTestHAVESALEN.c
+    "${POUND}include <sys/types.h>\n"
+    "${POUND}include <sys/socket.h>\n"
+    "int main() { struct sockaddr sa; sa.sa_len = 0; }")
+  TRY_COMPILE(GDCM_OS_HAVE_SA_LEN
+              ${GDCM_BINARY_DIR}/CMakeTmp/HaveSaLen
+              ${GDCM_BINARY_DIR}/gdcmTestHAVESALEN.c
+              OUTPUT_VARIABLE OUTPUT)
+  IF(GDCM_OS_HAVE_SA_LEN)
+    MESSAGE(STATUS "Checking if ifreq has a sa_len -- yes")
+    SET(GDCM_OS_HAVE_SA_LEN 1 CACHE INTERNAL "Support if ifreq has a sa_len")
+    WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeOutput.log
+      "Determining if ifreq has a sa_len"
+      "passed with the following output:\n"
+      "${OUTPUT}\n" APPEND)
+  ELSE(GDCM_OS_HAVE_SA_LEN)
+    MESSAGE(STATUS "Checking if ifreq has a sa_len -- no")
+    SET(GDCM_OS_HAVE_SA_LEN 0 CACHE INTERNAL "Support if ifreq has a sa_len")
+    WRITE_FILE(${CMAKE_BINARY_DIR}/CMakeError.log
+      "Determining if ifreq has a sa_len"
+      "failed with the following output:\n"
+      "${OUTPUT}\n" APPEND)
+  ENDIF(GDCM_OS_HAVE_SA_LEN)
+ENDIF("GDCM_OS_HAVE_SA_LEN" MATCHES "^GDCM_OS_HAVE_SA_LEN$")
+
 #-----------------------------------------------------------------------------
 # Build directory on which many applications depend
 SUBDIRS(
index 061b6072c1ce60af0b1e1156e96d23ec5f0fc131..839fe32b4691b04711f31d42f0defaa05894bab4 100644 (file)
@@ -49,6 +49,8 @@
 #cmakedefine CMAKE_HAVE_NET_IF_DL_H
 #cmakedefine CMAKE_HAVE_NET_IF_ARP_H
 
+#define HAVE_SA_LEN @GDCM_OS_HAVE_SA_LEN@
+
 
 /*--------------------------------------------------------------------------*/
 /* GDCM Versioning                                                          */
index 0f121c26635a1f948b7e92ff4a8b3b7c4abc7cee..a23739c220095564c572108bf124f824f2801138 100644 (file)
@@ -3,8 +3,8 @@
   Program:   gdcm
   Module:    $RCSfile: gdcmUtil.cxx,v $
   Language:  C++
-  Date:      $Date: 2005/01/17 17:26:55 $
-  Version:   $Revision: 1.106 $
+  Date:      $Date: 2005/01/17 21:41:48 $
+  Version:   $Revision: 1.107 $
                                                                                 
   Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de
   l'Image). All rights reserved. See Doc/License.txt or
@@ -561,7 +561,7 @@ int GetMacAddrSys ( unsigned char *addr )
    char buf[1024];
    int      n, i;
    unsigned char    *a;
-#ifdef AF_LINK
+#if defined(AF_LINK) && !(defined(SIOCGIFHWADDR) || !defined(SIOCGENADDR))
    struct sockaddr_dl *sdlp;
 #endif