summaryrefslogtreecommitdiff
path: root/dh_illumos_make
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2012-07-01 14:07:12 +0000
committerIgor Pashev <pashev.igor@gmail.com>2012-07-01 14:07:55 +0000
commit99131d5aea78b7c1afa0d8107f962aac8c7adf02 (patch)
treefc44ee5c9026bef821e95a6c5f72e8d61bb1d13e /dh_illumos_make
parent22a93d7a70c0d1c2bbd00711b835b616d51dc68a (diff)
downloaddh-illumos-99131d5aea78b7c1afa0d8107f962aac8c7adf02.tar.gz
Added dh_illumos_make
Diffstat (limited to 'dh_illumos_make')
-rwxr-xr-xdh_illumos_make101
1 files changed, 101 insertions, 0 deletions
diff --git a/dh_illumos_make b/dh_illumos_make
new file mode 100755
index 0000000..2f36a5c
--- /dev/null
+++ b/dh_illumos_make
@@ -0,0 +1,101 @@
+#!/usr/bin/perl -w
+
+=head1 NAME
+
+dh_illumos_make - build illumos sources
+
+=cut
+
+use strict;
+use Debian::Debhelper::Dh_Lib;
+
+=head1 SYNOPSIS
+
+B<dh_illumos_make> [S<I<debhelper options>>] [B<-m>I<make program>]
+[B<-t>I<target>] [directories]
+
+=head1 DESCRIPTION
+
+C<dh_illumos_make> is responsible for building illumos sources.
+If no directories specified, it will build entire illumos gate (not recommended,
+and probably will fail). If directories are given, it will build within those directories
+in order. Illumos sources should be previously unpacked with L<dh_illumos_gate(1)>.
+
+=head1 EXAMPLES
+
+ dh_illumos_gate -t install_h usr/src/uts is equivalent to
+
+ cd illumos-gate
+ ksh93 bldenv.sh -d illumos.sh -c "cd usr/src/uts && /usr/bin/sunmake install_h"
+
+
+ dh_illumos_gate -m /opt/SUNWspro/bin/dmake usr/src/lib is equivalent to
+
+ cd illumos-gate
+ ksh93 bldenv.sh -d illumos.sh -c "cd usr/src/lib && /opt/SUNWspro/bin/dmake install"
+
+
+=head1 OPTIONS
+
+=over 4
+
+=item B<-m>I<make program> B<--make=>I<make program>
+
+Make program to use. Default is F</usr/bin/sunmake>.
+
+=item B<-t>I<target> B<--target=>I<target>
+
+Target for I<make program>. Default is C<install> which will build
+sources and install into proto area.
+
+=back
+
+=head1 NOTES
+
+If illumos sources were unpacked with L<dh_illumos_gate(1)>,
+proto area is F<debian/tmp>.
+
+=cut
+
+$dh{'MAKE'} = '/usr/bin/sunmake';
+$dh{'TARGET'} = 'install';
+
+init(options => {
+ 'make|m=s' => \$dh{'MAKE'},
+ 'target|t=s' => \$dh{'TARGET'},
+});
+
+my @dirs = ('usr/src');
+if (@ARGV) {
+ @dirs = @ARGV;
+}
+
+# Check whether all dirs exist before doing anything:
+foreach (@dirs) {
+ s,.*illumos-gate/+,,;
+ if (! -d "illumos-gate/$_") {
+ error("`illumos-gate/$_' does not exist or not a directory");
+ }
+}
+
+# Build in each dir:
+chdir('illumos-gate');
+# Sanity checks:
+foreach (qw/bldenv.sh illumos.sh/) {
+ if (! -r $_) {
+ error("`$_' not found under illumos-gate. Maybe illumos sources were not properly unpacked.")
+ }
+}
+foreach (@dirs) {
+ doit('ksh93', 'bldenv.sh', '-d', 'illumos.sh', '-c', "cd $_ && $dh{'MAKE'} $dh{'TARGET'}");
+}
+
+=head1 SEE ALSO
+
+L<debhelper(7)>, L<dh_illumos_gate(1)>.
+
+=head1 AUTHOR
+
+Igor Pashev <pashev.igor@gmail.com>
+
+=cut