1# Copyright (C) 1995,1996 Robert de Bath <rdebath@cix.compulink.co.uk>
2# This file is part of the Linux-8086 C library and is distributed
3# under the GNU Library General Public License.
4
5# Support for integer arithmetic
6ifeq ($(LIB_CPU),i86)
7IOBJ=__idiv.o __idivu.o __imod.o __imodu.o __imul.o __isl.o __isr.o __isru.o
8ISRC=bcc_int.c
9endif
10
11# Support for integer arithmetic when compiling for the i386
12ifeq ($(LIB_CPU),i386)
13ISRC=bcc_i386.c
14IOBJ=__idiv.o __idivu.o __imod.o __imodu.o __imul.o __isl.o __isr.o __isru.o \
15     __divsi3.o
16endif
17
18# Support for long arithmetic on little-endian (normal) longs
19LSRC=bcc_long.c
20LOBJ=__laddl.o __landl.o __lcmpl.o __lcoml.o __ldecl.o __ldivl.o __ldivul.o \
21     __leorl.o __lincl.o __lmodl.o __lmodul.o __lmull.o __lnegl.o __lorl.o \
22     __lsll.o __lsrl.o __lsrul.o __lsubl.o __ltstl.o
23
24# Memory allocation primitives
25AOBJ=errno.o __brk_addr.o sbrk.o brk.o
26ASRC=heap.c
27
28# Support for long arithmetic on big-endian (words-swapped) longs
29RSRC=bcc_bsw.c
30ROBJ=__laddb.o __landb.o __lcmpb.o __lcomb.o __ldecb.o __ldivb.o __ldivub.o \
31     __leorb.o __lincb.o __lmodb.o __lmodub.o __lmulb.o __lnegb.o __lorb.o \
32     __lslb.o __lsrb.o __lsrub.o __lsubb.o __ltstb.o
33
34# Miscellaneous I/O and far access junk
35PSRC=bcc_io.c
36POBJ=__inport.o __inportb.o __outport.o __outportb.o __peekb.o __peekw.o \
37     __pokeb.o __pokew.o
38
39ifeq ($(LIB_CPU),i86)
40OBJ=__ldivmod.o $(IOBJ) $(LOBJ) $(AOBJ)
41endif
42ifeq ($(LIB_CPU),i386)
43OBJ=$(IOBJ) $(AOBJ)
44endif
45
46OLDOBJ=$(ROBJ) $(POBJ)
47
48CFLAGS=-pipe -O2 -fno-strict-aliasing  $(ARCH) $(CCFLAGS) $(DEFS)
49
50ifneq ($(OBJ),)
51
52all: $(LIBC)
53	@$(RM) $(OBJ)
54
55$(LIBC): $(LIBC)($(OBJ))
56
57$(LIBC)($(IOBJ)): $(ISRC)
58	$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
59	$(AR) $(ARFLAGS) $@ $*.o
60
61$(LIBC)($(LOBJ)): $(LSRC)
62	$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
63	$(AR) $(ARFLAGS) $@ $*.o
64
65$(LIBC)($(AOBJ)): $(ASRC)
66	$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
67	$(AR) $(ARFLAGS) $@ $*.o
68
69$(LIBC)($(ROBJ)): $(RSRC)
70	$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
71	$(AR) $(ARFLAGS) $@ $*.o
72
73$(LIBC)($(POBJ)): $(PSRC)
74	$(CC) $(CFLAGS) -DL_$* $< -c -o $*.o
75	$(AR) $(ARFLAGS) $@ $*.o
76else
77all:
78	@:
79endif
80
81clean:
82	rm -f *.o libc.a
83