stx_libview.st
author Stefan Vogel <sv@exept.de>
Tue, 16 Jan 2007 14:01:05 +0100
changeset 4708 bc402f998df4
parent 4703 28b68151a757
child 4746 aae1452d63a8
permissions -rw-r--r--
automatic checkIn

"{ Package: 'stx:libview' }"

LibraryDefinition subclass:#stx_libview
	instanceVariableNames:''
	classVariableNames:''
	poolDictionaries:''
	category:'* Projects *'
!


!stx_libview class methodsFor:'description - compilation'!

additionalDefinitions_bc_dot_mak
    ^ '
# see stdHeader_bc for LIBVIEW_BASE
LIB_BASE_LD_ARG=-b:$(LIBVIEW_BASE)
'
!

additionalRules_make_dot_proto
    ^ '#
# XWorkstatation and GLXWorkstatation are separate (shared) Objects - compile without sepInitCode
# and without -Zlibview (to speedup ld.so on SGI, by avoiding conflicts)
#

XWorkstation.$(O): XWorkstation.st $(INCLUDE_TOP)/stx/libview/DeviceWorkstation.H $(INCLUDE_TOP)/stx/libview/HostGraphicsDevice.H $(INCLUDE_TOP)/stx/libview/GraphicsDevice.H
        $(MAKE) $(BIG_STFILE_RULE) BIG_FILE=XWorkstation \
                CC="$(CC)" OPT="$(OPT)" \
                CLASSLIB_CC="$(CLASSLIB_CC)" \
                CLASSLIB_OPT="$(CLASSLIB_OPT) -primitiveStackSize=64000" \
                SEPINITCODE=-sepInitCode ZFLAG=

xw:
        $(MAKE) XWorkstation.c \
                CC="$(CC)" OPT="$(OPT)" \
                CLASSLIB_CC="$(CLASSLIB_CC)" \
                CLASSLIB_OPT="$(CLASSLIB_OPT) -primitiveStackSize: 64000 -V" \
                SEPINITCODE=-sepInitCode ZFLAG=

XWorkstation.$(SO): XWorkstation.$(O)
        $(MAKE) $(SHAREDLIBRULE) LIB=XWorkstation.$(SO) OBJS="XWorkstation.$(O)" LOCAL_SHARED_LIBS="-L$(X_LIB_DIR) $(LIB_XT) $(LIB_X)"


__GLXWorkstation.$(O): GLXWorkstation.st $(INCLUDE_TOP)/stx/libview/XWorkstation.H $(INCLUDE_TOP)/stx/libview/DeviceWorkstation.H $(INCLUDE_TOP)/stx/libview/HostGraphicsDevice.H $(INCLUDE_TOP)/stx/libview/GraphicsDevice.H $(INCLUDE)/stc.h
        $(MAKE) $(BIG_STFILE_RULE) BIG_FILE=GLXWorkstation \
                CC="$(CC)" OPT="$(OPT)" \
                CLASSLIB_CC="$(CLASSLIB_CC)" CLASSLIB_OPT="$(CLASSLIB_OPT)" \
                SEPINITCODE=-sepInitCode ZFLAG=
        mv GLXWorkstation.$(O) __GLXWorkstation.$(O)

GLXWorkstation.$(O): glLib __GLXWorkstation.$(O)
        @if [ "$(NO_PRELINK_LIBGL)" = "" ]; \
        then\
            echo $(CLASSLIB_LD) $(LD_REL_FLAG) -o GLXWorkstation.$(O) __GLXWorkstation.$(O) $(LIB_GL); \
            $(CLASSLIB_LD) $(LD_REL_FLAG) -o GLXWorkstation.$(O) __GLXWorkstation.$(O) $(LIB_GL); \
        else \
            echo cp __GLXWorkstation.$(O) GLXWorkstation.$(O); \
            cp __GLXWorkstation.$(O) GLXWorkstation.$(O); \
        fi

glLib:
        @-if [ -d ../support/VGL ]; then \
            (cd ../support/VGL ; $(MAKE) ) ; \
        fi

DeviceWorkstation.$(O):
        $(MAKE) $(BIG_STFILE_RULE) BIG_FILE=DeviceWorkstation \
                CC="$(CC)" OPT="$(OPT)" SEPINITCODE="$(SEPINITCODE)" \
                CLASSLIB_CC="$(CLASSLIB_CC)" CLASSLIB_OPT="$(CLASSLIB_OPT)"

