summaryrefslogtreecommitdiff
path: root/gnu/lib/libg++/libio/Makefile.in
blob: 37fd2fdb53047d7814d100fdd5f0651248743f88 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
# Copyright (C) 1993, 1995 Free Software Foundation
# 
# This file is part of the GNU IO Library.  This library 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.
# 
# This library 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 this library; see the file COPYING.  If not, write to the Free
# Software Foundation, 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

srcdir = .

VERSION = 2.7.1
# The config file (overriden by Linux).
_G_CONFIG_H=_G_config.h
tooldir = $(exec_prefix)/$(target)
INSTALLDIR = $(libdir)

IO_OBJECTS = filedoalloc.o floatconv.o genops.o fileops.o \
  iovfprintf.o \
  iovfscanf.o ioignore.o iopadn.o \
  iofgetpos.o iofread.o iofscanf.o \
  iofsetpos.o iogetdelim.o iogetline.o \
  ioprintf.o ioseekoff.o ioseekpos.o \
  outfloat.o strops.o iofclose.o iopopen.o ioungetc.o

# These emulate stdio functionality, but with a different name (_IO_ungetc
# instead of ungetc), and using _IO_FILE instead of FILE.
# They are not needed for C++ iostream, nor stdio, though some stdio
# files are build using the same source files (see stdio/configure.in).
# They are needed for iostdio.h.  They are needed under Linux to avoid
# version incompatibility problems with the C library.
# iofclose.o is not here, because it is needed for stdio (by pclose).
STDIO_WRAP_OBJECTS =  iofdopen.o iofflush.o iofgets.o iofopen.o iofprintf.o iofputs.o iofwrite.o \
  iogets.o ioperror.o ioputs.o ioscanf.o iosetbuffer.o iosetvbuf.o \
  iosprintf.o iosscanf.o ioftell.o iovsprintf.o iovsscanf.o

IOSTREAM_OBJECTS = builtinbuf.o filebuf.o fstream.o \
  indstream.o ioassign.o ioextend.o iomanip.o iostream.o \
  isgetline.o isgetsb.o isscan.o \
  osform.o procbuf.o sbform.o sbgetline.o sbscan.o \
  stdiostream.o stdstrbufs.o stdstreams.o stream.o streambuf.o strstream.o \
  PlotFile.o SFile.o parsestream.o pfstream.o editbuf.o

# These files define _IO_read etc, which are just wrappers for read(2) etc.
# They need to be changed to use name-space-clean (e.g. __read) versions
# for each specific libc.
OSPRIM_OBJECTS = ioprims.o iostrerror.o cleanup.o

LIBIOSTREAM_OBJECTS = $(IO_OBJECTS) $(IOSTREAM_OBJECTS) $(OSPRIM_OBJECTS)
LIBIO_OBJECTS = $(IO_OBJECTS) $(STDIO_WRAP_OBJECTS) $(OSPRIM_OBJECTS) stdfiles.o

LIBIOSTREAM_DEP = $(LIBIOSTREAM_OBJECTS)
LIBIOSTREAM_USE = $(LIBIOSTREAM_OBJECTS)

USER_INCLUDES = *.h

#### package, host, target, and site dependent Makefile fragments come in here.
##

libio.a: $(_G_CONFIG_H) $(LIBIO_OBJECTS)
	-rm -rf libio.a
	$(AR) $(AR_FLAGS) libio.a $(LIBIO_OBJECTS)
	$(RANLIB) libio.a

libiostream.a: $(_G_CONFIG_H) $(LIBIOSTREAM_DEP)
	-rm -rf libiostream.a
	$(AR) $(AR_FLAGS) libiostream.a $(LIBIOSTREAM_USE)
	$(RANLIB) libiostream.a

test: test.o libio.a
	$(CC) -o test test.o libio.a
tpipe: tpipe.o libio.a
	$(CC) -o tpipe tpipe.o libio.a

iostream.list: stamp-picdir $(_G_CONFIG_H) $(LIBIOSTREAM_DEP)
	@echo "$(LIBIOSTREAM_USE)"> iostream.list

stdio/stdio.list: force
	@rootme=`pwd`/ ; export rootme; cd stdio ; \
	  $(MAKE) $(FLAGS_TO_PASS) stdio.list

stdio.list: stdio/stdio.list
	rm -f tstdio.list
	sed 's,\([a-z_]*\.o\),stdio/\1,g' stdio/stdio.list > tstdio.list
	mv tstdio.list stdio.list

_G_config.h: ${srcdir}/gen-params
	rootme=`pwd`/ ; export rootme; \
	CC="$(CC)"; export CC; \
	CXX="$(CXX) $(NOSTDINC) $(CXXFLAGS)"; export CXX; \
	CONFIG_NM="$(NM)"; export CONFIG_NM; \
	$(SHELL) ${srcdir}/gen-params LIB_VERSION=$(VERSION) $(G_CONFIG_ARGS) >tmp-params.h
	mv tmp-params.h _G_config.h

install:
	if [ -z "$(MULTISUBDIR)" ]; then \
	  if [ "$(_G_CONFIG_H)" != "" ]; then \
	    rm -f $(tooldir)/include/_G_config.h ; \
	    $(INSTALL_DATA) _G_config.h $(tooldir)/include/_G_config.h || exit 1; \
	  else true; \
	  fi ; \
	  cd $(srcdir); \
	  for FILE in $(USER_INCLUDES) ; do \
	    rm -f $(gxx_includedir)/$$FILE ; \
	    $(INSTALL_DATA) $$FILE $(gxx_includedir)/$$FILE ; \
	    chmod a-x $(gxx_includedir)/$$FILE ; \
	  done ; \
	else true; \
	fi
	@$(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install

c++clean:
	rm -rf $(IOSTREAM_OBJECTS)
	@$(MAKE) $(FLAGS_TO_PASS) "DODIRS=tests" DO=clean subdir_do