Skip to content

Commit bb84ada

Browse files
committed
Merge remote-tracking branch 'jayrm/fbc-1.10' into master
2 parents 9b8162e + a647b95 commit bb84ada

File tree

10 files changed

+189
-90
lines changed

10 files changed

+189
-90
lines changed

contrib/manifest/FreeBASIC-dos.lst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1758,6 +1758,7 @@ inc/lzo/lzo_asm.bi
17581758
inc/lzo/lzoconf.bi
17591759
inc/lzo/lzodefs.bi
17601760
inc/lzo/lzoutil.bi
1761+
inc/mariadb.bi
17611762
inc/mxml.bi
17621763
inc/pcre-common.bi
17631764
inc/pcre.bi

contrib/manifest/FreeBASIC-win32-mingworg.lst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2723,6 +2723,7 @@ inc/lzo/lzo_asm.bi
27232723
inc/lzo/lzoconf.bi
27242724
inc/lzo/lzodefs.bi
27252725
inc/lzo/lzoutil.bi
2726+
inc/mariadb.bi
27262727
inc/modplug.bi
27272728
inc/mpg123.bi
27282729
inc/mxml.bi
@@ -2885,6 +2886,7 @@ inc/win/dxerr9.bi
28852886
inc/win/edevdefs.bi
28862887
inc/win/errors.bi
28872888
inc/win/evcode.bi
2889+
inc/win/excpt.bi
28882890
inc/win/exdisp.bi
28892891
inc/win/gdiplus-c.bi
28902892
inc/win/guiddef.bi
@@ -2986,6 +2988,7 @@ inc/win/schannel.bi
29862988
inc/win/schemadef.bi
29872989
inc/win/schnlsp.bi
29882990
inc/win/scrnsave.bi
2991+
inc/win/sdkddkver.bi
29892992
inc/win/secext.bi
29902993
inc/win/security.bi
29912994
inc/win/servprov.bi

contrib/manifest/FreeBASIC-win32.lst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2738,6 +2738,7 @@ inc/lzo/lzo_asm.bi
27382738
inc/lzo/lzoconf.bi
27392739
inc/lzo/lzodefs.bi
27402740
inc/lzo/lzoutil.bi
2741+
inc/mariadb.bi
27412742
inc/modplug.bi
27422743
inc/mpg123.bi
27432744
inc/mxml.bi
@@ -2900,6 +2901,7 @@ inc/win/dxerr9.bi
29002901
inc/win/edevdefs.bi
29012902
inc/win/errors.bi
29022903
inc/win/evcode.bi
2904+
inc/win/excpt.bi
29032905
inc/win/exdisp.bi
29042906
inc/win/gdiplus-c.bi
29052907
inc/win/guiddef.bi
@@ -3001,6 +3003,7 @@ inc/win/schannel.bi
30013003
inc/win/schemadef.bi
30023004
inc/win/schnlsp.bi
30033005
inc/win/scrnsave.bi
3006+
inc/win/sdkddkver.bi
30043007
inc/win/secext.bi
30053008
inc/win/security.bi
30063009
inc/win/servprov.bi

contrib/manifest/FreeBASIC-win64.lst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2677,6 +2677,7 @@ inc/lzo/lzo_asm.bi
26772677
inc/lzo/lzoconf.bi
26782678
inc/lzo/lzodefs.bi
26792679
inc/lzo/lzoutil.bi
2680+
inc/mariadb.bi
26802681
inc/modplug.bi
26812682
inc/mpg123.bi
26822683
inc/mxml.bi
@@ -2821,6 +2822,7 @@ inc/win/dxerr9.bi
28212822
inc/win/edevdefs.bi
28222823
inc/win/errors.bi
28232824
inc/win/evcode.bi
2825+
inc/win/excpt.bi
28242826
inc/win/exdisp.bi
28252827
inc/win/gdiplus-c.bi
28262828
inc/win/guiddef.bi
@@ -2913,6 +2915,7 @@ inc/win/schannel.bi
29132915
inc/win/schemadef.bi
29142916
inc/win/schnlsp.bi
29152917
inc/win/scrnsave.bi
2918+
inc/win/sdkddkver.bi
29162919
inc/win/secext.bi
29172920
inc/win/security.bi
29182921
inc/win/servprov.bi

