# Makefile for GNU compilers. # Copyright (C) 1998, 1999, 2000 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 = -DIN_GCC $(CFLAGS) $(CPPFLAGS) $(INCLUDES) CC = @CC@ SHELL = /bin/sh target=@target@ # Directory where sources are, from where we are. srcdir = @srcdir@ VPATH = @srcdir@ subdir = fixinc # 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 $(FIXINC_DEFS) $< # 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 ## ## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # LIBERTY = ../../libiberty/libiberty.a LIBOBJ = gnu-regex.o fixlib.o $(LIBERTY) FIOBJ = fixincl.o server.o procopen.o $(LIBOBJ) HDR = server.h gnu-regex.h fixlib.h machname.h SH_TARGET = inclhack.sh fixincl.sh BIN_TARGET = fixincl fixfixes fixtests TARGETS = $(SH_TARGET) $(BIN_TARGET) all : $(TARGETS) sh : $(SH_TARGET) gen : $(SH_TARGET) fixincl.x $(FIOBJ): $(HDR) fixincl: $(FIOBJ) @echo $(CC) $(FIXINC_DEFS) -o $@ $(FIOBJ) ; \ if $(CC) $(FIXINC_DEFS) -o $@ $(FIOBJ) ; then : ; else \ rm -f $@ ; (echo "#! /bin/sh" ; echo exit 1 ) > $@ ; \ chmod 777 $@ ; fi fixfixes: fixfixes.c $(LIBOBJ) $(CC) -o $@ $(FIXINC_DEFS) -DMAIN \ $(srcdir)/fixfixes.c $(LIBOBJ) $(LIB) fixtests: fixtests.c $(LIBOBJ) $(CC) -o $@ $(FIXINC_DEFS) -DMAIN \ $(srcdir)/fixtests.c $(LIBOBJ) $(LIB) fixincl.o : fixincl.x fixincl.c fixfixes.c fixtests.c server.o : server.c server.h procopen.o : procopen.c server.h fixlib.o: machname.h fixincl.x: fixincl.tpl inclhack.def cd $(srcdir) ; $(SHELL) ./genfixes $@ inclhack.sh: inclhack.def inclhack.tpl hackshell.tpl cd $(srcdir) ; $(SHELL) ./genfixes $@ # fixinc.sh, unlike the other two, has _no_ dependency on the .def file. fixincl.sh: inclhack.tpl cd $(srcdir) ; $(SHELL) ./genfixes $@ # This invocation of genfixes is done from the build dir, # not the source dir (as above) # machname.h: ../specs $(SHELL) $(srcdir)/genfixes $@ clean: rm -f *.o $(TARGETS) fixincl.x machname.h # 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-bin: fixincl fixincl.sh @if [ -f ../fixincl ] ; then rm -f ../fixincl || \ mv -f ../fixincl ../fixincl.$$ || exit 1 ; fi @if [ -f ../fixinc.sh ] ; then rm -f ../fixinc.sh || \ mv -f ../fixinc.sh ../fixinc.sh.$$ || exit 1 ; fi ./fixincl -v cp fixincl .. @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 chmod 755 ../fixinc.sh ../fixincl install-sh: fixfixes fixtests inclhack.sh @if [ -f ../fixinc.sh ] ; then rm -f ../fixinc.sh || \ mv -f ../fixinc.sh ../fixinc.sh.$$ || exit 1 ; fi echo Could not install binary fixincludes. ; \ echo Installing shell script instead. @if [ -f ./fixincl.sh ] ; \ then echo cp ./inclhack.sh ../fixinc.sh ; \ cp ./inclhack.sh ../fixinc.sh ; \ else echo cp $(srcdir)/inclhack.sh ../fixinc.sh ; \ cp $(srcdir)/inclhack.sh ../fixinc.sh ; fi chmod 755 ../fixinc.sh Makefile: Makefile.in ../config.status cd .. \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \ $(SHELL) ./config.status