| # 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 |