Skip to content

Commit 8a7eeb3

Browse files
committed
Clean up installation prefix directory structure.
* Do not install files that won't be used (gcc & binutils). * Move vbcc files around. * Move man pages to 'share/man/man1' directory. * Move AmigaOS NDK files under 'm68k-amigaos/ndk'.
1 parent 0fe5bcc commit 8a7eeb3

File tree

2 files changed

+98
-83
lines changed

2 files changed

+98
-83
lines changed

submodules/gcc-2.95.3

Submodule gcc-2.95.3 updated from d6e0655 to 965e443

toolchain-m68k

Lines changed: 97 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -55,62 +55,63 @@ from common import * # NOQA
5555
def prepare_target():
5656
info('preparing target')
5757

58-
with cwd('{target}'):
59-
mkdir('bin', 'doc', 'etc', 'lib', 'm68k-amigaos', 'os-include',
60-
'os-include/lvo', 'os-lib', 'os-lib/fd', 'os-lib/sfd',
61-
'vbcc-include', 'vbcc-lib')
58+
with cwd('{prefix}'):
59+
mkdir('bin', 'etc', '{target}')
60+
with cwd('{prefix}/{target}'):
61+
mkdir('bin', 'ndk/include', 'ndk/include/lvo',
62+
'ndk/lib', 'ndk/lib/fd', 'ndk/lib/sfd')
6263

6364

6465
@recipe('{NDK}-install')
6566
def install_ndk():
6667
info('installing ndk')
6768

68-
copytree('{sources}/{NDK}/Include/include_h', '{target}/os-include')
69-
copytree('{sources}/{NDK}/Include/include_i', '{target}/os-include')
70-
copytree('{sources}/{NDK}/Include/fd', '{target}/os-lib/fd')
71-
copytree('{sources}/{NDK}/Include/sfd', '{target}/os-lib/sfd')
72-
copytree('{sources}/{NDK}/Include/linker_libs', '{target}/os-lib',
69+
copytree('{sources}/{NDK}/Include/include_h', '{prefix}/{target}/ndk/include')
70+
copytree('{sources}/{NDK}/Include/include_i', '{prefix}/{target}/ndk/include')
71+
copytree('{sources}/{NDK}/Include/fd', '{prefix}/{target}/ndk/lib/fd')
72+
copytree('{sources}/{NDK}/Include/sfd', '{prefix}/{target}/ndk/lib/sfd')
73+
copytree('{sources}/{NDK}/Include/linker_libs', '{prefix}/{target}/ndk/lib',
7374
exclude=['README'])
74-
copytree('{sources}/{NDK}/Documentation/Autodocs', '{target}/doc')
75+
copytree('{sources}/{NDK}/Documentation/Autodocs', '{prefix}/{target}/ndk/doc')
7576

76-
for name in find('{target}/os-lib/sfd', include=['*.sfd']):
77+
for name in find('{prefix}/{target}/ndk/lib/sfd', include=['*.sfd']):
7778
base = path.basename(name).split('_')[0]
7879

7980
execute('sfdc', '--target=m68k-amigaos', '--mode=proto',
80-
'--output={target}/os-include/proto/' + base + '.h', name)
81+
'--output={prefix}/{target}/ndk/include/proto/%s.h' % base, name)
8182
execute('sfdc', '--target=m68k-amigaos', '--mode=macros',
82-
'--output={target}/os-include/inline/' + base + '.h', name)
83+
'--output={prefix}/{target}/ndk/include/inline/%s.h' % base, name)
8384
execute('sfdc', '--target=m68k-amigaos', '--mode=lvo',
84-
'--output={target}/os-include/lvo/' + base + '_lib.i', name)
85+
'--output={prefix}/{target}/ndk/include/lvo/%s_lib.i' % base, name)
8586

8687

8788
@recipe('headers-install')
8889
def headers_install():
8990
info('installing ixemul header files')
9091

