|
a/trunk/wharfie/wharfie.py |
|
b/trunk/wharfie/wharfie.py |
|
... |
|
... |
81 |
# resulting image with a special bootloader or |
81 |
# resulting image with a special bootloader or |
82 |
# something, it can be flexibly done with RUN HOST. |
82 |
# something, it can be flexibly done with RUN HOST. |
83 |
|
83 |
|
84 |
|
84 |
|
85 |
import os |
85 |
import os |
86 |
import sys |
86 |
import re |
87 |
import re |
87 |
import sys |
88 |
import binascii |
88 |
import binascii |
89 |
import argparse |
89 |
import argparse |
90 |
from lib import makefile as make |
90 |
from lib import makefile as make |
91 |
from lib import actions |
91 |
from lib import actions |
|
|
92 |
from lib import files |
92 |
|
93 |
|
93 |
regexCommand = '^[ \t]*(RUN HOST|RUN|FROM|TOOLCHAIN|TO|ADD|SOURCE|LICENSE|ENV|[a-zA-Z0-9]+)([^\n]*)'; |
94 |
regexCommand = '^[ \t]*(RUN HOST|RUN|FROM|TOOLCHAIN|TO|ADD|SOURCE|LICENSE|ENV|[a-zA-Z0-9]+)([^\n]*)'; |
94 |
g_depend = ''; |
95 |
g_depend = ''; |
95 |
|
96 |
|
96 |
# |
97 |
# |
|
... |
|
... |
115 |
if g_allDepends != '': |
116 |
if g_allDepends != '': |
116 |
bld = format(0xFFFFFFFF & binascii.crc32(g_allDepends), '02X') + ".piling.tar"; |
117 |
bld = format(0xFFFFFFFF & binascii.crc32(g_allDepends), '02X') + ".piling.tar"; |
117 |
|
118 |
|
118 |
# FROM |
119 |
# FROM |
119 |
if cmd[0] == 'FROM': |
120 |
if cmd[0] == 'FROM': |
120 |
g_depend = cmd[1] + ".tar"; |
121 |
# special handling for debootstrap |
|
|
122 |
if cmd[1].lstrip().startswith("debian_"): |
|
|
123 |
g_depend = cmd[1] + ".tar"; |
|
|
124 |
else: |
|
|
125 |
g_depend = files.input_file(cmd[1]); |
121 |
|
126 |
|
122 |
# ENV |
127 |
# ENV |
123 |
elif cmd[0] == 'ENV': |
128 |
elif cmd[0] == 'ENV': |
124 |
make.environment.append(cmd[1]); |
129 |
make.environment.append(cmd[1]); |
125 |
|
130 |
|
|
... |
|
... |
162 |
makeTarget=actions.toolchain(bld, dep, cmd) |
167 |
makeTarget=actions.toolchain(bld, dep, cmd) |
163 |
make.makeTargets.append(makeTarget); |
168 |
make.makeTargets.append(makeTarget); |
164 |
g_depend = ''; |
169 |
g_depend = ''; |
165 |
|
170 |
|
166 |
else: |
171 |
else: |
|
|
172 |
print ('error: parse error in Wharfile'); |
167 |
print ('error: unknown command: "%s %s"' % (cmd[0], cmd[1])); |
173 |
print ('error: unknown command: "%s %s"' % (cmd[0], cmd[1])); |
168 |
exit(-1); |
174 |
exit(-1); |
169 |
|
175 |
|
170 |
make.finalTarget.append(bld); |
176 |
make.finalTarget.append(bld); |
171 |
|
177 |
|
|
... |
|
... |
188 |
if os.path.isfile(args.wharfile): |
194 |
if os.path.isfile(args.wharfile): |
189 |
read_wharfile(args.wharfile); |
195 |
read_wharfile(args.wharfile); |
190 |
else: |
196 |
else: |
191 |
print("error: Wharfile '%s' not found." % args.wharfile) |
197 |
print("error: Wharfile '%s' not found." % args.wharfile) |
192 |
exit(1) |
198 |
exit(1) |
193 |
|
199 |
|
194 |
if os.path.isfile(os.path.abspath(os.path.dirname(sys.argv[0])) + "/wharfie.mk"): |
200 |
if os.path.isfile(os.path.abspath(os.path.dirname(sys.argv[0])) + "/wharfie.mk"): |
195 |
make.write_makefile('Makefile', args.dry_run, os.path.dirname(sys.argv[0])); |
201 |
make.write_makefile('Makefile', args.dry_run, os.path.dirname(sys.argv[0])); |
196 |
else: |
202 |
else: |
197 |
make.write_makefile('Makefile', args.dry_run, os.path.abspath(os.path.dirname(sys.argv[0])) + "/../share/wharfie"); |
203 |
make.write_makefile('Makefile', args.dry_run, os.path.abspath(os.path.dirname(sys.argv[0])) + "/../share/wharfie"); |
198 |
|
204 |
|