SimpleView.$(O):
        $(MAKE) $(BIG_STFILE_RULE) BIG_FILE=SimpleView \
                CC="$(CC)" OPT="$(OPT)" SEPINITCODE="$(SEPINITCODE)" \
                CLASSLIB_CC="$(CLASSLIB_CC)" CLASSLIB_OPT="$(CLASSLIB_OPT)"

Image.$(O):
        $(MAKE) $(BIG_STFILE_RULE) BIG_FILE=Image \
                CC="$(CC)" OPT="$(OPT)" SEPINITCODE="$(SEPINITCODE)" \
                CLASSLIB_CC="$(CLASSLIB_CC)" CLASSLIB_OPT="$(CLASSLIB_OPT)"

#OGLWorkstation.$(O): OGLWorkstation.st
#       $(MAKE) $(BIG_STFILE_RULE) BIG_FILE=OGLWorkstation CC=$(CC) OPT="$(OPT)" \
#               XDEFS="-DOPENGL -I$(MESA_DIR)/include" SEPINITCODE=-sepInitCode ZFLAG=
#       $(CLASSLIB_LD) -r -o ttt.$(O) OGLWorkstation.$(O) \
#               $(MESA_DIR)/lib/libMesaGL.a \
#               $(MESA_DIR)/lib/libMesaGLU.a \
#               $(MESA_DIR)/lib/libMesaaux.a
#       mv ttt.$(O) OGLWorkstation.$(O)

OGLWorkstation.$(O): GLXWorkstation.st
        cp GLXWorkstation.st OGLWorkstation.st
        $(MAKE) $(BIG_STFILE_RULE) BIG_FILE=OGLWorkstation \
                CC="$(CC)" OPT="$(OPT)" \
                CLASSLIB_CC="$(CLASSLIB_CC)" CLASSLIB_OPT="$(CLASSLIB_OPT)" \
                CC_VOGL_FLAGS="$(CC_MESA_INCLUDE) -DOPENGL -DMESA -UVGL -UGLX"\
                SEPINITCODE=-sepInitCode ZFLAG=
        $(CLASSLIB_LD) -r -o ttt.$(O) OGLWorkstation.$(O) \
                $(MESA_DIR)/lib/libMesaGL.a \
                $(MESA_DIR)/lib/libMesaGLU.a \
                $(MESA_DIR)/lib/libMesaaux.a
        mv ttt.$(O) OGLWorkstation.$(O)
        rm -f OGLWorkstation.st

#ogl:
#       $(MAKE) OGLWorkstation.o XDEFS="-DOPENGL -I$(VOGL_DIR) -DSHAPE" SEPINITCODE=-sepInitCode ZFLAG=
#       mv OGLWorkstation.o ttt.o
#       $(CLASSLIB_LD) -r -o OGLWorkstation.o ttt.o \
#               $(TOP)/support/MESA/Mesa1.2.5/lib/libMesaGL.a   \
#               $(TOP)/support/MESA/Mesa1.2.5/lib/libMesaGLU.a  \
#               $(TOP)/support/MESA/Mesa1.2.5/lib/libMesaaux.a  \
#               /lib/libc.so.4

#
# on my 320H, do not compile DeviceWorkstation with -O2;
# compiler is running out of space ...
#
#AIX_BIGGIES:
#       $(MAKE) GraphicsContext.$(O)
#       $(MAKE) DeviceGraphicsContext.$(O)
#       $(MAKE) OPT= DeviceWorkstation.$(O)
#       $(MAKE) OPT= XWorkstation.$(O)
#       $(MAKE) OPT= Image.$(O)
#       $(MAKE) OPT= SimpleView.$(O)

#
# prelink those - cannot mix non-shared with shared objects (sigh)
#
AIX_SHARED_XWORKSTATION:
        $(MAKE) GraphicsDevice.$(O) HostGraphicsDevice.$(O) DeviceWorkstation.$(O)
        $(MAKE) aix_exports LIBNAME=XWorkstation ENTRY=XWorkstation
        @-echo "__XErrorHandler__" >> XWorkstation.exp
        @-echo "__XIOErrorHandler__" >> XWorkstation.exp
        $(MAKE) XWorkstation$(O_EXT) \
                ENTRY_INIT=XWorkstation \
                AIX_LOCAL_LIBS="$(LIBX)"

AIX_SHARED_GLXWORKSTATION:
        $(MAKE) GraphicsDevice.$(O) HostGraphicsDevice.$(O) DeviceWorkstation.$(O)
        $(MAKE) aix_exports LIBNAME=XWorkstation ENTRY=XWorkstation
        @-echo "__XErrorHandler__" >> XWorkstation.exp
        @-echo "__XIOErrorHandler__" >> XWorkstation.exp
        $(MAKE) GLXWorkstation$(O_EXT) \
                ENTRY_INIT=GLXWorkstation \
                AIX_LOCAL_LIBS="-bI:XWorkstation.exp $(LIB_GL) $(LIBX) -lm"
        rm -f XWorkstation.exp

