2009-10-15 08:07:12 +00:00
|
|
|
require 'formula'
|
2009-06-18 07:15:07 +00:00
|
|
|
|
|
|
|
ALL_CPP=<<-EOS
|
|
|
|
#include "errhnd.cpp"
|
|
|
|
ErrorHandler ErrHandler;
|
|
|
|
#include "rar.cpp"
|
|
|
|
#include "strlist.cpp"
|
|
|
|
#include "strfn.cpp"
|
|
|
|
#include "pathfn.cpp"
|
|
|
|
#include "savepos.cpp"
|
|
|
|
#include "smallfn.cpp"
|
|
|
|
#include "global.cpp"
|
|
|
|
#include "file.cpp"
|
|
|
|
#include "filefn.cpp"
|
|
|
|
#include "filcreat.cpp"
|
|
|
|
#include "archive.cpp"
|
|
|
|
#include "arcread.cpp"
|
|
|
|
#include "unicode.cpp"
|
|
|
|
#include "system.cpp"
|
|
|
|
#include "isnt.cpp"
|
|
|
|
#include "crypt.cpp"
|
|
|
|
#include "crc.cpp"
|
|
|
|
#include "rawread.cpp"
|
|
|
|
#include "encname.cpp"
|
|
|
|
#include "resource.cpp"
|
|
|
|
#include "match.cpp"
|
|
|
|
#include "timefn.cpp"
|
|
|
|
#include "rdwrfn.cpp"
|
|
|
|
#include "consio.cpp"
|
|
|
|
#include "options.cpp"
|
|
|
|
#include "ulinks.cpp"
|
|
|
|
#include "rarvm.cpp"
|
|
|
|
#include "rijndael.cpp"
|
|
|
|
#include "getbits.cpp"
|
|
|
|
#undef rol
|
|
|
|
#include "sha1.cpp"
|
|
|
|
#include "extinfo.cpp"
|
|
|
|
#include "extract.cpp"
|
|
|
|
#include "volume.cpp"
|
|
|
|
#include "list.cpp"
|
|
|
|
#include "find.cpp"
|
|
|
|
#include "unpack.cpp"
|
|
|
|
#include "cmddata.cpp"
|
|
|
|
#include "filestr.cpp"
|
|
|
|
#include "recvol.cpp"
|
|
|
|
#include "rs.cpp"
|
|
|
|
#include "scantree.cpp"
|
|
|
|
EOS
|
|
|
|
|
|
|
|
class Unrar <Formula
|
|
|
|
@url='http://www.rarlab.com/rar/unrarsrc-3.9.4.tar.gz'
|
|
|
|
@md5='1800a2242911fc118f6a2b084d0c22c1'
|
|
|
|
@homepage='http://www.rarlab.com'
|
|
|
|
|
|
|
|
def install
|
2009-12-28 15:09:33 +00:00
|
|
|
# No need to do LTO, we're combining all source files manually
|
|
|
|
ENV.O3
|
|
|
|
|
2009-06-18 07:15:07 +00:00
|
|
|
# by compiling all in one unit, g++ optimises slightly better
|
2009-08-07 14:41:43 +00:00
|
|
|
# be warned: this trick doesn't work very often! And I'd only do it for
|
|
|
|
# very stable source trees as if they change stuff it sucks for you.
|
2009-06-18 07:15:07 +00:00
|
|
|
File.open('all.cpp', 'w') {|f| f.write ALL_CPP}
|
2010-02-20 11:53:51 +00:00
|
|
|
system "#{ENV.cxx} #{ENV['CXXFLAGS']} -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE all.cpp -o unrar"
|
2009-06-18 07:15:07 +00:00
|
|
|
bin.install 'unrar'
|
|
|
|
|
|
|
|
FileUtils.mv 'license.txt', 'COPYING'
|
|
|
|
FileUtils.mv 'readme.txt', 'README'
|
|
|
|
end
|
|
|
|
end
|