Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

The unrecognized minister of propaganda, E -- seen in an email from Ean Schuessler


devel / comp.lang.c / Re: Build Systems

SubjectAuthor
* Build SystemsBart
+* Re: Build SystemsBen Bacarisse
|+* Re: Build SystemsBart
||`* Re: Build SystemsBen Bacarisse
|| `* Re: Build SystemsScott Lurndal
||  +* Re: Build SystemsKenny McCormack
||  |+* Re: Build SystemsMalcolm McLean
||  ||`* Dev on Windoze (Was: Build Systems)Kenny McCormack
||  || +- Re: Dev on Windoze (Was: Build Systems)Malcolm McLean
||  || +* Re: Dev on Windoze (Was: Build Systems)Matthew Ernisse
||  || |+- Re: Dev on Windoze (Was: Build Systems)Michael S
||  || |+* Re: Dev on Windoze (Was: Build Systems)bart c
||  || ||`- Re: Dev on Windoze (Was: Build Systems)Matthew Ernisse
||  || |`* Re: Dev on WindozePhil Carmody
||  || | `- Re: Dev on WindozeChris M. Thomasson
||  || `- Re: Dev on Windoze (Was: Build Systems)Chris M. Thomasson
||  |`* Re: Build SystemsKaz Kylheku
||  | `* Re: Build SystemsKenny McCormack
||  |  `- Re: Build SystemsKarl Meyer
||  `- Re: Build SystemsBart
|`* Re: Build SystemsDavid Brown
| `* Re: Build SystemsBart
|  +* Re: Build SystemsScott Lurndal
|  |`* Re: Build SystemsBart
|  | `* Re: Build SystemsDavid Brown
|  |  +* Re: Build SystemsBart
|  |  |`* Re: Build SystemsDavid Brown
|  |  | `* Re: Build SystemsBart
|  |  |  +- Re: Build SystemsScott Lurndal
|  |  |  +* Re: Build SystemsMJ OS_EXAMINE
|  |  |  |+- Re: Build SystemsKenny McCormack
|  |  |  |`- Re: Build SystemsBart
|  |  |  +* Re: Build SystemsDavid Brown
|  |  |  |+* Re: Build SystemsScott Lurndal
|  |  |  ||+- Re: Build SystemsKenny McCormack
|  |  |  ||+- Re: Build SystemsPhil Carmody
|  |  |  ||`- Re: Build SystemsDavid Brown
|  |  |  |`* Re: Build SystemsBart
|  |  |  | +- Re: Build SystemsKeith Thompson
|  |  |  | `* Re: Build SystemsDavid Brown
|  |  |  |  `* Re: Build SystemsBart
|  |  |  |   +* Re: Build SystemsKeith Thompson
|  |  |  |   |`* Re: Build SystemsBart
|  |  |  |   | +- Re: Build SystemsKaz Kylheku
|  |  |  |   | `* Re: Build SystemsDavid Brown
|  |  |  |   |  `* Re: Build SystemsBart
|  |  |  |   |   `* Re: Build SystemsDavid Brown
|  |  |  |   |    +- Re: Build SystemsBart
|  |  |  |   |    +* Re: Build SystemsBart
|  |  |  |   |    |+* Re: Build SystemsScott Lurndal
|  |  |  |   |    ||`- Re: Build SystemsBart
|  |  |  |   |    |+* Re: Build SystemsBen Bacarisse
|  |  |  |   |    ||`* Re: Build SystemsBart
|  |  |  |   |    || +* Re: Build SystemsRichard Harnden
|  |  |  |   |    || |`- Re: Build SystemsBart
|  |  |  |   |    || `* Re: Build SystemsBen Bacarisse
|  |  |  |   |    ||  `* Re: Build SystemsBart
|  |  |  |   |    ||   `* Re: Build SystemsBen Bacarisse
|  |  |  |   |    ||    `* Re: Build SystemsBart
|  |  |  |   |    ||     `- Re: Build SystemsBen Bacarisse
|  |  |  |   |    |`* Re: Build SystemsDavid Brown
|  |  |  |   |    | `* Re: Build SystemsBart
|  |  |  |   |    |  +* Re: Build SystemsKeith Thompson
|  |  |  |   |    |  |`* Re: Build Systemsbart c
|  |  |  |   |    |  | `* Re: Build SystemsKeith Thompson
|  |  |  |   |    |  |  `* Re: Build SystemsDavid Brown
|  |  |  |   |    |  |   `* Re: Build SystemsChris M. Thomasson
|  |  |  |   |    |  |    +- Re: Build SystemsChris M. Thomasson
|  |  |  |   |    |  |    +* Re: Build SystemsKeith Thompson
|  |  |  |   |    |  |    |`- Re: Build SystemsChris M. Thomasson
|  |  |  |   |    |  |    `* Re: Build SystemsDavid Brown
|  |  |  |   |    |  |     +- Re: Build SystemsChris M. Thomasson
|  |  |  |   |    |  |     `* Re: Build SystemsChris M. Thomasson
|  |  |  |   |    |  |      +* Re: Build Systemsjames...@alumni.caltech.edu
|  |  |  |   |    |  |      |+- Re: Build Systemscandycane
|  |  |  |   |    |  |      |`* Re: Build SystemsKaz Kylheku
|  |  |  |   |    |  |      | `* Re: Build SystemsDavid Brown
|  |  |  |   |    |  |      |  `- Re: Build SystemsChris M. Thomasson
|  |  |  |   |    |  |      `* Re: Build SystemsDavid Brown
|  |  |  |   |    |  |       `- Re: Build SystemsChris M. Thomasson
|  |  |  |   |    |  +* Re: Build SystemsKaz Kylheku
|  |  |  |   |    |  |`* Re: Build Systemsbart c
|  |  |  |   |    |  | `* Re: Build SystemsBen Bacarisse
|  |  |  |   |    |  |  +* Re: Build Systemsbart c
|  |  |  |   |    |  |  |+* Re: Build SystemsDavid Brown
|  |  |  |   |    |  |  ||`- Re: Build Systemsbart c
|  |  |  |   |    |  |  |+* Re: Build SystemsKelsey Bjarnason
|  |  |  |   |    |  |  ||`* Re: Build Systemsbart c
|  |  |  |   |    |  |  || `* Re: Build SystemsKelsey Bjarnason
|  |  |  |   |    |  |  ||  `* Re: Build Systemsbart c
|  |  |  |   |    |  |  ||   `* Re: Build SystemsKelsey Bjarnason
|  |  |  |   |    |  |  ||    `* Re: Build SystemsBart
|  |  |  |   |    |  |  ||     `* Re: Build SystemsKelsey Bjarnason
|  |  |  |   |    |  |  ||      +* Re: Build SystemsBart
|  |  |  |   |    |  |  ||      |+* Re: Build SystemsBart
|  |  |  |   |    |  |  ||      ||`* Re: Build SystemsRichard Harnden
|  |  |  |   |    |  |  ||      || `- Re: Build SystemsBart
|  |  |  |   |    |  |  ||      |`* Re: Build SystemsScott Lurndal
|  |  |  |   |    |  |  ||      | `* Re: Build SystemsBart
|  |  |  |   |    |  |  ||      |  +* Re: Build SystemsMalcolm McLean
|  |  |  |   |    |  |  ||      |  |`- Re: Build SystemsBart
|  |  |  |   |    |  |  ||      |  +- Re: Build SystemsScott Lurndal
|  |  |  |   |    |  |  ||      |  +* Re: Build SystemsScott Lurndal
|  |  |  |   |    |  |  ||      |  +- Re: Build SystemsChris M. Thomasson
|  |  |  |   |    |  |  ||      |  `- Re: Build SystemsChris M. Thomasson
|  |  |  |   |    |  |  ||      `- Re: Build SystemsKaz Kylheku
|  |  |  |   |    |  |  |`* Re: Build SystemsBen Bacarisse
|  |  |  |   |    |  |  `* Re: Build SystemsScott Lurndal
|  |  |  |   |    |  `* Re: Build SystemsDavid Brown
|  |  |  |   |    `* Re: Build SystemsBart
|  |  |  |   `* Re: Build SystemsDavid Brown
|  |  |  `* Re: Build SystemsKeith Thompson
|  |  `- Really? (Was: Build Systems)Kenny McCormack
|  `* Re: Build SystemsDavid Brown
+* Re: Build SystemsDavid Brown
+- Re: Build SystemsThiago Adams
`- Re: Build SystemsMichael S

Pages:12345678910111213
Re: Build Systems

<ubvpss$1u0bo$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28019&group=comp.lang.c#28019

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: richard....@gmail.com (Richard Harnden)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Mon, 21 Aug 2023 14:47:05 +0100
Organization: A noiseless patient Spider
Lines: 151
Message-ID: <ubvpss$1u0bo$1@dont-email.me>
References: <uban99$1rnpb$1@dont-email.me> <ubgpip$2vk5e$1@dont-email.me>
<ubgulr$3095n$1@dont-email.me> <87pm3nlxuu.fsf@nosuchdomain.example.com>
<ubh3s8$30v7t$1@dont-email.me> <ubi5do$38ii5$1@dont-email.me>
<ubib54$39aqa$1@dont-email.me> <ubii7m$3acds$1@dont-email.me>
<ubivp8$3cjsl$1@dont-email.me> <ubl89c$3prfv$1@dont-email.me>
<ubma81$3upnp$1@dont-email.me> <20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk>
<66629235-f2e0-46e0-bcb1-bf3abe1e33cdn@googlegroups.com>
<87edjyvdba.fsf@bsb.me.uk>
<038f3d41-228f-4f22-9086-8596e9022057n@googlegroups.com>
<87edjxts00.fsf@bsb.me.uk> <ubtvb0$1hpq8$1@dont-email.me>
<87wmxps26h.fsf@bsb.me.uk> <ubub09$1jeo1$1@dont-email.me>
<87r0nxrvm1.fsf@bsb.me.uk> <ubvd3u$1roqh$1@dont-email.me>
<ubvkaq$1svhh$1@dont-email.me> <ubvnsg$1tkml$1@dont-email.me>
Reply-To: nospam.harnden@gmail.com
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Mon, 21 Aug 2023 13:47:08 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="8927aa703ed4f38aa37773b0dbd257cd";
logging-data="2031992"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19KjKYzPlNOlDfay8st0ZhO2SNYqQ8svWo="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.14.0
Cancel-Lock: sha1:26Iy7WKktKYrbdhE4lt+cTbA7YY=
In-Reply-To: <ubvnsg$1tkml$1@dont-email.me>
 by: Richard Harnden - Mon, 21 Aug 2023 13:47 UTC

On 21/08/2023 14:12, Bart wrote:
> On 21/08/2023 13:12, Richard Harnden wrote:
>> On 21/08/2023 11:09, Bart wrote:
>
>>> Start here: https://libjpeg.sourceforge.net/
>>>
>>> (The configure file needed /bin/sh changed to /bin/bash)
>>
>>
>> Or, jpeg-turbo:
>> git clone https://github.com/libjpeg-turbo/libjpeg-turbo.git
>
> That last one uses CMake.
>
> Among the highly varied build instructions, the ones for MingW are:
>
>   cd {build_directory}
>   cmake -G"MSYS Makefiles" [additional CMake flags] {source_directory}
>   make
>
> I experimented with various incantations of that middle line (I
> understand that [] means optional, and {} is a placeholder for an actual
> path), but got nowhere.

(
I would've used [] for optional and <> for a place-holder,
and {} for a group/set of things
)

For me, this worked:
cd libjpeg-turbo
cmake -G"Unix Makefiles"
make
make test

>
> > That is from 1998.
> >
> > Better is http://ijg.org/, then download jpegsrc.v9e.tar.gz (or
> > jpegsr9e.zip)
>
> At first this looks very similar to the 1998 version. But in the INSTALL
> file, there is something magical:
>
>   Configuring the software by hand
>   --------------------------------
>
>   First, generate a jconfig.h file.  If you are moderately familiar
> with C,
>   the comments in jconfig.txt should be enough information to do this;
> just
>   copy jconfig.txt to jconfig.h and edit it appropriately.  Otherwise,
> you may...
>
> I copied jconfig.txt to jconfig.h. Now I need a list of files. It
> suggests using makefile.ansi for the makefile, which I will try first.
>
> I did that, and 'make' now finally works.
>
> The difference here is a project explains things in English and shows
> how to get around the need for things like 'configure'.
>
> jconfig.h, if comments are stripped, is 38 lines. I didn't need to
> change anything.
>
> The build process creates 5 utility programs from 73 .c files. What's
> still missing is a list of the modules for each program. Without that, I
> had to rely on the makefile working. This time, it did.
>
> The build process to build from scratch could be summarised in a few
> lines. If I capture the output of make, then the summary involves these
> files:
>
> ar rc libjpeg.a  jcapimin.o jcapistd.o jcarith.o jctrans.o jcparam.o
> jdatadst.o jcinit.o jcmaster.o jcmarker.o jcmainct.o jcprepct.o
> jccoefct.o jccolor.o jcsample.o jchuff.o jcdctmgr.o jfdctfst.o
> jfdctflt.o jfdctint.o jdapimin.o jdapistd.o jdarith.o jdtrans.o
> jdatasrc.o jdmaster.o jdinput.o jdmarker.o jdhuff.o jdmainct.o
> jdcoefct.o jdpostct.o jddctmgr.o jidctfst.o jidctflt.o jidctint.o
> jdsample.o jdcolor.o jquant1.o jquant2.o jdmerge.o jaricom.o jcomapi.o
> jutils.o jerror.o jmemmgr.o jmemnobs.o
> cc  -o djpeg djpeg.o wrppm.o wrgif.o wrtarga.o wrrle.o wrbmp.o
> rdcolmap.o cdjpeg.o libjpeg.a
> cc  -o jpegtran jpegtran.o rdswitch.o cdjpeg.o transupp.o libjpeg.a
> cc  -o cjpeg cjpeg.o rdppm.o rdgif.o rdtarga.o rdrle.o rdbmp.o
> rdswitch.o cdjpeg.o libjpeg.a
> cc  -o rdjpgcom rdjpgcom.o
> cc  -o wrjpgcom wrjpgcom.o
>
> For 'cc', if I change .o to .c, I could probably build directly from
> sources.
>
> I didn't expect that libjpeg.a file and I'm not familiar with that. But
> I expect that where libjpeg.a is used, I can substitute the list of .c
> files that comprise it.
>
> I will try that experiment first with the existing .o files like this:
>
>  gcc  -o djpeg djpeg.o wrppm.o wrgif.o wrtarga.o wrrle.o wrbmp.o
> rdcolmap.o cdjpeg.o  jcapimin.o jcapistd.o jcarith.o jctrans.o jcparam.o
> jdatadst.o jcinit.o jcmaster.o jcmarker.o jcmainct.o jcprepct.o
> jccoefct.o jccolor.o jcsample.o jchuff.o jcdctmgr.o jfdctfst.o
> jfdctflt.o jfdctint.o jdapimin.o jdapistd.o jdarith.o jdtrans.o
> jdatasrc.o jdmaster.o jdinput.o jdmarker.o jdhuff.o jdmainct.o
> jdcoefct.o jdpostct.o jddctmgr.o jidctfst.o jidctflt.o jidctint.o
> jdsample.o jdcolor.o jquant1.o jquant2.o jdmerge.o jaricom.o jcomapi.o
> jutils.o jerror.o jmemmgr.o jmemnobs.o
>  gcc  -o jpegtran jpegtran.o rdswitch.o cdjpeg.o transupp.o  jcapimin.o
> jcapistd.o jcarith.o jctrans.o jcparam.o jdatadst.o jcinit.o jcmaster.o
> jcmarker.o jcmainct.o jcprepct.o jccoefct.o jccolor.o jcsample.o
> jchuff.o jcdctmgr.o jfdctfst.o jfdctflt.o jfdctint.o jdapimin.o
> jdapistd.o jdarith.o jdtrans.o jdatasrc.o jdmaster.o jdinput.o
> jdmarker.o jdhuff.o jdmainct.o jdcoefct.o jdpostct.o jddctmgr.o
> jidctfst.o jidctflt.o jidctint.o jdsample.o jdcolor.o jquant1.o
> jquant2.o jdmerge.o jaricom.o jcomapi.o jutils.o jerror.o jmemmgr.o
> jmemnobs.o
>  gcc  -o cjpeg cjpeg.o rdppm.o rdgif.o rdtarga.o rdrle.o rdbmp.o
> rdswitch.o cdjpeg.o  jcapimin.o jcapistd.o jcarith.o jctrans.o jcparam.o
> jdatadst.o jcinit.o jcmaster.o jcmarker.o jcmainct.o jcprepct.o
> jccoefct.o jccolor.o jcsample.o jchuff.o jcdctmgr.o jfdctfst.o
> jfdctflt.o jfdctint.o jdapimin.o jdapistd.o jdarith.o jdtrans.o
> jdatasrc.o jdmaster.o jdinput.o jdmarker.o jdhuff.o jdmainct.o
> jdcoefct.o jdpostct.o jddctmgr.o jidctfst.o jidctflt.o jidctint.o
> jdsample.o jdcolor.o jquant1.o jquant2.o jdmerge.o jaricom.o jcomapi.o
> jutils.o jerror.o jmemmgr.o jmemnobs.o
>  gcc  -o rdjpgcom rdjpgcom.o
>  gcc  -o wrjpgcom wrjpgcom.o
>
> That worked. Now I replace those .o by .c, delete all .o and .exe files,
> and try again. It takes a bit longer, but still works!
>
> So the minimal need to build this project on Windows and mingws is a
> 6-line script in /any/ language (like above but with .c, and using -s),
> and a 38-line jconfig.h file.
>
> The actual makefile is 200 lines (times 15) plus 16000 lines of configure.
>
> Of course, I needed a working makefile to extract this information. It
> would be nice to have those six lines as a default or fall-back method.
>

I just did ...
tar xvzf jpegsrc.v9e.tar.gz
cd jpeg-9e
../configure
make
make test
.... and it was happy.

I guess it's alot easier on linux.

Re: Build Systems

<uc092l$20hl4$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28022&group=comp.lang.c#28022

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: bc...@freeuk.com (Bart)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Mon, 21 Aug 2023 19:06:13 +0100
Organization: A noiseless patient Spider
Lines: 73
Message-ID: <uc092l$20hl4$1@dont-email.me>
References: <uban99$1rnpb$1@dont-email.me> <ubgpip$2vk5e$1@dont-email.me>
<ubgulr$3095n$1@dont-email.me> <87pm3nlxuu.fsf@nosuchdomain.example.com>
<ubh3s8$30v7t$1@dont-email.me> <ubi5do$38ii5$1@dont-email.me>
<ubib54$39aqa$1@dont-email.me> <ubii7m$3acds$1@dont-email.me>
<ubivp8$3cjsl$1@dont-email.me> <ubl89c$3prfv$1@dont-email.me>
<ubma81$3upnp$1@dont-email.me> <20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk>
<66629235-f2e0-46e0-bcb1-bf3abe1e33cdn@googlegroups.com>
<87edjyvdba.fsf@bsb.me.uk>
<038f3d41-228f-4f22-9086-8596e9022057n@googlegroups.com>
<87edjxts00.fsf@bsb.me.uk> <ubtvb0$1hpq8$1@dont-email.me>
<87wmxps26h.fsf@bsb.me.uk> <ubub09$1jeo1$1@dont-email.me>
<87r0nxrvm1.fsf@bsb.me.uk> <ubvd3u$1roqh$1@dont-email.me>
<ubvkaq$1svhh$1@dont-email.me> <ubvnsg$1tkml$1@dont-email.me>
<ubvpss$1u0bo$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Mon, 21 Aug 2023 18:06:13 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="86e592efd029e2f8cdeb6f2d4f84aa30";
logging-data="2115236"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/pxt0vtcykGAV3SXcZBiNXmY7G1cnI9Xg="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.14.0
Cancel-Lock: sha1:QKQ053IN7zMRcfkoC4WKCcLiek0=
In-Reply-To: <ubvpss$1u0bo$1@dont-email.me>
 by: Bart - Mon, 21 Aug 2023 18:06 UTC

On 21/08/2023 14:47, Richard Harnden wrote:
> On 21/08/2023 14:12, Bart wrote:
>> On 21/08/2023 13:12, Richard Harnden wrote:
>>> On 21/08/2023 11:09, Bart wrote:
>>
>>>> Start here: https://libjpeg.sourceforge.net/
>>>>
>>>> (The configure file needed /bin/sh changed to /bin/bash)
>>>
>>>
>>> Or, jpeg-turbo:
>>> git clone https://github.com/libjpeg-turbo/libjpeg-turbo.git
>>
>> That last one uses CMake.
>>
>> Among the highly varied build instructions, the ones for MingW are:
>>
>>    cd {build_directory}
>>    cmake -G"MSYS Makefiles" [additional CMake flags] {source_directory}
>>    make
>>
>> I experimented with various incantations of that middle line (I
>> understand that [] means optional, and {} is a placeholder for an
>> actual path), but got nowhere.
>
> (
> I would've used [] for optional and <> for a place-holder,
> and {} for a group/set of things
> )
>
> For me, this worked:
> cd libjpeg-turbo
> cmake -G"Unix Makefiles"

For Windows?

I tried it anyway. It says it doesn't match the previously matched "MSYS
Makefile". I won't take it further as the chance of success is low.

>> Of course, I needed a working makefile to extract this information. It
>> would be nice to have those six lines as a default or fall-back method.
>>
>
> I just did ...
> tar xvzf jpegsrc.v9e.tar.gz
> cd jpeg-9e
> ./configure
> make
> make test
> ... and it was happy.

But I'm on Windows. It's harder on Windows because they make it so.

However I will try that on WSL:

* First it didn't like /bin/sh, I had to change it to /bin/bash

* Then it didn't like /bin/sh inside config.sub; I changed that

* Then it showed a bunch of odd messages, ending with:

././config.guess: 73: Syntax error: word unexpected (expecting "in")
configure: error: cannot guess build type; you must specify one

So it's not that foolproof. But even when it works, it needs to run a
configuration file of 16,000 lines, which generates a makefile of
unknown length and complexity (as it didn't work).

And /then/ it will end up generating those binaries.

On other OS, I showed that you need 5 invocations of gcc to create those
binaries, which can be in a script of 5 (not 6) longish lines.

Re: Build Systems

<20230821112025.524@kylheku.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28023&group=comp.lang.c#28023

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: 864-117-...@kylheku.com (Kaz Kylheku)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Mon, 21 Aug 2023 18:40:13 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 58
Message-ID: <20230821112025.524@kylheku.com>
References: <uban99$1rnpb$1@dont-email.me> <ubgpip$2vk5e$1@dont-email.me>
<ubgulr$3095n$1@dont-email.me> <87pm3nlxuu.fsf@nosuchdomain.example.com>
<ubh3s8$30v7t$1@dont-email.me> <ubi5do$38ii5$1@dont-email.me>
<ubib54$39aqa$1@dont-email.me> <ubii7m$3acds$1@dont-email.me>
<ubivp8$3cjsl$1@dont-email.me> <ubl89c$3prfv$1@dont-email.me>
<ubma81$3upnp$1@dont-email.me> <20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk>
<66629235-f2e0-46e0-bcb1-bf3abe1e33cdn@googlegroups.com>
<87edjyvdba.fsf@bsb.me.uk>
<038f3d41-228f-4f22-9086-8596e9022057n@googlegroups.com>
<87edjxts00.fsf@bsb.me.uk> <ubtvb0$1hpq8$1@dont-email.me>
<87wmxps26h.fsf@bsb.me.uk> <ubub09$1jeo1$1@dont-email.me>
<87r0nxrvm1.fsf@bsb.me.uk> <ubvd3u$1roqh$1@dont-email.me>
<ubvkaq$1svhh$1@dont-email.me> <ubvnsg$1tkml$1@dont-email.me>
<ubvpss$1u0bo$1@dont-email.me> <uc092l$20hl4$1@dont-email.me>
Injection-Date: Mon, 21 Aug 2023 18:40:13 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="4208f6747183c44cb7bfb803b644b562";
logging-data="2125836"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+bRsOOkKKc2iSUOsMAHDJNfSFfw0ZwR14="
User-Agent: slrn/1.0.3 (Linux)
Cancel-Lock: sha1:xEIlbQcYBrGxz/TRonwb+7FTQUM=
 by: Kaz Kylheku - Mon, 21 Aug 2023 18:40 UTC

On 2023-08-21, Bart <bc@freeuk.com> wrote:
> But I'm on Windows. It's harder on Windows because they make it so.
>
> However I will try that on WSL:
>
> * First it didn't like /bin/sh, I had to change it to /bin/bash
>
> * Then it didn't like /bin/sh inside config.sub; I changed that
>
> * Then it showed a bunch of odd messages, ending with:
>
> ././config.guess: 73: Syntax error: word unexpected (expecting "in")
> configure: error: cannot guess build type; you must specify one

This happens when the argument of a case expands to multiple words,
and corresponds to the diagnostic wording used by Dash:

Bash:

$ bash -c 'case a b in foo ) asdf ;; esac'
bash: -c: line 0: syntax error near unexpected token `b'
bash: -c: line 0: `case a b in foo ) asdf ;; esac'

Dash:

$ dash -c 'case a b in foo ) asdf ;; esac'
dash: 1: Syntax error: word unexpected (expecting "in")

Looks like config.sub is being given some argument with whitespace in it
(and you didn't successfully switch config.sub to Bash). The case
statement is expecting a single word:

case $1 in ...

so it must be that $1 is expanding to multiple arguments. It can likely
be traced to something being weird in WSL.

However, that script should be quoting the expansion as "$1"
all the same, so that if there is somethign wrong with the
argument, at least it is processed properly and diagnosed,
rather than causing a syntax error.

This is just one small example of the many ways in which Autoconf
is a pile of crap.

I have no idea why the authors of this small amojunt of JPEG code
decided to inflict Autoconf on their project instead of a tidy
hand-written Makefile.

Autoconf once served a purpose, but it has long outlived it.
(And while serving that purpose, it was a pile of shit,
but now it's an unnecessary pile of crap that is a blight on
every project that stupidly adopts it.)

--
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
Mastodon: @Kazinator@mstdn.ca

Re: Build Systems

<uc0djj$218un$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28025&group=comp.lang.c#28025

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: chris.m....@gmail.com (Chris M. Thomasson)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Mon, 21 Aug 2023 12:23:30 -0700
Organization: A noiseless patient Spider
Lines: 15
Message-ID: <uc0djj$218un$1@dont-email.me>
References: <uban99$1rnpb$1@dont-email.me> <ubgpip$2vk5e$1@dont-email.me>
<ubgulr$3095n$1@dont-email.me> <87pm3nlxuu.fsf@nosuchdomain.example.com>
<ubh3s8$30v7t$1@dont-email.me> <ubi5do$38ii5$1@dont-email.me>
<ubib54$39aqa$1@dont-email.me> <ubii7m$3acds$1@dont-email.me>
<ubivp8$3cjsl$1@dont-email.me> <ubl89c$3prfv$1@dont-email.me>
<ubma81$3upnp$1@dont-email.me> <20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk>
<66629235-f2e0-46e0-bcb1-bf3abe1e33cdn@googlegroups.com>
<87edjyvdba.fsf@bsb.me.uk>
<038f3d41-228f-4f22-9086-8596e9022057n@googlegroups.com>
<87edjxts00.fsf@bsb.me.uk> <ubtvb0$1hpq8$1@dont-email.me>
<87wmxps26h.fsf@bsb.me.uk> <ubub09$1jeo1$1@dont-email.me>
<87r0nxrvm1.fsf@bsb.me.uk> <ubvd3u$1roqh$1@dont-email.me>
<ubvkaq$1svhh$1@dont-email.me> <ubvnsg$1tkml$1@dont-email.me>
<ubvpss$1u0bo$1@dont-email.me> <uc092l$20hl4$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 21 Aug 2023 19:23:31 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="1c9822fe4accad89e0b7f0853caab794";
logging-data="2139095"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19phJW7udIK4548S8vKeePP3fapoJ0LuQM="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.14.0
Cancel-Lock: sha1:476QZEyhrLVeGy3/tGvlX7UDyNI=
In-Reply-To: <uc092l$20hl4$1@dont-email.me>
Content-Language: en-US
 by: Chris M. Thomasson - Mon, 21 Aug 2023 19:23 UTC

On 8/21/2023 11:06 AM, Bart wrote:
> On 21/08/2023 14:47, Richard Harnden wrote:
>> On 21/08/2023 14:12, Bart wrote:
>>> On 21/08/2023 13:12, Richard Harnden wrote:
>>>> On 21/08/2023 11:09, Bart wrote:
>>>
>>>>> Start here: https://libjpeg.sourceforge.net/
[...]

vcpkg has it, libjpeg-turbo:

https://i.ibb.co/h7wCkXM/image.png

:^)

Re: Build Systems

<uc0j0m$225t3$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28029&group=comp.lang.c#28029

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: bc...@freeuk.com (Bart)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Mon, 21 Aug 2023 21:55:50 +0100
Organization: A noiseless patient Spider
Lines: 79
Message-ID: <uc0j0m$225t3$1@dont-email.me>
References: <uban99$1rnpb$1@dont-email.me> <ubgpip$2vk5e$1@dont-email.me>
<ubgulr$3095n$1@dont-email.me> <87pm3nlxuu.fsf@nosuchdomain.example.com>
<ubh3s8$30v7t$1@dont-email.me> <ubi5do$38ii5$1@dont-email.me>
<ubib54$39aqa$1@dont-email.me> <ubii7m$3acds$1@dont-email.me>
<ubivp8$3cjsl$1@dont-email.me> <ubl89c$3prfv$1@dont-email.me>
<ubma81$3upnp$1@dont-email.me> <20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk>
<66629235-f2e0-46e0-bcb1-bf3abe1e33cdn@googlegroups.com>
<87edjyvdba.fsf@bsb.me.uk>
<038f3d41-228f-4f22-9086-8596e9022057n@googlegroups.com>
<87edjxts00.fsf@bsb.me.uk> <ubtvb0$1hpq8$1@dont-email.me>
<87wmxps26h.fsf@bsb.me.uk> <ubub09$1jeo1$1@dont-email.me>
<87r0nxrvm1.fsf@bsb.me.uk> <ubvd3u$1roqh$1@dont-email.me>
<ubvkaq$1svhh$1@dont-email.me> <ubvnsg$1tkml$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 21 Aug 2023 20:55:50 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="86e592efd029e2f8cdeb6f2d4f84aa30";
logging-data="2168739"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+ZGs6lwElFgb+SUtv1EMw7148KPeVD1e4="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.14.0
Cancel-Lock: sha1:DXNgTqDJuAKRjJAh/6v4jjUh3GM=
In-Reply-To: <ubvnsg$1tkml$1@dont-email.me>
 by: Bart - Mon, 21 Aug 2023 20:55 UTC

On 21/08/2023 14:12, Bart wrote:

[Building libjpeg project]

> That worked. Now I replace those .o by .c, delete all .o and .exe files,
> and try again. It takes a bit longer, but still works!
>
> So the minimal need to build this project on Windows and mingws is a
> 6-line script in /any/ language (like above but with .c, and using -s),
> and a 38-line jconfig.h file.

Another advantage of such a file is that it can be trivially modified to
run my bcc compiler, which otherwise doesn't fit in the traditional pattern.

It took 1.2 seconds to build the five EXEs, while gcc -O0 took 23 seconds.

(I briefly tried bcc-compiled djpeg.exe to convert a JPG to a PPM file.
The result showed odd colour banding and horizontal shifting. A bug in
my compiler? Quite likely. But I then tried the gcc-compiled version and
it was the same.)

I'm not familiar with this product and it's possible that the libjpeg.a
file is for incorporating into user programs.

If so then that library needs to be retained (the script goes back to 6
lines from 5). But a .a file is not generally useful. Much better is a
..dll file. And that adaptation is easy to make when in this simple form.

Then, the sizes of all the binaries reduce from 1.2MB to 0.7MB.

And, I have a libjpeg.dll file that exports 170 functions, that I could
conceivably use from either of my own languages. (Although from the
names of them, they look more like internal functions shared by the five
main programs.)

---------------------------

To summarise, this project shows how things can be done, although it
could go further.

It has the traditional build methods, but also describes the process in
English.

What's missing, although I was able to capture the info from the working
makefile, are the sets of C files that comprise each of the 5-6 binaries.

Armed with this info, I could apply my non-standard compiler. I could
also trivially change it to produce a shared library DLL instead of a
mingw-specific .a archive.

I didn't need to use 'configure', and eventually could dispense with a
makefile.

I used this build-script for gcc (the %1 allows for an optiomising option):

gcc -shared -s %1 -o libjpeg.dll jcapimin.c jcapistd.c jcarith.c
jctrans.c jcparam.c jdatadst.c jcinit.c jcmaster.c jcmarker.c jcmainct.c
jcprepct.c jccoefct.c jccolor.c jcsample.c jchuff.c jcdctmgr.c
jfdctfst.c jfdctflt.c jfdctint.c jdapimin.c jdapistd.c jdarith.c
jdtrans.c jdatasrc.c jdmaster.c jdinput.c jdmarker.c jdhuff.c jdmainct.c
jdcoefct.c jdpostct.c jddctmgr.c jidctfst.c jidctflt.c jidctint.c
jdsample.c jdcolor.c jquant1.c jquant2.c jdmerge.c jaricom.c jcomapi.c
jutils.c jerror.c jmemmgr.c jmemnobs.c
gcc -s %1 -o djpeg djpeg.c wrppm.c wrgif.c wrtarga.c wrrle.c wrbmp.c
rdcolmap.c cdjpeg.c libjpeg.dll
gcc -s %1 -o jpegtran jpegtran.c rdswitch.c cdjpeg.c transupp.c
libjpeg.dll
gcc -s %1 -o cjpeg cjpeg.c rdppm.c rdgif.c rdtarga.c rdrle.c rdbmp.c
rdswitch.c cdjpeg.c libjpeg.dll
gcc -s %1 -o rdjpgcom rdjpgcom.c
gcc -s %1 -o wrjpgcom wrjpgcom.c

(Notice that the first module names in the lines building EXEs, match
the name of the EXE in each case. A rule that used the name of the first
module for the EXE could have dispensed with the -o option.

I didn't arrange them like that; that's how they are in the makefile.)

Re: Build Systems

<87r0nwgjmo.fsf@nosuchdomain.example.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28030&group=comp.lang.c#28030

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Keith.S....@gmail.com (Keith Thompson)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Mon, 21 Aug 2023 14:39:43 -0700
Organization: None to speak of
Lines: 65
Message-ID: <87r0nwgjmo.fsf@nosuchdomain.example.com>
References: <uban99$1rnpb$1@dont-email.me> <ubivp8$3cjsl$1@dont-email.me>
<ubl89c$3prfv$1@dont-email.me> <ubma81$3upnp$1@dont-email.me>
<20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk>
<66629235-f2e0-46e0-bcb1-bf3abe1e33cdn@googlegroups.com>
<87edjyvdba.fsf@bsb.me.uk>
<038f3d41-228f-4f22-9086-8596e9022057n@googlegroups.com>
<87edjxts00.fsf@bsb.me.uk> <ubtvb0$1hpq8$1@dont-email.me>
<87wmxps26h.fsf@bsb.me.uk> <ubub09$1jeo1$1@dont-email.me>
<87r0nxrvm1.fsf@bsb.me.uk> <ubvd3u$1roqh$1@dont-email.me>
<ubvkaq$1svhh$1@dont-email.me> <ubvnsg$1tkml$1@dont-email.me>
<ubvpss$1u0bo$1@dont-email.me> <uc092l$20hl4$1@dont-email.me>
<20230821112025.524@kylheku.com>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: dont-email.me; posting-host="36d243d81288d87e2795427dc2a103dc";
logging-data="2181050"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/LihyGT3NClGDIHdtS6Rw7"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Cancel-Lock: sha1:SMp9JFvhlFZTANjXOMwZT0Qku2o=
sha1:R8QgQzv7sAHcFh2o1w8BThVFZv0=
 by: Keith Thompson - Mon, 21 Aug 2023 21:39 UTC

Kaz Kylheku <864-117-4973@kylheku.com> writes:
> On 2023-08-21, Bart <bc@freeuk.com> wrote:
[...]
>> * Then it showed a bunch of odd messages, ending with:
>>
>> ././config.guess: 73: Syntax error: word unexpected (expecting "in")
>> configure: error: cannot guess build type; you must specify one
>
> This happens when the argument of a case expands to multiple words,
> and corresponds to the diagnostic wording used by Dash:
>
> Bash:
>
> $ bash -c 'case a b in foo ) asdf ;; esac'
> bash: -c: line 0: syntax error near unexpected token `b'
> bash: -c: line 0: `case a b in foo ) asdf ;; esac'
>
> Dash:
>
> $ dash -c 'case a b in foo ) asdf ;; esac'
> dash: 1: Syntax error: word unexpected (expecting "in")
>
> Looks like config.sub is being given some argument with whitespace in it
> (and you didn't successfully switch config.sub to Bash). The case
> statement is expecting a single word:
>
> case $1 in ...
>
> so it must be that $1 is expanding to multiple arguments. It can likely
> be traced to something being weird in WSL.

It's not that simple.

If you write:
case foo bar in
you'll get a syntax error, but if it's a parameter expansion like $1
there's no error, even if the expansion is multiple words.

For example, this script prints "ok" with bash, dash, ksh, zsh, and
busybox sh on Ubuntu, and with bash and dash on WSL/Ubuntu. (On both,
/bin/sh is a symlink to dash.)

x='foo bar'
case $x in
'foo bar') echo ok ;;
esac

I was surprised that it behaves this way, and I haven't (so far) found
anything that definitively says that it's supposed to. (I would have
written "$1" rather than $1 myself, but apparently it's not necessary).

I was unable to get config.guess to produce the error Bart reports.

The reported error is consistent with the way I *thought* a shell case
statement would treat its argument. Perhaps Bart is somehow using a
shell that behaves differently than all the ones I've tried.

The config.guess script published by GNU has "#!/bin/sh" as its
first line. It should work with bash, but there should be no need
to change it.

--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
Will write code for food.
void Void(void) { Void(); } /* The recursive call of the void */

Re: Build Systems

<87msykgjaa.fsf@nosuchdomain.example.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28031&group=comp.lang.c#28031

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Keith.S....@gmail.com (Keith Thompson)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Mon, 21 Aug 2023 14:47:09 -0700
Organization: None to speak of
Lines: 25
Message-ID: <87msykgjaa.fsf@nosuchdomain.example.com>
References: <uban99$1rnpb$1@dont-email.me> <ubh3s8$30v7t$1@dont-email.me>
<ubi5do$38ii5$1@dont-email.me> <ubib54$39aqa$1@dont-email.me>
<ubii7m$3acds$1@dont-email.me> <ubivp8$3cjsl$1@dont-email.me>
<ubl89c$3prfv$1@dont-email.me> <ubma81$3upnp$1@dont-email.me>
<20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk> <Hx4EM.686038$TPw2.217661@fx17.iad>
<db175a13-352a-461b-88e4-d37e14d1a6e2n@googlegroups.com>
<a4aEM.562364$SuUf.473875@fx14.iad>
<87cyziil9j.fsf@nosuchdomain.example.com>
<c9837057-e084-4c5b-9d9a-e3ec316c2ecen@googlegroups.com>
<ubt01p$1bhkn$2@dont-email.me>
<1075f829-1174-4456-b57d-74331cd61aa8n@googlegroups.com>
<ubt762$1cngj$2@dont-email.me>
<e4bf4e3c-eb09-45d9-8702-aebaa4f7d1c4n@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: dont-email.me; posting-host="36d243d81288d87e2795427dc2a103dc";
logging-data="2181050"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19ZywWUgnMZU2NxTDkdlY2p"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Cancel-Lock: sha1:BQfTqs4DkFvYaK5YNk72yNa1UPY=
sha1:BxKF61Ms47QvXnbTSdTIX1Xt4Xo=
 by: Keith Thompson - Mon, 21 Aug 2023 21:47 UTC

bart c <bart4858@gmail.com> writes:
[...]
> The C compilers I've used most often are complete, self-contained
> solutions. Mine doesn't even have or use a linker.
[...]

Really? How does that work?

For example, this source file compiles without error:
```
extern void no_such_function(void);

