1e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! File: build_libcurl_pc.com 2e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 3e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! $Id:$ 4e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 5e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! Build the libcurl.pc file from the libcurl.pc.in file 6e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 7e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! Copyright 2013, John Malmberg 8e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 9e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! Permission to use, copy, modify, and/or distribute this software for any 10e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! purpose with or without fee is hereby granted, provided that the above 11e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! copyright notice and this permission notice appear in all copies. 12e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 13e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 14e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 15e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 16e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 17e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 18e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT 19e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 20e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 21e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 22e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 15-Jun-2013 J. Malmberg 23e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 24e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$!=========================================================================== 25e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 26e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! Skip this if the libcurl.pc already exists. 27e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if f$search("[--]libcurl.pc") .nes. "" then goto all_exit 28e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 29e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! Need to know the kit type. 30e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ kit_name = f$trnlnm("GNV_PCSI_KITNAME") 31e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if kit_name .eqs. "" 32e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 33e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write sys$output "@MAKE_PCSI_CURL_KIT_NAME.COM has not been run." 34e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ goto all_exit 35e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 36e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 37e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 38e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! Parse the kit name into components. 39e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$!--------------------------------------- 40e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ producer = f$element(0, "-", kit_name) 41e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ base = f$element(1, "-", kit_name) 42e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ product = f$element(2, "-", kit_name) 43e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ mmversion = f$element(3, "-", kit_name) 44e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ majorver = f$extract(0, 3, mmversion) 45e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ minorver = f$extract(3, 2, mmversion) 46e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ updatepatch = f$element(4, "-", kit_name) 47e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if updatepatch .eqs. "-" then updatepatch = "" 48e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 49e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! kit type of "D" means a daily build 50e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ kit_type = f$edit(f$extract(0, 1, majorver), "upcase") 51e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 52e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ pc_file_in = "[--]libcurl^.pc.in" 53e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 54e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if f$search(pc_file_in) .eqs. "" 55e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 56e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ pc_file_in = "[--]libcurl.pc$5nin" 57e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if f$search(pc_file_in) .eqs. "" 58e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 59e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ pc_file_in = "[--]libcurl.pc_in" 60e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if f$search(pc_file_in) .eqs. "" 61e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 62e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write sys$output "Can not find libcurl.pc.in." 63e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ goto all_exit 64e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 65e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 66e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 67e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 68e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if (f$getsyi("HW_MODEL") .lt. 1024) 69e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 70e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ arch_name = "VAX" 71e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ else 72e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ arch_name = "" 73e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ arch_name = arch_name + f$edit(f$getsyi("ARCH_NAME"), "UPCASE") 74e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if (arch_name .eqs. "") then arch_name = "UNK" 75e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 76e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 77e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 78e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ curl_version = "0.0.0" 79e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ open/read vf [--.src]tool_version.h 80e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$version_loop: 81e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ read vf/end=version_loop_end line_in 82e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if line_in .eqs. "" then goto version_loop 83e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ key = f$element(0, " ", line_in) 84e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if key .nes. "#define" then goto version_loop 85e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ name = f$element(1, " ", line_in) 86e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if name .eqs. "VERSION" 87e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 88e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ curl_version = f$element(2, " ", line_in) - """" - """" 89e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ else 90e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ goto version_loop 91e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 92e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$version_loop_end: 93e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ close vf 94e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 95e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 96e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ create [--]libcurl.pc 97e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ open/append pco [--]libcurl.pc 98e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ open/read pci 'pc_file_in' 99e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$pc_file_loop: 100e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ read pci/end=pc_file_loop_end line_in 101e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 102e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! blank lines 103e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if line_in .eqs. "" 104e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 105e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write pco "" 106e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ goto pc_file_loop 107e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 108e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 109e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! comment lines 110e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ key = f$extract(0, 1, line_in) 111e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if key .eqs. "#" 112e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 113e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write pco line_in 114e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ goto pc_file_loop 115e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 116e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 117e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! Special handling for libs. 118e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if f$locate("Libs:", line_in) .eq. 0 119e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 120e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write pco "#",line_in 121e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ goto pc_file_loop 122e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 123e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! No substitution line 124e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ line_in_len = f$length(line_in) 125e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if f$locate("@", line_in) .ge. line_in_len 126e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 127e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write pco line_in 128e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ goto pc_file_loop 129e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 130e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 131e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if f$locate("@prefix@", line_in) .lt line_in_len 132e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 133e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if kit_type .nes. "D" 134e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 135e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write pco "prefix=/usr" 136e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ else 137e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write pco "prefix=/beta" 138e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 139e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ goto pc_file_loop 140e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 141e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if f$locate("@exec_prefix@", line_in) .lt line_in_len 142e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 143e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if kit_type .nes. "D" 144e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 145e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write pco "exec_prefix=/usr" 146e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ else 147e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write pco "exec_prefix=/beta" 148e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 149e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ goto pc_file_loop 150e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 151e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if f$locate("@libdir@", line_in) .lt line_in_len 152e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 153e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write pco "libdir=$(exec_prefix}/lib" 154e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ goto pc_file_loop 155e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 156e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if f$locate("@includedir@", line_in) .lt line_in_len 157e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 158e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write pco "includedir=$(prefix}/include" 159e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ goto pc_file_loop 160e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 161e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if f$locate("@SUPPORT_PROTOCOLS@", line_in) .lt line_in_len 162e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 163e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ proto1 = "DICT FILE FTP FTPS GOPHER HTTP HTTPS IMAP IMAPS" 164e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ proto2 = " LDAP LDAPS POP3 POP3S RTSP SMTP SMTPS TELNET TFTP" 165e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ proto = proto1 + proto2 166e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write pco "supported_protocols=""" + proto + """" 167e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ goto pc_file_loop 168e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 169e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if f$locate("@SUPPORT_FEATURES@", line_in) .lt line_in_len 170e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 171e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if arch_name .eqs. "VAX" 172e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 173e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write pco "supported_features=""SSL libz NTLM""" 174e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ else 175e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write pco "supported_features=""SSL IPv6 libz NTLM""" 176e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 177e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ goto pc_file_loop 178e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 179e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if f$locate("@CURLVERSION@", line_in) .lt line_in_len 180e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 181e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write pco "Version: ''curl_version'" 182e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ goto pc_file_loop 183e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 184e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if f$locate("@LIBCURL_LIBS@", line_in) .lt line_in_len 185e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 186e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if arch_name .eqs. "VAX" 187e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 188e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write pco "Libs.private: -lssl -lcrypto -lz" 189e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ else 190e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write pco "Libs.private: -lssl -lcrypto -lgssapi -lz" 191e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 192e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ goto pc_file_loop 193e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 194e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ if f$locate("@CPPFLAG_CURL_STATICLIB@", line_in) .lt line_in_len 195e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ then 196e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ write pco "Cflags: -I${includedir} -DCURL_STATICLIB" 197e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ goto pc_file_loop 198e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ endif 199e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 200e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$pc_file_loop_end: 201e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ close pco 202e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ close pci 203e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$! 204e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$all_exit: 205e6cd738ed3716c02557fb3a47515244e949ade39Bertrand SIMONNET$ exit 206