#
# Makefile for the Linux C library
#

.EXPORT_ALL_VARIABLES:

GCCVERSION=-V 2.4.5

# where do you build this?
HOST_MACHINE=linux
HOST_MACHINE=i386-att-sysv
HOST_MACHINE=decstation-3100
HOST_MACHINE=sparc-sun-sunos4.1

TARGET_MACHINE=i486-linux

GNU_MAKE=gmake

# That is for new ld.so. Please make sure they are the same as
# the one used in ld.so package.
LDSO_ADDR = 62f00000
LDSO_ENTRY = "(0x$(LDSO_ADDR)+32)"

ifdef LITE
WHICH=lite
SHARED=true
endif

ifdef STATIC
WHICH=static
endif

ifdef SHARED
WHICH=shared
endif

ifdef DEBUG
WHICH=debug
endif

ifdef PROFILE
WHICH=profile
endif

ifdef MATH
WHICH=math
endif

ifndef WHICH
WHICH=static
STATIC=true
endif

ifeq "$(HOST_MACHINE)" "linux"

CROSSINCDIR=/usr/include

CROSSBINDIR=/usr/bin

DLLDIR=/usr/dll/bin

JUMPASDIR=/usr/dll/jump

TARGET_LIB_DIR=/usr/lib
TARGET_LIBEXTRA_DIR=/usr/lib

TARGET_SO_DIR=/lib

# Host root directory, maybe /usr for Linux
HOSTROOTDIR=/usr

HOSTBINDIR=$(HOSTROOTDIR)/bin

MAKE=make

else

ifeq "$(HOST_MACHINE)" "decstation-3100"

HOSTROOTDIR=/net/irl/users/hlu/local
HOSTBINDIR=$(HOSTROOTDIR)/decstation-3100/bin

# Host root directory, maybe /usr for Linux
TARGETROOTDIR=/net/irl/users/hlu/linux/pkg

# where to put libc_p.a, libg.a
TARGET_ROOTEXTRA_DIR=/net/irl/users/hlu/linux/pkg/extra

else

ifeq "$(HOST_MACHINE)" "i386-att-sysv"

HOSTROOTDIR=/local

HOSTBINDIR=$(HOSTROOTDIR)/bin

TARGETROOTDIR=/usr2/linux/lib
TARGET_ROOTEXTRA_DIR=/usr2/linux/extra

endif

ifeq "$(HOST_MACHINE)" "sparc-sun-sunos4.1"

HOSTROOTDIR=/usr/local

HOSTBINDIR=$(HOSTROOTDIR)/bin

TARGETROOTDIR=$(HOME)/linux
TARGET_ROOTEXTRA_DIR=$(HOME)/linux/extra

endif

endif

CROSSINCDIR=$(HOSTROOTDIR)/$(TARGET_MACHINE)/include

CROSSBINDIR=$(HOSTROOTDIR)/$(TARGET_MACHINE)/bin

DLLDIR=$(HOSTROOTDIR)/$(TARGET_MACHINE)/dll/bin

JUMPASDIR=$(HOSTROOTDIR)/$(TARGET_MACHINE)/dll/jump

# normal static libraries.
TARGET_LIB_DIR =$(TARGETROOTDIR)/usr/lib

# libc_p.a, libg.a
TARGET_LIBEXTRA_DIR =$(TARGET_ROOTEXTRA_DIR)/usr/lib

TARGET_SO_DIR=/$(TARGETROOTDIR)/lib

MAKE=$(GNU_MAKE)

endif

#
# Don't change anything below unless you know what you are doing.
#

# Where we are now.
SRCDIR:=$(shell /bin/sh -c pwd)

MKDIR=mkdir -p


AR	=$(CROSSBINDIR)/ar
AR_FLAGS=ucv

AS	=$(CROSSBINDIR)/as
NM	=$(CROSSBINDIR)/nm
STRIP	=$(CROSSBINDIR)/strip
REALRANLIB	=$(CROSSBINDIR)/ranlib

RANLIB	=true

LDFLAGS	=-r -x -m486

ifndef LITE

YP=true

endif

ifdef DEBUG

MV	=true
LD	=true
OPTFLAGS=-O -g
LIB= libg.a
LIBALIAS=libg.a

endif # debug

ifdef PROFILE

MV	=true
LD	=true
OPTFLAGS=-O -pg
LIB= libc_p.a
LIBALIAS= libc_p.a

endif # profile

ifdef STATIC

MV	=/bin/mv
LD	=$(CROSSBINDIR)/ld

LIB=libc.a
LIBALIAS=libc.a

endif

ifdef SHARED

MV	=/bin/mv
LD	=$(CROSSBINDIR)/ld

LIB=libc.a
LIBALIAS= libalias.a

JUMFLAGS=-B$(JUMPASDIR)/

MKIMAGE=$(DLLDIR)/mkimage
VERIFY=$(DLLDIR)/verify-shlib
MKSTUBS=$(DLLDIR)/mkstubs

endif

I486FLAGS=-m486

ifdef PIC

PICFLAGS=-fPIC

endif

ifdef LITE

# Where we get those dll files.
SHLIB=libc.lite

else

# Where we get those dll files.
SHLIB=libc

endif

ifdef MATH
SHLIB=libm
endif

ifdef YP

YPFLAGS=-DYP
YPDIR=yp

ifdef SHARED

LIB= libc.a
LIBYP= libc

endif

ifdef STATIC

LIB= libc.a
LIBYP= libc

endif

ifdef PROFILE

LIB=libc_p.a
LIBYP= libc_p

endif

ifdef DEBUG

LIB= libg.a
LIBYP= libg

endif

endif

WFLAGS=-Wall -Wstrict-prototypes -Wmissing-prototypes

CC	=$(HOSTBINDIR)/gcc $(GCCVERSION) -b $(TARGET_MACHINE) \
		$(I486FLAGS) $(JUMFLAGS) $(PICFLAGS) $(YPFLAGS)

XCFLAGS = -D_GNU_SOURCE -DSTDC_HEADERS -DUSG -DDIRENT -DSYSV \
	-DUSE_BSD_REGEX -DHAVE_GNU_LD -D_LIBC # -D__USE_BSD_SIGNAL

MINUS_G=
XTRAFLAGS=$(XCFLAGS)

CPP	=$(CC) -E $(INC) # $(XCFLAGS)
RM	=/bin/rm
