blob: e26cbf5f166bcaf7ebed34187f4185f4122a27d6 [file] [log] [blame]
# Makefile for GNU compilers.
#
# Copyright (C) 1998, 1999, 2000, 2001 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.
SHELL=/bin/sh
# Some versions of `touch' (such as the version on Solaris 2.8)
# do not correctly set the timestamp due to buggy versions of `utime'
# in the kernel. So, we use `echo' instead.
STAMP = echo timestamp >
FL_LIST = $(CFLAGS) $(CPPFLAGS) $(WARN_CFLAGS)
FIXINC_DEFS = -DIN_GCC -DHAVE_CONFIG_H $(FL_LIST) $(INCLUDES)
# Directory where sources are, from where we are.
srcdir = @srcdir@
VPATH = $(srcdir)
subdir = fixinc
# End of variables for you to override.
default : all
# 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
ALLOBJ = fixincl.o fixtests.o fixfixes.o server.o procopen.o \
gnu-regex.o fixlib.o
TESTOBJ = fixincl.o fixlib.o fixtests.o gnu-regex.o
FIXOBJ = fixfixes.o fixlib.o gnu-regex.o
HDR = server.h gnu-regex.h fixlib.h machname.h
FI = fixincl@build_exeext@
AF = applyfix@build_exeext@
all : $(TARGETS)
gen : $(srcdir)/fixincl.x
oneprocess : full-stamp
twoprocess : test-stamp $(AF)
full-stamp : $(ALLOBJ) $(LIBERTY)
$(CC) $(FIXINC_DEFS) $(LDFLAGS) -o $(FI) $(ALLOBJ) $(LIBERTY)
$(STAMP) $@
test-stamp : $(TESTOBJ) $(LIBERTY)
$(CC) $(FIXINC_DEFS) $(LDFLAGS) -o $(FI) $(TESTOBJ) $(LIBERTY)
$(STAMP) $@
$(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 $(srcdir)/fixincl.x
server.o : server.c
procopen.o : procopen.c
gnu-regex.o : gnu-regex.c
fixlib.o : fixlib.c
# 'machname.h' is built in the build directory.
# 'fixincl.x' in the source dir.
#
machname.h: ../specs
$(SHELL) $(srcdir)/genfixes $@
$(srcdir)/fixincl.x: @MAINT@ fixincl.tpl inclhack.def
cd $(srcdir) ; $(SHELL) ./genfixes $@
clean:
rm -f *.o *-stamp $(AF) $(FI) machname.h *~
maintainer-clean : clean
rm -f $(srcdir)/fixincl.x
# Build the executable and copy up into gcc dir.
# We still copy the script because we still have alternative scripts.
#
install-bin : $(TARGETS)
./fixincl -v < /dev/null
@if [ -f ../fixinc.sh ] ; then rm -f ../fixinc.sh || \
mv -f ../fixinc.sh ../fixinc.sh.$$ || exit 1 ; else : ; fi
@cp $(srcdir)/fixincl.sh ../fixinc.sh
chmod 755 ../fixinc.sh
Makefile: Makefile.in ../config.status
cd .. \
&& CONFIG_FILES=$(subdir)/$@ CONFIG_HEADERS= \
$(SHELL) ./config.status
check : $(TARGETS)
autogen -T $(srcdir)/check.tpl $(srcdir)/inclhack.def
$(SHELL) ./check.sh $(srcdir)/tests/base
@rm -f ./check.sh