From: Gerd Stolpmann <Gerd.Stolpmann@darmstadt.netsurf.de>
To: Max Skaller <maxs@in.ot.com.au>, <caml-list@inria.fr>
Subject: Re: Portability of applications written in OCAML: C stuff
Date: Thu, 24 Feb 2000 21:17:51 +0100 [thread overview]
Message-ID: <00022422015100.15222@ice> (raw)
In-Reply-To: <38B49DBD.8DCBB87A@in.ot.com.au>
On Thu, 24 Feb 2000, Max Skaller wrote:
>This is not acceptable. My rules are: after the client untars the
>distribution of
>my product, they may have to edit part of the build script, 'maker'
>which is
>written in Python. Then they say 'python maker' and the build has to
>work
>without any other intervention. Make and autoconf are not permitted: any
>work
>these do must be done by ME in the 'maker' script IN PYTHON.
>
>In particular, while my product is currently Unix only, the build
>process
>must work under Windows too, which rules out make, autoconf, and other
>such silliness. :-)
We all know that Windows is not a serious operating system because it lacks
support for many tasks we all EXPECT from an operating system. This is one of
the reasons why I do not offer Windows support for my components. You have only
two possibilities: (A) reinventing the wheel by writing tools yourself; (B) not
offering special Windows support.
Please don't blame us that it is difficult to implement (A).
I would say that your build process is ... mhhh ... strange. If I did it
with only limited means, I would still distinguish between source directories,
and a (temporary) installation directory, say:
lib: the installation directory
source1, source2, ...: source directories
Simply compile the sources one after another (in a fixed order), and install
the results in lib. While compiling the sources, include -I ../lib such that
the previous results can be used in the next compilation step. This is simple
enough to be implemented even without Makefiles and autoconf.
>> "config.h" is generated by "configure" automatically and is actually part
>> of the C-library "pcre", which I always copy verbatim from its author.
>> Unless you also copy this "configure"-script out of its assigned directory
>> into your source dir, it won't do any harm to your files.
>
> pcre cannot build without config.h, and neither can mlgtk.
>So there is a conflict, since both require a file called 'config.h'.
As far as I know you cannot choose the name of "config.h"; this is hard-wired
in autoconf.
>> That's what directories are for!
>
> I do not wish to build and mess around with subpackages
>in directories, which amount to a small part of my overall package:
>pcre, for example, corresponds to a single library module with a few
>functions in it. There are hundreds of functions to build, and I want
>the sources all in the SAME directory.
Your argumentation is ridiculous. I often have directories with only very few
files if there good reasons to create them. In general I would argue that
directories reduce the mess.
> When ocaml supports packages with subdirectory structures natively,
>THEN I will require the client install third party packages, rather than
>distributing them as an integral part of my source.
Why do you need a "native" package implementation? I think there are good
reasons to have one (e.g. a uniform installation procedure), but in your case
you can use ANY package mechanism (I have one), simply distribute it with your
sources.
>> I agree on this: a standard way for adding libraries, etc., would probably
>> boost productivity...
>
> Enormously -- but I will be happy to wait until it can be done
>right, since it is VERY hard to 'fix' a broken design here. {The python
>model is OK, but not perfect}
What does "right" mean? It depends on your expectations. For example, I
think a package mechanism should not include any build functionality (some kind
of "make") because there are already good solutions (even for Windows (cygwin)).
Gerd
--
----------------------------------------------------------------------------
Gerd Stolpmann Telefon: +49 6151 997705 (privat)
Viktoriastr. 100
64293 Darmstadt EMail: Gerd.Stolpmann@darmstadt.netsurf.de (privat)
Germany
----------------------------------------------------------------------------
next prev parent reply other threads:[~2000-02-25 13:02 UTC|newest]
Thread overview: 26+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-02-15 13:01 Portability of applications written in OCAML Claude Marche
2000-02-16 13:09 ` Jean-Francois Monin
2000-02-16 14:08 ` Claude Marche
2000-02-16 14:28 ` Jean-Francois Monin
2000-02-18 9:18 ` Patrick Goldbronn - SYSCO
2000-02-16 22:49 ` Gerd Stolpmann
2000-02-18 9:36 ` Xavier Leroy
2000-02-21 20:45 ` skaller
2000-02-22 8:13 ` Sven LUTHER
2000-02-22 9:21 ` Xavier Leroy
2000-02-22 23:43 ` Portability of applications written in OCAML: C stuff Max Skaller
2000-02-23 18:31 ` Markus Mottl
2000-02-24 2:55 ` Max Skaller
2000-02-24 14:44 ` Sven LUTHER
2000-02-24 15:04 ` Alan Schmitt
2000-02-24 23:51 ` Max Skaller
2000-02-25 8:37 ` Alan Schmitt
2000-02-25 16:58 ` skaller
2000-02-24 20:17 ` Gerd Stolpmann [this message]
2000-02-25 0:35 ` Max Skaller
2000-02-25 13:21 ` STARYNKEVITCH Basile
2000-02-17 8:05 ` Portability of applications written in OCAML skaller
2000-02-25 12:29 Portability of applications written in OCAML: C stuff Juergen Pfitzenmaier
2000-02-25 16:51 ` skaller
2000-02-25 14:05 Juergen Pfitzenmaier
2000-02-26 18:47 Juergen Pfitzenmaier
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=00022422015100.15222@ice \
--to=gerd.stolpmann@darmstadt.netsurf.de \
--cc=caml-list@inria.fr \
--cc=maxs@in.ot.com.au \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox