+++ /dev/null
-# This makefile builds both uni-threaded and multi-threaded versions
-# of the libraries. It can be used as:
-# 1. make install
-# building both versions
-# 2. make install_ut
-# building the uni-threaded version only
-# 3. make install_mt
-# building the multi-threaded version only
-#
-# Written by Kiem-Phong Vo
-
-LIBTYPE=
-
-INCDIR= ../include
-LIBDIR= ../lib
-BINDIR= ../bin
-
-# Compiler and flags to use
-CXFLAGS=
-CCMODE= -O
-CCFLAGS= -I. $(CCMODE) $(LIBTYPE) $(CXFLAGS)
-AR= ar
-CC= cc
-
-# sfio
-SRCS= sfclose.c sfclrlock.c sfcvt.c sfdisc.c sfdlen.c sfexcept.c \
- sfextern.c sffilbuf.c sfflsbuf.c sfprints.c sfgetd.c sfgetl.c \
- sfgetr.c sfgetu.c sfllen.c sfmode.c sfmove.c sfnew.c \
- sfnotify.c sfnputc.c sfopen.c sfpkrd.c sfpool.c sfpopen.c \
- sfprintf.c sfputd.c sfputl.c sfputr.c sfputu.c sfrd.c sfread.c \
- sfscanf.c sfseek.c sfset.c sfsetbuf.c sfsetfd.c sfsize.c sfsk.c \
- sfstack.c sfstrtod.c sfsync.c sftable.c sftell.c sftmp.c \
- sfungetc.c sfvprintf.c sfvscanf.c sfwr.c sfwrite.c sfexit.c \
- sfpurge.c sfpoll.c sfreserve.c sfswap.c sfraise.c sfmutex.c \
- sfgetm.c sfputm.c sfresize.c
-OBJS= sfclose.o sfclrlock.o sfcvt.o sfdisc.o sfdlen.o sfexcept.o \
- sfextern.o sffilbuf.o sfflsbuf.o sfprints.o sfgetd.o sfgetl.o \
- sfgetr.o sfgetu.o sfllen.o sfmode.o sfmove.o sfnew.o \
- sfnotify.o sfnputc.o sfopen.o sfpkrd.o sfpool.o sfpopen.o \
- sfprintf.o sfputd.o sfputl.o sfputr.o sfputu.o sfrd.o sfread.o \
- sfscanf.o sfseek.o sfset.o sfsetbuf.o sfsetfd.o sfsize.o sfsk.o \
- sfstack.o sfstrtod.o sfsync.o sftable.o sftell.o sftmp.o \
- sfungetc.o sfvprintf.o sfvscanf.o sfwr.o sfwrite.o sfexit.o \
- sfpurge.o sfpoll.o sfreserve.o sfswap.o sfraise.o sfmutex.o \
- sfgetm.o sfputm.o sfresize.o
-
-# function versions of macros
-SFIO_F= Sfio_f/_sfclrerr.o Sfio_f/_sfdlen.o Sfio_f/_sfeof.o \
- Sfio_f/_sferror.o Sfio_f/_sffileno.o Sfio_f/_sfgetc.o \
- Sfio_f/_sfllen.o Sfio_f/_sfputc.o Sfio_f/_sfputd.o \
- Sfio_f/_sfputl.o Sfio_f/_sfputm.o Sfio_f/_sfputu.o \
- Sfio_f/_sfslen.o Sfio_f/_sfstacked.o Sfio_f/_sfulen.o \
- Sfio_f/_sfvalue.o
-
-# stdio-source compatibility code
-STDIO_S=Stdio_s/stdfgetc.o Stdio_s/stdfprintf.o Stdio_s/stdfputc.o \
- Stdio_s/stdfscanf.o Stdio_s/stdgetc.o Stdio_s/stdgets.o \
- Stdio_s/stdgetw.o Stdio_s/stdfdopen.o Stdio_s/stdprintf.o \
- Stdio_s/stdputc.o Stdio_s/stdputw.o Stdio_s/stdscanf.o \
- Stdio_s/stdsprintf.o Stdio_s/stdsetvbuf.o Stdio_s/stdtmpfile.o \
- Stdio_s/stdfopen.o Stdio_s/stdpopen.o Stdio_s/stdfreopen.o \
- Stdio_s/stdfwrite.o Stdio_s/stdfread.o Stdio_s/stdfflush.o
-
-# Thread-safety
-MTSAFE= ../vthread/vtextern.o ../vthread/vtmtxclrlock.o \
- ../vthread/vtmtxclose.o ../vthread/vtmtxlock.o \
- ../vthread/vtmtxopen.o ../vthread/vtmtxtrylock.o \
- ../vthread/vtmtxunlock.o ../vthread/vtonce.o
-
-# IO disciplines
-SFIO_DC=Sfio_dc/sfdcdio.o Sfio_dc/sfdcdos.o Sfio_dc/sfdcfilter.o \
- Sfio_dc/sfdclzw.o Sfio_dc/sfdcseekable.o Sfio_dc/sfdcslow.o \
- Sfio_dc/sfdcsubstream.o Sfio_dc/sfdctee.o Sfio_dc/sfdcunion.o
-
-.c.o:
- $(CC) -c $(CCFLAGS) $*.c
-
-# only one of the below install targets should be uncommented
-#install: install_ut
-#install: vthread install_mt
-install: vthread install_mt install_ut
-
-# this target builds the Vthread library
-vthread:
- cd ../vthread; $(MAKE) SHELL="$(SHELL)" CC="$(CC)" \
- CCMODE="$(CCMODE)" CXFLAGS="$(CXFLAGS)" install
-
-# this target builds the uni-threaded version of Sfio
-install_ut:
- echo""; echo "BUILDING UNI-THREADED libsfio.a"
- $(SHELL) ./Makestate.sh unithreaded
- $(MAKE) LIBTYPE="-Dvt_threaded=0" SHELL="$(SHELL)" CC="$(CC)" \
- CCMODE="$(CCMODE)" CXFLAGS="$(CXFLAGS)" install_unithreaded
-
-# this target builds the multi-threaded version of Sfio
-install_mt:
- echo""; echo "BUILDING MULTI-THREADED libsfio-mt.a";
- $(SHELL) ./Makestate.sh multithreaded
- $(MAKE) LIBTYPE="-Dvt_threaded=1" SHELL="$(SHELL)" CC="$(CC)" \
- CCMODE="$(CCMODE)" CXFLAGS="$(CXFLAGS)" install_multithreaded
-
-install_unithreaded: libsfio.a libstdio.a
- cp sfio.h ast_common.h sfio_t.h Stdio_s/stdio.h Sfio_dc/sfdisc.h $(INCDIR)
- cp libsfio.a $(LIBDIR)
- -(ranlib $(LIBDIR)/libsfio.a; exit 0) >/dev/null 2>&1
- cp Stdio_b/libstdio.a $(LIBDIR)
- -(ranlib $(LIBDIR)/libstdio.a; exit 0) >/dev/null 2>&1
-
-libsfio.a: ast_common.h FEATURE/sfio $(OBJS) mksfio_f mkstdio_s mksfio_dc
- $(AR) cr libsfio.a $(OBJS) $(SFIO_F) $(STDIO_S) $(SFIO_DC)
- -(ranlib libsfio.a; exit 0) >/dev/null 2>&1
-
-libstdio.a:
- cd Stdio_b; $(MAKE) LIBTYPE="$(LIBTYPE)" SHELL="$(SHELL)" CC="$(CC)" \
- CCMODE="$(CCMODE)" CXFLAGS="$(CXFLAGS)" libstdio.a
-
-install_multithreaded: libsfio-mt.a libstdio-mt.a
- cp sfio.h ast_common.h sfio_t.h Stdio_s/stdio.h Sfio_dc/sfdisc.h $(INCDIR)
- cp libsfio-mt.a $(LIBDIR)
- -(ranlib $(LIBDIR)/libsfio-mt.a; exit 0) >/dev/null 2>&1
- cp Stdio_b/libstdio-mt.a $(LIBDIR)
- -(ranlib $(LIBDIR)/libstdio-mt.a; exit 0) >/dev/null 2>&1
-
-libsfio-mt.a: ast_common.h FEATURE/sfio $(OBJS) mksfio_f mkstdio_s mksfio_dc
- $(AR) cr libsfio-mt.a $(OBJS) $(SFIO_F) $(STDIO_S) $(SFIO_DC) $(MTSAFE)
- -(ranlib libsfio-mt.a; exit 0) >/dev/null 2>&1
-
-libstdio-mt.a:
- cd Stdio_b; $(MAKE) LIBTYPE="$(LIBTYPE)" SHELL="$(SHELL)" CC="$(CC)" \
- CCMODE="$(CCMODE)" CXFLAGS="$(CXFLAGS)" libstdio-mt.a
-
-# the make goals below are common to both uni&multi-threaded versions
-FEATURE/sfio: features/sfio
- $(BINDIR)/iffe set cc $(CC) $(CCFLAGS) : run features/sfio
-ast_common.h: features/common
- $(BINDIR)/iffe - set cc $(CC) $(CCFLAGS) : run features/common > ast_common.h
-mksfio_f:
- cd Sfio_f; $(MAKE) LIBTYPE="$(LIBTYPE)" SHELL="$(SHELL)" CC="$(CC)" \
- CCMODE="$(CCMODE)" CXFLAGS="$(CXFLAGS)"
-mkstdio_s:
- cd Stdio_s; $(MAKE) LIBTYPE="$(LIBTYPE)" SHELL="$(SHELL)" CC="$(CC)" \
- CCMODE="$(CCMODE)" CXFLAGS="$(CXFLAGS)"
-mksfio_dc:
- cd Sfio_dc; $(MAKE) LIBTYPE="$(LIBTYPE)" SHELL="$(SHELL)" CC="$(CC)" \
- CCMODE="$(CCMODE)" CXFLAGS="$(CXFLAGS)"
-
-clean:
- -(rm -rf FEATURE $(OBJS) ast_common.h Makefile.state; exit 0) >/dev/null 2>&1
- -(rm libsfio.a libstdio.a libsfio-mt.a libstdio-mt.a; exit 0) >/dev/null 2>&1
- cd Sfio_f; $(MAKE) SHELL="$(SHELL)" clean
- cd Stdio_s; $(MAKE) SHELL="$(SHELL)" clean
- cd Stdio_b; $(MAKE) SHELL="$(SHELL)" clean
- cd Sfio_dc; $(MAKE) SHELL="$(SHELL)" clean