
# Explicit setting of SHELL - beware since this gets inherited
# by commands invoked by Make

SHELL=/bin/sh
TARGET=generic
ABIDIR=
SYSDIR=
ABICFLAGS=
ABICCFLAGS=
ABILDFLAGS=

# Default rule
all: all-${TARGET}

# The following may be overridden by an equivalent environment variable
# pointing to the root of the WorkShop Visual tree if this Makefile is used
# outside of the WorkShop Visual tree.
VISUROOT=../..
# We assume EPak is installed in the usual X locations
# Modify the following if this is not the case
# GL support is required for View3D - Comment out all the GL_* otherwise
# You might have Mesa GL, in which case use -lMesaGL -lMesaGLU
# These are configurations for linking EPak 3.0
# Make sure EPAK_CFLAGS reflects the widget sets you have generated from XDconfig
# Set EPAK_CFLAGS to include from the following, depending on your chosen integration(s):
#	-DINTEGRATE_EPAK
#	-DINTEGRATE_GRAPHPAK
# 	-DINTEGRATE_EDITTABLE
# 	-DINTEGRATE_VIEW3D
# 	-DINTEGRATE_CHARTOBJECT
# For integrating against EPak 2.5, also put -DOBSOLETE_HIGHLIGHT_BORDER in the EPAK_CFLAGS
# For EPak 2.5, INT is distributed separately, but comes with libMesaGL libMesaGLU in the lib directory
# Configure in -I's and -L's for EPak 2.5 and INT here. The library line should read something like:
# There is no libINTBase.a
#
# -lEPak -lView3D -lINT -lMesaGL -lMesaGLU
#
# Or in some versions, the GraphPak comes separate: it did in my Beta.
#
# -lEPak -lEPak_g -lView3D -lINT -lMesaGL -lMesaGLU
#: system Solaris 32bit Workshop4 Compatible C++
#: default c
# No User Defined Widgets configured
GL_ROOT=$(GLHOME)
GL_INCLUDE_PATH=-I$(GL_ROOT)/
GL_LIBRARY_PATH=-L$(GL_ROOT)/lib
GL_CFLAGS=
GL_LIBRARIES=-L/usr/lib/GLS $(GL_LIBRARY_PATH) -lGLU -lGL
GL_EXTRA_LIBRARIES=
EPAK_ROOT=$(EPAK_DIR)
EPAK_INCLUDE_PATH=-I$(EPAK_ROOT)/include
EPAK_LIBRARY_PATH=-R$(EPAK_ROOT)/lib -L$(EPAK_ROOT)/lib
EPAK_CFLAGS=
EPAK_LIBRARIES=$(EPAK_LIBRARY_PATH) -lEPak -lView3D -lINT -lINTBase
EPAK_EXTRA_LIBRARIES=
MOTIFHOME=/usr/dt
MOTIFINCLUDES=-I${MOTIFHOME}/include
MOTIF_LIB_DIR=${MOTIFHOME}/lib${SYSDIR} -R${MOTIFHOME}/lib${SYSDIR}
MOTIFLIB=${MOTIFHOME}/lib/libXm.so.3
CFLAGS=-O -D_NO_PROTO
LINKER=CC -compat=5 -library=Cstd,Crun -staticlib=Cstd,Crun -norunpath
TMPOBJ=,tmp
CC=cc
XINCLUDES=${MOTIFINCLUDES} -I/usr/openwin/include -I/usr/openwin/include/X11
X11_LIB_DIR=/usr/openwin/lib${SYSDIR} -R/usr/openwin/lib${SYSDIR}
XSYSLIBS=-L${X11_LIB_DIR} -lXmu -lXt -lX11 -lXext -lnsl -lsocket -lgen
UWXSYSLIBS=${XSYSLIBS} -lce -ltt -ldl -liostream
XDFLAGS=-R/usr/openwin/lib -R/usr/dt/lib
ABI1CFLAGS=
ABI1CCFLAGS=-compat=4
ABI1LDFLAGS=
ABI1ABIDIR=/compat-pre5
ABI1SYSDIR=
ABICFLAGS=${ABI1CFLAGS}
ABICCFLAGS=${ABI1CCFLAGS}
ABILDFLAGS=${ABI1LDFLAGS}
SYSDIR=
ABIDIR=/compat-pre5
#: end


# The following should not require modifications
COMBINED_INCLUDE_PATH    = $(EPAK_INCLUDE_PATH) $(GL_INCLUDE_PATH)
COMBINED_LIBRARY_PATH    = $(EPAK_LIBRARY_PATH) $(GL_LIBRARY_PATH)
COMBINED_CFLAGS          = -DINTEGRATE_XDESIGNER $(EPAK_CFLAGS) $(GL_CFLAGS)
COMBINED_LIBRARIES       = $(EPAK_LIBRARIES) $(GL_LIBRARIES)
COMBINED_EXTRA_LIBRARIES = $(EPAK_EXTRA_LIBRARIES) $(GL_EXTRA_LIBRARIES)

XD_CONFIG_SAVE          = EPak.xdc
XD_CONFIG_CODE          = EPak_code.c
XD_CONFIG_CONFIG        = EPak_config.c
XD_CONFIG_STUBS         = EPak_stubs.c
XD_CONFIG_PATCH         = EPak_patch.c
XD_CONFIG_CONVERTER     = Converters.c
XD_CONFIG_PATCH_OBJ     = EPak_patch.o
XD_CONFIG_CONVERTER_OBJ = Converters.o
XD_CONFIG_OBJS          = EPak_code.o EPak_config.o EPak_stubs.o Converters.o

IFLAGS = -Ibuiltin_bitmaps -Ibitmaps -I${VISUROOT}/user_widgets/hdrs -I. $(COMBINED_INCLUDE_PATH)
XDOBJ  = ${VISUROOT}/user_widgets/obj/visu.o ${VISUROOT}/user_widgets/obj/libXpm.a

.c.o:
	rm -f $@
	${CC} -c $(CFLAGS) $(COMBINED_CFLAGS) $(IFLAGS) ${XINCLUDES} $*.c

all-generic: CHECK_EPAK_ENVIRONMENT visu.bin

visu.bin:	$(XDOBJ) $(XD_CONFIG_OBJS) $(XD_CONFIG_PATCH_OBJ)
	${LINKER} -o $(TMPOBJ) $(CFLAGS) $(XDOBJ) $(XD_CONFIG_OBJS) ${XDFLAGS} ${MOTIFLIB} ${COMBINED_LIBRARIES} $(XD_CONFIG_PATCH_OBJ) ${COMBINED_EXTRA_LIBRARIES} ${UWXSYSLIBS} -lm -lc
	mv $(TMPOBJ) $@

CHECK_EPAK_ENVIRONMENT:
	@test -n "$(EPAK_DIR)" || (echo You may need to set \$$EPAK_DIR in the makefile or in your shell environment)

$(XD_CONFIG_CONFIG): $(XD_CONFIG_SAVE)
	@echo "The EPak Config file was not found or is out-of-date. (Re-)Generate using visu_config."

$(XD_CONFIG_CODE) : $(XD_CONFIG_SAVE)
	@echo "The EPak Code file was not found or is out-of-date. (Re-)Generate using visu_config."

$(XD_CONFIG_STUBS): $(XD_CONFIG_SAVE)
	@echo "The EPak Stubs file was not found or is out-of-date. (Re-)Generate using visu_config."

clean:
	-rm -f visu.bin $(XD_CONFIG_OBJS) $(XD_CONFIG_PATCH_OBJ) $(TMPOBJ)


