X-Git-Url: https://git.libre-soc.org/?a=blobdiff_plain;f=util%2Fmake_release.py;h=5a47f06587c517eb829d32083e1b790b68773ee8;hb=b331b02669f95adf4744b1e7db50ad4b231fb704;hp=8d69614dc193140b1051d07f10fedd3d36162b1f;hpb=438b951a5b5cd50d14f8c9a504f06ea1973a9cb7;p=gem5.git diff --git a/util/make_release.py b/util/make_release.py index 8d69614dc..5a47f0658 100755 --- a/util/make_release.py +++ b/util/make_release.py @@ -1,5 +1,5 @@ #!/usr/bin/env python -# Copyright (c) 2006-2007 The Regents of The University of Michigan +# Copyright (c) 2006-2008 The Regents of The University of Michigan # All rights reserved. # # Redistribution and use in source and binary forms, with or without @@ -33,6 +33,7 @@ import os import re import shutil import sys +import time from glob import glob from os import system @@ -42,9 +43,10 @@ def mkdir(*args): path = joinpath(*args) os.mkdir(path) -def touch(*args): +def touch(*args, **kwargs): + when = kwargs.get('when', None) path = joinpath(*args) - os.utime(path, None) + os.utime(path, when) def rmtree(*args): path = joinpath(*args) @@ -70,7 +72,7 @@ def movedir(srcdir, destdir, dir): os.makedirs(dirname(dest)) shutil.move(src, dest) -if not isdir('BitKeeper'): +if not isdir('.hg'): sys.exit('Not in the top level of an m5 tree!') usage = '%s ' % sys.argv[0] @@ -81,9 +83,9 @@ if len(sys.argv) != 3: destdir = sys.argv[1] releasename = sys.argv[2] release_dest = joinpath(destdir, 'release') -encumbered_dest = joinpath(destdir, 'encumbered') +#encumbered_dest = joinpath(destdir, 'encumbered') release_dir = joinpath(release_dest, releasename) -encumbered_dir = joinpath(encumbered_dest, releasename) +#encumbered_dir = joinpath(encumbered_dest, releasename) if exists(destdir): if not isdir(destdir): @@ -97,75 +99,114 @@ if exists(release_dest): '%s exists, but is not a directory' % release_dest rmtree(release_dest) -if exists(encumbered_dest): - if not isdir(encumbered_dest): - raise AttributeError, \ - '%s exists, but is not a directory' % encumbered_dest - rmtree(encumbered_dest) +#if exists(encumbered_dest): +# if not isdir(encumbered_dest): +# raise AttributeError, \ +# '%s exists, but is not a directory' % encumbered_dest +# rmtree(encumbered_dest) mkdir(release_dest) -mkdir(encumbered_dest) +#mkdir(encumbered_dest) mkdir(release_dir) -mkdir(encumbered_dir) +#mkdir(encumbered_dir) -system('bk export -tplain -w -r+ %s' % release_dir) +system('hg update') +system('rsync -av --exclude ".hg*" --exclude build . %s' % release_dir) +# move the time forward on some files by a couple of minutes so we can +# avoid building things unnecessarily +when = int(time.time()) + 120 # make sure scons doesn't try to run flex unnecessarily -touch(release_dir, 'src/encumbered/eio/exolex.cc') +#touch(release_dir, 'src/encumbered/eio/exolex.cc', when=(when, when)) # get rid of non-shipping code -rmtree(release_dir, 'src/encumbered/dev') +#rmtree(release_dir, 'src/encumbered/dev') rmtree(release_dir, 'src/cpu/ozone') -rmtree(release_dir, 'src/mem/cache/tags/split*.cc') -rmtree(release_dir, 'src/mem/cache/tags/split*.hh') -rmtree(release_dir, 'src/mem/cache/prefetch/ghb_*.cc') -rmtree(release_dir, 'src/mem/cache/prefetch/ghb_*.hh') -rmtree(release_dir, 'src/mem/cache/prefetch/stride_*.cc') -rmtree(release_dir, 'src/mem/cache/prefetch/stride_*.hh') +#rmtree(release_dir, 'src/mem/cache/tags/split*.cc') +#rmtree(release_dir, 'src/mem/cache/tags/split*.hh') +#rmtree(release_dir, 'src/mem/cache/prefetch/ghb_*.cc') +#rmtree(release_dir, 'src/mem/cache/prefetch/ghb_*.hh') +#rmtree(release_dir, 'src/mem/cache/prefetch/stride_*.cc') +#rmtree(release_dir, 'src/mem/cache/prefetch/stride_*.hh') rmtree(release_dir, 'configs/fullsys') rmtree(release_dir, 'configs/test') -rmtree(release_dir, 'configs/splash2') rmtree(release_dir, 'tests/long/*/ref') rmtree(release_dir, 'tests/old') -rmtree(release_dir, 'src/dev/i8*') +rmtree(release_dir, 'tests/quick/00.hello/ref/x86') +rmtree(release_dir, 'tests/quick/02.insttest') +rmtree(release_dir, 'tests/test-progs/hello/bin/x86') + +remove(release_dir, 'src/cpu/nativetrace.hh') +remove(release_dir, 'src/cpu/nativetrace.cc') # get rid of some of private scripts remove(release_dir, 'util/chgcopyright') remove(release_dir, 'util/make_release.py') -# fix up the SConscript to deal with files we've removed -mem_expr = re.compile('.*mem/cache/(tags/split|prefetch/(ghb|stride)).*') -inscript = file(joinpath(release_dir, 'src', 'SConscript'), 'r').readlines() -outscript = file(joinpath(release_dir, 'src', 'SConscript'), 'w') -for line in inscript: - if mem_expr.match(line): - continue +def remove_sources(regex, subdir): + script = joinpath(release_dir, subdir, 'SConscript') + if isinstance(regex, str): + regex = re.compile(regex) + inscript = file(script, 'r').readlines() + outscript = file(script, 'w') + for line in inscript: + if regex.match(line): + continue + + outscript.write(line) + outscript.close() + +def remove_lines(s_regex, e_regex, f): + f = joinpath(release_dir, f) + if isinstance(s_regex, str): + s_regex = re.compile(s_regex) + if isinstance(e_regex, str): + e_regex = re.compile(e_regex) + inscript = file(f, 'r').readlines() + outscript = file(f, 'w') + skipping = False + for line in inscript: + if (not skipping and s_regex.match(line)) or \ + (e_regex and skipping and not e_regex.match(line)): + if e_regex: + skipping = True + continue + skipping = False + outscript.write(line) + outscript.close() + +def replace_line(s_regex, f, rl): + f = joinpath(release_dir, f) + if isinstance(s_regex, str): + s_regex = re.compile(s_regex) + inscript = file(f, 'r').readlines() + outscript = file(f, 'w') + for line in inscript: + if s_regex.match(line): + outscript.write(rl) + continue + outscript.write(line) + outscript.close() - outscript.write(line) -outscript.close() # fix up the SConscript to deal with files we've removed -mem_expr = re.compile('.*i8254xGBe.*') -inscript = file(joinpath(release_dir, 'src', 'dev', 'SConscript'), 'r').readlines() -outscript = file(joinpath(release_dir, 'src', 'dev', 'SConscript'), 'w') -for line in inscript: - if mem_expr.match(line): - continue - - outscript.write(line) -outscript.close() - - - +#remove_sources(r'.*split.*\.cc', 'src/mem/cache/tags') +#remove_sources(r'.*(ghb|stride)_prefetcher\.cc', 'src/mem/cache/prefetch') +remove_sources(r'.*nativetrace.*', 'src/cpu') benches = [ 'bzip2', 'eon', 'gzip', 'mcf', 'parser', 'perlbmk', 'twolf', 'vortex' ] for bench in benches: rmtree(release_dir, 'tests', 'test-progs', bench) -movedir(release_dir, encumbered_dir, 'src/encumbered') -movedir(release_dir, encumbered_dir, 'tests/test-progs/anagram') -movedir(release_dir, encumbered_dir, 'tests/quick/20.eio-short') +#movedir(release_dir, encumbered_dir, 'src/encumbered') +rmtree(release_dir, 'tests/test-progs/anagram') +rmtree(release_dir, 'tests/quick/20.eio-short') + +f = open('src/cpu/SConsopts', 'w+') +f.writelines(("Import('*')\n", "all_cpu_list.append('DummyCPUMakeSconsHappy')\n")) +f.close() + def taritup(directory, destdir, filename): basedir = dirname(directory) @@ -175,8 +216,7 @@ def taritup(directory, destdir, filename): system('cd %s; tar cfj %s %s' % (basedir, tarball, tardir)) taritup(release_dir, destdir, '%s.tar.bz2' % releasename) -taritup(encumbered_dir, destdir, '%s-encumbered.tar.bz2' % releasename) +#taritup(encumbered_dir, destdir, '%s-encumbered.tar.bz2' % releasename) print "release created in %s" % destdir -print "don't forget to tag the repository! The following command will do it:" -print "bk tag %s" % releasename +print "don't forget to tag the repository!"