<HTML>
<HEAD>
<TITLE>Re: [CMake] Autotools conversion: case statement</TITLE>
</HEAD>
<BODY>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>For this particular use, doesn&#8217;t the FindThreads package do this for you?<BR>
<BR>
-Ken<BR>
<BR>
<BR>
On 12/17/09 7:43 AM, &quot;Nicola Brisotto&quot; &lt;<a href="nicolabrisotto@gmail.com">nicolabrisotto@gmail.com</a>&gt; wrote:<BR>
<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>Hello,<BR>
I've an autotools script to convert to cmake. It has a lot of long case statement. Any tips to easily convert this statement?<BR>
<BR>
Here an example:<BR>
<BR>
case &quot;$THREADS&quot; in<BR>
&nbsp;no | none | single)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;THREADS=none<BR>
&nbsp;&nbsp;&nbsp;&nbsp;;;<BR>
&nbsp;posix | pthreads)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;THREADS=posix<BR>
&nbsp;&nbsp;&nbsp;&nbsp;THREADDLLIBS=-lpthread<BR>
&nbsp;&nbsp;&nbsp;&nbsp;case &quot;$host&quot; in<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x86-*-linux* | ia64-*-linux* | i586-*-linux* | i686-*-linux* | x86_64-*-linux* | alpha-*-linux* | sparc*-*-linux*)<BR>
AC_DEFINE(GC_LINUX_THREADS)<BR>
AC_DEFINE(_REENTRANT)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if test &quot;${enable_parallel_mark}&quot; = yes; then<BR>
&nbsp;&nbsp;AC_DEFINE(PARALLEL_MARK)<BR>
fi<BR>
AC_DEFINE(THREAD_LOCAL_ALLOC)<BR>
AC_MSG_WARN(&quot;Explicit GC_INIT() calls may be required.&quot;);<BR>
;;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*-*-linux*)<BR>
AC_DEFINE(GC_LINUX_THREADS)<BR>
AC_DEFINE(_REENTRANT)<BR>
;;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*-*-aix*)<BR>
AC_DEFINE(GC_AIX_THREADS)<BR>
AC_DEFINE(_REENTRANT)<BR>
;;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*-*-hpux11*)<BR>
AC_MSG_WARN(&quot;Only HP/UX 11 POSIX threads are supported.&quot;)<BR>
AC_DEFINE(GC_HPUX_THREADS)<BR>
AC_DEFINE(_POSIX_C_SOURCE,199506L)<BR>
if test &quot;${enable_parallel_mark}&quot; = yes; then<BR>
&nbsp;&nbsp;AC_DEFINE(PARALLEL_MARK)<BR>
fi<BR>
AC_DEFINE(THREAD_LOCAL_ALLOC)<BR>
AC_MSG_WARN(&quot;Explicit GC_INIT() calls may be required.&quot;);<BR>
THREADDLLIBS=&quot;-lpthread -lrt&quot;<BR>
# HPUX needs REENTRANT for the _r calls.<BR>
AC_DEFINE(_REENTRANT, 1, [Required define if using POSIX threads.])<BR>
;;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*-*-hpux10*)<BR>
AC_MSG_WARN(&quot;Only HP-UX 11 POSIX threads are supported.&quot;)<BR>
;;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*-*-openbsd*)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AC_DEFINE(GC_OPENBSD_THREADS)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;THREADDLLIBS=-pthread<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;INCLUDES=&quot;$INCLUDES -pthread&quot;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;openbsd_threads=true<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*-*-freebsd*)<BR>
AC_MSG_WARN(&quot;FreeBSD does not yet fully support threads with Boehm GC.&quot;)<BR>
AC_DEFINE(GC_FREEBSD_THREADS)<BR>
INCLUDES=&quot;$INCLUDES -pthread&quot;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*-*-kfreebsd*-gnu)<BR>
AC_DEFINE(GC_FREEBSD_THREADS)<BR>
INCLUDES=&quot;$INCLUDES -pthread&quot;<BR>
THREADDLLIBS=-pthread<BR>
AC_DEFINE(_REENTRANT)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if test &quot;${enable_parallel_mark}&quot; = yes; then<BR>
&nbsp;&nbsp;AC_DEFINE(PARALLEL_MARK)<BR>
fi<BR>
AC_DEFINE(THREAD_LOCAL_ALLOC)<BR>
AC_DEFINE(USE_COMPILER_TLS)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*-*-gnu*)<BR>
AC_DEFINE(GC_GNU_THREADS)<BR>
AC_DEFINE(_REENTRANT)<BR>
AC_DEFINE(THREAD_LOCAL_ALLOC)<BR>
;;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*-*-netbsd*)<BR>
AC_MSG_WARN(&quot;Only on NetBSD 2.0 or later.&quot;)<BR>
AC_DEFINE(GC_NETBSD_THREADS)<BR>
AC_DEFINE(_REENTRANT)<BR>
AC_DEFINE(_PTHREADS)<BR>
THREADDLLIBS=&quot;-lpthread -lrt&quot;<BR>
;;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*-*-solaris*)<BR>
AC_DEFINE(GC_SOLARIS_THREADS)<BR>
AC_DEFINE(THREAD_LOCAL_ALLOC)<BR>
THREADDLLIBS=&quot;-lpthread -lrt&quot;<BR>
if test &quot;$GCC&quot; != yes; then<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CFLAGS=&quot;$CFLAGS -O&quot;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;need_atomic_ops_asm=true<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fi<BR>
;;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*-*-irix*)<BR>
AC_DEFINE(GC_IRIX_THREADS)<BR>
;;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*-*-cygwin*)<BR>
AC_DEFINE(GC_THREADS)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if test &quot;${enable_parallel_mark}&quot; = yes; then<BR>
&nbsp;&nbsp;AC_DEFINE(PARALLEL_MARK)<BR>
fi<BR>
AC_DEFINE(THREAD_LOCAL_ALLOC)<BR>
# Cygwin doesn't have a real libpthread, so Libtool can't link<BR>
# against it.<BR>
THREADDLLIBS=&quot;&quot;<BR>
win32_threads=true<BR>
;;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*-*-darwin*)<BR>
AC_DEFINE(GC_DARWIN_THREADS)<BR>
AC_DEFINE(THREAD_LOCAL_ALLOC)<BR>
AC_MSG_WARN(&quot;Explicit GC_INIT() calls may be required.&quot;);<BR>
# Parallel-mark is currently unreliable on Darwin; ignore request<BR>
# if test &quot;${enable_parallel_mark}&quot; = yes; then<BR>
# &nbsp;&nbsp;AC_DEFINE(PARALLEL_MARK)<BR>
# fi<BR>
darwin_threads=true<BR>
;;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*-*-osf*)<BR>
AC_DEFINE(GC_OSF1_THREADS)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if test &quot;${enable_parallel_mark}&quot; = yes; then<BR>
&nbsp;&nbsp;AC_DEFINE(PARALLEL_MARK)<BR>
&nbsp;&nbsp;AC_DEFINE(THREAD_LOCAL_ALLOC)<BR>
&nbsp;&nbsp;AC_MSG_WARN(&quot;Explicit GC_INIT() calls may be required.&quot;);<BR>
&nbsp;&nbsp;# May want to enable it in other cases, too.<BR>
&nbsp;&nbsp;# Measurements havent yet been done.<BR>
fi<BR>
INCLUDES=&quot;$INCLUDES -pthread&quot;<BR>
THREADDLLIBS=&quot;-lpthread -lrt&quot;<BR>
;;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*)<BR>
AC_MSG_ERROR(&quot;Pthreads not supported by the GC on this platform.&quot;)<BR>
;;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;esac<BR>
&nbsp;&nbsp;&nbsp;&nbsp;;;<BR>
&nbsp;win32)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;AC_DEFINE(GC_THREADS)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;if test &quot;${enable_parallel_mark}&quot; = yes; then<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AC_DEFINE(PARALLEL_MARK)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AC_DEFINE(THREAD_LOCAL_ALLOC)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;fi<BR>
&nbsp;&nbsp;&nbsp;&nbsp;win32_threads=true<BR>
&nbsp;&nbsp;&nbsp;&nbsp;AC_DEFINE([EMPTY_GETENV_RESULTS], [1],<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Wine getenv may not return NULL for missing entry.])<BR>
&nbsp;&nbsp;&nbsp;&nbsp;;;<BR>
&nbsp;dgux386)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;THREADS=dgux386<BR>
&nbsp;&nbsp;&nbsp;&nbsp;AC_MSG_RESULT($THREADDLLIBS)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;# Use pthread GCC &nbsp;switch<BR>
&nbsp;&nbsp;&nbsp;&nbsp;THREADDLLIBS=-pthread<BR>
&nbsp;&nbsp;&nbsp;&nbsp;if test &quot;${enable_parallel_mark}&quot; = yes; then<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AC_DEFINE(PARALLEL_MARK)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;fi<BR>
&nbsp;&nbsp;&nbsp;&nbsp;AC_DEFINE(THREAD_LOCAL_ALLOC)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;AC_MSG_WARN(&quot;Explicit GC_INIT() calls may be required.&quot;);<BR>
&nbsp;&nbsp;&nbsp;&nbsp;AC_DEFINE([GC_DGUX386_THREADS], 1,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Define to enable support for DB/UX threads on i386.])<BR>
&nbsp;&nbsp;&nbsp;&nbsp;AC_DEFINE([DGUX_THREADS], 1,<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[Define to enable support for DB/UX threads.])<BR>
&nbsp;&nbsp;&nbsp;&nbsp;# Enable _POSIX4A_DRAFT10_SOURCE with flag -pthread<BR>
&nbsp;&nbsp;&nbsp;&nbsp;INCLUDES=&quot;-pthread $INCLUDES&quot;<BR>
&nbsp;&nbsp;&nbsp;&nbsp;;;<BR>
&nbsp;aix)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;THREADS=posix<BR>
&nbsp;&nbsp;&nbsp;&nbsp;THREADDLLIBS=-lpthread<BR>
&nbsp;&nbsp;&nbsp;&nbsp;AC_DEFINE(GC_AIX_THREADS)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;AC_DEFINE(_REENTRANT)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;;;<BR>
&nbsp;decosf1 | irix | mach | os2 | solaris | dce | vxworks)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;AC_MSG_ERROR(thread package $THREADS not yet supported)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;;;<BR>
&nbsp;*)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;AC_MSG_ERROR($THREADS is an unknown thread package)<BR>
&nbsp;&nbsp;&nbsp;&nbsp;;;<BR>
esac<BR>
<BR>
<BR>
</SPAN></FONT><FONT FACE="Helvetica, Verdana, Arial"><SPAN STYLE='font-size:12pt'>Nicola Brisotto<BR>
vcard &lt;<a href="http://www.breezit.net/vcards/NicolaBrisotto.vcf">http://www.breezit.net/vcards/NicolaBrisotto.vcf</a>&gt; <BR>
<BR>
<BR>
<BR>
</SPAN></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
<BR>
<BR>
<BR>
<BR>
</SPAN></FONT></BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
</SPAN></FONT><FONT SIZE="2"><FONT FACE="Consolas, Courier New, Courier"><SPAN STYLE='font-size:10pt'><BR>
&nbsp;&nbsp;&nbsp;**** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kenneth Moreland<BR>
&nbsp;&nbsp;&nbsp;&nbsp;*** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sandia National Laboratories<BR>
*********** &nbsp;<BR>
*** *** *** &nbsp;email: <a href="kmorel@sandia.gov">kmorel@sandia.gov</a><BR>
** &nbsp;*** &nbsp;** &nbsp;phone: (505) 844-8919<BR>
&nbsp;&nbsp;&nbsp;&nbsp;*** &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;web: &nbsp;&nbsp;<a href="http://www.cs.unm.edu/~kmorel">http://www.cs.unm.edu/~kmorel</a><BR>
</SPAN></FONT></FONT><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
</SPAN></FONT>
</BODY>
</HTML>