int main(void) {
no_such_function();
} ```
but if I try to generate an executable from it I get an error from the
linker. If you try to generate an executable using your compiler, what
reports the error? Or is it not reported until you try to run the
program?

--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
Will write code for food.
void Void(void) { Void(); } /* The recursive call of the void */

Re: Build Systems

<87il98ghta.fsf@nosuchdomain.example.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28032&group=comp.lang.c#28032

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Keith.S....@gmail.com (Keith Thompson)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Mon, 21 Aug 2023 15:18:57 -0700
Organization: None to speak of
Lines: 15
Message-ID: <87il98ghta.fsf@nosuchdomain.example.com>
References: <uban99$1rnpb$1@dont-email.me> <ubi5do$38ii5$1@dont-email.me>
<ubib54$39aqa$1@dont-email.me> <ubii7m$3acds$1@dont-email.me>
<ubivp8$3cjsl$1@dont-email.me> <ubl89c$3prfv$1@dont-email.me>
<ubma81$3upnp$1@dont-email.me> <20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk> <Hx4EM.686038$TPw2.217661@fx17.iad>
<db175a13-352a-461b-88e4-d37e14d1a6e2n@googlegroups.com>
<a4aEM.562364$SuUf.473875@fx14.iad>
<87cyziil9j.fsf@nosuchdomain.example.com>
<c9837057-e084-4c5b-9d9a-e3ec316c2ecen@googlegroups.com>
<ubt01p$1bhkn$2@dont-email.me>
<1075f829-1174-4456-b57d-74331cd61aa8n@googlegroups.com>
<ubt762$1cngj$2@dont-email.me>
<e4bf4e3c-eb09-45d9-8702-aebaa4f7d1c4n@googlegroups.com>
<ubvm5c$1ta8d$1@dont-email.me> <ubvosp$1tqed$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: dont-email.me; posting-host="8c2210ee336d4e4cffae6b1d7a2b498d";
logging-data="2192021"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/sqwJ6ec2pEEn3Udn4ktpo"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Cancel-Lock: sha1:wm0Rk+xXXnGmzZXYxdu7qKSlrDc=
sha1:mLLrP1FQqMdTlFvlclFeN8tqOS4=
 by: Keith Thompson - Mon, 21 Aug 2023 22:18 UTC

Bart <bc@freeuk.com> writes:
[...]
> So what /is/ a C compiler? What exactly does it comprise? What,
> exactly, does it do?
>
> Does it really not include stdio.h? Where would you even get stdio.h,
> or windows.h, if supplied separately?

This has been patiently explained to you many times. I would answer if
I believed you were interested in learning from an answer. I don't.

--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
Will write code for food.
void Void(void) { Void(); } /* The recursive call of the void */

Re: Build Systems

<uc0nvh$22t1l$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28033&group=comp.lang.c#28033

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: bc...@freeuk.com (Bart)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Mon, 21 Aug 2023 23:20:33 +0100
Organization: A noiseless patient Spider
Lines: 58
Message-ID: <uc0nvh$22t1l$1@dont-email.me>
References: <uban99$1rnpb$1@dont-email.me> <ubh3s8$30v7t$1@dont-email.me>
<ubi5do$38ii5$1@dont-email.me> <ubib54$39aqa$1@dont-email.me>
<ubii7m$3acds$1@dont-email.me> <ubivp8$3cjsl$1@dont-email.me>
<ubl89c$3prfv$1@dont-email.me> <ubma81$3upnp$1@dont-email.me>
<20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk> <Hx4EM.686038$TPw2.217661@fx17.iad>
<db175a13-352a-461b-88e4-d37e14d1a6e2n@googlegroups.com>
<a4aEM.562364$SuUf.473875@fx14.iad> <87cyziil9j.fsf@nosuchdomain.example.com>
<c9837057-e084-4c5b-9d9a-e3ec316c2ecen@googlegroups.com>
<ubt01p$1bhkn$2@dont-email.me>
<1075f829-1174-4456-b57d-74331cd61aa8n@googlegroups.com>
<ubt762$1cngj$2@dont-email.me>
<e4bf4e3c-eb09-45d9-8702-aebaa4f7d1c4n@googlegroups.com>
<87msykgjaa.fsf@nosuchdomain.example.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 21 Aug 2023 22:20:33 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="5b0acd9f0fe348721c3866dad8b35540";
logging-data="2192437"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX180Aele6pyXhwQCyjzdcdxv9Z6ur3vPMYk="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.14.0
Cancel-Lock: sha1:jDT6DxYlQjJClUuTCAMzZf+IhOo=
In-Reply-To: <87msykgjaa.fsf@nosuchdomain.example.com>
 by: Bart - Mon, 21 Aug 2023 22:20 UTC

On 21/08/2023 22:47, Keith Thompson wrote:
> bart c <bart4858@gmail.com> writes:
> [...]
>> The C compilers I've used most often are complete, self-contained
>> solutions. Mine doesn't even have or use a linker.
> [...]
>
> Really? How does that work?
>
> For example, this source file compiles without error:
> ```
> extern void no_such_function(void);
>
> int main(void) {
> no_such_function();
> }
> ```
> but if I try to generate an executable from it I get an error from the
> linker. If you try to generate an executable using your compiler, what
> reports the error? Or is it not reported until you try to run the
> program?
>

It doesn't have a conventional linker that works with OBJ files.

Because C allows modules to be independently compiled, there needs to be
a mechanism to compile several such outputs, then combining them into an
executable.

But instead of .obj files (or .s then .o like gcc uses), it uses only
..asm files.

There are two types of external symbols that need to resolved:

(1) Symbols exported by one C module of the app and imported by another

(2) Symbols imported from an external library

The assembler I use performs the job of resolving type (1) symbols
imported from other modules: it reads multiple .asm files and produces
one .exe file.

Type (2) symbols can only come from DLL shared libraries. They are
checked off by the part that creates the EXE image, which contains a
list of DLL dependencies, and the symbols imported from each.

The parts of the assembler responsonsible for (1) and (2) probably
require 10KB of code. The LD linker is 1500KB, and the LLVM one about
64000KB.

This assembler forms part of BCC as well as being an independent tool.

Static 'linking' of OBJ files from other compilers is not possible. (Tcc
might have the same limitation.) I used to be able to do it by getting
my assembler to generate OBJ format (one file for the whole program),
and then employing a third party, real linker. That's fallen into disuse.

Re: Build Systems

<uc0ob5$22t1l$2@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28034&group=comp.lang.c#28034

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: bc...@freeuk.com (Bart)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Mon, 21 Aug 2023 23:26:46 +0100
Organization: A noiseless patient Spider
Lines: 23
Message-ID: <uc0ob5$22t1l$2@dont-email.me>
References: <uban99$1rnpb$1@dont-email.me> <ubi5do$38ii5$1@dont-email.me>
<ubib54$39aqa$1@dont-email.me> <ubii7m$3acds$1@dont-email.me>
<ubivp8$3cjsl$1@dont-email.me> <ubl89c$3prfv$1@dont-email.me>
<ubma81$3upnp$1@dont-email.me> <20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk> <Hx4EM.686038$TPw2.217661@fx17.iad>
<db175a13-352a-461b-88e4-d37e14d1a6e2n@googlegroups.com>
<a4aEM.562364$SuUf.473875@fx14.iad> <87cyziil9j.fsf@nosuchdomain.example.com>
<c9837057-e084-4c5b-9d9a-e3ec316c2ecen@googlegroups.com>
<ubt01p$1bhkn$2@dont-email.me>
<1075f829-1174-4456-b57d-74331cd61aa8n@googlegroups.com>
<ubt762$1cngj$2@dont-email.me>
<e4bf4e3c-eb09-45d9-8702-aebaa4f7d1c4n@googlegroups.com>
<ubvm5c$1ta8d$1@dont-email.me> <ubvosp$1tqed$1@dont-email.me>
<87il98ghta.fsf@nosuchdomain.example.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 21 Aug 2023 22:26:45 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="5b0acd9f0fe348721c3866dad8b35540";
logging-data="2192437"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18HmNL/vChWvpOLzOkn4rxXNCiNm5D9LFE="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.14.0
Cancel-Lock: sha1:zwypNYWmfCET+PHNQelF01PhtTo=
In-Reply-To: <87il98ghta.fsf@nosuchdomain.example.com>
 by: Bart - Mon, 21 Aug 2023 22:26 UTC

On 21/08/2023 23:18, Keith Thompson wrote:
> Bart <bc@freeuk.com> writes:
> [...]
>> So what /is/ a C compiler? What exactly does it comprise? What,
>> exactly, does it do?
>>
>> Does it really not include stdio.h? Where would you even get stdio.h,
>> or windows.h, if supplied separately?
>
> This has been patiently explained to you many times. I would answer if
> I believed you were interested in learning from an answer. I don't.
>

I'm interested in knowing the answer. (But I'm more interested in
knowing why you think I would know it. I had to create my own headers!
So there was an easy resource to download them from; who knew?)

So where DO the standard headers for a Windows C compiler come from?

Where does windows.h come from, as that is also required? I don't
believe every compiler pinches them from the Windows SDK, as they are
all different, from 20K lines to 200K lines, from one header file, to
165 unique headers.

Re: Build Systems

<87edjwgglh.fsf@nosuchdomain.example.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28036&group=comp.lang.c#28036

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Keith.S....@gmail.com (Keith Thompson)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Mon, 21 Aug 2023 15:45:14 -0700
Organization: None to speak of
Lines: 25
Message-ID: <87edjwgglh.fsf@nosuchdomain.example.com>
References: <uban99$1rnpb$1@dont-email.me> <ubi5do$38ii5$1@dont-email.me>
<ubib54$39aqa$1@dont-email.me> <ubii7m$3acds$1@dont-email.me>
<ubivp8$3cjsl$1@dont-email.me> <ubl89c$3prfv$1@dont-email.me>
<ubma81$3upnp$1@dont-email.me> <20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk> <Hx4EM.686038$TPw2.217661@fx17.iad>
<db175a13-352a-461b-88e4-d37e14d1a6e2n@googlegroups.com>
<a4aEM.562364$SuUf.473875@fx14.iad>
<87cyziil9j.fsf@nosuchdomain.example.com>
<c9837057-e084-4c5b-9d9a-e3ec316c2ecen@googlegroups.com>
<ubt01p$1bhkn$2@dont-email.me>
<1075f829-1174-4456-b57d-74331cd61aa8n@googlegroups.com>
<ubt762$1cngj$2@dont-email.me>
<e4bf4e3c-eb09-45d9-8702-aebaa4f7d1c4n@googlegroups.com>
<87msykgjaa.fsf@nosuchdomain.example.com>
<uc0nvh$22t1l$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: dont-email.me; posting-host="8c2210ee336d4e4cffae6b1d7a2b498d";
logging-data="2195828"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/xAzR8+L6buYB/k7eYxXsq"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Cancel-Lock: sha1:dVW5g/CLDO3oPBrMtaT5J2nMW2U=
sha1:vx4u4gxkoNzAil5s//H8p+DlJNs=
 by: Keith Thompson - Mon, 21 Aug 2023 22:45 UTC

Bart <bc@freeuk.com> writes:
> On 21/08/2023 22:47, Keith Thompson wrote:
>> bart c <bart4858@gmail.com> writes:
>> [...]
>>> The C compilers I've used most often are complete, self-contained
>>> solutions. Mine doesn't even have or use a linker.
>> [...]
>> Really? How does that work?
[...]
> It doesn't have a conventional linker that works with OBJ files.
[...]
> The assembler I use performs the job of resolving type (1) symbols
> imported from other modules: it reads multiple .asm files and produces
> one .exe file.
[...]

So the "linker" is incorporated into the assembler.

(This is just an observation. I'm not saying there's anything wrong
with that approach.)

--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
Will write code for food.
void Void(void) { Void(); } /* The recursive call of the void */

Re: Build Systems

<87a5ukgfdg.fsf@nosuchdomain.example.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28037&group=comp.lang.c#28037

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Keith.S....@gmail.com (Keith Thompson)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Mon, 21 Aug 2023 16:11:39 -0700
Organization: None to speak of
Lines: 74
Message-ID: <87a5ukgfdg.fsf@nosuchdomain.example.com>
References: <uban99$1rnpb$1@dont-email.me> <ubii7m$3acds$1@dont-email.me>
<ubivp8$3cjsl$1@dont-email.me> <ubl89c$3prfv$1@dont-email.me>
<ubma81$3upnp$1@dont-email.me> <20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk> <Hx4EM.686038$TPw2.217661@fx17.iad>
<db175a13-352a-461b-88e4-d37e14d1a6e2n@googlegroups.com>
<a4aEM.562364$SuUf.473875@fx14.iad>
<87cyziil9j.fsf@nosuchdomain.example.com>
<c9837057-e084-4c5b-9d9a-e3ec316c2ecen@googlegroups.com>
<ubt01p$1bhkn$2@dont-email.me>
<1075f829-1174-4456-b57d-74331cd61aa8n@googlegroups.com>
<ubt762$1cngj$2@dont-email.me>
<e4bf4e3c-eb09-45d9-8702-aebaa4f7d1c4n@googlegroups.com>
<ubvm5c$1ta8d$1@dont-email.me> <ubvosp$1tqed$1@dont-email.me>
<87il98ghta.fsf@nosuchdomain.example.com>
<uc0ob5$22t1l$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: dont-email.me; posting-host="8c2210ee336d4e4cffae6b1d7a2b498d";
logging-data="2205592"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+VajapSjCI4OZ+nyjxbb8x"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (gnu/linux)
Cancel-Lock: sha1:uhbTfMw1qtfJxpqf1Fkb5e0pmkg=
sha1:foYuHfpRcT2TFrqkDfvOt9pq1XY=
 by: Keith Thompson - Mon, 21 Aug 2023 23:11 UTC

Bart <bc@freeuk.com> writes:
> On 21/08/2023 23:18, Keith Thompson wrote:
>> Bart <bc@freeuk.com> writes:
>> [...]
>>> So what /is/ a C compiler? What exactly does it comprise? What,
>>> exactly, does it do?
>>>
>>> Does it really not include stdio.h? Where would you even get stdio.h,
>>> or windows.h, if supplied separately?
>>
>> This has been patiently explained to you many times. I would answer
>> if I believed you were interested in learning from an answer. I
>> don't.
>
> I'm interested in knowing the answer. (But I'm more interested in
> knowing why you think I would know it. I had to create my own headers!
> So there was an easy resource to download them from; who knew?)

stdio.h really is not part of the compiler. Both stdio.h and a C
compiler are part of a C implementation.

That's the part that I'm saying has been patiently explained to you.
The details of where stdio.h comes from for a given implementation
are a different matter. I should have made that distinction more
clearly.

(A C compiler could implement the standard headers internally,
so that its response to `#include <stdio.h>` would be to insert a
collection of symbols internally rather than reaading an external
file. That would be an odd implementation, but it could be perfectly
valid. But it would still need to be able to use other headers.)

