Index: Makefile ================================================================== --- Makefile +++ Makefile @@ -16,11 +16,11 @@ # along with Megatest. If not, see . # make install CSCOPTS='-accumulate-profile -profile-name $(PWD)/profile-ww$(shell date +%V.%u)' # rm .o ; make install CSCOPTS='-profile' ; ... ; chicken-profile | less SHELL=/bin/bash -PREFIX=$(PWD) +PREFIX=$(PWD)/tmpinstall CSCOPTS= INSTALL=install SRCFILES = common.scm items.scm launch.scm \ ods.scm runconfig.scm server.scm \ db.scm keys.scm margs.scm megatest-version.scm \ @@ -30,12 +30,12 @@ ezsteps.scm lock-queue.scm sdb.scm \ rmt.scm api.scm subrun.scm \ portlogger.scm archive.scm env.scm diff-report.scm cgisetup/models/pgdb.scm # module source files -MSRCFILES = ftail.scm mtconfigf.scm -# mtcommon.scm mtdb.scm +MSRCFILES = ftail.scm +# mtcommon.scm mtdb.scm mtconfigf.scm # Eggs to install (straightforward ones) EGGS=matchable readline apropos base64 regex-literals format regex-case test coops trace csv \ dot-locking posix-utils posix-extras directory-utils hostinfo tcp-server rpc csv-xml fmt \ json md5 awful http-client spiffy uri-common intarweb spiffy-request-vars \ @@ -54,14 +54,20 @@ ADTLSCR=mt_laststep mt_runstep mt_ezstep HELPERS=$(addprefix $(PREFIX)/bin/,$(ADTLSCR)) DEPLOYHELPERS=$(addprefix deploytarg/,$(ADTLSCR)) MTESTHASH=$(shell fossil info|grep checkout:| awk '{print $$2}') +MT_EGGS_BASE=$(PREFIX)/eggs +MT_EGGS_DIR=$(MT_EGGS_BASE)/lib/chicken/7 +MTEGGS=$(MT_EGGS_DIR)/mtconfigf.so +CHICKEN_REPOSITORY=$(MT_EGGS_BASE) + ifeq ($(MTESTHASH),) $(error MTESTHASH is broken!) endif +CKREPOSITORY=$(shell chicken-install -repository) CSIPATH=$(shell which csi) CKPATH=$(shell dirname $(shell dirname $(CSIPATH))) # ARCHSTR=$(shell uname -m)_$(shell uname -r) # BASH_MACHTYPE=$(shell bash -c "echo \$$MACHTYPE") # ARCHSTR=$(BASH_MACHTYPE)_$(shell lsb_release -sr) @@ -69,11 +75,11 @@ # ARCHSTR=$(shell bash -c "echo \$$MACHTYPE") PNGFILES = $(shell cd docs/manual;ls *png) #all : $(PREFIX)/bin/.$(ARCHSTR) mtest dboard mtut ndboard -all : $(PREFIX)/bin/.$(ARCHSTR) mtest dboard mtut +all : $(PREFIX)/bin/.$(ARCHSTR) mtest dboard mtut eggs mtest: $(OFILES) readline-fix.scm megatest.o $(MOFILES) csc $(CSCOPTS) $(OFILES) $(MOFILES) megatest.o -o mtest showmtesthash: @@ -82,10 +88,12 @@ dboard : $(OFILES) $(GOFILES) dashboard.scm $(MOFILES) csc $(CSCOPTS) $(OFILES) dashboard.scm $(GOFILES) $(MOFILES) -o dboard mtut: $(OFILES) $(MOFILES) megatest-fossil-hash.scm mtut.scm csc $(CSCOPTS) $(OFILES) $(MOFILES) mtut.scm -o mtut + +eggs: $(MTEGGS) # Needed only for adat.scm OPENSRC_DIR=../opensrc MTUTILS_DIR=$(OPENSRC_DIR)/mtutils ../adat.scm : $(MTUTILS_DIR)/adat.scm @@ -126,12 +134,13 @@ runs.o \ server.o \ tasks.o \ tdb.o \ tests.o \ - subrun.o \ - mtconfigf.o + subrun.o + +# mtconfigf.o tcmt : $(TCMTOBJS) tcmt.scm csc $(CSCOPTS) $(TCMTOBJS) tcmt.scm -o tcmt # install documentation to $(PREFIX)/docs @@ -149,17 +158,30 @@ $(PREFIX)/share/db/mt-pg.sql : mt-pg.sql mkdir -p $(PREFIX)/share/db $(INSTALL) mt-pg.sql $(PREFIX)/share/db/mt-pg.sql +# setup the eggs dir in $PREFIX +# +$(MT_EGGS_DIR) : + mkdir -p $(MT_EGGS_DIR) + +$(MT_EGGS_DIR)/types.db : $(MT_EGGS_DIR) + cp -rs $(CKREPOSITORY)/ $(MT_EGGS_BASE)/lib/chicken/ + +# chicken-install -init $(MT_EGGS_DIR) + +$(MT_EGGS_DIR)/mtconfigf.so : $(MT_EGGS_DIR)/types.db $(MTUTILS_DIR)/mtconfigf/mtconfigf.scm + cd $(MTUTILS_DIR)/mtconfigf && chicken-install -prefix $(MT_EGGS_BASE) + # # Special dependencies for the includes # # anything that depends on the special MOFILES needs to be listed on the left here launch.o : $(MOFILES) -mtconfigf.o : $(MTUTILS_DIR)/mtconfigf/mtconfigf.scm +# mtconfigf.o : $(MTUTILS_DIR)/mtconfigf/mtconfigf.scm tests.o db.o launch.o runs.o dashboard-tests.o dashboard-context-menu.o dashboard-guimonitor.o dashboard-main.o monitor.o dashboard.o \ archive.o megatest.o : db_records.scm tests.o runs.o dashboard.o dashboard-tests.o dashboard-context-menu.o dashboard-main.o : run_records.scm db.o ezsteps.o keys.o launch.o megatest.o monitor.o runs-for-ref.o runs.o tests.o : key_records.scm @@ -279,10 +301,12 @@ make -C helpers $@ PREFIX=$(PREFIX) INSTALL=$(INSTALL) ARCHSTR=$(ARCHSTR) mtest-reaper: $(PREFIX)/bin/mtest-reaper # install dashboard as dboard so wrapper script can be called dashboard +# NOTE: Should be able to add something like -Wl,'$ORIGIN/../lib' to find IUP libs +# $(PREFIX)/bin/.$(ARCHSTR)/dboard : dboard $(FILES) utils/mk_wrapper utils/mk_wrapper $(PREFIX) dboard $(PREFIX)/bin/dashboard chmod a+x $(PREFIX)/bin/dashboard $(INSTALL) dboard $(PREFIX)/bin/.$(ARCHSTR)/dboard Index: common.scm ================================================================== --- common.scm +++ common.scm @@ -26,10 +26,12 @@ (prefix sqlite3 sqlite3:) pkts (prefix dbi dbi:) ) (declare (unit common)) +(declare (uses mtconfigf)) +(import (prefix mtconfigf configf:)) (include "common_records.scm") ;; (require-library margs) Index: utils/mk_wrapper ================================================================== --- utils/mk_wrapper +++ utils/mk_wrapper @@ -23,15 +23,18 @@ cfgfile="$prefix/bin/.$(lsb_release -sr)/cfg.sh" if [ "$LD_LIBRARY_PATH" != "" ];then echo "INFO: Using LD_LIBRARY_PATH=$LD_LIBRARY_PATH" >&2 ( cat << __EOF -if [ "\$LD_LIBRARY_PATH" != "" ];then +if [[ -z \$LD_LIBRARY_PATH ]];then export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:\$LD_LIBRARY_PATH else export LD_LIBRARY_PATH=$LD_LIBRARY_PATH fi +if [[ -z \$CHICKEN_REPOSITORY ]];then + export CHICKEN_REPOSITORY=$prefix/eggs/chicken/lib/7 +fi __EOF ) > $cfgfile echo else echo "INFO: LD_LIBRARY_PATH not set" >&2