--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/makelib/README.md Wed Feb 01 22:20:35 2017 +0000
@@ -0,0 +1,25 @@
+# Makefile library for Smalltalk/X jv-branch
+
+This directory contains makefile definitions for building individual
+Smalltalk/X packages.
+
+
+## Background & Rationale
+
+Essentially this is a replacement for eXept's definitions in
+`stx/configurations`. However, they don't fit Smalltalk/X jv-branch
+needs. In the past, we used to monkey-patch eXept's definitions and tweak
+them here and there, but this lead to a big mess (not a surprise) in
+`rakelib/compile.rake`.
+
+As we want to support more OS/CPU combinations, thing would go rather
+wild and truly messy. Hence we provide our own, starting off with
+eXept's definition. The plan is eventually to clean them up to the point
+we understand how it works and then rewrite build process of individual
+packages to unify *NIX and Windows builds (since Windows now use different
+schema based on ancient, unmaintained Borland make).
+
+It is likely that in a future this directory will also contain make rules
+for actual compilation - stuff now located `stx/rules` (pulled from eXept's
+CVS)
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/makelib/config-linux-i386.make Wed Feb 01 22:20:35 2017 +0000
@@ -0,0 +1,74 @@
+# linux-elf/amd64_mode32: cpu: athlon64 in 32 bit mode os:linux-ELF options: +commonSymbol
+#
+#------------------ start of linux/amd64_mode32 ---------------------
+#
+# $Header: /cvs/stx/stx/configurations/linux-elf/amd64_mode32/defines,v 1.25 2016-03-17 22:32:46 stefan Exp $
+
+include $(MAKELIB_DIR)/config-linux.make
+
+CONF=config-linux-i386
+
+COMMONSYMBOLS=+commonSymbols
+SAVECOMMONSYMBOLS=+saveCommonSymbols
+STCARCHOPT=+sharedLibCode -staticMethods $(COMMONSTCCONFOPT)
+STC_LEXLIB=libfl/libfl_pic.a
+# STC_LEXLIB=-lfl
+
+DEFS=-D__amd64_mode32__ -DELF
+DLDEFS=-DHAS_DLOPEN
+
+
+#
+# ATTENTION: with gcc3.2 fPIC + O6 generates wrong code in stc - sigh
+#
+CCCONFOPT=-m32
+OPT=-fPIC -O2 -fomit-frame-pointer -fno-stack-protector
+# avoid tree-loop-vectorize in librun for now as is makes librun/md5.c segfault
+# also, do not call it tree-loop-vectorize, but combine tree-vectorize
+# and ftree-slp-vectorize for gcc version before 4.9
+# LIBRUN_OPT=$(OPT) -fno-tree-vectorize -ftree-slp-vectorize
+LIBRUN_OPT=-fPIC -O0 -fomit-frame-pointer -fno-stack-protector -fno-tree-vectorize
+AS_CC=as
+AS_CC_CFLAG=
+ASFLAGS=--32
+
+
+# LD=ld -m elf_i386
+# STC_LD=ld -m elf_i386
+STC_LDFLAGS=$(CCCONFOPT) -L/usr/lib -Llib -L/usr/local/lib -L/usr/X11/lib
+CLASSLIB_LD=ld -m elf_i386
+LDFLAGS=$(CCCONFOPT) -Llib -L/usr/local/lib -L/usr/X11/lib -L/usr/lib \
+ -Wl,-rpath,'$$ORIGIN',-rpath,'$$ORIGIN/lib',-rpath,'$$ORIGIN/../lib'
+LD_REL_FLAG=-r
+
+#OPTIONAL_DL_LIB=-ldl
+#OPTIONAL_LIBDL_TARGET=libdld
+
+TARGET_RULE_EXTENSION=_shared
+O_EXT=.so
+# name of object files in binary directory
+BIN_O=.so
+
+MAKE_ZLIB_ARG= -f Makefile.amd64_mode32
+MAKE_BZ2LIB_ARG= -f Makefile.amd64_mode32
+
+# We have problems with FFI as of 2008-12-01
+# Remove the follwoing lines when the problems have been fixed
+#FFI_OBJS=
+#OPTIONAL_HAVE_FFI_ARG=
+#OPTIONAL_FFI_TARGET_IN_LIBRUN=
+# END FFI kludge
+FFI_CFLAGS=$(CCCONFOPT)
+#------------------ end of linux-elf/amd64_mode32 ---------------------
+OPT?=-pipe -fno-omit-frame-pointer -fno-stack-protector -fno-strict-aliasing -fwrapv -fPIC -O -ggdb3
+LIBRUN_OPT?=$(OPT)
+O_RULE=__STANDARD_O_RULE__
+EXTRA_LIBS=-ldl -lX11 -lXext
+
+# Following is a workaround for Debian / Ubuntu boxes.
+#
+ifeq ($(wildcard /usr/lib/i386-linux-gnu/libXft.so),)
+ifeq ($(wildcard /usr/lib/i386-linux-gnu/libXft.so.2),/usr/lib/i386-linux-gnu/libXft.so.2)
+LIB_XFT=-l:libXft.so.2 -l:libfontconfig.so.1
+endif
+endif
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/makelib/config-linux-x86_64.make Wed Feb 01 22:20:35 2017 +0000
@@ -0,0 +1,89 @@
+# linux-elf/x86_64: cpu: x86_64 in 64 bit mode os:linux-ELF options: +commonSymbol
+#
+#------------------ start of linux/x86_64 ---------------------
+#
+# $Header: /cvs/stx/stx/configurations/linux-elf/x86_64/defines,v 1.18 2016-08-29 08:52:44 stefan Exp $
+
+include $(MAKELIB_DIR)/config-linux.make
+
+CONF=config-linux-x86_64
+
+COMMONSYMBOLS=+commonSymbols
+SAVECOMMONSYMBOLS=+saveCommonSymbols
+STCARCHOPT=+sharedLibCode -staticMethods $(COMMONSTCCONFOPT)
+STC_LEXLIB=-lfl
+
+CPU_INTERN_H=cpu_x86_64.h
+
+DEFS=-D__x86_64__
+CCCONFOPT=-m64 -fPIC
+
+DLDEFS=-DHAS_DLOPEN
+
+NOSTDLIB=
+
+LDFLAGS=-Llib -L/usr/local/lib -L/usr/X11/lib \
+ -Wl,-z,now,-Bsymbolic,-rpath,'$$ORIGIN',-rpath,'$$ORIGIN/lib',-rpath,'$$ORIGIN/../lib'
+EXTRA_SHARED_LIBS=-ldl
+
+#
+# ATTENTION: with gcc3.2 fPIC + O6 generates wrong code in stc - sigh
+# gcc toplevel-reorder breaks relative function offset generation (leads to SIGSEGV)
+OPT=-O2 -fno-toplevel-reorder -fno-stack-protector
+
+# workaround for failing longjmp check: undefine FORTIFY_SOURCE, which is enabled by default on Gentoo. Remove when fixed.
+LIBRUN_OPT=-g -O -fno-stack-protector -U_FORTIFY_SOURCE -Wno-comment -Wno-pointer-sign -Wno-unused-variable -Wno-unused-parameter -Wno-unused-label -Wall
+
+#OPTIONAL_DL_LIB=-ldl
+#OPTIONAL_LIBDL_TARGET=libdld
+
+TARGET_RULE_EXTENSION=_shared
+O_EXT=.so
+# name of object files in binary directory
+BIN_O=.so
+
+# We have problems with FFI as of 2008-12-01
+# Remove the follwoing lines when the problems have been fixed
+FFI_OBJS=
+OPTIONAL_HAVE_FFI_ARG=
+OPTIONAL_FFI_TARGET_IN_LIBRUN=
+# END FFI kludge
+
+# LIBJPEG=$(LIBJPEG_DIR)/libjpeg.a
+# LIBJPEG_FOR_COPY=$(LIBJPEG_DIR)/libjpeg.a
+# LIBJPEG_FOR_LINK=$(LIBJPEG_DIR)/libjpeg.a
+
+
+# a netsnmp library
+#
+# if already in /usr/lib:
+# DYNAMIC_LINK_LIB_NETSNMP=-lnetsnmp
+# STATIC_LINK_LIB_NETSNMP=
+# TARGET_LIB_NETSNMP=
+#
+# if a local one should be built and used (for 64bit, no -lrt is needed):
+DYNAMIC_LINK_LIB_NETSNMP=-L$(NETSNMP_LIBDIR)/.libs -L$(NETSNMP_LIBDIR) $(NETSNMP_LIBDIR)/.libs/libnetsnmp.a
+
+
+MATRIXLOCK_DIR=$(TOP)/../exept/setup/ml
+MATRIXLOCK_LIB_ARG=-L$(MATRIXLOCK_DIR)/lib -lmxlin64260
+MATRIXLOCK_SHARED_LIB_ARG=-lusb
+
+#.SUFFIXES: .o .so
+
+#.o.so:
+# @-rm -f $*.so
+# $(LD) -shared $(LDFLAGS) -o $*.so $*.o $(LOCAL_SHARED_LIBS)
+
+#------------------ end of linux-elf/x86_64 ---------------------
+OPT?=-pipe -fno-omit-frame-pointer -fno-stack-protector -fno-strict-aliasing -fwrapv -fPIC -ggdb3
+LIBRUN_OPT?=$(OPT)
+O_RULE=__STANDARD_O_RULE__
+EXTRA_LIBS=-ldl -lX11 -lXext
+MAKE_ZLIB_ARG= "CFLAGS=-fPIC -O3 -DUSE_MMAP"
+FFI_OBJS=$(FFI_DIR)/build/src/*.o $(FFI_DIR)/build/src/x86/*.o
+FFI_DIR=libffi-3.0.10rc8
+OPTIONAL_HAVE_FFI_ARG=-DHAVE_FFI -I$(TOP)/librun/$(FFI_DIR)/build/include
+OPTIONAL_FFI_TARGET_IN_LIBRUN=ffi
+FFI_CC="$(CC) -m64 -fPIC"
+FFI_LD="ld -m elf_x84_64"
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/makelib/config-linux.make Wed Feb 01 22:20:35 2017 +0000
@@ -0,0 +1,268 @@
+#------------------ start of linux-elf/COMMON/defines ---------------------
+#
+# $Header: /cvs/stx/stx/configurations/linux-elf/COMMON/defines,v 1.92 2016-07-19 19:56:46 stefan Exp $
+include $(MAKELIB_DIR)/config.make
+
+CONF_VENDOR=linux
+
+ARCH=linux
+ARCH_NAME=linux_elf
+DISTRIB_NAME=demoLinuxELF
+
+CCARCHCOMMONOPT=-DELF
+#RELOCINSTVARS=+relocInstvars
+
+INTERN_H=linuxIntern.h
+CPU_INTERN_H=cpu_i386.h
+CPUINTERN_H=$(INCLUDE)/linuxIntern.h
+
+MAKEFILE_EXTENSION=linux-elf
+TARGET_RULE_EXTENSION=_shared
+# ALL_TARGET=LINUX_i386_ELF
+
+MAKEFLAGS += --no-print-directory
+MAKE_INCLUDE=include
+INSTALL=install
+INSTALL_BIN_CMD=install -s -m 0755
+INSTALL_SCRIPT_CMD=install -m 0755
+COMPRESSOR=gzip
+COMPRESSED_FILETYPE=targz
+SETUP_RULE=setup_linux
+
+CC=gcc
+
+STC_LEXLIB=
+STC_OPT=-O -fno-stack-protector
+
+# There are problems with -O3 in gcc3.0, gcc3.3, gcc3.3.1
+LIBRUN_OPT=-O2 -fPIC -fomit-frame-pointer -fno-stack-protector
+OS=-DLINUX
+
+FFI_ARCH=x86
+FFI_CFLAGS=
+FFI_DIR=libffi-3.0.10rc8
+FFI_OBJS=$(FFI_DIR)/build/src/*.o $(FFI_DIR)/build/src/x86/*.o
+OPTIONAL_HAVE_FFI_ARG=-DHAVE_FFI -I$(TOP)/librun/$(FFI_DIR)/build/include
+OPTIONAL_FFI_TARGET_IN_LIBRUN=ffi
+FFI_CC="gcc -m32"
+FFI_LD='ld -m elf_i386'
+
+OBJNAME=.o
+BIN_O=.so
+O_EXT=.so
+SA_EXT=.so
+SO_NAME=.so
+
+#
+# use static librt for clock_gettime().
+# dynamic librt causes libpthread to be loaded that does not
+# work with stx' stack layout
+#
+
+OTHERLIBS=-ldl -Wl,-Bstatic,-lrt,-Bdynamic
+OTHERLIBS=-ldl -lrt
+OTHERLIBS=-ldl -lrt -lc
+STATIC_OTHERLIBS=
+LDFLAGS=-Llib -L/usr/local/lib -L/usr/X11/lib \
+ -Wl,-z,now,-rpath,'$$ORIGIN',-rpath,'$$ORIGIN/lib',-rpath,'$$ORIGIN/../lib',--wrap=memcpy
+
+SPECIAL_LIBRUN_RULE=allLINUX
+LIBRUNTARGET=librun.so
+
+FORCE_LINK_LIBRUN=1
+
+# mhm - these should now only be in libview!
+LIBVIEW_EXTRA_TARGETS=$(WORKSTAT1).so $(WORKSTAT2).so
+
+ARCH_LIBSNMP=$(TOP)/libsnmp
+ARCH_CLASSLIBDIRS=$(ARCH_LIBSNMP)
+
+#
+# where are the X libraries if we need them:
+#
+XDEFS=-DSHAPE -DXINERAMA -DXFT -DHAVE_FONTCONFIG
+XINCLUDE+=$(shell pkg-config --cflags xft)
+
+LIB_X=-lX11
+LIB_XEXT=-lXext
+LIB_XT= -lXt
+LIB_XAW=-lXaw
+LIB_XMU=-lXmu
+LIB_XMU=-lXt
+LIB_XINERAMA=-lXinerama
+LIB_XFT=$(shell pkg-config --libs xft)
+
+EXTRA_LIBS= -lX11 -lXext
+STATIC_EXTRA_LIBS= -lX11 -lXext
+
+X_LIB_DIR=/usr/X11/lib
+JPEGLIB_LD_ARG=
+LIBJPEG_DIR=$(TOP)/support/libjpeg-9
+JPEG_INCLUDE=-I$(LIBJPEG_DIR)
+
+LIBJPEG=$(LIBJPEG_DIR)/.libs/libjpeg.a
+LIBJPEG_FOR_COPY=$(LIBJPEG_DIR)/.libs/libjpeg.a
+LIBJPEG_FOR_LINK=$(LIBJPEG_DIR)/.libs/libjpeg.a
+
+#
+# a netsnmp library
+#
+# if already in /usr/lib:
+# DYNAMIC_LINK_LIB_NETSNMP=-lnetsnmp
+# STATIC_LINK_LIB_NETSNMP=
+# TARGET_LIB_NETSNMP=
+#
+# if a local one should be built and used:
+DYNAMIC_LINK_LIB_NETSNMP=-L$(NETSNMP_LIBDIR)/.libs -L$(NETSNMP_LIBDIR) $(NETSNMP_LIBDIR)/.libs/libnetsnmp.a -lrt
+STATIC_LINK_LIB_NETSNMP=
+TARGET_LIB_NETSNMP=snmplib
+
+
+STATIC_LIB_X =$(X_LIB_DIR)/libX11.a
+STATIC_LIB_XEXT=$(X_LIB_DIR)/libXext.a
+STATIC_LIB_XT =$(X_LIB_DIR)/libXt.a
+STATIC_LIB_XAW =$(X_LIB_DIR)/libXaw.a
+STATIC_LIB_XMU =$(X_LIB_DIR)/libXmu.a
+
+# the following defs are for using the system's usb lib (only needed in some apps);
+USB_LIB_DIR=
+USB_LIB_ARG=-lusb
+USB_LIB_DIR_ARG=-L/usr/lib
+USB_MAKE_TARGET=
+
+MATRIXLOCK_DIR=$(TOP)/../exept/setup/ml
+MATRIXLOCK_LIB_ARG=-L$(MATRIXLOCK_DIR)/lib -lmxlin260 -lusb
+
+NOSTDLIB=-nostdlib
+
+#
+# an extra rule for shared objects
+#
+.SUFFIXES: .a .o .so
+# use -nostdlib in combination with -lc -lgcc: we actually use some functions (like fstat) from libc (-lc)
+# and gcc (-lgcc) provides some low level routines that should be around
+.o.so:
+ @-rm -f $*.so
+ $(LD) $(NOSTDLIB) -shared $(LDFLAGS) -o $*.so $*.o $(LOCAL_SHARED_LIBS) $(EXTRA_SHARED_LIBS) -lc -lgcc
+
+.a.so:
+ rm -f $*.so
+ rm -rf tmp.a.so
+ mkdir tmp.a.so
+ cd tmp.a.so; $(AR) x ../$*.a
+ @-rm -f $*.so
+ $(LD) $(NOSTDLIB) -shared $(LDFLAGS) -o $*.so tmp.a.so/*.o $(LOCAL_SHARED_LIBS) $(EXTRA_SHARED_LIBS) -lc -lgcc
+ rm -rf tmp.a.so
+
+SHAREDLIBRULE=linuxSharedLib
+linuxSharedLib:
+ @-rm -f $(LIB)
+ $(LD) $(NOSTDLIB) -shared $(LDFLAGS) -o $(LIB) $(OBJS) $(LOCAL_SHARED_LIBS) $(EXTRA_SHARED_LIBS) -lc -lgcc
+
+#.st.s2:
+# $(STC) $(STCFLAGS) $(CFLAGS) -C $*.st
+# $(CC) $(CFLAGS) -S $*.c
+# @-echo " stripping off useless .align directives ..."
+# sed "/.align 4/d" < $*.s > $*.s2
+
+#.SUFFIXES: .s2 .s3
+#
+#.s2.s3:
+# @-echo " removing useless jumps ..."
+# awk -f $(TOP)/rules/i386.script.awk < $*.s2 > $*.s3
+
+#
+# extra rules for space-optimized/speed-optimized modules modules
+#
+.SUFFIXES: .st .spc .spd
+
+.st.spc:
+ $(MAKE) STC_OPT="$(STC_OPT)" OPT="$(OPT)" STCOPT="$(STCOPT)" STFILE=$* KEEP=y __SPACEOPT_O_RULE__
+
+.st.spd:
+ $(MAKE) STC_OPT="$(STC_OPT)" OPT="$(OPT)" STCOPT="$(STCOPT)" STFILE=$* KEEP=y __SPEEDOPT_O_RULE__
+
+VERYBIG_STFILE_RULE=__VERYBIG_RULE__
+__VERYBIG_RULE__:
+ $(MAKE) $(O_RULE) STFILE=$(BIG_FILE) CC="$(CC)" STC_OPT="$(STC_OPT) -Os" OPT="$(OPT) -Os" SEPINITCODE="$(SEPINITCODE)"
+
+LONGNAME_RULE=__NORMAL_RULE2__
+__NORMAL_RULE2__:
+ $(MAKE) $(O_RULE) STFILE=$(LONGNAME_FILE) CC="$(CC)" STC_OPT="$(STC_OPT)" OPT="$(OPT)" SEPINITCODE="$(SEPINITCODE)"
+
+
+#AWK_VERBOSE=1
+AWK_DIFF=
+AWK_FIX=$(TOP)/rules/i386fixELF.awk
+
+SPACEOPT_O_RULE=__SPACEOPT_O_RULE__
+__SPACEOPT_O_RULE__:
+ @$(MAKE) STC=$(STC) CC=$(CC) STCOPT="$(STCOPT)" SEPINITCODE="$(SEPINITCODE)" $(STFILE).s
+ @-if [ -f $(STFILE).s ]; then \
+ awk -f $(AWK_FIX) < $(STFILE).s > $(STFILE).s2; \
+ if [ "$(AWK_DIFF)" != "" ]; then \
+ diff $(STFILE).s $(STFILE).s2; \
+ fi; \
+ if [ "$(AWK_VERBOSE)" != "" ]; then \
+ echo "# optimized $(STFILE).s -> $(STFILE).s2"; \
+ tail -5 $(STFILE).s2; \
+ echo; \
+ fi; \
+ $(AS) $(ASFLAGS) -o $(STFILE).o $(STFILE).s2; \
+ fi
+ @-if [ -f i_$(STFILE).s ]; then \
+ awk -f $(AWK_FIX) < i_$(STFILE).s > i_$(STFILE).s2; \
+ if [ "$(AWK_DIFF)" != "" ]; then \
+ diff i_$(STFILE).s i_$(STFILE).s2; \
+ fi; \
+ if [ "$(AWK_VERBOSE)" != "" ]; then \
+ echo "# optimized i_$(STFILE).s -> i_$(STFILE).s2"; \
+ tail -5 i_$(STFILE).s2; \
+ echo; \
+ fi; \
+ $(AS) $(ASFLAGS) -o i_$(STFILE).o i_$(STFILE).s2; \
+ fi
+ @if [ "$(KEEP)" != "y" ]; then \
+ rm -f $(STFILE).s $(STFILE).s2 i_$(STFILE).s i_$(STFILE).s2; \
+ fi
+
+
+.SUFFIXES: .st .s2
+
+.st.s2:
+ @$(MAKE) $(SPEEDOPT_O_RULE) STCOPT="$(STCOPT)" KEEP=y STFILE=$* SEPINITCODE="$(SEPINITCODE)"
+
+SPEEDOPT_O_RULE=__SPEEDOPT_O_RULE__
+__SPEEDOPT_O_RULE__:
+ @$(MAKE) STC=$(STC) CC=$(CC) STCOPT="$(STCOPT)" SEPINITCODE="$(SEPINITCODE)" $(STFILE).s
+ @-if [ -f $(STFILE).s ]; then \
+ awk -f $(AWK_FIX) < $(STFILE).s > $(STFILE).s2; \
+ if [ "$(AWK_DIFF)" != "" ]; then \
+ diff $(STFILE).s $(STFILE).s2; \
+ fi; \
+ if [ "$(AWK_VERBOSE)" != "" ]; then \
+ echo "# optimized $(STFILE).s -> $(STFILE).s2"; \
+ tail -5 $(STFILE).s2; \
+ echo; \
+ fi; \
+ $(AS) $(ASFLAGS) -o $(STFILE).o $(STFILE).s2; \
+ fi
+ @-if [ -f i_$(STFILE).s ]; then \
+ awk -f $(AWK_FIX) < i_$(STFILE).s > i_$(STFILE).s2; \
+ if [ "$(AWK_DIFF)" != "" ]; then \
+ diff i_$(STFILE).s i_$(STFILE).s2; \
+ fi; \
+ if [ "$(AWK_VERBOSE)" != "" ]; then \
+ echo "# optimized i_$(STFILE).s -> i_$(STFILE).s2"; \
+ tail -5 i_$(STFILE).s2; \
+ echo; \
+ fi; \
+ $(AS) $(ASFLAGS) -o i_$(STFILE).o i_$(STFILE).s2; \
+ fi
+ @if [ "$(KEEP)" != "y" ]; then \
+ rm -f $(STFILE).s $(STFILE).s2 i_$(STFILE).s i_$(STFILE).s2; \
+ fi
+
+O_RULE=$(SPEEDOPT_O_RULE)
+
+#------------------ end of linux-elf/COMMON/defines ---------------------
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/makelib/config.make Wed Feb 01 22:20:35 2017 +0000
@@ -0,0 +1,1250 @@
+#------------------ start of COMMON/defines ---------------------
+#
+# MIMEType: application/x-make (for editor to knows the comment chars)
+#
+# $Header: /cvs/stx/stx/configurations/COMMON/defines,v 1.136 2016-11-08 09:37:06 cg Exp $
+#
+# NOTICE:
+# all of these definitions can be overwritten in
+# vendor/COMMON/defines
+# and/or in
+# vendor/configuration/defines
+#
+# do not change anything here, but create a new configuration file
+# redefining only things that need to be.
+# Since Makefiles are created by sequentially concatenating
+# the various 'defines'-files, almost everything can be redefined
+
+# This file sets up defaults which fit on most systems -
+# see redefinitions in vendor-define, config-define or individual Make.proto files
+
+#
+# target for local make
+#
+TARGET_DIR=$(TOP)/projects/smalltalk
+
+#-------------
+# optional subPackages
+# can be redefined to empty in concrete packages
+#-------------
+
+OPTIONAL_GOODIES_BENCHMARKS=benchmarks
+OPTIONAL_GOODIES_PATHS=paths
+OPTIONAL_GOODIES_TGEN=tgen
+OPTIONAL_SUPPORT_UTILITIES=
+
+OPTIONAL_LIBJAVA=libjava
+
+# ------------
+# architecture
+# ------------
+
+ARCH=unknown
+
+# -------------
+# how to deploy
+# redefined in mac to "dmg"
+# -------------
+DEPLOY_PACKAGE=tgz
+
+# --------
+# commands
+# --------
+
+SHELL=/bin/sh
+# MAKE is defined implicitly by make or gmake. Do not define here!
+# MAKE=make
+
+# c-compiler to use
+CC=cc
+AS_CC=$(CC)
+AS_CC_CFLAG=-c
+CPP=/lib/cpp
+
+# assembler for librun/asmhelp
+AS=as
+
+# linker for final executable
+LD=$(CC)
+# linker for classlibs
+CLASSLIB_LD=ld
+
+# lex (can be replaced by flex)
+LEX=lex
+
+# yacc (can be replaced by bison)
+YACC=yacc
+
+# librarian
+AR=ar
+AR_LIB_FLAG=r
+RANLIB=ranlib
+
+# symbolic link
+LNS=ln -s
+
+# misc
+STRIP=strip
+DIRNAME=dirname
+#
+# all BSD-based expr-implementations are missing the substring function
+#
+# RIGHTSTR="expr substr"
+RIGHTSTR=$(TOP)/rules/rightstr
+TOUCH=touch
+
+# installer (to bring files to the INSTALLTOPDIR)
+INSTALL=cp
+INSTALL_BIN_CMD=$(INSTALL)
+INSTALL_SCRIPT_CMD=$(INSTALL)
+INSTALL_LIB_CMD=$(INSTALL)
+INSTALL_AUX_CMD=$(INSTALL)
+COMPRESSOR=
+COMPRESSED_FILETYPE=
+
+# in a vendorConf, you can define:
+#
+# INSTALL=install
+# INSTALL_BIN_CMD=install -s -m 0555
+# INSTALL_LIB_CMD=install -m 0444
+# INSTALL_AUX_CMD=install -m 0444
+
+#
+# programs to install
+#
+INSTALL_PROGS=$(PROGS)
+
+# --------------
+# compiler flags
+# --------------
+
+# stc default optimization
+
+DEFAULT_STCOPT=+optinline
+STCOPT=$(DEFAULT_STCOPT)
+
+# default stc optimization to use in various lib-directories
+# (used in Make.protos)
+
+LIBBASIC_STCOPT=$(DEFAULT_STCOPT) +optinline2 -warnNonStandard
+LIBBOSS_STCOPT=$(LIBBASIC_STCOPT)
+LIBBASIC2_STCOPT=+optspace2 -warnNonStandard
+LIBBASIC3_STCOPT=+optspace2 -warnNonStandard
+LIBCOMP_STCOPT=$(DEFAULT_STCOPT) -warnNonStandard
+LIBVIEW_STCOPT=$(DEFAULT_STCOPT) -warnNonStandard
+LIBVIEW2_STCOPT=+optspace2 -warnNonStandard
+LIBWIDG_STCOPT=+optspace2 -warnNonStandard
+LIBWIDG2_STCOPT=+optspace2
+LIBWIDG3_STCOPT=+optspace3 -warnNonStandard
+#LIBUI_STCOPT=+optspace2 -warnNonStandard
+LIBUI_STCOPT=-warnNonStandard
+LIBHTML_STCOPT=+optspace2 -warnNonStandard
+LIBTOOL_STCOPT=+optspace2 -warnNonStandard -warnUnusedLocals -warnUseBeforeSet
+LIBTOOL2_STCOPT=+optspace3 -warnNonStandard
+LIBTABLE_STCOPT=+optspace2 -warnNonStandard
+CLIENT_STCOPT=+optspace2
+GOODIES_STCOPT=+optspace2
+
+# common for all:
+STCCOMMONOPT=
+CCCOMMONOPT=$(OPTIONAL_HAVE_FFI_ARG)
+
+# to be redefined in arch/COMMON/defines
+STCARCHCOMMONOPT=
+CCARCHCOMMONOPT=
+
+# top be redefined in arch/<conf>/defines
+STCARCHOPT=
+CCARCHOPT=
+
+# this could be set per-configuration:
+# STCCONFOPT=
+
+# this could be set per-subdirectory:
+# STCLOCALOPT=
+
+
+# all st-objects depend on these:
+
+STCHDR=$(INCLUDE)/stc.h $(INCLUDE)/stcIntern.h $(CPUINTERN_H)
+
+# compile librun with -DDEBUG
+
+DBG=-DDEBUG
+
+#
+# some c-preprocessors have a bug in not handling too-deeply nested
+# include files. If yours does, some classes have to be compiled with a
+# special STC flag, to produce a different kind of header-definition file
+# If your machine is one of those, add a line as:
+# LIMITSUPERINCLUDE=+limitSuperInclude
+# to the corresponding defines-file
+LIMITSUPERINCLUDE=
+
+#
+# include path for Xlib
+#
+XINCLUDE=-I/usr/include/X11
+
+# default for 'make includeLink'
+
+#INCLUDELINK_FILES= \
+# abbrev.stc \
+# liblist.stc \
+# symbols.stc
+
+INCLUDELINK_FILES= \
+ symbols.stc
+
+# -------------------------------------------------------------------------
+# normally, the following need not be redefined (they have useful defaults)
+# -------------------------------------------------------------------------
+
+# compiler, linker, cflags and lexlib to use when building stc
+# you could use a different compiler (gcc vs. cc) here.
+# default is to use the same compiler as for classes
+
+STC_CC=$(CC)
+STC_LD=$(STC_CC)
+STC_CFLAGS=$(CFLAGS)
+STC_LEXLIB=-ll
+
+# compiler and optimizer flags to compile main.o
+# default is to use the same compiler as for classes
+
+MAIN_CC=$(CC)
+MAIN_OPT=$(OPT)
+
+# compiler, and optimizer flags for librun
+# default is to use the same compiler as for classes
+
+LIBRUN_CC=$(CC)
+LIBRUN_OPT=$(OPT)
+LIBRUN_SPECIAL_OPT=$(LIBRUN_OPT)
+
+FFI_CC=$(CC)
+FFI_LD=$(LD)
+# if ffi.h is to be included from somewhere else...
+FFI_INCLUDE=
+
+# compiler to use for big-files
+# default is to use the same compiler as for other classes
+
+BIGFILE_CC=$(CC)
+
+# compiler to use for libjpeg
+# (only needed for hp, where standard cc cannot compile libjpeg)
+
+# compiler to use for class libraries
+# the only system, where this is different is (currently) hpux_
+# (their cc crashes for some big files - sigh)
+
+CLASSLIB_CC=$(CC)
+CLASSLIB_OPT=$(OPT)
+STC_OPT=$(OPT)
+
+# compiler to use for particular class libraries
+LIBBASIC_CC=$(CLASSLIB_CC)
+LIBBASIC_OPT=$(CLASSLIB_OPT)
+
+LIBBASIC2_CC=$(CLASSLIB_CC)
+LIBBASIC2_OPT=$(CLASSLIB_OPT)
+
+LIBBASIC3_OPT=$(CLASSLIB_OPT)
+LIBBASIC3_CC=$(CLASSLIB_CC)
+
+LIBCOMP_OPT=$(CLASSLIB_OPT)
+LIBCOMP_CC=$(CLASSLIB_CC)
+
+LIBVIEW_OPT=$(CLASSLIB_OPT)
+LIBVIEW_CC=$(CLASSLIB_CC)
+
+LIBVIEW2_OPT=$(CLASSLIB_OPT)
+LIBVIEW2_CC=$(CLASSLIB_CC)
+
+LIBWIDG_OPT=$(CLASSLIB_OPT)
+LIBWIDG_CC=$(CLASSLIB_CC)
+
+LIBWIDG2_OPT=$(CLASSLIB_OPT)
+LIBWIDG2_CC=$(CLASSLIB_CC)
+
+LIBWIDG3_OPT=$(CLASSLIB_OPT)
+LIBWIDG3_CC=$(CLASSLIB_CC)
+
+LIBTOOL_OPT=$(CLASSLIB_OPT)
+LIBTOOL_CC=$(CLASSLIB_CC)
+
+LIBTOOL2_OPT=$(CLASSLIB_OPT)
+LIBTOOL2_CC=$(CLASSLIB_CC)
+
+LIBUI_OPT=$(CLASSLIB_OPT)
+LIBUI_CC=$(CLASSLIB_CC)
+
+LIBHTML_OPT=$(CLASSLIB_OPT)
+LIBHTML_CC=$(CLASSLIB_CC)
+
+#
+# flag for prelinking
+#
+LD_REL_FLAG=-r
+#
+# additional linker flags for prelinked obj-libraries
+# (used when prelinking object modules)
+#
+LD_OBJ_FLAGS=
+
+#
+# optional rebasing rule (to relocate dll's to disjoint address ranges, if supported by the toolchain).
+# OS X does provide this
+#
+rebaseLibsRule=nullRebaseRule
+rebaseLibsRule_static=nullRebaseRule
+
+# file name extensions
+
+# name of object files
+O=o
+O2=o
+
+# name of archives
+A=a
+
+# name of executables
+EXE=
+
+# name of shared objects
+SO=so
+
+# name of prelinked nonshared objects
+OBJ=obj
+OBJNAME=.obj
+
+# name of individual object files
+BIN_O=.o
+
+# extension of linked object files
+# (usually either '.a', '.o' or '.obj' on static-link systems
+# or '.so' on dynamic link systems.
+# (maybe even '.dll' some time later ...)
+
+# static link with prelinked relocatable modules:
+O_EXT=$(OBJNAME)
+# shared lib link:
+# O_EXT=.$(SO)
+# library link:
+# O_EXT=.$(A)
+
+#
+# location of various subdirs
+#
+
+INCLUDE = $(TOP)/include
+INCLUDE_IN = $(INCLUDE)
+INCLUDE_OUT= $(INCLUDE)
+CONFTOP = $(TOP)
+RULETOP = $(TOP)
+STCDIR = $(TOP)/stc
+STC = $(STCDIR)/stc
+
+CONFDIR = $(CONFTOP)/configurations
+RULEDIR = $(RULETOP)/rules
+
+LIBBASIC_RELDIR = libbasic
+LIBBASIC2_RELDIR = libbasic2
+LIBBASIC3_RELDIR = libbasic3
+LIBBOSS_RELDIR = libboss
+LIBCOMP_RELDIR = libcomp
+LIBHTML_RELDIR = libhtml
+LIBVIEW_RELDIR = libview
+LIBVIEW2_RELDIR = libview2
+LIBWIDG_RELDIR = libwidg
+LIBWIDG2_RELDIR = libwidg2
+LIBWIDG3_RELDIR = libwidg3
+LIBTOOL_RELDIR = libtool
+LIBTOOL2_RELDIR = libtool2
+LIBCOMPAT_RELDIR = libcompat
+LIBUI_RELDIR = libui
+LIBODBC_RELDIR = libodbc
+LIBOBJC_RELDIR = libobjc
+GOODIES_RELDIR = goodies
+LIBDB_RELDIR = libdb
+SUNIT_RELDIR = $(GOODIES_RELDIR) $(GOODIES_RELDIR)/sunit
+RB_RELDIR = $(GOODIES_RELDIR) $(GOODIES_RELDIR)/refactoryBrowser
+
+LIBRUNDIR = $(TOP)/librun
+LIBBASICDIR = $(TOP)/libbasic
+LIBBASIC2DIR = $(TOP)/libbasic2
+LIBBASIC3DIR = $(TOP)/libbasic3
+LIBBOSSDIR = $(TOP)/libboss
+LIBCOMPDIR = $(TOP)/libcomp
+LIBHTMLDIR = $(TOP)/libhtml
+LIBVIEWDIR = $(TOP)/libview
+LIBVIEW2DIR = $(TOP)/libview2
+LIBWIDGDIR = $(TOP)/libwidg
+LIBWIDG2DIR = $(TOP)/libwidg2
+LIBWIDG3DIR = $(TOP)/libwidg3
+LIBTOOLDIR = $(TOP)/libtool
+LIBTOOL2DIR = $(TOP)/libtool2
+LIBTABLEDIR = $(TOP)/libtable
+LIBPRODIR = $(TOP)/libpro
+LIBCOMPATDIR = $(TOP)/libcompat
+LIBUIDIR = $(TOP)/libui
+LIBODBCDIR = $(TOP)/libodbc
+CLIENTDIR = $(TOP)/clients
+LIBOBJCDIR = $(TOP)/libobjc
+GOODIESDIR = $(TOP)/goodies
+LIBDBASEDIR = $(TOP)/goodies/libdbase
+SUNITDIR = $(TOP)/goodies/sunit
+
+RBDIR = $(TOP)/goodies/refactoryBrowser
+LIBRB_HELPERSDIR = $(RBDIR)/helpers
+LIBRB_CHANGESDIR = $(RBDIR)/changes
+LIBRB_PARSERDIR = $(RBDIR)/parser
+LIBRB_REFACTORINGDIR = $(RBDIR)/refactoring
+LIBRB_BROWSERDIR = $(RBDIR)/browser
+
+LIBSCMDIR = $(TOP)/libscm
+LIBSCM_COMMONDIR = $(LIBSCMDIR)/common
+LIBSCM_MERCURIALDIR = $(LIBSCMDIR)/mercurial
+
+#
+# these are not yet released to the public
+#
+LIBCPLUSPLUSDIR = $(TOP)/libc++
+LIBXTDIR = $(TOP)/libxt
+LIBXMDIR = $(TOP)/libxm
+
+#
+# your private directories
+#
+# OTHERLIBDIRS are directories to be visited by make
+#
+OTHERLIBDIRS =
+#
+# OTHERLIBS are libraries to be linked in at the end
+#
+OTHERLIBS =
+
+MAIN = $(LIBRUNDIR)/main.c
+#HIDATA = $(LIBRUNDIR)/hidata.o
+HIDATA=
+
+#
+# object files to include in a classlibrary
+# default is all upper-case .o-files
+#
+LINKOBJS=[A-Z]*.$(O)
+
+SA_EXT=.a
+A_EXT=.a
+STATIC_O_EXT=.o
+
+#
+# libraries as in the development tree;
+#
+LIBRUN = $(LIBRUNDIR)/librun$(SA_EXT)
+LIBBASIC = $(LIBBASICDIR)/libstx_libbasic$(O_EXT)
+LIBBOSS = $(LIBBOSSDIR)/libstx_libboss$(O_EXT)
+LIBBASIC2= $(LIBBASIC2DIR)/libstx_libbasic2$(O_EXT)
+LIBBASIC3= $(LIBBASIC3DIR)/libstx_libbasic3$(O_EXT)
+LIBHTML = $(LIBHTMLDIR)/libstx_libhtml$(O_EXT)
+LIBCOMP = $(LIBCOMPDIR)/libstx_libcomp$(O_EXT)
+LIBCOMPAT= $(LIBCOMPATDIR)/libstx_libcompat$(O_EXT)
+LIBVIEW = $(LIBVIEWDIR)/libstx_libview$(O_EXT)
+LIBVIEW2 = $(LIBVIEW2DIR)/libstx_libview2$(O_EXT)
+LIBWIDG = $(LIBWIDGDIR)/libstx_libwidg$(O_EXT)
+LIBWIDG2 = $(LIBWIDG2DIR)/libstx_libwidg2$(O_EXT)
+LIBWIDG3 = $(LIBWIDG3DIR)/libstx_libwidg3$(O_EXT)
+LIBTOOL = $(LIBTOOLDIR)/libstx_libtool$(O_EXT)
+LIBTOOL2 = $(LIBTOOL2DIR)/libstx_libtool2$(O_EXT)
+LIBTABLE = $(LIBTABLEDIR)/libstx_libtable$(O_EXT)
+LIBUI = $(LIBUIDIR)/libstx_libui$(O_EXT)
+LIBDBASE = $(LIBDBASEDIR)/libstx_goodies_libdbase$(O_EXT)
+GOODIES = $(GOODIESDIR)/libstx_goodies$(O_EXT)
+LIBOBJC = $(LIBOBJCDIR)/libstx_libobjc$(O_EXT)
+SUNIT = $(SUNITDIR)/libstx_goodies_sunit$(O_EXT)
+
+LIBRB_HELPERS = $(LIBRB_HELPERSDIR)/libstx_goodies_refactoryBrowser_helpers$(O_EXT)
+LIBRB_CHANGES = $(LIBRB_CHANGESDIR)/libstx_goodies_refactoryBrowser_changes$(O_EXT)
+LIBRB_PARSER = $(LIBRB_PARSERDIR)/libstx_goodies_refactoryBrowser_parser$(O_EXT)
+LIBRB_REFACTORING = $(LIBRB_REFACTORINGDIR)/libstx_goodies_refactoryBrowser_refactoring$(O_EXT)
+LIBRB_BROWSER = $(LIBRB_BROWSERDIR)/libstx_goodies_refactoryBrowser_browser$(O_EXT)
+
+LIBSCM_COMMON = $(LIBSCM_COMMONDIR)/libstx_libscm_common$(O_EXT)
+LIBSCM_MERCURIAL = $(LIBSCM_MERCURIALDIR)/libstx_libscm_mercurial$(O_EXT)
+
+#
+# additional (depreviated or private/experimental)
+# libraries. These are not req'd normally.
+#
+LIBCPLUSPLUS= $(LIBCPLUSPLUSDIR)/libc++$(O_EXT)
+LIBXT = $(LIBXTDIR)/libxt$(O_EXT)
+LIBXM = $(LIBXMDIR)/libxm$(O_EXT)
+
+#
+# libraries which are either provided via the support directory
+# or by the system. If a system-library is present, that one should
+# usually be used (and then redefined in a platform-specific defines-file)
+#
+
+# the following defs are for using the provided (not the system) zlib;
+# should work everywhere
+ZLIB_DIR=$(TOP)/support/zlib-1.2.3
+ZLIB_LD_ARG=-L$(ZLIB_DIR) -lz
+ZLIB_MAKE_TARGET=zlib
+
+# the following defs are for using the provided (not the system) bz2lib;
+# should work everywhere
+BZ2LIB_DIR=$(TOP)/support/bz2lib
+BZ2LIB_LD_ARG=-L$(BZ2LIB_DIR) -lbz2
+BZ2LIB_MAKE_TARGET=bz2lib
+
+# the following defs are for NOT using any usb lib (only needed in some apps);
+# redefined in linux configurations, to use the system lib (-lusb)
+USB_LIB_DIR=
+USB_LIB_ARG=
+USB_MAKE_TARGET=
+
+#
+# libraries as linked to the executable.
+# For sharedLib links, these must be in a common
+# lib-subdirectory while being linked,
+# in order to allow those shared libraries to be placed
+# into some other directory (LD_LIBRARY_PATH) later.
+# This is a bit inconvenient - sorry.
+#
+#LINK_LIBDIR = lib/
+#LINK_LIBDIR = .
+LINK_LIBRUN = $(LINK_LIBDIR)librun$(SA_EXT)
+LINK_LIBBASIC = $(LINK_LIBDIR)libstx_libbasic$(O_EXT)
+LINK_LIBBOSS = $(LINK_LIBDIR)libstx_libboss$(O_EXT)
+LINK_LIBBASIC2= $(LINK_LIBDIR)libstx_libbasic2$(O_EXT)
+LINK_LIBBASIC3= $(LINK_LIBDIR)libstx_libbasic3$(O_EXT)
+LINK_LIBHTML = $(LINK_LIBDIR)libstx_libhtml$(O_EXT)
+LINK_LIBCOMP = $(LINK_LIBDIR)libstx_libcomp$(O_EXT)
+LINK_LIBCOMPAT= $(LINK_LIBDIR)libstx_libcompat$(O_EXT)
+LINK_LIBVIEW = $(LINK_LIBDIR)libstx_libview$(O_EXT)
+LINK_LIBVIEW2 = $(LINK_LIBDIR)libstx_libview2$(O_EXT)
+LINK_LIBWIDG = $(LINK_LIBDIR)libstx_libwidg$(O_EXT)
+LINK_LIBWIDG2 = $(LINK_LIBDIR)libstx_libwidg2$(O_EXT)
+LINK_LIBWIDG3 = $(LINK_LIBDIR)libstx_libwidg3$(O_EXT)
+LINK_LIBTOOL = $(LINK_LIBDIR)libstx_libtool$(O_EXT)
+LINK_LIBTOOL2 = $(LINK_LIBDIR)libstx_libtool2$(O_EXT)
+LINK_LIBTABLE = $(LINK_LIBDIR)libstx_libtable$(O_EXT)
+LINK_LIBUI = $(LINK_LIBDIR)libstx_libui$(O_EXT)
+LINK_LIBDBASE = $(LINK_LIBDIR)libstx_goodies_libdbase$(O_EXT)
+LINK_GOODIES = $(LINK_LIBDIR)libstx_goodies$(O_EXT)
+LINK_LIBOBJC = $(LINK_LIBDIR)libstx_libobjc$(O_EXT)
+LINK_SUNIT = $(LINK_LIBDIR)libstx_goodies_sunit$(O_EXT)
+
+LINK_LIBRB_HELPERS = $(LINK_LIBDIR)libstx_goodies_refactoryBrowser_helpers$(O_EXT)
+LINK_LIBRB_CHANGES = $(LINK_LIBDIR)libstx_goodies_refactoryBrowser_changes$(O_EXT)
+LINK_LIBRB_PARSER = $(LINK_LIBDIR)libstx_goodies_refactoryBrowser_parser$(O_EXT)
+LINK_LIBRB_REFACTORING = $(LINK_LIBDIR)libstx_goodies_refactoryBrowser_refactoring$(O_EXT)
+LINK_LIBRB_BROWSER = $(LINK_LIBDIR)libstx_goodies_refactoryBrowser_browser$(O_EXT)
+
+LINK_LIBSCM_COMMON = $(LINK_LIBDIR)libstx_libscm_common$(O_EXT)
+LINK_LIBSCM_MERCURIAL = $(LINK_LIBDIR)libstx_libscm_mercurial$(O_EXT)
+
+LINK_LIBCPLUSPLUS= $(LINK_LIBDIR)libc++$(O_EXT)
+LINK_LIBXT = $(LINK_LIBDIR)libxt$(O_EXT)
+LINK_LIBXM = $(LINK_LIBDIR)libxm$(O_EXT)
+
+STATIC_LIBRUN = $(LIBRUNDIR)/librun$(A_EXT)
+STATIC_LIBBASIC = $(LIBBASICDIR)/libstx_libbasic$(STATIC_O_EXT)
+STATIC_LIBBOSS = $(LIBBOSSDIR)/libstx_libboss$(STATIC_O_EXT)
+STATIC_LIBBASIC2 = $(LIBBASIC2DIR)/libstx_libbasic2$(STATIC_O_EXT)
+STATIC_LIBBASIC3 = $(LIBBASIC3DIR)/libstx_libbasic3$(STATIC_O_EXT)
+STATIC_LIBHTML = $(LIBHTMLDIR)/libstx_libhtml$(STATIC_O_EXT)
+STATIC_LIBCOMP = $(LIBCOMPDIR)/libstx_libcomp$(STATIC_O_EXT)
+STATIC_LIBCOMPAT = $(LIBCOMPATDIR)/libstx_libcompat$(STATIC_O_EXT)
+STATIC_LIBVIEW = $(LIBVIEWDIR)/libstx_libview$(STATIC_O_EXT)
+STATIC_LIBVIEW2 = $(LIBVIEW2DIR)/libstx_libview2$(STATIC_O_EXT)
+STATIC_LIBWIDG = $(LIBWIDGDIR)/libstx_libwidg$(STATIC_O_EXT)
+STATIC_LIBWIDG2 = $(LIBWIDG2DIR)/libstx_libwidg2$(STATIC_O_EXT)
+STATIC_LIBWIDG3 = $(LIBWIDG3DIR)/libstx_libwidg3$(STATIC_O_EXT)
+STATIC_LIBTOOL = $(LIBTOOLDIR)/libstx_libtool$(STATIC_O_EXT)
+STATIC_LIBTOOL2 = $(LIBTOOL2DIR)/libstx_libtool2$(STATIC_O_EXT)
+STATIC_LIBTABLE = $(LIBTABLEDIR)/libstx_libtable$(STATIC_O_EXT)
+STATIC_LIBUI = $(LIBUIDIR)/libstx_libui$(STATIC_O_EXT)
+STATIC_LIBDBASE = $(LIBDBASEDIR)/libstx_goodies_libdbase$(STATIC_O_EXT)
+STATIC_GOODIES = $(GOODIESDIR)/libstx_goodies$(STATIC_O_EXT)
+STATIC_LIBOBJC = $(LIBOBJCDIR)/libstx_libobjc$(STATIC_O_EXT)
+STATIC_SUNIT = $(SUNITDIR)/libstx_goodies_sunit$(STATIC_O_EXT)
+
+STATIC_LIBRB_HELPERS = $(LIBRB_HELPERSDIR)/libstx_goodies_refactoryBrowser_helpers$(STATIC_O_EXT)
+STATIC_LIBRB_CHANGES = $(LIBRB_CHANGESDIR)/libstx_goodies_refactoryBrowser_changes$(STATIC_O_EXT)
+STATIC_LIBRB_PARSER = $(LIBRB_PARSERDIR)/libstx_goodies_refactoryBrowser_parser$(STATIC_O_EXT)
+STATIC_LIBRB_REFACTORING = $(LIBRB_REFACTORINGDIR)/libstx_goodies_refactoryBrowser_refactoring$(STATIC_O_EXT)
+STATIC_LIBRB_BROWSER = $(LIBRB_BROWSERDIR)/libstx_goodies_refactoryBrowser_browser$(STATIC_O_EXT)
+
+STATIC_LIBSCM_COMMON = $(LIBSCM_COMMONDIR)/libstx_libscm_common$(STATIC_O_EXT)
+STATIC_LIBSCM_MERCURIAL = $(LIBSCM_MERCURIALDIR)/libstx_libscm_mercurial$(STATIC_O_EXT)
+
+STATIC_LIBCPLUSPLUS= $(LIBCPLUSPLUSDIR)/libc++$(STATIC_O_EXT)
+STATIC_LIBXT = $(LIBXTDIR)/libxt$(STATIC_O_EXT)
+STATIC_LIBXM = $(LIBXMDIR)/libxm$(STATIC_O_EXT)
+
+# -------------------------------------------
+# various package lists (to link)
+#
+# depending on how the final target is linked,
+# either the normal-classlibrary, the shared classlibrary
+# or the sep-init libraries are used.
+#
+# +sepInit is no longer supported - so it may not work
+# (no known configurations uses it currently)
+# -------------------------------------------
+REFACTORY_DIR = $(LIBRB_HELPERSDIR) $(LIBRB_CHANGESDIR) $(LIBRB_REFACTORINGDIR) $(LIBRB_PARSERDIR) $(LIBRB_BROWSERDIR)
+REFACTORY_LIB = $(LIBRB_HELPERS) $(LIBRB_CHANGES) $(LIBRB_REFACTORING) $(LIBRB_PARSER) $(LIBRB_BROWSER)
+REFACTORY_LIST = libstx_goodies_refactoryBrowser_helpers libstx_goodies_refactoryBrowser_changes libstx_goodies_refactoryBrowser_refactoring libstx_goodies_refactoryBrowser_parser libstx_goodies_refactoryBrowser_browser
+LINK_REFACTORY_LIB = $(LINK_LIBRB_HELPERS) $(LINK_LIBRB_CHANGES) $(LINK_LIBRB_REFACTORING) $(LINK_LIBRB_PARSER) $(LINK_LIBRB_BROWSER)
+STATIC_REFACTORY_LIB = $(STATIC_LIBRB_HELPERS) $(STATIC_LIBRB_CHANGES) $(STATIC_LIBRB_REFACTORING) $(STATIC_LIBRB_PARSER) $(STATIC_LIBRB_BROWSER)
+
+SUNIT_DIR = $(SUNITDIR)
+SUNIT_LIB = $(SUNIT)
+SUNIT_LIST = libstx_goodies_sunit
+LINK_SUNIT_LIB = $(LINK_SUNIT)
+STATIC_SUNIT_LIB = $(STATIC_SUNIT)
+
+LIBSCM_DIR = $(LIBSCM_COMMONDIR) $(LIBSCM_MERCURIALDIR)
+LIBSCM_LIB = $(LIBSCM_COMMON) $(LIBSCM_MERCURIAL)
+LIBSCM_LIST = libstx_libscm_common libstx_libscm_mercurial
+LINK_LIBSCM_LIB = $(LINK_LIBSCM_COMMON) $(LINK_LIBSCM_MERCURIAL)
+STATIC_LIBSCM_LIB = $(STATIC_LIBSCM_COMMON) $(STATIC_LIBSCM_MERCURIAL)
+
+#
+# barebones
+# absolute minimum - no compiler i.e. no rc files etc.
+#
+BARE_DIR = $(LIBBASICDIR) $(PRIVATEOBJ)
+BARE_RELDIR = $(LIBBASIC_RELDIR)
+BARE_LIB = $(LIBBASIC) $(PRIVATEOBJ)
+BARE_LIST = libstx_libbasic $(PRIVATELIBS)
+LINK_BARE_LIB = $(LINK_LIBBASIC) $(LINK_PRIVATE)
+STATIC_BARE_LIB = $(STATIC_LIBBASIC) $(STATIC_PRIVATE)
+
+#
+# minitalk (non GUI) uses this
+# minimum needed for non GUI applications
+#
+MINI_DIR = $(BARE_DIR) $(LIBCOMPDIR)
+MINI_RELDIR = $(BARE_RELDIR) $(LIBCOMP_RELDIR)
+MINI_LIB = $(BARE_LIB) $(LIBCOMP)
+MINI_LIST = $(BARE_LIST) libstx_libcomp
+LINK_MINI_LIB = $(LINK_BARE_LIB) $(LINK_LIBCOMP)
+STATIC_MINI_LIB = $(STATIC_BARE_LIB) $(STATIC_LIBCOMP)
+
+#
+# fundamental components
+# all that is needed for typical GUI applications
+#
+FUNDAMENTAL_DIR = $(MINI_DIR) $(LIBBASIC2DIR) $(LIBVIEWDIR) $(LIBVIEW2DIR) $(LIBWIDGDIR) $(LIBWIDG2DIR) $(LIBUIDIR)
+FUNDAMENTAL_RELDIR = $(MINI_RELDIR) $(LIBBASIC2_RELDIR) $(LIBVIEW_RELDIR) $(LIBVIEW2_RELDIR) $(LIBWIDG_RELDIR) $(LIBWIDG2_RELDIR) $(LIBUI_RELDIR)
+FUNDAMENTAL_LIB = $(MINI_LIB) $(LIBBASIC2) $(LIBVIEW) $(LIBVIEW2) $(LIBWIDG) $(LIBWIDG2) $(LIBUI)
+FUNDAMENTAL_LIST = $(MINI_LIST) libstx_libbasic2 libstx_libview libstx_libview2 libstx_libwidg libstx_libwidg2 libstx_libui
+LINK_FUNDAMENTAL_LIB = $(LINK_MINI_LIB) $(LINK_LIBBASIC2) $(LINK_LIBVIEW) $(LINK_LIBVIEW2) $(LINK_LIBWIDG) $(LINK_LIBWIDG2) $(LINK_LIBUI)
+STATIC_FUNDAMENTAL_LIB= $(STATIC_MINI_LIB) $(STATIC_LIBBASIC2) $(STATIC_LIBVIEW) $(STATIC_LIBVIEW2) $(STATIC_LIBWIDG) $(STATIC_LIBWIDG2) $(STATIC_LIBUI)
+
+#
+# development components
+# all that is needed for typical GUI applications PLUS development classes
+#
+DEVELOP_DIR = $(FUNDAMENTAL_DIR) $(LIBBASIC3DIR) $(REFACTORY_DIR) $(LIBTOOLDIR) $(LIBSCM_DIR) $(SUNITDIR)
+DEVELOP_RELDIR = $(FUNDAMENTAL_RELDIR) $(LIBBASIC3_RELDIR) $(REFACTORY_RELDIR) $(LIBTOOL_RELDIR) $(LIBSCM_RELDIR) $(SUNIT_RELDIR)
+DEVELOP_LIB = $(FUNDAMENTAL_LIB) $(LIBBASIC3) $(REFACTORY_LIB) $(LIBTOOL) $(LIBSCM_LIB) $(SUNIT_LIB)
+DEVELOP_LIST = $(FUNDAMENTAL_LIST) libstx_libbasic3 $(REFACTORY_LIST) libstx_libtool $(LIBSCM_LIST) $(SUNIT_LIST)
+LINK_DEVELOP_LIB = $(LINK_FUNDAMENTAL_LIB) $(LINK_LIBBASIC3) $(LINK_REFACTORY_LIB) $(LINK_LIBTOOL) $(LINK_LIBSCM_LIB) $(LINK_SUNIT_LIB)
+STATIC_DEVELOP_LIB = $(STATIC_FUNDAMENTAL_LIB) $(STATIC_LIBBASIC3) $(STATIC_REFACTORY_LIB) $(STATIC_LIBTOOL) $(STATIC_LIBSCM_LIB) $(STATIC_SUNIT_LIB)
+
+#
+# standard components
+# all that is needed for typical GUI applications PLUS development classes
+# PLUS persistency PLUS html stuff PLUS some less frequently used classes
+#
+STANDARD_DIR = $(DEVELOP_DIR) $(LIBTOOL2DIR) $(LIBHTMLDIR) $(LIBBOSSDIR)
+STANDARD_RELDIR = $(DEVELOP_RELDIR) $(LIBTOOL2_RELDIR) $(LIBHTML_RELDIR) $(LIBBOSS_RELDIR)
+STANDARD_LIB = $(DEVELOP_LIB) $(LIBTOOL2) $(LIBHTML) $(LIBBOSS) $(ADDITIONAL_STANDARD_LIB)
+STANDARD_LIST = $(DEVELOP_LIST) libstx_libtool2 libstx_libhtml libstx_libboss $(ADDITIONAL_STANDARD_LIST)
+LINK_STANDARD_LIB = $(LINK_DEVELOP_LIB) $(LINK_LIBTOOL2) $(LINK_LIBHTML) $(LINK_LIBBOSS) $(ADDITIONAL_LINK_STANDARD_LIB)
+STATIC_STANDARD_LIB = $(STATIC_DEVELOP_LIB) $(STATIC_LIBTOOL2) $(STATIC_LIBHTML) $(STATIC_LIBBOSS) $(ADDITIONAL_STATIC_STANDARD_LIB)
+
+
+#
+# all components
+# also includes very seldom used additional widgets
+#
+EXTENDED_DIR = $(STANDARD_DIR) $(LIBTABLEDIR) $(LIBWIDG3DIR) $(LIBDBASEDIR) $(LIBCOMPATDIR)
+EXTENDED_RELDIR = $(STANDARD_RELDIR) $(LIBTABLE_RELDIR) $(LIBWIDG3_RELDIR) $(LIBDBASE_RELDIR) $(LIBCOMPAT_RELDIR)
+EXTENDED_LIB = $(STANDARD_LIB) $(LIBTABLE) $(LIBWIDG3) $(LIBDBASE) $(LIBCOMPAT)
+EXTENDED_LIST = $(STANDARD_LIST) libstx_libtable libstx_libwidg3 libstx_goodies_libdbase libstx_libcompat
+LINK_EXTENDED_LIB = $(LINK_STANDARD_LIB) $(LINK_LIBTABLE) $(LINK_LIBWIDG3) $(LINK_LIBDBASE) $(LINK_LIBCOMPAT)
+STATIC_EXTENDED_LIB = $(STATIC_STANDARD_LIB) $(STATIC_LIBTABLE) $(STATIC_LIBWIDG3) $(STATIC_LIBDBASE) $(STATIC_LIBCOMPAT)
+
+# -------------------------------------------
+# default class package list
+# -------------------------------------------
+#
+# should make all libs req'd by Smalltalk
+#
+CLASSLIBDIRS = $(STANDARD_DIR)
+CLASSLIB_RELDIRS = $(STANDARD_RELDIR)
+
+LIBOBJS = $(STANDARD_LIB)
+LINK_LIBOBJS = $(LINK_STANDARD_LIB)
+LIBLIST = $(STANDARD_LIST)
+STATIC_LIBLIST = $(LIBLIST)
+LINKLIST = $(LINK_STANDARD_LIB)
+
+#
+# those are set to the default values
+# (in case no STATIC_ defs are found in a PACKS file)
+#
+STATIC_OBJS = $(LINK_OBJS)
+STATIC_LIBOBJS = $(LIBOBJS)
+STATIC_ADDITIONAL_OBJS = $(ADDITIONAL_OBJS)
+STATIC_ADDITIONAL_CLASSES = $(ADDITIONAL_CLASSES)
+STATIC_EXTRA_OBJ = $(EXTRA_OBJ)
+STATIC_EXTRA_UI_OBJ = $(EXTRA_UI_OBJ)
+LINK_ADDITIONAL_OBJS = $(ADDITIONAL_OBJS)
+
+
+# --------------------------------------
+# system and other (non-class) libraries
+# --------------------------------------
+
+X_LIB_DIR=/usr/lib
+STATIC_X_LIB_DIR=$(X_LIB_DIR)
+#X_LIB_DIR=/usr/X11/lib
+
+LIB_X = -lX11
+LIB_XEXT = -lXext
+LIB_XAW = -lXaw
+LIB_XT = -lXt
+LIB_XMU = -lXmu
+LIB_XINERAMA = -lXinerama
+LIB_XFT = -lXft
+
+STATIC_LIB_X = $(LIB_X)
+STATIC_LIB_XEXT= $(LIB_XEXT)
+STATIC_LIB_XAW = $(LIB_XAW)
+STATIC_LIB_XT = $(LIB_XT)
+STATIC_LIB_XMU = $(LIB_XMU)
+
+# used with sparc only:
+# OSI-ACSE library
+# redefined to non-empty in sparc config
+LIB_OSINET_APLI=
+LIB_OSINET_OSI=
+
+WHICH_ODBC=unixodbc
+
+#
+# used when building libxt (wdget lib)
+# PRELINK is used whith ld -r to form libxt.o
+# SO_LINK is used with shared lib generation
+#
+LIB_XT_PRELINK = $(STATIC_LIB_XAW) $(STATIC_LIB_XMU) $(STATIC_LIB_XT)
+LIB_XT_SO_LINK =
+
+#
+# libraries to link in at the end
+#
+LIBXEXT = $(LIB_XEXT)
+LIBX = $(LIB_X)
+LIBXT = $(LIB_XT)
+LIBXAW = $(LIB_XAW)
+LIBXMU = $(LIB_XMU)
+LIBXINERAMA = $(LIB_XINERAMA)
+LIBXFT = $(LIB_XFT)
+
+STATIC_LIBXEXT = $(STATIC_LIB_XEXT)
+STATIC_LIBX = $(STATIC_LIB_X)
+STATIC_LIBXT = $(STATIC_LIB_XT)
+STATIC_LIBXAW = $(STATIC_LIB_XAW)
+STATIC_LIBXMU = $(STATIC_LIB_XMU)
+
+#
+# in a package definition file, add the following:
+#
+#OPTIONAL_LIBXAW = $(LIB_XAW)
+#OPTIONAL_LIBXT = $(LIB_XT)
+#OPTIONAL_LIBXMU = $(LIB_XMU)
+#OPTIONAL_LIBXM = $(LIB_XM)
+
+OPTIONAL_LIBS= \
+ $(OPTIONAL_LIBXM) \
+ $(OPTIONAL_LIBXAW) \
+ $(OPTIONAL_LIBXMU) \
+ $(OPTIONAL_LIBXT)
+
+MATHLIB = -lm
+SYSLIBS = \
+ $(OTHERLIBS1) \
+ $(OPTIONAL_LIBS) \
+ $(OTHERLIBS2) \
+ $(MATHLIB)
+
+OTHERLIBS1 =
+OTHERLIBS2 = $(OTHERLIBS)
+
+
+STATIC_OPTIONAL_LIBS= \
+ $(STATIC_OPTIONAL_LIBXM) \
+ $(STATIC_OPTIONAL_LIBXAW) \
+ $(STATIC_OPTIONAL_LIBXMU) \
+ $(STATIC_OPTIONAL_LIBXT)
+
+STATIC_MATHLIB=/usr/lib/libm.a
+STATIC_SYSLIBS = \
+ $(STATIC_OTHERLIBS1) \
+ $(STATIC_OPTIONAL_LIBS) \
+ $(STATIC_LIBXEXT) $(STATIC_LIBX) \
+ $(STATIC_OTHERLIBS2) \
+ $(STATIC_MATHLIB)
+STATIC_OTHERLIBS1 = $(OTHERLIBS1)
+STATIC_OTHERLIBS2 = $(OTHERLIBS2)
+
+SUPPORT_DIR=$(TOP)/support
+
+#
+# the makefile to use when building the db1.6 library
+#
+MAKEFILE_DB = Makefile.$(MAKEFILE_EXTENSION)
+
+#
+# the CTAGS command (for ca's CBrowser, taglist in Filebrowser and cg's STXGDB)
+#
+#CTAGS_VSN=ctags-3.2.2
+CTAGS_VSN=ctags-5.8
+CTAGS_DIR=$(TOP)/support/tools/$(CTAGS_VSN)
+# CTAGS=$(CTAGS_DIR)/ctags
+
+#
+# the CSCOPE command (for cg's STXGDB)
+#
+CSCOPE_VSN=cscope-15.8a
+CSCOPE_DIR=$(TOP)/support/tools/$(CSCOPE_VSN)
+# CSCOPE=$(CSCOPE_DIR)/cscope
+
+#
+# the SPLINT command (for cg's STXGDB)
+#
+SPLINT_VSN=splint-3.1.2
+SPLINT_DIR=$(TOP)/support/tools/$(SPLINT_VSN)
+# SPLINT=$(SPLINT_DIR)/cscope
+
+#
+# the JPEG library
+#
+# undefine this in arch-specific config, if you cannot compile libjpeg
+# or if you want to link against a system dll
+JPEGREADER_precompiled=JPEGReader.$(O)
+LIBJPEG_CC=$(CC)
+LIBJPEG_OPT=$(OPT)
+
+LIBJPEG_DIR=$(TOP)/support/libjpeg-6a
+# LIBJPEG_DIR=$(TOP)/support/libjpeg-7
+LIBJPEG=$(LIBJPEG_DIR)/libjpeg.a
+LIBJPEG_RULE=$(LIBJPEG)
+LIBJPEG_FOR_COPY=$(LIBJPEG_DIR)/libjpeg.a
+LIBJPEG_FOR_LINK=$(LIBJPEG_DIR)/libjpeg.a
+
+# the following defs are for using the provided (not the system) libjpeg;
+# should work everywhere
+JPEGLIB_LD_ARG=-L$(LIBJPEG_DIR) -ljpeg
+JPEGLIB_MAKE_TARGET=libjpeg
+JPEGREADER_PRELINKED=JPEGReader_prelinked
+JPEG_INCLUDE=
+
+# --------------------------------------------------
+# the MSQL library
+#
+# those may be redefined in an architecture specific
+# defines file, to whereever the stuff is found
+#
+MSQLDIR=$(TOP)/support/msql/msql-1.0.14
+
+MSQL_INCLUDE_DIR=$(MSQLDIR)/include
+MSQL_LIB_DIR=$(MSQLDIR)/lib
+
+#MSQL_INCLUDE_DIR=/usr/local/include
+#MSQL_LIB_DIR=/usr/local/lib
+
+
+# --------------------------------------------------
+# the VGL library
+#
+# has to be explicitely added in the defines file,
+# by defining
+# EXTRA_LIBS= ... $(LIB_VOGL) ...
+# and
+# CC_GL_FLAGS= ... $(CC_VGL_FLAGS) ...
+#
+# Late note: these defs are now all in the PACKS definitions
+#
+VOGL_DIR =$(SUPPORT_DIR)/VGL/vogl/src
+LIB_VOGL =$(VOGL_DIR)/libvogl.a
+LIB_VOGL_SO =$(VOGL_DIR)/libvogl$(SO_NAME)
+MAKEFILE_VOGL=Makefile.$(MAKEFILE_EXTENSION)
+CC_VOGL_INCLUDE=-I$(VOGL_DIR)
+CC_VOGL_FLAGS =-DVGL $(CC_VOGL_INCLUDE)
+
+#
+# only redefined for systems which have a real GL (SGI, AIX)
+# or have an openGL (mesa, openGL)
+#
+LIB_GL=$(LIB_VOGL)
+LIB_GL_TARGET=libvogl
+
+#
+# the mesa (openGL) library (optional)
+#
+MESA_VSN=3.0
+MESA_VSNDEF=3_0
+
+MESA_REL_DIR =Mesa-$(MESA_VSN)
+
+MESA_DIR =$(SUPPORT_DIR)/MESA/$(MESA_REL_DIR)
+MESA_LIB_DIR =$(MESA_DIR)/lib
+LIB_MESA =$(MESA_LIB_DIR)/libMesaGL.a
+LIB_MESA_SO =$(MESA_LIB_DIR)/libMesaGL$(SO_NAME)
+CC_MESA_INCLUDE=-I$(MESA_DIR)/include
+CC_MESA_FLAGS=-DMESA -DMESA$(MESA_VSNDEF) $(CC_MESA_INCLUDE)
+MAKEFILE_MESA=Makefile
+
+#
+# the next two should be redefined in architecture-specific
+# config files of systems which have true GL/openGL (i.e. SGI)
+# or have those includes somewhere else.
+#
+# the default here is to use VGL/MESA
+#
+CC_GL_FLAGS=$(CC_VOGL_FLAGS)
+CC_OPENGL_FLAGS=$(CC_MESA_FLAGS)
+
+# the next one should be defined in a packs file
+# to choose between GL/VGL and OpenGL/MESA
+#
+# for GL/VOGL:
+# CC_3D_FLAGS=$(CC_GL_FLAGS)
+# for openGL/MESA:
+# CC_3D_FLAGS=$(CC_OPENGL_FLAGS)
+#
+
+
+# Systems which have true GL/OpenGL, mnay redefine the above
+# for true GL:
+# CC_GL_FLAGS=-DGLX -I<gl-include-path-if-any>
+#
+# for true OpenGL:
+# CC_OPENGL_FLAGS=-DOPENGL -I<openGL-include-path-if-any>
+
+#
+# redefine this to the Makefile target in Mesa/Makefile
+# for your machine
+MAKE_MESA_TARGET=$(ARCH)
+
+#
+# only redefined for systems which have a real openGL (SGI, NT)
+#
+LIB_OPENGL=$(LIB_MESA)
+LIB_OPENGL_TARGET=libmesa
+
+OPENGL_INCLUDE=
+
+#
+# a netsnmp library
+#
+# if already in /usr/lib:
+# DYNAMIC_LINK_LIB_NETSNMP=-lnetsnmp
+# STATIC_LINK_LIB_NETSNMP=
+# TARGET_LIB_NETSNMP=
+#
+# if a local one should be built and used:
+# DYNAMIC_LINK_LIB_NETSNMP=
+# STATIC_LINK_LIB_NETSNMP=-L$(NETSNMP_LIBDIR) -L$(NETSNMP_LIBDIR)/.libs $(NETSNMP_LIBDIR)/.libs/libnetsnmp.a
+# TARGET_LIB_NETSNMP=$(NETSNMP_LIBDIR)/.libs/libnetsnmp.a
+
+# to not build libsnmp, comment this (or redefine as empty)
+ARCH_LIBSNMP=libsnmp
+
+# --------------------------------------------------
+#
+# the GNU dld library (only works with linux-aout)
+#
+# has to be explicitely added in the defines file,
+# by defining
+# OPTIONAL_LIBDL_TARGET= libdld ...
+# EXTRA_LIBS= ... $(LIB_DLD) ...
+# and
+# DLINCLUDE=$(DLD_DIR)
+# DLDEFS= ... -DDLD -I$(DLD_DIR) ...
+#
+#DLD_REL_DIR =DLD/dld-3.2.5
+DLD_REL_DIR =dld-3.2.5
+DLD_DIR =$(SUPPORT_DIR)/DLD/$(DLD_REL_DIR)
+LIB_DLD =$(DLD_DIR)/libdld.a
+LIB_DLD_SO =$(DLD_DIR)/libdld$(SO_NAME)
+MAKEFILE_DLD =Makefile.$(MAKEFILE_EXTENSION)
+
+# --------------------------------------------------
+#
+# the gnu BFD binary loader library (not working & EXPERIMENTAL)
+#
+# has to be explicitely added in the defines file,
+# by defining
+# OPTIONAL_LIBDL_TARGET= libbfd
+# EXTRA_LIBS= ... $(LIB_BFD) ...
+# and
+# DLINCLUDE=$(BFD_DIR)
+# DLDEFS= ... -DBFD -I$(BFD_DIR) ...
+#
+#BFD_REL_DIR =DLD/binutils/bfd
+BFD_REL_DIR =binutils/bfd
+BFD_DIR =$(SUPPORT_DIR)/DLD/$(BFD_REL_DIR)
+LIB_BFD =$(BFD_DIR)/libbfd.a
+LIB_BFD_SO =$(BFD_DIR)/libbfd$(SO_NAME)
+MAKEFILE_BFD =Makefile.$(MAKEFILE_EXTENSION)
+
+# --------------------------------------------------
+#
+# the dl1.6 COFF loader library (not working & EXPERIMENTAL)
+#
+# has to be explicitely added in the defines file,
+# by defining
+# LIBRUN_EXTRA= ... libdl1_6 ...
+# EXTRA_LIBS= ... $(LIB_DL1_6) ...
+# and
+# DLINCLUDE=$(DL1_6_DIR)
+# DLDEFS= ... -DDL1_6 -I$(DLD_DIR) ...
+#
+#DL1_6_REL_DIR=DLD/dl-1.6
+DL1_6_REL_DIR=dl-1.6
+DL1_6_DIR =$(SUPPORT_DIR)/DLD/$(DL1_6_REL_DIR)
+LIB_DL1_6 =$(DL1_6_DIR)/libdl.a
+LIB_DL1_6_SO =$(DL1_6_DIR)/libdl$(SO_NAME)
+MAKEFILE_DL1_6 =Makefile.$(MAKEFILE_EXTENSION)
+
+DLLIB=
+DLLIB_SO=
+#
+# in a vendor configuration, add:
+# DLLIB=$(LIB_DLD)
+# DLLIB_SO=$(LIB_DLD_SO)
+
+#
+# additional libs
+# undefined elsewhere - should be defined where used, instead of undefined where not
+#
+ML_LD_OBJ_LIBS=-Lml/lib -lmxlin260 -L/usr/lib -lusb
+
+#
+# possible extra arch-specific libraries to be linked in the ld -r pass
+#
+LD_REL_OBJ_LIBS=
+
+MAKEFILE_SUBX=Makefile.$(MAKEFILE_EXTENSION)
+
+#
+# extra targets made in support (old: librun) / libview
+#
+SUPPORT_EXTRA_TARGETS=$(OPTIONAL_LIBGL_TARGET) $(OPTIONAL_LIBDL_TARGET)
+
+LIBVIEW_EXTRA_TARGETS=
+
+#
+# extra asm file in librun
+#
+LIBRUN_MORE=asmhelp.o
+
+#
+# classes from individual objects (not in library-packages)
+#
+#
+# EXTRA_UI_CLASSES = $(WORKSTAT1) $(WORKSTAT2)
+# EXTRA_UI_OBJ = $(OPTIONAL_XWORKSTATION_OBJ) $(OPTIONAL_GLXWORKSTATION_OBJ)
+# STATIC_EXTRA_UI_OBJ = $(STATIC_OPTIONAL_XWORKSTATION_OBJ) $(STATIC_OPTIONAL_GLXWORKSTATION_OBJ)
+# EXTRA_LINK_UI_OBJ = $(OPTIONAL_LINK_XWORKSTATION_OBJ) $(OPTIONAL_LINK_GLXWORKSTATION_OBJ)
+
+#
+# default display classes
+#
+# these are reset in the Make.proto (or PACK-config), as desired
+#
+WORKSTAT1=XWorkstation
+WORKSTAT2=GLXWorkstation
+
+OPTIONAL_XWORKSTATION_OBJ=$(LIBVIEWDIR)/XWorkstation$(BIN_O)
+OPTIONAL_GLXWORKSTATION_OBJ=$(LIBVIEWDIR)/GLXWorkstation$(BIN_O)
+OPTIONAL_OPENGLWORKSTATION_OBJ=$(LIBVIEWDIR)/OGLWorkstation$(BIN_O)
+OPTIONAL_WINWORKSTATION_OBJ=$(LIBVIEWDIR)/WinWorkstation$(BIN_O)
+OPTIONAL_NXWORKSTATION_OBJ=$(LIBVIEWDIR)/NXWorkstation$(BIN_O)
+
+# STATIC_OPTIONAL_XWORKSTATION_OBJ=$(LIBVIEWDIR)/XWorkstation$(STATIC_O_EXT)
+# STATIC_OPTIONAL_GLXWORKSTATION_OBJ=$(LIBVIEWDIR)/GLXWorkstation$(STATIC_O_EXT)
+STATIC_OPTIONAL_WINWORKSTATION_OBJ=$(LIBVIEWDIR)/WinWorkstation$(STATIC_O_EXT)
+STATIC_OPTIONAL_NXWORKSTATION_OBJ=$(LIBVIEWDIR)/NXWorkstation$(STATIC_O_EXT)
+
+# OPTIONAL_LINK_XWORKSTATION_OBJ=$(LINK_LIBDIR)XWorkstation$(BIN_O)
+# OPTIONAL_LINK_GLXWORKSTATION_OBJ=$(LINK_LIBDIR)GLXWorkstation$(BIN_O)
+OPTIONAL_LINK_OPENGLWORKSTATION_OBJ=$(LINK_LIBDIR)OGLWorkstation$(BIN_O)
+OPTIONAL_LINK_WINWORKSTATION_OBJ=$(LINK_LIBDIR)WinWorkstation$(BIN_O)
+OPTIONAL_LINK_NXWORKSTATION_OBJ=$(LINK_LIBDIR)NXWorkstation$(BIN_O)
+
+# misc optional stuff
+#
+# these are set in the Make.proto (or PACKS) config, to include those libs
+# or left undefined, to exclude them.
+# The concrete libs (for example gl vs. vgl) are set in the architecture
+# specific configurations.
+
+OPTIONAL_LIBGL_TARGET=
+OPTIONAL_GL_LIB=
+STATIC_OPTIONAL_GL_LIB=$(OPTIONAL_GL_LIB)
+OPTIONAL_LINK_GL_LIB=
+
+OPTIONAL_LIBOPENGL_TARGET=
+OPTIONAL_OPENGL_LIB=
+STATIC_OPTIONAL_OPENGL_LIB=$(OPTIONAL_OPENGL_LIB)
+OPTIONAL_LINK_OPENGL_LIB=
+
+OPTIONAL_DL_LIB=
+STATIC_OPTIONAL_DL_LIB=$(OPTIONAL_DL_LIB)
+OPTIONAL_LINK_DL_LIB=
+
+#
+# to get GL/VGL, add in a packageList:
+# OPTIONAL_LIBGL_TARGET=$(LIB_GL_TARGET)
+# OPTIONAL_GL_LIB=$(LIB_GL)
+#
+# in addition, you have to decide which gl to use;
+# for vogl, add to the architecture config file:
+# LIB_GL_TARGET=$(LIB_VOGL_TARGET)
+# LIB_GL=$(LIB_VOGL)
+# for a real gl, add in an architecture config file:
+# LIB_GL_TARGET=
+# LIB_GL=-lgl_s
+
+OPTIONAL_LIBGL_TARGET=$(LIB_GL_TARGET)
+OPTIONAL_GL_LIB=$(LIB_GL)
+OPTIONAL_LINK_GL_LIB=$(LINK_LIB_GL)
+OPTIONAL_GL_DEFINE=$(CC_GL_DEFINE)
+CC_3D_FLAGS=$(CC_GL_FLAGS)
+
+#
+# to get openGL/mesa, add in a packageList:
+# OPTIONAL_LIBOPENGL_TARGET=$(LIB_OPENGL_TARGET)
+# OPTIONAL_OPENGL_LIB=$(LIB_OPENGL)
+# OPTIONAL_LINK_OPENGL_LIB=$(LINK_LIB_OPENGL)
+#
+# in addition, you have to decide which openGL to use;
+# for mesa, add to the architecture config file:
+# LIB_OPENGL_TARGET=$(LIB_MESA_TARGET)
+# LIB_OPENGL=$(LIB_MESA)
+# for a real gl, add in an architecture config file:
+# LIB_GL_TARGET=
+# LIB_GL=-lopenGL_s
+
+# to get an ObjectFileLoader,
+# you have to decide which dynamic load facility to use;
+# for sys5.4 like dlopen, add to the architecture config:
+#
+# OPTIONAL_LIBDL_TARGET=
+# OPTIONAL_DL_LIB=-ldl
+#
+# for GNU dld3.2.5, add to the architecture config:
+#
+# OPTIONAL_LIBDL_TARGET=libdld
+# OPTIONAL_DL_LIB=$(LIB_DLD)
+# DLDEFS=-DGNU_DL -I$(DLD_DIR)
+#
+# for GNU BFD loading (which does not work yet):
+#
+# OPTIONAL_LIBDL_TARGET=libbfd
+# OPTIONAL_DL_LIB=$(LIB_BFD)
+# DLDEFS=-DBFD_DL -I$(BFD_DIR)
+
+
+#extra user C-libraries
+EXTRA_C_LIBS=
+
+#EXTRA_LIBS=\
+# $(OPTIONAL_GL_LIB) \
+# $(OPTIONAL_OPENGL_LIB) \
+# $(OPTIONAL_DL_LIB) \
+# $(EXTRA_C_LIBS)
+
+EXTRA_LIBS=\
+ $(OPTIONAL_DL_LIB) \
+ $(EXTRA_C_LIBS)
+
+#STATIC_EXTRA_LIBS=\
+# $(STATIC_OPTIONAL_GL_LIB) \
+# $(STATIC_OPTIONAL_OPENGL_LIB) \
+# $(STATIC_OPTIONAL_DL_LIB) \
+# $(EXTRA_C_LIBS)
+
+STATIC_EXTRA_LIBS=\
+ $(STATIC_OPTIONAL_DL_LIB) \
+ $(EXTRA_C_LIBS)
+
+#EXTRA_LINK_LIBS=\
+# $(OPTIONAL_LINK_GL_LIB) \
+# $(OPTIONAL_LINK_OPENGL_LIB) \
+# $(OPTIONAL_LINK_DL_LIB) \
+# $(EXTRA_C_LIBS)
+
+EXTRA_LINK_LIBS=\
+ $(OPTIONAL_LINK_DL_LIB) \
+ $(EXTRA_C_LIBS)
+
+# -------------
+# default rules
+# -------------
+
+# rule to generate a self-installing deployable
+# setup is for backward compatibility;
+# see linux*/COMMON/defines
+# and mac/COMMON/defines
+SETUP_RULE=setup
+
+#
+# rule (from stdRules) for library building
+#
+OBJTARGET=obj$(TARGET_RULE_EXTENSION)
+LIBTARGET=all
+LIBRUNTARGET=librun.$(A)
+
+#
+# rule for target building
+# TARGET_RULE_EXTENSION will be appended
+#
+TARGET_RULE_EXTENSION=_static
+TARGET=stx
+
+# -------------
+# default flags
+# -------------
+
+# collected compiler flags
+
+ASFLAGS=
+
+#
+# rule hooks for vendor specific rules
+#
+
+PRE_LD_ACTION=emptyRule
+POST_LD_ACTION=emptyRule
+
+
+BIG_STFILE_RULE=__NORMAL_RULE__
+VERYBIG_STFILE_RULE=__NORMAL_RULE__
+LONGNAME_RULE=__NORMAL_RULE__
+
+__NORMAL_RULE__:
+ $(MAKE) $(O_RULE) STFILE=$(BIG_FILE) CC="$(CC)" STC_OPT="$(STC_OPT)" OPT="$(OPT)" SEPINITCODE="$(SEPINITCODE)" XDEFS="$(XDEFS)"
+
+
+#------------------ end of COMMON/defines ---------------------
--- a/pipeline.groovy Sat Dec 31 22:47:53 2016 +0000
+++ b/pipeline.groovy Wed Feb 01 22:20:35 2017 +0000
@@ -90,7 +90,21 @@
stage ( "Test" ) {
matrix ( configurations ) {
stage ( "Test - {${env.NODE}-${env.ARCH}}") {
- sh "ruby Jenkinsfile.rb --project \"stx:jv-branch\" test"
+ /*
+ * Some tests requires display, so:
+ *
+ * * on *NIX hosts, launch Xvfb
+ * * on Windows, do nothing. Windows slave must be configured
+ * so it has an access to interactive window station (which
+ * means it has to run under user session, not as a service)
+ */
+ if ( isUnix() ) {
+ wrap([$class: 'Xvfb', additionalOptions: '-screen 0 1024x768x24 -pixdepths 24 4 8 15 16 32', parallelBuild: true]) {
+ sh "ruby Jenkinsfile.rb --project \"stx:jv-branch\" test"
+ }
+ } else {
+ sh "ruby Jenkinsfile.rb --project \"stx:jv-branch\" test"
+ }
junit allowEmptyResults: true, testResults: "reports/*build${env.BUILD_NUMBER}*.xml"
}
}
@@ -206,7 +220,7 @@
*
* So, here we go:
*/
- def id1 = "workflow:push-upstream";
+ def id1 = "workflow-push-upstream";
def id2 = scm.getCredentialsId();
def credentials = null;
--- a/rakelib/compile.rake Sat Dec 31 22:47:53 2016 +0000
+++ b/rakelib/compile.rake Wed Feb 01 22:20:35 2017 +0000
@@ -204,10 +204,12 @@
case
- when linux?
- task :'config' => [ STX_CONF_DIR / 'vendorConf',
- STX_CONF_DIR / 'myConf' ,
- STX_RULES_DIR / 'stdRules' ]
+ when unix?
+ task :'config' => [ STX_CONF_DIR / 'COMMON' / 'defines',
+ STX_CONF_DIR / 'vendorConf',
+ STX_CONF_DIR / 'myConf' ,
+
+ STX_RULES_DIR / 'stdRules' ]
task STX_RULES_DIR / 'stdRules' do
@@ -225,64 +227,52 @@
sed(' $(STFILE)', ' $(PWD)/$(STFILE)', STX_RULES_DIR / 'stdRules', true)
end
- task STX_CONF_DIR / 'vendorConf' do
- cp STX_CONF_DIR / 'linux-elf' / 'COMMON' / 'defines' , STX_CONF_DIR / 'vendorConf'
- # Sigh, another hack here. For an unknown reason eXept added -Wl,--wrap=memcpy linker
- # flag. This not only hinders performace [*] but also causes infinite recursion when
- # in use. Wonder if it ever worked. So, yet another hack here: remove the
- # `--wrap=memcpy` from linker flags.
- #
- # [*] under GCC, memcpy() translates to a rather fast intrinsic.
- sed(',--wrap=memcpy', '', STX_CONF_DIR / 'vendorConf', true)
+ directory STX_CONF_DIR do | t |
+ mkdir_p t.name()
+ end
+
+ directory STX_CONF_DIR / 'COMMON' do | t |
+ mkdir_p t.name()
end
- task STX_CONF_DIR / 'myConf' do
- if x86_64?
- if ARCH == 'x86_64'
- cp STX_CONF_DIR / 'linux-elf' / 'x86_64' / 'defines' , STX_CONF_DIR / 'myConf'
- else
- cp STX_CONF_DIR / 'linux-elf' / 'amd64_mode32' / 'defines' , STX_CONF_DIR / 'myConf'
- end
+ directory STX_CONF_DIR / 'COMMON' / 'defines' => STX_CONF_DIR / 'COMMON' do | t |
+ File.open(t.name(), "w") do | f |
+ f.puts <<-CONTENTS
+ # Do not edit! Automatically generated by rake (rakelib/#{__FILE__})
+ #
+ # Nothing here, all "common" definitions are included in config file
+ # (`config-<OS>-<ARCH>.make`)
+ CONTENTS
+ end
+ end
+
+ file STX_CONF_DIR / 'vendorConf' => STX_CONF_DIR do | t |
+ makelib_dir = Pathname.new(File.expand_path('makelib')).relative_path_from(Pathname.new(BUILD_DIR / 'stx' ))
+ os = nil
+ case
+ when linux?
+ os = 'linux'
else
- cp STX_CONF_DIR / 'linux-elf' / 'opt-cs-oc' / 'defines' , STX_CONF_DIR / 'myConf'
+ raise Exveption.new("Unssuported operating system")
end
- # Make sure OPT and LIBRUN_OPT is not set forcibly in myConf/vendorConf so it can be
- # set on a command line. We need to tweak them ocasionally, for example to
- # harden options when compiling various librun sources - basically for
- # source files that have been cleaned up to prevent bugs creeping back!.
- #
- # This used to work some time ago but then somebody at eXept hacked
- # makefiles and broke this. Sigh. Sigh. Sigh.
- sed(/^OPT=/, '#OPT=', STX_CONF_DIR / 'myConf', true)
- sed(/^LIBRUN_OPT=/, '#LIBRUN_OPT=', STX_CONF_DIR / 'myConf', true)
- sed(/^OPT=/, '#OPT=', STX_CONF_DIR / 'vendorConf', true)
- sed(/^LIBRUN_OPT=/, '#LIBRUN_OPT=', STX_CONF_DIR / 'vendorConf', true)
+ File.open(t.name(), "w") do | f |
+ f.puts <<-CONTENTS
+ # Do not edit! Automatically generated by rake (rakelib/#{__FILE__})
+ #
+ TOP ?= #{BUILD_DIR / 'stx'}
+ MAKELIB_DIR ?= $(TOP)/#{makelib_dir}
+ include $(MAKELIB_DIR)/config-#{os}-#{ARCH}.make
+ CONTENTS
+ end
+ end
- File.open(STX_CONF_DIR / 'myConf', 'a') do | f |
- if defined? STCCOMMONOPT
- f.puts "STCCOMMONOPT=#{STCCOMMONOPT}"
- end
- f.puts "#"
- f.puts "# following flags are defined in rakelib/compile.rake"
- f.puts "#"
- f.puts "OPT?=#{GCC_CFLAGS}"
- f.puts "LIBRUN_OPT?=$(OPT)"
- f.puts "O_RULE=__STANDARD_O_RULE__"
- f.puts "EXTRA_LIBS=-ldl -lX11 -lXext"
- f.puts "XDEFS+=-DHAVE_FONTCONFIG -DXFT"
- f.puts "XINCLUDE+=$(shell pkg-config --cflags xft)"
- f.puts "LIB_XFT=-l:libXft.so.2 -l:libfontconfig.so.1"
- if x86_64? and ARCH == 'x86_64' then
- f.puts 'MAKE_ZLIB_ARG= "CFLAGS=-fPIC -O3 -DUSE_MMAP"'
- # Hack to build FFI for 64-bit Linux builds
- f.puts 'FFI_OBJS=$(FFI_DIR)/build/src/*.o $(FFI_DIR)/build/src/x86/*.o'
- f.puts 'FFI_DIR=libffi-3.0.10rc8'
- f.puts 'OPTIONAL_HAVE_FFI_ARG=-DHAVE_FFI -I$(TOP)/librun/$(FFI_DIR)/build/include'
- f.puts 'OPTIONAL_FFI_TARGET_IN_LIBRUN=ffi'
- f.puts 'FFI_CC="$(CC) -m64 -fPIC"'
- f.puts 'FFI_LD="ld -m elf_x84_64"'
- end
+ file STX_CONF_DIR / 'myConf' => STX_CONF_DIR do | t |
+ File.open(t.name(), "w") do | f |
+ f.puts <<-CONTENTS
+ # Local modifications / additions specific to this very build, if needed.
+ #
+ CONTENTS
end
end
when win32?
--- a/rakelib/extensions.rb Sat Dec 31 22:47:53 2016 +0000
+++ b/rakelib/extensions.rb Wed Feb 01 22:20:35 2017 +0000
@@ -214,29 +214,13 @@
end
def make(args = '')
- if win32?
- #sh "make.exe -N -f bc.mak #{args}"
- if win32_wine?
- def make_objdir(directory)
- if File.exist? directory / 'bmake.bat'
- #puts "Making objbc in #{directory}"
- if not File.exist?(directory / OBJ_DIR)
- #puts "Made objbc in #{directory}"
- mkdir directory / OBJ_DIR
- end
- Dir.entries(directory).each do | each |
- if each != '.' and each != '..' and File.directory?(directory / each)
- #puts " recursing into #{directory / each}"
- make_objdir(directory / each)
- end
- end
- end
- end
- make_objdir('.')
- sh "wine cmd /c #{MAKE} #{args}"
- else
- sh "#{MAKE} #{args}"
- end
+ if win32?
+ # As of 2017-01-13, mingwmake no longer makes sure objdir exists,
+ # causing mingwmake.bat to fail. To workaround that, make sure
+ # objdir exists.
+ # How could eXept mess up things so badly?
+ mkdir_p OBJ_DIR
+ sh "#{MAKE} #{args}"
else
sh "#{MAKE} #{args}"
end
--- a/rakelib/hglib.rb Sat Dec 31 22:47:53 2016 +0000
+++ b/rakelib/hglib.rb Wed Feb 01 22:20:35 2017 +0000
@@ -302,6 +302,10 @@
def initialize(directory)
@path = directory
+ initialize_config()
+ end
+
+ def initialize_config()
config_file = hgrc()
if File.exist? ( config_file )
$LOGGER.debug("Loading repository config from \"#{config_file}\"")
@@ -311,6 +315,19 @@
end
end
+ # Add / replace given config options and write back
+ # .hg/hgrc
+ def config_set(**options)
+ config = IniFile.new(:filename => self.hgrc())
+ options.each do | section , keys_and_values |
+ keys_and_values.each do | key, value |
+ config[section][key] = value.to_s
+ end
+ end
+ config.write()
+ initialize_config()
+ end
+
# Return a hashmap with defined paths (alias => uri)
def paths()
return @config['paths'].clone
@@ -318,9 +335,7 @@
# Set paths for given repository
def paths=(paths)
- config = IniFile.new(:filename => self.hgrc())
- config['paths'] = paths
- config.write()
+ config_set( paths: paths)
end
def log(revset, template = "{node|short}\n")
--- a/rakelib/scm.rb Sat Dec 31 22:47:53 2016 +0000
+++ b/rakelib/scm.rb Wed Feb 01 22:20:35 2017 +0000
@@ -267,24 +267,28 @@
if repository.staging then
paths['staging'] = "#{repository.staging}/#{directory.gsub('/', separator)}"
end
+ paths['default'] = paths['staging'] || paths['upstream'] || paths['canonical']
begin
- if repository.staging then
- paths['default'] = paths['staging']
- hg = HG::Repository.clone(paths['staging'], root / directory, noupdate: true)
- hg.paths = paths
- hg.pull('upstream') if paths['upstream']
- hg.pull('canonical')
- elsif repository.upstream then
- paths['default'] = paths['upstream']
- hg = HG::Repository.clone(paths['upstream'], root / directory, noupdate: true)
- hg.paths = paths
- hg.pull('canonical')
- else
- paths['default'] = paths['canonical']
- hg = HG::Repository.clone(paths['canonical'], root / directory, noupdate: true)
- hg.paths = paths
- end
+ hg = HG::Repository.init(root / directory)
+ # Configure path aliases.
+ #
+ # Set the repository as non-publishing, This way when cloning from a staging
+ # repo changes in draft phase would remain drafs. This is essential to
+ # employ evolve extension and being able to fix & evolve changes in clones
+ # (on a CI server, for instance) and being able to push back without need to
+ # fiddle around phases.
+ #
+ # The downside is that we cannot do an `uncompressed` pull. This is the price
+ # we have to pay.
+ hg.config_set(
+ phases: { 'publish' => 'false' },
+ paths: paths
+ )
+
+ hg.pull('staging') if repository.staging
+ hg.pull('upstream') if repository.upstream
+ hg.pull('canonical') if repository.canonical
# If revision is not specified, then look for bookmark
# `master`. If it exist, then check out `master`. If it
# does not, then checkout tip or throw an error.
@@ -309,8 +313,16 @@
end
def self._checkout_cvs(repository, directory, branch, root, **kwargs)
+ revision = kwargs[:revision] || nil
+ revision_arg = ''
+ if revision then
+ if not revision.match(/^\d\d\d\d-\d\d-\d\d$/)
+ raise Exception.new("CVS only support date spec as revision: option (YYYY-MM-DD)")
+ end
+ revision_arg = " -D #{revision}"
+ end
ensure_cvs_rsh_set()
- if not sh %W{cvs -z 9 -d #{repository.canonical} co #{directory}}, cwd: root
+ if not sh "cvs -z 9 -d #{repository.canonical} co #{revision_arg} #{directory}", cwd: root
raise CheckoutException.new("CVS: Cannot checkout #{directory}from #{repository.url}")
end
end
--- a/rakelib/test.rake Sat Dec 31 22:47:53 2016 +0000
+++ b/rakelib/test.rake Wed Feb 01 22:20:35 2017 +0000
@@ -102,14 +102,28 @@
project.packages.each do | pkg |
if pkg.test
task "test:package:#{pkg.name}" => [ 'stx:goodies/builder/reports', REPORT_DIR ] do
- if pkg.coverage
- run_report(app, [ pkg.name ], TESTREPORT_CLASS, '', '--coverage')
- else
- run_report(app, [ pkg.name ], TESTREPORT_CLASS)
- end
- # Extract summary from XML report and keep it. Yeah, parsing XML
- # using regexps is a bad thing, but it's quick and lot less code!
report_file = File.expand_path(REPORT_DIR) / "#{pkg.name_components.join('_')}-#{BUILD_ID}-Test.xml"
+ # Sigh, sigh. On CI server, sometimes it happen that tests are simply not run.
+ # I was not able to debug the issue anyhow, any attempt to attach a debugger,
+ # add a debug print or run it manually failed as the problem did not manifest.
+ #
+ # This is a feeble and horrible attempt to just cover up the problem by
+ # trying multiple times. I don't want to spend more time chasing issues
+ # like this. Sorry.
+ #
+ # Let's see if it helps.
+ for i in 1..5 do
+ if pkg.coverage
+ run_report(app, [ pkg.name ], TESTREPORT_CLASS, '', '--coverage')
+ else
+ run_report(app, [ pkg.name ], TESTREPORT_CLASS)
+ end
+ # Extract summary from XML report and keep it. Yeah, parsing XML
+ # using regexps is a bad thing, but it's quick and lot less code!
+ if File.exist? report_file then
+ break
+ end
+ end
report_summary = TestReportSummary.new(pkg.name, report_file);
TestReportSummary::SUMMARIES << report_summary
end
--- a/rakelib/workflow.rake Sat Dec 31 22:47:53 2016 +0000
+++ b/rakelib/workflow.rake Wed Feb 01 22:20:35 2017 +0000
@@ -24,11 +24,12 @@
:pass => pass,
}
paths = hg.paths
- if remote == 'upstream'
+ remote_used = remote
+ if remote_used == 'upstream'
if not paths['upstream'] then
- remote = 'canonical'
+ remote_used = 'canonical'
end
- elsif remote == 'staging'
+ elsif remote_used == 'staging'
if not paths['staging'] then
puts ""
puts "!! repository #{hg.path} has not staging repository defined - skipping !!"
@@ -41,36 +42,33 @@
# to upstream / canonical repo, must be done manually. This is
# mainly beacuse there are on separate protected repositories
# not accessible without a special setup. Sigh...
- if (remote == 'upstream') or (remote == 'canonical') then
- if (pkg.name == 'stx:stc') or (pkg.name == 'stx:librun') then
- puts ""
- puts "== Skipping push of #{pkg.name} - you must push manually =="
- puts ""
- return
- end
- end
-
- if review_only then
- opts[:rev] = '.'
- remote_url = hg.paths[remote] || remote
- bookmark = hg.bookmark()
+ if ((pkg.name == 'stx:stc') or (pkg.name == 'stx:librun')) and ((remote_used == 'upstream') or (remote_used == 'canonical')) then
puts ""
- puts "== changes going to #{remote_url} =="
- puts ""
- hg.outgoing(remote, **opts)
- puts ""
- if push_bookmark and bookmark then
- puts "Will update bookmark '#{bookmark}"
+ puts "== Skipping push of #{pkg.name} - you must push manually =="
+ puts ""
+ else
+ if review_only then
+ opts[:rev] = '.'
+ remote_url = hg.paths[remote_used] || remote_used
+ bookmark = hg.bookmark()
+ puts ""
+ puts "== changes going to #{remote_url} =="
+ puts ""
+ hg.outgoing(remote_used, **opts)
+ puts ""
+ if push_bookmark and bookmark then
+ puts "Will update bookmark '#{bookmark}"
+ end
+ puts "===================================="
+ puts ""
+ else
+ if push_bookmark && bookmark then
+ opts[:bookmarks] = ['.']
+ else
+ opts[:rev] = '.'
+ end
+ hg.push(remote_used, **opts)
end
- puts "===================================="
- puts ""
- else
- if push_bookmark && bookmark then
- opts[:bookmarks] = ['.']
- else
- opts[:rev] = '.'
- end
- hg.push(remote, **opts)
end
end
end
--- a/specs/baseline.rbspec Sat Dec 31 22:47:53 2016 +0000
+++ b/specs/baseline.rbspec Wed Feb 01 22:20:35 2017 +0000
@@ -35,11 +35,10 @@
tasks do
- task :'checkout:buildtools' => [ BUILD_DIR / 'stx' / "rules",
- BUILD_DIR / 'stx' / "configurations",
- BUILD_DIR / 'stx' / "support",
- BUILD_DIR / 'stx' / "RELEASE",
- # needed by applications for *.rc stuff
+ task :'checkout:buildtools' => [ BUILD_DIR / 'stx' / "rules",
+ BUILD_DIR / 'stx' / "support",
+ BUILD_DIR / 'stx' / "RELEASE",
+ # needed by applications for *.rc stuff
BUILD_DIR / 'stx' / 'projects' / 'smalltalk',
# documentation
BUILD_DIR / 'stx' / 'doc' / 'online' / 'english',
@@ -47,7 +46,7 @@
BUILD_DIR / 'stx' / 'doc' / 'online' / 'icons',
# various icons (country flags etc)
BUILD_DIR / 'stx' / 'goodies' / 'bitmaps'
- ]
+ ]
file BUILD_DIR / 'stx' / 'rules' => BUILD_DIR do | t |
checkout :'exept:public', 'stx/rules'
@@ -61,12 +60,6 @@
t.clear()
end
- file BUILD_DIR / 'stx' / 'configurations' => BUILD_DIR do | t |
- checkout :'exept:public', 'stx/configurations'
- # the clear is here to avoid multiple checkouts
- t.clear()
- end
-
file BUILD_DIR / 'stx' / 'doc' / 'online' / 'english' => BUILD_DIR do | t |
checkout :'exept:public', 'stx/doc/online/english'
# the clear is here to avoid multiple checkouts
--- a/specs/stx-jv.rbspec Sat Dec 31 22:47:53 2016 +0000
+++ b/specs/stx-jv.rbspec Wed Feb 01 22:20:35 2017 +0000
@@ -88,6 +88,7 @@
package "stx:libbasic3", :repository => :'bitbucket:janvrany', :branch => 'jv'
package "stx:libcomp", :repository => :'bitbucket:janvrany', :branch => 'jv'
package "stx:libtool", :repository => :'bitbucket:janvrany', :branch => 'jv'
+ package "stx:libtool2",:repository => :'bitbucket:janvrany', :branch => 'jv'
package "stx:libview", :repository => :'bitbucket:janvrany', :branch => 'jv'
package "stx:libview2", :repository => :'bitbucket:janvrany', :branch => 'jv'