# Configuration for SunOS 5, with gcc

include $(TOP)/configs/default

CONFIG_NAME = sunos5-gcc

# Compiler and flags
CC = gcc
CXX = g++

WARN_FLAGS = -Wall
OPT_FLAGS  = -O3 -g -fomit-frame-pointer -pipe
PIC_FLAGS  = -fPIC

ARCH_FLAGS ?=

DEFINES = -D_REENTRANT -DUSE_XSHM

ASM_SOURCES = $(SPARC_SOURCES)
ASM_API = $(SPARC_API)
ASM_FLAGS = -DUSE_SPARC_ASM

CFLAGS   = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
	$(ASM_FLAGS) -std=c99 -ffast-math -I/usr/openwin/include

CXXFLAGS = $(WARN_FLAGS) $(OPT_FLAGS) $(PIC_FLAGS) $(ARCH_FLAGS) $(DEFINES) \
	-I/usr/openwin/include

GLUT_CFLAGS = -fexceptions -DSOLARIS_2_4_BUG

# Library/program dependencies
EXTRA_LIB_PATH=-L/usr/openwin/lib

GL_LIB_DEPS = $(EXTRA_LIB_PATH) -lX11 -lXext -lXmu -lXi -lm
GLUT_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLU_LIB) -l$(GL_LIB) -lm
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -lX11 -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -lm