91-
copytree('{sources}/{ixemul}/include', '{target}/m68k-amigaos/libnix/include')
92+
copytree('{sources}/{ixemul}/include', '{prefix}/{target}/libnix/include')
9293

9394

9495
@recipe('tools-install')
9596
def install_tools():
9697
info('installing extra tools')
9798

98-
copy('{build}/ira/ira', '{target}/bin')
99-
copy('{build}/vdam68k/vda68k', '{target}/bin')
99+
copy('{build}/ira/ira', '{prefix}/bin')
100+
copy('{build}/vdam68k/vda68k', '{prefix}/bin')
100101

101102

102103
@recipe('{libamiga}-install')
103104
def install_libamiga():
104105
info('installing libamiga')
105106

106-
copytree('{sources}/{libamiga}/lib', '{target}/m68k-amigaos/libnix/lib')
107+
copytree('{sources}/{libamiga}/lib', '{prefix}/{target}/libnix/lib')
107108

108109

109110
@recipe('{clib2}-install')
110111
def install_clib2():
111112
info('installing clib2')
112113

113-
with cwd('{target}/m68k-amigaos/clib2'):
114+
with cwd('{prefix}/{target}/clib2'):
114115
copytree('{build}/{clib2}/lib', 'lib')
115116
copytree('{build}/{clib2}/include', 'include')
116117

@@ -130,7 +131,7 @@ def build_vbcc():
130131
'n', 'y', 'unsigned long long',
131132
'n', 'y', 'float',
132133
'n', 'y', 'double')
133-
make('vbcc', TARGET='m68k', ETCDIR='\\"{target}/etc/\\"', CONFIG=config)
134+
make('vbcc', TARGET='m68k', ETCDIR='\\"{prefix}/etc/\\"', CONFIG=config)
134135
remove(config)
135136

136137

@@ -144,57 +145,61 @@ def build_vlink():
144145
def install_vbcc_toolchain():
145146
info('installing vasm')
146147

147-
copy('{build}/vasm/vasmm68k_mot', '{target}/bin')
148-
copy('{build}/vasm/vobjdump', '{target}/bin')
148+
copy('{build}/vasm/vasmm68k_mot', '{prefix}/{target}/bin')
149+
copy('{build}/vasm/vobjdump', '{prefix}/bin')
149150
vasm = textfile(
150151
'#!/bin/sh',
151152
'',
152-
'vasmm68k_mot -I{target}/os-include "$@"')
153+
'{prefix}/{target}/vasmm68k_mot -I{prefix}/ndk/include "$@"')
153154
chmod(vasm, 0755)
154-
move(vasm, '{target}/bin/vasm')
155+
move(vasm, '{prefix}/bin/vasm')
155156

156157
info('installing vlink')
157158

158-
copy('{build}/vlink/vlink', '{target}/bin')
159+
copy('{build}/vlink/vlink', '{prefix}/bin')
159160

160161
info('installing vbcc')
161162

162-
copy('{build}/vbcc/bin/vbccm68k', '{target}/bin')
163-
copy('{build}/vbcc/bin/vc', '{target}/bin')
164-
copy('{build}/vbcc/bin/vprof', '{target}/bin')
163+
copy('{build}/vbcc/bin/vbccm68k', '{prefix}/{target}/bin')
164+
copy('{build}/vbcc/bin/vc', '{prefix}/bin')
165+
copy('{build}/vbcc/bin/vprof', '{prefix}/bin')
165166

166167
info('installing vbcc_target_m68k-amigaos')
167168

