1cc36ccd1SDavid Schultz# /**************************************************************** 2cc36ccd1SDavid Schultz# Copyright (C) 1998 by Lucent Technologies 3cc36ccd1SDavid Schultz# All Rights Reserved 4cc36ccd1SDavid Schultz# 5cc36ccd1SDavid Schultz# Permission to use, copy, modify, and distribute this software and 6cc36ccd1SDavid Schultz# its documentation for any purpose and without fee is hereby 7cc36ccd1SDavid Schultz# granted, provided that the above copyright notice appear in all 8cc36ccd1SDavid Schultz# copies and that both that the copyright notice and this 9cc36ccd1SDavid Schultz# permission notice and warranty disclaimer appear in supporting 10cc36ccd1SDavid Schultz# documentation, and that the name of Lucent or any of its entities 11cc36ccd1SDavid Schultz# not be used in advertising or publicity pertaining to 12cc36ccd1SDavid Schultz# distribution of the software without specific, written prior 13cc36ccd1SDavid Schultz# permission. 14cc36ccd1SDavid Schultz# 15cc36ccd1SDavid Schultz# LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, 16cc36ccd1SDavid Schultz# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. 17cc36ccd1SDavid Schultz# IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY 18cc36ccd1SDavid Schultz# SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 19cc36ccd1SDavid Schultz# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER 20cc36ccd1SDavid Schultz# IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, 21cc36ccd1SDavid Schultz# ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF 22cc36ccd1SDavid Schultz# THIS SOFTWARE. 23cc36ccd1SDavid Schultz# 24cc36ccd1SDavid Schultz# ****************************************************************/ 25cc36ccd1SDavid Schultz 26cc36ccd1SDavid Schultz.SUFFIXES: .c .o 27cc36ccd1SDavid SchultzCC = cc 284848dd08SDavid SchultzCFLAGS = -g 2937a60314SEitan AdlerAR ?= ar 3037a60314SEitan AdlerARFLAGS ?= ruv 31cc36ccd1SDavid Schultz 32cc36ccd1SDavid Schultz.c.o: 33cc36ccd1SDavid Schultz $(CC) -c $(CFLAGS) $*.c 34cc36ccd1SDavid Schultz 3550dad48bSDavid Schultz# invoke "make Printf" to add printf.o to gdtoa.a (if desired) 3650dad48bSDavid Schultz 37c88250a5SDavid Schultzall: arith.h gd_qnan.h gdtoa.a 38cc36ccd1SDavid Schultz 39cc36ccd1SDavid Schultzarith.h: arithchk.c 40cc36ccd1SDavid Schultz $(CC) $(CFLAGS) arithchk.c || $(CC) -DNO_LONG_LONG $(CFLAGS) arithchk.c 41cc36ccd1SDavid Schultz ./a.out >arith.h 42cc36ccd1SDavid Schultz rm -f a.out arithchk.o 43cc36ccd1SDavid Schultz 44c88250a5SDavid Schultzgd_qnan.h: arith.h qnan.c 45c88250a5SDavid Schultz $(CC) $(CFLAGS) qnan.c 46c88250a5SDavid Schultz ./a.out >gd_qnan.h 47c88250a5SDavid Schultz rm -f a.out qnan.o 48c88250a5SDavid Schultz 4950dad48bSDavid Schultzgdtoa.a: dmisc.c dtoa.c g_Qfmt.c g__fmt.c g_ddfmt.c g_dfmt.c\ 5050dad48bSDavid Schultz g_ffmt.c g_xLfmt.c g_xfmt.c gdtoa.c gethex.c gmisc.c hd_init.c\ 5150dad48bSDavid Schultz hexnan.c misc.c smisc.c strtoIQ.c strtoId.c strtoIdd.c\ 5250dad48bSDavid Schultz strtoIf.c strtoIg.c strtoIx.c strtoIxL.c strtod.c strtodI.c\ 5350dad48bSDavid Schultz strtodg.c strtof.c strtopQ.c strtopd.c strtopdd.c strtopf.c\ 5450dad48bSDavid Schultz strtopx.c strtopxL.c strtorQ.c strtord.c strtordd.c strtorf.c\ 5550dad48bSDavid Schultz strtorx.c strtorxL.c sum.c ulp.c 56cc36ccd1SDavid Schultz $(CC) -c $(CFLAGS) $? 5737a60314SEitan Adler x=`echo $? | sed 's/\.c/.o/g'` && $(AR) $(ARFLAGS) gdtoa.a $$x && rm $$x 58cc36ccd1SDavid Schultz ranlib gdtoa.a || true 59cc36ccd1SDavid Schultz 6050dad48bSDavid SchultzPrintf: all printf.c 6150dad48bSDavid Schultz $(CC) -c $(CFLAGS) printf.c 6237a60314SEitan Adler $(AR) $(ARFLAGS) gdtoa.a printf.o 6350dad48bSDavid Schultz rm printf.o 6450dad48bSDavid Schultz touch Printf 6550dad48bSDavid Schultz 66cc36ccd1SDavid Schultz# If your system lacks ranlib, you do not need it. 67cc36ccd1SDavid Schultz 6850dad48bSDavid Schultzxs0 = README arithchk.c dmisc.c dtoa.c g_Qfmt.c g__fmt.c g_ddfmt.c\ 6950dad48bSDavid Schultz g_dfmt.c g_ffmt.c g_xLfmt.c g_xfmt.c gdtoa.c gdtoa.h\ 7050dad48bSDavid Schultz gdtoa_fltrnds.h gdtoaimp.h gethex.c gmisc.c hd_init.c hexnan.c\ 7150dad48bSDavid Schultz makefile misc.c printf.c printf.c0 qnan.c smisc.c stdio1.h\ 7250dad48bSDavid Schultz strtoIQ.c strtoId.c strtoIdd.c strtoIf.c strtoIg.c strtoIx.c\ 7350dad48bSDavid Schultz strtoIxL.c strtod.c strtodI.c strtodg.c strtodnrp.c strtof.c\ 7450dad48bSDavid Schultz strtopQ.c strtopd.c strtopdd.c strtopf.c strtopx.c strtopxL.c\ 7550dad48bSDavid Schultz strtorQ.c strtord.c strtordd.c strtorf.c strtorx.c strtorxL.c\ 7650dad48bSDavid Schultz sum.c ulp.c 77cc36ccd1SDavid Schultz 7850dad48bSDavid Schultz# "make -r xsum.out" to check for transmission errors; source for xsum is 79cc36ccd1SDavid Schultz# netlib's "xsum.c from f2c", e.g., 80cc36ccd1SDavid Schultz# ftp://netlib.bell-labs.com/netlib/f2c/xsum.c.gz 81cc36ccd1SDavid Schultz 82cc36ccd1SDavid Schultzxsum.out: xsum0.out $(xs0) 83cc36ccd1SDavid Schultz xsum $(xs0) >xsum1.out 84cc36ccd1SDavid Schultz cmp xsum0.out xsum1.out && mv xsum1.out xsum.out || diff xsum[01].out 85cc36ccd1SDavid Schultz 86cc36ccd1SDavid Schultzclean: 8750dad48bSDavid Schultz rm -f arith.h gd_qnan.h *.[ao] Printf xsum.out xsum1.out 88