anybody got a working makefile on SGI or Linux that I can look at?
my problem is that everytime I recompile gem and run it I get different errors. am I missing a something in the link stage?
dhomont 36% !! ./pd -lib /usr/LocalApps/pd/gem_new/src/Gem pd: /usr/LocalApps/pd/gem_new/src/Gem.pd_irix6: 24432:./pd: rld: Fatal Error: unresolvable symbol in /usr/LocalApps/pd/gem_new/src/Gem.pd_irix6: class_addbang pd: /usr/LocalApps/pd/gem_new/src/Gem: can't load library dhomont 37% !! ./pd -lib /usr/LocalApps/pd/gem_new/src/Gem pd: /usr/LocalApps/pd/gem_new/src/Gem.pd_irix6: 24481:./pd: rld: Fatal Error: unresolvable symbol in /usr/LocalApps/pd/gem_new/src/Gem.pd_irix6: class_new pd: /usr/LocalApps/pd/gem_new/src/Gem: can't load library pd: exiting dhomont 38% !! ./pd -lib /usr/LocalApps/pd/gem_new/src/Gem pd: /usr/LocalApps/pd/gem_new/src/Gem.pd_irix6: 24417:./pd: rld: Fatal Error: unresolvable symbol in /usr/LocalApps/pd/gem_new/src/Gem.pd_irix6: class_addbang pd: /usr/LocalApps/pd/gem_new/src/Gem: can't load library pd: exiting dhomont 39% !! ./pd -lib /usr/LocalApps/pd/gem_new/src/Gem pd: /usr/LocalApps/pd/gem_new/src/Gem.pd_irix6: 24276:./pd: rld: Fatal Error: unresolvable symbol in /usr/LocalApps/pd/gem_new/src/Gem.pd_irix6: clock_new pd: /usr/LocalApps/pd/gem_new/src/Gem: can't load library pd: exiting
here is my makefile on SGI with egcs (g++): ################################################## # # Makefile for GEM # Graphics Environment for Multimedia # # mark@danks.org # # Copyright (c) 1997-1999 Mark Danks. # For information on usage and redistribution, and for a DISCLAIMER OF ALL # WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution. # # ##################################################
SHELL = /usr/bin/sh
# search path ############# OBJ_DIR = Objects VPATH = ${OBJ_DIR}
# the objects ############# BASE_CORE = CPPExtern.o GemMan.o GemBase.o GemLoadObj.o GemEvent.o BASE_EXT = TextBase.o GemPathBase.o GemShape.o GemGluObj.o GemPixObj.o GemPixDualObj.o sgiimage.o BASE_OBJ = ${BASE_CORE} ${BASE_EXT} UTILS_BASE = Matrix.o GemSetup.o GemState.o GemCache.o GemDag.o UTILS_PIX = GemFuncUtil.o GemPixUtil.o GemPixImageLoad.o GemModelData.o UTILS_OS = GemWinCreateXWin.o UTILS = ${UTILS_BASE} ${UTILS_PIX} ${UTILS_OS}
CONTROLS_A = gemwin.o gemhead.o camera.o CONTROLS_B = gemmouse.o gemtablet.o gemorb.o render_trigger.o CONTROLS = ${CONTROLS_A} ${CONTROLS_B} MANIPS_A = translateXYZ.o scaleXYZ.o rotateXYZ.o colorRGB.o MANIPS_B = rotate.o translate.o scale.o color.o depth.o alpha.o separator.o MANIPS_C = linear_path.o spline_path.o accumrotate.o ortho.o MANIPULATORS = ${MANIPS_A} ${MANIPS_B} ${MANIPS_C} 2DGEOS = square.o triangle.o circle.o text2d.o 3DGEOS = cube.o cone.o sphere.o imageVert.o text3d.o textoutline.o SPEC_GEOS = polygon.o model.o multimodel.o curve.o colorSquare.o GEOS = ${2DGEOS} ${3DGEOS} ${SPEC_GEOS}
MARKEX_A = MarkExSetup.o randomF.o abs.o multiselect.o counter.o hsvrgb.o MARKEX_B = reson.o tripleLine.o average.o vector.o m_control.o strcat.o MARKEX = ${MARKEX_A} ${MARKEX_B}
#NONGEOS = fillback.o world_light.o light.o particle.o NONGEOS = world_light.o light.o
PART_A = part_color.o part_draw.o part_follow.o part_gravity.o PART_B = part_head.o part_killold.o part_killslow.o part_orbitpoint.o PART_C = part_size.o part_source.o part_velcone.o part_velsphere.o PARTICLE = ${PART_A} ${PART_B} ${PART_C}
PIX_GEOS = pix_image.o pix_multiimage.o pix_imageInPlace.o pix_texture.o
PIX_CONTROLS = pix_resize.o pix_draw.o pix_snap.o pix_buf.o pix_zoom.o PIX_MANA = pix_threshold.o pix_gain.o pix_color.o pix_multiply.o PIX_MANB = pix_bitmask.o pix_add.o pix_subtract.o pix_flip.o PIX_MANC = pix_colormatrix.o pix_alpha.o pix_convolve.o pix_composite.o PIX_MAND = pix_coloralpha.o pix_mask.o pix_clearblock.o PIX_MANE = pix_coordinate.o pix_2grey.o pix_invert.o pix_data.o PIX_MANIPS = ${PIX_MANA} ${PIX_MANB} ${PIX_MANC} ${PIX_MAND} ${PIX_MANE}
PIXES = ${PIX_GEOS} ${PIX_CONTROLS} ${PIX_MANIPS}
SGI_SPECIFIC = pix_videoSGI.o pix_indycam.o
OBJ = ${BASE_OBJ} ${UTILS} ${CONTROLS} ${MANIPULATORS}
${GEOS} ${NONGEOS} ${PIXES} ${MARKEX} ${PARTICLE}
SGI_OBJ = ${OBJ} ${SGI_SPECIFIC} LINUX_OBJ = ${OBJ}
# the target ############ # SGI TARGET = ../Gem.pd_irix6 # Linux # TARGET = ../../Gem.pd_linux
# compile flags ############### # compilation targets REL_CC_FLAGS = -DNDEBUG -UDEBUG -O2 DBG_CC_FLAGS = -DDEBUG -g
# AuxLib includes AUXDIR = ../AuxLibs AUXINC_IMG = -I${AUXDIR}/Jpeg -I${AUXDIR}/tiff/libtiff -I${AUXDIR}/liborb AUXINC_POLY = -I${AUXDIR}/gltt -I${AUXDIR}/td -I${AUXDIR}/particle AUXINC = ${AUXINC_IMG} ${AUXINC_POLY} INC_FLAGS = -I. -I.. -I../../../src ${AUXINC} COMP_FLAGS =
# SGI #WARN_FLAGS = -woff 3157,3173 # Linux WARN_FLAGS = -Wall
ALL_CC_FLAGS = ${COMP_FLAGS} ${WARN_FLAGS} ${INC_FLAGS}
#linker flags ############# # AuxLib libraries AUXLIB_IMG = -L/usr/freeware/lib32 -ljpeg -L${AUXDIR}/tiff -ltiff AUXLIB_POLYA = -L/usr/local/lib -lgltt -L/usr/freeware/lib32 -lttf AUXLIB_POLYB = -L${AUXDIR}/td -ltd -L${AUXDIR}/particle -lparticle AUXLIB_POLYC = -L${AUXDIR}/liborb -lorb AUXLIB_POLY = ${AUXLIB_POLYA} ${AUXLIB_POLYB} ${AUXLIB_POLYC} AUXLIB = ${AUXLIB_IMG} ${AUXLIB_POLY}
# SGI LIB = -lX11 -lGLU -lGL -lvl -lm ${AUXLIB} LD_FLAGS = -elf -shared
# Linux #LIB = -lMesaGLU -lMesaGL -lm ${AUXLIB} -lX11 -lXext -ldl #LD_FLAGS = -shared -L/usr/X11R6/lib
all: debug
# debug version #-------------- debug: @echo "\n==========Compiling Debug==========" ${MAKE} Application_objects "CC_FLAGS = ${ALL_CC_FLAGS} ${DBG_CC_FLAGS}" @echo "\n==========Linking Target==========" @${MAKE} ${TARGET}
# release version #---------------- release: @echo "\n==========Compiling Release==========" ${MAKE} Application_objects "CC_FLAGS = ${ALL_CC_FLAGS} ${REL_CC_FLAGS}" @echo "\n==========Linking Target==========" @${MAKE} ${TARGET} @echo "\n==========Striping Target==========" cd ${OBJ_DIR}; strip -f ${TARGET}
# program target ################ # SGI ${TARGET}: ${SGI_OBJ} cd ${OBJ_DIR}; c++ ${LD_FLAGS} -o $@ ${SGI_OBJ} ${LIB}
# Linux #${TARGET}: ${LINUX_OBJ} # cd ${OBJ_DIR}; ld ${LD_FLAGS} -o ${TARGET} ${LINUX_OBJ} ${LIB}
TARG_DIR = Base Geos Nongeos Controls Manips Pixes MarkEx Particles
# make target ############# # SGI MAKE_TARG = sgi
# Linux #MAKE_TARG = all
Application_objects:
@for d in ${TARG_DIR}; do
echo "\n----------$$d----------";
cd $$d ; ${MAKE} ${MAKE_TARG}; cd ..;
done
# helper targets ################ AUX_FILES = gem/GEM.* DOC_FILES = gem/help gem/examples gem/doc SRC_FILES = gem/src BCK_FILES = ${AUX_FILES} ${DOC_FILES} ${SRC_FILES}
backup:
cd ../..; tar cvf GEMbackupC++.tar ${BCK_FILES};
compress GEMbackupC++.tar;
mv GEMbackupC++.tar.Z ~/Backup/
clean: rm ${OBJ_DIR}/*.o
clobber: clean rm ${TARGET} rm Makefile.depend
#--------------------------
# Makedepend targets
#--------------------------
#
# header file dependencies
#---------
depend:
@for d in ${TARG_DIR}; do
echo "==== $$d ====";
cd $$d ; ${MAKE} dependencies 1>/dev/null 2>&1; cd ..;
done
# need a dummy file for Make.depend
#---------
firstTime:
@for d in ${TARG_DIR}; do
cd $$d ; touch Make.depend; cd ..;
done
I thought that maybe my machine is not configured correctly except I can compile everything(pd, Gnome, KDE, other main stream Linux apps) but Gem on it.
thanks m
Michael A. Thompson [IRIX - NeXTStep - Linux - MacOS - Windows]
Home: (940)382-2086 E-Mail: mat0001@jove.acs.unt.edu
the problem seem to be, on linux, newer version of egcs (2.9.x) and also glibc version and with which version of egcs/gcc the glibc was compiled.
the error i get from Gem on load seem to be unitialized variables: undefined symbol: _6GemMan.m_shininess or undefined symbol: _6GemMan.m_windowState
grml
19.ItX_IWZw.540.87 writes:
the problem seem to be, on linux, newer version of egcs (2.9.x) and also glibc version and with which version of egcs/gcc the glibc was compiled.
the error i get from Gem on load seem to be unitialized variables: undefined symbol: _6GemMan.m_shininess or undefined symbol: _6GemMan.m_windowState
This doesn´t look like a library problem, as the undefined symbols should be part of Gem
_6GemMan.m_shininess .. isn´t this m_mat_shininess ???
Could be some compiler problem with static members, as m_mat_shininess and m_windowState both are static ... ???
Guenter
59.xbWR>X_wiT.461.75 writes:
_6GemMan.m_shininess .. isn´t this m_mat_shininess ???
Could be some compiler problem with static members, as m_mat_shininess and m_windowState both are static ... ???
yo, whats the magic cxxflags? ;)
No magic, CFLAGS are called CXXFLAGS with c++ compilers. They currently don´t affect compilation under Linux, but could be changed, if you find some flags that should be added and fix the egcs problem.
Guenter
No magic, CFLAGS are called CXXFLAGS with c++ compilers. They currently don�t affect compilation under Linux, but could be changed, if you find some flags that should be added and fix the egcs problem.
oke, i look into compiler manpage .. or any other suggestions on what the static prblm cld stem from?
the g++ faq sez somethng about "squangling long symbol names" where the assembler can't handle them. one suggested solution is the use of the gnu as, which i m using anyway and i suppose comes with about every linux egcs per defaultem. rhm ...