Make.proto
author Claus Gittinger <cg@exept.de>
Tue, 27 Jan 1998 22:37:35 +0100
changeset 2026 96c7d46da2ae
parent 1955 0991c22498c9
child 2055 f72ab31d05c3
permissions -rw-r--r--
*** empty log message ***

# $Header: /cvs/stx/stx/libview/Make.proto,v 1.90 1998-01-27 21:37:35 cg Exp $
#
# -------------- no need to change anything below ----------

TOP=..
SUBDIRS=

LIBNAME=libview
SMALLLIBNAME=libview_small
STCOPT=$(LIBVIEW_STCOPT)
ZFLAG=-varPrefix=$(LIBNAME)
STCLOCALOPT='-package=stx:libview' $(COMMONSYMBOLS) $(SEPINITCODE) $(ZFLAG)
LINKOBJRULE=$(SEPINITLINKOBJRULE)

LOCALDEFS=-I$(XINCLUDE) $(XDEFS) $(CC_3D_FLAGS)

RCSSOURCES=*.st Make.proto styles/*.style resources/*.rs

DELIVERBINARIES=lib*.o lib*.a lib*.so $(LIBVIEW_EXTRA_TARGETS)

all::       abbrev.stc objs $(NOTINLIBOBJS) autoloadList.stc classList.stc $(OBJTARGET) $(LIBVIEW_EXTRA_TARGETS) GENLIBLIST

#
# although all files are compiled here,
# not everything goes into the target library
#
LINKOBJS=$(LIBOBJS)

#
# also, those objects are not to be placed into the liblist
#
patchLiblist::
	grep -v $(WORKSTAT1) < liblist.stc | grep -v $(WORKSTAT2) > ttt
	mv ttt liblist.stc

SMALLOBJFILES= \
	    GraphicsDevice.$(O) \
	    HostGraphicsDevice.$(O) \
	    DevWorkst.$(O) \
	    Image.$(O) \
	    Depth1Image.$(O) Depth2Image.$(O) Depth4Image.$(O) \
	    Depth8Image.$(O) Depth24Image.$(O) \
	    ImageRdr.$(O)

NOTINLIBOBJS= \
	    $(WORKSTAT1).$(O) \
	    $(WORKSTAT2).$(O)

REQUIREDOBJS=                                             \
	    GraphicsDevice.$(O)                           \
	    HostGraphicsDevice.$(O)                       \
	    DevWorkst.$(O)                                \
	    Image.$(O)                                    \
	      Depth1Image.$(O)                            \
	      Depth2Image.$(O)                            \
	      Depth4Image.$(O)                            \
	      Depth8Image.$(O)                            \
	      Depth24Image.$(O)                           \
	    ImageRdr.$(O)

#
# those can be compiled for space - not time critical
#
UNCRITICALOBJS= \
	  KeybdFwd.$(O)                         \
	  WEvent.$(O)                           \
	  KeybdMap.$(O)                         \
	  RsrcPack.$(O)                         \
	  ViewStyle.$(O)                        \
	  DRootView.$(O)                        \
	  TopView.$(O)                          \
	  StdSysV.$(O)                          \
	  ModalBox.$(O)                         \
	  WGroup.$(O)                           \
	  WSensor.$(O)                          \
	  Workstat.$(O)                         \
	  AlphaMask.$(O)

LIBOBJS= \
	  $(REQUIREDOBJS)                       \
	    Workstat.$(O)                       \
	    Color.$(O)                          \
	    Colormap.$(O)                       \
	    FontDescr.$(O)                      \
	      Font.$(O)                         \
	    Cursor.$(O)                         \
	    DevHandle.$(O)                      \
	    GC.$(O)                             \
	      DevGC.$(O)                        \
	      GMedium.$(O)                      \
		  Form.$(O)                     \
		  DSurface.$(O)                 \
		    SimpleView.$(O)             \
		      View.$(O)                 \
			TopView.$(O)            \
			  StdSysV.$(O)          \
			    ModalBox.$(O)       \
			  PopUpView.$(O)        \
			ShadowV.$(O)            \
		      DRootView.$(O)            \
	    Controll.$(O)                       \
	    WTrans.$(O)                         \
	    WEvent.$(O)                         \
	    WGroup.$(O)                         \
	    WSensor.$(O)                        \
	      SWSensor.$(O)                     \
	    KeybdFwd.$(O)                       \
	    KeybdMap.$(O)                       \
	    RsrcPack.$(O)                       \
	      ViewStyle.$(O)                    \
	    Depth16Image.$(O)                   \
	    Depth32Image.$(O)                   \
	    ImageMask.$(O)                      

OBJS = \
	  $(LIBOBJS)                            \
	  $(MOREOBJS)                           \
	  $(NOTINLIBOBJS)

smalllib:
	    @-rm classList.stc
	    $(MAKE) objs        \
		 LIBNAME=$(SMALLLIBNAME) \
		 OBJS="$(REQUIREDOBJS)" \
		 LINKOBJS="$(SMALLOBJFILES)" \
		 GENCLASSLIST_RULE=genClassList_new
	    $(MAKE) classList.stc \
		 GENCLASSLIST_RULE=genClassList_new \
		 LIBNAME=$(SMALLLIBNAME) \
		 OBJS="$(REQUIREDOBJS)" \
		 LINKOBJS="$(SMALLOBJFILES)"
	    $(MAKE) obj$(TARGET_RULE_EXTENSION) \
		 LIBNAME=$(SMALLLIBNAME) \
		 OBJS="$(REQUIREDOBJS)" \
		 LINKOBJS="$(SMALLOBJFILES)" \
		 GENCLASSLIST_RULE=genClassList_new
	    @-rm classList.stc

#
# NXWorkstation, XWorkstation and GLXWorkstation are not included in
# the classLibrary (but as extra objects)
#
specialClassList:
	    $(MAKE) $(GENCLASSLIST_RULE) GENCLASSLIST_RULE=$(GENCLASSLIST_RULE) LIBNAME=$(LIBNAME) OBJS="$(OBJS)" LINKOBJS="$(LINKOBJS)"
	    @grep -v $(WORKSTAT1) < classList.stc > ttt
	    @mv ttt classList.stc
	    @grep -v $(WORKSTAT2) < classList.stc > ttt
	    @mv ttt classList.stc

CLASSLISTRULE=specialClassList

cleanjunk::
	    -rm -f *.c *.H

clean::
	    -mv XWorkstat.o __XWorkstat.o
	    -mv GLXWorkstat.o __GLXWorkstat.o
	    -rm -f [A-Z]*.o *.c *.H
	    -mv __XWorkstat.o XWorkstat.o
	    -mv __GLXWorkstat.o GLXWorkstat.o

clobber::
	    -rm -f *.c *.H classList.stc abbrev.stc

tar:
	(cd $(TOP); tar cvfh DISTRIB/libview.tar \
				libview/.dir.info \
				libview/*.st \
				libview/Make.proto \
				libview/styles/.dir.info \
				libview/styles/*.style \
				libview/styles/*.common \
				libview/resources/*.rs)

#
# special BIG-rule (kludge for HP / ibm)
#

#
# also, XWorkstat and GLXWorkstat are separate (shared) Objects - compile without sepInitCode 
# and without -Zlibview (to speedup ld.so on SGI, by avoiding conflicts)
#

XWorkstat.$(O):
	$(MAKE) $(BIG_STFILE_RULE) BIG_FILE=XWorkstat CC=$(CC) OPT="$(OPT)" SEPINITCODE=-sepInitCode ZFLAG=

GLXWorkstat.$(O):
	$(MAKE) $(BIG_STFILE_RULE) BIG_FILE=GLXWorkstat CC=$(CC) OPT="$(OPT)" \
		SEPINITCODE=-sepInitCode ZFLAG=
	mv GLXWorkstat.$(O) __GLXWorkstat.$(O)
	ld $(LD_REL_FLAG) -o GLXWorkstat.$(O) __GLXWorkstat.$(O) $(LIB_GL)
	rm __GLXWorkstat.$(O)

DevWorkst.$(O):
	$(MAKE) $(BIG_STFILE_RULE) BIG_FILE=DevWorkst CC=$(CC) OPT="$(OPT)" SEPINITCODE="$(SEPINITCODE)"

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

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

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

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

#ogl:
#       $(MAKE) OGLWorkstat.o XDEFS="-DOPENGL -I$(VOGL_DIR) -DSHAPE" SEPINITCODE=-sepInitCode ZFLAG=
#       mv OGLWorkstat.o ttt.o
#       ld -r -o OGLWorkstat.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) GC.$(O)
#       $(MAKE) DevGC.$(O)
#       $(MAKE) OPT= DevWorkst.$(O)
#       $(MAKE) OPT= XWorkstat.$(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) DevWorkst.$(O)
	$(MAKE) aix_exports LIBNAME=XWorkstat ENTRY=XWorkstation
	@-echo "__XErrorHandler__" >> XWorkstat.exp
	@-echo "__XIOErrorHandler__" >> XWorkstat.exp
	$(MAKE) XWorkstat$(O_EXT) \
		ENTRY_INIT=XWorkstation \
		AIX_LOCAL_LIBS="$(LIBX)"

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

AIX::
	$(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=DevGC CC=$(CC) OPT="$(OPT)"

#
# install the extra objects
#
qinstall::  $(DESTLIBDIR)
	    if [ "$(WORKSTAT1)"x != "x" ]; then                  \
		$(INSTALL_LIB) $(WORKSTAT1).$(O) $(DESTLIBDIR);      \
	    fi
	    if [ "$(WORKSTAT2)"x != "$(WORKSTAT1"x ]; then      \
		if [ "$(WORKSTAT2)"x != "x" ]; then             \
		    $(INSTALL_LIB) $(WORKSTAT2).$(O) $(DESTLIBDIR); \
		fi                                              \
	    fi

# BEGINMAKEDEPEND --- do not remove this line; make depend needs it 
ActiveHelp.$(O): ActiveHelp.st $(STCHDR) ../include/EventListener.H ../include/Object.H
ActiveHelpView.$(O): ActiveHelpView.st $(STCHDR) ../include/View.H ../include/SimpleView.H ../include/DSurface.H ../include/DevGC.H ../include/GMedium.H ../include/GC.H ../include/Object.H
Color.$(O): Color.st $(STCHDR) ../include/Object.H
Colormap.$(O): Colormap.st $(STCHDR) ../include/SeqColl.H ../include/Coll.H ../include/Object.H
ContrWMenu.$(O): ContrWMenu.st $(STCHDR) ../include/Controll.H ../include/Object.H
Controll.$(O): Controll.st $(STCHDR) ../include/Object.H
Cursor.$(O): Cursor.st $(STCHDR) ../include/Object.H
DObject.$(O): DObject.st $(STCHDR) ../include/Object.H
DRootView.$(O): DRootView.st $(STCHDR) ../include/DSurface.H ../include/DevGC.H ../include/GMedium.H ../include/GC.H ../include/Object.H
DSurface.$(O): DSurface.st $(STCHDR) ../include/DevGC.H ../include/GMedium.H ../include/GC.H ../include/Object.H
Depth1Image.$(O): Depth1Image.st $(STCHDR) ../include/Image.H ../include/Object.H
ImageMask.$(O): ImageMask.st $(STCHDR) ../include/Depth1Image.H
Depth24Image.$(O): Depth24Image.st $(STCHDR) ../include/Image.H ../include/Object.H
Depth2Image.$(O): Depth2Image.st $(STCHDR) ../include/Image.H ../include/Object.H
Depth4Image.$(O): Depth4Image.st $(STCHDR) ../include/Image.H ../include/Object.H
Depth8Image.$(O): Depth8Image.st $(STCHDR) ../include/Image.H ../include/Object.H
AlphaMask.$(O): AlphaMask.st $(STCHDR) ../include/Depth8Image.H
Depth16Image.$(O): Depth16Image.st $(STCHDR) ../include/Image.H ../include/Object.H
DevGC.$(O): DevGC.st $(STCHDR) ../include/Object.H
DevHandle.$(O): DevHandle.st $(STCHDR) ../include/Object.H
DevWorkst.$(O): DevWorkst.st $(STCHDR) ../include/Object.H
Font.$(O): Font.st $(STCHDR) ../include/FontDescr.H ../include/Object.H
FontDescr.$(O): FontDescr.st $(STCHDR) ../include/Object.H
Form.$(O): Form.st $(STCHDR) ../include/DevGC.H ../include/GMedium.H ../include/GC.H ../include/Object.H
GC.$(O): GC.st $(STCHDR) ../include/Object.H
GLXWorkstat.$(O): GLXWorkstat.st $(STCHDR) ../include/XWorkstat.H ../include/DevWorkst.H ../include/Object.H
GMedium.$(O): GMedium.st $(STCHDR) ../include/Object.H
GraphAttr.$(O): GraphAttr.st $(STCHDR) ../include/Object.H
GraphicsDevice.$(O): GraphicsDevice.st $(STCHDR) ../include/Object.H
HostGraphicsDevice.$(O): HostGraphicsDevice.st $(STCHDR) ../include/Object.H
HersheyFont.$(O): HersheyFont.st $(STCHDR) ../include/Font.H ../include/FontDescr.H ../include/Object.H
Image.$(O): Image.st $(STCHDR) ../include/Object.H
ImageRdr.$(O): ImageRdr.st $(STCHDR) ../include/Object.H
InputView.$(O): InputView.st $(STCHDR) ../include/SimpleView.H ../include/DSurface.H ../include/DevGC.H ../include/GMedium.H ../include/GC.H ../include/Object.H
KeybdFwd.$(O): KeybdFwd.st $(STCHDR) ../include/Object.H
KeybdMap.$(O): KeybdMap.st $(STCHDR) ../include/IdDict.H ../include/Dict.H ../include/Set.H ../include/Coll.H ../include/Object.H
ModalBox.$(O): ModalBox.st $(STCHDR) ../include/StdSysV.H ../include/TopView.H ../include/View.H ../include/SimpleView.H ../include/DSurface.H ../include/DevGC.H ../include/GMedium.H ../include/GC.H ../include/Object.H
Model.$(O): Model.st $(STCHDR) ../include/Object.H
NXWorkst.$(O): NXWorkst.st $(STCHDR) ../include/DevWorkst.H ../include/Object.H
NewGC.$(O): NewGC.st $(STCHDR) ../include/Object.H
OGLWorkstat.$(O): OGLWorkstat.st $(STCHDR) ../include/XWorkstat.H ../include/DevWorkst.H ../include/Object.H
PopUpView.$(O): PopUpView.st $(STCHDR) ../include/TopView.H ../include/View.H ../include/SimpleView.H ../include/DSurface.H ../include/DevGC.H ../include/GMedium.H ../include/GC.H ../include/Object.H
RsrcPack.$(O): RsrcPack.st $(STCHDR) ../include/Dict.H ../include/Set.H ../include/Coll.H ../include/Object.H
SWSensor.$(O): SWSensor.st $(STCHDR) ../include/Object.H
ShadowV.$(O): ShadowV.st $(STCHDR) ../include/SimpleView.H ../include/DSurface.H ../include/DevGC.H ../include/GMedium.H ../include/GC.H ../include/Object.H
SimpleView.$(O): SimpleView.st $(STCHDR) ../include/Object.H
StdSysC.$(O): StdSysC.st $(STCHDR) ../include/Controll.H ../include/Object.H
StdSysV.$(O): StdSysV.st $(STCHDR) ../include/TopView.H ../include/View.H ../include/SimpleView.H ../include/DSurface.H ../include/DevGC.H ../include/GMedium.H ../include/GC.H ../include/Object.H
TopView.$(O): TopView.st $(STCHDR) ../include/View.H ../include/SimpleView.H ../include/DSurface.H ../include/DevGC.H ../include/GMedium.H ../include/GC.H ../include/Object.H
View.$(O): View.st $(STCHDR) ../include/SimpleView.H ../include/DSurface.H ../include/DevGC.H ../include/GMedium.H ../include/GC.H ../include/Object.H
ViewStyle.$(O): ViewStyle.st $(STCHDR) ../include/RsrcPack.H ../include/Dict.H ../include/Set.H ../include/Coll.H ../include/Object.H
WEvent.$(O): WEvent.st $(STCHDR) ../include/Object.H
WGroup.$(O): WGroup.st $(STCHDR) ../include/Object.H
WSensor.$(O): WSensor.st $(STCHDR) ../include/Object.H
WTrans.$(O): WTrans.st $(STCHDR) ../include/Object.H
WinBuilder.$(O): WinBuilder.st $(STCHDR) ../include/Object.H
Workstat.$(O): Workstat.st $(STCHDR) ../include/Object.H
XWorkstat.$(O): XWorkstat.st $(STCHDR) ../include/DevWorkst.H ../include/Object.H
# ENDMAKEDEPEND --- do not remove this line