The C standard (I'm sure you have a copy of a draft) specifies
8 translation phases in section 5.1.1.2 (the number might vary
in different editions). Phases 1-4 (or maybe 1-5 or 1-6) are
typically implemented in a preprocessor, though it doesn't have to
be a separate program. Phases 1-7 are the compiler. Phase 8 is
the linker. The standard specifically says that many of the phases
are typically folded together; an implementation must behave *as if*
it implemented the phases as described.

Can you acknowledge that you understand that? It could save some time
in future discussions.

I don't know what headers you say you had to create. If you're
creating a complete C implementation, you might have to write
your own standard headers if none of the existing ones suited
your purposes.

> So where DO the standard headers for a Windows C compiler come from?

It depends on the particular implementation.

Probably the most popular C development system for Windows
is Microsoft Visual Studio (though it's mostly used for C++).
It includes multiple components, all installed together, including
a compiler, libraries, header files, a linker, etc. -- and of course
an IDE with a lot of bells and whistles.

> Where does windows.h come from, as that is also required? I don't
> believe every compiler pinches them from the Windows SDK, as they are
> all different, from 20K lines to 200K lines, from one header file, to
> 165 unique headers.

Again, it depends on the implementation. ("windows.h" is very probably
a single file; it may #include other header files.)

Windows C implementations tend to be packaged together, with the
package incorporating a compiler, runtime library, headers, etc.

--
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
Will write code for food.
void Void(void) { Void(); } /* The recursive call of the void */

Re: Build Systems

<uc0tkp$23hto$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28038&group=comp.lang.c#28038

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: bc...@freeuk.com (Bart)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Tue, 22 Aug 2023 00:57:14 +0100
Organization: A noiseless patient Spider
Lines: 35
Message-ID: <uc0tkp$23hto$1@dont-email.me>
References: <uban99$1rnpb$1@dont-email.me> <ubi5do$38ii5$1@dont-email.me>
<ubib54$39aqa$1@dont-email.me> <ubii7m$3acds$1@dont-email.me>
<ubivp8$3cjsl$1@dont-email.me> <ubl89c$3prfv$1@dont-email.me>
<ubma81$3upnp$1@dont-email.me> <20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk> <Hx4EM.686038$TPw2.217661@fx17.iad>
<db175a13-352a-461b-88e4-d37e14d1a6e2n@googlegroups.com>
<a4aEM.562364$SuUf.473875@fx14.iad> <87cyziil9j.fsf@nosuchdomain.example.com>
<c9837057-e084-4c5b-9d9a-e3ec316c2ecen@googlegroups.com>
<ubt01p$1bhkn$2@dont-email.me>
<1075f829-1174-4456-b57d-74331cd61aa8n@googlegroups.com>
<ubt762$1cngj$2@dont-email.me>
<e4bf4e3c-eb09-45d9-8702-aebaa4f7d1c4n@googlegroups.com>
<87msykgjaa.fsf@nosuchdomain.example.com> <uc0nvh$22t1l$1@dont-email.me>
<87edjwgglh.fsf@nosuchdomain.example.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Mon, 21 Aug 2023 23:57:13 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="5b0acd9f0fe348721c3866dad8b35540";
logging-data="2213816"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/mm7UZRI5+KIVFmAe52S4ZXDI2L0251nU="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.14.0
Cancel-Lock: sha1:9+3Pq4k7yuDvOVocIZbA0BzRblk=
In-Reply-To: <87edjwgglh.fsf@nosuchdomain.example.com>
 by: Bart - Mon, 21 Aug 2023 23:57 UTC

On 21/08/2023 23:45, Keith Thompson wrote:
> Bart <bc@freeuk.com> writes:
>> On 21/08/2023 22:47, Keith Thompson wrote:
>>> bart c <bart4858@gmail.com> writes:
>>> [...]
>>>> The C compilers I've used most often are complete, self-contained
>>>> solutions. Mine doesn't even have or use a linker.
>>> [...]
>>> Really? How does that work?
> [...]
>> It doesn't have a conventional linker that works with OBJ files.
> [...]
>> The assembler I use performs the job of resolving type (1) symbols
>> imported from other modules: it reads multiple .asm files and produces
>> one .exe file.
> [...]
>
> So the "linker" is incorporated into the assembler.
>
> (This is just an observation. I'm not saying there's anything wrong
> with that approach.)

Another way of implementing C, even less conventional, is to emulate
whole-program compilation.

Such a compiler would need all source modules (that form a single EXE or
DLL) to be submitted at the same time. Then there is no need to produce
discrete ASM files. 'Linking' symbols between modules is done via a
global symbol table.

Then the concept of independent compilation disappears too.

(Within my current bcc compiler, unless -S or -c options are used, the
..asm files it produces are nominal: they are generated in-memory and
read in-memory. So it is half-way there.)

Re: Build Systems

<87zg2jrk7t.fsf@bsb.me.uk>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28039&group=comp.lang.c#28039

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: ben.use...@bsb.me.uk (Ben Bacarisse)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Tue, 22 Aug 2023 01:31:34 +0100
Organization: A noiseless patient Spider
Lines: 118
Message-ID: <87zg2jrk7t.fsf@bsb.me.uk>
References: <uban99$1rnpb$1@dont-email.me>
<87pm3nlxuu.fsf@nosuchdomain.example.com>
<ubh3s8$30v7t$1@dont-email.me> <ubi5do$38ii5$1@dont-email.me>
<ubib54$39aqa$1@dont-email.me> <ubii7m$3acds$1@dont-email.me>
<ubivp8$3cjsl$1@dont-email.me> <ubl89c$3prfv$1@dont-email.me>
<ubma81$3upnp$1@dont-email.me> <20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk>
<66629235-f2e0-46e0-bcb1-bf3abe1e33cdn@googlegroups.com>
<87edjyvdba.fsf@bsb.me.uk>
<038f3d41-228f-4f22-9086-8596e9022057n@googlegroups.com>
<87edjxts00.fsf@bsb.me.uk> <ubtvb0$1hpq8$1@dont-email.me>
<87wmxps26h.fsf@bsb.me.uk> <ubub09$1jeo1$1@dont-email.me>
<87r0nxrvm1.fsf@bsb.me.uk> <ubvd3u$1roqh$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain
Injection-Info: dont-email.me; posting-host="0f004573fe14b8557e5cf4d736babe25";
logging-data="2223780"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18xjiYmSsvkhtV+eYcpVwN1yXX/Sa8dMIQ="
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/28.2 (gnu/linux)
Cancel-Lock: sha1:EPANsiMlIZdh43XLv9SSPbj+F6U=
sha1:NbX2HIPxVZqDtHrbiHmLPEc4Jlg=
X-BSB-Auth: 1.411315a0aa45c123bf8b.20230822013134BST.87zg2jrk7t.fsf@bsb.me.uk
 by: Ben Bacarisse - Tue, 22 Aug 2023 00:31 UTC

Bart <bc@freeuk.com> writes:

> On 21/08/2023 03:13, Ben Bacarisse wrote:
>> Bart <bc@freeuk.com> writes:
>
>> Yes, why? We should take an example and look at it in detail, but you
>> just keep moving on. Portable C is very hard to write (100% portable
>> that is). If you crack that, the makefile is irrelevant. So is any
>> configure script. Just compile the C.
>
> I can't just compile the C because the info I need is hidden in the
> makefile! Sometimes the makefile doesn't exist and the now even more
> indirect instructions are inside a bash script, of which 99% is irrelevant
> noise.
>
> It is very frustrating.

Yes, I can imagine. How much work do you think you are owed by the
authors of such software?

>> Unfortunately, Windows users expect *.txt to be expanded by the program
>> and Unix users don't. Unix users expect -flags and Windows users expect
>> /flags.
>
> See my last remarks below. People will know how to invoke their own
> compilers (unless they /only/ know how to type 'make'!). This is a
> non-issue.

You missed the point of that remark entirely. But you've cut so much
context I don't see the point in my trying to make it again.

>>> Libjpeg library. This is an old one from 1998. There are 15 makefile.xxx
>>> files for multiple, mostly obsolete compilers. The docs for non-Unix look
>>> horrendous; I will not bother.
>> Post the link so I can at least see what you are talking about if this
>> is the example you want me to examine. I think I know the library you
>> mean, but I don't know the exact source you are looking at.
>
> Start here: https://libjpeg.sourceforge.net/
>
> (The configure file needed /bin/sh changed to /bin/bash)

One.

>>> Gzlib. A compression utility.
>> Post the link if this is the one you want to look at in depth.
>
> I think it was 'gzip' not gzlib. I used second from the last link here:
> https://ftp.nluug.nl/pub/gnu/gzip/.

Two.

Which one do you want to look at in depth?

>>> I've suggested easy ways of building C programs such as the ones in my
>>> example. Forgetting 'make' would be a first step (I suspect makefiles are
>>> IDE-generated some of the time).
>> Your solution is to write portable C. Is that it?
>
> A lot of stuff is already portable since I can build it given the basic
> build info. If people want to use open() and not fopen(), that's up to
> them, but then their product is likely not cross-platform.

Still don't know what your solution is other than "write portable C".
That's hard and often not possible.

>>> Here's one from the past: I wanted to build Algol68 Genie (A68G).
>> Another one! Can we stick to one example?
>
> My contention is that C projects with makefiles are generally troublesome
> on Windows, which is why I always look at them askance.

And my contention is that if we look at an example we'll see that it's
troublesome because it's Linux or Unix software.

> The 4-5 examples based around my OP weren't enough to convince
> anybody.

No, because you don't examine any of them in enough detail. Make is a
good red flag for you because it indicates Unix software. If there is
no "build.bat" file even better -- it's Unix software where the authors
have not done the work for you so it's going to be a good example to
cite.

> Enough gaslighting has been going on that I'm not sure myself. I
> need more examples of projects with makefiles that build effortlessly under
> Windows by simply following instructions.

>>> Now, why couldn't the docs just say that in the first place! Just submit
>>> this list of C files to the nearest C compiler.
>> If this is the example you want to look at in depth? I can't answer
>
> It is really very simple. The basic info needed to build a program from C
> modules is just a list of those modules and where they are located.

Context (did you deliberately remove it?): this the Algol 68G
compiler/interpreter you are taking about. It's firmly a Unix program.
The build system installs things in /usr/local/bin and so on. The
configure script has more than 20 options to configure the build to use
things like curl, GSL, GNU plot, R, MPFR and so on. All of these are
Linux/Unix libraries and systems. You might have some or all of them on
your Windows system, but how you get a68g to find them is a mystery.
You might be able to "cc *.c" and get something to work but goodness
knows what is you will have built. Nothing the authors will want to
take responsibility for, that's for sure.

They kindly offer a windows binary. The fact that they don't give the
build process suggest that it's not trivial. Since you have a solution
to these problems, maybe you could provide it for them?

> If there's anything extra, then that can be explained. This can be put into
> a Readme or Install or Build text file.

Sounds simple. What does this simple solution look like for a68g? I'll
send it to the authors if you don't want to do that yourself.

--
Ben.

Re: Build Systems

<mqddrj-g83.ln1@spanky.localhost.net>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28040&group=comp.lang.c#28040

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!rocksolid2!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: kbjarna...@gmail.com (Kelsey Bjarnason)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Mon, 21 Aug 2023 17:58:30 -0700
Organization: A noiseless patient Spider
Lines: 186
Message-ID: <mqddrj-g83.ln1@spanky.localhost.net>
References: <uban99$1rnpb$1@dont-email.me> <12sCM.59051$m8Ke.22097@fx08.iad>
<ubdmk4$2dao7$1@dont-email.me> <ubfeqj$2oop4$1@dont-email.me>
<ubfknf$2plvs$1@dont-email.me> <ubfu4d$2r98d$1@dont-email.me>
<ubg4jr$2se4o$1@dont-email.me> <ubg7ku$2srfk$1@dont-email.me>
<ubgdr5$2tro0$1@dont-email.me> <ubgpip$2vk5e$1@dont-email.me>
<ubgulr$3095n$1@dont-email.me> <87pm3nlxuu.fsf@nosuchdomain.example.com>
<ubh3s8$30v7t$1@dont-email.me> <ubi5do$38ii5$1@dont-email.me>
<ubib54$39aqa$1@dont-email.me> <ubii7m$3acds$1@dont-email.me>
<ubivp8$3cjsl$1@dont-email.me> <ubl89c$3prfv$1@dont-email.me>
<ubma81$3upnp$1@dont-email.me> <20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk>
<66629235-f2e0-46e0-bcb1-bf3abe1e33cdn@googlegroups.com>
<nv76rj-6r2.ln1@spanky.localhost.net>
<94380001-0115-4e3e-9274-168d3e3a9573n@googlegroups.com>
<drh7rj-1ci.ln1@spanky.localhost.net>
<4d9cd1b8-1323-46c8-947b-5b8481a5b2cdn@googlegroups.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Info: dont-email.me; posting-host="0775d6f86f8084f99cfad2a6ad2d3cd8";
logging-data="2229971"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18okJzlhx4sulIClNlto8nKr29K5ltVtb4="
User-Agent: Pan/0.154 (Izium; 517acf4)
Cancel-Lock: sha1:5GprmIVYN/TVHj33/BJSL8Uz7EU=
 by: Kelsey Bjarnason - Tue, 22 Aug 2023 00:58 UTC

On Sat, 19 Aug 2023 13:44:28 -0700 (PDT), bart c wrote:

> On Saturday, 19 August 2023 at 20:35:53 UTC+1, Kelsey Bjarnason wrote:
>> On Sat, 19 Aug 2023 09:54:49 -0700 (PDT), bart c wrote:
>>
>> > On Saturday, 19 August 2023 at 17:03:41 UTC+1, Kelsey Bjarnason
>> > wrote:
>> >> On Fri, 18 Aug 2023 18:36:51 -0700 (PDT), bart c wrote:
>> >>
>> >> > On Saturday, 19 August 2023 at 01:21:58 UTC+1, Ben Bacarisse
>> >> > wrote:
>> >> >> bart c <bart...@gmail.com> writes:
>> >> >
>> >> >> > That is, you want to be able to type:
>> >> >> >
>> >> >> > X
>> >> >> >
>> >> >> > and not:
>> >> >> >
>> >> >> > X Y
>> >> >> No, I want to type
>> >> >>
>> >> >> make make tests make install make clean make mylib.a
>> >> >
>> >> > I'm not familiar with how make is used. Do you routinely have to
>> >> > invoke it five times in succession? Maybe that's a deeper problem
>> >> > with it, but as I said I don't use it.
>> >> >
>> >> >> depending on what I'm doing rather than
>> >> >>
>> >> >> make makefile make makefile tests make makefile install make
>> >> >> makefile clean make makefile mylib.a
>> >> >
>> >> > And this actually tells me that the main input is identical in all
>> >> > cases; I'd been wondering what was being done with mylib.a. But
>> >> > whatever it is, the same makefile that does all the other stuff
>> >> > contains some formula for 'mylib.a'?
>> >> >
>> >> > In practice I doubt you would type this five times as normally
>> >> > you'd do line recall then change the last bit. You can also choose
>> >> > to give it a shorter name than 'makefile'!
>> >> No, normally you'd do something like:
>> >>
>> >> make && make tests && make install && make clean && make mylib.a
>> >
>> > If only there was a way of scripting that...
>> >
>> > Obviously you can't use make and a makefile, since for one thing,
>> > 'makefile' has already been used, and using any other name is
>> > apparently a no-no.
>> That *would be* using a makefile. One with multiple targets. You just
>> specify which target you want to build, or use the default target which
>> is virtually always the relevant, expected output - library,
>> executable, whatever.
>>
>> And why script something when a) it adds nothing of value, and b) you
>> may want to vary what gets built from run to run, so you just specify
>> what you want built instead of editing the script every time?
>
> Exactly. Doing ad hoc stuff like this:
>
> bcc prog prog tcc proc.c prog gcc prog.c a (gcc just
> HAS to be different!)
> gcc prog.c -O3 a
>
> Is easier than messing about with makefiles. But you seem to be under
> the impression that using a makefile isn't running a script. I don't get
> it.

Call it a script if you like. The point remains, it does rather more than
merely "gcc -oprog prog.c"; for one, it ensures (assuming proper rules are
in place) both that modified dependencies get rebuilt, and that unmodified
ones don't unless told to.

So just as a trivial example, assume we have a dependency tree like so:

types.h
interface.h
interface.c
chess.h
engine.c

Now interface.h gets modified. Make would cause interface.c to be rebuilt
and the final output (executable, presumably) to be rebuilt, but not
engine.c.

How does your script manage this - rebuilding what is necessary to
rebuild, but *only* what is necessary to rebuild?

> Show me how you're do those 4 compilations using make, without a
> specially written make script.

>
>> > I wonder what it is about the stuff I do then I've never had any
>> > build process that took long enough to make and consume a cup of
>> > coffee. No even when working on machines 1000 times slower than they
>> > are now.
>> Depends on too many factors to evaluate here. I have code that's tens
>> of thousands of lines long and builds in a flash. I have other code
>> that's rather less lengthy and compiles much more slowly. Depends on
>> code, compiler, optimization settings, language involved, dependency
>> resolution,
>> caching, too many things to evaluate unless one does a "clean"
>> comparison of the same code, the same optimization levels, etc.
>
> Has it ever take long enough to /enjoy/ drinking a coffee?

Yes. See elsethread.

>
> Unfortunately, since most of my stuff builds in 0.1 seconds, it will
> have finished doing so as soon as I've released the Enter key. Back to
> work!
>
>
>> > My own assembler is called 'aa':
>> >
>> > aa x y z
>> >
>> > this assembles files x.asm, y.asm and z.asm, and writes x.exe. I
>> > prefer writing that to:
>> >
>> > aa x.asm y.asm z.asm -ox.exe
>> >
>> > I'm funny that way.
>
>> Indeed. I'd rather just write "make" and have it all be done, complete
>> with ensuring any out of date intermediate files are properly generated
>> first. It's shorter to write, and it takes care of unintentional
>> oversights.
>
> That's scripting! I can just stick that line in a make.bat file and then
> type:
>
> make
>
> But I don't normally work from the command line except for ad hoc
> invocations with variable options as already explained. Scripting here
> works poorly.
>
>> You should really pick one side of whatever you're arguing for and
>> stick with that; arguing both sides is just silly.
>
> It's the way that your tools work that is silly, since the direct tools
> are too verbose, and make is scarily not verbose enough.
>
> On the one hand you have to do:
>
> gcc main.c a.c b.c -omain
>
> On the other, you want to just do:
>
> make
>
> which ... does what? All that stuff is put inside 'makefile' in a form
> which is even more verbose since it will split it up into dependencies
> between .c, .h and .o files.
>
> But, now instead of your project being defined as THREE source files,
> ONE tool and ONE language: {main + a + b, gcc, C}, it is defined as FOUR
> source files, TWO tools and TWO languages:
>
> {main + a + b + makefile, gcc + make, C + make-syntax}
>
> There is no happy medium such as is used by my product:
>
> bcc main a b bcc -auto main # using automatic module discovery
> with a suitably structured project.
>
> In that second example, the project is defined (ie. can be fully
> described to the build process) as ONE source file, ONE tool and ONE
> language: {main, bcc, C}
>
> Now, people like David Brown will try and argue that using 'make' like
> this:
>
> make
>
> The project is also defined as ONE source file, ONE tool, and ONE
> language: {makefile, make, make-syntax}. Or possibly even as ONE tool
> and ONE language since the implicit 'makefile' doesn't have to figure in
> it.
>
> You can believe that if you want. If so, try deleting the C compiler and
> see if it still builds.

Re: Build Systems

<uc12e1$245uh$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28041&group=comp.lang.c#28041

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: bc...@freeuk.com (Bart)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Tue, 22 Aug 2023 02:18:57 +0100
Organization: A noiseless patient Spider
Lines: 45
Message-ID: <uc12e1$245uh$1@dont-email.me>
References: <uban99$1rnpb$1@dont-email.me>
<87pm3nlxuu.fsf@nosuchdomain.example.com> <ubh3s8$30v7t$1@dont-email.me>
<ubi5do$38ii5$1@dont-email.me> <ubib54$39aqa$1@dont-email.me>
<ubii7m$3acds$1@dont-email.me> <ubivp8$3cjsl$1@dont-email.me>
<ubl89c$3prfv$1@dont-email.me> <ubma81$3upnp$1@dont-email.me>
<20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk>
<66629235-f2e0-46e0-bcb1-bf3abe1e33cdn@googlegroups.com>
<87edjyvdba.fsf@bsb.me.uk>
<038f3d41-228f-4f22-9086-8596e9022057n@googlegroups.com>
<87edjxts00.fsf@bsb.me.uk> <ubtvb0$1hpq8$1@dont-email.me>
<87wmxps26h.fsf@bsb.me.uk> <ubub09$1jeo1$1@dont-email.me>
<87r0nxrvm1.fsf@bsb.me.uk> <ubvd3u$1roqh$1@dont-email.me>
<87zg2jrk7t.fsf@bsb.me.uk>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 22 Aug 2023 01:18:57 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="5b0acd9f0fe348721c3866dad8b35540";
logging-data="2234321"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/WW6BtwuKJXUkGt0+SkyHt0hrxk7kYaeY="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.14.0
Cancel-Lock: sha1:HFTwvbkEpcd5tnG52RIhLh/jTVg=
In-Reply-To: <87zg2jrk7t.fsf@bsb.me.uk>
 by: Bart - Tue, 22 Aug 2023 01:18 UTC

On 22/08/2023 01:31, Ben Bacarisse wrote:

>> If there's anything extra, then that can be explained. This can be put into
>> a Readme or Install or Build text file.
>
> Sounds simple. What does this simple solution look like for a68g? I'll
> send it to the authors if you don't want to do that yourself.
>

Have a look at the post I made 21-08-23 14:12 BST, and follow-on ones,
where I explore what happens when a build process provides such information.

In that case, 1000s of lines of 'configure' scripts and numerous
makefiles could be reduced to a 6-line build script, even if the lines
are somewhat long.

That is unusual, but note that this was version 9 of that project; that
info was not present on version 6. One wonders what feedback they got to
make them change the INSTALL file to be more helpful.

Maybe there is more than one person like me having difficulty.

(I'm not replying to your other points as you are not receptive to what
I am trying to do. You are just shrugging your shoulders at Windows. So
is nearly everyone. You are part of the problem.

I think you were even cheeky enough to suggest that I because I don't
pay for this software, I can't complain if its build process is rubbish.

I bet if I was providing anything similar /as free software/, and
claimed it worked for platform X, then I would darn well make sure it
was as simple, foolproof and effortless as I could make it.)

-----

As for A68G, the current version
(https://github.com/NevilleDNZ/algol68g-mirror) is a lot more
complicated than I what played with. 'make' gives an error even on WSL
Ubuntu.

It also has #includes for dozens of libraries that I've never heard of,
are not included in the source bundle, and are not part of Windows.

There are just too many dependencies, many apparently Linux-centric.

Re: Build Systems

<uc12vt$245uh$2@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28042&group=comp.lang.c#28042

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: bc...@freeuk.com (Bart)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Tue, 22 Aug 2023 02:28:29 +0100
Organization: A noiseless patient Spider
Lines: 36
Message-ID: <uc12vt$245uh$2@dont-email.me>
References: <uban99$1rnpb$1@dont-email.me> <ubdmk4$2dao7$1@dont-email.me>
<ubfeqj$2oop4$1@dont-email.me> <ubfknf$2plvs$1@dont-email.me>
<ubfu4d$2r98d$1@dont-email.me> <ubg4jr$2se4o$1@dont-email.me>
<ubg7ku$2srfk$1@dont-email.me> <ubgdr5$2tro0$1@dont-email.me>
<ubgpip$2vk5e$1@dont-email.me> <ubgulr$3095n$1@dont-email.me>
<87pm3nlxuu.fsf@nosuchdomain.example.com> <ubh3s8$30v7t$1@dont-email.me>
<ubi5do$38ii5$1@dont-email.me> <ubib54$39aqa$1@dont-email.me>
<ubii7m$3acds$1@dont-email.me> <ubivp8$3cjsl$1@dont-email.me>
<ubl89c$3prfv$1@dont-email.me> <ubma81$3upnp$1@dont-email.me>
<20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk>
<66629235-f2e0-46e0-bcb1-bf3abe1e33cdn@googlegroups.com>
<nv76rj-6r2.ln1@spanky.localhost.net>
<94380001-0115-4e3e-9274-168d3e3a9573n@googlegroups.com>
<drh7rj-1ci.ln1@spanky.localhost.net>
<4d9cd1b8-1323-46c8-947b-5b8481a5b2cdn@googlegroups.com>
<mqddrj-g83.ln1@spanky.localhost.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 22 Aug 2023 01:28:29 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="5b0acd9f0fe348721c3866dad8b35540";
logging-data="2234321"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+DSWnKBAKdq+8u8GbwngDUYl7694tvqk0="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.14.0
Cancel-Lock: sha1:JkxF7abWA0r1YZ02cuyDwJC/oQM=
In-Reply-To: <mqddrj-g83.ln1@spanky.localhost.net>
 by: Bart - Tue, 22 Aug 2023 01:28 UTC

On 22/08/2023 01:58, Kelsey Bjarnason wrote:
> On Sat, 19 Aug 2023 13:44:28 -0700 (PDT), bart c wrote:

>> Is easier than messing about with makefiles. But you seem to be under
>> the impression that using a makefile isn't running a script. I don't get
>> it.
>
> Call it a script if you like. The point remains, it does rather more than
> merely "gcc -oprog prog.c"; for one, it ensures (assuming proper rules are
> in place) both that modified dependencies get rebuilt, and that unmodified
> ones don't unless told to.
>
> So just as a trivial example, assume we have a dependency tree like so:
>
> types.h
> interface.h
> interface.c
> chess.h
> engine.c
>
> Now interface.h gets modified. Make would cause interface.c to be rebuilt
> and the final output (executable, presumably) to be rebuilt, but not
> engine.c.

>
> How does your script manage this - rebuilding what is necessary to
> rebuild, but *only* what is necessary to rebuild?

It wouldn't. At the point /I/ come across makefiles, I only want to
build the app from scratch. So everything will need compiling anyway. I
don't need all those complications.

I've made this point half a dozen times.

Re: Build Systems

<mo3erj-n3c.ln1@spanky.localhost.net>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28044&group=comp.lang.c#28044

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: kbjarna...@gmail.com (Kelsey Bjarnason)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Tue, 22 Aug 2023 00:12:54 -0700
Organization: A noiseless patient Spider
Lines: 53
Message-ID: <mo3erj-n3c.ln1@spanky.localhost.net>
References: <uban99$1rnpb$1@dont-email.me> <ubfeqj$2oop4$1@dont-email.me>
<ubfknf$2plvs$1@dont-email.me> <ubfu4d$2r98d$1@dont-email.me>
<ubg4jr$2se4o$1@dont-email.me> <ubg7ku$2srfk$1@dont-email.me>
<ubgdr5$2tro0$1@dont-email.me> <ubgpip$2vk5e$1@dont-email.me>
<ubgulr$3095n$1@dont-email.me> <87pm3nlxuu.fsf@nosuchdomain.example.com>
<ubh3s8$30v7t$1@dont-email.me> <ubi5do$38ii5$1@dont-email.me>
<ubib54$39aqa$1@dont-email.me> <ubii7m$3acds$1@dont-email.me>
<ubivp8$3cjsl$1@dont-email.me> <ubl89c$3prfv$1@dont-email.me>
<ubma81$3upnp$1@dont-email.me> <20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk>
<66629235-f2e0-46e0-bcb1-bf3abe1e33cdn@googlegroups.com>
<nv76rj-6r2.ln1@spanky.localhost.net>
<94380001-0115-4e3e-9274-168d3e3a9573n@googlegroups.com>
<drh7rj-1ci.ln1@spanky.localhost.net>
<4d9cd1b8-1323-46c8-947b-5b8481a5b2cdn@googlegroups.com>
<mqddrj-g83.ln1@spanky.localhost.net> <uc12vt$245uh$2@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Info: dont-email.me; posting-host="0775d6f86f8084f99cfad2a6ad2d3cd8";
logging-data="2446372"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18sONxlcr8lbU5v3b7An5MRHBbOMWD2SUw="
User-Agent: Pan/0.154 (Izium; 517acf4)
Cancel-Lock: sha1:RlOOBQIm7TuNSIBWBu0xpJwxDKA=
 by: Kelsey Bjarnason - Tue, 22 Aug 2023 07:12 UTC

On Tue, 22 Aug 2023 02:28:29 +0100, Bart wrote:

> On 22/08/2023 01:58, Kelsey Bjarnason wrote:
>> On Sat, 19 Aug 2023 13:44:28 -0700 (PDT), bart c wrote:
>
>>> Is easier than messing about with makefiles. But you seem to be under
>>> the impression that using a makefile isn't running a script. I don't
>>> get it.
>>
>> Call it a script if you like. The point remains, it does rather more
>> than merely "gcc -oprog prog.c"; for one, it ensures (assuming proper
>> rules are in place) both that modified dependencies get rebuilt, and
>> that unmodified ones don't unless told to.
>>
>> So just as a trivial example, assume we have a dependency tree like so:
>>
>> types.h
>> interface.h
>> interface.c
>> chess.h
>> engine.c
>>
>> Now interface.h gets modified. Make would cause interface.c to be
>> rebuilt and the final output (executable, presumably) to be rebuilt,
>> but not engine.c.
>
>
>
>> How does your script manage this - rebuilding what is necessary to
>> rebuild, but *only* what is necessary to rebuild?
>
> It wouldn't. At the point /I/ come across makefiles, I only want to
> build the app from scratch. So everything will need compiling anyway. I
> don't need all those complications.
>
> I've made this point half a dozen times.

That's great if you only work on toy-sized apps.

I've worked on apps where it took the combined effort of an entire network
of machines half a day to do a complete rebuild, which is obviously not
viable if you have multiple coders modifying multiple files and needing to
keep changes up to date and in sync. But rebuilding just the few bits
which have been modified, or have had their dependencies modified, becomes
trivial with a proper makefile. You type "make", wait for the few modules
to build, then carry on. Maybe a couple minutes. And you're not working
to outdated objects, because of dependency checking.

I'm sure you could do the same with a script, as well, but then you're
just trading one "build language" for another, less well known, less well
established one.

Re: Build Systems

<uc21oo$2caqg$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28045&group=comp.lang.c#28045

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: bc...@freeuk.com (Bart)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Tue, 22 Aug 2023 11:13:43 +0100
Organization: A noiseless patient Spider
Lines: 46
Message-ID: <uc21oo$2caqg$1@dont-email.me>
References: <uban99$1rnpb$1@dont-email.me> <ubfknf$2plvs$1@dont-email.me>
<ubfu4d$2r98d$1@dont-email.me> <ubg4jr$2se4o$1@dont-email.me>
<ubg7ku$2srfk$1@dont-email.me> <ubgdr5$2tro0$1@dont-email.me>
<ubgpip$2vk5e$1@dont-email.me> <ubgulr$3095n$1@dont-email.me>
<87pm3nlxuu.fsf@nosuchdomain.example.com> <ubh3s8$30v7t$1@dont-email.me>
<ubi5do$38ii5$1@dont-email.me> <ubib54$39aqa$1@dont-email.me>
<ubii7m$3acds$1@dont-email.me> <ubivp8$3cjsl$1@dont-email.me>
<ubl89c$3prfv$1@dont-email.me> <ubma81$3upnp$1@dont-email.me>
<20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk>
<66629235-f2e0-46e0-bcb1-bf3abe1e33cdn@googlegroups.com>
<nv76rj-6r2.ln1@spanky.localhost.net>
<94380001-0115-4e3e-9274-168d3e3a9573n@googlegroups.com>
<drh7rj-1ci.ln1@spanky.localhost.net>
<4d9cd1b8-1323-46c8-947b-5b8481a5b2cdn@googlegroups.com>
<mqddrj-g83.ln1@spanky.localhost.net> <uc12vt$245uh$2@dont-email.me>
<mo3erj-n3c.ln1@spanky.localhost.net>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 22 Aug 2023 10:13:44 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="5b0acd9f0fe348721c3866dad8b35540";
logging-data="2501456"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+W6bfdF2MZbSnHNgZsfT5wHNVaWPrOcfk="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.14.0
Cancel-Lock: sha1:hhcWY0Ew/aeHQBwGHHkUpkwpDc8=
In-Reply-To: <mo3erj-n3c.ln1@spanky.localhost.net>
 by: Bart - Tue, 22 Aug 2023 10:13 UTC

On 22/08/2023 08:12, Kelsey Bjarnason wrote:
> On Tue, 22 Aug 2023 02:28:29 +0100, Bart wrote:

>> It wouldn't. At the point /I/ come across makefiles, I only want to
>> build the app from scratch. So everything will need compiling anyway. I
>> don't need all those complications.
>>
>> I've made this point half a dozen times.
>
> That's great if you only work on toy-sized apps.
>
> I've worked on apps where it took the combined effort of an entire network
> of machines half a day to do a complete rebuild, which is obviously not
> viable if you have multiple coders modifying multiple files and needing to
> keep changes up to date and in sync. But rebuilding just the few bits
> which have been modified, or have had their dependencies modified, becomes
> trivial with a proper makefile. You type "make", wait for the few modules
> to build, then carry on. Maybe a couple minutes. And you're not working
> to outdated objects, because of dependency checking.

What happens when you send me all the sources and I have to build from
scratch; how does /my/ build-time benefit for a one-off compilation?

>
> I'm sure you could do the same with a script, as well, but then you're
> just trading one "build language" for another, less well known, less well
> established one.
>

What you're advising is to fly by 747 for all journeys even when a
train, bus, car, bike or going on foot would be more apt.

Have a look at the projects I've mentioned in this thread. The longest
gcc-O0 from-scratch build, where it worked, was 23 seconds. (I'm not
including the autoconf crap.)

By all means use 'make' for your ginormous applications, but don't foist
it on everybody and everything.

(Where are these giant programs anyway? I once did a survey of all the
EXEs and DLLS on my machine. I think 99% of all such files were under
10MB, or some such figures.

My usual compilers can generate 10MB binaries in seconds. The largest
binary was some 160MB, a DLL connected with Firefox I think, which
almost certainly was a collection of smaller components.)

Re: Build Systems

<uc232l$2cgpc$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28046&group=comp.lang.c#28046

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: bc...@freeuk.com (Bart)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Tue, 22 Aug 2023 11:36:04 +0100
Organization: A noiseless patient Spider
Lines: 23
Message-ID: <uc232l$2cgpc$1@dont-email.me>
References: <uban99$1rnpb$1@dont-email.me> <ubfu4d$2r98d$1@dont-email.me>
<ubg4jr$2se4o$1@dont-email.me> <ubg7ku$2srfk$1@dont-email.me>
<ubgdr5$2tro0$1@dont-email.me> <ubgpip$2vk5e$1@dont-email.me>
<ubgulr$3095n$1@dont-email.me> <87pm3nlxuu.fsf@nosuchdomain.example.com>
<ubh3s8$30v7t$1@dont-email.me> <ubi5do$38ii5$1@dont-email.me>
<ubib54$39aqa$1@dont-email.me> <ubii7m$3acds$1@dont-email.me>
<ubivp8$3cjsl$1@dont-email.me> <ubl89c$3prfv$1@dont-email.me>
<ubma81$3upnp$1@dont-email.me> <20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk>
<66629235-f2e0-46e0-bcb1-bf3abe1e33cdn@googlegroups.com>
<nv76rj-6r2.ln1@spanky.localhost.net>
<94380001-0115-4e3e-9274-168d3e3a9573n@googlegroups.com>
<drh7rj-1ci.ln1@spanky.localhost.net>
<4d9cd1b8-1323-46c8-947b-5b8481a5b2cdn@googlegroups.com>
<mqddrj-g83.ln1@spanky.localhost.net> <uc12vt$245uh$2@dont-email.me>
<mo3erj-n3c.ln1@spanky.localhost.net> <uc21oo$2caqg$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Tue, 22 Aug 2023 10:36:05 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="5b0acd9f0fe348721c3866dad8b35540";
logging-data="2507564"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19hpEjrjsTIxXTTZxIpuCCU56rk/Xu0xZY="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.14.0
Cancel-Lock: sha1:5zM2s9EZgYTjXX4VklsF6/XMrpI=
In-Reply-To: <uc21oo$2caqg$1@dont-email.me>
 by: Bart - Tue, 22 Aug 2023 10:36 UTC

On 22/08/2023 11:13, Bart wrote:
> On 22/08/2023 08:12, Kelsey Bjarnason wrote:

> (Where are these giant programs anyway? I once did a survey of all the
> EXEs and DLLS on my machine. I think 99% of all such files were under
> 10MB, or some such figures.

Looking only at my windows/system32 folder:

99.3% of EXEs were under 10MB, and 94% under 1MB
99.7% of DLLs were under 10MB, and 89% under 1MB

About 4000 files in total.

If you (KB) are talking about a system of EXEs and DLLS, then such files
are usually already independent from each other, or at least, any
dependencies are coarser.

You wouldn't use a make filefile that contains both the 1000 modules of
A.DLL, and the 1400 modules of B.DLL, simply because because A imports
B. At that rate you'd end up putting the modules of half those DLLs into
one makefile.

Re: Build Systems

<uc2a64$2diiv$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28052&group=comp.lang.c#28052

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: richard....@gmail.com (Richard Harnden)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Tue, 22 Aug 2023 13:37:25 +0100
Organization: A noiseless patient Spider
Lines: 27
Message-ID: <uc2a64$2diiv$1@dont-email.me>
References: <uban99$1rnpb$1@dont-email.me> <ubg4jr$2se4o$1@dont-email.me>
<ubg7ku$2srfk$1@dont-email.me> <ubgdr5$2tro0$1@dont-email.me>
<ubgpip$2vk5e$1@dont-email.me> <ubgulr$3095n$1@dont-email.me>
<87pm3nlxuu.fsf@nosuchdomain.example.com> <ubh3s8$30v7t$1@dont-email.me>
<ubi5do$38ii5$1@dont-email.me> <ubib54$39aqa$1@dont-email.me>
<ubii7m$3acds$1@dont-email.me> <ubivp8$3cjsl$1@dont-email.me>
<ubl89c$3prfv$1@dont-email.me> <ubma81$3upnp$1@dont-email.me>
<20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk>
<66629235-f2e0-46e0-bcb1-bf3abe1e33cdn@googlegroups.com>
<nv76rj-6r2.ln1@spanky.localhost.net>
<94380001-0115-4e3e-9274-168d3e3a9573n@googlegroups.com>
<drh7rj-1ci.ln1@spanky.localhost.net>
<4d9cd1b8-1323-46c8-947b-5b8481a5b2cdn@googlegroups.com>
<mqddrj-g83.ln1@spanky.localhost.net> <uc12vt$245uh$2@dont-email.me>
<mo3erj-n3c.ln1@spanky.localhost.net> <uc21oo$2caqg$1@dont-email.me>
<uc232l$2cgpc$1@dont-email.me>
Reply-To: nospam.harnden@gmail.com
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 22 Aug 2023 12:37:24 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="8661f73ce02ec0a2e76788d2982a887f";
logging-data="2542175"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19oBfFTrs0l7XZTrpFMIwtWw8b6QeRMtAA="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.14.0
Cancel-Lock: sha1:miN5HKG10fT4fjvqRWrnGzxmTzg=
In-Reply-To: <uc232l$2cgpc$1@dont-email.me>
 by: Richard Harnden - Tue, 22 Aug 2023 12:37 UTC

On 22/08/2023 11:36, Bart wrote:
> On 22/08/2023 11:13, Bart wrote:
>> On 22/08/2023 08:12, Kelsey Bjarnason wrote:
>
>> (Where are these giant programs anyway? I once did a survey of all the
>> EXEs and DLLS on my machine. I think 99% of all such files were under
>> 10MB, or some such figures.
>
> Looking only at my windows/system32 folder:
>
>    99.3% of EXEs were under 10MB, and 94% under 1MB
>    99.7% of DLLs were under 10MB, and 89% under 1MB
>
> About 4000 files in total.
>
> If you (KB) are talking about a system of EXEs and DLLS, then such files
> are usually already independent from each other, or at least, any
> dependencies are coarser.
>
> You wouldn't use a make filefile that contains both the 1000 modules of
> A.DLL, and the 1400 modules of B.DLL, simply because because A imports
> B. At that rate you'd end up putting the modules of half those DLLs into
> one makefile.
>

What do you mean by "module"?

Re: Build Systems

<uc2b03$2dln7$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28054&group=comp.lang.c#28054

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: bc...@freeuk.com (Bart)
Newsgroups: comp.lang.c
Subject: Re: Build Systems
Date: Tue, 22 Aug 2023 13:51:14 +0100
Organization: A noiseless patient Spider
Lines: 39
Message-ID: <uc2b03$2dln7$1@dont-email.me>
References: <uban99$1rnpb$1@dont-email.me> <ubg7ku$2srfk$1@dont-email.me>
<ubgdr5$2tro0$1@dont-email.me> <ubgpip$2vk5e$1@dont-email.me>
<ubgulr$3095n$1@dont-email.me> <87pm3nlxuu.fsf@nosuchdomain.example.com>
<ubh3s8$30v7t$1@dont-email.me> <ubi5do$38ii5$1@dont-email.me>
<ubib54$39aqa$1@dont-email.me> <ubii7m$3acds$1@dont-email.me>
<ubivp8$3cjsl$1@dont-email.me> <ubl89c$3prfv$1@dont-email.me>
<ubma81$3upnp$1@dont-email.me> <20230817183700.915@kylheku.com>
<011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk>
<66629235-f2e0-46e0-bcb1-bf3abe1e33cdn@googlegroups.com>
<nv76rj-6r2.ln1@spanky.localhost.net>
<94380001-0115-4e3e-9274-168d3e3a9573n@googlegroups.com>
<drh7rj-1ci.ln1@spanky.localhost.net>
<4d9cd1b8-1323-46c8-947b-5b8481a5b2cdn@googlegroups.com>
<mqddrj-g83.ln1@spanky.localhost.net> <uc12vt$245uh$2@dont-email.me>
<mo3erj-n3c.ln1@spanky.localhost.net> <uc21oo$2caqg$1@dont-email.me>
<uc232l$2cgpc$1@dont-email.me> <uc2a64$2diiv$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 22 Aug 2023 12:51:15 -0000 (UTC)
Injection-Info: dont-email.me; posting-host="5b0acd9f0fe348721c3866dad8b35540";
logging-data="2545383"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/k4qkVAZ20bOQUTgcii1QdxJvYK6LQOU4="
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101
Thunderbird/102.14.0
Cancel-Lock: sha1:fXRRzggfGX4p0FclOdJNrSgpTYU=
In-Reply-To: <uc2a64$2diiv$1@dont-email.me>
 by: Bart - Tue, 22 Aug 2023 12:51 UTC

On 22/08/2023 13:37, Richard Harnden wrote:
> On 22/08/2023 11:36, Bart wrote:
>> On 22/08/2023 11:13, Bart wrote:
>>> On 22/08/2023 08:12, Kelsey Bjarnason wrote:
>>
>>> (Where are these giant programs anyway? I once did a survey of all
>>> the EXEs and DLLS on my machine. I think 99% of all such files were
>>> under 10MB, or some such figures.
>>
>> Looking only at my windows/system32 folder:
>>
>>     99.3% of EXEs were under 10MB, and 94% under 1MB
>>     99.7% of DLLs were under 10MB, and 89% under 1MB
>>
>> About 4000 files in total.
>>
>> If you (KB) are talking about a system of EXEs and DLLS, then such
>> files are usually already independent from each other, or at least,
>> any dependencies are coarser.
>>
>> You wouldn't use a make filefile that contains both the 1000 modules
>> of A.DLL, and the 1400 modules of B.DLL, simply because because A
>> imports B. At that rate you'd end up putting the modules of half those
>> DLLs into one makefile.
>>
>
> What do you mean by "module"?
>

In the current context it can mean every .c and .h that is identified by
name in a makefile.

Although when I wrote 'module' I loosely had in mind the translation
unit, the assembly of .c and .h files, that comprise a single named .c
source when it is processed by a compiler.

Because my own script mention only explicit .c files, and not indirectly
included .c and .h files.

Re: Build Systems

<zO3FM.455984$U3w1.106715@fx09.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28058&group=comp.lang.c#28058

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer01.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx09.iad.POSTED!not-for-mail
X-newsreader: xrn 9.03-beta-14-64bit
Sender: scott@dragon.sl.home (Scott Lurndal)
From: sco...@slp53.sl.home (Scott Lurndal)
Reply-To: slp53@pacbell.net
Subject: Re: Build Systems
Newsgroups: comp.lang.c
References: <uban99$1rnpb$1@dont-email.me> <011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com> <87cyzjx4ob.fsf@bsb.me.uk> <66629235-f2e0-46e0-bcb1-bf3abe1e33cdn@googlegroups.com> <87edjyvdba.fsf@bsb.me.uk> <038f3d41-228f-4f22-9086-8596e9022057n@googlegroups.com> <87edjxts00.fsf@bsb.me.uk> <ubtvb0$1hpq8$1@dont-email.me> <87wmxps26h.fsf@bsb.me.uk> <ubub09$1jeo1$1@dont-email.me> <87r0nxrvm1.fsf@bsb.me.uk> <ubvd3u$1roqh$1@dont-email.me> <87zg2jrk7t.fsf@bsb.me.uk> <uc12e1$245uh$1@dont-email.me>
Lines: 69
Message-ID: <zO3FM.455984$U3w1.106715@fx09.iad>
X-Complaints-To: abuse@usenetserver.com
NNTP-Posting-Date: Tue, 22 Aug 2023 14:41:35 UTC
Organization: UsenetServer - www.usenetserver.com
Date: Tue, 22 Aug 2023 14:41:35 GMT
X-Received-Bytes: 3687
 by: Scott Lurndal - Tue, 22 Aug 2023 14:41 UTC

Bart <bc@freeuk.com> writes:
>On 22/08/2023 01:31, Ben Bacarisse wrote:
>
>>> If there's anything extra, then that can be explained. This can be put into
>>> a Readme or Install or Build text file.
>>
>> Sounds simple. What does this simple solution look like for a68g? I'll
>> send it to the authors if you don't want to do that yourself.
>>
>
>Have a look at the post I made 21-08-23 14:12 BST, and follow-on ones,
>where I explore what happens when a build process provides such information.
>
>In that case, 1000s of lines of 'configure' scripts and numerous
>makefiles could be reduced to a 6-line build script, even if the lines
>are somewhat long.

That may be true. It is likely wishful thinking on your part, however.

However, you seem to think that useful code can be developed
just using the facilities defined by the C standard. Which is almost
never the case.

Therefore, applications generally use operating system specific
functionality (POSIX, WIN32/WIN64 APIs) to get the functionality and/or
performance that the application requires.

As the C language predated windows by a decade or more, windows is
the johnny-come-lately here, and your expectation that C software developers
must accomodate windows systems is flawed.

>(I'm not replying to your other points as you are not receptive to what
>I am trying to do.

Is anyone other than yourself obsessed with executable size,
compile times or easy command line use?

> You are just shrugging your shoulders at Windows. So
>is nearly everyone. You are part of the problem.

It's a problem to you. It doesn't appear to be a problem to
others.

>
>I think you were even cheeky enough to suggest that I because I don't
>pay for this software, I can't complain if its build process is rubbish.

It is a valid point. You can complain all you want (which you do),
but nobody is required to listen.

>
>I bet if I was providing anything similar /as free software/, and
>claimed it worked for platform X, then I would darn well make sure it
>was as simple, foolproof and effortless as I could make it.)

The point of configure was to provide that capability across a wide
range of unix and unix-like systems.

>It also has #includes for dozens of libraries that I've never heard of,
>are not included in the source bundle, and are not part of Windows.

And why would you expect otherwise?

You mentioned 'open' vs 'fopen' in another post - open(2) provides
useful functionality that fopen(3) doesn't, including far better
I/O performance. Why shouldn't an application that requires the
functionality provided by open(2) use it?

Re: Build Systems

<zX3FM.455985$U3w1.225957@fx09.iad>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28059&group=comp.lang.c#28059

  copy link   Newsgroups: comp.lang.c
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!fx09.iad.POSTED!not-for-mail
X-newsreader: xrn 9.03-beta-14-64bit
Sender: scott@dragon.sl.home (Scott Lurndal)
From: sco...@slp53.sl.home (Scott Lurndal)
Reply-To: slp53@pacbell.net
Subject: Re: Build Systems
Newsgroups: comp.lang.c
References: <uban99$1rnpb$1@dont-email.me> <87cyzjx4ob.fsf@bsb.me.uk> <66629235-f2e0-46e0-bcb1-bf3abe1e33cdn@googlegroups.com> <nv76rj-6r2.ln1@spanky.localhost.net> <94380001-0115-4e3e-9274-168d3e3a9573n@googlegroups.com> <drh7rj-1ci.ln1@spanky.localhost.net> <4d9cd1b8-1323-46c8-947b-5b8481a5b2cdn@googlegroups.com> <mqddrj-g83.ln1@spanky.localhost.net> <uc12vt$245uh$2@dont-email.me> <mo3erj-n3c.ln1@spanky.localhost.net> <uc21oo$2caqg$1@dont-email.me>
Lines: 9
Message-ID: <zX3FM.455985$U3w1.225957@fx09.iad>
X-Complaints-To: abuse@usenetserver.com
NNTP-Posting-Date: Tue, 22 Aug 2023 14:51:11 UTC
Organization: UsenetServer - www.usenetserver.com
Date: Tue, 22 Aug 2023 14:51:11 GMT
X-Received-Bytes: 1294
 by: Scott Lurndal - Tue, 22 Aug 2023 14:51 UTC

Bart <bc@freeuk.com> writes:
>On 22/08/2023 08:12, Kelsey Bjarnason wrote:

>(Where are these giant programs anyway? I once did a survey of all the
>EXEs and DLLS on my machine. I think 99% of all such files were under
>10MB, or some such figures.

What makes your machine representative of the entire population of
machines?

Re: Build Systems

<7f30719b-2469-449b-9ce3-fa2beffa180dn@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=28061&group=comp.lang.c#28061

  copy link   Newsgroups: comp.lang.c
X-Received: by 2002:a05:6214:18e6:b0:63d:38f1:fc82 with SMTP id ep6-20020a05621418e600b0063d38f1fc82mr80338qvb.8.1692716586518;
Tue, 22 Aug 2023 08:03:06 -0700 (PDT)
X-Received: by 2002:a17:90a:f2c1:b0:26d:323c:a9b4 with SMTP id
gt1-20020a17090af2c100b0026d323ca9b4mr2633891pjb.3.1692716586035; Tue, 22 Aug
2023 08:03:06 -0700 (PDT)
Path: i2pn2.org!i2pn.org!usenet.blueworldhosting.com!diablo1.usenet.blueworldhosting.com!peer02.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.c
Date: Tue, 22 Aug 2023 08:03:05 -0700 (PDT)
In-Reply-To: <zO3FM.455984$U3w1.106715@fx09.iad>
Injection-Info: google-groups.googlegroups.com; posting-host=2a00:23a8:400a:5601:1c5f:c8af:ef99:3315;
posting-account=Dz2zqgkAAADlK5MFu78bw3ab-BRFV4Qn
NNTP-Posting-Host: 2a00:23a8:400a:5601:1c5f:c8af:ef99:3315
References: <uban99$1rnpb$1@dont-email.me> <011f0102-1241-464c-b628-0350c0be29fbn@googlegroups.com>
<87cyzjx4ob.fsf@bsb.me.uk> <66629235-f2e0-46e0-bcb1-bf3abe1e33cdn@googlegroups.com>
<87edjyvdba.fsf@bsb.me.uk> <038f3d41-228f-4f22-9086-8596e9022057n@googlegroups.com>
<87edjxts00.fsf@bsb.me.uk> <ubtvb0$1hpq8$1@dont-email.me> <87wmxps26h.fsf@bsb.me.uk>
<ubub09$1jeo1$1@dont-email.me> <87r0nxrvm1.fsf@bsb.me.uk> <ubvd3u$1roqh$1@dont-email.me>
<87zg2jrk7t.fsf@bsb.me.uk> <uc12e1$245uh$1@dont-email.me> <zO3FM.455984$U3w1.106715@fx09.iad>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <7f30719b-2469-449b-9ce3-fa2beffa180dn@googlegroups.com>
Subject: Re: Build Systems
From: malcolm....@gmail.com (Malcolm McLean)
Injection-Date: Tue, 22 Aug 2023 15:03:06 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 2036
 by: Malcolm McLean - Tue, 22 Aug 2023 15:03 UTC

On Tuesday, 22 August 2023 at 15:41:51 UTC+1, Scott Lurndal wrote:
>
> As the C language predated windows by a decade or more, windows is
> the johnny-come-lately here, and your expectation that C software developers
> must accomodate windows systems is flawed.
>
You have to live in the real world. Windows is very widely used, and often you
have to support it, because that's where your users are.


devel / comp.lang.c / Re: Build Systems

Pages:12345678910111213
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor