/usr/bin/dh_ocamlinit is in dh-ocaml 1.0.8.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | #!/usr/bin/perl -w
# Copyright © 2009 Mehdi Dogguy <mehdi@debian.org>
# Copyright © 2010 Stéphane Glondu <glondu@debian.org>
#
# This is free software, you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 or above
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
# USA
=head1 NAME
dh_ocamlinit - Substitutes ocaml variables in debian/*.in files with
their corresponding value.
=cut
use strict;
use Debian::Debhelper::Dh_Lib;
init();
=head1 SYNOPSIS
B<dh_ocamlinit> [S<I<debhelper options>>]
=head1 DESCRIPTION
dh_ocamlinit looks for debian/*.in files and replaces all present
variables (like @OCAML_ABI@, @OCamlStdlibDir@ and @OCamlDllDir@) with
the corresponding value.
dh_ocamlinit handles additional substitutions by specifying them in the
OCAMLINIT_SED environment variable.
=head1 OPTIONS
=over 4
=item B<-d>
Clean files generated from present debian/*.in ones and exit.
This option is deprecated, use dh_ocamlclean instead.
=back
=cut
my $ocamlc = "/usr/bin/ocamlc";
my $ocamlopt = "/usr/bin/ocamlopt";
my $stdlib_path = `$ocamlc -where`;
chomp($stdlib_path);
my $dynlinkcmxa = "$stdlib_path/dynlink.cmxa";
error "$ocamlc does not exists or is not executable" unless -x $ocamlc;
chomp (my $ocaml_version = `$ocamlc -version`);
chomp (my $ocaml_lib_dir = `$ocamlc -where`);
my @ocaml_in_files = split /\n/,
`find debian/ -type f -name "*.in" -not \\( -name control\.in \\) | sed 's/.in\$//'`;
if (defined($dh{D_FLAG})) {
warning("dh_ocamlinit -d is deprecated; use dh_ocamlclean instead");
inhibit_log();
complex_doit("rm -f ocamlinit-stamp @ocaml_in_files");
exit;
}
my $ocamlinit_sed = " -e 's%\@OCamlABI\@%$ocaml_version%g'"
. " -e 's%\@OCamlStdlibDir\@%$ocaml_lib_dir%g'"
. " -e 's%\@OCamlDllDir\@%$ocaml_lib_dir/stublibs%g'";
if (-x $ocamlopt) {
$ocamlinit_sed .= " -e 's/^OPT: //' -e '/^BYTE: /d'";
} else {
$ocamlinit_sed .= " -e '/^OPT: /d' -e 's/^BYTE: //'";
}
if (-f $dynlinkcmxa) {
$ocamlinit_sed .= " -e 's/^DYN: //'";
} else {
$ocamlinit_sed .= " -e '/^DYN: /d'";
}
$ocamlinit_sed .= " ".$ENV{"OCAMLINIT_SED"} if $ENV{"OCAMLINIT_SED"};
foreach my $file (@ocaml_in_files) {
complex_doit("sed $ocamlinit_sed ${file}.in > $file");
}
complex_doit("touch ocamlinit-stamp") unless defined($dh{D_FLAG});
=head1 SEE ALSO
L<debhelper(7)>, L<dh(1)>, L<dh_ocaml(1)>, L<dh_ocamlclean(1)>
This program is meant to be used together with debhelper.
=head1 AUTHOR
Mehdi Dogguy <mehdi@debian.org>
=cut
|