contrib/manifest/fbc-dos.lst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -458,6 +458,7 @@ include/freebas/lzo/lzo_asm.bi
458458
include/freebas/lzo/lzoconf.bi
459459
include/freebas/lzo/lzodefs.bi
460460
include/freebas/lzo/lzoutil.bi
461+
include/freebas/mariadb.bi
461462
include/freebas/mxml.bi
462463
include/freebas/pcre-common.bi
463464
include/freebas/pcre.bi

contrib/manifest/fbc-win32-mingworg.lst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1017,6 +1017,7 @@ include/freebasic/lzo/lzo_asm.bi
10171017
include/freebasic/lzo/lzoconf.bi
10181018
include/freebasic/lzo/lzodefs.bi
10191019
include/freebasic/lzo/lzoutil.bi
1020+
include/freebasic/mariadb.bi
10201021
include/freebasic/modplug.bi
10211022
include/freebasic/mpg123.bi
10221023
include/freebasic/mxml.bi
@@ -1179,6 +1180,7 @@ include/freebasic/win/dxerr9.bi
11791180
include/freebasic/win/edevdefs.bi
11801181
include/freebasic/win/errors.bi
11811182
include/freebasic/win/evcode.bi
1183+
include/freebasic/win/excpt.bi
11821184
include/freebasic/win/exdisp.bi
11831185
include/freebasic/win/gdiplus-c.bi
11841186
include/freebasic/win/guiddef.bi
@@ -1280,6 +1282,7 @@ include/freebasic/win/schannel.bi
12801282
include/freebasic/win/schemadef.bi
12811283
include/freebasic/win/schnlsp.bi
12821284
include/freebasic/win/scrnsave.bi
1285+
include/freebasic/win/sdkddkver.bi
12831286
include/freebasic/win/secext.bi
12841287
include/freebasic/win/security.bi
12851288
include/freebasic/win/servprov.bi

contrib/manifest/fbc-win32.lst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1017,6 +1017,7 @@ include/freebasic/lzo/lzo_asm.bi
10171017
include/freebasic/lzo/lzoconf.bi
10181018
include/freebasic/lzo/lzodefs.bi
10191019
include/freebasic/lzo/lzoutil.bi
1020+
include/freebasic/mariadb.bi
10201021
include/freebasic/modplug.bi
10211022
include/freebasic/mpg123.bi
10221023
include/freebasic/mxml.bi
@@ -1179,6 +1180,7 @@ include/freebasic/win/dxerr9.bi
11791180
include/freebasic/win/edevdefs.bi
11801181
include/freebasic/win/errors.bi
11811182
include/freebasic/win/evcode.bi
1183+
include/freebasic/win/excpt.bi
11821184
include/freebasic/win/exdisp.bi
11831185
include/freebasic/win/gdiplus-c.bi
11841186
include/freebasic/win/guiddef.bi
@@ -1280,6 +1282,7 @@ include/freebasic/win/schannel.bi
12801282
include/freebasic/win/schemadef.bi
12811283
include/freebasic/win/schnlsp.bi
12821284
include/freebasic/win/scrnsave.bi
1285+
include/freebasic/win/sdkddkver.bi
12831286
include/freebasic/win/secext.bi
12841287
include/freebasic/win/security.bi
12851288
include/freebasic/win/servprov.bi

contrib/manifest/fbc-win64.lst

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -956,6 +956,7 @@ include/freebasic/lzo/lzo_asm.bi
956956
include/freebasic/lzo/lzoconf.bi
957957
include/freebasic/lzo/lzodefs.bi
958958
include/freebasic/lzo/lzoutil.bi
959+
include/freebasic/mariadb.bi
959960
include/freebasic/modplug.bi
960961
include/freebasic/mpg123.bi
961962
include/freebasic/mxml.bi
@@ -1100,6 +1101,7 @@ include/freebasic/win/dxerr9.bi
11001101
include/freebasic/win/edevdefs.bi
11011102
include/freebasic/win/errors.bi
11021103
include/freebasic/win/evcode.bi
1104+
include/freebasic/win/excpt.bi
11031105
include/freebasic/win/exdisp.bi
11041106
include/freebasic/win/gdiplus-c.bi
11051107
include/freebasic/win/guiddef.bi
@@ -1192,6 +1194,7 @@ include/freebasic/win/schannel.bi
11921194
include/freebasic/win/schemadef.bi
11931195
include/freebasic/win/schnlsp.bi
11941196
include/freebasic/win/scrnsave.bi
1197+
include/freebasic/win/sdkddkver.bi
11951198
include/freebasic/win/secext.bi
11961199
include/freebasic/win/security.bi
11971200
include/freebasic/win/servprov.bi

