private List<String> populateAfterSubdirsAdded() throws IOException
	{
		List<String> archives = new ArrayList<String>();
		File[] subfiles = build_dir.listFiles();

		for (Makefile subdir : subdirs) {
			List<String> subarchives = subdir.populateFull();
			for (String subarchive : subarchives) {
				archives.add(getName() + File.separator +
					     subarchive);
			}
		}

		/* populate with object files based on source files */
		for (File subfile : subfiles) {
			String name = subfile.getName();
			if (isSource(name)) {
				String object_name =
				name.substring(0,
					       name.lastIndexOf(EXT_MARKER)) +
				OBJ_EXT;
				addObject(object_name);
			}
		}
		/* populate target with archive if desired */
		if (make_object_archive) {
			ArchiveTarget archive;
			String archive_name;

			if (custom_archive_name == null) {
				archive_name = toArchiveName();
			} else {
				archive_name = custom_archive_name;
			}
			archive = new ArchiveTarget(archive_name, object_names);
			addTarget(archive);

			archives.add(archive_name);
		}

		return archives;
	}