xref: /freebsd/contrib/gdtoa/makefile (revision 37a60314)
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