# HG changeset patch # User Jan Vrany # Date 1485987635 0 # Node ID 95149f95cb5c08785d164a11c3d03d59f466d238 # Parent cbc152f322a887d48e5ea7a9b2c77f63b40866ca# Parent 1929fa1590dad62cfb7b7cf6ba966d8dec959e73 Merge diff -r cbc152f322a8 -r 95149f95cb5c makelib/README.md --- /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) + diff -r cbc152f322a8 -r 95149f95cb5c makelib/config-linux-i386.make --- /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 diff -r cbc152f322a8 -r 95149f95cb5c makelib/config-linux-x86_64.make --- /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" diff -r cbc152f322a8 -r 95149f95cb5c makelib/config-linux.make --- /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 --------------------- diff -r cbc152f322a8 -r 95149f95cb5c makelib/config.make --- /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//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 +# +# for true OpenGL: +# CC_OPENGL_FLAGS=-DOPENGL -I + +# +# 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 --------------------- diff -r cbc152f322a8 -r 95149f95cb5c pipeline.groovy --- 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; diff -r cbc152f322a8 -r 95149f95cb5c rakelib/compile.rake --- 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--.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? diff -r cbc152f322a8 -r 95149f95cb5c rakelib/extensions.rb --- 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 diff -r cbc152f322a8 -r 95149f95cb5c rakelib/hglib.rb --- 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") diff -r cbc152f322a8 -r 95149f95cb5c rakelib/scm.rb --- 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 diff -r cbc152f322a8 -r 95149f95cb5c rakelib/test.rake --- 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 diff -r cbc152f322a8 -r 95149f95cb5c rakelib/workflow.rake --- 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 diff -r cbc152f322a8 -r 95149f95cb5c specs/baseline.rbspec --- 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 diff -r cbc152f322a8 -r 95149f95cb5c specs/stx-jv.rbspec --- 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'