Index: Makefile
==================================================================
--- Makefile
+++ Makefile
@@ -91,10 +91,11 @@
csc $(CSCOPTS) $(OFILES) $(GOFILES) newdashboard.scm -o ndboard
mtut: $(OFILES) $(MOFILES) megatest-fossil-hash.scm mtut.scm
csc $(CSCOPTS) $(OFILES) $(MOFILES) mtut.scm -o mtut
+include makefile.inc
TCMTOBJS = \
api.o \
archive.o \
cgisetup/models/pgdb.o \
@@ -451,141 +452,10 @@
@grep : Makefile | perl -ne '/^([A-Za-z0-9_-]+):/ && print "$$1\n"'
unit :
cd tests;make unit
-
-#======================================================================
-# Chicken build
-#======================================================================
-
-tgz-$(USER)/postgresql-9.6.4.tar.gz :
- mkdir -p tgz-$(USER)
- wget -c https://ftp.postgresql.org/pub/source/v9.6.4/postgresql-9.6.4.tar.gz
- mv postgresql-9.6.4.tar.gz tgz-$(USER)/
-
-tgz-$(USER)/sqlite-autoconf-3090200.tar.gz :
- mkdir -p tgz-$(USER)
- curl http://www.sqlite.org/2015/sqlite-autoconf-3090200.tar.gz > tgz-$(USER)/sqlite-autoconf-3090200.tar.gz
-
-tgz-$(USER)/nanomsg-1.0.0.tar.gz :
- wget --no-check-certificate https://github.com/nanomsg/nanomsg/archive/1.0.0.tar.gz
- mv 1.0.0.tar.gz tgz-$(USER)/nanomsg-1.0.0.tar.gz
-
-tgz-$(USER)/chicken-4.13.0.tar.gz :
- mkdir -p tgz-$(USER)
- curl https://code.call-cc.org/releases/4.13.0/chicken-4.13.0.tar.gz > tgz-$(USER)/chicken-4.13.0.tar.gz
-
-tgz-$(USER)/ffcall.tar.gz :
- wget -c -O tgz-$(USER)/ffcall.tar.gz 'http://www.kiatoa.com/fossils/ffcall/tarball?name=ffcall&uuid=trunk'
-
-$(CHICKEN_PREFIX)/bin/pg_config : tgz-$(USER)/postgresql-9.6.4.tar.gz
- mkdir -p build-$(USER)/
- tar xfz tgz-$(USER)/postgresql-9.6.4.tar.gz -C build-$(USER)
- cd build-$(USER)/postgresql-9.6.4; ./configure --prefix=$(CHICKEN_PREFIX) --with-openssl; make; make install
-
-build-$(USER)/sqlite-autoconf-3090200/configure : tgz-$(USER)/sqlite-autoconf-3090200.tar.gz
- mkdir -p build-$(USER);
- cd build-$(USER); tar xf ../tgz-$(USER)/sqlite-autoconf-3090200.tar.gz
-
-$(CHICKEN_PREFIX)/lib/libnanomsg.so : tgz-$(USER)/nanomsg-1.0.0.tar.gz
- cd tgz-$(USER); tar -xzvf nanomsg-1.0.0.tar.gz
- cd tgz-$(USER)/nanomsg-1.0.0; mkdir build-$(USER); cd build-$(USER);
- cd tgz-$(USER)/nanomsg-1.0.0/build-$(USER); cmake ../ -DCMAKE_INSTALL_PREFIX=$(CHICKEN_PREFIX)
- cd tgz-$(USER)/nanomsg-1.0.0/build-$(USER); make; make install
-
-$(CHICKEN_PREFIX)/chicken-4.13.0/LICENSE : tgz-$(USER)/chicken-4.13.0.tar.gz
- mkdir -p build-$(USER)/eggs-installed
- cd build-$(USER);tar xf ../tgz-$(USER)/chicken-4.13.0.tar.gz
-
-tgz-$(USER)/opensrc.fossil :
- cd tgz-$(USER); fossil clone http://www.kiatoa.com/fossils/opensrc opensrc.fossil
- mkdir tgz-$(USER)/opensrc
- cd tgz-$(USER)/opensrc; fossil open --nested ../opensrc.fossil; fossil up; fossil uv sync
-
-$(CHICKEN_PREFIX)/lib/libiupweb.so : tgz-$(USER)/opensrc.fossil
- cd tgz-$(USER)/opensrc; fossil unversioned cat libs/cd/cd-5.10_Linux26g4_64_lib.tar.gz > ../cd.tgz
- cd tgz-$(USER)/opensrc; fossil unversioned cat libs/im/im-3.11_Linux26g4_64_lib.tar.gz > ../im.tgz
- cd tgz-$(USER)/opensrc; fossil unversioned cat libs/iup/iup-3.19.1_Linux26g4_64_lib.tar.gz > ../iup.tgz
- cd tgz-$(USER); tar -xzf cd.tgz;
- cd tgz-$(USER); tar -xzf im.tgz;
- cd tgz-$(USER); tar -xzf iup.tgz;
- cp tgz-$(USER)/include/* $(CHICKEN_PREFIX)/include/
- cp tgz-$(USER)/*.so $(CHICKEN_PREFIX)/lib/
- cp tgz-$(USER)/*.a $(CHICKEN_PREFIX)/lib/
- cp tgz-$(USER)/ftgl/lib/*/* $(CHICKEN_PREFIX)/lib/
-
-EGGS=srfi-69 srfi-42 sqlite3 iup canvas-draw typed-records md5 regex-case base64 \
-format dot-locking csv-xml z3 udp hostinfo directory-utils stack dbi crypt sha1 \
-posix-extras pathname-expand csv call-with-environment-variables s11n spiffy \
-uri-common intarweb http-client spiffy-request-vars spiffy-directory-listing \
-ansi-escape-sequences test slice rfc3339 uuid-lib filepath srfi-19 sparse-vectors \
-sql-de-lite fmt readline apropos json simple-exceptions rpc trace logpro refdb postgresql nanomsg
-EGGSTARG=$(addsuffix .done,$(addprefix build-$(USER)/eggs-installed/,$(EGGS)))
-EGGSTARG2=$(addsuffix .done, $(EGGS))
-
-$(CHICKEN_PREFIX)/lib/libcallback.a : tgz-$(USER)/ffcall.tar.gz
- cd tgz-$(USER); tar -xzvf ffcall.tar.gz
- cd tgz-$(USER)/ffcall; ./configure --prefix=$(CHICKEN_PREFIX) --enable-shared
- cd tgz-$(USER)/ffcall; make CC="gcc -fPIC"; make install
-
-$(CHICKEN_PREFIX)/bin/sqlite3 : build-$(USER)/sqlite-autoconf-3090200/configure
- cd build-$(USER)/sqlite-autoconf-3090200; ./configure --prefix=$(CHICKEN_PREFIX); make; make install
-
-$(CHICKEN_PREFIX)/bin/csi : $(CHICKEN_PREFIX)/bin/sqlite3 $(CHICKEN_PREFIX)/lib/libiupweb.so $(CHICKEN_PREFIX)/chicken-4.13.0/LICENSE
- cd build-$(USER)/chicken-4.13.0;make PLATFORM=linux PREFIX=$(CHICKEN_PREFIX)
- cd build-$(USER)/chicken-4.13.0;make PLATFORM=linux PREFIX=$(CHICKEN_PREFIX) install
-
-ALL_CKBIN=chicken chicken-bind chicken-bug chicken-dump \
-chicken-install chicken-profile chicken-sqlite3 chicken-status \
-chicken-uninstall csc csi feathers nanocat sqlite3 vacuumdb logpro \
-refdb
-
-# CHICKEN_BIN_DIR=$(shell dirname $(shell which csi))
-CKBIN_WRAPPERS=$(addprefix $(PREFIX)/bin/,$(ALL_CKBIN))
-
-
-$(PREFIX)/bin/% : $(CHICKEN_PREFIX)/bin/% $(CHICKEN_PREFIX)/bin/csi $(EGGSTARG2)
- utils/mk_wrapper_tool $(PREFIX) $* $(PREFIX)/bin/$*
- chmod a+x $(PREFIX)/bin/$*
-
-$(PREFIX)/bin :
- mkdir -p $(PREFIX)/bin
-
-chicken : $(CKBIN_WRAPPERS) $(PREFIX)/bin
- @echo "Fake target to build prefix chicken"
-
-binwrappers : $(CKBIN_WRAPPERS)
-
-postgresql.done : $(CHICKEN_PREFIX)/bin/pg_config
- CSC_OPTIONS="-I$(CHICKEN_PREFIX)/include -L$(CHICKEN_PREFIX)/lib -L$(CHICKEN_PREFIX)/lib64" $(CHICKEN_PREFIX)/bin/chicken-install postgresql > postgresql.done
-
-nanomsg.done : $(CHICKEN_PREFIX)/lib/libnanomsg.so
- CSC_OPTIONS="-I$(CHICKEN_PREFIX)/include -L$(CHICKEN_PREFIX)/lib -L$(CHICKEN_PREFIX)/lib64" $(CHICKEN_PREFIX)/bin/chicken-install nanomsg > nanomsg.done
-
-iup.done : $(CHICKEN_PREFIX)/lib/libcallback.a
- CSC_OPTIONS="-I$(CHICKEN_PREFIX)/include -L$(CHICKEN_PREFIX)/lib" $(CHICKEN_PREFIX)/bin/chicken-install -D no-library-checks -feature disable-iup-web -feature disable-iup-pplot -feature disable-iup-matrixex iup > iup.done
-
-canvas-draw.done :
- CSC_OPTIONS="-I$(CHICKEN_PREFIX)/include -L$(CHICKEN_PREFIX)/lib" $(CHICKEN_PREFIX)/bin/chicken-install -D no-library-checks canvas-draw > canvas-draw.done
-
-sqlite3.done :
- CSC_OPTIONS="-I$(CHICKEN_PREFIX)/include -L$(CHICKEN_PREFIX)/lib" $(CHICKEN_PREFIX)/bin/chicken-install sqlite3 > sqlite3.done
-
-sql-de-lite.done :
- CSC_OPTIONS="-I$(CHICKEN_PREFIX)/include -L$(CHICKEN_PREFIX)/lib" $(CHICKEN_PREFIX)/bin/chicken-install sql-de-lite > sql-de-lite.done
-
-dbi.done : postgresql.done sqlite3.done sql-de-lite.done
- CSC_OPTIONS="-I$(CHICKEN_PREFIX)/include -L$(CHICKEN_PREFIX)/lib" $(CHICKEN_PREFIX)/bin/chicken-install dbi > dbi.done
-
-%.done :
- $(CHICKEN_PREFIX)/bin/chicken-install $* > $*.done
-
-build-$(USER)/eggs-installed/%.done : $(CHICKEN_PREFIX)/bin/csi $(EGGS)
- $(CHICKEN_PREFIX)/bin/chicken-install $* > build-$(USER)/eggs-installed/$*.done
-
-
#======================================================================
# Attic
#======================================================================
ADDED chicken.makefile
Index: chicken.makefile
==================================================================
--- /dev/null
+++ chicken.makefile
@@ -0,0 +1,149 @@
+
+# Copyright 2006-2017, Matthew Welland.
+#
+# This file is part of Megatest.
+#
+# Megatest is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Megatest is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Megatest. If not, see .
+
+
+#======================================================================
+# Chicken build
+#======================================================================
+
+tgz-$(USER)/postgresql-9.6.4.tar.gz :
+ mkdir -p tgz-$(USER)
+ wget -c https://ftp.postgresql.org/pub/source/v9.6.4/postgresql-9.6.4.tar.gz
+ mv postgresql-9.6.4.tar.gz tgz-$(USER)/
+
+tgz-$(USER)/sqlite-autoconf-3090200.tar.gz :
+ mkdir -p tgz-$(USER)
+ curl http://www.sqlite.org/2015/sqlite-autoconf-3090200.tar.gz > tgz-$(USER)/sqlite-autoconf-3090200.tar.gz
+
+tgz-$(USER)/nanomsg-1.0.0.tar.gz :
+ wget --no-check-certificate https://github.com/nanomsg/nanomsg/archive/1.0.0.tar.gz
+ mv 1.0.0.tar.gz tgz-$(USER)/nanomsg-1.0.0.tar.gz
+
+tgz-$(USER)/chicken-4.13.0.tar.gz :
+ mkdir -p tgz-$(USER)
+ curl https://code.call-cc.org/releases/4.13.0/chicken-4.13.0.tar.gz > tgz-$(USER)/chicken-4.13.0.tar.gz
+
+tgz-$(USER)/ffcall.tar.gz :
+ wget -c -O tgz-$(USER)/ffcall.tar.gz 'http://www.kiatoa.com/fossils/ffcall/tarball?name=ffcall&uuid=trunk'
+
+$(CHICKEN_PREFIX)/bin/pg_config : tgz-$(USER)/postgresql-9.6.4.tar.gz
+ mkdir -p build-$(USER)/
+ tar xfz tgz-$(USER)/postgresql-9.6.4.tar.gz -C build-$(USER)
+ cd build-$(USER)/postgresql-9.6.4; ./configure --prefix=$(CHICKEN_PREFIX) --with-openssl; make; make install
+
+build-$(USER)/sqlite-autoconf-3090200/configure : tgz-$(USER)/sqlite-autoconf-3090200.tar.gz
+ mkdir -p build-$(USER);
+ cd build-$(USER); tar xf ../tgz-$(USER)/sqlite-autoconf-3090200.tar.gz
+
+$(CHICKEN_PREFIX)/lib/libnanomsg.so : tgz-$(USER)/nanomsg-1.0.0.tar.gz
+ cd tgz-$(USER); tar -xzvf nanomsg-1.0.0.tar.gz
+ cd tgz-$(USER)/nanomsg-1.0.0; mkdir build-$(USER); cd build-$(USER);
+ cd tgz-$(USER)/nanomsg-1.0.0/build-$(USER); cmake ../ -DCMAKE_INSTALL_PREFIX=$(CHICKEN_PREFIX)
+ cd tgz-$(USER)/nanomsg-1.0.0/build-$(USER); make; make install
+
+$(CHICKEN_PREFIX)/chicken-4.13.0/LICENSE : tgz-$(USER)/chicken-4.13.0.tar.gz
+ mkdir -p build-$(USER)/eggs-installed
+ cd build-$(USER);tar xf ../tgz-$(USER)/chicken-4.13.0.tar.gz
+
+tgz-$(USER)/opensrc.fossil :
+ cd tgz-$(USER); fossil clone http://www.kiatoa.com/fossils/opensrc opensrc.fossil
+ mkdir tgz-$(USER)/opensrc
+ cd tgz-$(USER)/opensrc; fossil open --nested ../opensrc.fossil; fossil up; fossil uv sync
+
+$(CHICKEN_PREFIX)/lib/libiupweb.so : tgz-$(USER)/opensrc.fossil
+ cd tgz-$(USER)/opensrc; fossil unversioned cat libs/cd/cd-5.10_Linux26g4_64_lib.tar.gz > ../cd.tgz
+ cd tgz-$(USER)/opensrc; fossil unversioned cat libs/im/im-3.11_Linux26g4_64_lib.tar.gz > ../im.tgz
+ cd tgz-$(USER)/opensrc; fossil unversioned cat libs/iup/iup-3.19.1_Linux26g4_64_lib.tar.gz > ../iup.tgz
+ cd tgz-$(USER); tar -xzf cd.tgz;
+ cd tgz-$(USER); tar -xzf im.tgz;
+ cd tgz-$(USER); tar -xzf iup.tgz;
+ cp tgz-$(USER)/include/* $(CHICKEN_PREFIX)/include/
+ cp tgz-$(USER)/*.so $(CHICKEN_PREFIX)/lib/
+ cp tgz-$(USER)/*.a $(CHICKEN_PREFIX)/lib/
+ cp tgz-$(USER)/ftgl/lib/*/* $(CHICKEN_PREFIX)/lib/
+
+EGGS=srfi-69 srfi-42 sqlite3 iup canvas-draw typed-records md5 regex-case base64 \
+format dot-locking csv-xml z3 udp hostinfo directory-utils stack dbi crypt sha1 \
+posix-extras pathname-expand csv call-with-environment-variables s11n spiffy \
+uri-common intarweb http-client spiffy-request-vars spiffy-directory-listing \
+ansi-escape-sequences test slice rfc3339 uuid-lib filepath srfi-19 sparse-vectors \
+sql-de-lite fmt readline apropos json simple-exceptions rpc trace logpro refdb postgresql nanomsg
+EGGSTARG=$(addsuffix .done,$(addprefix build-$(USER)/eggs-installed/,$(EGGS)))
+EGGSTARG2=$(addsuffix .done, $(EGGS))
+
+$(CHICKEN_PREFIX)/lib/libcallback.a : tgz-$(USER)/ffcall.tar.gz
+ cd tgz-$(USER); tar -xzvf ffcall.tar.gz
+ cd tgz-$(USER)/ffcall; ./configure --prefix=$(CHICKEN_PREFIX) --enable-shared
+ cd tgz-$(USER)/ffcall; make CC="gcc -fPIC"; make install
+
+$(CHICKEN_PREFIX)/bin/sqlite3 : build-$(USER)/sqlite-autoconf-3090200/configure
+ cd build-$(USER)/sqlite-autoconf-3090200; ./configure --prefix=$(CHICKEN_PREFIX); make; make install
+
+$(CHICKEN_PREFIX)/bin/csi : $(CHICKEN_PREFIX)/bin/sqlite3 $(CHICKEN_PREFIX)/lib/libiupweb.so $(CHICKEN_PREFIX)/chicken-4.13.0/LICENSE
+ cd build-$(USER)/chicken-4.13.0;make PLATFORM=linux PREFIX=$(CHICKEN_PREFIX)
+ cd build-$(USER)/chicken-4.13.0;make PLATFORM=linux PREFIX=$(CHICKEN_PREFIX) install
+
+ALL_CKBIN=chicken chicken-bind chicken-bug chicken-dump \
+chicken-install chicken-profile chicken-sqlite3 chicken-status \
+chicken-uninstall csc csi feathers nanocat sqlite3 vacuumdb logpro \
+refdb
+
+# CHICKEN_BIN_DIR=$(shell dirname $(shell which csi))
+CKBIN_WRAPPERS=$(addprefix $(PREFIX)/bin/,$(ALL_CKBIN))
+
+$(PREFIX)/bin/% : $(CHICKEN_PREFIX)/bin/% $(CHICKEN_PREFIX)/bin/csi $(EGGSTARG2)
+ utils/mk_wrapper_tool $(PREFIX) $* $(PREFIX)/bin/$*
+ chmod a+x $(PREFIX)/bin/$*
+
+$(PREFIX)/bin :
+ mkdir -p $(PREFIX)/bin
+
+chicken : $(CKBIN_WRAPPERS) $(PREFIX)/bin
+ @echo "Fake target to build prefix chicken"
+
+binwrappers : $(CKBIN_WRAPPERS)
+
+postgresql.done : $(CHICKEN_PREFIX)/bin/pg_config
+ CSC_OPTIONS="-I$(CHICKEN_PREFIX)/include -L$(CHICKEN_PREFIX)/lib -L$(CHICKEN_PREFIX)/lib64" $(CHICKEN_PREFIX)/bin/chicken-install postgresql > postgresql.done
+
+nanomsg.done : $(CHICKEN_PREFIX)/lib/libnanomsg.so
+ CSC_OPTIONS="-I$(CHICKEN_PREFIX)/include -L$(CHICKEN_PREFIX)/lib -L$(CHICKEN_PREFIX)/lib64" $(CHICKEN_PREFIX)/bin/chicken-install nanomsg > nanomsg.done
+
+iup.done : $(CHICKEN_PREFIX)/lib/libcallback.a
+ CSC_OPTIONS="-I$(CHICKEN_PREFIX)/include -L$(CHICKEN_PREFIX)/lib" $(CHICKEN_PREFIX)/bin/chicken-install -D no-library-checks -feature disable-iup-web -feature disable-iup-pplot -feature disable-iup-matrixex iup > iup.done
+
+canvas-draw.done :
+ CSC_OPTIONS="-I$(CHICKEN_PREFIX)/include -L$(CHICKEN_PREFIX)/lib" $(CHICKEN_PREFIX)/bin/chicken-install -D no-library-checks canvas-draw > canvas-draw.done
+
+sqlite3.done :
+ CSC_OPTIONS="-I$(CHICKEN_PREFIX)/include -L$(CHICKEN_PREFIX)/lib" $(CHICKEN_PREFIX)/bin/chicken-install sqlite3 > sqlite3.done
+
+sql-de-lite.done :
+ CSC_OPTIONS="-I$(CHICKEN_PREFIX)/include -L$(CHICKEN_PREFIX)/lib" $(CHICKEN_PREFIX)/bin/chicken-install sql-de-lite > sql-de-lite.done
+
+dbi.done : postgresql.done sqlite3.done sql-de-lite.done
+ CSC_OPTIONS="-I$(CHICKEN_PREFIX)/include -L$(CHICKEN_PREFIX)/lib" $(CHICKEN_PREFIX)/bin/chicken-install dbi > dbi.done
+
+%.done :
+ $(CHICKEN_PREFIX)/bin/chicken-install $* > $*.done
+
+build-$(USER)/eggs-installed/%.done : $(CHICKEN_PREFIX)/bin/csi $(EGGS)
+ $(CHICKEN_PREFIX)/bin/chicken-install $* > build-$(USER)/eggs-installed/$*.done
+
+
+
ADDED configure
Index: configure
==================================================================
--- /dev/null
+++ configure
@@ -0,0 +1,72 @@
+#!/bin/bash
+
+# Copyright 2006-2017, Matthew Welland.
+#
+# This file is part of Megatest.
+#
+# Megatest is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+#
+# Megatest is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with Megatest. If not, see .
+
+# Configure the build
+
+#======================================================================
+# Configure stuff needed for eggs
+#======================================================================
+
+function configure_dependencies () {
+
+ #======================================================================
+ # libnanomsg
+ #======================================================================
+
+ if [[ ! $(ls /usr/lib/*/libnanomsg*) ]];then
+ echo "libnanomsg build needed."
+ echo "BUILD_NANOMSG=yes" >> makefile.inc
+ fi
+
+ #======================================================================
+ # postgresql libraries
+ #======================================================================
+
+ if [[ ! $(ls /usr/lib/*/libpq.*) ]];then
+ echo "Postgresql build needed."
+ echo "BUILD_POSTGRES=yes" >> makefile.inc
+ fi
+
+ if [[ ! $(ls /usr/lib/libsqlite3.*) ]];then
+ echo "Sqlite3 build needed."
+ echo "BUILD_SQLITE3=yes" >> makefile.inc
+ fi
+
+}
+
+#======================================================================
+# Initialize makefile.inc
+#======================================================================
+
+echo "" > makefile.inc
+
+#======================================================================
+# Do we need Chicken?
+#======================================================================
+
+if [[ ! $(type csi) ]];then
+ echo "Chicken build needed."
+ echo "BUILD_CHICKEN=yes" >> makefile.inc
+ configure_dependencies
+ echo "include chicken.makefile" >> makefile.inc
+fi
+
+echo "All done creating makefile.inc, feel free to edit it!"
+
+