90 lines
2.7 KiB
Plaintext
90 lines
2.7 KiB
Plaintext
#########################################################################
|
|
# #
|
|
# Objective Caml #
|
|
# #
|
|
# Damien Doligez, projet Moscova, INRIA Rocquencourt #
|
|
# #
|
|
# Copyright 2000 Institut National de Recherche en Informatique et #
|
|
# en Automatique. All rights reserved. This file is distributed #
|
|
# under the terms of the Q Public License version 1.0. #
|
|
# #
|
|
#########################################################################
|
|
|
|
# $Id$
|
|
|
|
|
|
# ocamlmkappli -- build a standalone application
|
|
|
|
# usage: ocamlmkappli [optionÉ] fileÉ
|
|
# options:
|
|
# -creator <code> use this creator code (default '????')
|
|
# -ocamlc <command> use <command> as O'Caml compiler (default ocamlc)
|
|
# -d <def> pass "-d <def>" option to Rez
|
|
# -prefsize <int> set preferred memory size (megabytes, default 4000)
|
|
# -lib <folder> use library files from <folder> (default {CAMLLIB})
|
|
# -minsize <int> set minimum memory size (megabytes, default 2000)
|
|
# -name <name> set the name of the application (default a.out)
|
|
# -r <file> add resources from this file (or rez source file)
|
|
|
|
set echo 0
|
|
|
|
set creator '????'
|
|
set ocamlc ocamlc
|
|
set rezopt ''
|
|
set prefsize 4000
|
|
set lib "{{CAMLLIB}}"
|
|
set minsize 2000
|
|
set name a.out
|
|
set rezfiles ''
|
|
|
|
set files ''
|
|
|
|
loop
|
|
break if {#} == 0
|
|
if "{{1}}" == "-creator"
|
|
set creator "{{2}}"
|
|
shift
|
|
else if "{{1}}" == "-ocamlc"
|
|
set ocamlc "{{2}}"
|
|
shift
|
|
else if "{{1}}" == "-d"
|
|
set rezopt "{{rezopt}} -d ``quote "{{2}}"``"
|
|
shift
|
|
else if "{{1}}" == "-prefsize"
|
|
set prefsize {2}
|
|
shift
|
|
else if "{{1}}" == "-lib"
|
|
set lib "{{2}}"
|
|
shift
|
|
else if "{{1}}" == "-minsize"
|
|
set minsize {2}
|
|
shift
|
|
else if "{{1}}" == "-name"
|
|
set name "{{2}}"
|
|
shift
|
|
else if "{{1}}" == "-r"
|
|
set rezfiles "{{rezfiles}} ``quote "{{2}}"``"
|
|
shift
|
|
else
|
|
set files "{{files}} ``quote "{{1}}"``"
|
|
end
|
|
shift
|
|
end
|
|
|
|
if {prefsize} < {minsize}
|
|
set prefsize {minsize}
|
|
end
|
|
|
|
set tmp "{{tempfolder}}ocamlmkappli-`date -n`"
|
|
delete -y -ay -i "{{tmp}}"
|
|
|
|
duplicate -y "{{lib}}appli" "{{name}}"
|
|
rez -d SystemSevenOrLater=1 -d PREFSIZE="{prefsize}" -d MINSIZE="{minsize}" ¶
|
|
-d APPLNAME="¶"{{name}}¶"" -d CREATOR="'{{creator}}'" ¶
|
|
-a -o "{{name}}" "{{lib}}appli.r" {rezopt} {rezfiles}
|
|
{ocamlc} -use-prims "{{lib}}appliprims" {files} -o "{{tmp}}"
|
|
catenate "{{tmp}}" >> "{{name}}"
|
|
setfile -t APPL -c "{{creator}}" -a iB "{{name}}"
|
|
|
|
delete -i "{{tmp}}"
|