168169
copytree('{sources}/vclib/targets/m68k-amigaos/include',
169-
'{target}/vbcc-include')
170+
'{prefix}/{target}/vbcc/include')
170171
copytree('{sources}/vclib/targets/m68k-amigaos/lib',
171-
'{target}/vbcc-lib')
172+
'{prefix}/{target}/vbcc/lib')
172173
config = textfile(
173-
('-cc={target}/bin/vbccm68k -hunkdebug %s -o= %s %s -O=%ld' +
174-
' -quiet -I{target}/vbcc-include -I{target}/os-include'),
175-
('-ccv={target}/bin/vbccm68k -hunkdebug %s -o= %s %s -O=%ld' +
176-
' -I{target}/vbcc-include -I{target}/os-include'),
177-
('-as={target}/bin/vasmm68k_mot -Fhunk -phxass -opt-fconst -nowarn=62' +
178-
' -quiet -I{target}/os-include %s -o %s'),
179-
('-asv={target}/bin/vasmm68k_mot -Fhunk -phxass -opt-fconst -nowarn=62' +
180-
' -I{target}/os-include %s -o %s'),
174+
('-cc={prefix}/{target}/bin/vbccm68k -hunkdebug %s -o= %s %s -O=%ld' +
175+
' -quiet -I{prefix}/{target}/vbcc/include -I{prefix}/ndk/include'),
176+
('-ccv={prefix}/{target}/bin/vbccm68k -hunkdebug %s -o= %s %s -O=%ld' +
177+
' -I{prefix}/{target}/vbcc/include -I{prefix}/ndk/include'),
178+
('-as={prefix}/{target}/bin/vasmm68k_mot -Fhunk -phxass -opt-fconst' +
179+
' -nowarn=62 -quiet -I{prefix}/ndk/include %s -o %s'),
180+
('-asv={prefix}/{target}/bin/vasmm68k_mot -Fhunk -phxass -opt-fconst' +
181+
' -nowarn=62 -I{prefix}/ndk/include %s -o %s'),
181182
'-rm=rm %s',
182183
'-rmv=rm -v %s',
183-
('-ld={target}/bin/vlink -bamigahunk -x -Bstatic -Cvbcc -nostdlib' +
184-
' {target}/vbcc-lib/startup.o %s %s' +
185-
' -L{target}/vbcc-lib -L{target}/vbcc-include -lvc -o %s'),
186-
('-l2={target}/bin/vlink -bamigahunk -x -Bstatic -Cvbcc -nostdlib' +
187-
' %s %s -L{target}/vbcc-lib -L{target}/vbcc-include -o %s'),
188-
('-ldv={target}/bin/vlink -bamigahunk -t -x -Bstatic -Cvbcc -nostdlib' +
189-
' {target}/vbcc-lib/startup.o %s %s' +
190-
' -L{target}/vbcc-lib -L{target}/vbcc-include -lvc -o %s'),
191-
('-l2v={target}/bin/vlink -bamigahunk -t -x -Bstatic -Cvbcc -nostdlib' +
192-
' %s %s -L{target}/vbcc-lib -L{target}/vbcc-include -o %s'),
184+
('-ld={prefix}/bin/vlink -bamigahunk -x -Bstatic -Cvbcc -nostdlib' +
185+
' {prefix}/{target}/vbcc/lib/startup.o %s %s' +
186+
' -L{prefix}/{target}/vbcc/lib' +
187+
' -L{prefix}/{target}/vbcc/include -lvc -o %s'),
188+
('-l2={prefix}/bin/vlink -bamigahunk -x -Bstatic -Cvbcc -nostdlib' +
189+
' %s %s -L{prefix}/{target}/vbcc/lib' +
190+
' -L{prefix}/{target}/vbcc/include -o %s'),
191+
('-ldv={prefix}/bin/vlink -bamigahunk -t -x -Bstatic -Cvbcc -nostdlib' +
192+
' {prefix}/{target}/vbcc/lib/startup.o %s %s' +
193+
' -L{prefix}/{target}/vbcc/lib' +
194+
' -L{prefix}/{target}/vbcc/include -lvc -o %s'),
195+
('-l2v={prefix}/bin/vlink -bamigahunk -t -x -Bstatic -Cvbcc -nostdlib' +
196+
' %s %s -L{prefix}/{target}/vbcc/lib' +
197+
' -L{prefix}/{target}/vbcc/include -o %s'),
193198
'-ldnodb=-s -Rshort',
194199
'-ul=-l%s',
195200
'-cf=-F%s',
196201
'-ml=500')
197-
move(config, '{target}/etc/vc.config')
202+
move(config, '{prefix}/etc/vc.config')
198203