contrib/release/build-bsd.sh

Lines changed: 86 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -24,28 +24,46 @@
2424
# - a remote branch or tag name, must specify "remote-name/branch".
2525
#
2626
# --offline
27-
# when given, build.sh will stop with exit code 1 if the file is not already in
27+
# when given, build.sh will stop with exit code 1 if the file is not already
2828
# in the download cache.
2929
#
3030
# --repo url
31-
# specify an additional repo url to fetch in to the local repo other than the
31+
# specify an additional repo url to fetch in to the local repo other than the
3232
# official https://github.com/freebasic/fbc.git repo.
3333
#
3434
# --remote name
35-
# specifies the remote name to add and use when referring to the other repo url.
36-
# remote name will default to 'other' if the --repo option was given.
35+
# specifies the remote name to add and use when referring to the other repo
36+
# url. remote name will default to 'other' if the --repo option was given.
3737
# remote name will default to 'origin' if the --repo option was not given.
3838
#
3939
# --recipe name
40-
# not used
40+
# specify which build recipe to use:
41+
# * -freebsd-13.0-x86
42+
# * -freebsd-13.0-x86_64
43+
#
44+
# Not all recipes are supported on all targets.
4145
#
4246
# Requirements:
4347
# - gmake and other gnu tools
44-
#
48+
#
4549
set -e
4650

4751
usage() {
48-
echo "usage: ./build-bsd.sh freebsd-x86|freebsd-x86_64 <fbc commit id> [--offline] [--repo url] [--remote name] [--recipe name]"
52+
echo "usage: ./build.sh target <fbc commit id> [options]"
53+
echo ""
54+
echo "target:"
55+
echo " freebsd-x86|freebsd-x86_64"
56+
echo ""
57+
echo "<fbc commit id>:"
58+
echo " commit-id hash value of the commit"
59+
echo " name-id name of the branch or tag"
60+
echo ""
61+
echo "options:"
62+
echo " --offline only use cached files, don't download from net"
63+
echo " --repo url specify alternate name for repo to fetch from"
64+
echo " in addition to origin repo"
65+
echo " --remote name specify the name to use for the alternate remote"
66+
echo " --recipe name specify a build recipe to use"
4967
exit 1
5068
}
5169

@@ -78,7 +96,7 @@ freebsd-x86|freebsd-x86_64)
7896
*)
7997
fbccommit="$1"
8098
shift
81-
;;
99+
;;
82100
esac
83101
done
84102

@@ -99,15 +117,49 @@ else
99117
fi
100118

101119
# check recipe name
102-
# TODO: error on invalid combination of target and recipe
120+
# recipe_name is from the command line option, empty string if not given
121+
# user_recipe is either explicit (from command line) or automatic (below)
103122
if [ ! -z "$recipe_name" ]; then
104-
recipe=$recipe_name
123+
# recipe_name may be blank and optionally start with a dash '-'
124+
# user_recipe must be blank or start with a dash '-'
125+
case "$recipe_name" in
126+
""|-*)
127+
user_recipe=$recipe_name
128+
;;
129+
*)
130+
user_recipe=-$recipe_name
131+
;;
132+
esac
105133
else
106-
recipe=""
134+
# if no recipe given, set the default recipe for the main package
135+
user_recipe=
136+
case "$target" in
137+
win32|win64)
138+
named_recipe=-winlibs-gcc-9.3.0
139+
;;
140+
linux-arm)
141+
# named recipe wasn't given, try and figure it out ...
142+
if [ -f /etc/os-release ]; then
143+
host_os_id=$(grep -oP '(?<=^ID=).+' /etc/os-release | tr -d '"')
144+
host_os_ver=$(grep -oP '(?<=^VERSION_ID=).+' /etc/os-release | tr -d '"')
145+
fi
146+
case "$host_os_id-$host_os_ver" in
147+
raspbian-9)
148+
named_recipe=-raspbian9-arm
149+
;;
150+
esac
151+
;;
152+
esac
107153
fi
108154

