Page History
- 2020-Jan-22 11:46 tim
- 2015-Nov-06 11:52 johnkn
- 2015-Oct-07 15:46 johnkn
- 2015-Oct-07 14:16 johnkn
- 2015-Oct-07 13:41 johnkn
- 2015-Oct-07 13:20 johnkn
- 2015-Oct-01 14:26 johnkn
- 2015-Oct-01 14:18 johnkn
- 2015-Oct-01 14:12 johnkn
- 2015-Oct-01 13:43 johnkn
- 2015-Oct-01 13:25 johnkn
- 2015-Oct-01 13:12 johnkn
- 2015-Oct-01 13:12 johnkn
- 2015-Oct-01 13:11 johnkn
TJ's simple scripts
sort_ads.pl
A script to sort a collection of classads by key without reordering the ads. What it actually does is accumulate lines from stdin until it gets to a blank line, then prints out those lines sorted.sort_ads.pl
#!/usr/bin/env perl use strict; use warnings; my %ad; for my $line ( <STDIN> ) { if ($line =~ /^\s*$/) { # print out the previous add sorted by key then reset the hash for a new ad. if (%ad) { for (sort keys %ad) { print $_; } undef %ad; } } $ad{$line} = 1; } # print the last ad sorted by key if (%ad) { for (sort keys %ad) { print $_; } undef %ad; }
condor_status -long | perl sort_ads.pl
Scripts for building on Windows
cmakeit.bat
run this script to create a condor.prj file in the current directory. Does much the same thing as configure_uw, but works on Windows. If sources are not in the current directory, it depends on the environment variable GIT_HOME to find them. This script will refuse to run if the current directory is a git repo.
Optional arguments are
- regen - don't suppress cmake regeneration
- analyze - enable MSVC static code analysis for the build (take 3x longer)
- buildid <id> - set the build id
cmakeit.bat
@echo off setlocal set _noregen=-DCMAKE_SUPPRESS_REGENERATION:BOOL=TRUE if "%1"=="regen" ( shift set _noregen=-DCMAKE_SUPPRESS_REGENERATION:BOOL=FALSE ) if "%1"=="analyze" ( shift set _analyze=-DMSVC_ANALYZE:BOOL=TRUE ) if "%1"=="noanalyze" ( shift set _analyze=-DMSVC_ANALYZE:BOOL=FALSE ) if "%1"=="tests" ( shift set _test=-DBUILD_TESTING:BOOL=TRUE -DWITH_BOOST:BOOL=TRUE ) if "%1"=="buildid" ( set _buildid=-DBUILDID:STRING="%~2" shift shift ) if exist .\.git\config goto :nothere if exist .gitignore goto :nothere if exist .\src\condor_utils\condor_api.h ( set _src= ) else ( set _src=%GIT_HOME% choice /M "no sources in current dir, use %GIT_HOME%" if errorlevel 2 goto :EOF ) set _gen="Visual Studio 9 2008" if "%VS_DIR%"=="C:\vs110" set _gen="Visual Studio 11" REM set _gen="NMake Makefiles" if NOT ~%1==~ set _gen=%1 @echo on cmake -LA CMakeLists.txt -G %_gen% %_noregen% %_analyze% %_test% %_buildid% -D_VERBOSE:BOOL=TRUE %_src% @goto :EOF :nothere @echo You don't want to run this when the current directory is a git repository.
copy cmakeit.bat c:\scratch\build set GIT_HOME=c:\scratch\master\CONDOR_SRC mkdir c:\scratch\build\master cd c:\scratch\build\master ..\cmakeit
rebuild.bat
run this script while in your build directory (the one with condor.sln) to build and/or release HTCondor. Optional arguments are
- build - do minimal build, default is full rebuild
- con|console - send output to console, default is to send it to rebuild.out
- debug|retail|RelWithDebInfo - set build type, default is retail
- package|externals|install - build the given target. ALL_BUILD is the default build target.
- release [test] - after build, invoke the release.bat script, which will release into release_dir subdir unless the test argument is passed, then it will release into the test subdir.
rebuild.bat
@echo off setlocal for %%I in (wget.exe) do if "%%~f$PATH:I"=="" ( echo WGET is not in the path - aborting exit /b 1 ) if not exist condor.sln ( echo There is no Condor.sln file in the current directory echo did you forget to run cmakeit.bat? exit /b 1 ) set _scriptdir_=%~sdp0 set _counterrs_=call %~sdp0counterrs.bat :top if "~%1"=="~" goto doit goto %1 :debug set _bldtype_=Debug goto next :con :console set _console_=true goto next :build set _rebuild_=Build goto next :relwithdebinfo :retail set _bldtype_=RelWithDebInfo goto next :package set _target_=PACKAGE goto next :externals set _target_=ALL_EXTERN goto next :install set _target_=INSTALL goto next :release set _release_=call %_scriptdir_%release.bat if "%2"=="test" ( set _release_=%_release_% test shift ) if "%_bldtype_%"=="Debug" ( set _release_=%_release_% debug ) goto next :next shift goto top :doit if ~%_rebuild_%==~ set _rebuild_=Rebuild if ~%_bldtype_%==~ set _bldtype_=RelWithDebInfo if ~%_target_%==~ set _target_=ALL_BUILD set _counterrs_=call %_scriptdir_%counterrs.bat %_rebuild_%.out ::@echo '%_counterrs_%' @if NOT "%_console_%"=="true" goto :build_to_log @echo on devenv condor.sln /%_rebuild_% %_bldtype_% /project %_target_% @echo off goto :EOF :build_to_log @echo on devenv condor.sln /%_rebuild_% %_bldtype_% /project %_target_% > %_rebuild_%.out @echo off %_counterrs_% %_release_%
copy rebuild.bat c:\scratch\build cd c:\scratch\build\master mkdir c:\scratch\build\master\test ..\rebuild build debug release test