# -*- Makefile -*- configuration for Unix Squeak!
#
# last edited: Thu Feb  4 11:11:36 1999 by piumarta (Ian Piumarta) on tif

SQUEAKCONF=	GNUmakefile.conf
SQUEAKLIST=	squeak@cs.uiuc.edu

# paths to sources and utilities

ifeq ($(wildcard ../src),../src)
  SRC=		../src/
endif

ifeq ($(wildcard ../util),../util)
  UTIL=		../util/
endif

SQCAT:=		$(UTIL)sqcat

ifeq ($(VMGEN),interp.c)
  GNUIFY:=	$(SRC)gnuify.trad
else
  GNUIFY:=	$(SRC)gnuify
endif

VPATH:=		$(SRC)

# platform identification

#UTSMAC:=	$(shell arch     | tr [A-Z] [a-z])
UTSMAC:=	$(shell uname -m | tr [A-Z] [a-z])
UTSSYS:=	$(shell uname -s | tr [A-Z] [a-z] | sed 's/-//g')
UTSREL:=	$(shell uname -r | tr [A-Z] [a-z])

ifeq ($(UTSMAC),i686)
  UTSMAC:=i386
endif

ifeq ($(UTSMAC),i586)
  UTSMAC:=i386
endif

ifeq ($(UTSMAC),i486)
  UTSMAC:=i386
endif

ifneq ($(findstring sun4,$(UTSMAC)),)
  MACHINE:=sparc
else
  MACHINE:=$(UTSMAC)
endif

ifneq ($(findstring sunos-5,$(UTSSYS)-$(UTSREL)),)
  SYSTEM:=solaris
  RELEASE:=$(subst 5.5,2.5,$(UTSREL))
else
  SYSTEM:=$(UTSSYS)
  RELEASE:=$(UTSREL)
endif

ifeq ($(UTSSYS),irix) 
  MACHINE:=SGI
endif

ifeq ($(UTSSYS),irix32) 
  MACHINE:=SGI
  UTSSYS:=irix 
endif

ifeq ($(UTSSYS),irix64) 
  MACHINE:=SGI
  UTSSYS:=irix 
endif

ifeq (hpux,$(UTSSYS))
  SYSTEM:=hpux
  MACHINE:=hppa
endif

VMBUILD:=	$(MACHINE)-$(SYSTEM)-$(RELEASE)
VMARCH:=	$(VMBUILD)

############################################################################
#									   #
#			START OF CONFIGURATION SECTION			   #
#									   #
ifeq ($(SYSTEM),					linux)
  CC=		gcc
  CCFLAGS:=	-O2 -g $(PROFILE) # -fomit-frame-pointer
ifeq ($(UTSMAC),i386)
  CCFLAGS+=	-malign-functions=2 -malign-jumps=3 -malign-loops=2
endif
  LDO=		ld -r
  LD=		gcc -rdynamic
  LDFLAGS:=	 $(PROFILE)
  LIBDIRS=	-L/usr/X11R6/lib
  LIBS=		-lX11 -lXext -lm -ldl
  GNU=		gnu-
  GAWK=		awk
endif

ifeq ($(SYSTEM),					freebsd)
  CC=		gcc
  CCFLAGS:=	-O3 -fexpensive-optimizations -fomit-frame-pointer $(PROFILE)
  INCDIRS:=	-I/usr/X11R6/include
  LDO=		ld -r
  LD=		gcc
  LDFLAGS:=	$(PROFILE)
  LIBDIRS=	-L/usr/X11R6/lib
  LIBS=		-lX11 -lXext -lm
  GNU=		gnu-
  GAWK=		awk
endif

ifeq ($(MACHINE)-$(SYSTEM),				alpha-osf1)
  CC=		$(UTIL)decgcc
  CCFLAGS:=	-O2 -g $(PROFILE)
  LDO=		ld -taso -r
  LD=		cc
  LDFLAGS:=	-taso $(PROFILE)
  LIBS=		-lX11 -lXext -lm
  GNU=		gnu-
  GAWK=		gawk
endif

ifeq ($(MACHINE)-$(SYSTEM),				sparc-solaris)
  CC=		gcc
  CCFLAGS:=	-O2 -g $(PROFILE)
  INCDIRS=	-I/usr/openwin/include
  LDO=		ld -r
  LD=		gcc
  LDFLAGS:=	$(PROFILE)
  LIBDIRS=	-L/usr/openwin/lib
  LIBS=		-lX11 -lXext -lm -lsocket -lnsl -ldl
  GNU=		gnu-
  GAWK=		gawk
endif

ifeq ($(MACHINE)-$(SYSTEM),				sparc-sunos)
  CC=		gcc
  CCFLAGS:=	-O2 -g $(PROFILE)
  LDO=		ld -r
  LD=		gcc
  LDFLAGS:=	$(PROFILE)
  LIBS=		-lX11 -lXext -lm -ldl
  GNU=		gnu-
  GAWK=		gawk
endif

ifeq ($(MACHINE)-$(SYSTEM),				hppa-hpux)
  CC=		gcc
  CCFLAGS:=	-O6 -g $(PROFILE)
  LDO=		ld -r
  LD=		gcc
  LDFLAGS:=	$(PROFILE)
  LIBS=		-lX11 -lXext -lm -ldl
  GNU=		gnu-
  GAWK=		gawk
endif

ifeq ($(SYSTEM),					irix) 
  CC=		cc -n32 -mips3
  CCFLAGS:=	-O3 -OPT:Olimit=4000 $(PROFILE) 
  LDO=		ld -n32 -mips3 -r
  LD=		cc
  LDFLAGS=	-n32 -mips3 $(PROFILE) 
  LIBS=		-lX11 -lXext -lm -ldl
  GNU=
  GAWK=
endif
#									   #
#		 	END OF CONFIGURATION SECTION			   #
#									   #
############################################################################

override \
CFLAGS+= $(CCFLAGS) $(INCDIRS) $(patsubst %,-I%,$(subst :, ,$(VPATH)))

ifeq ($(VMGEN),translator.c)
  override CFLAGS+= -DCCACHE
endif

# sanity checkpoint

ifndef LDO
error:
	@echo
	@echo "  there is no configuration for $(VMARCH)"		>&2
	@echo "  please add one to the file $(SQUEAKCONF)"		>&2
	@echo "  and then email your additions to: $(SQUEAKLIST)"	>&2
	@echo
	@exit 42
endif
