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:
1 parent
903ef5472a
commit
b0918543df
4 files changed
+44
-14
No files matched your search
+4
-10
@@ -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
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -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.
|
||||||
|
|
||||||
|
|||||||
Executable
+33
@@ -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
@@ -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))
|
||||||
|
|||||||
Reference in new issue
Block a user