# Copyright (C) 1993, 1995, 1996, 1997, 1998 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.8.0 # The config file (overriden by Linux). _G_CONFIG_H=_G_config.h tooldir = $(exec_prefix)/$(target) INSTALLDIR = $(libdir) gxx_include_dir=${includedir}/g++ 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 peekc.o iogetc.o \ ioputc.o iofeof.o ioferror.o STDIO_OBJECTS = stdfiles.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 iovsscanf.o iovsprintf.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) \ $(STDIO_OBJECTS) LIBIOSTREAM_DEP = $(LIBIOSTREAM_OBJECTS) LIBIOSTREAM_USE = $(LIBIOSTREAM_OBJECTS) USER_INCLUDES = *.h PICFLAG = #### package, host, target, and site dependent Makefile fragments come in here. ## $(LIBIO_OBJECTS): $(_G_CONFIG_H) 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) $(CFLAGS) -o test test.o libio.a tpipe: tpipe.o libio.a $(CC) $(CFLAGS) -o tpipe tpipe.o libio.a iostream.list: $(_G_CONFIG_H) $(LIBIOSTREAM_DEP) @echo "$(LIBIOSTREAM_USE)"> iostream.list # The "pic" subdir must be created before we can put any object # files into it. $(LIBIOSTREAM_DEP) $(LIBIO_OBJECTS): stamp-picdir stmp-stdio: @rootme=`pwd`/ ; export rootme; cd stdio ; \ $(MAKE) $(FLAGS_TO_PASS) stdio.list _G_config.h: ${srcdir}/gen-params rootme=`pwd`/ ; export rootme; \ CC="$(CC) $(CINCLUDES)"; export CC; \ CXX="$(CXX) $(CXXINCLUDES) $(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: rootme=`pwd`/ ; export rootme ; \ if [ -z "$(MULTISUBDIR)" ]; then \ if [ "$(_G_CONFIG_H)" != "" ]; then \ if [ x$(enable_version_specific_runtime_libs) = xyes ]; then \ rm -f $(gxx_include_dir)/_G_config.h ; \ $(INSTALL_DATA) _G_config.h $(gxx_include_dir)/_G_config.h || exit 1; \ else \ rm -f $(tooldir)/include/_G_config.h ; \ $(INSTALL_DATA) _G_config.h $(tooldir)/include/_G_config.h || exit 1; \ fi; \ else true; \ fi ; \ cd $(srcdir); \ for FILE in $(USER_INCLUDES); do if [ $$FILE != _G_config.h ]; then \ rm -f $(gxx_include_dir)/$$FILE ; \ $(INSTALL_DATA) $$FILE $(gxx_include_dir)/$$FILE ; \ chmod a-x $(gxx_include_dir)/$$FILE ; \ else true; fi; done ; \ else true; \ fi @rootme=`pwd`/ ; export rootme ; \ $(MULTIDO) $(FLAGS_TO_PASS) multi-do DO=install c++clean: rm -rf $(IOSTREAM_OBJECTS) @$(MAKE) $(FLAGS_TO_PASS) "DODIRS=tests" DO=clean subdir_do