public void etags(File tagsFile, File[] sources, boolean append) throws MakeException {
public void etags(File tagsFile, File[] sources, File[] tagFiles, boolean append) throws MakeException {
    public void etags(File tagsFile, File[] sources, boolean append) throws MakeException {        int offset = 0;        MakeException e = null;        while (offset < sources.length) {            int nfiles = Math.min(sources.length - offset, 20);            String[] command;            if (append || offset > 0) {                command = new String[] {                    ETAGS,                    "-o",                    tagsFile.getPath(),                    "-a"                };            } else {                command = new String[] {                    ETAGS,                    "-o",                    tagsFile.getPath()                };            }            List args = new ArrayList();            for (int i = 0; i < nfiles; i++) {                if (sources[i + offset].isDirectory()) {                    args.add("-i");                }                args.add(sources[i + offset]);            }            try {                runExecutable(command, args.toArray(), 0, args.size());            } catch (MakeException me) {                e = me;            }            offset += nfiles;        }        if (e != null) throw e;    }