# 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) ; ./genfixes $@ inclhack.sh: inclhack.def inclhack.tpl hackshell.tpl cd $(srcdir) ; ./genfixes $@ # fixinc.sh, unlike the other two, has _no_ dependency on the .def file. fixincl.sh: inclhack.tpl cd $(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: $(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 Makefile: Makefile.in ../config.status cd .. \ && CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= $(SHELL) ./config.status machname.h: ../specs $(SHELL) $(srcdir)/genfixes $@