annotate src/prefix-args.c @ 29499:a293ec8516e0

Update whitespace.el - comment out the :version string, since it seems to have trouble with XEmacs 20.4 (user reported bug). Xemacs doesn't create group if this is present. Bug verified. Not yet determined the problem.
author Rajesh Vaidheeswarran <rv@gnu.org>
date Wed, 07 Jun 2000 19:04:57 +0000
parents fa9ff387d260
children 0c4cb98fb3f4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
20572
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
1 /* prefix-args.c - echo each argument, prefixed by a string.
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
2 Jim Blandy <jimb@occs.cs.oberlin.edu> - September 1992
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
3
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
4 When using GCC 2 as the linker in the build process, options
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5 intended for the linker need to be prefixed with the "-Xlinker"
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
6 option. If an option takes an argument, we need to use -Xlinker
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
7 twice - once for the option and once for its argument. For
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
8 example, to run the linker with the options "-Bstatic" "-e"
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9 "_start", you'd need to pass the following options to GCC:
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11 -Xlinker -Bstatic -Xlinker -e -Xlinker _start.
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13 The Emacs makefile used to use a Bourne Shell `for' loop to prefix
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14 each linker option with "-Xlinker", but 1) the for loop was hairier
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15 than one might hope because it had to work when there were no
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16 arguments to pass to the linker - the shell barfs on a loop like
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 this:
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19 for arg in ; do echo -Xlinker "$arg"; done
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21 and 2) the whole compilation command containing this loop seems to
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22 exit with a non-zero status and halt the build under Ultrix.
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
23
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
24 If I can't write a completely portable program to do this in C,
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
25 I'm quitting and taking up gardening. */
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
27 #include <stdio.h>
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
28
21514
fa9ff387d260 Fix -Wimplicit warnings.
Andreas Schwab <schwab@suse.de>
parents: 20572
diff changeset
29 int
20572
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30 main (argc, argv)
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
31 int argc;
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32 char **argv;
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
33 {
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
34 char *progname;
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
35 char *prefix;
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
37 progname = argv[0];
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
38 argc--, argv++;
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
39
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
40 if (argc < 1)
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
41 {
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
42 fprintf (stderr, "Usage: %s PREFIX ARGS...\n\
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
43 Echo each ARG preceded by PREFIX and a space.\n", progname);
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
44 exit (2);
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
45 }
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
46
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
47 prefix = argv[0];
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
48 argc--, argv++;
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
49
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
50 for (; argc > 0; argc--, argv++)
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
51 printf ("%s %s%c", prefix, argv[0], (argc > 1) ? ' ' : '\n');
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
52
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
53 exit (0);
763c253911c3 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
54 }