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
|
||||
./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:
|
||||
|
||||
First build the tool itself with our Makefile:
|
||||
|
||||
```sh
|
||||
./ant Makefile am
|
||||
```
|
||||
|
||||
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
|
||||
./try.sh
|
||||
```
|
||||
|
||||
|
||||
|
||||
@@ -57,7 +57,7 @@ TEXT_2 = test macro split \
|
||||
three lines
|
||||
TEXT_3 = test dollar macro '$$'
|
||||
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
|
||||
|
||||
@@ -161,7 +161,7 @@ leaf.5 :
|
||||
|
||||
# Command lines split across lines.
|
||||
split.cmd:
|
||||
echo Try spliting command \
|
||||
echo Try splitting command \
|
||||
lines across more \
|
||||
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
|
||||
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
|
||||
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.
|
||||
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
|
||||
@@ -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.
|
||||
|
||||
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))
|
||||
|
||||
Reference in new issue
Block a user