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