1# Makefile for fixincludes. 2# 3# Copyright (C) 1998, 1999, 2000, 2001, 2003, 2004, 2009, 2010, 2012 4# Free Software Foundation, Inc. 5 6#This file is part of fixincludes. 7 8#fixincludes is free software; you can redistribute it and/or modify 9#it under the terms of the GNU General Public License as published by 10#the Free Software Foundation; either version 3, or (at your option) 11#any later version. 12 13#fixincludes is distributed in the hope that it will be useful, 14#but WITHOUT ANY WARRANTY; without even the implied warranty of 15#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 16#GNU General Public License for more details. 17 18#You should have received a copy of the GNU General Public License 19#along with fixincludes; see the file COPYING3. If not see 20#<http://www.gnu.org/licenses/>. 21 22SHELL=@SHELL@ 23 24# Some versions of `touch' (such as the version on Solaris 2.8) 25# do not correctly set the timestamp due to buggy versions of `utime' 26# in the kernel. So, we use `echo' instead. 27STAMP = echo timestamp > 28 29CC = @CC@ 30CFLAGS = @CFLAGS@ 31WARN_CFLAGS = @WARN_CFLAGS@ @WARN_PEDANTIC@ @WERROR@ 32LDFLAGS = @LDFLAGS@ 33INCLUDES = -I. -I$(srcdir) -I../include -I$(srcdir)/../include 34FIXINC_CFLAGS = -DHAVE_CONFIG_H $(INCLUDES) 35 36# Directory where sources are, from where we are. 37srcdir = @srcdir@ 38VPATH = $(srcdir) 39 40# Directory in which to put the directories used by the compiler. 41libdir = @libdir@ 42# Directory in which GCC puts its executables. 43libexecdir = @libexecdir@ 44 45# End of variables for you to override. 46 47# The target that we're configured for. 48target = @target@ 49target_noncanonical:=@target_noncanonical@ 50 51# The version of GCC in this tree 52gcc_version := $(shell @get_gcc_base_ver@ $(srcdir)/../gcc/BASE-VER) 53 54# Directory in which the compiler finds libraries etc. 55libsubdir = $(libdir)/gcc/$(target_noncanonical)/$(gcc_version) 56# Directory in which the compiler finds executables 57libexecsubdir = $(libexecdir)/gcc/$(target_noncanonical)/$(gcc_version) 58# Where our executable files go 59itoolsdir = $(libexecsubdir)/install-tools 60# Where our data files go 61itoolsdatadir = $(libsubdir)/install-tools 62 63# Locate mkinstalldirs. 64mkinstalldirs=$(SHELL) $(srcdir)/../mkinstalldirs 65 66AUTOCONF = autoconf 67AUTOHEADER = autoheader 68ACLOCAL = aclocal 69ACLOCAL_AMFLAGS = -I .. -I ../config 70 71default : all 72 73# Now figure out from those variables how to compile and link. 74 75.c.o: 76 $(CC) -c $(CFLAGS) $(WARN_CFLAGS) $(CPPFLAGS) $(FIXINC_CFLAGS) $< 77 78# The only suffixes we want for implicit rules are .c and .o. 79.SUFFIXES: 80.SUFFIXES: .c .o 81 82# 83 84## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 85## 86## Makefile for constructing the "best" include fixer we can 87## 88## # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # 89 90LIBIBERTY=../libiberty/libiberty.a 91 92ALLOBJ = fixincl.o fixtests.o fixfixes.o server.o procopen.o \ 93 fixlib.o fixopts.o 94 95TESTOBJ = fixincl.o fixlib.o fixtests.o fixopts.o 96FIXOBJ = fixfixes.o fixlib.o fixopts.o 97 98HDR = server.h fixlib.h 99FI = fixincl@EXEEXT@ 100AF = applyfix@EXEEXT@ 101 102all : @TARGET@ fixinc.sh mkheaders 103gen : $(srcdir)/fixincl.x 104 105 106oneprocess : full-stamp 107twoprocess : test-stamp $(AF) 108 109full-stamp : $(ALLOBJ) $(LIBIBERTY) 110 $(CC) $(CFLAGS) $(LDFLAGS) -o $(FI) $(ALLOBJ) $(LIBIBERTY) 111 $(STAMP) $@ 112 113test-stamp : $(TESTOBJ) $(LIBIBERTY) 114 $(CC) $(CFLAGS) $(LDFLAGS) -o $(FI) $(TESTOBJ) $(LIBIBERTY) 115 $(STAMP) $@ 116 117$(AF): $(FIXOBJ) $(LIBIBERTY) 118 $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $(FIXOBJ) $(LIBIBERTY) 119 120$(ALLOBJ) : $(HDR) 121fixincl.o : fixincl.c $(srcdir)/fixincl.x 122fixtests.o : fixtests.c 123fixfixes.o : fixfixes.c $(srcdir)/fixincl.x 124server.o : server.c 125procopen.o : procopen.c 126fixlib.o : fixlib.c 127 128fixinc.sh : fixinc.in mkfixinc.sh Makefile 129 srcdir="$(srcdir)" $(SHELL) $(srcdir)/mkfixinc.sh $(target) 130 131$(srcdir)/fixincl.x: @MAINT@ fixincl.tpl inclhack.def 132 cd $(srcdir) ; $(SHELL) ./genfixes 133 134mostlyclean : 135 rm -f *.o *-stamp $(AF) $(FI) *~ fixinc.sh 136 137clean: mostlyclean 138 rm -f mkheaders mkheaders.almost 139 140distclean: clean 141 rm -f Makefile config.h config.log config.status stamp-h 142 143maintainer-clean: distclean 144 rm -f $(srcdir)/fixincl.x 145 146distclean : clean 147 148Makefile: $(srcdir)/Makefile.in config.status 149 $(SHELL) ./config.status Makefile 150 151mkheaders.almost: $(srcdir)/mkheaders.in config.status 152 CONFIG_FILES=mkheaders.almost:mkheaders.in \ 153 CONFIG_HEADERS= ./config.status 154 155mkheaders: mkheaders.almost $(srcdir)/../gcc/BASE-VER 156 sed -e 's/@gcc_version@/$(gcc_version)/' < $< > $@T 157 mv -f $@T $@ 158 159config.h: stamp-h 160stamp-h: $(srcdir)/config.h.in config.status 161 $(SHELL) ./config.status config.h 162 163config.status: $(srcdir)/configure 164 $(SHELL) ./config.status --recheck 165 166$(srcdir)/configure: @MAINT@ $(srcdir)/configure.ac $(srcdir)/aclocal.m4 167 cd $(srcdir) && $(AUTOCONF) 168 169$(srcdir)/config.h.in: @MAINT@ $(srcdir)/configure.ac 170 cd $(srcdir) && $(AUTOHEADER) 171 172$(srcdir)/aclocal.m4: @MAINT@ $(srcdir)/configure.ac 173 cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) 174 175check : all 176 autogen -T $(srcdir)/check.tpl $(srcdir)/inclhack.def 177 $(SHELL) ./check.sh $(srcdir)/tests/base 178 @rm -f ./check.sh 179 180install : all 181 -rm -rf $(DESTDIR)$(itoolsdir) 182 $(mkinstalldirs) $(DESTDIR)$(itoolsdir) 183 $(mkinstalldirs) $(DESTDIR)$(itoolsdatadir)/include 184 $(INSTALL_DATA) $(srcdir)/README-fixinc \ 185 $(DESTDIR)$(itoolsdatadir)/include/README 186 $(INSTALL_SCRIPT) fixinc.sh $(DESTDIR)$(itoolsdir)/fixinc.sh 187 $(INSTALL_PROGRAM) $(FI) $(DESTDIR)$(itoolsdir)/$(FI) 188 $(INSTALL_SCRIPT) mkheaders $(DESTDIR)$(itoolsdir)/mkheaders 189 190install-strip: install 191 test -z '$(STRIP)' || $(STRIP) $(DESTDIR)$(itoolsdir)/$(FI) 192 193.PHONY: all check install install-strip 194.PHONY: dvi pdf info html install-pdf install-info install-html 195 196dvi : 197pdf : 198info : 199html : 200install-pdf : 201install-info : 202install-html : 203installcheck : 204