Files
oldlinux-files/study/linux-travel/minix-386/estdio21.tar/estdio21/makefile.nix
2024-02-19 00:25:23 -05:00

323 lines
8.8 KiB
Nix

#nix _UNIX
CPP =__CPP__ __DEFINES__
FPCC =__FPCC__
CC =__CC__
FPLD =__FPLD__
LD =__LD__
RANLIB =__RANLIB__
LORDER =__LORDER__
TSORT =__TSORT__
Installdir =INSTALL/
Testdir =TEST/
Fptestdir =FPTEST/
Define =__DEFINES__
Include =-I.
Libraries =stdio.a
MathLibraries =__MATHLIB__
FPLib =stdiofp.a
StdioLib =stdio.a
All =README *.x *.c *.g *.h \
makefile.cpp makefile.nix makefile.min \
$(Testdir)*.c $(Testdir)*.sh \
$(Fptestdir)*.c \
$(Installdir)*.c $(Installdir)*.sh \
$(Installdir)*.txt $(Installdir)*.sit \
$(Installdir)*.ans
Everyone =nix min dos
CFLAGS= $(Define) $(Include)
FPOBJ= \
_f_cvt.o _f_fprintf.o _f_fscanf.o \
_f_guard.o _f_pow10.o _f_printf.o \
_f_scanf.o _f_sprintf.o _f_sscanf.o \
_f_tvc.o _f_vfprintf.o _f_vprintf.o \
_f_vsprintf.o
LIBOBJ= \
_allocbuf.o _bfs.o _bread.o \
_bwrite.o _err.o _errlist.o \
_fgetlx.o _file.o _fopen.o \
_freebuf.o _in.o _ioread.o \
_iowrite.o _ipow10.o _open3.o \
_os.o _out.o _rename.o \
_rlbf.o _stdio.o _update.o \
_utoa.o _vfprintf.o _vfscanf.o \
_vscanf.o _vsscanf.o _xassert.o \
_z_cvt.o _z_tvc.o _zatexit.o \
_zerr.o _zout.o _zrlbf.o \
_zwrapup.o atexit.o clearerr.o \
ctermid.o cuserid.o exit.o \
fclose.o fdopen.o feof.o \
ferror.o fflush.o fgetc.o \
fgetpos.o fgets.o fileno.o \
fopen.o fprintf.o fputc.o \
fputs.o fread.o freopen.o \
fscanf.o fseek.o fsetpos.o \
ftell.o fwrite.o getc.o \
getchar.o gets.o getw.o \
perror.o printf.o putc.o \
putchar.o puts.o putw.o \
remove.o rewind.o scanf.o \
setbuf.o setvbuf.o sprintf.o \
sscanf.o tmpfile.o tmpnam.o \
ungetc.o vfprintf.o vprintf.o \
vsprintf.o
.SUFFIXES: .o .c
.c.o:
$(CC) $(CFLAGS) $<
test:
-cd $(Testdir) ; \
for f in *.c ; do \
n=`basename $$f .c` ; \
$(CC) $(CFLAGS) -I.. $$n.c ; \
$(LD) $$n $$n.o ../stdio.a ; \
done
fptest:
-cd $(Fptestdir) ; \
for f in *.c ; do \
n=`basename $$f .c` ; \
$(FPCC) $(CFLAGS) -I.. $$n.c ; \
$(FPLD) $$n $$n.o ../stdiofp.a ../stdio.a $(MathLibraries) ; \
done
update:
-if test -z "$(LIBC)" ; then \
echo Usage: make update LIBC=library ; \
else \
ar t $(LIBC) | sed -e 's/ //g' | sort > libc.files ; \
ar rv $(LIBC) `ls *.o | comm -12 - libc.files` ; \
rm -f libc.files ; \
$(RANLIB) $(LIBC); \
fi
# Library dependencies
$(FPOBJ) $(LIBOBJ): stdiolib.h stdio.h
Hide: site.h
rm -f Hidden
-if grep -s "define HIDDEN" site.h ; then \
$(CPP) stub.x >Hidden ; \
for f in `grep '^.define [a-z]' hidden.h | \
sed 's/^.define \([a-z]*\).*/\1/'` ; do \
echo $${f} ; \
sed -e "s/XYZ/$${f}/g" < Hidden > _u_$${f}.s ; \
as -o _u_$${f}.o _u_$${f}.s ; \
done ; \
fi
echo -n >Hide
# Put together a library
FPobjects: $(FPOBJ)
FPorder: $(FPOBJ) Hide
echo -n >FPorder
-if test -f Hidden ; then \
ls _u_*print*.o _u_*scan*.o >> FPorder ; \
fi
ls $(FPOBJ) > FPorder.tmp
$(LORDER) `cat FPorder.tmp` | $(TSORT) >> FPorder; \
rm -f FPorder.tmp FPsort.tmp
FParchive: FPorder
rm -f $(FPLib)
ar cr $(FPLib) `cat FPorder`
$(RANLIB) stdiofp.a
Liborder: $(LIBOBJ) Hide
echo -n >Liborder
-if test -f Hidden ; then \
ls _u_*.o >> Liborder ; \
fi
ls $(LIBOBJ) > Liborder.tmp
$(LORDER) `cat Liborder.tmp` | $(TSORT) >> Liborder; \
rm -f Liborder.tmp
stdio $(StdioLib): Liborder
rm -f $(StdioLib)
ar cr $(StdioLib) `cat Liborder`
$(RANLIB) stdio.a
stdiofp $(FPLib):
$(MAKE) FPobjects "CC=$(FPCC)" "LD=$(FPLD)"
$(MAKE) FParchive
# Pretty list of objects
fpfiles:
ls _f_*.c | sed -e 's/\.c/.O/g' | \
pr -3 -l1 -t -w60 > FPfiles
sed -e 's/O *$$/O \\/' -e '$$s/ \\$$//' < FPfiles > FPfiles.new
mv FPfiles.new FPfiles
libfiles:
ls [_a-wz]*.c | sed -e '/^_f_/d' -e 's/\.c/.O/g' | \
pr -3 -l1 -t -w60 > Libfiles
sed -e 's/O *$$/O \\/' -e '$$s/ \\$$//' < Libfiles > Libfiles.new
mv Libfiles.new Libfiles
# Clean
clean:
rm -f $(LIBOBJ)
rm -f $(FPOBJ)
rm -f _u_*
rm -f $(StdioLib) $(FPLib)
rm -f $(Testdir)*.o $(Fptestdir)*.o $(Installdir)*.o
for d in $(Testdir) $(Fptestdir) $(Installdir) ; do \
cd $$d ; \
rm -f core *.out ; \
for f in *.c ; do \
e=`basename $$f .c` ; \
rm -f $$e ; \
done ; \
cd .. ; \
done
rm -f *~ core *.out *order Hid* test.dat
rm -f *files *.tmp
rm -f estdio.u* estdio.[01]?
# Site
site:
-__CDIFF__ stdio.g stdio.h > $(Installdir)__SITE__.sit
-if test ! -f site.h ; then \
echo site.h not installed ; \
else \
LINES=`wc -l < site.h | sed 's/ //g'` ; \
DATE=`date` ; \
echo "*** site.h $${DATE}" >> $(Installdir)__SITE__.sit ; \
echo "--- site.h $${DATE}" >> $(Installdir)__SITE__.sit ; \
echo "***************" >> $(Installdir)__SITE__.sit ; \
echo "*** 0 ****" >> $(Installdir)__SITE__.sit ; \
echo "--- 1,$${LINES} ----" >> $(Installdir)__SITE__.sit ; \
sed -e 's/^/+ /' < site.h >> $(Installdir)__SITE__.sit ; \
fi
-if test ! -f Makefile ; then \
echo Makefile not installed ; \
else \
LINES=`wc -l < Makefile | sed 's/ //g'` ; \
DATE=`date` ; \
echo "*** Makefile $${DATE}" >> $(Installdir)__SITE__.sit ; \
echo "--- Makefile $${DATE}" >> $(Installdir)__SITE__.sit ; \
echo "***************" >> $(Installdir)__SITE__.sit ; \
echo "*** 0 ****" >> $(Installdir)__SITE__.sit ; \
echo "--- 1,$${LINES} ----" >> $(Installdir)__SITE__.sit ; \
sed -e 's/^/+ /' < Makefile >> $(Installdir)__SITE__.sit ; \
fi
-if test -s errlist.h ; then \
LINES=`wc -l < errlist.h | sed 's/ //g'` ; \
DATE=`date` ; \
echo "*** errlist.h $${DATE}" >> $(Installdir)__SITE__.sit ; \
echo "--- errlist.h $${DATE}" >> $(Installdir)__SITE__.sit ; \
echo "***************" >> $(Installdir)__SITE__.sit ; \
echo "*** 0 ****" >> $(Installdir)__SITE__.sit ; \
echo "--- 1,$${LINES} ----" >> $(Installdir)__SITE__.sit ; \
sed -e 's/^/+ /' < errlist.h >> $(Installdir)__SITE__.sit ; \
fi
-if test -s powers.h ; then \
LINES=`wc -l < powers.h | sed 's/ //g'` ; \
DATE=`date` ; \
echo "*** powers.h $${DATE}" >> $(Installdir)__SITE__.sit ; \
echo "--- powers.h $${DATE}" >> $(Installdir)__SITE__.sit ; \
echo "***************" >> $(Installdir)__SITE__.sit ; \
echo "*** 0 ****" >> $(Installdir)__SITE__.sit ; \
echo "--- 1,$${LINES} ----" >> $(Installdir)__SITE__.sit ; \
sed -e 's/^/+ /' < powers.h >> $(Installdir)__SITE__.sit ; \
fi
-if test -s lmr.h ; then \
LINES=`wc -l < lmr.h | sed 's/ //g'` ; \
DATE=`date` ; \
echo "*** lmr.h $${DATE}" >> $(Installdir)__SITE__.sit ; \
echo "--- lmr.h $${DATE}" >> $(Installdir)__SITE__.sit ; \
echo "***************" >> $(Installdir)__SITE__.sit ; \
echo "*** 0 ****" >> $(Installdir)__SITE__.sit ; \
echo "--- 1,$${LINES} ----" >> $(Installdir)__SITE__.sit ; \
sed -e 's/^/+ /' < lmr.h >> $(Installdir)__SITE__.sit ; \
fi
# Distribution
distribution:
ls $(All) | \
sed -e '/^stdio\.h/d' \
-e '/^site\.h/d' \
-e '/^errlist\.h/d' \
-e '/^powers\.h/d' \
-e '/^lmr\.h/d' \
-e '/^_u_/d' > files
# Arc
arc: distribution
rm -f estdio.arc
arc a estdio.arc @files
# Tar
tar estdio.taz: distribution
rm -f estdio.taz
tar cvf - `cat files` | compress -b13 > estdio.taz
# Distribution by tar parts
uu: distribution
rm -f estdio.u*
tar cvf - `cat files` | \
compress -b13 | \
uuencode estdio.taz | \
split -300 - estdio.u
for f in estdio.u* ; do \
echo '------ Cut Here ------' > uu.tmp ; \
cat $$f >> uu.tmp ; \
echo '------ Cut Here ------' >> uu.tmp ; \
mv uu.tmp $$f ; \
done
# Shell archive
shar: distribution
rm -f estdio.[0-9][0-9]*
sed -e '/^site\.h/d' \
-e '/^stdio\.h/d' \
-e 's%.*\.x%& Assembler stub%' \
-e 's%^TEST/.*%& Exercise file%' \
-e 's%^FPTEST/.*%& Exercise file%' \
-e 's%^INSTALL/.*\.c%& Installation file%' \
-e 's%^INSTALL/.*\.sh%& Installation script%' \
-e 's%^INSTALL/.*\.txt%& Documentation%' \
-e 's%^INSTALL/.*\.sit%& Differences for preconfigured sites%' \
-e 's%^INSTALL/.*\.ans%& Answer file for generating sites%' \
-e 's%^makefile.cpp$$%& Cppmake file%' \
-e 's%^makefile.[a-z]*$$%& Makefile%' \
-e 's%^[0-9a-z_]*\.g$$%& Header file source%' \
-e 's%^[0-9a-z_]*\.h$$%& Header file%' \
-e 's%^_z.*\.c$$%& Stdio fake source code%' \
-e 's%^[0-9a-z_]*\.c$$%& Stdio source code%' < files > MANIFEST
shar -a -n estdio -C -b13 -c -o estdio -l 40 MANIFEST `cat files`
# Dust and dirt
lint:
lint -n $(Include) $(Define) `echo $(LIBOBJ) | sed 's/\.o/.c/g'`
# Makefiles
makefiles:
-for w in $(Everyone) ; do \
n=`grep "^.$$w " <makefile.cpp | sed 's/^.[^ ]* //'` ; \
echo $$n ; \
cppmake -D$$n -o makefile.$$w ; \
done