138 lines
4.9 KiB
Makefile
138 lines
4.9 KiB
Makefile
# 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
|