17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# along with Megatest. If not, see <http://www.gnu.org/licenses/>.
#======================================================================
# 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)
|
>
>
>
>
>
>
>
>
>
|
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
# along with Megatest. If not, see <http://www.gnu.org/licenses/>.
#======================================================================
# Chicken build
#======================================================================
# CHICKEN_BIN_DIR=$(shell dirname $(shell which csi))
# if have csi on path use that, else use default
# CSIPATH=$(shell which csi)
# CKPATH=$(shell dirname $(shell dirname $(CSIPATH)))
# CHICKEN_PREFIX=$(or $(CKPATH),$(PREFIX)/bin/.$(ARCHSTR))
whatever :
@echo "CHICKEN_PREFIX=$(CHICKEN_PREFIX)"
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)
|
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
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 : $(PREFIX)/bin $(CHICKEN_PREFIX)/bin/csi binwrappers
@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
|
|
>
>
>
|
>
|
>
|
|
|
|
|
|
|
>
>
|
|
|
>
>
>
|
>
|
|
|
|
<
|
|
|
>
>
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
>
|
|
|
|
|
>
>
|
|
|
|
|
|
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
|
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
if [[ -e $(CHICKEN_PREFIX)/bin/pg_config ]];then touch $(CHICKEN_PREFIX)/bin/pg_config;fi
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
if [[ -e build-$(USER)/sqlite-autoconf-3090200/configure ]];then touch build-$(USER)/sqlite-autoconf-3090200/configure;fi
# bin/.11/lib64/libnanomsg.so
$(CHICKEN_PREFIX)/bin/nanocat : 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
# if [[ -e $(CHICKEN_PREFIX)/bin/nanocat ]];then touch $(CHICKEN_PREFIX)/bin/nanocat;fi
build-$(USER)/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
if [[ -e build-$(USER)/chicken-4.13.0/LICENSE ]];then touch build-$(USER)/chicken-4.13.0/LICENSE;fi
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-$(CDVER)_Linux$(IUPARCH)_64_lib.tar.gz > ../cd.tgz
cd tgz-$(USER)/opensrc; fossil unversioned cat libs/im/im-$(IMVER)_Linux$(IUPARCH)_64_lib.tar.gz > ../im.tgz
cd tgz-$(USER)/opensrc; fossil unversioned cat libs/iup/iup-$(IUPVER)_Linux$(IUPARCH)_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;
rsync -av tgz-$(USER)/include/ $(CHICKEN_PREFIX)/include/
rsync -av tgz-$(USER)/*.so $(CHICKEN_PREFIX)/lib/
rsync -av tgz-$(USER)/*.a $(CHICKEN_PREFIX)/lib/
rsync -av tgz-$(USER)/ftgl/lib/*/* $(CHICKEN_PREFIX)/lib/
if [[ -e $(CHICKEN_PREFIX)/lib/libiupweb.so ]];then touch $(CHICKEN_PREFIX)/lib/libiupweb.so;fi
# removed hahn-utils as it requires libgit2
EGGS=srfi-69 srfi-42 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
EGGSTARG=$(addsuffix .done,$(addprefix build-$(USER)/eggs-installed/,$(EGGS)))
# EGGSTARG2=$(addsuffix .done, $(EGGS))
$(EGGSTARG) : sqlite3.done
build-$(USER)/eggs-installed/call-with-environment-variables.done : build-$(USER)/eggs-installed/hahn.done
$(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 : $(SQLITE3_DEPS) build-$(USER)/chicken-4.13.0/LICENSE $(NANOMSG_DEPS)
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
# NOTE: generate this list with an ls of $(CHICKEN_PREFIX)/bin
# removed chicken-bind vacuumdb
ALL_CKBIN=$(shell echo chicken chicken-bug chicken-install chicken-profile \
chicken-status chicken-uninstall csc csi feathers nanocat sqlite3 \
logpro refdb $(shell ls $(CHICKEN_PREFIX)/bin) | sort -u)
CKBIN_WRAPPERS=$(addprefix $(PREFIX)/bin/,$(ALL_CKBIN))
$(PREFIX)/bin/% : $(CHICKEN_PREFIX)/bin/% $(CHICKEN_PREFIX)/bin/csi $(EGGSTARG)
utils/mk_wrapper_tool $(PREFIX) $* $(PREFIX)/bin/$*
chmod a+x $(PREFIX)/bin/$*
$(PREFIX)/bin :
mkdir -p $(PREFIX)/bin $(CHICKEN_PREFIX)/bin
chicken : $(PREFIX)/bin $(CHICKEN_PREFIX)/bin/csi binwrappers iup.done canvas-draw.done nanomsg.done
@echo "Fake target to build prefix chicken"
binwrappers : $(CKBIN_WRAPPERS)
# Turn on postgres if configure did not find the library
ifeq ($(BUILD_POSTGRES),yes)
POSTGRES_DEPS=$(CHICKEN_PREFIX)/bin/pg_config
endif
# Turn on sqlite3 if configure did not find the library
ifeq ($(BUILD_SQLITE3),yes)
SQLITE3_DEPS=$(CHICKEN_PREFIX)/bin/sqlite3
endif
ifeq ($(BUILD_NANOMSG),yes)
NANOMSG_DEPS=$(CHICKEN_PREFIX)/bin/nanocat
endif
# NOTE: added dep to csi in following .done targets to ensure chicken is built first
postgresql.done : $(POSTGRES_DEPS) $(CHICKEN_PREFIX)/bin/csi
CSC_OPTIONS="-I$(CHICKEN_PREFIX)/include -L$(CHICKEN_PREFIX)/lib -L$(CHICKEN_PREFIX)/lib64" $(CHICKEN_PREFIX)/bin/chicken-install postgresql > postgresql.done
# was $(CHICKEN_PREFIX)/lib64/libnanomsg.so
nanomsg.done : $(NANOMSG_DEPS) $(CHICKEN_PREFIX)/bin/csi
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 $(CHICKEN_PREFIX)/lib/libiupweb.so $(CHICKEN_PREFIX)/bin/csi
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$(IUPEGGVER) > iup.done
canvas-draw.done : iup.done $(CHICKEN_PREFIX)/bin/csi
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 : $(SQLITE3_DEPS) $(CHICKEN_PREFIX)/bin/csi
CSC_OPTIONS="-I$(CHICKEN_PREFIX)/include -L$(CHICKEN_PREFIX)/lib" $(CHICKEN_PREFIX)/bin/chicken-install sqlite3 > sqlite3.done
sql-de-lite.done : $(CHICKEN_PREFIX)/bin/csi
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
logpro.done : typed-records.done
build-$(USER)/eggs-installed/%.done :
$(CHICKEN_PREFIX)/bin/chicken-install $* > build-$(USER)/eggs-installed/$*.done
build-$(USER)/eggs-installed/%.done : $(CHICKEN_PREFIX)/bin/csi
$(CHICKEN_PREFIX)/bin/chicken-install $* > build-$(USER)/eggs-installed/$*.done
build-clean :
rm -rf build-$(USER) bin *.done
|