1a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#! /bin/sh
2a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
3a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner# edit this to taste; note that you can also override via the environment:
4a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turnercase "$CC" in
5a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner  "") CC=cc
6a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turneresac
7a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
8a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turnerif test -f config.h; then :; else
9a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner  echo "Creating basic config.h..."
10a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner  cat >config.h <<'END_OF_CONFIG_H'
11a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner/* A bootstrap version of config.h, for systems which can't
12a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner   auto-configure due to a lack of a working sed.  If you are on
13a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner   a sufficiently odd machine you may need to hand-tweak this file.
14a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
15a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner   Regardless, once you get a working version of sed you really should
16a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner   re-build starting with a run of "configure", as the bootstrap
17a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner   version is almost certainly more crippled than it needs to be on
18a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner   your machine.
19a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner*/
20a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
21a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#define PACKAGE "sed"
22a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#define PACKAGE_BUGREPORT "@PACKAGE_BUGREPORT@"
23a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#define VERSION "@VERSION@-boot"
24a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#define SED_FEATURE_VERSION "@SED_FEATURE_VERSION@"
25a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#define BOOTSTRAP 1
26a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
27a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#ifndef _GNU_SOURCE
28a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#define _GNU_SOURCE 1
29a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#endif
30a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
31a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner/* Define if your compiler/headers don't support const. */
32a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#undef const
33a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#define __getopt_argv_const const
34a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
35a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner/* Define if headers have no definition.  */
36a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner/* #define mbstate_t int */
37a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#define HAVE_WCHAR_H 1
38a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#define HAVE_MBRTOWC 1
39a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
40a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner/* Toggle if you encounter errors in lib/mkstemp.c.  */
41a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#define HAVE_UNISTD_H 1
42a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#define HAVE_FCNTL_H 1
43a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#undef HAVE_SYS_FILE_H
44a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#undef HAVE_IO_H
45a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
46a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner/* Emulate stdbool.h.  */
47a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#define bool int
48a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#define true 1
49a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#define false 0
50a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
51a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner/* Avoid uselessly complicated gnulib stuff.  */
52a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#define _LOCALCHARSET_H
53a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#define locale_charset()	"C"
54a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
55a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner/* All other config.h.in options intentionally omitted.  Report as a
56a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner   bug if you need extra "#define"s in here. */
57a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
58a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' TurnerEND_OF_CONFIG_H
59a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
60a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner  cat > conftest.c << \EOF
61a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#define size_t unsigned
62a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#include <sys/types.h>
63a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#include <stdio.h>
64a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
65a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turnersize_t s;
66a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' TurnerEOF
67a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner  if $CC -c conftest.c -o conftest.o > /dev/null 2>&1 ; then
68a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner    echo '#define size_t unsigned' >> config.h
69a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner    echo checking for size_t... no
70a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner  else
71a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner    echo checking for size_t... yes
72a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner  fi
73a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
74a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner  cat > conftest.c << \EOF
75a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#define ssize_t int
76a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#include <sys/types.h>
77a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#include <stdio.h>
78a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
79a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turnerssize_t s;
80a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' TurnerEOF
81a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner  if $CC -c conftest.c -o conftest.o > /dev/null 2>&1 ; then
82a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner    echo '#define ssize_t int' >> config.h
83a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner    echo checking for ssize_t... no
84a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner  else
85a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner    echo checking for ssize_t... yes
86a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner  fi
87a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
88a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner  cat > conftest.c << \EOF
89a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turnervoid *foo;
90a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
91a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' TurnerEOF
92a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner  if $CC -c conftest.c -o conftest.o > /dev/null 2>&1 ; then
93a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner    echo checking for void *... yes
94a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner  else
95a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner    echo '#define VOID char' >> config.h
96a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner    echo checking for void *... no
97a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner  fi
98a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
99a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner  rm -f conftest.*
100a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
101a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner  cat >> config.h << \EOF
102a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#include <sys/types.h>
103a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner#include <stdio.h>
104a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' TurnerEOF
105a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
106a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turnerfi
107a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
108a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner# tell the user what we're doing from here on...
109a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turnerset -x -e
110a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
111a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner# the ``|| exit 1''s are for fail-stop; set -e doesn't work on some systems
112a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
113a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turnerrm -f lib/*.o sed/*.o sed/sed
114a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turnercd lib || exit 1
115a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turnercp alloca.in.h alloca.h || exit 1
116a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c alloca.c || exit 1
117a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c copy-acl.c || exit 1
118a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c error.c || exit 1
119a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c exitfail.c || exit 1
120a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c file-has-acl.c || exit 1
121a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c getdelim.c || exit 1
122a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c getline.c || exit 1
123a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c getopt.c || exit 1
124a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c getopt1.c || exit 1
125a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c malloc.c || exit 1
126a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c mkstemp.c || exit 1
127a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c obstack.c || exit 1
128a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c quote.c || exit 1
129a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c quotearg.c || exit 1
130a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c regex.c || exit 1
131a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c set-mode-acl.c || exit 1
132a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c strerror.c || exit 1
133a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c strverscmp.c || exit 1
134a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c tempname.c || exit 1
135a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c xalloc-die.c || exit 1
136a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -c xmalloc.c || exit 1
137a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
138a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turnercd ../sed || exit 1
139a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -I../lib -c sed.c || exit 1
140a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -I../lib -c fmt.c || exit 1
141a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -I../lib -c compile.c || exit 1
142a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -I../lib -c execute.c || exit 1
143a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -I../lib -c mbcs.c || exit 1
144a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -I../lib -c regexp.c || exit 1
145a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -DHAVE_CONFIG_H -I.. -I. -I../lib -c utils.c || exit 1
146a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner
147a6dfe5f70959a596290e1591579d26a288a1a2f9David 'Digit' Turner${CC} -o sed *.o ../lib/*.o || exit 1
148