# Configuration for SunOS 4, static libs

include $(TOP)/configs/default

CONFIG_NAME = sunos4-static

# Compiler and flags
CC = acc
CFLAGS = -O -DUSE_XSHM -DSUNOS4
MKLIB_OPTIONS = -static

# Library names (actual file names)
GL_LIB_NAME = libGL.a
GLU_LIB_NAME = libGLU.a
GLUT_LIB_NAME = libglut.a
GLW_LIB_NAME = libGLw.a
OSMESA_LIB_NAME = libOSMesa.a

# Library/program dependencies (static libs don't have dependencies)
GL_LIB_DEPS = 
OSMESA_LIB_DEPS = 
GLU_LIB_DEPS = 
GLUT_LIB_DEPS = 
GLW_LIB_DEPS = 
APP_LIB_DEPS = -L$(TOP)/$(LIB_DIR) -l$(GLUT_LIB) -l$(GLU_LIB) -l$(GL_LIB) -L/usr/X11R6/lib -lX11 -lXext -lXmu -lXt -lXi -lpthread -lm
