# Configuration for BeOS
# Written by Philippe Houdoin

include $(TOP)/configs/default

CONFIG_NAME = beos


DEFINES = 	\
	-DBEOS_THREADS 

MACHINE=$(shell uname -m)
ifeq ($(MACHINE), BePC)
	CPU = x86
else
	CPU = ppc
endif

ifeq ($(CPU), x86)
	# BeOS x86 settings

	DEFINES += \
		-DGNU_ASSEMBLER \
		-DUSE_X86_ASM \
		-DUSE_MMX_ASM \
		-DUSE_3DNOW_ASM \
		-DUSE_SSE_ASM
	
	ASM_SOURCES = $(X86_SOURCES)
	ASM_API = $(X86_API)

	CC = gcc
	CXX = g++
	LD = gcc
	
	CFLAGS = \
		-Wall -Wno-multichar -Wno-ctor-dtor-privacy \
		$(DEFINES)

	CXXFLAGS = $(CFLAGS)

	# Work around aliasing bugs - developers should comment this out
	CFLAGS += -fno-strict-aliasing
	CXXFLAGS += -fno-strict-aliasing

	LDFLAGS += -Xlinker

	ifdef DEBUG
		CFLAGS   += -g -O0
		LDFLAGS += -g
		DEFINES += -DDEBUG
	else
		CFLAGS   += -O3
	endif

	GLUT_CFLAGS = -fexceptions

else
	# BeOS PPC settings

	CC = mwcc
	CXX = $(CC)
	LD = mwldppc

	CFLAGS = \
		-w on -requireprotos \
		$(DEFINES)

	CXXFLAGS = $(CFLAGS)

	LDFLAGS += \
		-export pragma \
		-init _init_routine_ \
		-term _term_routine_ \
		-lroot \
		/boot/develop/lib/ppc/glue-noinit.a \
		/boot/develop/lib/ppc/init_term_dyn.o \
		/boot/develop/lib/ppc/start_dyn.o 

	ifdef DEBUG
		CFLAGS   += -g -O0
		CXXFLAGS += -g -O0
		LDFLAGS += -g
	else
		CFLAGS   += -O7
		CXXFLAGS += -O7
	endif

	GLUT_CFLAGS = -fexceptions
endif

# Directories
SRC_DIRS = mesa glu glut/beos
GLU_DIRS = sgi
DRIVER_DIRS = beos
PROGRAM_DIRS = beos samples redbook demos tests

# Library/program dependencies
GL_LIB_DEPS = 
OSMESA_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
GLU_LIB_DEPS =  
GLUT_LIB_DEPS = -lgame -L$(TOP)/$(LIB_DIR) -l$(GL_LIB)
APP_LIB_DEPS = -lbe -L$(TOP)/$(LIB_DIR) -l$(GL_LIB) -l$(GLUT_LIB)