From 38af2f6a998968a49176216d2ec283f9f7bc69a0 Mon Sep 17 00:00:00 2001 From: malaterre Date: Mon, 17 Jan 2005 21:41:47 +0000 Subject: [PATCH] ENH: Rework the stuff for HAVE_SA_LEN --- CMakeLists.txt | 30 ++++++++++++++++++++++++++++++ gdcmConfigure.h.in | 2 ++ src/gdcmUtil.cxx | 6 +++--- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 4ebaa055..82ea94e3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -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 \n" + "${POUND}include \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( diff --git a/gdcmConfigure.h.in b/gdcmConfigure.h.in index 061b6072..839fe32b 100644 --- a/gdcmConfigure.h.in +++ b/gdcmConfigure.h.in @@ -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 */ diff --git a/src/gdcmUtil.cxx b/src/gdcmUtil.cxx index 0f121c26..a23739c2 100644 --- a/src/gdcmUtil.cxx +++ b/src/gdcmUtil.cxx @@ -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 -- 2.45.1