Add 1992/ant/try.sh

If you like ants there are now 1992 of them here to try out (whatever
that means :-) ).

Some typos in the test Makefile were also fixed (just those that I saw
as the command was scrolling by - I didn't look at the whole file).
This commit is contained in:
Cody Boone Ferguson committed 2024-01-14 09:03:58 -08:00
1 parent 903ef5472a
commit b0918543df
4 files changed
+44 -14

No files matched your search

+4 -10
View File
@@ -9,24 +9,18 @@ make all
```sh ```sh
./ant Makefile ./ant Makefile
./ant Makefile rule
``` ```
where `Makefile` is a Makefile to use. where `Makefile` is a Makefile to use and `rule` is an optional rule to use.
### Try: ### Try:
First build the tool itself with our Makefile:
```sh ```sh
./ant Makefile am ./try.sh
```
Now use `am` to do some things:
```sh
./am Makefile am_clobber # clobber everything except am
./am ant.test.mk # run the test Makefile with am
``` ```
+2 -2
View File
@@ -57,7 +57,7 @@ TEXT_2 = test macro split \
three lines three lines
TEXT_3 = test dollar macro '$$' TEXT_3 = test dollar macro '$$'
TEXT_4 = test dollar again "$$(TEXT_1)" TEXT_4 = test dollar again "$$(TEXT_1)"
TEXT_5 = imbeded macro '$(TEXT_1)' TEXT_5 = embedded macro '$(TEXT_1)'
redefine : r1 r2 r3 r4 r5 redefine : r1 r2 r3 r4 r5
@@ -161,7 +161,7 @@ leaf.5 :
# Command lines split across lines. # Command lines split across lines.
split.cmd: split.cmd:
echo Try spliting command \ echo Try splitting command \
lines across more \ lines across more \
than one line. than one line.
+33
View File
@@ -0,0 +1,33 @@
#!/usr/bin/env bash
#
# try.sh - demonstrate IOCCC winner 1992/ant
#
# make sure CC is set so that when we do make CC="$CC" it isn't empty. Doing it
# this way allows us to have the user specify a different compiler in an easy
# way.
if [[ -z "$CC" ]]; then
CC="cc"
fi
make CC="$CC" all >/dev/null || exit 1
# clear screen after compilation so that only the entry is shown
clear
echo "$ ./ant Makefile am # build the tool itself" 1>&2
read -r -n 1 -p "Press any key to run: ./ant Makefile am: "
echo 1>&2
./ant Makefile am
echo 1>&2
echo "$ ./am Makefile am_clobber # clobber everything except am" 1>&2
read -r -n 1 -p "Press any key to continue: "
echo 1>&2
./am Makefile am_clobber # clobber everything except am
echo 1>&2
echo "$ ./am ant.test.mk # run the test Makefile with am" 1>&2
read -r -n 1 -p "Press any key to continue: "
echo 1>&2
./am ant.test.mk # run the test Makefile with am
+5 -2
View File
@@ -1505,7 +1505,7 @@ return void.
[Cody](#cody) fixed the Makefile so that the program will actually work with it (or at [Cody](#cody) fixed the Makefile so that the program will actually work with it (or at
least the rule to clobber files and link `am` to `ant`). The issue was that the least the rule to clobber files and link `am` to `ant`). The issue was that the
variables in the Makefile could not be evaluated in the same way as it's not as variables in the Makefile could not be evaluated in the same way as it's not as
feature-rich as other implementations of `make`. Thus the use of `${RM}` and feature-rich as other implementations of `make(1)`. Thus the use of `${RM}` and
`${CP}` were in the respective rules changed to `rm` and `cp`, for two examples. `${CP}` were in the respective rules changed to `rm` and `cp`, for two examples.
A new rule had to be added as well. The variable situation might be because they A new rule had to be added as well. The variable situation might be because they
are obtained from the root variable Makefile `var.mk` via `include` which the are obtained from the root variable Makefile `var.mk` via `include` which the
@@ -1516,7 +1516,10 @@ Cody also fixed another problem, unrelated, in the Makefile with the `.PHONY`
rule where a line was not ended with a `\` but should have been. rule where a line was not ended with a `\` but should have been.
The author stated that in some systems like DOS with Turbo C, it might be The author stated that in some systems like DOS with Turbo C, it might be
necessary to include `time.h` so Cody did this as well. necessary to include `time.h` so Cody did this as well as this exists in other
systems too.
Cody also added the [try.sh](/1992/ant/try.sh) script.
## <a name="1992_buzzard.1"></a>[1992/buzzard.1](/1992/buzzard.1/buzzard.1.c) ([README.md](/1992/buzzard.1/README.md)) ## <a name="1992_buzzard.1"></a>[1992/buzzard.1](/1992/buzzard.1/buzzard.1.c) ([README.md](/1992/buzzard.1/README.md))