makepack-dolibarr.pl 48 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939
  1. #!/usr/bin/perl
  2. #----------------------------------------------------------------------------
  3. # \file build/makepack-dolibarr.pl
  4. # \brief Dolibarr package builder (tgz, zip, rpm, deb, exe, aps)
  5. # \author (c)2004-2011 Laurent Destailleur <eldy@users.sourceforge.net>
  6. #----------------------------------------------------------------------------
  7. use Cwd;
  8. $PROJECT="dolibarr";
  9. $MAJOR="3";
  10. $MINOR="2";
  11. $BUILD="0-alpha"; # Mettre x pour release, x-dev pour dev, x-beta pour beta, x-rc pour release candidate
  12. $RPMSUBVERSION="auto"; # auto use value found into BUILD
  13. @LISTETARGET=("TGZ","ZIP","RPM_GENERIC","RPM_FEDORA","RPM_MANDRIVA","RPM_OPENSUSE","DEB","APS","EXEDOLIWAMP","SNAPSHOT"); # Possible packages
  14. %REQUIREMENTTARGET=( # Tool requirement for each package
  15. "SNAPSHOT"=>"tar",
  16. "TGZ"=>"tar",
  17. "ZIP"=>"7z",
  18. "RPM_GENERIC"=>"rpmbuild",
  19. "RPM_FEDORA"=>"rpmbuild",
  20. "RPM_MANDRIVA"=>"rpmbuild",
  21. "RPM_OPENSUSE"=>"rpmbuild",
  22. "DEB"=>"dpkg",
  23. "APS"=>"zip",
  24. "EXEDOLIWAMP"=>"iscc.exe"
  25. );
  26. %ALTERNATEPATH=(
  27. "7z"=>"7-ZIP",
  28. "makensis.exe"=>"NSIS"
  29. );
  30. $FILENAME="$PROJECT";
  31. $FILENAMESNAPSHOT="$PROJECT-snapshot";
  32. $FILENAMETGZ="$PROJECT-$MAJOR.$MINOR.$BUILD";
  33. $FILENAMEZIP="$PROJECT-$MAJOR.$MINOR.$BUILD";
  34. $FILENAMERPM="$PROJECT-$MAJOR.$MINOR.$BUILD-$RPMSUBVERSION";
  35. $FILENAMEDEB="${PROJECT}_${MAJOR}.${MINOR}.${BUILD}";
  36. $FILENAMEAPS="$PROJECT-$MAJOR.$MINOR.$BUILD.app";
  37. $FILENAMEEXEDOLIWAMP="$PROJECT-$MAJOR.$MINOR.$BUILD";
  38. if (-d "/usr/src/redhat") { $RPMDIR="/usr/src/redhat"; } # redhat
  39. if (-d "/usr/src/RPM") { $RPMDIR="/usr/src/RPM"; } # mandrake
  40. use vars qw/ $REVISION $VERSION /;
  41. $REVISION='$Revision: 1.152 $'; $REVISION =~ /\s(.*)\s/; $REVISION=$1;
  42. $VERSION="3.2 (build $REVISION)";
  43. #------------------------------------------------------------------------------
  44. # MAIN
  45. #------------------------------------------------------------------------------
  46. ($DIR=$0) =~ s/([^\/\\]+)$//; ($PROG=$1) =~ s/\.([^\.]*)$//; $Extension=$1;
  47. $DIR||='.'; $DIR =~ s/([^\/\\])[\\\/]+$/$1/;
  48. $SOURCE="$DIR/..";
  49. $DESTI="$SOURCE/build";
  50. # Detect OS type
  51. # --------------
  52. if ("$^O" =~ /linux/i || (-d "/etc" && -d "/var" && "$^O" !~ /cygwin/i)) { $OS='linux'; $CR=''; }
  53. elsif (-d "/etc" && -d "/Users") { $OS='macosx'; $CR=''; }
  54. elsif ("$^O" =~ /cygwin/i || "$^O" =~ /win32/i) { $OS='windows'; $CR="\r"; }
  55. if (! $OS) {
  56. print "$PROG.$Extension was not able to detect your OS.\n";
  57. print "Can't continue.\n";
  58. print "$PROG.$Extension aborted.\n";
  59. sleep 2;
  60. exit 1;
  61. }
  62. # Define buildroot
  63. # ----------------
  64. if ($OS =~ /linux/) {
  65. $TEMP=$ENV{"TEMP"}||$ENV{"TMP"}||"/tmp";
  66. }
  67. if ($OS =~ /macos/) {
  68. $TEMP=$ENV{"TEMP"}||$ENV{"TMP"}||"/tmp";
  69. }
  70. if ($OS =~ /windows/) {
  71. $TEMP=$ENV{"TEMP"}||$ENV{"TMP"}||"c:/temp";
  72. $PROGPATH=$ENV{"ProgramFiles"};
  73. }
  74. if (! $TEMP || ! -d $TEMP) {
  75. print "Error: A temporary directory can not be find.\n";
  76. print "Check that TEMP or TMP environment variable is set correctly.\n";
  77. print "$PROG.$Extension aborted.\n";
  78. sleep 2;
  79. exit 2;
  80. }
  81. $BUILDROOT="$TEMP/buildroot";
  82. my $copyalreadydone=0; # Use "-" before number of choice to avoid copy
  83. my $batch=0;
  84. for (0..@ARGV-1) {
  85. if ($ARGV[$_] =~ /^-*target=(\w+)/i) { $target=$1; $batch=1; }
  86. if ($ARGV[$_] =~ /^-*desti=(.+)/i) { $DESTI=$1; }
  87. if ($ARGV[$_] =~ /^-*prefix=(.+)/i) {
  88. $PREFIX=$1;
  89. $FILENAMESNAPSHOT.="-".$PREFIX;
  90. }
  91. }
  92. if ($ENV{"DESTI"}) { $DESTI = $ENV{"DESTI"}; } # Force output dir if env DESTI is defined
  93. print "Makepack version $VERSION\n";
  94. print "Building package name: $PROJECT\n";
  95. print "Building package version: $MAJOR.$MINOR.$BUILD\n";
  96. print "Source directory: $SOURCE\n";
  97. print "Target directory: $DESTI\n";
  98. # Choose package targets
  99. #-----------------------
  100. if ($target) {
  101. $CHOOSEDTARGET{uc($target)}=1;
  102. }
  103. else {
  104. my $found=0;
  105. my $NUM_SCRIPT;
  106. while (! $found) {
  107. my $cpt=0;
  108. printf(" %2d - %-12s (%s)\n",$cpt,"All (Except SNAPSHOT)","Need ".join(",",values %REQUIREMENTTARGET));
  109. foreach my $target (@LISTETARGET) {
  110. $cpt++;
  111. printf(" %2d - %-12s (%s)\n",$cpt,$target,"Need ".$REQUIREMENTTARGET{$target});
  112. }
  113. # On demande de choisir le fichier à passer
  114. print "Choose one package number or several separated with space (0 - ".$cpt."): ";
  115. $NUM_SCRIPT=<STDIN>;
  116. chomp($NUM_SCRIPT);
  117. if ($NUM_SCRIPT =~ s/-//g) {
  118. # Do not do copy
  119. $copyalreadydone=1;
  120. }
  121. if ($NUM_SCRIPT !~ /^[0-9\s]+$/)
  122. {
  123. print "This is not a valid package number list.\n";
  124. $found = 0;
  125. }
  126. else
  127. {
  128. $found = 1;
  129. }
  130. }
  131. print "\n";
  132. if ($NUM_SCRIPT) {
  133. foreach my $num (split(/\s+/,$NUM_SCRIPT)) {
  134. $CHOOSEDTARGET{$LISTETARGET[$num-1]}=1;
  135. }
  136. }
  137. else {
  138. foreach my $key (@LISTETARGET) {
  139. if ($key ne 'SNAPSHOT') { $CHOOSEDTARGET{$key}=1; }
  140. }
  141. }
  142. }
  143. # Test if requirement is ok
  144. #--------------------------
  145. foreach my $target (keys %CHOOSEDTARGET) {
  146. foreach my $req (split(/[,\s]/,$REQUIREMENTTARGET{$target})) {
  147. # Test
  148. print "Test requirement for target $target: Search '$req'... ";
  149. $newreq=$req; $newparam='';
  150. if ($newreq eq 'zip') { $newparam.='-h'; }
  151. $cmd="\"$newreq\" $newparam 2>&1";
  152. print "Test command ".$cmd."... ";
  153. $ret=`$cmd`;
  154. $coderetour=$?; $coderetour2=$coderetour>>8;
  155. if ($coderetour != 0 && (($coderetour2 == 1 && $OS =~ /windows/ && $ret !~ /Usage/i) || ($coderetour2 == 127 && $OS !~ /windows/)) && $PROGPATH) {
  156. # Not found error, we try in PROGPATH
  157. $ret=`"$PROGPATH/$ALTERNATEPATH{$req}/$req\" 2>&1`;
  158. $coderetour=$?; $coderetour2=$coderetour>>8;
  159. $REQUIREMENTTARGET{$target}="$PROGPATH/$ALTERNATEPATH{$req}/$req";
  160. }
  161. if ($coderetour != 0 && (($coderetour2 == 1 && $OS =~ /windows/ && $ret !~ /Usage/i) || ($coderetour2 == 127 && $OS !~ /windows/))) {
  162. # Not found error
  163. print "Not found\nCan't build target $target. Requirement '$req' not found in PATH\n";
  164. $CHOOSEDTARGET{$target}=-1;
  165. last;
  166. } else {
  167. # Pas erreur ou erreur autre que programme absent
  168. print " Found ".$REQUIREMENTTARGET{$target}."\n";
  169. }
  170. }
  171. }
  172. print "\n";
  173. # Check if there is at least on target to build
  174. #----------------------------------------------
  175. $nboftargetok=0;
  176. $nboftargetneedbuildroot=0;
  177. $nboftargetneedcvs=0;
  178. foreach my $target (keys %CHOOSEDTARGET) {
  179. if ($CHOOSEDTARGET{$target} < 0) { next; }
  180. if ($target ne 'EXE' && $target ne 'EXEDOLIWAMP')
  181. {
  182. $nboftargetneedbuildroot++;
  183. }
  184. if ($target eq 'SNAPSHOT')
  185. {
  186. $nboftargetneedcvs++;
  187. }
  188. $nboftargetok++;
  189. }
  190. if ($nboftargetok) {
  191. # Update CVS if required
  192. #-----------------------
  193. if ($nboftargetneedcvs)
  194. {
  195. print "Go to directory $SOURCE\n";
  196. $olddir=getcwd();
  197. chdir("$SOURCE");
  198. print "Run cvs update -P -d\n";
  199. $ret=`cvs update -P -d 2>&1`;
  200. chdir("$olddir");
  201. }
  202. # Update buildroot if required
  203. #-----------------------------
  204. if ($nboftargetneedbuildroot)
  205. {
  206. if (! $copyalreadydone) {
  207. print "Creation of a buildroot used for all packages\n";
  208. print "Delete directory $BUILDROOT\n";
  209. $ret=`rm -fr "$BUILDROOT"`;
  210. mkdir "$BUILDROOT";
  211. mkdir "$BUILDROOT/$PROJECT";
  212. print "Copy $SOURCE into $BUILDROOT/$PROJECT\n";
  213. $ret=`cp -pr "$SOURCE" "$BUILDROOT/$PROJECT"`;
  214. }
  215. print "Clean $BUILDROOT\n";
  216. $ret=`rm -f $BUILDROOT/$PROJECT/index.php`;
  217. $ret=`rm -fr $BUILDROOT/$PROJECT/.buildpath`;
  218. $ret=`rm -fr $BUILDROOT/$PROJECT/.cache`;
  219. $ret=`rm -fr $BUILDROOT/$PROJECT/.git`;
  220. $ret=`rm -fr $BUILDROOT/$PROJECT/.gitmodules`;
  221. $ret=`rm -fr $BUILDROOT/$PROJECT/.project`;
  222. $ret=`rm -fr $BUILDROOT/$PROJECT/.settings`;
  223. $ret=`rm -fr $BUILDROOT/$PROJECT/pom.xml`;
  224. $ret=`rm -fr $BUILDROOT/$PROJECT/default.properties`;
  225. $ret=`rm -fr $BUILDROOT/$PROJECT/build/html`;
  226. $ret=`rm -f $BUILDROOT/$PROJECT/build/DoliW*-*`;
  227. $ret=`rm -f $BUILDROOT/$PROJECT/build/DoliM*-*`;
  228. $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.changes`;
  229. $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.deb`;
  230. $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.dsc`;
  231. $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr_*.tar.gz`;
  232. $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.deb`;
  233. $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.rpm`;
  234. $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.tar`;
  235. $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.tar.gz`;
  236. $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.tgz`;
  237. $ret=`rm -f $BUILDROOT/$PROJECT/build/dolibarr-*.zip`;
  238. $ret=`rm -f $BUILDROOT/$PROJECT/build/doxygen/doxygen_warnings.log`;
  239. $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php`;
  240. $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.mysql`;
  241. $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.old`;
  242. $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf.php.postgres`;
  243. $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/conf/conf*sav*`;
  244. $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/install/install.lock`;
  245. $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/install/mssql/README`;
  246. $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/install/mysql/README`;
  247. $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/install/pgsql/README`;
  248. $ret=`rm -fr $BUILDROOT/$PROJECT/dev/dbmodel`;
  249. $ret=`rm -fr $BUILDROOT/$PROJECT/dev/fpdf`;
  250. $ret=`rm -fr $BUILDROOT/$PROJECT/dev/initdata`;
  251. $ret=`rm -fr $BUILDROOT/$PROJECT/dev/iso-normes`;
  252. $ret=`rm -fr $BUILDROOT/$PROJECT/dev/licence`;
  253. $ret=`rm -fr $BUILDROOT/$PROJECT/dev/phpcheckstyle`;
  254. $ret=`rm -fr $BUILDROOT/$PROJECT/dev/phpunit`;
  255. $ret=`rm -fr $BUILDROOT/$PROJECT/dev/test`;
  256. $ret=`rm -fr $BUILDROOT/$PROJECT/dev/spec`;
  257. $ret=`rm -fr $BUILDROOT/$PROJECT/dev/uml`;
  258. $ret=`rm -fr $BUILDROOT/$PROJECT/dev/xdebug`;
  259. $ret=`rm -f $BUILDROOT/$PROJECT/doc/*/README`;
  260. $ret=`rm -fr $BUILDROOT/$PROJECT/doc/flyer`;
  261. $ret=`rm -fr $BUILDROOT/$PROJECT/doc/font`;
  262. $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot2.png`;
  263. $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot3.png`;
  264. $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot4.png`;
  265. $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot5.png`;
  266. $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot6.png`;
  267. $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot7.png`;
  268. $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot8.png`;
  269. $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot9.png`;
  270. $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot10.png`;
  271. $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot11.png`;
  272. $ret=`rm -f $BUILDROOT/$PROJECT/doc/images/dolibarr_screenshot12.png`;
  273. $ret=`rm -fr $BUILDROOT/$PROJECT/doc/rollup`;
  274. $ret=`rm -fr $BUILDROOT/$PROJECT/doc/tshirt`;
  275. $ret=`rm -fr $BUILDROOT/$PROJECT/documents`;
  276. $ret=`rm -fr $BUILDROOT/$PROJECT/document`;
  277. $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/custom`;
  278. $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/custom2`;
  279. $ret=`rm -fr $BUILDROOT/$PROJECT/test`;
  280. #$ret=`rm -fr $BUILDROOT/$PROJECT/build/deb/po/CVS*`;
  281. $ret=`rm -fr $BUILDROOT/$PROJECT/Thumbs.db $BUILDROOT/$PROJECT/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/*/Thumbs.db $BUILDROOT/$PROJECT/*/*/*/*/Thumbs.db`;
  282. $ret=`rm -fr $BUILDROOT/$PROJECT/CVS* $BUILDROOT/$PROJECT/*/CVS* $BUILDROOT/$PROJECT/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/*/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/*/*/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/*/*/*/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/*/*/*/*/*/*/CVS* $BUILDROOT/$PROJECT/*/*/*/*/*/*/*/*/*/*/CVS*`;
  283. $ret=`rm -fr $BUILDROOT/$PROJECT/.cvsignore $BUILDROOT/$PROJECT/*/.cvsignore $BUILDROOT/$PROJECT/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/*/*/.cvsignore $BUILDROOT/$PROJECT/*/*/*/*/*/*/.cvsignore`;
  284. $ret=`rm -fr $BUILDROOT/$PROJECT/.svn $BUILDROOT/$PROJECT/*/.svn $BUILDROOT/$PROJECT/*/*/.svn $BUILDROOT/$PROJECT/*/*/*/.svn $BUILDROOT/$PROJECT/*/*/*/*/.svn`;
  285. $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/barcode/php-barcode/fonts/AerialMono*.ttf`;
  286. $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/barcode/php-barcode/fonts/Tymes*.ttf`;
  287. $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/barcode/php-barcode/fonts/Veranda*.ttf`;
  288. $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/barcode/php-barcode/genbarcode`;
  289. $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/fckeditor`;
  290. $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/geoip/sample*.*`;
  291. $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/flot/LICENSE.txt`;
  292. $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/flot/jquery.js`;
  293. $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/flot/jquery.min.js`;
  294. $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/jquery/plugins/jcrop/js/jquery.min.js`;
  295. $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/samples`;
  296. $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/nusoap/lib/Mail`;
  297. $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpexcel/license.txt`;
  298. $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpexcel/PHPExcel/Shared/PDF`;
  299. $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/phpexcel/PHPExcel/Shared/PCLZip`;
  300. $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/dejavu-fonts-ttf-2.33`;
  301. $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/freefont-20100919`;
  302. $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/utils`;
  303. $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/free*.ctg.z`;
  304. $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/fonts/free*.z`;
  305. $ret=`rm -f $BUILDROOT/$PROJECT/htdocs/includes/tcpdf/LICENSE.TXT`;
  306. # Removed because not stable yet
  307. $ret=`rm -fr $BUILDROOT/$PROJECT/htdocs/theme/bureau2crea`;
  308. }
  309. # Build package for each target
  310. #------------------------------
  311. foreach my $target (keys %CHOOSEDTARGET)
  312. {
  313. if ($CHOOSEDTARGET{$target} < 0) { next; }
  314. print "\nBuild package for target $target\n";
  315. if ($target eq 'SNAPSHOT') {
  316. $NEWDESTI=$DESTI;
  317. print "Remove target $FILENAMESNAPSHOT.tgz...\n";
  318. unlink("$NEWDESTI/$FILENAMESNAPSHOT.tgz");
  319. #rmdir "$BUILDROOT/$FILENAMESNAPSHOT";
  320. $ret=`rm -fr $BUILDROOT/$FILENAMESNAPSHOT`;
  321. print "Copy $BUILDROOT/$PROJECT to $BUILDROOT/$FILENAMESNAPSHOT\n";
  322. $cmd="cp -pr \"$BUILDROOT/$PROJECT\" \"$BUILDROOT/$FILENAMESNAPSHOT\"";
  323. $ret=`$cmd`;
  324. print "Compress $BUILDROOT into $FILENAMESNAPSHOT.tgz...\n";
  325. #$cmd="tar --exclude \"$BUILDROOT/tgz/tar_exclude.txt\" --exclude .cache --exclude .settings --exclude conf.php --directory \"$BUILDROOT\" -czvf \"$FILENAMESNAPSHOT.tgz\" $FILENAMESNAPSHOT";
  326. $cmd="tar --exclude doli*.tgz --exclude doli*.deb --exclude doli*.exe --exclude doli*.zip --exclude doli*.rpm --exclude .cache --exclude .settings --exclude conf.php --exclude conf.php.mysql --exclude conf.php.old --exclude conf.php.postgres --directory \"$BUILDROOT\" --mode=go-w --group=500 --owner=500 -czvf \"$FILENAMESNAPSHOT.tgz\" $FILENAMESNAPSHOT";
  327. print $cmd."\n";
  328. $ret=`$cmd`;
  329. # Move to final dir
  330. print "Move $FILENAMESNAPSHOT.tgz to $NEWDESTI/$FILENAMESNAPSHOT.tgz\n";
  331. $ret=`mv "$FILENAMESNAPSHOT.tgz" "$NEWDESTI/$FILENAMESNAPSHOT.tgz"`;
  332. next;
  333. }
  334. if ($target eq 'TGZ') {
  335. $NEWDESTI=$DESTI;
  336. if (-d $DESTI.'/standard') { $NEWDESTI=$DESTI.'/standard'; }
  337. print "Remove target $FILENAMETGZ.tgz...\n";
  338. unlink("$NEWDESTI/$FILENAMETGZ.tgz");
  339. #rmdir "$BUILDROOT/$FILENAMETGZ";
  340. $ret=`rm -fr $BUILDROOT/$FILENAMETGZ`;
  341. print "Copy $BUILDROOT/$PROJECT/ to $BUILDROOT/$FILENAMETGZ\n";
  342. $cmd="cp -pr \"$BUILDROOT/$PROJECT/\" \"$BUILDROOT/$FILENAMETGZ\"";
  343. $ret=`$cmd`;
  344. $ret=`rm -fr $BUILDROOT/$PROJECT/build/exe`;
  345. print "Compress $FILENAMETGZ into $FILENAMETGZ.tgz...\n";
  346. $cmd="tar --exclude-vcs --exclude-from \"$BUILDROOT/$PROJECT/build/tgz/tar_exclude.txt\" --directory \"$BUILDROOT\" --mode=go-w --group=500 --owner=500 -czvf \"$FILENAMETGZ.tgz\" $FILENAMETGZ";
  347. $ret=`$cmd`;
  348. # Move to final dir
  349. print "Move $FILENAMETGZ.tgz to $NEWDESTI/$FILENAMETGZ.tgz\n";
  350. $ret=`mv "$FILENAMETGZ.tgz" "$NEWDESTI/$FILENAMETGZ.tgz"`;
  351. next;
  352. }
  353. if ($target eq 'ZIP') {
  354. $NEWDESTI=$DESTI;
  355. if (-d $DESTI.'/standard') { $NEWDESTI=$DESTI.'/standard'; }
  356. print "Remove target $FILENAMEZIP.zip...\n";
  357. unlink("$NEWDESTI/$FILENAMEZIP.zip");
  358. #rmdir "$BUILDROOT/$FILENAMEZIP";
  359. $ret=`rm -fr $BUILDROOT/$FILENAMEZIP`;
  360. print "Copy $BUILDROOT/$PROJECT to $BUILDROOT/$FILENAMEZIP\n";
  361. $cmd="cp -pr \"$BUILDROOT/$PROJECT\" \"$BUILDROOT/$FILENAMEZIP\"";
  362. $ret=`$cmd`;
  363. print "Compress $FILENAMEZIP into $FILENAMEZIP.zip...\n";
  364. print "Go to directory $BUILDROOT\n";
  365. $olddir=getcwd();
  366. chdir("$BUILDROOT");
  367. $cmd= "7z a -r -tzip -xr\@\"$BUILDROOT\/$FILENAMEZIP\/build\/zip\/zip_exclude.txt\" -mx $BUILDROOT/$FILENAMEZIP.zip $FILENAMEZIP\\*";
  368. print $cmd."\n";
  369. $ret= `$cmd`;
  370. chdir("$olddir");
  371. # Move to final dir
  372. print "Move $FILENAMEZIP.zip to $NEWDESTI/$FILENAMEZIP.zip\n";
  373. $ret=`mv "$BUILDROOT/$FILENAMEZIP.zip" "$NEWDESTI/$FILENAMEZIP.zip"`;
  374. next;
  375. }
  376. if ($target =~ /RPM/) { # Linux only
  377. $NEWDESTI=$DESTI;
  378. $subdir="package_rpm_generic";
  379. if ($target =~ /FEDO/i) { $subdir="package_rpm_redhat-fedora"; }
  380. if ($target =~ /MAND/i) { $subdir="package_rpm_mandriva"; }
  381. if ($target =~ /OPEN/i) { $subdir="package_rpm_opensuse"; }
  382. if (-d $DESTI.'/'.$subdir) { $NEWDESTI=$DESTI.'/'.$subdir; }
  383. $ARCH='noarch';
  384. if ($RPMDIR eq "") { $RPMDIR=$ENV{'HOME'}."/rpmbuild"; }
  385. $newbuild = $BUILD;
  386. # For fedora
  387. $newbuild =~ s/(dev|alpha)/0.1.a/gi; # dev
  388. $newbuild =~ s/beta/0.2.beta1/gi; # beta
  389. $newbuild =~ s/rc./0.3.rc1/gi; # rc
  390. if ($newbuild !~ /-/) { $newbuild.='-3'; } # finale
  391. #$newbuild =~ s/(dev|alpha)/0/gi; # dev
  392. #$newbuild =~ s/beta/1/gi; # beta
  393. #$newbuild =~ s/rc./2/gi; # rc
  394. #if ($newbuild !~ /-/) { $newbuild.='-3'; } # finale
  395. $REL1 = $newbuild; $REL1 =~ s/-.*$//gi;
  396. if ($RPMSUBVERSION eq 'auto') { $RPMSUBVERSION = $newbuild; $RPMSUBVERSION =~ s/^.*-//gi; }
  397. print "Version is $MAJOR.$MINOR.$REL1-$RPMSUBVERSION\n";
  398. $FILENAMETGZ2="$PROJECT-$MAJOR.$MINOR.$REL1";
  399. print "Remove target ".$FILENAMETGZ2."-".$RPMSUBVERSION.".".$ARCH.".rpm...\n";
  400. unlink("$NEWDESTI/".$FILENAMETGZ2."-".$RPMSUBVERSION.".".$ARCH.".rpm");
  401. print "Remove target ".$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm...\n";
  402. unlink("$NEWDESTI/".$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm");
  403. print "Create directory $BUILDROOT/$FILENAMETGZ2\n";
  404. $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2`;
  405. #$ret=`mkdir -p "$BUILDROOT/$FILENAMETGZ2"`;
  406. #print "Create directory $BUILDROOT/$FILENAMETGZ2/usr/share\n";
  407. #$ret=`mkdir -p "$BUILDROOT/$FILENAMETGZ2/usr/share"`;
  408. print "Copy $BUILDROOT/$PROJECT to $BUILDROOT/$FILENAMETGZ2\n";
  409. $cmd="cp -pr '$BUILDROOT/$PROJECT' '$BUILDROOT/$FILENAMETGZ2'";
  410. $ret=`$cmd`;
  411. print "Fix filefunc.inc.php, install/inc.php, support/inc.php\n";
  412. $cmd="cat \"$BUILDROOT/$PROJECT/htdocs/filefunc.inc.php\" |
  413. sed -e 's/conffile = \"\\\.\\\.\\\/conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' |
  414. sed -e 's/conffile = \"conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' |
  415. sed -e 's/conffiletoshow = \"htdocs\\\/conf\\\/conf.php\"/conffiletoshow = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' > \"$BUILDROOT/$FILENAMETGZ2/htdocs/filefunc.inc.php\"";
  416. $ret=`$cmd`;
  417. $cmd="cat \"$BUILDROOT/$PROJECT/htdocs/install/inc.php\" |
  418. sed -e 's/conffile = \"\\\.\\\.\\\/conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' |
  419. sed -e 's/conffile = \"conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' |
  420. sed -e 's/conffiletoshow = \"htdocs\\\/conf\\\/conf.php\"/conffiletoshow = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' > \"$BUILDROOT/$FILENAMETGZ2/htdocs/install/inc.php\"";
  421. $ret=`$cmd`;
  422. $cmd="cat \"$BUILDROOT/$PROJECT/htdocs/support/inc.php\" |
  423. sed -e 's/conffile = \"\\\.\\\.\\\/conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' |
  424. sed -e 's/conffile = \"conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' |
  425. sed -e 's/conffiletoshow = \"htdocs\\\/conf\\\/conf.php\"/conffiletoshow = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' > \"$BUILDROOT/$FILENAMETGZ2/htdocs/support/inc.php\"";
  426. $ret=`$cmd`;
  427. print "Remove other files\n";
  428. #$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/ChangeLog`;
  429. #$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/COPYING`;
  430. #$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/INSTALL`;
  431. #$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/README`;
  432. #$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/README-FR`;
  433. #$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/README`;
  434. #$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/README-FR`;
  435. #$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/aps`;
  436. #$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/deb`;
  437. #$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/dmg`;
  438. #$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/pad/README`;
  439. #$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/tgz/README`;
  440. #$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/deb/README`;
  441. #$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/doap`;
  442. #$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/exe`;
  443. #$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/live`;
  444. #$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/patch`;
  445. #$ret=`rm -f $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/rpm/conf.php`;
  446. #$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/zip`;
  447. #$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build/perl`;
  448. # We remove embedded libraries or fonts
  449. if ($target !~ /GENE/i)
  450. {
  451. $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/htdocs/includes/artichow/font`,
  452. $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/htdocs/includes/barcode/php-barcode/fonts`,
  453. }
  454. #$ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/htdocs/includes/odtphp/zip/pclzip`;
  455. $ret=`rm -fr $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/htdocs/includes/odtphp/zip/pclzip/gnu-lgpl.txt`;
  456. # Conf files
  457. #print "Copy config files into $BUILDROOT/$FILENAMETGZ2/etc/$PROJECT\n";
  458. #$ret=`mkdir -p "$BUILDROOT/$FILENAMETGZ2/etc/$PROJECT"`;
  459. #$ret=`cp "$SOURCE/build/rpm/httpd-dolibarr.conf" "$BUILDROOT/$FILENAMETGZ2/etc/$PROJECT/apache.conf"`;
  460. #$ret=`cp "$SOURCE/build/rpm/file_contexts.dolibarr" "$BUILDROOT/$FILENAMETGZ2/etc/$PROJECT/file_contexts.dolibarr"`;
  461. #$ret=`cp "$SOURCE/build/rpm/conf.php" "$BUILDROOT/$FILENAMETGZ2/etc/$PROJECT/conf.php"`;
  462. #$installfile="install.forced.php.generic";
  463. #if ($target =~ /FEDO/i) { $installfile="install.forced.php.fedora"; }
  464. #if ($target =~ /MAND/i) { $installfile="install.forced.php.mandriva"; }
  465. #if ($target =~ /OPEN/i) { $installfile="install.forced.php.opensuse"; }
  466. #$ret=`cp "$SOURCE/build/rpm/$installfile" "$BUILDROOT/$FILENAMETGZ2/etc/$PROJECT/install.forced.php"`;
  467. # Set owners
  468. print "Set owners on files/dir\n";
  469. $ret=`chown -R root.root $BUILDROOT/$FILENAMETGZ2`;
  470. print "Set permissions on files/dir\n";
  471. $ret=`chmod -R 755 $BUILDROOT/$FILENAMETGZ2`;
  472. $cmd="find $BUILDROOT/$FILENAMETGZ2 -type f -exec chmod 644 {} \\; ";
  473. $ret=`$cmd`;
  474. #$cmd="find $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build -name '*.php' -type f -exec chmod 755 {} \\; ";
  475. #$ret=`$cmd`;
  476. #$cmd="find $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/build -name '*.pl' -type f -exec chmod 755 {} \\; ";
  477. #$ret=`$cmd`;
  478. #$cmd="find $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/dev -name '*.php' -type f -exec chmod 755 {} \\; ";
  479. #$ret=`$cmd`;
  480. #$ret=`chmod -R 644 $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/dev/translation/langAutoParser.class.php`;
  481. #$ret=`chmod -R 644 $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/dev/skeletons/skeleton_page.php`;
  482. #$ret=`chmod -R 644 $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/dev/skeletons/modMyModule.class.php`;
  483. #$ret=`chmod -R 644 $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/dev/skeletons/skeleton_class.class.php`;
  484. #$cmd="find $BUILDROOT/$FILENAMETGZ2/usr/share/$PROJECT/scripts -name '*.php' -type f -exec chmod 755 {} \\; ";
  485. #$ret=`$cmd`;
  486. # Build tgz
  487. print "Compress $FILENAMETGZ2 into $FILENAMETGZ2.tgz...\n";
  488. $ret=`tar --exclude-from "$SOURCE/build/tgz/tar_exclude.txt" --directory "$BUILDROOT" -czvf "$BUILDROOT/$FILENAMETGZ2.tgz" $FILENAMETGZ2`;
  489. print "Move $FILENAMETGZ2.tgz to $RPMDIR/SOURCES/$FILENAMETGZ2.tgz\n";
  490. rename("$BUILDROOT/$FILENAMETGZ2.tgz","$RPMDIR/SOURCES/$FILENAMETGZ2.tgz");
  491. $ret=`$cmd`;
  492. $BUILDFIC="${FILENAME}.spec";
  493. $BUILDFICSRC="${FILENAME}_generic.spec";
  494. if ($target =~ /FEDO/i) { $BUILDFICSRC="${FILENAME}_fedora.spec"; }
  495. if ($target =~ /MAND/i) { $BUILDFICSRC="${FILENAME}_mandriva.spec"; }
  496. if ($target =~ /OPEN/i) { $BUILDFICSRC="${FILENAME}_opensuse.spec"; }
  497. print "Generate file $BUILDROOT/$BUILDFIC\n";
  498. open (SPECFROM,"<$SOURCE/build/rpm/${BUILDFICSRC}") || die "Error";
  499. open (SPECTO,">$BUILDROOT/$BUILDFIC") || die "Error";
  500. while (<SPECFROM>) {
  501. $_ =~ s/__FILENAMETGZ__/$FILENAMETGZ/;
  502. $_ =~ s/__VERSION__/$MAJOR.$MINOR.$REL1/;
  503. $_ =~ s/__RELEASE__/$RPMSUBVERSION/;
  504. print SPECTO $_;
  505. }
  506. close SPECFROM;
  507. close SPECTO;
  508. print "Launch RPM build (rpmbuild --clean -ba $BUILDROOT/${BUILDFIC})\n";
  509. #$ret=`rpmbuild -vvvv --clean -ba $BUILDROOT/${BUILDFIC}`;
  510. $ret=`rpmbuild --clean -ba $BUILDROOT/${BUILDFIC}`;
  511. # Move to final dir
  512. print "Move $RPMDIR/RPMS/".$ARCH."/".$FILENAMETGZ2."-".$RPMSUBVERSION.".".$ARCH.".rpm into $NEWDESTI/".$FILENAMETGZ2."-".$RPMSUBVERSION.".".$ARCH.".rpm\n";
  513. $cmd="mv \"$RPMDIR/RPMS/".$ARCH."/".$FILENAMETGZ2."-".$RPMSUBVERSION.".".$ARCH.".rpm\" \"$NEWDESTI/".$FILENAMETGZ2."-".$RPMSUBVERSION.".".$ARCH.".rpm\"";
  514. $ret=`$cmd`;
  515. print "Move $RPMDIR/SRPMS/".$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm into $NEWDESTI/".$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm\n";
  516. $cmd="mv \"$RPMDIR/SRPMS/".$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm\" \"$NEWDESTI/".$FILENAMETGZ2."-".$RPMSUBVERSION.".src.rpm\"";
  517. $ret=`$cmd`;
  518. print "Move $RPMDIR/SOURCES/".$FILENAMETGZ2.".tgz into $NEWDESTI/".$FILENAMETGZ2.".tgz\n";
  519. $cmd="mv \"$RPMDIR/SOURCES/".$FILENAMETGZ2.".tgz\" \"$NEWDESTI/".$FILENAMETGZ2.".tgz\"";
  520. $ret=`$cmd`;
  521. next;
  522. }
  523. if ($target eq 'DEB')
  524. {
  525. $NEWDESTI=$DESTI;
  526. if (-d $DESTI.'/package_debian-ubuntu') { $NEWDESTI=$DESTI.'/package_debian-ubuntu'; }
  527. $olddir=getcwd();
  528. $newbuild = $BUILD;
  529. $newbuild =~ s/(dev|alpha)/1/gi; # dev
  530. $newbuild =~ s/beta/2/gi; # beta
  531. $newbuild =~ s/rc./3/gi; # rc
  532. if ($newbuild !~ /-/) { $newbuild.='-4'; } # finale
  533. # now newbuild is 0-1 or 0-4 for example
  534. print "Version is $MAJOR.$MINOR.$newbuild\n";
  535. $build = $newbuild;
  536. $build =~ s/-.*$//g;
  537. # now build is 0 for example
  538. print "Remove target ${FILENAMEDEB}_all.deb...\n";
  539. unlink("$NEWDESTI/${FILENAMEDEB}_all.deb");
  540. print "Remove target ${FILENAMEDEB}.dsc...\n";
  541. unlink("$NEWDESTI/${FILENAMEDEB}.dsc");
  542. print "Remove target ${FILENAMEDEB}.tar.gz...\n";
  543. unlink("$NEWDESTI/${FILENAMEDEB}.tar.gz");
  544. print "Remove target ${FILENAMEDEB}.changes...\n";
  545. unlink("$NEWDESTI/${FILENAMEDEB}.changes");
  546. #rmdir "$BUILDROOT/$PROJECT.tmp";
  547. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp`;
  548. $ret=`rm -fr $BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build`;
  549. print "Create directory $BUILDROOT/$PROJECT.tmp/usr/share\n";
  550. $ret=`mkdir -p "$BUILDROOT/$PROJECT.tmp/usr/share"`;
  551. print "Copy $BUILDROOT/$PROJECT to $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT\n";
  552. $cmd="cp -pr \"$BUILDROOT/$PROJECT\" \"$BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT\"";
  553. $ret=`$cmd`;
  554. print "Fix filefunc.inc.php, install/inc.php, support/inc.php\n";
  555. $cmd="cat \"$BUILDROOT/$PROJECT/htdocs/filefunc.inc.php\" |
  556. sed -e 's/conffile = \"\\\.\\\.\\\/conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' |
  557. sed -e 's/conffile = \"conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' |
  558. sed -e 's/conffiletoshow = \"htdocs\\\/conf\\\/conf.php\"/conffiletoshow = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' > \"$BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/htdocs/filefunc.inc.php\"";
  559. $ret=`$cmd`;
  560. $cmd="cat \"$BUILDROOT/$PROJECT/htdocs/install/inc.php\" |
  561. sed -e 's/conffile = \"\\\.\\\.\\\/conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' |
  562. sed -e 's/conffile = \"conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' |
  563. sed -e 's/conffiletoshow = \"htdocs\\\/conf\\\/conf.php\"/conffiletoshow = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' > \"$BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/htdocs/install/inc.php\"";
  564. $ret=`$cmd`;
  565. $cmd="cat \"$BUILDROOT/$PROJECT/htdocs/support/inc.php\" |
  566. sed -e 's/conffile = \"\\\.\\\.\\\/conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' |
  567. sed -e 's/conffile = \"conf\\\/conf.php\"/conffile = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' |
  568. sed -e 's/conffiletoshow = \"htdocs\\\/conf\\\/conf.php\"/conffiletoshow = \"\\\/etc\\\/dolibarr\\\/conf.php\"/g' > \"$BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/htdocs/support/inc.php\"";
  569. $ret=`$cmd`;
  570. # Create DEBIAN directory
  571. print "Create directory $BUILDROOT/$PROJECT.tmp/DEBIAN\n";
  572. $ret=`mkdir "$BUILDROOT/$PROJECT.tmp/DEBIAN"`;
  573. print "Copy $SOURCE/build/deb/xxx to $BUILDROOT/$PROJECT.tmp/DEBIAN\n";
  574. $ret=`cp -f "$SOURCE/build/deb/config" "$BUILDROOT/$PROJECT.tmp/DEBIAN"`;
  575. $ret=`cp -f "$SOURCE/build/deb/postinst" "$BUILDROOT/$PROJECT.tmp/DEBIAN"`;
  576. $ret=`cp -f "$SOURCE/build/deb/postrm" "$BUILDROOT/$PROJECT.tmp/DEBIAN"`;
  577. $ret=`cp -f "$SOURCE/build/deb/templates" "$BUILDROOT/$PROJECT.tmp/DEBIAN"`;
  578. $ret=`cp -fr "$SOURCE/build/deb/po" "$BUILDROOT/$PROJECT.tmp/DEBIAN"`;
  579. $ret=`rm -fr "$BUILDROOT/$PROJECT.tmp/DEBIAN/po/CVS*"`;
  580. print "Edit version in file $BUILDROOT/$PROJECT.tmp/DEBIAN/control\n";
  581. open (SPECFROM,"<$SOURCE/build/deb/control.debianbin") || die "Error";
  582. open (SPECTO,">$BUILDROOT/$PROJECT.tmp/DEBIAN/control") || die "Error";
  583. while (<SPECFROM>) {
  584. $_ =~ s/__VERSION__/$MAJOR.$MINOR.$newbuild/;
  585. print SPECTO $_;
  586. }
  587. close SPECFROM;
  588. close SPECTO;
  589. print "Version set to $MAJOR.$MINOR.$newbuild\n";
  590. print "Remove other files\n";
  591. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/ChangeLog`;
  592. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/COPYING`;
  593. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/COPYRIGHT`;
  594. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/INSTALL`;
  595. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/README`;
  596. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/README-FR`;
  597. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/README`;
  598. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/README-FR`;
  599. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/aps`;
  600. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/dmg`;
  601. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/pad/README`;
  602. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/tgz/README`;
  603. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/README`;
  604. #$ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb`;
  605. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/po`;
  606. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/changelog`;
  607. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/compat`;
  608. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/config`;
  609. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/control.*`;
  610. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/copyright`;
  611. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/dolibarr.desktop`;
  612. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/dolibarr.menu`;
  613. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/format`;
  614. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/install`;
  615. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/menu`;
  616. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/postrm`;
  617. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/postinst`;
  618. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/rules`;
  619. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/README.debian`;
  620. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/templates`;
  621. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/templates.futur`;
  622. $ret=`rm -f $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/deb/wash`;
  623. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/doap`;
  624. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/exe`;
  625. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/live`;
  626. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/patch`;
  627. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/perl`;
  628. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/rpm`;
  629. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build/zip`;
  630. # We remove embedded libraries or fonts
  631. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/htdocs/includes/artichow/font`,
  632. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/htdocs/includes/barcode/php-barcode/fonts`,
  633. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/htdocs/includes/geoip`;
  634. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/htdocs/includes/odtphp/zip/pclzip`;
  635. # Apache and lighttpd conf files
  636. print "Copy apache.conf file into $BUILDROOT/$PROJECT.tmp/etc/$PROJECT/apache.conf\n";
  637. $ret=`mkdir -p "$BUILDROOT/$PROJECT.tmp/etc/$PROJECT"`;
  638. $ret=`cp "$SOURCE/build/deb/apache.conf" "$BUILDROOT/$PROJECT.tmp/etc/$PROJECT/apache.conf"`;
  639. print "Copy lighttpd.conf file into $BUILDROOT/$PROJECT.tmp/etc/$PROJECT/lighttpd.conf\n";
  640. $ret=`mkdir -p "$BUILDROOT/$PROJECT.tmp/etc/$PROJECT"`;
  641. $ret=`cp "$SOURCE/build/deb/lighttpd.conf" "$BUILDROOT/$PROJECT.tmp/etc/$PROJECT/lighttpd.conf"`;
  642. # dolibarr.desktop
  643. print "Create directory $BUILDROOT/$PROJECT.tmp/usr/share/applications\n";
  644. $ret=`mkdir -p "$BUILDROOT/$PROJECT.tmp/usr/share/applications"`;
  645. print "Copy desktop file into $BUILDROOT/$PROJECT.tmp/usr/share/applications/dolibarr.desktop\n";
  646. $ret=`cp "$SOURCE/build/deb/dolibarr.desktop" "$BUILDROOT/$PROJECT.tmp/usr/share/applications/dolibarr.desktop"`;
  647. # pixmap
  648. print "Create directory $BUILDROOT/$PROJECT.tmp/usr/share/pixmaps\n";
  649. $ret=`mkdir -p "$BUILDROOT/$PROJECT.tmp/usr/share/pixmaps"`;
  650. print "Copy pixmap file into $BUILDROOT/$PROJECT.tmp/usr/share/pixmaps/dolibarr.xpm\n";
  651. $ret=`cp "$SOURCE/doc/images/dolibarr.xpm" "$BUILDROOT/$PROJECT.tmp/usr/share/pixmaps/dolibarr.xpm"`;
  652. print "Create directory $BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT\n";
  653. $ret=`mkdir -p "$BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT"`;
  654. # changelog (to build binary package directly without sources. Useless if we build from sources)
  655. $ret=`gzip -9 -c "$SOURCE/build/deb/changelog" > $BUILDROOT/$PROJECT.tmp/usr/share/doc/$PROJECT/changelog.gz`;
  656. # Set owners
  657. print "Set owners on files/dir\n";
  658. $ret=`chown -R root.root $BUILDROOT/$PROJECT.tmp`;
  659. print "Set permissions on files/dir\n";
  660. $ret=`chmod -R 755 $BUILDROOT/$PROJECT.tmp`;
  661. $cmd="find $BUILDROOT/$PROJECT.tmp -type f -exec chmod 644 {} \\; ";
  662. $ret=`$cmd`;
  663. $cmd="find $BUILDROOT/$PROJECT.tmp/DEBIAN -type f -exec chmod 755 {} \\; ";
  664. $ret=`$cmd`;
  665. $ret=`chmod 644 $BUILDROOT/$PROJECT.tmp/DEBIAN/control`;
  666. $ret=`chmod 644 $BUILDROOT/$PROJECT.tmp/DEBIAN/templates`;
  667. $cmd="find $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build -name '*.php' -type f -exec chmod 755 {} \\; ";
  668. $ret=`$cmd`;
  669. $cmd="find $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/build -name '*.pl' -type f -exec chmod 755 {} \\; ";
  670. $ret=`$cmd`;
  671. $cmd="find $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/dev -name '*.php' -type f -exec chmod 755 {} \\; ";
  672. $ret=`$cmd`;
  673. $ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/dev/translation/langAutoParser.class.php`;
  674. $ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/dev/skeletons/skeleton_page.php`;
  675. $ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/dev/skeletons/modMyModule.class.php`;
  676. $ret=`chmod -R 644 $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/dev/skeletons/skeleton_class.class.php`;
  677. $cmd="find $BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/scripts -name '*.php' -type f -exec chmod 755 {} \\; ";
  678. $ret=`$cmd`;
  679. # Creation of binary package (to build without sources)
  680. #print "Go to directory $BUILDROOT\n";
  681. #chdir("$BUILDROOT");
  682. #$cmd="dpkg -b $BUILDROOT/$PROJECT.tmp $BUILDROOT/${FILENAMEDEB}_all.deb";
  683. #print "Launch DEB build ($cmd)\n";
  684. #$ret=`$cmd`;
  685. #print $ret."\n";
  686. # Prepare source package
  687. print "Create directory $BUILDROOT/$PROJECT.tmp/debian\n";
  688. $ret=`mkdir "$BUILDROOT/$PROJECT.tmp/debian"`;
  689. $ret=`mkdir "$BUILDROOT/$PROJECT.tmp/debian/source"`;
  690. $ret=`rm -fr "$BUILDROOT/$PROJECT.tmp/DEBIAN"`;
  691. $ret=`rm -fr "$BUILDROOT/$PROJECT.tmp/usr/share/$PROJECT/doc"`;
  692. print "Copy $SOURCE/build/deb/xxx to $BUILDROOT/$PROJECT.tmp/debian\n";
  693. # Add files for dpkg-source
  694. $ret=`cp -f "$SOURCE/ChangeLog" "$BUILDROOT/$PROJECT.tmp/usr/share/doc/dolibarr/UserChangeLog"`;
  695. $ret=`cp -f "$SOURCE/build/deb/README.debian" "$BUILDROOT/$PROJECT.tmp/usr/share/doc/dolibarr/README"`;
  696. $ret=`cp -f "$SOURCE/build/deb/changelog" "$BUILDROOT/$PROJECT.tmp/debian/changelog"`;
  697. $ret=`cp -f "$SOURCE/build/deb/control.debian" "$BUILDROOT/$PROJECT.tmp/debian/control"`;
  698. $ret=`cp -f "$SOURCE/build/deb/dolibarr.lintian-overrides" "$BUILDROOT/$PROJECT.tmp/debian/dolibarr.lintian-overrides"`;
  699. $ret=`cp -f "$SOURCE/build/deb/install" "$BUILDROOT/$PROJECT.tmp/debian/install"`;
  700. $ret=`cp -f "$SOURCE/build/deb/rules" "$BUILDROOT/$PROJECT.tmp/debian/rules"`;
  701. $ret=`cp -f "$SOURCE/build/deb/copyright" "$BUILDROOT/$PROJECT.tmp/debian/copyright"`;
  702. $ret=`cp -f "$SOURCE/build/deb/compat" "$BUILDROOT/$PROJECT.tmp/debian/compat"`;
  703. $ret=`cp -f "$SOURCE/build/deb/format" "$BUILDROOT/$PROJECT.tmp/debian/source/format"`;
  704. $ret=`cp -fr "$SOURCE/build/deb/po" "$BUILDROOT/$PROJECT.tmp/debian/po"`;
  705. $ret=`rm -fr "$BUILDROOT/$PROJECT.tmp/debian/po/CVS"`;
  706. # Add files also required to build binary package with dpkg-buildpackages
  707. $ret=`cp -f "$SOURCE/build/deb/config" "$BUILDROOT/$PROJECT.tmp/debian"`;
  708. $ret=`cp -f "$SOURCE/build/deb/postinst" "$BUILDROOT/$PROJECT.tmp/debian"`;
  709. $ret=`cp -f "$SOURCE/build/deb/postrm" "$BUILDROOT/$PROJECT.tmp/debian"`;
  710. $ret=`cp -f "$SOURCE/build/deb/templates" "$BUILDROOT/$PROJECT.tmp/debian"`;
  711. $cmd="mv $BUILDROOT/$PROJECT.tmp $BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build";
  712. $ret=`$cmd`;
  713. # Creation of source package
  714. print "Go to directory $BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build\n";
  715. chdir("$BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build");
  716. #$cmd="dpkg-source -b $BUILDROOT/$PROJECT-$MAJOR.$MINOR.$build";
  717. $cmd="dpkg-buildpackage -us -uc";
  718. print "Launch DEB build ($cmd)\n";
  719. $ret=`$cmd`;
  720. print $ret."\n";
  721. chdir("$olddir");
  722. # Move to final dir
  723. print "Move *_all.deb to $NEWDESTI\n";
  724. $ret=`mv $BUILDROOT/*_all.deb "$NEWDESTI/"`;
  725. $ret=`mv $BUILDROOT/*.dsc "$NEWDESTI/"`;
  726. $ret=`mv $BUILDROOT/*.tar.gz "$NEWDESTI/"`;
  727. $ret=`mv $BUILDROOT/*.changes "$NEWDESTI/"`;
  728. next;
  729. }
  730. if ($target eq 'APS') {
  731. $NEWDESTI=$DESTI;
  732. if (-d $DESTI.'/package_aps') { $NEWDESTI=$DESTI.'/package_aps'; }
  733. $newbuild = $BUILD;
  734. $newbuild =~ s/(dev|alpha)/0/gi; # dev
  735. $newbuild =~ s/beta/1/gi; # beta
  736. $newbuild =~ s/rc./2/gi; # rc
  737. if ($newbuild !~ /-/) { $newbuild.='-3'; } # finale
  738. # now newbuild is 0-0 or 0-3 for example
  739. $REL1 = $newbuild; $REL1 =~ s/-.*$//gi;
  740. if ($RPMSUBVERSION eq 'auto') { $RPMSUBVERSION = $newbuild; $RPMSUBVERSION =~ s/^.*-//gi; }
  741. print "Version is $MAJOR.$MINOR.$REL1-$RPMSUBVERSION\n";
  742. print "Remove target $FILENAMEAPS.zip...\n";
  743. unlink "$NEWDESTI/$FILENAMEAPS.zip";
  744. #rmdir "$BUILDROOT/$PROJECT.tmp";
  745. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp`;
  746. print "Create directory $BUILDROOT/$PROJECT.tmp\n";
  747. $ret=`mkdir -p "$BUILDROOT/$PROJECT.tmp"`;
  748. print "Copy $BUILDROOT/$PROJECT to $BUILDROOT/$PROJECT.tmp\n";
  749. $cmd="cp -pr \"$BUILDROOT/$PROJECT\" \"$BUILDROOT/$PROJECT.tmp\"";
  750. $ret=`$cmd`;
  751. print "Remove other files\n";
  752. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/deb`;
  753. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/dmg`;
  754. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/doap`;
  755. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/exe`;
  756. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/live`;
  757. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/patch`;
  758. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/rpm`;
  759. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/zip`;
  760. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/build/perl`;
  761. $APSVERSION="1.1";
  762. print "Create APS files $BUILDROOT/$PROJECT.tmp/$PROJECT/APP-META.xml\n";
  763. open (SPECFROM,"<$BUILDROOT/$PROJECT/build/aps/APP-META-$APSVERSION.xml") || die "Error";
  764. open (SPECTO,">$BUILDROOT/$PROJECT.tmp/$PROJECT/APP-META.xml") || die "Error";
  765. while (<SPECFROM>) {
  766. $newbuild = $BUILD;
  767. $newbuild =~ s/(dev|alpha)/0/gi; # dev
  768. $newbuild =~ s/beta/1/gi; # beta
  769. $newbuild =~ s/rc./2/gi; # rc
  770. if ($newbuild !~ /-/) { $newbuild.='-3'; } # finale
  771. # now newbuild is 0-0 or 0-3 for example
  772. $_ =~ s/__VERSION__/$MAJOR.$MINOR.$REL1/;
  773. $_ =~ s/__RELEASE__/$RPMSUBVERSION/;
  774. print SPECTO $_;
  775. }
  776. close SPECFROM;
  777. close SPECTO;
  778. print "Version set to $MAJOR.$MINOR.$newbuild\n";
  779. #$cmd="cp -pr \"$BUILDROOT/$PROJECT/build/aps/configure\" \"$BUILDROOT/$PROJECT.tmp/$PROJECT/scripts/configure\"";
  780. #$ret=`$cmd`;
  781. $cmd="cp -pr \"$BUILDROOT/$PROJECT/build/aps/configure.php\" \"$BUILDROOT/$PROJECT.tmp/$PROJECT/scripts/configure.php\"";
  782. $ret=`$cmd`;
  783. $cmd="cp -pr \"$BUILDROOT/$PROJECT/doc/images\" \"$BUILDROOT/$PROJECT.tmp/$PROJECT/images\"";
  784. $ret=`$cmd`;
  785. print "Remove other files\n";
  786. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/dev`;
  787. $ret=`rm -fr $BUILDROOT/$PROJECT.tmp/$PROJECT/doc`;
  788. print "Build APP-LIST.xml files\n";
  789. print "Compress $BUILDROOT/$PROJECT.tmp/$PROJECT into $FILENAMEAPS.zip...\n";
  790. print "Go to directory $BUILDROOT/$PROJECT.tmp\/$PROJECT\n";
  791. $olddir=getcwd();
  792. chdir("$BUILDROOT\/$PROJECT.tmp\/$PROJECT");
  793. $cmd= "zip -9 -r $BUILDROOT/$FILENAMEAPS.zip \*";
  794. print $cmd."\n";
  795. $ret= `$cmd`;
  796. chdir("$olddir");
  797. # Move to final dir
  798. print "Move $BUILDROOT/$FILENAMEAPS.zip to $NEWDESTI/$FILENAMEAPS.zip\n";
  799. $ret=`mv "$BUILDROOT/$FILENAMEAPS.zip" "$NEWDESTI/$FILENAMEAPS.zip"`;
  800. next;
  801. }
  802. if ($target eq 'EXEDOLIWAMP')
  803. {
  804. $NEWDESTI=$DESTI;
  805. if (-d $DESTI.'/package_windows') { $NEWDESTI=$DESTI.'/package_windows'; }
  806. print "Remove target $FILENAMEEXEDOLIWAMP.exe...\n";
  807. unlink "$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe";
  808. print "Compil exe $FILENAMEEXEDOLIWAMP.exe file from iss file \"$SOURCE\\build\\exe\\doliwamp\\doliwamp.iss\"\n";
  809. $cmd= "iscc.exe \"$SOURCE\\build\\exe\\doliwamp\\doliwamp.iss\"";
  810. print "$cmd\n";
  811. $ret= `$cmd`;
  812. #print "$ret\n";
  813. # Move to final dir
  814. print "Move \"$SOURCE\\build\\$FILENAMEEXEDOLIWAMP.exe\" to $NEWDESTI/$FILENAMEEXEDOLIWAMP.exe\n";
  815. rename("$SOURCE/build/$FILENAMEEXEDOLIWAMP.exe","$NEWDESTI/$FILENAMEEXEDOLIWAMP.exe");
  816. next;
  817. }
  818. }
  819. }
  820. print "\n----- Summary -----\n";
  821. foreach my $target (keys %CHOOSEDTARGET) {
  822. if ($CHOOSEDTARGET{$target} < 0) {
  823. print "Package $target not built (bad requirement).\n";
  824. } else {
  825. print "Package $target built successfully in $DESTI\n";
  826. }
  827. }
  828. if (! $batch) {
  829. print "\nPress key to finish...";
  830. my $WAITKEY=<STDIN>;
  831. }
  832. 0;