199204

200205
def update_autotools(dst):
@@ -257,7 +262,7 @@ def build():
257262

258263
environ['CC'] = CC
259264
environ['CXX'] = CXX
260-
environ['PATH'] = ':'.join([path.join('{target}', 'bin'),
265+
environ['PATH'] = ':'.join([path.join('{prefix}', 'bin'),
261266
path.join('{host}', 'bin'),
262267
environ['PATH']])
263268

@@ -340,13 +345,13 @@ def build():
340345

341346
update_autotools('{submodules}/fd2sfd')
342347
unpack('fd2sfd', work_dir='{build}')
343-
configure('fd2sfd', '--prefix={target}', from_dir='{build}/fd2sfd')
348+
configure('fd2sfd', '--prefix={prefix}', from_dir='{build}/fd2sfd')
344349
make('fd2sfd')
345350
make('fd2sfd', 'install')
346351

347352
unpack('sfdc')
348353
patch('sfdc')
349-
configure('sfdc', '--prefix={target}', copy_source=True)
354+
configure('sfdc', '--prefix={prefix}', copy_source=True)
350355
make('sfdc')
351356
make('sfdc', 'install')
352357

@@ -373,20 +378,27 @@ def build():
373378

374379
with env(CC=CC, CXX=CXX, CFLAGS='-g -O2 -Wall', CXXFLAGS='-g -O2 -Wall'):
375380
configure('{binutils}',
376-
'--prefix={target}',
381+
'--prefix={prefix}',
382+
'--infodir={prefix}/{target}/info',
383+
'--mandir={prefix}/share/man',
377384
'--host=i686-linux-gnu',
378385
'--target=m68k-amigaos',
379386
from_dir='{submodules}/{binutils}')
380387
touch_genfiles('{submodules}/{binutils}')
381388
make('{binutils}')
382-
make('{binutils}', 'install')
389+
make('{binutils}', 'install-binutils')
390+
make('{binutils}', 'install-gas')
391+
make('{binutils}', 'install-ld')
392+
make('{binutils}', 'install-info')
383393

384394
unpack('{ixemul}', top_dir='ixemul')
385395
patch('{ixemul}')
386396

387397
with env(CC=CC, CXX=CXX, CFLAGS='-g -O2 -Wall', CXXFLAGS='-g -O2 -Wall'):
388398
configure('{gcc}',
389-
'--prefix={target}',
399+
'--prefix={prefix}',
400+
'--infodir={prefix}/{target}/info',
401+
'--mandir={prefix}/share/man',
390402
'--host=i686-linux-gnu',
391403
'--build=i686-linux-gnu',
392404
'--target=m68k-amigaos',
@@ -408,7 +420,7 @@ def build():
408420
install_libamiga()
409421

410422
configure('{libnix}',
411-
'--prefix={target}/m68k-amigaos/libnix',
423+
'--prefix={prefix}/{target}/libnix',
412424
'--host=i686-linux-gnu',
413425
'--target=m68k-amigaos',
414426
from_dir='{submodules}/{libnix}')
@@ -422,15 +434,15 @@ def build():
422434
make('{libnix}', 'install')
423435

424436
copy('{submodules}/{libnix}/sources/headers/stabs.h',
425-
'{target}/m68k-amigaos/libnix/include')
437+
'{prefix}/{target}/libnix/include')
426438

427439
unpack('{libm}', top_dir='contrib/libm')
428440
update_autotools('{sources}/{libm}')
429441
with env(CC='m68k-amigaos-gcc -noixemul',
430442
AR='m68k-amigaos-ar',
431443
RANLIB='m68k-amigaos-ranlib'):
432444
configure('{libm}',
433-
'--prefix={target}/m68k-amigaos/libnix',
445+
'--prefix={prefix}/{target}/libnix',
434446
'--host=i686-linux-gnu',
435447
'--target=m68k-amigaos')
436448
make('{libm}')
@@ -441,7 +453,7 @@ def build():
441453
RANLIB='m68k-amigaos-ranlib'):
442454
touch('{submodules}/{libdebug}/configure')
443455
configure('{libdebug}',
444-
'--prefix={target}/m68k-amigaos/libnix',
456+
'--prefix={prefix}/{target}/libnix',
445457
'--host=m68k-amigaos',
446458
from_dir='{submodules}/{libdebug}')
447459
make('{libdebug}')
@@ -452,8 +464,10 @@ def build():
452464
install_clib2()
453465

454466
with env(CC=CC, CXX=CXX, CFLAGS='-g -O2 -Wall', CXXFLAGS='-g -O2 -Wall'):
455-
make('{gcc}', MAKEINFO='makeinfo', CFLAGS_FOR_TARGET='-noixemul')
456-
make('{gcc}', 'install', MAKEINFO='makeinfo', CFLAGS_FOR_TARGET='-noixemul')
467+
make('{gcc}', 'cross',
468+
MAKEINFO='makeinfo', CFLAGS_FOR_TARGET='-noixemul')
469+
make('{gcc}', 'install-gcc-cross',
470+
MAKEINFO='makeinfo', CFLAGS_FOR_TARGET='-noixemul')
457471

458472
unpack('ira', top_dir='.', work_dir='{build}')
459473
patch('ira', work_dir='{build}')
@@ -513,7 +527,7 @@ def add_stubs(src):
513527
obj = re.sub(r'\.c$', r'.o', src)
514528

515529
for libdir, cflags in MULTILIB:
516-
lib = path.join('{target}/m68k-amigaos/libnix/lib',
530+
lib = path.join('{prefix}/{target}/libnix/lib',
517531
libdir, 'libnix/libstubs.a')
518532
info('stubs: "%s" -> "%s"', obj, lib)
519533
cflags = list(cflags) + ['-noixemul', '-c', '-o', obj, src]
@@ -526,7 +540,7 @@ def add_lib(src, libname):
526540
obj = re.sub(r'\.a$', r'.o', libname)
527541

528542
for libdir, cflags in MULTILIB:
529-
lib = path.join('{target}/m68k-amigaos/libnix/lib', libdir, libname)
543+
lib = path.join('{prefix}/{target}/libnix/lib', libdir, libname)
530544
info('lib: "%s" -> "%s"', obj, lib)
531545
cflags = list(cflags) + ['-noixemul', '-c', '-o', obj, src]
532546
execute('m68k-amigaos-gcc', '-Wall', '-O3', '-fomit-frame-pointer', *cflags)
@@ -549,14 +563,14 @@ def process_sdk(sdk, dirname, files):
549563
sfd = sfd + '.sfd'
550564
info('fd2sfd: "%s" "%s" -> "%s"', fd, protos, sfd)
551565
execute('fd2sfd', '-o', sfd, fd, protos)
552-
copy(sfd, path.join('{target}/os-lib/sfd', sfd))
566+
copy(sfd, path.join('{prefix}/ndk/lib/sfd', sfd))
553567
elif kind == 'sfdc':
554568
source = f[1]
555569
basename = re.sub(r'_lib.sfd$', r'', path.basename(source))
556570

557-
proto = path.join('{target}/os-include/proto', basename + '.h')
558-
inline = path.join('{target}/os-include/inline', basename + '.h')
559-
lvo = path.join('{target}/os-include/lvo', basename + '.i')
571+
proto = path.join('{prefix}/ndk/include/proto', basename + '.h')
572+
inline = path.join('{prefix}/ndk/include/inline', basename + '.h')
573+
lvo = path.join('{prefix}/ndk/include/lvo', basename + '.i')
560574

561575
info('sfdc: "%s" -> "%s"', source, proto)
562576
execute('sfdc', '--quiet', '--target=m68k-amigaos', '--mode=proto',
@@ -592,25 +606,25 @@ def process_sdk(sdk, dirname, files):
592606
name = path.basename(f[1])
593607

594608
if any(name.endswith(ext) for ext in ['.doc', '.html', '.pdf', '.ps']):
595-
mkdir('{target}/doc')
596-
copy(source, path.join('{target}/doc', name))
609+
mkdir('{prefix}/{target}/doc')
610+
copy(source, path.join('{prefix}/{target}/doc', name))
597611
elif name.endswith('.guide'):
598-
mkdir('{target}/guide')
599-
copy(source, path.join('{target}/guide', name))
612+
mkdir('{prefix}/{target}/guide')
613+
copy(source, path.join('{prefix}/{target}/guide', name))
600614
elif any(name.endswith(ext) for ext in ['.h', '.i']):
601615
lastdir = path.basename(path.dirname(f[1]))
602-
mkdir(path.join('{target}/os-include', lastdir))
603-
copy(source, path.join('{target}/os-include', lastdir, name))
616+
mkdir(path.join('{prefix}/ndk/include', lastdir))
617+
copy(source, path.join('{prefix}/ndk/include', lastdir, name))
604618
elif name.endswith('.fd'):
605-
mkdir('{target}/os-lib/fd')
606-
copy(source, path.join('{target}/os-lib/fd', name))
619+
mkdir('{prefix}/ndk/lib/fd')
620+
copy(source, path.join('{prefix}/ndk/lib/fd', name))
607621
elif name.endswith('.sfd'):
608-
mkdir('{target}/os-lib/sfd')
609-
copy(source, path.join('{target}/os-lib/sfd', name))
622+
mkdir('{prefix}/ndk/lib/sfd')
623+
copy(source, path.join('{prefix}/ndk/lib/sfd', name))
610624

611625

612626
def install_sdk(*names):
613-
environ['PATH'] = ":".join([path.join('{target}', 'bin'),
627+
environ['PATH'] = ":".join([path.join('{prefix}', 'bin'),
614628
path.join('{host}', 'bin'),
615629
environ['PATH']])
616630

@@ -637,7 +651,7 @@ def install_sdk(*names):
637651
def test():
638652
install_sdk('mmu', 'mui')
639653

640-
environ['PATH'] = ":".join([path.join('{target}', 'bin'),
654+
environ['PATH'] = ":".join([path.join('{prefix}', 'bin'),
641655
environ['PATH']])
642656

643657
with cwd(path.join('{top}', 'examples')):
@@ -694,21 +708,22 @@ if __name__ == "__main__":
694708
binutils='binutils-{binutils_ver}',
695709
gcc='gcc-{gcc_ver}',
696710
gpp='g++-{gcc_ver}',
711+
target='m68k-amigaos',
697712
patches=path.join('{top}', 'patches'),
698713
stamps=path.join('{top}', '.build-m68k', 'stamps'),
699714
build=path.join('{top}', '.build-m68k', 'build'),
700715
sources=path.join('{top}', '.build-m68k', 'sources'),
701716
host=path.join('{top}', '.build-m68k', 'host'),
702717
tmpdir=path.join('{top}', '.build-m68k', 'tmp'),
703-
target=path.join('{top}', 'm68k-amigaos'),
718+
prefix=path.join('{top}', 'm68k-amigaos'),
704719
archives=path.join('{top}', '.build-m68k', 'archives'),
705720
submodules=path.join('{top}', 'submodules'))
706721

707722
if args.prefix is not None:
708723
setvar(target=args.prefix)
709724

710-
if not path.exists('{target}'):
711-
mkdir('{target}')
725+
if not path.exists('{prefix}'):
726+
mkdir('{prefix}')
712727

713728
action = args.action.replace('-', '_')
714729
globals()[action].__call__(*args.args)

0 commit comments

Comments
 (0)