#
# in (my) aix system, those cannot be compiled with
# the optimizer - running out of space ...
#
AIX::   GraphicsContext.$(O) DeviceGraphicsContext.$(O) GraphicsMedium.$(O) DisplaySurface.$(O)
        $(MAKE) OPT="" SimpleView.$(O)
        $(MAKE) OPT="" Image.$(O)
        $(MAKE) $(AIX_XWORKSTATION_RULE) $(AIX_GLXWORKSTATION_RULE)

#
# on HP, big classes blow the C-preprocessor (stops with "too much defining" error)
#
#HP::
#
#HPbigFiles:
#       $(MAKE) $(BIG_STFILE_RULE) BIG_FILE=Color CC=$(CC) OPT="$(OPT)"
#       $(MAKE) $(BIG_STFILE_RULE) BIG_FILE=DeviceGraphicsContext CC=$(CC) OPT="$(OPT)"
'
!

localDefines_unix
    ^ '-I$(XINCLUDE) $(XDEFS) $(CC_3D_FLAGS)'
! !

!stx_libview class methodsFor:'description - contents'!

classNamesAndAttributes
    ^ #(
	"/ <className> or (<className> attributes...)
	('AlphaMask' #autoload)
	('BitmapFont' #autoload)
	('Border' #autoload)
	'Color'
	'ColorPalette'
	'Colormap'
	('CompoundFont' #autoload)
	'Controller'
	('ControllerWithMenu' #autoload)
	'Cursor'
	'Depth16Image'
	'Depth1Image'
	'Depth24Image'
	'Depth2Image'
	'Depth32Image'
	'Depth4Image'
	'Depth8Image'
	'DeviceGraphicsContext'
	'DeviceHandle'
	'DeviceWorkstation'
	'DisplayRootView'
	'DisplaySurface'
	('FixedPalette' #autoload)
	'Font'
	'FontDescription'
	'Form'
	('GLXWorkstation' #unix)
	('GraphicsAttributes' #autoload)
	'GraphicsContext'
	'GraphicsDevice'
	'GraphicsMedium'
	'HostGraphicsDevice'
	'Image'
	'ImageMask'
	'ImageReader'
	'KeyboardForwarder'
	'KeyboardMap'
	('MDIChildView' #autoload)
	'MappedPalette'
	'ModalBox'
	'MonoMappedPalette'
	('NeXTWorkstation' #autoload)
	'OpenGLConstants'
	'PopUpView'
	'ResourcePack'
	'ShadowView'
	'SimpleView'
	'StandardSystemView'
	'SynchronousWindowSensor'
	'TopView'
	('TranslucentColor' #autoload)
	'View'
	'ViewStyle'
	('WinWorkstation'  #win32)
	('WinPrinter'   #win32)
	'WindowEvent'
	'WindowGroup'
	'WindowSensor'
	'WindowingTransformation'
	('XWorkstation' #unix)
	'stx_libview'
    )

    "Modified: / 14-09-2006 / 11:04:02 / cg"
!

extensionMethodNames
    ^ #(
    )
! !

!stx_libview class methodsFor:'description - files'!

protectedFileNames
    "do NOT overwrite the hand-written Make.proto"

    ^ #( 'Make.proto' )

    "Created: / 14-09-2006 / 14:39:33 / cg"
    "Modified: / 14-09-2006 / 16:15:22 / cg"
! !

!stx_libview class methodsFor:'description - project information'!

companyName
    "Return a companyname which will appear in <lib>.rc"

    ^ 'eXept Software AG'
!

description
    "Return a description string which will appear in nt.def / bc.def"

    ^ 'Smalltalk/X Low Level Graphic Interfacing'

    "Modified: / 14-09-2006 / 10:54:54 / cg"
!

legalCopyright
    "Return a copyright string which will appear in <lib>.rc"

    ^ 'Copyright Claus Gittinger 1988-2006\nCopyright eXept Software AG 1998-2006'
!

productName
    "Return a product name which will appear in <lib>.rc"

    ^ 'Smalltalk/X'
! !

!stx_libview class methodsFor:'documentation'!

version
    ^ '$Header: /cvs/stx/stx/libview/stx_libview.st,v 1.9 2007-01-16 13:01:05 stefan Exp $'
! !