@@ -14,29 +14,21 @@ import string
14
14
import sys
15
15
16
16
URLS = \
17
- ['git://github.com/FrodeSolheim/python-lhafile' ,
18
- 'ftp://ftp.gnu.org/gnu/m4/m4-1.4.17.tar.gz' ,
17
+ ['ftp://ftp.gnu.org/gnu/m4/m4-1.4.17.tar.gz' ,
19
18
'ftp://ftp.gnu.org/gnu/gawk/gawk-3.1.8.tar.gz' ,
20
19
'ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.13.tar.gz' ,
21
20
'ftp://ftp.gnu.org/gnu/bison/bison-1.35.tar.gz' ,
22
21
'ftp://ftp.gnu.org/gnu/texinfo/texinfo-4.12.tar.gz' ,
23
- 'git://git.savannah.gnu.org/automake' ,
24
- ('git://github.com/cahirwpz/amigaos-binutils-2.9.1' , 'binutils-2.9.1' ),
25
- ('git://github.com/cahirwpz/amigaos-gcc-2.95.3' , 'gcc-2.95.3' ),
26
- ('http://downloads.sourceforge.net/project/flex/flex/2.5.4.a/flex-2.5.4a.tar.gz' ,
22
+ 'ftp://ftp.gnu.org/gnu/automake/automake-1.15.tar.gz' ,
23
+ ('http://downloads.sf.net/project/flex/flex/2.5.4.a/flex-2.5.4a.tar.gz' ,
27
24
'flex-2.5.4.tar.gz' ),
28
- 'git://github.com/adtools/clib2' ,
29
- 'git://github.com/cahirwpz/libnix' ,
30
- 'git://github.com/cahirwpz/fd2sfd' ,
31
- 'git://github.com/adtools/sfdc' ,
32
- 'git://github.com/cahirwpz/libdebug' ,
33
25
('http://www.haage-partner.de/download/AmigaOS/NDK39.lha' , 'NDK_3.9.lha' ),
34
26
('ftp://ftp.exotica.org.uk/mirrors/geekgadgets/amiga/m68k/snapshots/' +
35
27
'990529/bin/libamiga-bin.tgz' , 'libamiga.tar.gz' ),
36
28
('ftp://ftp.exotica.org.uk/mirrors/geekgadgets/amiga/m68k/snapshots/' +
37
29
'990529/src/libm-5.4-src.tgz' , 'libm-5.4.tar.gz' ),
38
- ('http://sourceforge. net/projects /amiga/files/ ixemul.library/48.2/' +
39
- 'ixemul-src.lha/download' , 'ixemul- 48.2.lha' ),
30
+ ('http://downloads.sf. net/project /amiga/ixemul.library/48.2/ixemul-src.lha' ,
31
+ 'ixemul-48.2.lha' ),
40
32
'http://sun.hasenbraten.de/vasm/release/vasm.tar.gz' ,
41
33
'http://sun.hasenbraten.de/vlink/release/vlink.tar.gz' ,
42
34
'http://www.ibaug.de/vbcc/vbcc.tar.gz' ,
@@ -105,20 +97,20 @@ def install_tools():
105
97
copy ('{build}/ira/ira' , '{target}/bin' )
106
98
107
99
108
- @recipe ('libamiga-install' )
100
+ @recipe ('{ libamiga} -install' )
109
101
def install_libamiga ():
110
102
info ('installing libamiga' )
111
103
112
- copytree ('{sources}/libamiga/lib' , '{target}/m68k-amigaos/libnix/lib' )
104
+ copytree ('{sources}/{ libamiga} /lib' , '{target}/m68k-amigaos/libnix/lib' )
113
105
114
106
115
- @recipe ('clib2-install' )
107
+ @recipe ('{ clib2} -install' )
116
108
def install_clib2 ():
117
109
info ('installing clib2' )
118
110
119
111
with cwd ('{target}/m68k-amigaos/clib2' ):
120
- copytree ('{build}/clib2/lib' , 'lib' )
121
- copytree ('{build}/clib2/include' , 'include' )
112
+ copytree ('{build}/{ clib2} /lib' , 'lib' )
113
+ copytree ('{build}/{ clib2} /include' , 'include' )
122
114
123
115
124
116
@recipe ('vbcc-build' )
@@ -204,8 +196,8 @@ def install_vbcc_toolchain():
204
196
205
197
206
198
def update_autotools (dst ):
207
- copy ('{archives}/ automake/lib/config.guess' , path .join (dst , 'config.guess' ))
208
- copy ('{archives}/ automake/lib/config.sub' , path .join (dst , 'config.sub' ))
199
+ copy ('{sources}/{ automake} /lib/config.guess' , path .join (dst , 'config.guess' ))
200
+ copy ('{sources}/{ automake} /lib/config.sub' , path .join (dst , 'config.sub' ))
209
201
210
202
211
203
def touch_genfiles (dst ):
@@ -244,6 +236,9 @@ def build():
244
236
name = path .basename (url )
245
237
fetch (name , url )
246
238
239
+ execute ('git' , 'submodule' , 'init' );
240
+ execute ('git' , 'submodule' , 'update' );
241
+
247
242
add_site_dir ('{host}' )
248
243
249
244
"""
@@ -283,6 +278,8 @@ def build():
283
278
require_header (['ncurses.h' , 'ncurses/ncurses.h' ],
284
279
lang = 'c' , errmsg = 'libncurses-dev package missing' )
285
280
281
+ unpack ('{automake}' )
282
+
286
283
py_ver = 'python%d.%d' % (sys .version_info .major , sys .version_info .minor )
287
284
with env (CC = CC , CXX = CXX ):
288
285
require_header ([path .join (py_ver , 'Python.h' )],
@@ -341,10 +338,9 @@ def build():
341
338
342
339
install_vbcc_toolchain ()
343
340
344
- unpack ('fd2sfd' )
345
- patch ('fd2sfd' )
346
- update_autotools ('{sources}/fd2sfd' )
347
- configure ('fd2sfd' , '--prefix={target}' , copy_source = True )
341
+ update_autotools ('{submodules}/fd2sfd' )
342
+ unpack ('fd2sfd' , work_dir = '{build}' )
343
+ configure ('fd2sfd' , '--prefix={target}' , from_dir = '{build}/fd2sfd' )
348
344
make ('fd2sfd' )
349
345
make ('fd2sfd' , 'install' )
350
346
@@ -378,28 +374,22 @@ def build():
378
374
config.guess script knows nothing about x86-64 or darwin.
379
375
"""
380
376
381
- unpack ('{binutils}' )
382
- update_autotools ('{sources}/{binutils}' )
383
- touch_genfiles ('{sources}/{binutils}' )
384
377
with env (CC = environ ['CC' ] + ' -std=gnu11' ,
385
378
CXX = environ ['CXX' ] + ' -std=gnu++11' ,
386
379
CFLAGS = '-g -O2 -Wall' ,
387
380
CXXFLAGS = '-g -O2 -Wall' ):
388
381
configure ('{binutils}' ,
389
382
'--prefix={target}' ,
390
383
'--host=i686-linux-gnu' ,
391
- '--target=m68k-amigaos' )
384
+ '--target=m68k-amigaos' ,
385
+ from_dir = '{submodules}/{binutils}' )
386
+ touch_genfiles ('{submodules}/{binutils}' )
392
387
make ('{binutils}' )
393
388
make ('{binutils}' , 'install' )
394
389
395
390
unpack ('{ixemul}' , top_dir = 'ixemul' )
396
391
patch ('{ixemul}' )
397
392
398
- unpack ('{gcc}' )
399
- update_autotools ('{sources}/{gcc}' )
400
- update_autotools ('{sources}/{gcc}/gcc' )
401
- update_autotools ('{sources}/{gcc}/texinfo' )
402
- touch_genfiles ('{sources}/{gcc}' )
403
393
with env (CC = environ ['CC' ] + ' -std=gnu11' ,
404
394
CXX = environ ['CXX' ] + ' -std=gnu++11' ,
405
395
CFLAGS = '-g -O2 -Wall' ,
@@ -411,33 +401,34 @@ def build():
411
401
'--target=m68k-amigaos' ,
412
402
'--enable-languages=c,c++' ,
413
403
'--enable-version-specific-runtime-libs' ,
414
- '--with-headers={sources}/{ixemul}/include' )
415
- touch ('{sources}/{gcc}/gcc/c-parse.in' )
404
+ '--with-headers={sources}/{ixemul}/include' ,
405
+ from_dir = '{submodules}/{gcc}' )
406
+ touch_genfiles ('{submodules}/{gcc}' )
416
407
make ('{gcc}' , 'all-gcc' ,
417
408
MAKEINFO = 'makeinfo' , CFLAGS_FOR_TARGET = '-noixemul' )
418
409
make ('{gcc}' , 'install-gcc' ,
419
410
MAKEINFO = 'makeinfo' , CFLAGS_FOR_TARGET = '-noixemul' )
420
411
421
412
headers_install ()
422
413
423
- unpack ('libamiga' , top_dir = '.' )
414
+ unpack ('{ libamiga} ' , top_dir = '.' )
424
415
install_libamiga ()
425
416
426
- unpack ('libnix' )
427
- configure ('libnix' ,
417
+ configure ('{libnix}' ,
428
418
'--prefix={target}/m68k-amigaos/libnix' ,
429
419
'--host=i686-linux-gnu' ,
430
- '--target=m68k-amigaos' )
431
- make ('libnix' ,
420
+ '--target=m68k-amigaos' ,
421
+ from_dir = '{submodules}/{libnix}' )
422
+ make ('{libnix}' ,
432
423
CC = 'm68k-amigaos-gcc' ,
433
424
CPP = 'm68k-amigaos-gcc -E' ,
434
425
AR = 'm68k-amigaos-ar' ,
435
426
AS = 'm68k-amigaos-as' ,
436
427
RANLIB = 'm68k-amigaos-ranlib' ,
437
428
LD = 'm68k-amigaos-ld' )
438
- make ('libnix' , 'install' )
429
+ make ('{ libnix} ' , 'install' )
439
430
440
- copy ('{sources}/ libnix/sources/headers/stabs.h' ,
431
+ copy ('{submodules}/{ libnix} /sources/headers/stabs.h' ,
441
432
'{target}/m68k-amigaos/libnix/include' )
442
433
443
434
unpack ('{libm}' , top_dir = 'contrib/libm' )
@@ -452,19 +443,18 @@ def build():
452
443
make ('{libm}' )
453
444
make ('{libm}' , 'install' )
454
445
455
- unpack ('{libdebug}' )
456
- update_autotools ('{sources}/{libdebug}' )
457
446
with env (CC = 'm68k-amigaos-gcc -noixemul' ,
458
447
AR = 'm68k-amigaos-ar' ,
459
448
RANLIB = 'm68k-amigaos-ranlib' ):
460
449
configure ('{libdebug}' ,
461
450
'--prefix={target}/m68k-amigaos/libnix' ,
462
- '--host=m68k-amigaos' )
451
+ '--host=m68k-amigaos' ,
452
+ from_dir = '{submodules}/{libdebug}' )
463
453
make ('{libdebug}' )
464
454
make ('{libdebug}' , 'install' )
465
455
466
- unpack ('clib2' , work_dir = '{build}' , top_dir = 'library' )
467
- make ('clib2' , makefile = 'GNUmakefile.68k' )
456
+ unpack ('{ clib2} ' , work_dir = '{build}' , top_dir = 'library' )
457
+ make ('{ clib2} ' , makefile = 'GNUmakefile.68k' )
468
458
install_clib2 ()
469
459
470
460
make ('{gcc}' , MAKEINFO = 'makeinfo' , CFLAGS_FOR_TARGET = '-noixemul' )
@@ -693,11 +683,15 @@ if __name__ == "__main__":
693
683
gawk = 'gawk-3.1.8' ,
694
684
flex = 'flex-2.5.4' ,
695
685
bison = 'bison-1.35' ,
686
+ automake = 'automake-1.15' ,
696
687
autoconf = 'autoconf-2.13' ,
697
688
texinfo = 'texinfo-4.12' ,
698
689
NDK = 'NDK_3.9' ,
699
690
ixemul = 'ixemul-48.2' ,
691
+ clib2 = 'clib2' ,
700
692
libm = 'libm-5.4' ,
693
+ libnix = 'libnix' ,
694
+ libamiga = 'libamiga' ,
701
695
libdebug = 'libdebug' ,
702
696
binutils = 'binutils-{binutils_ver}' ,
703
697
gcc = 'gcc-{gcc_ver}' ,
@@ -709,7 +703,8 @@ if __name__ == "__main__":
709
703
host = path .join ('{top}' , '.build-m68k' , 'host' ),
710
704
tmpdir = path .join ('{top}' , '.build-m68k' , 'tmp' ),
711
705
target = path .join ('{top}' , 'm68k-amigaos' ),
712
- archives = path .join ('{top}' , '.build-m68k' , 'archives' ))
706
+ archives = path .join ('{top}' , '.build-m68k' , 'archives' ),
707
+ submodules = path .join ('{top}' , 'submodules' ))
713
708
714
709
if args .prefix is not None :
715
710
setvar (target = args .prefix )
0 commit comments