1
0
mirror of https://github.com/Interlisp/maiko.git synced 2026-01-11 23:43:19 +00:00
Interlisp.maiko/bin/compile-flags
devhawala 82577ce951
Dodo Nethub support (#445)
* added support for XNS networking via Dodo-Nethub

* NetHub connection now optional (only if -nh-host is given); released NetHub-related changes to 'ether.c' to the public domain

* Added file using-dodo-networking-with-maiko.md

Documentation for building and using the Dodo-networking addition to Maiko

* Added support for running Maiko unter cygwin/x86_64-x

* Migrate Addr68k/NativeAlignment{2,4} in Nethub code, move timer/async defines to platform.h

* added missing include <netinet/in.h> for FreeBSD

* updated 'compile-flags' with added flags

* splitted ether.c in 3 (_common, _sunos, _nethub)

* reworks/modifications for nbriggs' pull-request review comments

* addintional additions for nbriggs' pull-request review comments

* get the Lisp packet lengths with 'LispInt2CInt'

* renamed variables in dblwordsSwap to indicate it's about double-words

* fixed wrong preprocessor directive unnoticed by clang

* added networking choice option to cmake build, fix to printf warning

- for cmake specify the networking to use with -DMAIKO_NETWORK_TYPE=<type>
- with <type> one of: NONE, SUN_DLPI, SUN_NIT, NETHUB
- e.g.: cmake .. -DMAIKO_NETWORK_TYPE=NETHUB

* integrated improvement to sendPacket() proposed by nbriggs

* integrated fix for SIGBUS on 32-bit big-endian, provided by nbriggs

* MAIKO_ENABLE_ETHERNET should not be unconditionally set on Solaris systems

* Receiving an ethernet packet is an ether interrupt but not an i/o interrupt.

Co-authored-by: dev hawala <devhawala@x.y>
Co-authored-by: Nick Briggs <nicholas.h.briggs@gmail.com>
2022-10-11 14:21:55 -07:00

161 lines
6.5 KiB
Plaintext
Executable File

Medley compile flags & their meanings
Created: 28-Sep-89 JDS
Updated:
** Flags that control compilation for various machine
** architectures, manufacturers, and OS versions
Flag Name Meaning/Usage
_________ ________________________________________________________
BYTESWAP Used when compiling for a hardware architecture that has
byte-swapped words and word-swapped 32-bit cells, e.g. 80386.
OS4 True if compiling for SunOS 4.x
NOPIXRECT Used to suppress pixrect/pixwin options when they're not
needed or not available. True if XWINDOW is.
AIX True if compiling for AIX
sparc True if we're compiling on a SPARC machine.
NOASM If true, suppress any attempt to include assembler
versions of things in the emulator. In 'lispemul.c',
if this is true, disables:
OPDISP
PROFILE
C_ONLY
OPDISP Use "fast-opcode-dispatch" macros
--Debugging/Tracing/Check-enabling flags--
DEBUG Used when debugging, to enclose trace and dump code.
Best usage is with DBPRINT((controlString, args*));, which
calls printf, and compiles only if DEBUG is true. See
dbprint.h for the definition.
TRACE
TRACE2
OPTRACE If true, the dispatch loop prints the PC & opcode each time thru
FNTRACE If true, you see the name of each function called.
STACKCHECK If true, you see unusual cases of stack manipulation
traced. E.g., the hard cases of RETURN, like non-contiguous
stack frames, get mentioned.
LISPTRACE True if you want to see LISP calls & returns traced to
stdout; Generally, for traces of lisp-level events.
PROFILE If true, the profiling control code is enabled. You must
also change the optflags to contain -p or -pg, to use prof
or gprof, respectively.
CHECK
FSBCHECK If true, you see a trace of large free stack blocks when
the stack is manipulated; was used for debugging stack code.
WINDOW
INIT Used when compiling an emulator to build a loadup. Use it
to dike out code that deals with network initialization, e.g.
MYOPTRACE Used to check the stack's validity on each opcode execution.
Requires NOASM
PCTRACE When true, compiles in a 100-long ring buffer that holds the
last 100 PCs, Function-blocks, and Opcodes executed. "pccounter"
is the offset where the next one will go. Also requires NOASM.
The 3 tables are called pc_table, fn_table, and op_table.
--Flags that control new features, features under test, etc.--
DISPLAYBUFFER 10/3/89 JDS -- enables the experimental code for copying
changed portions of the display bank to the frame buffer.
Meant for supporting mono mode on a CG6 with no single-bit
bitplane. 1/22/91 JDS: This is now the standard flag for
compiling for color displays.
WINDOW
FLIPCURSOR If true, the "sandbar" line in the cursor will get flipped
by the C stack-frame-moving code, just as it does on a D
machine. Otherwise, you don't see it.
ORG_FILPCORSORBAR If true, you get the pixwin version of cursor changing;
otherwise, it gets done by direct writes into the display
region.
OLD_CURSOR If true, uses the pixwin cursor code (e.g., win_setcursor);
otherwise, uses the direct-write technique. This is only needed
for SUNDISPLAY.
OS4_TYPE4BUG If true, includes the patches around SunOS 4.0.x's failure
to tell you you've got a Type-4 keyboard.
ALLDIRSEARCH CURRENTLY HARD DISABLED IN directory.c; looks like it
controlled recursive directory searches??
KBINT If true (it looks like??), the emulator does most of the KBD
transition processing in C, rather than interrupting LISP for
it, and the transition interrupts happen when the OS signals
a transition, rather than by polling?
RS232INT If true, the RS232 device (NOT USED, a translation of Lisp's
code), uses the interrupt signalling support of timer.c to
know when to read characters. NOT USED, probably obsolete.
TTYINT Analogous to RS232INT, for the translated TTY device.
ETHERINT
COLOR If TRUE, supports 8bits-per-pixel color on CG4 and CG6 frame
buffer of Sun work station. IF COLOR is TRUE, don't use OLD_CURSOR
flag.
CATCH If true, includes some CATCH C code, for finding the blip,
finding variable names and PVAR names in frames. As of 10/2/89
this code is unused, and is called nowhere else in the system.
RECLAIMINC If true, then the RECLAIMCELL opcode calls gcreclaimcell in
C; otherwise it punts. As of 10/3/89, this was never debugged
and is not in any system. Probably fairly easy to debug??
KB_SUN4 The kbd type for the Type-4 keyboard. Defined only because
older OS versions of the compiler don't define it automatically.
FLTINT If true, use the floating-point exception interrupts to detect
errors and overflows on FP operations. The interrupt sets a
global error flag. Otherwise, calls library routines to see
the condition code from each operation. For SPARCs, it's not
clear that the interrupt trick works, because of code re-
arrangement by the C compiler.
XWINDOW True if compiling for an X-windows emulator.
BIGATOMS True if this emulator will support 3-byte symbols, instead of
the old, 2-byte atom numbers.
NEWBITBLT True if we want to use assembler BITBLT code, rather than
have code created inline by macro calls.
USE_DLPI True if the ethernet API is via the SysV Data Link Provider
Interface. Solaris uses DLPI.
USE_NIT True if the ethernet API is via the Network Interface Tap.
SunOS uses NIT.
PKTFILTER True if the ethernet packets are to be filtered before being
passed to the Lisp ethernet handler. Available on Sun systems
for both the NIT and DLPI cases.
MAIKO_ENABLE_NETHUB enables the support for Dodo Nethub networking for Dodo
XNS services, see documentation: using-dodo-networking-with-maiko.md
(implicitely disables USE_DLPI and USE_NIT)
MAIKO_EMULATE_TIMER_INTERRUPTS enables emulation of recurring timer interrupts for
platforms where SIGVTALRM/ITIMER_VIRTUAL or SIGALRM/ITIMER_REAL
do not work as expected (like cygwin)
timer is emulated by signaling an interrupt after a number of
executed instructions, by default 20.000 instructions, this can be
overriden by defining MAIKO_TIMER_ASYNC_EMULATION_INSNS_COUNTDOWN
with the number of instructions between 2 interrupts
additionally this adds the command line arguments -intr-emu-insns
for overriding the compiled in instruction interval
(not working if OPDISP (fast opcode dispatch) is used)
MAIKO_EMULATE_ASYNC_INTERRUPTS same as MAIKO_EMULATE_TIMER_INTERRUPTS, but also
signals an I/O interrupt after each instruction interval
bitbltsub.c:#ifdef GETBASE
testdisplay.c:#ifdef NOTUSED
uraid.c:#ifdef ETHERINT
bitblt.c:#ifndef COLOR
lispmap.h:#ifdef MEDLEY