Megatest

Diff
Login

Differences From Artifact [9f1e7d5923]:

To Artifact [1ef6c5a153]:


17
18
19
20
21
22
23









24
25
26
27
28
29
30
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


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)/
	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)/lib/libnanomsg.so : tgz-$(USER)/nanomsg-1.0.0.tar.gz
$(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

$(CHICKEN_PREFIX)/chicken-4.13.0/LICENSE : tgz-$(USER)/chicken-4.13.0.tar.gz
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-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)/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;
	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/
	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 sqlite3 iup canvas-draw typed-records md5 regex-case base64 \
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 postgresql nanomsg
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))
# 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 : $(CHICKEN_PREFIX)/bin/sqlite3 $(CHICKEN_PREFIX)/lib/libiupweb.so $(CHICKEN_PREFIX)/chicken-4.13.0/LICENSE
$(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
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
#       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)

# 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)
$(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
	mkdir -p $(PREFIX)/bin $(CHICKEN_PREFIX)/bin

chicken : $(PREFIX)/bin $(CHICKEN_PREFIX)/bin/csi  binwrappers
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)
postgresql.done : $(CHICKEN_PREFIX)/bin/pg_config
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

nanomsg.done : $(CHICKEN_PREFIX)/lib/libnanomsg.so
# 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
	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
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 :
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.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 :
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

%.done :
	$(CHICKEN_PREFIX)/bin/chicken-install $* > $*.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 $(EGGS)
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