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 cat $(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