summaryrefslogtreecommitdiff
path: root/libc/Make.defs
blob: ff571d725f0508c0e2fac6e94b1eb7aa738e5ed4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
# Copyright (C) 1995,1996 Robert de Bath <rdebath@cix.compulink.co.uk>
# This file is part of the Linux-8086 C library and is distributed
# under the GNU Library General Public License.

# Set PLATFORM to i386-Linux to build for Linux/386 and to i86-ELKS to
# build for ELKS.  This doesn't quite work yet, though, because of some of
# the platform and/or compiler-specific code flying around here.
# Eventually, compiler-specificity won't be an issue, and we can put
# platform-specific code in i86/ and i386/.   -Nat

# Define enviroment var for others.
ifeq ($(PLATFORM),)
# PLATFORM=i86-ELKS
# PLATFORM=i86-FAST  PLATFORM=i86-DOS  PLATFORM=i386-BCC  PLATFORM=i386-Linux

PLATFORM=$(shell if [ -f $(TOP)/.config.otype ] ; \
                 then cat $(TOP)/.config.otype ; \
                 else echo i86-ELKS ; fi)
export PLATFORM
endif

VERMAJOR=0
VERMINOR=0
VERPATCH=8
VER=$(VERMAJOR).$(VERMINOR).$(VERPATCH)

LIBDEFS='-D__LIBC__="$(VER)"'
LIBC=libc.a

##############################################################################

# Normal standard 8086 code
ifeq ($(PLATFORM),i86-ELKS)
ARCH=
LIB_CPU=i86
LIB_OS=ELKS
endif

# 8086 elks code With "Caller saves" and "First arg in AX"
ifeq ($(PLATFORM),i86-FAST)
ARCH=-Mf
LIBC=libc_f.a
LIB_CPU=i86
LIB_OS=ELKS
endif

# Standalone executable
ifeq ($(PLATFORM),i86-BIOS)
ARCH=-Ms
LIBC=libc_s.a
LIB_CPU=i86
LIB_OS=BIOS
endif

# MSDOS COM file (msdos libs don't support "First arg in AX")
ifeq ($(PLATFORM),i86-DOS)
ARCH=-Md
LIBC=libdos.a
LIB_CPU=i86
LIB_OS=DOS
endif

##############################################################################

# BCC 386.
ifeq ($(PLATFORM),i386-BCC)
ARCH=-3 -N
LIB_CPU=i386
LIB_OS=ELKS

CC=bcc $(ARCH)
CCFLAGS=-I -I$(TOP)/include
LKFLAGS=-L -L$(TOP)/
endif

ifeq ($(PLATFORM),i386-Linux)
LIB_CPU=g386
LIB_OS=ELKS

CC=gcc $(ARCH)
# ARCH=-b i486-linuxaout
LKFLAGS=-static -N
CCFLAGS=-O6 -fomit-frame-pointer -I- -I$(TOP)/include -I. -fno-builtin
WALL=	-ansi -pedantic -Wwrite-strings -Wpointer-arith -Wcast-qual \
	-Wcast-align -Wtraditional -Wstrict-prototypes -Wmissing-prototypes \
	-Wnested-externs -Winline -Wshadow
endif

############################################################################

ifeq ($(LIB_CPU),i86)
CC=bcc $(ARCH)
CCFLAGS=-I -I$(TOP)/include # -O
LKFLAGS=-L -L$(TOP)/ -s
endif

ifeq ($(LIB_CPU),)
LIB_CPU=Unknown
LIB_OS=Unknown
LIBC=libc_X.a
CCFLAGS=-I$(TOP)/include
LKFLAGS=
endif

CFLAGS=$(CCFLAGS) $(LIBDEFS)
LDFLAGS=$(LKFLAGS)

.PRECIOUS: $(LIBC)