blob: 7151a078f86e80853b96b047b5f0bcdc4c31860b [file] [log] [blame]
# Makefile for GNU compilers.
# Copyright (C) 1998, 1999 Free Software Foundation, Inc.
#This file is part of GNU CC.
#GNU CC is free software; you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation; either version 2, or (at your option)
#any later version.
#GNU CC is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with GNU CC; see the file COPYING. If not, write to
#the Free Software Foundation, 59 Temple Place - Suite 330,
#Boston, MA 02111-1307, USA.
# The makefile built from this file lives in the fixinc subdirectory.
# Its purpose is to build the any-platforms fixinc.sh script.
CFLAGS = -g
FIXINC_DEFS = @fixinc_defs@
CC = @CC@
SHELL = /bin/sh
target=@target@
# Directory where sources are, from where we are.
srcdir = @srcdir@
VPATH = @srcdir@
# End of variables for you to override.
default : gen
# Now figure out from those variables how to compile and link.
# Specify the directories to be searched for header files.
# Both . and srcdir are used, in that order.
INCLUDES = -I. -I.. -I$(srcdir) -I$(srcdir)/.. -I$(srcdir)/../config -I$(srcdir)/../../include
# Always use -I$(srcdir)/config when compiling.
.c.o:
$(CC) -c $(CFLAGS) $(FIXINC_DEFS) $(CPPFLAGS) $(INCLUDES) $<
# The only suffixes we want for implicit rules are .c and .o.
.SUFFIXES:
.SUFFIXES: .c .o
#
## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
##
## Makefile for constructing the "best" include fixer we can
##
## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
OBJ = fixincl.o server.o regex.o procopen.o
HDR = server.h regex.h
LIBERTY = ../../libiberty/libiberty.a
SH_TARGET = inclhack.sh fixincl.sh
BIN_TARGET = fixincl
AG_TEXT = $(SH_TARGET) fixincl.x \
inclhack.def inclhack.tpl hackshell.tpl fixincl.tpl
TARGETS = $(SH_TARGET) $(BIN_TARGET)
all : $(TARGETS)
sh : $(SH_TARGET)
gen : $(SH_TARGET) fixincl.x
$(OBJ): $(HDR)
fixincl: $(OBJ)
@echo $(CC) -o $@ $(OBJ) $(LIBERTY) $(LIB) ; \
if $(CC) -o $@ $(OBJ) $(LIBERTY) $(LIB) ; then : ; else \
rm -f $@ ; (echo "#! /bin/sh" ; echo exit 1 ) > $@ ; \
chmod 777 $@ ; fi
regex.o: regex.c
-$(CC) $(CFLAGS) $(FIXINC_DEFS) -DSTDC_HEADERS=1 -c $(srcdir)/regex.c
fixincl.o : fixincl.x fixincl.c
server.o : server.c server.h
procopen.o : procopen.c server.h
fixincl.x: fixincl.tpl inclhack.def
@if ( autogen --help > /dev/null 2>&1 ) ; then \
echo autogen -T fixincl.tpl -b fixincl inclhack.def ; \
autogen -T $(srcdir)/fixincl.tpl -b fixincl \
$(srcdir)/inclhack.def ; \
else echo You need to install autogen ; \
if [ `pwd` != `cd $(srcdir) ; pwd` ] ; then \
$(CP) $(srcdir)/$@ . ; \
else touch $@ ; fi ; fi
inclhack.sh: inclhack.def inclhack.tpl hackshell.tpl
@if ( autogen --help > /dev/null 2>&1 ) ; then \
echo autogen inclhack.def ; \
autogen -L$(srcdir) $(srcdir)/inclhack.def ; \
else echo You need to install autogen ; \
if [ `pwd` != `cd $(srcdir) ; pwd` ] ; then \
$(CP) $(srcdir)/$@ . ; \
else touch $@ ; fi ; fi
fixincl.sh: inclhack.def inclhack.tpl
@if ( autogen --help > /dev/null 2>&1 ) ; then \
echo autogen -DPROGRAM=1 -b fixincl inclhack.def ; \
autogen -DPROGRAM=1 -b fixincl -L$(srcdir) \
$(srcdir)/inclhack.def ; touch $@ ; \
else echo You need to install autogen ; \
if [ `pwd` != `cd $(srcdir) ; pwd` ] ; then \
$(CP) $(srcdir)/$@ . ; \
else touch $@ ; fi ; fi
clean:
rm -f *.o $(TARGETS) fixincl.x
# Ensure all the targets are built. If the program "fixincl"
# failed to compile, link or load, then we install the
# "inclhack.sh" script. Otherwise, we install that program
# plus the wrapper script, "fixincl.sh".
#
install: $(TARGETS)
@rm -f ../fixinc.sh ; \
if ( ./fixincl -v > /dev/null 2>&1 ) ; then \
echo cp fixincl.sh ../fixinc.sh ; \
if [ -f ./fixincl.sh ] ; \
then cp fixincl.sh ../fixinc.sh ; \
else cp $(srcdir)/fixincl.sh ../fixinc.sh ; fi ; \
chmod 555 ../fixinc.sh ; \
rm -f ../fixincl ; \
echo cp fixincl .. ; \
cp fixincl .. ; \
chmod 555 ../fixincl ; \
else \
echo Could not install binary fixincludes. ; \
echo Installing shell script instead. ; \
echo cp inclhack.sh ../fixinc.sh ; \
if [ -f ./inclhack.sh ] ; \
then cp inclhack.sh ../fixinc.sh ; \
else cp $(srcdir)/inclhack.sh ../fixinc.sh ; fi ; \
fi