Palacios Public Git Repository

To checkout Palacios execute

  git clone http://v3vee.org/palacios/palacios.web/palacios.git
This will give you the master branch. You probably want the devel branch or one of the release branches. To switch to the devel branch, simply execute
  cd palacios
  git checkout --track -b devel origin/devel
The other branches are similar.


Release 1.0
[palacios.git] / SETUP_DEV_ENV.pl
diff --git a/SETUP_DEV_ENV.pl b/SETUP_DEV_ENV.pl
new file mode 100755 (executable)
index 0000000..2c74c0c
--- /dev/null
@@ -0,0 +1,141 @@
+#!/usr/bin/perl
+
+
+
+$dev_root = `pwd`;
+#
+# On cygwin, do something like the following
+# pwd behaves trangely on cygwin
+#
+#$dev_root='/home/pdinda/Codes/vmm-dev';
+chomp $dev_root;
+$location = $dev_root . "/devtools";
+
+
+print "\n";
+print "Installing and configuring the v3vee development environment...\n";
+print "Location: " . $location . "\n\n";
+
+mkdir $location;
+
+
+
+#install_binutils_2_16_91_i386();
+install_gcc_3_4_6_i386();
+install_nasm();
+#
+# This part is not quite working yet
+# on cygwin, do through it by hand      
+#
+#install_dev86_0_16_17();
+
+
+sub install_nasm {
+  ### Setup vmx capable nasm
+  print "Installing VMX capable NASM...\n";
+  chdir "./utils";
+  print "Unpacking...";
+  `tar -xzf nasm-0.98.39.tar.gz`;
+  print "done\n";
+  chdir "./nasm-0.98.39";
+  print "Patching in VMX support\n";
+  `patch < ../vmx.patch`;
+  print "Patch to fix the stupid installer...\n";
+  `patch < ../nasm-install.patch`;
+  print "Configuring...\n";
+  `./configure --prefix=$location`;
+  print "Compiling...\n";
+  `make`;
+  print "Installing...";
+  `make install`;
+  print "Done!!\n\n";
+  chdir $dev_root;
+}
+
+
+
+sub install_binutils_2_16_91_i386 {
+  print "Installing binutils v2.16.91\n";
+  chdir "./utils";
+  print "Unpacking...";
+  `tar -xzf binutils-2.16.91.0.7.tar.gz`;
+  print "done\n";
+  chdir "binutils-2.16.91.0.7";
+  print "Configuring...";
+  `./configure --prefix=$location/i386 --target=i386-elf --disable-nls`;
+  print "done\n";
+  print "Compiling...";
+  `make -j 4 all`;
+  print "done\n";
+  print "Installing...";
+  `make install`;
+  print "done!!\n";
+  chdir $dev_root;
+}
+
+
+sub install_gcc_3_4_6_i386 {
+  install_binutils_2_16_91_i386();
+  $ENV{'PATH'} = "$location/i386/bin:" . $ENV{'PATH'};
+
+  print "Installing gcc v3.4.6\n";
+  chdir "./utils";
+  print "Unpacking...";
+  `tar -xzf gcc-3.4.6.tar.gz`;
+  print "done\n";
+  chdir "gcc-3.4.6";
+  print "Configuring...";
+  `./configure --prefix=$location/i386 --target=i386-elf --disable-nls --enable-languages=c,c++ --without-headers`;
+  print "done\n";
+  print "Compiling...";
+  `make -j 4 all-gcc`;
+  print "done\n";
+  print "Installing...";
+  `make install-gcc`;
+  print "done!!\n";
+  chdir $dev_root;
+}
+
+
+sub install_binutils_2_16_91_x86_64 {
+
+}
+
+
+sub install_gcc_3_4_6_x86_64 {
+
+  print "Installing gcc v3.4.6\n";
+  chdir "./utils";
+  print "Unpacking...";
+  `tar -xzf gcc-3.4.6.tar.gz`;
+  print "done\n";
+  chdir "gcc-3.4.6";
+  print "Configuring...";
+  `./configure --target=x86_64 --prefix=$location/gcc_3.4.6-x86_64 --disable-nls --enable-languages=c,c++ --without-headers`;
+  print "done\n";
+  print "Compiling...\n";
+  `make all-gcc`;
+  print "done\n";
+  print "Installing...\n";
+  `make install-gcc`;
+  print "done!!\n";
+  chdir $dev_root;
+}
+
+sub install_dev86_0_16_17 {
+
+  print "Installing bcc, ld86, as86, and bcc-cpp from Dev86src-0.16.17.tar.gz\n";
+  chdir "./utils";
+  print "Unpacking...";
+  `tar -xzf Dev86src-0.16.17.tar.gz`;
+  print "done\n";
+  chdir "./dev86-0.16.17";
+  print "Compiling...\n";
+  `make as86 ld86 bcc86`;
+  `make -C cpp`;
+  print "done\n";
+  print "Installing...\n";
+  `cp as/as86.exe bcc/bcc.exe bcc/bcc-cc1.exe cpp/bcc-cpp.exe ld/ld86.exe $location/bin`;
+  print "done!!\n";
+  chdir $dev_root;
+}