109155
echo "building FB-$target (uname = `uname`, uname -m = `uname -m`)"
110156
echo "from repository: https://github.com/freebasic/fbc.git"
157+
if [ ! -z "$user_recipe" ]; then
158+
echo "user gave recipe '$user_recipe'"
159+
fi
160+
if [ ! -z "$named_recipe" ]; then
161+
echo "using named recipe '$named_recipe'"
162+
fi
111163
if [ ! -z "$repo_url" ]; then
112164
echo "from repository: $repo_url"
113165
fi
@@ -152,14 +204,16 @@ cd ../..
152204

153205
cd build
154206

155-
buildinfo=../output/buildinfo-$target$recipe.txt
207+
buildinfo=../output/buildinfo-$target$user_recipe.txt
208+
echo "buildinfo: $buildinfo"
156209
echo "fbc $fbccommit $target, build based on:" > $buildinfo
210+
echo "named recipe: $named_recipe" >> $buildinfo
157211
echo >> $buildinfo
158212

159213
copyfile() {
160214
srcfile="$1"
161215
dstfile="$2"
162-
216+
163217
if [ -f "$dstfile" ]; then
164218
echo "cached $dstfile"
165219
else
@@ -191,21 +245,36 @@ download() {
191245
echo "download failed"
192246
rm -f "../input/$filename"
193247
exit 1
194-
fi
248+
fi
195249
fi
196250
fi
197251

198252
echo "$filename <$url>" >> $buildinfo
199253
}
200254

201255

256+
BUILD_BOOTFBCFLAGS=
257+
AppendBOOTFBCFLAGS() {
258+
if [ ! -z "$1" ]; then
259+
if [ -z "$BUILD_BOOTFBCFLAGS" ]; then
260+
BUILD_BOOTFBCFLAGS="$1"
261+
else
262+
BUILD_BOOTFBCFLAGS="$BUILD_BOOTFBCFLAGS $1"
263+
fi
264+
fi
265+
}
266+
202267
# choose a bootstrap source for the target
203268
case $fbtarget in
204269
freebsd-x86|freebsd-x86_64)
205270
bootfb_title=FreeBASIC-1.09.0-$fbtarget
206271
;;
207272
esac
208273

274+
if [ ! -z "$named_recipe" ]; then
275+
AppendBOOTFBCFLAGS "FBPACKTARGET=${named_recipe#-}"
276+
fi
277+
209278
case $fbtarget in
210279
freebsd*)
211280
# Special case: freebsd builds use the host gcc toolchain
@@ -229,36 +298,20 @@ freebsdbuild() {
229298
echo
230299
echo "bootstrapping normal fbc"
231300
echo
232-
gmake FBC=../$bootfb_title/bin/fbc FBSHA1=$FBSHA1
301+
gmake FBC=../$bootfb_title/bin/fbc FBSHA1=$FBSHA1 $BUILD_BOOTFBCFLAGS
233302
gmake install prefix=../tempinstall
234303
echo
235304
echo "rebuilding normal fbc"
236305
echo
237306
gmake clean-compiler
238-
gmake FBC=../tempinstall/bin/fbc FBSHA1=$FBSHA1
307+
gmake FBC=../tempinstall/bin/fbc FBSHA1=$FBSHA1 $BUILD_BOOTFBCFLAGS
239308
cd ..
240309

241-
cd fbc && gmake bindist FBSHA1=$FBSHA1 && cd ..
310+
cd fbc && gmake bindist FBSHA1=$FBSHA1 $BUILD_BOOTFBCFLAGS && cd ..
242311
cp fbc/*.tar.* ../output
243312
cp fbc/contrib/manifest/FreeBASIC-$fbtarget.lst ../output
244313
}
245314

246-
libffibuild() {
247-
echo
248-
echo "building libffi"
249-
echo
250-
libffi_build="${libffi_title}-build"
251-
mkdir "$libffi_build"
252-
cd "$libffi_build"
253-
CFLAGS=-O2 ../$libffi_title/configure --disable-shared --enable-static
254-
gmake
255-
# stash some files in the input folder to make rebuilding faster
256-
mkdir -p ../../input/$libffi_title/$target$recipe
257-
cp include/ffi.h include/ffitarget.h ../../input/$libffi_title/$target$recipe
258-
cp .libs/libffi.a ../../input/$libffi_title/$target$recipe
259-
cd ..
260-
}
261-
262315
case $fbtarget in
263316
freebsd*) freebsdbuild | tee log.txt 2>&1;;
264317
esac

0 commit comments

Comments
 (0)