var confs = new Array(); confs['AC_APPLE_UNIVERSAL_BUILD'] = -1; confs['ANONYMOUS_MAP'] = -1; confs['BIND_8_COMPAT'] = -1; confs['BUILD_CLAMD'] = '1'; confs['CLAMAVGROUP'] = '"clamav"'; confs['CLAMAVUSER'] = '"clamav"'; confs['CLAMUKO'] = -1; confs['CL_DEBUG'] = -1; confs['CL_EXPERIMENTAL'] = -1; confs['CL_THREAD_SAFE'] = '1'; confs['CONFDIR'] = '"C:\\\\ClamAV"'; confs['CURSES_INCLUDE'] = -1; confs['C_AIX'] = -1; confs['C_BEOS'] = -1; confs['C_BIGSTACK'] = -1; confs['C_BSD'] = -1; confs['C_DARWIN'] = -1; confs['C_GNU_HURD'] = -1; confs['C_HPUX'] = -1; confs['C_INTERIX'] = -1; confs['C_IRIX'] = -1; confs['C_KFREEBSD_GNU'] = -1; confs['C_LINUX'] = -1; confs['C_OS2'] = -1; confs['C_OSF'] = -1; confs['C_QNX6'] = -1; confs['C_SOLARIS'] = -1; confs['DATADIR'] = '"c:\\\\ClamAV\\\\db"'; confs['DEFAULT_FD_SETSIZE'] = '1024'; confs['FDPASS_NEED_XOPEN'] = -1; confs['FILEBUFF'] = '8192'; confs['FPU_WORDS_BIGENDIAN'] = '0'; confs['FRESHCLAM_DNS_FIX'] = -1; confs['FRESHCLAM_NO_CACHE'] = -1; confs['HAVE_ARGZ_ADD'] = -1; confs['HAVE_ARGZ_APPEND'] = -1; confs['HAVE_ARGZ_COUNT'] = -1; confs['HAVE_ARGZ_CREATE_SEP'] = -1; confs['HAVE_ARGZ_H'] = -1; confs['HAVE_ARGZ_INSERT'] = -1; confs['HAVE_ARGZ_NEXT'] = -1; confs['HAVE_ARGZ_STRINGIFY'] = -1; confs['HAVE_ATTRIB_ALIGNED'] = -1; confs['HAVE_ATTRIB_PACKED'] = -1; confs['HAVE_BZLIB_H'] = '1'; confs['HAVE_CLOSEDIR'] = '1'; confs['HAVE_CONTROL_IN_MSGHDR'] = '1' /* FIXME */; confs['HAVE_CTIME_R'] = '1' /* FIXME */; confs['HAVE_CTIME_R_2'] = '1' /* FIXME */; confs['HAVE_CTIME_R_3'] = -1; confs['HAVE_DECL_CYGWIN_CONV_PATH'] = -1; confs['HAVE_DIRENT_H'] = '1'; confs['HAVE_DLD'] = -1; confs['HAVE_DLD_H'] = -1; confs['HAVE_DLERROR'] = '1' /* FIXME */; confs['HAVE_DLFCN_H'] = '1'; confs['HAVE_DL_H'] = -1; confs['HAVE_DYLD'] = -1; confs['HAVE_ERROR_T'] = '1' /* FIXME */; confs['HAVE_FD_PASSING'] = -1; confs['HAVE_FSEEKO'] = '1' /* FIXME */; confs['HAVE_GETADDRINFO'] = '1'; confs['HAVE_GETPAGESIZE'] = '1'; confs['HAVE_GRP_H'] = -1; confs['HAVE_ICONV'] = -1; confs['HAVE_INET_NTOP'] = '1'; confs['HAVE_INITGROUPS'] = -1; confs['HAVE_INTTYPES_H'] = -1; confs['HAVE_IN_ADDR_T'] = -1; confs['HAVE_IN_PORT_T'] = '1'; confs['HAVE_LIBCHECK'] = -1; confs['HAVE_LIBDL'] = '1' /* FIXME */; confs['HAVE_LIBDLLOADER'] = '1' /* FIXME */; confs['HAVE_LIBMILTER_MFAPI_H'] = -1; confs['HAVE_LIBNCURSES'] = -1; confs['HAVE_LIBPDCURSES'] = -1; confs['HAVE_LIBZ'] = '1'; confs['HAVE_LIMITS_H'] = '1' /* FIXME */; confs['HAVE_LTDL'] = '1'; confs['HAVE_MACH_O_DYLD_H'] = -1; confs['HAVE_MADVISE'] = -1; confs['HAVE_MALLINFO'] = -1; confs['HAVE_MALLOC_H'] = '1'; confs['HAVE_MEMCPY'] = '1'; confs['HAVE_MEMORY_H'] = '1' /* FIXME */; confs['HAVE_MKSTEMP'] = '1' /* FIXME */; confs['HAVE_MMAP'] = -1; confs['HAVE_NDIR_H'] = -1; confs['HAVE_OPENDIR'] = '1'; confs['HAVE_POLL'] = '1'; confs['HAVE_POLL_H'] = '1'; confs['HAVE_PRAGMA_PACK'] = '1'; confs['HAVE_PRAGMA_PACK_HPPA'] = -1; confs['HAVE_PRELOADED_SYMBOLS'] = '1' /* FIXME */; confs['HAVE_PTHREAD_YIELD'] = '1'; confs['HAVE_PWD_H'] = -1; confs['HAVE_READDIR'] = '1'; confs['HAVE_READDIR_R_2'] = -1; confs['HAVE_READDIR_R_3'] = -1; confs['HAVE_RECVMSG'] = '1' /* FIXME */; confs['HAVE_RESOLV_H'] = '1'; confs['HAVE_SAR'] = '1'; confs['HAVE_SCHED_YIELD'] = -1; confs['HAVE_SENDMSG'] = '1'; confs['HAVE_SETGROUPS'] = '1' /* FIXME */; confs['HAVE_SETSID'] = '1'; confs['HAVE_SHL_LOAD'] = -1; confs['HAVE_SNPRINTF'] = '1'; confs['HAVE_STDBOOL_H'] = -1; confs['HAVE_STDINT_H'] = -1; confs['HAVE_STDLIB_H'] = '1'; confs['HAVE_STRCASESTR'] = -1 /* FIXME */; confs['HAVE_STRERROR_R'] = '1' /* FIXME */; confs['HAVE_STRINGS_H'] = -1; confs['HAVE_STRING_H'] = '1'; confs['HAVE_STRLCAT'] = -1 /* FIXME */; confs['HAVE_STRLCPY'] = -1 /* FIXME */; confs['HAVE_SYSCONF_SC_PAGESIZE'] = -1; confs['HAVE_SYSTEM_TOMMATH'] = -1; confs['HAVE_SYS_DL_H'] = -1; confs['HAVE_SYS_FILIO_H'] = -1; confs['HAVE_SYS_INTTYPES_H'] = -1; confs['HAVE_SYS_INT_TYPES_H'] = -1; confs['HAVE_SYS_MMAN_H'] = -1; confs['HAVE_SYS_PARAM_H'] = -1; confs['HAVE_SYS_SELECT_H'] = -1; confs['HAVE_SYS_STAT_H'] = '1'; confs['HAVE_SYS_TYPES_H'] = '1'; confs['HAVE_SYS_UIO_H'] = -1; confs['HAVE_TERMIOS_H'] = -1; confs['HAVE_UNISTD_H'] = -1; confs['HAVE_VSNPRINTF'] = '1'; confs['HAVE_WORKING_ARGZ'] = -1; confs['LIBCLAMAV_FULLVER'] = '"6.0.4"'; confs['LIBCLAMAV_MAJORVER'] = '6'; confs['LTDL_DLOPEN_DEPLIBS'] = -1; confs['LT_DLSEARCH_PATH'] = '""'; confs['LT_LIBEXT'] = '"dll"'; confs['LT_MODULE_EXT'] = '".dll"'; confs['LT_MODULE_PATH_VAR'] = '"LD_LIBRARY_PATH"'; confs['LT_OBJDIR'] = '""'; confs['NDEBUG'] = '1'; confs['NEED_USCORE'] = -1; confs['NOBZ2PREFIX'] = -1; confs['NO_FD_SET'] = -1; confs['PACKAGE'] = 'PACKAGE_NAME'; confs['PACKAGE_BUGREPORT'] = '"http://bugs.clamav.net/"'; confs['PACKAGE_NAME'] = '"ClamAV"'; confs['PACKAGE_STRING'] = '"ClamAV devel"'; confs['PACKAGE_TARNAME'] = '"clamav"'; confs['PACKAGE_URL'] = '"http://www.clamav.net/"'; confs['PACKAGE_VERSION'] = '"devel"'; confs['SCANBUFF'] = '131072'; confs['SETPGRP_VOID'] = '1'; confs['SIZEOF_INT'] = '4'; confs['SIZEOF_LONG'] = '4'; confs['SIZEOF_LONG_LONG'] = '8'; confs['SIZEOF_SHORT'] = '2'; confs['SIZEOF_VOID_P'] = '4'; confs['STDC_HEADERS'] = '1'; confs['SUPPORT_IPv6'] = -1; confs['USE_MPOOL'] = -1; confs['USE_SYSLOG'] = -1; confs['VERSION_SUFFIX'] = '""'; confs['WORDS_BIGENDIAN'] = '0'; confs['_LARGEFILE_SOURCE'] = -1; confs['_POSIX_PII_SOCKET'] = -1; confs['_REENTRANT'] = '1' /* FIXME */; confs['_THREAD_SAFE'] = -1; confs['__error_t_defined'] = -1; confs['const'] = -1; confs['error_t'] = -1; confs['inline'] = '_inline'; confs['off_t'] = -1; confs['restrict'] = -1; confs['socklen_t'] = -1; var W = WScript; var F; try { F = W.CreateObject('Scripting.FileSystemObject'); } catch(e) { W.Echo('FSO creation failed: ' + e.message); W.Quit(1); } var f; try { f = F.GetFile(WScript.ScriptFullName); } catch(e) { W.Echo('I don\'t exit: ' + e.message); W.Quit(1); } var dir_win32 = f.ParentFolder; try { f = F.GetFolder(dir_win32); } catch(e) { W.Echo('GetFolder failed: ' + e.message); W.Quit(1); } var dir_root = f.ParentFolder; var file_clconfin = dir_root + '\\clamav-config.h.in'; try { f = F.OpenTextFile(file_clconfin, 1, false) } catch (e) { W.Echo('Cannot open '+file_clconfin+' for reading: '+ e.message); W.Quit(1); } var file_clconftmp = dir_root + '\\win32\\clamav-config.h.tmp'; var of; try { of = F.CreateTextFile(file_clconftmp, true); } catch(e) { W.Echo('Cannot open '+file_clconftmp+' for writing: ' + e.message); W.Quit(1); } W.Echo('Generating clamav-config.h...'); of.WriteLine('/* AUTOMATICALLY GENERATED BY configure.js */'); var rx = new RegExp('^#\\s*undef (.*)'); while(!f.AtEndOfStream) { var ln = f.ReadLine(); if(!rx.exec(ln)) { of.WriteLine(ln); continue; } var c = RegExp.$1; if(c == 'VERSION') { var D = new Date(); var y = D.getYear() + ''; var m = (D.getMonth()+1) + ''; var d = (D.getDay()+1) + ''; if(m.length == 1) m = '0' + m; if(d.length == 1) d = '0' + d; of.WriteLine('#define VERSION "devel-' + y + m + d + '"'); continue; } if(!confs[c]) { W.Echo('WARNING: Config option "' + c + '" is unknown'); of.WriteLine('/* #undef ' + c + ' */'); continue; } if(confs[c] == -1) { of.WriteLine('/* #undef ' + c + ' */'); } else { of.WriteLine('#define ' + c + ' ' + confs[c]); } } f.close(); of.close(); var file_clconfout = dir_root + '\\win32\\clamav-config.h'; if(F.FileExists(file_clconfout)) F.DeleteFile(file_clconfout, true); try { F.MoveFile(file_clconftmp, file_clconfout); } catch(e) { W.Echo('Cannot rename '+ file_clconftmp +' to ' + file_clconfout + ': ' + e.message); W.Quit(1); } var file_versionsta = dir_root + '\\libclamav\\version.h.static'; var file_versionout = dir_root + '\\libclamav\\version.h'; W.Echo('Generating version.h'); if(F.FileExists(file_versionout)) F.DeleteFile(file_versionout, true); if(F.FileExists(file_versionsta)) { try { F.CopyFile(file_versionsta, file_versionout, true); } catch(e) { W.Echo('Cannot copy '+ file_versionsta +' to ' + file_versionout + ': ' + e.message); W.Quit(1); } } else { var S; var version = ''; try { S = W.CreateObject('WScript.Shell'); } catch(e) { W.Echo('No Shell available: ' + e.message); W.Quit(1); } try { var git = S.Exec('git describe --always'); version = git.StdOut.ReadAll(); while(git.Status == 0) { W.Sleep(100); } if(git.ExitCode != 0) { W.Echo('WARNING: git describe returned ' + git.ExitCode); version = ''; } else { version = '#define REPO_VERSION "devel-' + version.replace(/[\r\n]+$/, '') + '"'; } } catch (e) { } of = F.CreateTextFile(file_versionout, true); if(!of) { W.Echo('Cannot open '+file_versionout+' for writing'); W.Quit(1); } of.WriteLine('/* AUTOMATICALLY GENERATED BY configure.js */'); if(version != '') of.WriteLine(version); of.close(); } W.Echo('Work complete'); W.Quit(0);