make distcheck succeeds (but we still don't install the System Folder due to issues associated with spaces in filenames)

This commit is contained in:
Clifford Matthews 2009-07-02 17:30:02 -06:00
parent d8c1c730bd
commit 99a876f1fe
31 changed files with 544 additions and 70 deletions

78
README.64 Normal file
View File

@ -0,0 +1,78 @@
If you try to build Executor on a 64-bit machine, without telling the
compiler to use 32-bit pointers, the compilation will fail due to the
conversion being a work in progress.
This file is a rough dump of what I've been thinking about as I've
explored building Executor on a 64-bit machine. I'm about to switch
to some other projects before I finish this exploration, and am
writing these notes primarily for myself. There's no developer's
guide to Syn68k/ROMlib/Executor, so although it's possible for someone
else to finish the 64-bit mods up without me, it would take a bit of
figuring out what we currently do and why, something I don't currently
have the time to document.
At one point we had Executor running on an Alpha using 64-bit pointers
for all our native code, but 32-bit pointers for the Mac memory. We
did this by altering gcc to allow us to use the ":32" bit-field
notation with pointers. This worked OK and could possibly work again,
but there's another way we can store 32-bits of pointer in a variable
and still keep the type that the pointer points to, and that's to use
a union of a 32-bit unsigned and an array of zero of the pointers we
really want.
For example
typedef union {
uint32_t p_val;
SomePointerType p_type[0];
} PackedSomePointerType;
PackedPointerType pp;
Now pp.p_val can be the 32-bit value thats in Mac memory, with
(typeof pp.p_type[0]) being the type of pointer that pp.p_val can expand to.
I haven't decided exactly how to make use of this type. I've experimented with
defining two macros: MAKE_HIDDEN and PACKED_MEMBER that collectively replace
the two places we used to use ":32". MAKE_HIDDEN replaces the way we used to
make 32-bit pointers for Handles and PACKED_MEMBER replaces the way we were
putting 32-bit pointers in structs. We then need to rewrite some of the macros
that we use for dereferencing our 32-bit pointers.
Unfortunately, a combination of having the compiler allow us to mix
and match 32-bit pointers and 64-bit pointers along with the fact that
we didn't keep the Alpha port up to date means that the set of macros
we're using is incomplete and some macros will need to be split into
different variants for different uses. For example, HxX dereferences
a handle and then picks up the field that is pointed to, but does not
swap the field. We can make a HxX that does that in general, but code like
this:
if (t_aux_c && HxX (t_aux_c, acCTable))
will not work though, since acCTable itself is a PACKED_MEMBER and so the
test for zero vs. non-zero won't work with the union. If we introduce HxZ,
a new macro that can be used for testing zero vs. non-zero, we can change
the code to work right:
if (t_aux_c && HxZ (t_aux_c, acCTable))
But that requires that one way or the other we determine when we need
to change HxX into HxZ.
Some of the other changes that need to be made include:
defines like # define TheGDevice (TheGDevice_H.p)
need to be # define TheGDevice ((typeof (TheGDevice_H.type[0]))(TheGDevice_H.pp))
A bunch(all?) of MR that should be PPR
A bunch of RM that should be RPP (and intermediate values
that are actually unions)
Assignments to PACKED_MEMBER fields (including things
like CopyMacHandle)
Since the only reason to make Executor work on 64-bit machines is for fun, I
have no idea when I'll have a chance to finish these mods. If it's something
that interests you, drop me a note on Github, where my account is "ctm".

8
TODO
View File

@ -1,11 +1,13 @@
package up the System Folder and whatnot so that people w/o the
old executor-aux can run Executor
/usr/local/share/executor/skel/volume
Yank all the misleading RCS strings
Update the copyright notices to make it that the code is under
an MIT-style license
package up the System Folder and whatnot so that people w/o the
old executor-aux can run Executor
probably get rid of most of the customization stuff (don't yet
wholesale kill it, since some might be useful as per-user,
per-app or command line configuration)

View File

@ -109,10 +109,270 @@ misc_sources = desk.c device.c disk.c diskinit.c dump.c trapname.c font.c \
emutrap.c emutraptables.c emustubs.c unix_like.c parse.y check_structs.c \
executor.c mkvol/mkvol.c crc.c
include_sources = hintemplate.h \
include/ADB.h \
include/AliasMgr.h \
include/AppleEvents.h \
include/AppleTalk.h \
include/BinaryDecimal.h \
include/CommTool.h \
include/Components.h \
include/ControlMgr.h \
include/CQuickDraw.h \
include/DeskMgr.h \
include/DeviceMgr.h \
include/DialogMgr.h \
include/Disk.h \
include/DiskInit.h \
include/EditionMgr.h \
include/EventMgr.h \
include/FileMgr.h \
include/Finder.h \
include/FontMgr.h \
include/Gestalt.h \
include/HelpMgr.h \
include/Iconutil.h \
include/IntlUtil.h \
include/ListMgr.h \
include/MacTypes.h \
include/MemoryMgr.h \
include/MenuMgr.h \
include/NotifyMgr.h \
include/OSEvent.h \
include/OSUtil.h \
include/Package.h \
include/paramline.h \
include/PPC.h \
include/PrintMgr.h \
include/ProcessMgr.h \
include/QuickDraw.h \
include/QuickTime.h \
include/ResourceMgr.h \
include/rsys/aboutbox.h \
include/rsys/aboutpanel.h \
include/rsys/adb.h \
include/rsys/alias.h \
include/rsys/appearance.h \
include/rsys/apple_events.h \
include/rsys/arch.h \
include/rsys/arrowkeys.h \
include/rsys/autorefresh.h \
include/rsys/blockdev.h \
include/rsys/blockinterrupts.h \
include/rsys/byteswap.h \
include/rsys/cfm.h \
include/rsys/check_structs.h \
include/rsys/checkpoint.h \
include/rsys/cleanup.h \
include/rsys/color_wheel_bits.h \
include/rsys/common.h \
include/rsys/commonevt.h \
include/rsys/cquick.h \
include/rsys/crc.h \
include/rsys/cruft.h \
include/rsys/ctl.h \
include/rsys/ctopflags.h \
include/rsys/custom.h \
include/rsys/dcache.h \
include/rsys/depthconv.h \
include/rsys/desk.h \
include/rsys/desperate.h \
include/rsys/device.h \
include/rsys/dial.h \
include/rsys/dirtyrect.h \
include/rsys/drive_flags.h \
include/rsys/dump.h \
include/rsys/emustubs.h \
include/rsys/error.h \
include/rsys/everything.h \
include/rsys/evil.h \
include/rsys/executor.h \
include/rsys/fauxdbm.h \
include/rsys/file.h \
include/rsys/filedouble.h \
include/rsys/flags.h \
include/rsys/float.h \
include/rsys/float_fcw.h \
include/rsys/floatconv.h \
include/rsys/font.h \
include/rsys/gestalt.h \
include/rsys/glue.h \
include/rsys/gworld.h \
include/rsys/hfs.h \
include/rsys/hfs_plus.h \
include/rsys/hook.h \
include/rsys/host.h \
include/rsys/icon.h \
include/rsys/image.h \
include/rsys/ini.h \
include/rsys/int386.h \
include/rsys/interfacelib.h \
include/rsys/itm.h \
include/rsys/iv.h \
include/rsys/jumpvectors.h \
include/rsys/keyboard.h \
include/rsys/keyboards.h \
include/rsys/keycode.h \
include/rsys/launch.h \
include/rsys/libcproto.h \
include/rsys/licensetext.h \
include/rsys/list.h \
include/rsys/local_charset.h \
include/rsys/lockunlock.h \
include/rsys/lowglobals.h \
include/rsys/m68kint.h \
include/rsys/macros.h \
include/rsys/mactype.h \
include/rsys/mathlib.h \
include/rsys/memory_layout.h \
include/rsys/memsize.h \
include/rsys/menu.h \
include/rsys/misc.h \
include/rsys/mixed_mode.h \
include/rsys/mman.h \
include/rsys/mman_private.h \
include/rsys/mmanstubs.h \
include/rsys/new_mmanstubs.h \
include/rsys/newvga.h \
include/rsys/next.h \
include/rsys/nextprint.h \
include/rsys/noreturn.h \
include/rsys/notmac.h \
include/rsys/Olibcproto.h \
include/rsys/option.h \
include/rsys/options.h \
include/rsys/os.h \
include/rsys/osevent.h \
include/rsys/osutil.h \
include/rsys/parse.h \
include/rsys/parsenum.h \
include/rsys/parseopt.h \
include/rsys/partition.h \
include/rsys/pef.h \
include/rsys/picture.h \
include/rsys/pragmal.h \
include/rsys/pragmar.h \
include/rsys/pragmas.h \
include/rsys/prefpanel.h \
include/rsys/prefs.h \
include/rsys/print.h \
include/rsys/process.h \
include/rsys/PSstrings.h \
include/rsys/pstuff.h \
include/rsys/ptocflags.h \
include/rsys/qcolor.h \
include/rsys/quick.h \
include/rsys/rawblt.h \
include/rsys/redrawscreen.h \
include/rsys/refresh.h \
include/rsys/region.h \
include/rsys/release.h \
include/rsys/resource.h \
include/rsys/rgbutil.h \
include/rsys/safe_alloca.h \
include/rsys/scrap.h \
include/rsys/screen-dump.h \
include/rsys/segment.h \
include/rsys/serial.h \
include/rsys/setuid.h \
include/rsys/sigio_multiplex.h \
include/rsys/slash.h \
include/rsys/smash.h \
include/rsys/sounddriver.h \
include/rsys/soundfake.h \
include/rsys/soundopts.h \
include/rsys/splash.h \
include/rsys/srcblt.h \
include/rsys/stdbits.h \
include/rsys/stdfile.h \
include/rsys/stdio_smashage.h \
include/rsys/string.h \
include/rsys/stubify.h \
include/rsys/suffix_maps.h \
include/rsys/syncint.h \
include/rsys/syserr.h \
include/rsys/system_error.h \
include/rsys/tempalloc.h \
include/rsys/tesave.h \
include/rsys/text.h \
include/rsys/time.h \
include/rsys/toolevent.h \
include/rsys/toolutil.h \
include/rsys/trapdecl.h \
include/rsys/trapdefines.h \
include/rsys/trapglue.h \
include/rsys/trapname.h \
include/rsys/types.h \
include/rsys/uniquefile.h \
include/rsys/vbl.h \
include/rsys/vdriver.h \
include/rsys/version.h \
include/rsys/vgavdriver.h \
include/rsys/wind.h \
include/rsys/wrappers.h \
include/rsys/x.h \
include/rsys/xdata.h \
include/rsys/xdblt.h \
include/rsys/Xdefs.h \
include/SANE.h \
include/ScrapMgr.h \
include/ScriptMgr.h \
include/SegmentLdr.h \
include/Serial.h \
include/ShutDown.h \
include/SoundDvr.h \
include/SoundMgr.h \
include/StartMgr.h \
include/StdFilePkg.h \
include/SysErr.h \
include/TextEdit.h \
include/ThinkC.h \
include/TimeMgr.h \
include/ToolboxEvent.h \
include/ToolboxUtil.h \
include/VDriver.h \
include/VRetraceMgr.h \
include/WindowMgr.h \
mkvol/mkvol.h \
mkvol/mkvol_internal.h
# Can't put the .map files into a _SOURCES variable, or else automake will
# try to create .o files out of them, but we just need the .c files that
# map_to_c will create.
EXTRA_DIST = active.map \
apple.map \
arrow_down_active.map \
arrow_down_inactive.map \
arrow_left_active.map \
arrow_left_inactive.map \
arrow_right_active.map \
arrow_right_inactive.map \
arrow_up_active.map \
arrow_up_inactive.map \
go_away.map \
grow.map \
ractive.map \
thumb_horiz.map \
thumb_vert.map \
zoom.map
other_sources = globals.pl \
makerawblt.pl \
genctopflags_h.tmpl \
geninterfacelib.tmpl \
genptocflags_h.tmpl \
genstubify_h.tmpl \
genstubify_s.tmpl \
pat-blitters.tmpl \
src-blitters.tmpl
AM_CPPFLAGS=-I$(srcdir)/include -I$(srcdir)/config/front-ends/$(front_end) -I$(srcdir)/config/os/$(host_os) -I$(srcdir)/config/arch/$(host_cpu)
nodist_executor_SOURCES =
if CONFIG_ARCH_ALPHA
arch_sources = config/arch/alpha/alpha.c
arch_sources = config/arch/alpha/alpha.c config/arch/alpha/alpha.h
endif CONFIG_ARCH_ALPHA
if CONFIG_ARCH_I386
@ -155,8 +415,10 @@ src-blitters-stamp src-blitters.h src-blitters.s: \
config/arch/i386/opfind.c
touch src-blitters-stamp
arch_sources = config/arch/i386/i386.c
arch_sources = config/arch/i386/i386.c \
config/arch/i386/i386.h \
config/arch/i386/i386_djgpp_version.h \
config/arch/i386/opfind.h
if !CONFIG_OS_MACOSX
@ -165,7 +427,8 @@ noinst_PROGRAMS += opfind
arch_sources += config/arch/i386/x86patblt.S \
config/arch/i386/x86srcblt.S \
config/arch/i386/xdstubtables.c \
config/arch/i386/sbstubtables.c
config/arch/i386/sbstubtables.c \
config/arch/i386/metaasm.pl
endif !CONFIG_OS_MACOSX
@ -173,6 +436,8 @@ endif CONFIG_ARCH_I386
if CONFIG_ARCH_M68K
nodist_executor_SOURCES += m68k-callback-stubs.s
arch_sources = config/arch/m68k/m68k.c \
config/arch/m68k/m68k-callback.c \
config/arch/m68k/m68k-callback-handler.s \
@ -181,7 +446,10 @@ arch_sources = config/arch/m68k/m68k.c \
config/arch/m68k/m68k-stack.c \
config/arch/m68k/m68k-trap-handler.s \
config/arch/m68k/trap.S \
config/arch/m68k/m68k-callback-stubs.s
config/arch/m68k/m68k-stack.h \
config/arch/m68k/m68k.h \
config/arch/m68k/syn68k_api.h \
config/arch/m68k/make_callback_stubs.pl
max_callbacks=4352 # 4096 plus extra slop
@ -211,12 +479,15 @@ if CONFIG_ARCH_POWERPC
arch_sources = config/arch/powerpc/powerpc.c \
config/arch/powerpc/ppc_call.c \
config/arch/powerpc/ppc_stubs.c
config/arch/powerpc/ppc_stubs.c \
config/arch/powerpc/powerpc.h
config/arch/powerpc/ppc_stubs.h
AM_CPPFLAGS += -D_GNU_SOURCE
endif CONFIG_ARCH_POWERPC
if CONFIG_ARCH_X86_64
arch_sources = config/arch/x86_64/x86_64.c
arch_sources = config/arch/x86_64/x86_64.c config/arch/x86_64/x86_64.h
endif CONFIG_ARCH_X86_64
@ -235,6 +506,20 @@ front_end_sources = config/front-ends/dos/dosclip.c \
config/front-ends/dos/deintr.S \
config/front-ends/dos/dosmem.c \
config/front-ends/dos/dosserial.c \
config/front-ends/dos/aspi.h \
config/front-ends/dos/dos.h \
config/front-ends/dos/dosdisk.h \
config/front-ends/dos/dosevents.h \
config/front-ends/dos/dosevq.h \
config/front-ends/dos/dosevq_defs.h \
config/front-ends/dos/dosmem.h \
config/front-ends/dos/dosserial.h \
config/front-ends/dos/dpmilock.h \
config/front-ends/dos/host_bltmacros.h \
config/front-ends/dos/host_vdriver.h \
config/front-ends/dos/itimer.h \
config/front-ends/dos/vga.h \
config/front-ends/dos/vgatables.h \
vgavdriver.c
METAASM_ARGS = -define 'DST_SEG=%es:'
@ -259,7 +544,21 @@ front_end_sources = config/front-ends/sdl/SDL_bmp.c \
config/front-ends/sdl/sdlwin.c \
config/front-ends/sdl/sdlwm.c \
config/front-ends/sdl/syswm_map.c \
config/front-ends/sdl/winmain.c
config/front-ends/sdl/winmain.c \
config/front-ends/sdl/for_sam.h \
config/front-ends/sdl/host_bltmacros.h \
config/front-ends/sdl/host_vdriver.h \
config/front-ends/sdl/map.h \
config/front-ends/sdl/sdl.h \
config/front-ends/sdl/SDL_bmp.h \
config/front-ends/sdl/sdl_mem.h \
config/front-ends/sdl/sdlevents.h \
config/front-ends/sdl/sdlk_to_mkv.h \
config/front-ends/sdl/sdlquit.h \
config/front-ends/sdl/sdlscrap.h \
config/front-ends/sdl/sdlX.h \
config/front-ends/sdl/syswm_map.h \
config/front-ends/sdl/syswm_vars.h
if CONFIG_OS_LINUX
front_end_sources += config/front-ends/sdl/sdlX.c
@ -277,6 +576,9 @@ if CONFIG_FRONT_END_SVGALIB
front_end_sources = config/front-ends/svgalib/svgalib.c \
config/front-ends/svgalib/svgalibevent.c \
config/front-ends/svgalib/host_bltmacros.h \
config/front-ends/svgalib/host_vdriver.h \
config/front-ends/svgalib/svgalib.h \
vgavdriver.c
endif CONFIG_FRONT_END_SVGALIB
@ -287,13 +589,24 @@ if CONFIG_FRONT_END_WIN32
front_end_sources = config/front-ends/win32/winevents.c \
config/front-ends/win32/wincursor.c \
config/front-ends/win32/windriver.c
config/front-ends/win32/windriver.c \
config/front-ends/win32/host_bltmacros.h \
config/front-ends/win32/host_vdriver.h \
config/front-ends/win32/vk_to_mkv.h \
config/front-ends/win32/win32.h \
config/front-ends/win32/windriver.h
endif CONFIG_FRONT_END_WIN32
if CONFIG_FRONT_END_X
front_end_sources = config/front-ends/x/x.c config/front-ends/x/x_keycodes.c
front_end_sources = config/front-ends/x/x.c \
config/front-ends/x/x_keycodes.c \
config/front-ends/x/host_bltmacros.h \
config/front-ends/x/host_vdriver.h \
config/front-ends/x/x.h \
config/front-ends/x/x_keycodes.h
HAVE_IV = yes
endif CONFIG_FRONT_END_X
@ -314,7 +627,6 @@ os_sources = config/os/cygwin32/cygwin32.c \
config/os/cygwin32/win_ntcd.c \
config/os/cygwin32/win_print.c \
config/os/cygwin32/win_beep.c \
config/os/cygwin32/win_cookie.c \
config/os/cygwin32/win_clip.c \
config/os/cygwin32/win_temp.c \
config/os/cygwin32/win_except.c \
@ -325,19 +637,56 @@ os_sources = config/os/cygwin32/cygwin32.c \
config/os/cygwin32/win_vxdiface.c \
config/os/cygwin32/win_keyboard.c \
config/os/cygwin32/win_launch.c \
config/os/cygwin32/win_stdfile.c
config/os/cygwin32/win_stdfile.c \
config/os/cygwin32/aspi.h \
config/os/cygwin32/cdenable.h \
config/os/cygwin32/cygwin32.h \
config/os/cygwin32/dosdisk.h \
config/os/cygwin32/main_windows.h \
config/os/cygwin32/mmsystem.h \
config/os/cygwin32/ntcd.h \
config/os/cygwin32/sysdeps.h \
config/os/cygwin32/timer.h \
config/os/cygwin32/vwin32.h \
config/os/cygwin32/vxdiface.h \
config/os/cygwin32/win_cdenable.h \
config/os/cygwin32/win_clip.h \
config/os/cygwin32/win_dll.h \
config/os/cygwin32/win_dongle.h \
config/os/cygwin32/win_except.h \
config/os/cygwin32/win_hasp.h \
config/os/cygwin32/win_keyboard.h \
config/os/cygwin32/win_memory.h \
config/os/cygwin32/win_ntcd.h \
config/os/cygwin32/win_ntinc.h \
config/os/cygwin32/win_print.h \
config/os/cygwin32/win_print_private.h \
config/os/cygwin32/win_queue.h \
config/os/cygwin32/win_screen.h \
config/os/cygwin32/win_sentpro.h \
config/os/cygwin32/win_serial.h \
config/os/cygwin32/win_stat.h \
config/os/cygwin32/win_stat_private.h \
config/os/cygwin32/win_temp.h \
config/os/cygwin32/win_win.h \
config/os/cygwin32/winfs.h
bin_PROGRAMS += exemove
exemove_SOURCES = config/os/cygwin32/exemove.c
endif CONFIG_OS_CYGWIN32
if CONFIG_OS_LINUX
os_sources = config/os/linux/linux.c \
config/os/linux/linux_except.c \
config/os/linux/lowglobals-mem.c
config/os/linux/lowglobals-mem.c \
config/os/linux/linux.h \
config/os/linux/linux_except.h
endif CONFIG_OS_LINUX
if CONFIG_OS_MACOSX
os_sources = config/os/macosx/macosx.h
executor_LDFLAGS = -framework SDL -framework Cocoa
endif CONFIG_OS_MACOSX
@ -346,23 +695,38 @@ os_sources = config/os/msdos/msdos.c \
config/os/msdos/dpmimem.c \
config/os/msdos/dpmicall.c \
config/os/msdos/openmany.c \
config/os/msdos/rmint70.S
config/os/msdos/rmint70.S \
config/os/msdos/dpmicall.h \
config/os/msdos/dpmimem.h \
config/os/msdos/interrupt.h \
config/os/msdos/msdos.h \
config/os/msdos/openmany.h \
config/os/msdos/rmint70.h
endif CONFIG_OS_MSDOS
if CONFIG_OS_NEXT
os_sources = next.c
os_sources = config/os/next/next.c config/os/next/next.h
endif CONFIG_OS_NEXT
if CONFIG_SOUND_DJGPP
sound_sources += config/sound/djgpp/djgpp-sound.c
sound_sources += config/sound/djgpp/djgpp-sound.c \
config/sound/djgpp/djgpp-sound.h \
config/sound/djgpp/sb_lib/sb_defs.h \
config/sound/djgpp/sb_lib/sb_dma.h \
config/sound/djgpp/sb_lib/sb_lib.h \
config/sound/djgpp/sb_lib/sbdetect.h \
config/sound/djgpp/sb_lib/sbdriver.h
endif CONFIG_SOUND_DJGPP
if CONFIG_SOUND_LINUX
sound_sources += config/sound/linux/linux-sound.c
sound_sources += config/sound/linux/linux-sound.c \
config/sound/linux/linux-sound.h
endif CONFIG_SOUND_LINUX
if CONFIG_SOUND_SDL
sound_sources += config/sound/sdl/sdl-sound.c
sound_sources += config/sound/sdl/sdl-sound.c \
config/sound/sdl/sdl-sound.h
endif CONFIG_SOUND_SDL
executor_SOURCES = $(ctl_sources) $(dial_sources) $(file_sources) \
@ -371,4 +735,4 @@ executor_SOURCES = $(ctl_sources) $(dial_sources) $(file_sources) \
$(te_sources) $(wind_sources) $(ae_sources) \
$(sound_sources) $(num_sources) $(misc_sources) \
$(arch_sources) $(front_end_sources) $(host_sources) \
$(os_sources)
$(os_sources) $(include_sources) $(other_sources)

24
src/THANKS Normal file
View File

@ -0,0 +1,24 @@
Executor THANKS file
Executor was originally written by Clifford T. Matthews, with major
contributions from Mat Hostetter, Cotton Seed, Bill Goldman and
Patrick LoPresti.
The MSDOS port included a sound driver from Joel Hunter, DOS Serial port
support from Samuel Vincint and low-level CD-ROM access from Lauri Pesonen.
Sam Lantinga did the initial port to Windows and created an intermediate
library that became SDL.
The windows appearance option uses "Jim's CDEFs" copyright Jim Stout
and the "Infinity Windoid" copyright Troy Gaul.
Primary Pre-Beta Testers
Jon Abbott Testing, Icon Design
Ziv Arazi Testing
Edmund Ronald Advice, Testing
K. Harrison Liang Testing
Hugh Mclenaghan Testing
Emilio Moreno Testing, Spanish Translation + Keyboard, Icon Design
Ernst Oud Documentation, Testing

View File

@ -1,4 +1,4 @@
AC_INIT(executor, 2.1pr17, ctm@ardi.com)
AC_INIT(executor, 2.1.17, ctm@ardi.com)
AC_CANONICAL_SYSTEM
AM_INIT_AUTOMAKE([-Wall])

6
src/skel/README Normal file
View File

@ -0,0 +1,6 @@
The skel directory contains a single directory "volume", which is the
read-only template used to create an initial ExecutorVolume when one
can't be found at Executor's startup. ExecutorVolume at minimum needs
a "System Folder" directory that contains an Executor compatible "System"
file (traditionally represented as a pair of files "System" and "%System").