⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configure.pl

📁 含有多种公开密钥算法、多种块加密、多种数据流加密、多种HASH函数、多种CheckSum校验、多种MAC校验等几十种加密算法的程序
💻 PL
📖 第 1 页 / 共 5 页
字号:
   if($make_shared) { $lib_flags .= ' $(SO_OBJ_FLAGS)';                      $libs .= ' $(SHARED_LIB)'; }##################### COMMON CODE (PARTIALLY) ######################   sub file_list {      my ($spaces, $put_in, $from, $to, %files) = @_;      my $len = $spaces;      my $list;      foreach (sort keys %files) {         my $file = $_;         my $dir = $put_in;         if(!defined($dir)) { $dir = $files{$_}; }         if($len > 60)            { $list .= "\\\n" . ' 'x$spaces; $len = $spaces; }         if(defined($from) and defined($to)) { $file =~ s/$from/$to/; }         if(defined($dir))            { $list .= catfile ($dir, $file) . ' ';              $len += length($file) + length($dir); }         else            { $list .= $file . ' ';              $len += length($file); }      }      return $list;   }   my $includes = file_list(16, undef, undef, undef, %includes);   my $lib_obj = file_list(16, $BUILD_LIB_DIR, '.cpp', '.'.$obj_suffix,                           %src, %added_src);   my $check_obj = file_list(16, $BUILD_CHECK_DIR, '.cpp', '.'.$obj_suffix,                             %check);   my $doc_list = file_list(16, undef, undef, undef, %docs);   my $remove_patched_files = file_list(16, undef, undef, undef,      map { $_ => catdir($MOD_DIR, $patched{$_}) } keys %patched);   if(defined($remove_patched_files))      { $remove_patched_files = "$__TAB__\$(RM) $remove_patched_files\n"; }   else { $remove_patched_files = ""; }##################### / COMMON CODE (PARTIALLY) ######################   print_header($makefile, $COMMENT_CHAR, 'Compiler Options');   print $makefile <<END_OF_MAKEFILE_HEADER;CXX           = $ccLIB_OPT       = $lib_optCHECK_OPT     = $check_optMACH_OPT      = $mach_optLANG_FLAGS    = $lang_flagsWARN_FLAGS    = $warn_flagsSO_OBJ_FLAGS  = $so_objSO_LINK_FLAGS = $so_linkLINK_TO       = $link_toEND_OF_MAKEFILE_HEADER   print_header($makefile, $COMMENT_CHAR, 'Version Numbers');   print $makefile <<END_OF_VERSIONS;MAJOR         = $MAJOR_VERSIONMINOR         = $MINOR_VERSIONPATCH         = $PATCH_VERSIONVERSION       = \$(MAJOR).\$(MINOR).\$(PATCH)END_OF_VERSIONS   print_header($makefile, $COMMENT_CHAR, 'Installation Settings');   print $makefile <<END_OF_INSTALL_SETTINGS;INSTALLROOT   = $install_rootLIBDIR        = \$(INSTALLROOT)/$lib_dirHEADERDIR     = \$(INSTALLROOT)/$header_dir/botanDOCDIR        = \$(INSTALLROOT)/$doc_dir/botan-\$(VERSION)OWNER         = rootGROUP         = rootDATA_MODE     = 644EXEC_MODE     = 755END_OF_INSTALL_SETTINGS   print_header($makefile, $COMMENT_CHAR, 'Aliases for Common Programs');   print $makefile <<END_OF_COMMAND_ALIASES;AR            = $ar_commandCD            = \@cdECHO          = \@echoINSTALL       = installINSTALL_CMD   = \$(INSTALL) -c -o \$(OWNER) -g \$(GROUP) -mLN            = ln -fsMKDIR         = \@mkdirMKDIR_INSTALL = \@umask 022; mkdir -p -m \$(EXEC_MODE)RANLIB        = \@ranlibRM            = \@rm -fRM_R          = \@rm -rfEND_OF_COMMAND_ALIASES   print_header($makefile, $COMMENT_CHAR, 'File Lists');   print $makefile <<END_OF_FILE_LISTS;LIB_FLAGS     = $lib_flagsCHECK_FLAGS   = \$(CHECK_OPT) \$(LANG_FLAGS) \$(WARN_FLAGS)CHECK         = checkDOCS          = $doc_listHEADERS       = $includesLIBOBJS       = $lib_objCHECKOBJS     = $check_objLIBRARIES     = $libsLIBNAME       = libbotanSTATIC_LIB    = \$(LIBNAME).$static_lib_suffixEND_OF_FILE_LISTS   if($make_shared) {       print $makefile <<END_OF_SHARED_LIB_DECL;SHARED_LIB    = \$(LIBNAME)-\$(MAJOR).\$(MINOR).\$(PATCH).$so_suffixSONAME        = \$(LIBNAME)-\$(MAJOR).\$(MINOR).\$(PATCH).$so_suffixSYMLINK0      = \$(LIBNAME)-\$(MAJOR).\$(MINOR).\$(PATCH).$so_suffixSYMLINK1      = \$(LIBNAME)-\$(MAJOR).\$(MINOR).$so_suffixSYMLINK2      = \$(LIBNAME)-\$(MAJOR).$so_suffixSYMLINK3      = \$(LIBNAME).$so_suffixSYMLINKS      = \$(SYMLINK1) \$(SYMLINK2) \$(SYMLINK3)END_OF_SHARED_LIB_DECL   }   print $makefile "all: \$(LIBRARIES)\n\n";   print_header($makefile, $COMMENT_CHAR, 'Build Commands');   sub print_build_cmds {      my ($fh, $dir, $flags, $obj_suffix, %files) = @_;      foreach (sort keys %files) {         my $src_file = catfile ($files{$_}, $_);         my $obj_file = catfile ($dir, $_);         $obj_file =~ s/.cpp/.$obj_suffix/;         print $fh "$obj_file: $src_file\n",            "\t\$(CXX) -Iinclude/ $flags -c \$? -o \$@\n\n";      }   }   print_build_cmds($makefile, $BUILD_LIB_DIR,                    '$(LIB_FLAGS)', $obj_suffix, %src, %added_src);   print_build_cmds($makefile, $BUILD_CHECK_DIR,                    '$(CHECK_FLAGS)', $obj_suffix, %check);   print_header($makefile, $COMMENT_CHAR, 'Link Commands');   print $makefile <<END_OF_LINK_COMMANDS;\$(CHECK): \$(LIBRARIES) \$(CHECKOBJS)$__TAB__\$(CXX) \$(CHECKOBJS) -L. \$(LINK_TO) -lbotan -o \$(CHECK)$__TAB__\@./\$(CHECK) --validate\$(STATIC_LIB): \$(LIBOBJS)$__TAB__\$(RM) \$(STATIC_LIB)$__TAB__\$(AR) \$(STATIC_LIB) \$(LIBOBJS)END_OF_LINK_COMMANDS   if($use_ranlib) { print $makefile "$__TAB__\$(RANLIB) \$(STATIC_LIB)\n\n"; }   else { print $makefile "\n"; }   if($make_shared) {      print $makefile <<END_OF_SO_LINK_COMMAND;\$(SHARED_LIB): \$(LIBOBJS)$__TAB__\$(CXX) \$(SO_LINK_FLAGS) \$(LINK_TO) \$(LIBOBJS) -o \$(SHARED_LIB)$__TAB__\$(LN) \$(SYMLINK0) \$(SYMLINK1)$__TAB__\$(LN) \$(SYMLINK1) \$(SYMLINK2)$__TAB__\$(LN) \$(SYMLINK2) \$(SYMLINK3)END_OF_SO_LINK_COMMAND    }   print_header($makefile, $COMMENT_CHAR, 'Misc Targets');   print $makefile "static: \$(STATIC_LIB)\n\n";   if($make_shared) { print $makefile "shared: \$(SHARED_LIB)\n\n"; }   print_header($makefile, $COMMENT_CHAR, 'Fake Targets');   print $makefile <<END_OF_FAKE_TARGETS;.PHONY = clean distclean installclean:$__TAB__\$(RM_R) $BUILD_LIB_DIR/* $BUILD_CHECK_DIR/*$__TAB__\$(RM) \$(LIBRARIES) \$(SYMLINKS) \$(CHECK)distclean: clean$__TAB__\$(RM_R) $BUILD_DIR $CPP_INCLUDE_DIR$__TAB__\$(RM) $MAKE_FILE $CONFIG_H_FILE$remove_patched_filesEND_OF_FAKE_TARGETS   print_header($makefile, $COMMENT_CHAR, 'Install Commands');   print $makefile <<END_OF_INSTALL_SCRIPTS;install: \$(LIBRARIES)$__TAB__\$(ECHO) "Installing Botan into \$(INSTALLROOT)... "$__TAB__\$(MKDIR_INSTALL) \$(DOCDIR)$__TAB__\$(MKDIR_INSTALL) \$(HEADERDIR)$__TAB__\$(CD) \$(INSTALLROOT)/include; \$(LN) botan opencl$__TAB__\$(MKDIR_INSTALL) \$(LIBDIR)$__TAB__\@for i in \$(DOCS); do \\$__TAB__   \$(INSTALL_CMD) \$(DATA_MODE) \$\$i \$(DOCDIR); \\$__TAB__ done$__TAB__\@for i in \$(HEADERS); do \\$__TAB__   \$(INSTALL_CMD) \$(DATA_MODE) \$\$i \$(HEADERDIR); \\$__TAB__ done$__TAB__\@\$(INSTALL_CMD) \$(DATA_MODE) \$(STATIC_LIB) \$(LIBDIR)END_OF_INSTALL_SCRIPTS   if($make_shared) {      print $makefile <<END_OF_SYMLINKS;$__TAB__\@\$(INSTALL_CMD) \$(EXEC_MODE) \$(SHARED_LIB) \$(LIBDIR)$__TAB__\$(CD) \$(LIBDIR); \$(LN) \$(SYMLINK0) \$(SYMLINK1)$__TAB__\$(CD) \$(LIBDIR); \$(LN) \$(SYMLINK1) \$(SYMLINK2)$__TAB__\$(CD) \$(LIBDIR); \$(LN) \$(SYMLINK2) \$(SYMLINK3)$__TAB__\$(CD) \$(LIBDIR); \$(LN) \$(SYMLINK3) libopencl.soEND_OF_SYMLINKS   }   else { print $makefile "\n"; }}################################################### Print a NMAKE-style makefile                   ###################################################sub print_nmake_makefile {   my ($makefile, $cc,       $lib_opt, $check_opt, $mach_opt,       $lang_flags, $warn_flags,       undef, # $make_shared       undef, # $so_obj       undef, # $so_link       $obj_suffix,       $so_suffix,       $static_lib_suffix,       undef, # $ar_command       undef, # $use_ranlib       $src_hash, $check_hash, $include_hash, $patched_hash, $docs,       $install_root, $header_dir, $lib_dir, $doc_dir,       $lib_list) = @_;   ##################################################   # Some constants                                 #   ##################################################   my $__TAB__ = "\t";   my $COMMENT_CHAR = '#';   ##################################################   # Convert the references to hashes               #   ##################################################   my %src = %{ $src_hash };   my %includes = %{ $include_hash };   my %check = %{ $check_hash };   my %patched = %{ $patched_hash };   my %docs = %{ $docs };   ##################################################   # Generate a few variables                       #   ##################################################   my $lib_flags   = '$(LIB_OPT) $(MACH_OPT) $(LANG_FLAGS) $(WARN_FLAGS)';   my $libs = '$(STATIC_LIB)';##################### COMMON CODE (PARTIALLY) ######################   my $includes = file_list(16, undef, undef, undef, %includes);   my $lib_obj = file_list(16, $BUILD_LIB_DIR, '.cpp', '.'.$obj_suffix,                           %src, %added_src);   my $check_obj = file_list(16, $BUILD_CHECK_DIR, '.cpp', '.'.$obj_suffix,                             %check);   my $doc_list = file_list(16, undef, undef, undef, %docs);   my $remove_patched_files = file_list(16, undef, undef, undef,      map { $_ => catdir($MOD_DIR, $patched{$_}) } keys %patched);   if(defined($remove_patched_files))      { $remove_patched_files = "$__TAB__\$(RM) $remove_patched_files\n"; }   else { $remove_patched_files = ""; }##################### / COMMON CODE (PARTIALLY) ######################   print_header($makefile, $COMMENT_CHAR, 'Compiler Options');   print $makefile <<END_OF_MAKEFILE_HEADER;CXX           = $ccLIB_OPT       = $lib_optCHECK_OPT     = $check_optMACH_OPT      = $mach_optLANG_FLAGS    = $lang_flagsWARN_FLAGS    = $warn_flagsSO_OBJ_FLAGS  =SO_LINK_FLAGS =LINK_TO       =END_OF_MAKEFILE_HEADER   print_header($makefile, $COMMENT_CHAR, 'Version Numbers');   print $makefile <<END_OF_VERSIONS;MAJOR         = $MAJOR_VERSIONMINOR         = $MINOR_VERSIONPATCH         = $PATCH_VERSIONVERSION       = \$(MAJOR).\$(MINOR).\$(PATCH)END_OF_VERSIONS   print_header($makefile, $COMMENT_CHAR, 'Installation Settings');   print $makefile <<END_OF_INSTALL_SETTINGS;INSTALLROOT   = $install_rootLIBDIR        = \$(INSTALLROOT)\\$lib_dirHEADERDIR     = \$(INSTALLROOT)\\$header_dir\\botanDOCDIR        = \$(INSTALLROOT)\\$doc_dirEND_OF_INSTALL_SETTINGS   print_header($makefile, $COMMENT_CHAR, 'Aliases for Common Programs');   print $makefile <<END_OF_COMMAND_ALIASES;AR            = LIBCD            = \@cdECHO          = \@echoINSTALL       = copyINSTALL_CMD   = \$(INSTALL)LN            = ln -fsMKDIR         = \@mdMKDIR_INSTALL = \@mdRM            = \@del /QRM_R          = \@del /QEND_OF_COMMAND_ALIASES   print_header($makefile, $COMMENT_CHAR, 'File Lists');   print $makefile <<END_OF_FILE_LISTS;LIB_FLAGS     = $lib_flagsCHECK_FLAGS   = \$(CHECK_OPT) \$(LANG_FLAGS) \$(WARN_FLAGS)CHECK         = checkDOCS          = $doc_listHEADERS       = $includesLIBOBJS       = $lib_objCHECKOBJS     = $check_objLIBRARIES     = $libsLIBNAME       = libbotanSTATIC_LIB    = \$(LIBNAME).$static_lib_suffixEND_OF_FILE_LISTS   print $makefile "all: \$(LIBRARIES)\n\n";   print_header($makefile, $COMMENT_CHAR, 'Build Commands');   sub print_build_cmds_nmake {      my ($fh, $dir, $flags, $obj_suffix, %files) = @_;      foreach (sort keys %files) {         my $src_file = catfile ($files{$_}, $_);         my $obj_file = catfile ($dir, $_);         $obj_file =~ s/.cpp/.$obj_suffix/;         print $fh "$obj_file: $src_file\n",            "\t\$(CXX) -Iinclude $flags /c \$? /Fo\$@\n\n";      }   }   print_build_cmds_nmake($makefile, $BUILD_LIB_DIR,                          '$(LIB_FLAGS)', $obj_suffix, %src, %added_src);   print_build_cmds_nmake($makefile, $BUILD_CHECK_DIR,                          '$(CHECK_FLAGS)', $obj_suffix, %check);   print_header($makefile, $COMMENT_CHAR, 'Link Commands');   print $makefile <<END_OF_LINK_COMMANDS;\$(CHECK): \$(LIBRARIES) \$(CHECKOBJS)${__TAB__}LINK /OUT:\$@.exe \$(CHECKOBJS) \$(STATIC_LIB)\$(STATIC_LIB): \$(LIBOBJS)$__TAB__\$(RM) \$(STATIC_LIB)$__TAB__\$(AR) /OUT:\$@ /NAME:BOTAN-\$(VERSION) \$(LIBOBJS)END_OF_LINK_COMMANDS   print $makefile "\n";   print_header($makefile, $COMMENT_CHAR, 'Misc Targets');   print $makefile "static: \$(STATIC_LIB)\n\n";   print_header($makefile, $COMMENT_CHAR, 'Fake Targets');   print $makefile <<END_OF_FAKE_TARGETS;clean:$__TAB__\$(RM_R) $BUILD_LIB_DIR\\* $BUILD_CHECK_DIR\\*$__TAB__\$(RM) \$(LIBRARIES) \$(SYMLINKS) \$(CHECK)distclean: clean$__TAB__\$(RM_R) $BUILD_DIR $CPP_INCLUDE_DIR$__TAB__\$(RM) $MAKE_FILE $CONFIG_H_FILE$remove_patched_filesEND_OF_FAKE_TARGETS   print_header($makefile, $COMMENT_CHAR, 'Install Commands');   print $makefile <<END_OF_INSTALL_SCRIPTS;install: \$(LIBRARIES)$__TAB__\$(ECHO) "Install command not done"END_OF_INSTALL_SCRIPTS    print $makefile "\n";

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -