Use one makefile for fixinc
From-SVN: r38231
This commit is contained in:
parent
c36ee1647b
commit
2629a11424
12 changed files with 96 additions and 141 deletions
|
@ -1,3 +1,21 @@
|
|||
2000-12-13 Bruce Korb <bkorb@gnu.org>
|
||||
|
||||
* fixinc/Makefile.in(*): substantial rewrite to accommodate systems
|
||||
that cannot handle bi-directional pipes, viz. BeOS and DOS.
|
||||
* fixinc/fixlib.h(IGNORE_ARG): new macro
|
||||
(STATIC): define for all of fixinc to use
|
||||
* fixinc/fixfixes.c(*): eliminate unused arg warnings
|
||||
* fixinc/fixtests.c(*): ditto
|
||||
* fixinc/fixincl.c(start_fixer): chain_open now uses const arg list
|
||||
* fixinc/gnu-regex.c: reorder some includes to avoid _GNU_SOURCE
|
||||
warning. Also, eliminate the ``#ifdef emacs'' stuff.
|
||||
(re_syntax_options): make global as it is declared so.
|
||||
* fixinc/mkfixinc.sh: process the argument list more consistently
|
||||
(beos/msdosdjgpp): set TARGETS to twoprocess vs. oneprocess
|
||||
* fixinc/procopen.c(globals): include "fixlib.h" for std defs
|
||||
* fixinc/server.c(globals): ditto
|
||||
* fixinc/server.h(defines): ditto
|
||||
|
||||
2000-12-13 Neil Booth <neil@daikokuya.demon.co.uk>
|
||||
|
||||
* tradcpp.c (special_symbol): Improve test for definedness,
|
||||
|
|
|
@ -59,23 +59,38 @@ INCLUDES = -I. -I.. -I$(srcdir) -I$(srcdir)/.. \
|
|||
## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
||||
|
||||
LIBERTY = ../../libiberty/libiberty.a
|
||||
OBJ = fixincl.o fixtests.o fixfixes.o server.o procopen.o \
|
||||
|
||||
ALLOBJ = fixincl.o fixtests.o fixfixes.o server.o procopen.o \
|
||||
gnu-regex.o fixlib.o
|
||||
|
||||
HDR = server.h gnu-regex.h fixlib.h machname.h
|
||||
TESTOBJ = fixincl.o fixlib.o fixtests.o gnu-regex.o
|
||||
FIXOBJ = fixfixes.o fixlib.o gnu-regex.o
|
||||
|
||||
TARGETS = fixincl@build_exeext@
|
||||
HDR = server.h gnu-regex.h fixlib.h machname.h
|
||||
FI = fixincl@build_exeext@
|
||||
AF = applyfix@build_exeext@
|
||||
|
||||
all : $(TARGETS)
|
||||
gen : $(srcdir)/fixincl.x
|
||||
|
||||
fixincl@build_exeext@: $(OBJ) $(LIBERTY)
|
||||
$(CC) $(FIXINC_DEFS) $(LDFLAGS) -o $@ $(OBJ) $(LIBERTY)
|
||||
oneprocess : full-stamp
|
||||
twoprocess : test-stamp $(AF)
|
||||
|
||||
$(OBJ) : $(HDR)
|
||||
fixincl.o : $(srcdir)/fixincl.x fixincl.c
|
||||
full-stamp : $(ALLOBJ) $(LIBERTY)
|
||||
$(CC) $(FIXINC_DEFS) $(LDFLAGS) -o $(FI) $(ALLOBJ) $(LIBERTY)
|
||||
touch $@
|
||||
|
||||
test-stamp : $(TESTOBJ) $(LIBERTY)
|
||||
$(CC) $(FIXINC_DEFS) $(LDFLAGS) -o $(FI) $(TESTOBJ) $(LIBERTY)
|
||||
touch $@
|
||||
|
||||
$(AF): $(FIXOBJ) $(LIBERTY)
|
||||
$(CC) $(FIXINC_DEFS) $(LDFLAGS) -o $@ $(FIXOBJ) $(LIBERTY)
|
||||
|
||||
$(ALLOBJ) : $(HDR)
|
||||
fixincl.o : fixincl.c $(srcdir)/fixincl.x
|
||||
fixtests.o : fixtests.c
|
||||
fixfixes.o : fixfixes.c
|
||||
fixfixes.o : fixfixes.c $(srcdir)/fixincl.x
|
||||
server.o : server.c
|
||||
procopen.o : procopen.c
|
||||
gnu-regex.o : gnu-regex.c
|
||||
|
@ -91,7 +106,7 @@ $(srcdir)/fixincl.x: fixincl.tpl inclhack.def
|
|||
cd $(srcdir) ; $(SHELL) ./genfixes $@
|
||||
|
||||
clean:
|
||||
rm -f *.o $(TARGETS) machname.h *~
|
||||
rm -f *.o *-stamp $(AF) $(FI) machname.h *~
|
||||
|
||||
maintainer-clean : clean
|
||||
rm -f $(srcdir)/fixincl.x
|
||||
|
@ -103,11 +118,7 @@ install-bin : $(TARGETS)
|
|||
./fixincl -v
|
||||
@if [ -f ../fixinc.sh ] ; then rm -f ../fixinc.sh || \
|
||||
mv -f ../fixinc.sh ../fixinc.sh.$$ || exit 1 ; fi
|
||||
@if [ -f ./fixincl.sh ] ; \
|
||||
then echo cp ./fixincl.sh ../fixinc.sh ; \
|
||||
cp ./fixincl.sh ../fixinc.sh ; \
|
||||
else echo cp $(srcdir)/fixincl.sh ../fixinc.sh ; \
|
||||
cp $(srcdir)/fixincl.sh ../fixinc.sh ; fi
|
||||
@cp $(srcdir)/fixincl.sh ../fixinc.sh
|
||||
chmod 755 ../fixinc.sh
|
||||
|
||||
Makefile: Makefile.in ../config.status
|
||||
|
|
|
@ -257,6 +257,7 @@ FIX_PROC_HEAD( format_fix )
|
|||
tCC* pz_fmt = p_fixd->patch_args[1];
|
||||
regex_t re;
|
||||
regmatch_t rm[10];
|
||||
IGNORE_ARG(filname);
|
||||
|
||||
/*
|
||||
* We must have a format
|
||||
|
@ -335,6 +336,7 @@ FIX_PROC_HEAD( char_macro_use_fix )
|
|||
regmatch_t rm[1];
|
||||
const char *p, *limit;
|
||||
size_t len;
|
||||
IGNORE_ARG(filname);
|
||||
|
||||
if (str == NULL)
|
||||
{
|
||||
|
@ -419,6 +421,7 @@ FIX_PROC_HEAD( char_macro_def_fix )
|
|||
const char *p, *limit;
|
||||
char arg;
|
||||
size_t len;
|
||||
IGNORE_ARG(filname);
|
||||
|
||||
if (str == NULL)
|
||||
{
|
||||
|
@ -511,6 +514,8 @@ FIX_PROC_HEAD( machine_name_fix )
|
|||
regex_t *label_re, *name_re;
|
||||
char scratch[SCRATCHSZ];
|
||||
size_t len;
|
||||
IGNORE_ARG(filname);
|
||||
IGNORE_ARG(p_fixd);
|
||||
|
||||
mn_get_regexps (&label_re, &name_re, "machine_name_fix");
|
||||
|
||||
|
@ -598,7 +603,7 @@ FIX_PROC_HEAD( machine_name_fix )
|
|||
FIX_PROC_HEAD( wrap_fix )
|
||||
{
|
||||
tSCC z_no_wrap_pat[] = "^#if.*__need_";
|
||||
static regex_t no_wrapping_re = { NULL, 0, 0 };
|
||||
static regex_t no_wrapping_re; /* assume zeroed data */
|
||||
|
||||
char z_fixname[ 64 ];
|
||||
tCC* pz_src = p_fixd->fix_name;
|
||||
|
@ -606,6 +611,7 @@ FIX_PROC_HEAD( wrap_fix )
|
|||
char* pz_dst = z_fixname;
|
||||
int do_end = 0;
|
||||
size_t len = 0;
|
||||
IGNORE_ARG(filname);
|
||||
|
||||
if (no_wrapping_re.allocated == 0)
|
||||
compile_re( z_no_wrap_pat, &no_wrapping_re, 0, "no-wrap pattern",
|
||||
|
@ -670,6 +676,7 @@ FIX_PROC_HEAD( gnu_type_fix )
|
|||
const char* pz_pat;
|
||||
regex_t re;
|
||||
regmatch_t rm[GTYPE_SE_CT+1];
|
||||
IGNORE_ARG(filname);
|
||||
|
||||
{
|
||||
tTestDesc* pTD = p_fixd->p_test_desc;
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
|
||||
:1066
|
||||
/* Install modified versions of certain ANSI-incompatible system header
|
||||
files which are fixed to work correctly with ANSI C and placed in a
|
||||
directory that GNU C will search.
|
||||
|
@ -1066,7 +1066,7 @@ start_fixer (read_fd, p_fixd, pz_fix_file)
|
|||
int fd;
|
||||
|
||||
fd = chain_open (read_fd,
|
||||
(t_pchar *) p_fixd->patch_args,
|
||||
(tCC **) p_fixd->patch_args,
|
||||
(process_chain_head == -1)
|
||||
? &process_chain_head : (pid_t *) NULL);
|
||||
|
||||
|
|
|
@ -51,6 +51,11 @@ typedef int t_success;
|
|||
#define FAILED(p) ((p) < SUCCESS)
|
||||
#define HADGLITCH(p) ((p) > SUCCESS)
|
||||
|
||||
#ifndef DEBUG
|
||||
# define STATIC static
|
||||
#else
|
||||
# define STATIC
|
||||
#endif
|
||||
|
||||
#define tSCC static const char
|
||||
#define tCC const char
|
||||
|
@ -81,13 +86,12 @@ typedef int t_success;
|
|||
#define EXIT_PANIC 99
|
||||
#endif /* NOPROCESS */
|
||||
|
||||
#ifndef HAVE_T_BOOL_ENUM
|
||||
#define HAVE_T_BOOL_ENUM
|
||||
#define IGNORE_ARG(a) ((void)(a))
|
||||
|
||||
typedef enum
|
||||
{
|
||||
BOOL_FALSE, BOOL_TRUE
|
||||
} t_bool;
|
||||
#endif
|
||||
|
||||
typedef int apply_fix_p_t; /* Apply Fix Predicate Type */
|
||||
|
||||
|
|
|
@ -72,6 +72,7 @@ TEST_FOR_FIX_PROC_HEAD( machine_name_test )
|
|||
regex_t *label_re, *name_re;
|
||||
regmatch_t match[2];
|
||||
tCC *base, *limit;
|
||||
IGNORE_ARG(fname);
|
||||
|
||||
mn_get_regexps(&label_re, &name_re, "machine_name_test");
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ if [ $# -eq 0 ] ; then
|
|||
set -- fixincl.x
|
||||
fi
|
||||
|
||||
AG="autogen $AG"
|
||||
AG="autogen4 $AG"
|
||||
set -e
|
||||
|
||||
case "$1" in
|
||||
|
|
|
@ -22,6 +22,8 @@
|
|||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
|
||||
#include "auto-host.h"
|
||||
|
||||
#undef _GNU_SOURCE
|
||||
#define _GNU_SOURCE
|
||||
|
||||
|
@ -76,18 +78,6 @@
|
|||
# define gettext_noop(String) String
|
||||
#endif
|
||||
|
||||
/* The `emacs' switch turns on certain matching commands
|
||||
that make sense only in Emacs. */
|
||||
#ifdef emacs
|
||||
|
||||
# include "lisp.h"
|
||||
# include "buffer.h"
|
||||
# include "syntax.h"
|
||||
|
||||
#else /* not emacs */
|
||||
|
||||
# include "auto-host.h"
|
||||
|
||||
# if !defined(volatile) && !defined(HAVE_VOLATILE)
|
||||
# define volatile
|
||||
# endif
|
||||
|
@ -191,8 +181,6 @@ init_syntax_once ()
|
|||
# endif /* not SYNTAX_TABLE */
|
||||
|
||||
# define SYNTAX(c) re_syntax_table[c]
|
||||
|
||||
#endif /* not emacs */
|
||||
|
||||
/* Get the interface, including the syntax bits. */
|
||||
/* GCC LOCAL: call it gnu-regex.h, not regex.h, to avoid name conflicts */
|
||||
|
@ -922,7 +910,7 @@ printchar (c)
|
|||
syntax, so it can be changed between regex compilations. */
|
||||
/* This has no initializer because initialized variables in Emacs
|
||||
become read-only after dumping. */
|
||||
static reg_syntax_t re_syntax_options;
|
||||
reg_syntax_t re_syntax_options;
|
||||
|
||||
|
||||
/* Specify the precise syntax of regexps for compilation. This provides
|
||||
|
@ -5710,6 +5698,7 @@ regerror (errcode, preg, errbuf, errbuf_size)
|
|||
{
|
||||
const char *msg;
|
||||
size_t msg_size;
|
||||
(void)preg;
|
||||
|
||||
if (errcode < 0
|
||||
|| errcode >= (int) (sizeof (re_error_msgid)
|
||||
|
|
|
@ -1,39 +1,30 @@
|
|||
#! /bin/sh
|
||||
|
||||
if [ $# -ne 2 ]
|
||||
then
|
||||
echo "Usage: $0 <build-mach-triplet> <target-mach-triplet>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
build=$1
|
||||
machine=$2
|
||||
|
||||
if [ -z "$build" ]
|
||||
then
|
||||
echo No target system name given
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# If we don't get two arguments, then assume both arguments
|
||||
# are the same
|
||||
#
|
||||
if [ -z "$machine" ]
|
||||
then
|
||||
machine="$build"
|
||||
fi
|
||||
|
||||
target=../fixinc.sh
|
||||
|
||||
echo constructing ${target} for $machine to run on $build
|
||||
fixincludes="${machine}"
|
||||
|
||||
# Choose fix build method by build system
|
||||
# Choose one or two-process fix methodology. Systems that cannot handle
|
||||
# bi-directional pipes must use the twoprocess method.
|
||||
#
|
||||
case $build in
|
||||
i?86-*-msdosdjgpp* )
|
||||
MAKE="${MAKE} -f ${srcdir}/Makefile.DOS srcdir=${srcdir}"
|
||||
;;
|
||||
|
||||
i?86-*-msdosdjgpp* | \
|
||||
*-*-beos* )
|
||||
MAKE="${MAKE} -f ${srcdir}/Makefile.BEOS srcdir=${srcdir}"
|
||||
MAKE="${MAKE} TARGETS=twoprocess"
|
||||
CFLAGS="${CFLAGS} -DSEPARATE_FIX_PROC"
|
||||
;;
|
||||
|
||||
* )
|
||||
MAKE="${MAKE} -f Makefile"
|
||||
MAKE="${MAKE} TARGETS=oneprocess"
|
||||
;;
|
||||
esac
|
||||
|
||||
|
|
|
@ -50,34 +50,9 @@
|
|||
#include "system.h"
|
||||
|
||||
#include "server.h"
|
||||
#include "fixlib.h"
|
||||
|
||||
/* If this particular system's header files define the macro `MAXPATHLEN',
|
||||
we happily take advantage of it; otherwise we use a value which ought
|
||||
to be large enough. */
|
||||
#ifndef MAXPATHLEN
|
||||
# define MAXPATHLEN 4096
|
||||
#endif
|
||||
|
||||
#ifndef STDIN_FILENO
|
||||
# define STDIN_FILENO 0
|
||||
#endif
|
||||
#ifndef STDOUT_FILENO
|
||||
# define STDOUT_FILENO 1
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG
|
||||
#define STATIC
|
||||
#else
|
||||
#define STATIC static
|
||||
#endif
|
||||
#ifndef tSCC
|
||||
#define tSCC static const char
|
||||
#endif
|
||||
#ifndef NUL
|
||||
#define NUL '\0'
|
||||
#endif
|
||||
|
||||
STATIC t_pchar def_args[] =
|
||||
STATIC const char* def_args[] =
|
||||
{ (char *) NULL, (char *) NULL };
|
||||
|
||||
/*
|
||||
|
@ -92,12 +67,12 @@ STATIC t_pchar def_args[] =
|
|||
int
|
||||
chain_open (stdin_fd, pp_args, p_child)
|
||||
int stdin_fd;
|
||||
t_pchar *pp_args;
|
||||
tCC **pp_args;
|
||||
pid_t *p_child;
|
||||
{
|
||||
t_fd_pair stdout_pair;
|
||||
pid_t ch_id;
|
||||
char *pz_cmd;
|
||||
tCC *pz_cmd;
|
||||
|
||||
stdout_pair.read_fd = stdout_pair.write_fd = -1;
|
||||
|
||||
|
@ -115,7 +90,7 @@ chain_open (stdin_fd, pp_args, p_child)
|
|||
/*
|
||||
* If we did not get an arg list, use the default
|
||||
*/
|
||||
if (pp_args == (t_pchar *) NULL)
|
||||
if (pp_args == (tCC **) NULL)
|
||||
pp_args = def_args;
|
||||
|
||||
/*
|
||||
|
@ -192,7 +167,7 @@ chain_open (stdin_fd, pp_args, p_child)
|
|||
if (*pp_args == (char *) NULL)
|
||||
*pp_args = pz_cmd;
|
||||
|
||||
execvp (pz_cmd, pp_args);
|
||||
execvp (pz_cmd, (char**)pp_args);
|
||||
fprintf (stderr, "Error %d: Could not execvp( '%s', ... ): %s\n",
|
||||
errno, pz_cmd, xstrerror (errno));
|
||||
exit (EXIT_PANIC);
|
||||
|
@ -212,7 +187,7 @@ chain_open (stdin_fd, pp_args, p_child)
|
|||
pid_t
|
||||
proc2_open (p_pair, pp_args)
|
||||
t_fd_pair *p_pair;
|
||||
t_pchar *pp_args;
|
||||
tCC **pp_args;
|
||||
{
|
||||
pid_t ch_id;
|
||||
|
||||
|
@ -239,7 +214,7 @@ proc2_open (p_pair, pp_args)
|
|||
pid_t
|
||||
proc2_fopen (pf_pair, pp_args)
|
||||
t_pf_pair *pf_pair;
|
||||
t_pchar *pp_args;
|
||||
tCC **pp_args;
|
||||
{
|
||||
t_fd_pair fd_pair;
|
||||
pid_t ch_id = proc2_open (&fd_pair, pp_args);
|
||||
|
|
|
@ -53,32 +53,6 @@
|
|||
|
||||
#include "server.h"
|
||||
|
||||
/* If this particular system's header files define the macro `MAXPATHLEN',
|
||||
we happily take advantage of it; otherwise we use a value which ought
|
||||
to be large enough. */
|
||||
#ifndef MAXPATHLEN
|
||||
# define MAXPATHLEN 4096
|
||||
#endif
|
||||
|
||||
#ifndef STDIN_FILENO
|
||||
# define STDIN_FILENO 0
|
||||
#endif
|
||||
#ifndef STDOUT_FILENO
|
||||
# define STDOUT_FILENO 1
|
||||
#endif
|
||||
|
||||
#ifdef DEBUG
|
||||
#define STATIC
|
||||
#else
|
||||
#define STATIC static
|
||||
#endif
|
||||
#ifndef tSCC
|
||||
#define tSCC static const char
|
||||
#endif
|
||||
#ifndef NUL
|
||||
#define NUL '\0'
|
||||
#endif
|
||||
|
||||
#if !defined(volatile) && !defined(HAVE_VOLATILE)
|
||||
# define volatile
|
||||
#endif
|
||||
|
@ -86,7 +60,7 @@
|
|||
STATIC volatile t_bool read_pipe_timeout;
|
||||
STATIC pid_t server_master_pid = NOPROCESS;
|
||||
|
||||
static t_pchar def_args[] =
|
||||
tSCC* def_args[] =
|
||||
{ (char *) NULL, (char *) NULL };
|
||||
STATIC t_pf_pair server_pair =
|
||||
{ (FILE *) NULL, (FILE *) NULL };
|
||||
|
@ -97,7 +71,7 @@ STATIC pid_t server_id = NULLPROCESS;
|
|||
* the terminating output line.
|
||||
*/
|
||||
tSCC z_done[] = "ShElL-OuTpUt-HaS-bEeN-cOmPlEtEd";
|
||||
STATIC t_pchar p_cur_dir = (char *) NULL;
|
||||
tSCC* p_cur_dir = (char *) NULL;
|
||||
|
||||
/*
|
||||
* load_data
|
||||
|
@ -257,8 +231,8 @@ server_setup ()
|
|||
* override with $CONFIG_SHELL, so we do the same.
|
||||
*/
|
||||
|
||||
static char *find_shell PARAMS ((void));
|
||||
static char *
|
||||
static const char *find_shell PARAMS ((void));
|
||||
static const char *
|
||||
find_shell ()
|
||||
{
|
||||
char * shell = getenv ("CONFIG_SHELL");
|
||||
|
|
|
@ -54,6 +54,8 @@
|
|||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
#include "fixlib.h"
|
||||
|
||||
/*
|
||||
* Dual pipe opening of a child process
|
||||
*/
|
||||
|
@ -70,27 +72,10 @@ typedef struct
|
|||
FILE *pf_write; /* parent write fp */
|
||||
} t_pf_pair;
|
||||
|
||||
typedef char *t_pchar;
|
||||
|
||||
#ifndef NOPROCESS
|
||||
#define NOPROCESS ((pid_t) -1)
|
||||
#define NULLPROCESS ((pid_t)0)
|
||||
|
||||
#define EXIT_PANIC 99
|
||||
#endif /* NOPROCESS */
|
||||
|
||||
#ifndef HAVE_T_BOOL_ENUM
|
||||
#define HAVE_T_BOOL_ENUM
|
||||
typedef enum
|
||||
{
|
||||
BOOL_FALSE, BOOL_TRUE
|
||||
} t_bool;
|
||||
#endif
|
||||
|
||||
char *run_shell PARAMS (( const char *pzCmd));
|
||||
pid_t proc2_fopen PARAMS (( t_pf_pair * p_pair, t_pchar * pp_args));
|
||||
pid_t proc2_open PARAMS (( t_fd_pair * p_pair, t_pchar * pp_args));
|
||||
int chain_open PARAMS (( int in_fd, t_pchar * pp_args,
|
||||
pid_t proc2_fopen PARAMS (( t_pf_pair * p_pair, tCC ** pp_args));
|
||||
pid_t proc2_open PARAMS (( t_fd_pair * p_pair, tCC ** pp_args));
|
||||
int chain_open PARAMS (( int in_fd, tCC ** pp_args,
|
||||
pid_t * p_child));
|
||||
void close_server PARAMS (( void ));
|
||||
#endif /* FIXINC_SERVER_H */
|
||||
|
|
Loading…
Add table
Reference in a new issue