From ce19e896aaacca7196ab692531b63fc659889246 Mon Sep 17 00:00:00 2001 From: Jean-Manuel Caba Date: Fri, 13 Aug 2010 00:08:16 +0000 Subject: [PATCH] + testing on 32 and 64 bits x86 machines + change cmake OpenAccess macro we need 2 env variables : OA_LIB_DIR where are the oa libs OA_INCLUDE_DIR where are the oa headers this way different headers version can be tested versus different OA compiled libs --- crlcore/cmake_modules/FindOPENACCESS.cmake | 28 ++------- crlcore/src/ccore/openaccess/Makefile | 7 ++- .../src/ccore/openaccess/script/cadence_oa.sh | 61 +++++++++++-------- .../src/ccore/openaccess/testDriver/Makefile | 14 ++--- .../src/ccore/openaccess/testParser/Makefile | 6 +- 5 files changed, 58 insertions(+), 58 deletions(-) diff --git a/crlcore/cmake_modules/FindOPENACCESS.cmake b/crlcore/cmake_modules/FindOPENACCESS.cmake index 3b8944ce..070d3f8a 100644 --- a/crlcore/cmake_modules/FindOPENACCESS.cmake +++ b/crlcore/cmake_modules/FindOPENACCESS.cmake @@ -82,7 +82,7 @@ SET(OA_DIR_MESSAGE "Set the OA_INCLUDE_DIR cmake cache entry to the ${OA_INCLUDE # don't even bother under WIN32 IF(UNIX) - SET(OA_DIR_SEARCH $ENV{OPENACCESS_TOP}) + SET(OA_DIR_SEARCH $ENV{OA_LIB_DIR}) IF(OA_DIR_SEARCH) FILE(TO_CMAKE_PATH ${OA_DIR_SEARCH} OA_DIR_SEARCH) ENDIF(OA_DIR_SEARCH) @@ -90,31 +90,13 @@ IF(UNIX) # # Look for an installation. # - FIND_PATH(OA_INCLUDE_PATH NAMES oa/oaDesign.h PATHS - # Look in other places. - ${OA_DIR_SEARCH} + FIND_PATH(OA_INCLUDE_PATH NAMES oa/oaDesign.h PATHS $ENV{OA_INCLUDE_DIR} PATH_SUFFIXES include # Help the user find it if we cannot. DOC "The ${OA_INCLUDE_PATH_DESCRIPTION}" ) - -# FIND_PROGRAM(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin ) -# IF(CMAKE_UNAME) -# EXEC_PROGRAM(uname ARGS -a OUTPUT_VARIABLE SYSTEM_TYPE) -# ELSE(CMAKE_UNAME) -# MESSAGE(FATAL_ERROR, "uname command was not found") -# ENDIF(CMAKE_UNAME) - -# IF($SYSTEM_TYPE MATCHES ".*x86_64.*") -# SET(OA_LIBRARY_DIR ${OA_DIR_SEARCH}/lib/linux_rhel30_64/dbg) -# ELSEIF($SYSTEM_TYPE MATCHES ".*i686.*") -# SET(OA_LIBRARY_DIR ${OA_DIR_SEARCH}/lib/linux_rhel21_32/dbg) -# ELSE($SYSTEM_TYPE MATCHES ".*x86_64.*") -# SET(OA_LIBRARY_DIR "unknown") -# ENDIF($SYSTEM_TYPE MATCHES ".*x86_64.*") - - SET(OA_LIBRARY_DIR ${OA_DIR_SEARCH}/lib) + SET(OA_LIBRARY_DIR ${OA_DIR_SEARCH}) # Set OA_OACOMMON_LIBRARY FIND_LIBRARY(OA_OACOMMON_LIBRARY_RELEASE NAMES oaCommon PATHS ${OA_LIBRARY_DIR} NO_DEFAULT_PATH ) @@ -223,9 +205,9 @@ IF(UNIX) ELSE (OA_INCLUDE_PATH AND OA_LIBRARY_PATH) SET(OA_FOUND "NO") IF(OA_FIND_REQUIRED) - MESSAGE( FATAL_ERROR "OpenAccess libraries, includes NOT found!") + MESSAGE( FATAL_ERROR "OpenAccess NOT found!") ELSE(OA_FIND_REQUIRED) - MESSAGE( STATUS "OpenAccess libraries, includes NOT found!") + MESSAGE( STATUS "OpenAccess NOT found!") ENDIF(OA_FIND_REQUIRED) ENDIF (OA_INCLUDE_PATH AND OA_OACOMMON_LIBRARY AND OA_OABASE_LIBRARY AND OA_OADM_LIBRARY AND OA_OATECH_LIBRARY AND OA_OADESIGN_LIBRARY diff --git a/crlcore/src/ccore/openaccess/Makefile b/crlcore/src/ccore/openaccess/Makefile index cf3964a1..0a740942 100644 --- a/crlcore/src/ccore/openaccess/Makefile +++ b/crlcore/src/ccore/openaccess/Makefile @@ -2,4 +2,9 @@ all: cd ../../../../.. && make -.PHONY: all +mrproper: + cd testDriver && make mrproper + cd testParser && make mrproper + rm -rf .cadence + +.PHONY: all mrproper diff --git a/crlcore/src/ccore/openaccess/script/cadence_oa.sh b/crlcore/src/ccore/openaccess/script/cadence_oa.sh index 5e01c0ea..75161003 100755 --- a/crlcore/src/ccore/openaccess/script/cadence_oa.sh +++ b/crlcore/src/ccore/openaccess/script/cadence_oa.sh @@ -1,36 +1,49 @@ #!/bin/sh # -# we assume that the directory pointed by OPENACCESS_TOP is like in other project of the lab -# to do so we should have : -# - included symbolic link to bin data lib and license directories from cadence OA -# - included doc and example from si2.org OA -# - included a symbolic link to an installation of headers from si2.org OA +# we assume we work on linux for 32bit or 64 bits x86. # # this script set environment variable for crlcore compilation with cadence OA -# with these hypothesis -# -#OA_VERSION=oa_v22.04.057 -#ARCH=linux_rhel40_64 +# first we set OPENACCESS_LIB to the oa directory containing the OA version we want to use +# second we set OPENACCESS_INCLUDE to where the OA include we want to use are +# third we set the OA_PLUGIN_PATH and systems PATHS so the plugins and shared lib will load. # -export OPENACCESS_TOP=$TEMP/CADENCE_OA +# use oa from virtuoso +OA_VERSION=oa_v22.04.057 +# get OPUS_TOP and tools +# from virtuoso editor (needed) +source ~opus/bin/IC613.sh -#get OPUS_TOP and tools -#from virtuoso editor -source $TEMP/IC613.sh +# get encouter router too if possible +if test -f ~opus/bin/EDI910.sh +then + source ~opus/bin/EDI910.sh +fi + + +ARCH=$(uname -i) + +OPENACCESS_TOP=$OPUS_TOP/$OA_VERSION # we need oa + specific cadence libs ... -export OA_LIB_PATH=$OPENACCESS_TOP/lib:$OPUS_TOP/tools.lnx86/lib/64bit -echo $OA_LIB_PATH +case "$ARCH" in + "x86_64") + export OA_LIB_DIR=$OPENACCESS_TOP/lib/linux_rhel40_64/opt + export LD_LIBRARY_PATH=$OA_LIB_DIR:$OPUS_TOP/tools.lnx86/lib/64bit:$LD_LIBRARY_PATH + ;; + *) + export OA_LIB_DIR=$OPENACCESS_TOP/lib/linux_rhel40_32/opt + export LD_LIBRARY_PATH=$OA_LIB_DIR:$OPUS_TOP/tools.lnx86/lib:$LD_LIBRARY_PATH + ;; +esac -export OA_INCLUDE_PATH=$OPENACCESS_TOP/include -echo $OA_INCLUDE_PATH +export PATH=$PATH:$OPENACCESS_TOP/bin -export LD_LIBRARY_PATH=$OA_LIB_PATH:$LD_LIBRARY_PATH - -#for plugins .plg files -export OA_PLUGIN_PATH=$OPENACCESS_TOP/data/plugins - -#get encouter router too -source $TEMP/EDI910.sh +# for plugins .plg files +export OA_PLUGIN_PATH=$OPENACCESS_TOP/data +# where the si2 hearders have been installed +# note that $TEMP is /dsk/l1/misc/$(USER) directory +export OA_INCLUDE_DIR=$TEMP/OA_HEADER +#si on utilise OA de si2 on aura +#export OPENACCESS_INCLUDE=$OPENACCESS_TOP/include diff --git a/crlcore/src/ccore/openaccess/testDriver/Makefile b/crlcore/src/ccore/openaccess/testDriver/Makefile index 38608cb4..e75c0a2b 100644 --- a/crlcore/src/ccore/openaccess/testDriver/Makefile +++ b/crlcore/src/ccore/openaccess/testDriver/Makefile @@ -1,6 +1,7 @@ TESTDIR= ./testOA TECHNOFILE= /asim/chams/etc/chams/config.freePDK45.xml +M=$$(uname -m) all: compile lefTest run @@ -11,26 +12,25 @@ compile: ./compile.sh run: compile - ./x86_64/usr/local/bin/testOAWrapper $(TECHNOFILE) $(TESTDIR) 2>&1 | tee $@.log + ./$(M)/usr/local/bin/testOAWrapper $(TECHNOFILE) $(TESTDIR) 2>&1 | tee $@.log debug: compile - gdb -args ./x86_64/usr/local/bin/testOAWrapper $(TECHNOFILE) $(TESTDIR) + gdb -args ./$(M)/usr/local/bin/testOAWrapper $(TECHNOFILE) $(TESTDIR) ddd: compile - ddd -args ./x86_64/usr/local/bin/testOAWrapper $(TECHNOFILE) $(TESTDIR) + ddd -args ./$(M)/usr/local/bin/testOAWrapper $(TECHNOFILE) $(TESTDIR) valgrind_simple: compile - valgrind ./x86_64/usr/local/bin/testOAWrapper $(TECHNOFILE) $(TESTDIR) 2>&1 | tee $@.log + valgrind ./$(M)/usr/local/bin/testOAWrapper $(TECHNOFILE) $(TESTDIR) 2>&1 | tee $@.log valgrind_full: compile - valgrind -v --leak-check=full --show-reachable=yes ./x86_64/usr/local/bin/testOAWrapper $(TECHNOFILE) $(TESTDIR) 2>&1 | tee $@.log + valgrind -v --leak-check=full --show-reachable=yes ./$(M)/usr/local/bin/testOAWrapper $(TECHNOFILE) $(TESTDIR) 2>&1 | tee $@.log mrproper: clean rm -rf $(TESTDIR) *.log .cadence cd sxlib2lef && make mrproper clean: - rm -rf x86_64 - + rm -rf $(M) .PHONY: clean mrproper valgrind ddd debug run compile all lefTest diff --git a/crlcore/src/ccore/openaccess/testParser/Makefile b/crlcore/src/ccore/openaccess/testParser/Makefile index f207d5cf..50a9650c 100644 --- a/crlcore/src/ccore/openaccess/testParser/Makefile +++ b/crlcore/src/ccore/openaccess/testParser/Makefile @@ -1,5 +1,6 @@ TECHNOFILE= /asim/chams/etc/chams/config.freePDK45.xml +M=$$(uname -m) all: compile @@ -7,7 +8,7 @@ compile: ./compile.sh run: - ./x86_64/usr/local/bin/testOAWrapper \ + ./$(M)/usr/local/bin/testOAWrapper \ "/dsk/l1/misc/caba/OA_BENCHMARKS/NangateOpenCellLibrary_PDKv1_3_v2009_07/openaccess" \ "NangateOpenCellLibrary" \ "/dsk/l1/misc/caba/OA_BENCHMARKS/NangateOpenCellLibrary_PDKv1_3_v2009_07/openaccess" \ @@ -17,7 +18,6 @@ mrproper: clean rm -rf *.log .cadence clean: - rm -rf x86_64 - + rm -rf $(M) .PHONY: clean mrproper compile all run