1
0
mirror of https://github.com/Interlisp/maiko.git synced 2026-03-15 14:27:19 +00:00

Compare commits

..

1 Commits

Author SHA1 Message Date
Nick Briggs
439d92adbd Add experimental SUBR to call nanosleep() for experiments in reducing CPU load
This adds a SUBR, sb_YIELD, value (octal) 0322 which takes a single number
0..999999999 which is the number of nanoseconds to pass to nanosleep().

The return value is T if the call to nanosleep() was executed or NIL
if it was not (argument out-of-range, or other error in getting the
number from the argument).

To use this experimental SUBR in a sysout you should:

   (SETQ \INITSUBRS (CONS '(YIELD #o322) \INITSUBRS))

then you can define functions that use that SUBR:

   (DEFINEQ (BACKGROUND-YIELD (SUBRCALL YIELD 833333)))
   (COMPILE 'BACKGROUND-YIELD)
   (SETQ BACKGROUNDFNS (CONS 'BACKGROUND-YIELD BACKGROUNDFNS))
2021-02-24 12:42:23 -08:00
325 changed files with 11135 additions and 13439 deletions

View File

@@ -1,18 +0,0 @@
#*******************************************************************************
#
# Dockerfile to build image with all the tools to build Maiko
#
# Copyright 2023 by Interlisp.org
#
# Frank Halasz 2023-02-21
#
# ******************************************************************************
FROM ubuntu:22.04
SHELL ["/bin/bash", "-c"]
USER root:root
# Install build tools
RUN apt-get update && apt-get install -y make clang libx11-dev gcc
USER root
WORKDIR /root
ENTRYPOINT /bin/bash

View File

@@ -1,34 +0,0 @@
#*******************************************************************************
#
# Dockerfile to build Maiko for Linux to be used by buildRelease github action
# The output of this is intended to be a directory in the github workspace
# file system it is not intended to be a useable Docker image.
#
# Copyright 2023 by Interlisp.org
#
# Frank Halasz 2023-02-21
#
# ******************************************************************************
FROM ghcr.io/interlisp/maiko-builder
ARG INSTALL_LOCATION=/usr/local/interlisp/maiko
SHELL ["/bin/bash", "-c"]
# Copy over / clean maiko repo
COPY . ${INSTALL_LOCATION}
# Build maiko
RUN cd ${INSTALL_LOCATION}/bin \
&& ./makeright x cleanup \
&& ./makeright x \
&& if [ "$(./machinetype)" = "x86_64" ]; then \
./makeright init; \
fi
# Build specially for WSL1 by "fooling" a linux build
RUN cd ${INSTALL_LOCATION}/bin \
&& arch="$(./machinetype)" \
&& if [ "$arch" = "x86_64" ] || [ "$arch" = "aarch64" ]; then \
export LDEARCH="${arch}-microsoft-wsl1" \
&& ./makeright x cleanup \
&& ./makeright x \
&& ./makeright init \
; \
fi

View File

@@ -11,9 +11,9 @@ jobs:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-11, macos-12, ubuntu-22.04, ubuntu-20.04]
os: [macos-10.15, ubuntu-18.04]
steps:
- uses: actions/checkout@v3
- uses: actions/checkout@v2
- name: Install X11 dependencies on MacOS
if: ${{ runner.os == 'macOS'}}
run: brew install --cask xquartz
@@ -21,38 +21,27 @@ jobs:
working-directory: bin
run: ./makeright x
#
# Commented out because the RPi is not online at this time (6 July 2021)
#
# build-pi:
# runs-on: [self-hosted, linux, ARM]
# if: ${{ github.repository == 'Interlisp/maiko' }}
# steps:
# - uses: actions/checkout@v3
# - name: Build
# working-directory: bin
# run: ./makeright x
build-pi:
runs-on: [self-hosted, linux, ARM]
if: ${{ github.repository == 'Interlisp/maiko' }}
steps:
- uses: actions/checkout@v2
- name: Build
working-directory: bin
run: ./makeright x
build-cmake:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-11, macos-12, ubuntu-22.04, ubuntu-20.04]
os: [macos-10.15, ubuntu-20.04, ubuntu-18.04]
env:
BUILD_TYPE: Release
steps:
- uses: actions/checkout@v3
- name: Show CMake version
run: cmake --version
- uses: actions/checkout@v2
- name: Install X11 dependencies on MacOS
if: ${{ runner.os == 'macOS'}}
run: brew install --cask xquartz
- name: Install SDL2 dependencies on MacOS
if: ${{ runner.os == 'macOS'}}
run: brew install sdl2
- name: Install SDL dependency on Ubuntu
if: ${{ runner.os == 'Linux'}}
run: sudo apt-get update && sudo apt-get install -y libsdl2-dev
- name: Create Build Environment
run: cmake -E make_directory ${{github.workspace}}/build
- name: Configure CMake

View File

@@ -1,87 +0,0 @@
#*******************************************************************************
# buildBuilderImage.yml
#
# Workflow to build a multiarch Docker image that includes all of the tools for
# building maiko for linux. Intended to be used (exclusively?) by the github
# actions that build maiko releases - e.g., buildRelease.yml.
#
# The purpose is to make the maiko github actions quicker and less resource
# consuming by not hving to intll the tools every time and instead just reuse
# this Docker image.
#
#
# Copyright 2023 by Interlisp.org
#
# Frank Haasz 2023-02-21
#
# ******************************************************************************
name: 'Build/Push Builder Image'
# Run this workflow on ...
on: workflow_dispatch
defaults:
run:
shell: bash
jobs:
buildBuilder:
runs-on: ubuntu-latest
steps:
# Checkout maiko
- name: Checkout maiko
uses: actions/checkout@v3
# Setup docker environment variables
- name: Setup Docker Environment Variables
id: docker_env
run: |
DOCKER_REGISTRY="ghcr.io"
DOCKER_NAMESPACE=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')
DOCKER_REPO=${DOCKER_REGISTRY}/${DOCKER_NAMESPACE}/maiko-builder
DOCKER_TAGS="${DOCKER_REPO}:latest"
echo "BUILD_DATE=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> ${GITHUB_ENV}
echo "DOCKER_TAGS=${DOCKER_TAGS}" >> ${GITHUB_ENV}
# Setup the Docker Machine Emulation environment.
- name: Set up QEMU
uses: docker/setup-qemu-action@master
with:
platforms: linux/amd64,linux/arm64,linux/arm/v7
# Setup the Docker Buildx funtion
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@master
# Login to ghcr.io
- name: Login to GitHub Container Registry
uses: docker/login-action@v2
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
# Do the Docker Build using the Dockerfile_builder in the repository we
# checked out. Push the result to ghcr.io.
#
- name: Build Docker Images for Push to GHCR
if: ${{ true }}
uses: docker/build-push-action@v4
with:
builder: ${{ steps.buildx.outputs.name }}
build-args: |
BUILD_DATE=${{ env.BUILD_DATE }}
context: ./.github/workflows
file: ./.github/workflows/Dockerfile_builder
platforms: linux/amd64,linux/arm64,linux/arm/v7
# Push the result to DockerHub
push: true
tags: ${{ env.DOCKER_TAGS }}
######################################################################################

View File

@@ -1,594 +0,0 @@
#*******************************************************************************
# buidRelease.yml
#
# Workflow to build a Maiko release that is pushed to github.
# For linux: release assets are built/pushed for X86_64, aarch64 and arm7vl.
# For macOS: release assets are built/pushed for X86_64 and aarch64 as well as
# a set of universal binaries.
# For Windows: not supported
#
# Note release pushed to github automatically includes source code assets
# in tar and zip formats.
#
# 2022-01-16 by Frank Halasz based on earlier workflow called buildDocker.yml
# Updated 2023-06-06: Remove docker image push; increase build efficeincy for linux
#
# Copyright 2022-2023 by Interlisp.org
#
#
# ******************************************************************************
name: 'Build/Push Release'
# Run this workflow on ...
on:
workflow_dispatch:
inputs:
draft:
description: "Mark this as a draft release"
type: choice
options:
- 'false'
- 'true'
force:
description: "Force build even if build already successfully completed for this commit"
type: choice
options:
- 'false'
- 'true'
workflow_call:
secrets:
DOCKER_USERNAME:
required: true
DOCKER_PASSWORD:
required: true
outputs:
successful:
description: "'True' if maiko build completed successully"
value: ${{ jobs.complete.outputs.build_successful }}
inputs:
draft:
description: "Mark this as a draft release"
required: false
type: string
default: 'false'
force:
description: "Force build even if build already successfully completed for this commit"
required: false
type: string
default: 'false'
defaults:
run:
shell: bash
# 3 separate jobs here that can run in parallel
#
# 1. Linux: Build a multiplatform Linux Docker file system (not saved) and use
# results to build/push Linux release assets.
#
# 2. MacOs: Build maiko for MacOS (x86_64, aarch64, and universal) then create
# and push release assets.
#
# 3. Windows: Build maiko for cygwin and SDL (x86_64). Build is done within the
# cygwin-maiko-builder Docker image by building a new docker files system (and
# not a docker container) which is used to build/push Windows(cygwin) assets.
#
jobs:
######################################################################################
# Regularize the inputs so they can be referenced the same way whether they are
# the result of a workflow_dispatch or a workflow_call
inputs:
runs-on: ubuntu-latest
outputs:
draft: ${{ steps.one.outputs.draft }}
force: ${{ steps.one.outputs.force }}
linux: ${{ steps.one.outputs.linux }}
macos: ${{ steps.one.outputs.macos }}
windows: ${{ steps.one.outputs.windows }}
steps:
- id: one
run: >
if [ '${{ toJSON(inputs) }}' = 'null' ];
then
echo "workflow_dispatch";
echo "draft=${{ github.event.inputs.draft }}" >> $GITHUB_OUTPUT;
echo "force=${{ github.event.inputs.force }}" >> $GITHUB_OUTPUT;
else
echo "workflow_call";
echo "draft=${{ inputs.draft }}" >> $GITHUB_OUTPUT;
echo "force=${{ inputs.force }}" >> $GITHUB_OUTPUT;
fi;
echo "linux=true" >> $GITHUB_OUTPUT;
echo "macos=true" >> $GITHUB_OUTPUT;
echo "windows=true" >> $GITHUB_OUTPUT;
######################################################################################
# Use sentry-action to determine if this release has already been built
# based on the latest commit to the repo
sentry:
needs: inputs
runs-on: ubuntu-latest
outputs:
release_not_built: ${{ steps.check.outputs.release_not_built }}
steps:
# Checkout the actions for this repo owner
- name: Checkout Actions
uses: actions/checkout@v4
with:
repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }}
- run: mv ./Actions_${{ github.sha }}/actions ../actions && rm -rf ./Actions_${{ github.sha }}
# Check if build already run for this commit
- name: Build already completed?
id: check
continue-on-error: true
uses: ./../actions/check-sentry-action
with:
tag: "release_docker"
######################################################################################
# Linux: build and push multi-platform docker image for Linux
# Use docker images to create and push release assets to github
linux:
needs: [inputs, sentry]
if: |
needs.inputs.outputs.linux == 'true'
&& (
needs.sentry.outputs.release_not_built == 'true'
|| needs.inputs.outputs.force == 'true'
)
runs-on: ubuntu-22.04
steps:
# Checkout the actions for this repo owner
- name: Checkout Actions
uses: actions/checkout@v4
with:
repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }}
- run: mv ./Actions_${{ github.sha }}/actions ../actions && rm -rf ./Actions_${{ github.sha }}
# Checkout the branch
- name: Checkout
uses: actions/checkout@v4
# Setup release tag
- name: Setup Release Tag
id: tag
uses: ./../actions/release-tag-action
# Setup docker environment variables
- name: Setup Docker Environment Variables
id: docker_env
run: |
DOCKER_NAMESPACE=$(echo "${{ github.repository_owner }}" | tr '[:upper:]' '[:lower:]')
echo "DOCKER_NAMESPACE=${DOCKER_NAMESPACE}" >> ${GITHUB_ENV}
DOCKER_IMAGE=${DOCKER_NAMESPACE}/${{ steps.tag.outputs.repo_name }}
DOCKER_TAGS="${DOCKER_IMAGE}:latest,${DOCKER_IMAGE}:${RELEASE_TAG#*-}"
echo "build_time=$(date -u +'%Y-%m-%dT%H:%M:%SZ')" >> $GITHUB_OUTPUT
echo "docker_tags=${DOCKER_TAGS}" >> $GITHUB_OUTPUT
# Setup the Docker Machine Emulation environment.
- name: Set up QEMU
uses: docker/setup-qemu-action@v2
with:
platforms: linux/amd64,linux/arm64,linux/arm/v7
# Setup the Docker Buildx funtion
- name: Set up Docker Buildx
id: buildx
uses: docker/setup-buildx-action@v2
# Do the Docker Build using the Dockerfile in the repository we
# checked out. Save the results in a directory under /tmp to be used
# for creating release tars. Does not creatre a docker image and does not
# push anything to Docker Hub.
#
# NOTE: THE ACTUAL MAIKO BUILD (FOR LINUX) HAPPENS HERE - I.E., IN THE
# DOCKER BUILD CALL. BUILD COMMANDS ARE SPECIFIED IN THE
# Dockerfile, NOT HERE IN THE WORKFLOW.
#
- name: Build Docker Image and Save It Locally
uses: docker/build-push-action@v4
with:
builder: ${{ steps.buildx.outputs.name }}
build-args: |
BUILD_DATE=${{ steps.docker_env.outputs.build_time }}
RELEASE_TAG=${{ steps.tag.outputs.release_tag }}
context: .
file: ./.github/workflows/Dockerfile_maiko
platforms: linux/amd64,linux/arm64,linux/arm/v7
# Put the results out to the local file system
outputs: type=local,dest=/tmp/docker_images
tags: ${{ steps.docker_env.outputs.docker_tags }}
# Use docker results to create releases for github.
# Docker results are in /tmp/docker_images. One subdir for each platform.
- name: Make release tars for each platform
env:
RELEASE_TAG: ${{ steps.tag.outputs.release_tag }}
run: |
mkdir -p /tmp/release_tars
for OSARCH in \
"linux.x86_64:linux_amd64" \
"linux.aarch64:linux_arm64" \
"linux.armv7l:linux_arm_v7" \
"wsl1.x86_64:linux_amd64" \
"wsl1.aarch64:linux_arm64" \
; \
do \
pushd /tmp/docker_images/${OSARCH##*:}/usr/local/interlisp >/dev/null ; \
/usr/bin/tar -c -z \
-f /tmp/release_tars/${RELEASE_TAG}-${OSARCH%%:*}.tgz \
maiko/bin/osversion \
maiko/bin/machinetype \
maiko/bin/config.guess \
maiko/bin/config.sub \
maiko/${OSARCH%%:*}/lde* \
; \
popd >/dev/null ; \
done
# Push Release to github
- name: Push the release
uses: ncipollo/release-action@v1
with:
allowUpdates: true
artifacts:
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-linux.x86_64.tgz,
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-linux.aarch64.tgz,
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-wsl1.x86_64.tgz,
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-wsl1.aarch64.tgz,
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-linux.armv7l.tgz
tag: ${{ steps.tag.outputs.release_tag }}
draft: ${{ needs.inputs.outputs.draft }}
token: ${{ secrets.GITHUB_TOKEN }}
######################################################################################
# MacOS: build for MacOS (x86_64, aarch64, universal) and use results to
# create and push release assets to github
macos:
needs: [inputs, sentry]
if: |
needs.inputs.outputs.macos == 'true'
&& (
needs.sentry.outputs.release_not_built == 'true'
|| needs.inputs.outputs.force == 'true'
)
runs-on: macos-latest
steps:
# Checkout the branch
- name: Checkout
uses: actions/checkout@v4
# Checkout the actions for this repo owner
- name: Checkout Actions
uses: actions/checkout@v4
with:
repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }}
- run: mv ./Actions_${{ github.sha }}/actions ../actions && rm -rf ./Actions_${{ github.sha }}
# Setup release tag
- name: Setup Release Tag
id: tag
uses: ./../actions/release-tag-action
# Uninstall exisitng X11 stuff preconfigured on runner then install correct X11 dependencies
- name: Unistall X components already on the runner
run: |
brew uninstall --ignore-dependencies --force libxft
brew uninstall --ignore-dependencies --force libxrender
brew uninstall --ignore-dependencies --force libxext
brew uninstall --ignore-dependencies --force libx11
brew uninstall --ignore-dependencies --force xorgproto
brew uninstall --ignore-dependencies --force libxdmcp
brew uninstall --ignore-dependencies --force libxau
- name: Install X11 dependencies on MacOS
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release download XQuartz-2.8.5 --repo XQuartz/XQuartz --pattern XQuartz-2.8.5.pkg
sudo installer -pkg ./XQuartz-2.8.5.pkg -target /
# Install SDL dependencies
- name: Install SDL2 dependencies on MacOS
env:
GH_TOKEN: ${{ github.token }}
run: |
gh release download release-2.30.11 --repo libsdl-org/SDL --pattern SDL2-2.30.11.dmg
hdiutil attach SDL2-2.30.11.dmg
sudo ditto /Volumes/SDL2/SDL2.framework /Library/Frameworks/SDL2.framework
hdiutil detach /Volumes/SDL2/
# Build maiko
- name: Build ldeinit
working-directory: ./bin
run: |
export LDEARCH=x86_64-apple-darwin
./makeright init
export LDEARCH=aarch64-apple-darwin
./makeright init
mkdir -p ../darwin.universal
exe=ldeinit
lipo -create \
-arch arm64 ../darwin.aarch64/${exe} \
-arch x86_64 ../darwin.x86_64/${exe} \
-output ../darwin.universal/${exe}
- name: Build lde, ldex, & ldesdl
run: |
mkdir build
cd build
# -DCMAKE_OSX_DEPLOYMENT_TARGET=10.12
cmake .. \
-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" \
-DMAIKO_DISPLAY_SDL=2 \
-DMAIKO_DISPLAY_X11=ON \
-DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release
for exe in lde ldex ldesdl
do
lipo ${exe} -output ../darwin.x86_64/${exe} -extract x86_64
lipo ${exe} -output ../darwin.aarch64/${exe} -extract arm64
cp -p ${exe} ../darwin.universal/${exe}
done
# Create release tar for github.
- name: Make release tar(s)
env:
RELEASE_TAG: ${{ steps.tag.outputs.release_tag }}
run: |
mkdir -p /tmp/release_tars
cd ${GITHUB_WORKSPACE}/../
for arch in x86_64 aarch64 universal
do
tar -c -z \
-f /tmp/release_tars/${RELEASE_TAG}-darwin.${arch}.tgz \
maiko/bin/osversion \
maiko/bin/machinetype \
maiko/bin/config.guess \
maiko/bin/config.sub \
maiko/darwin.${arch}/lde*
done
# Push Release
- name: Push the release
uses: ncipollo/release-action@v1
with:
allowUpdates: true
artifacts:
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-darwin.x86_64.tgz,
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-darwin.aarch64.tgz,
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-darwin.universal.tgz
tag: ${{ steps.tag.outputs.release_tag }}
draft: ${{ needs.inputs.outputs.draft }}
token: ${{ secrets.GITHUB_TOKEN }}
######################################################################################
# Windows: build for Windows-Cygwin via Docker build and use results to
# create and push release assets to github
windows:
needs: [inputs, sentry]
if: |
needs.inputs.outputs.windows == 'true'
&& (
needs.sentry.outputs.release_not_built == 'true'
|| needs.inputs.outputs.force == 'true'
)
runs-on: windows-2022
defaults:
run:
shell: powershell
steps:
# setup git to not mess up line endings
- name: git config
run: git config --global core.autocrlf input
# Retrieve Cygwin setup and install cygwin
- name: Install cygwin
id: cygwin
run: |
wget https://cygwin.com/setup-x86_64.exe -OutFile setup-x86_64.exe
Unblock-File setup-x86_64.exe
Start-Process setup-x86_64.exe -Wait -ArgumentList @("--root", ".\cygwin", "--quiet-mode", "--no-admin", "--wait", "--no-shortcuts", "--no-write-registry", "--verbose", "--site", "https://mirrors.kernel.org/sourceware/cygwin/", "--packages", "nano,binutils,make,cmake,gcc,clang")
cygwin\bin\bash -login -c 'sed -i -e "s/^none/#none/" /etc/fstab; echo "none / cygdrive binary,posix=0,user 0 0" >>/etc/fstab'
# Retrieve SDL2 and install in cygwin
- name: Install SDL2
id: sdl2
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
gh release download 2.26.5 --repo interlisp/cygwin-sdl --pattern *.tgz --output .\cygwin\sdl2.tar.gz
cygwin\bin\bash -login -c 'cd /; tar xzf sdl2.tar.gz'
# Checkout the branch
- name: Checkout
uses: actions/checkout@v4
with:
path: cygwin\maiko
# Checkout the actions for this repo owner
- name: Checkout Actions
uses: actions/checkout@v4
with:
repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }}
- run: |
mv ./Actions_${{ github.sha }}/actions ../actions
rm -recurse -force ./Actions_${{ github.sha }}
# Setup release tag
- name: Setup Release Tag
id: tag
uses: ./../actions/release-tag-action
with:
path: cygwin/maiko
# Build maiko TODO-cleanup
- name: Build Cygwin-SDL Maiko
run: |
cygwin\bin\bash -login -c 'cd /maiko/bin && ./makeright sdl cleanup && ./makeright sdl'
cygwin\bin\bash -login -c 'mkdir /tmp/maiko; mkdir /tmp/maiko/bin; mkdir /tmp/maiko/cygwin.x86_64'
cygwin\bin\bash -login -c 'cp /maiko/bin/osversion /tmp/maiko/bin; cp /maiko/bin/machinetype /tmp/maiko/bin'
cygwin\bin\bash -login -c 'cp /maiko/bin/config.guess /tmp/maiko/bin; cp /maiko/bin/config.sub /tmp/maiko/bin'
cygwin\bin\bash -login -c 'cp /maiko/cygwin.x86_64/* /tmp/maiko/cygwin.x86_64; cp /usr/local/bin/SDL2.DLL /tmp/maiko/cygwin.x86_64'
cygwin\bin\bash -login -c 'chmod +x /tmp/maiko/bin/*; chmod +x /tmp/maiko/cygwin.x86_64/*'
cygwin\bin\bash -login -c 'echo lde > /tmp/maiko/cygwin.x86_64/lde.exe.local; echo ldesdl > /tmp/maiko/cygwin.x86_64/ldesdl.exe.local'
cygwin\bin\bash -login -c 'mkdir -p /tmp/release_tars'
cygwin\bin\bash -login -c 'tar -c -z -C /tmp -f /tmp/release_tars/${{ steps.tag.outputs.release_tag }}-cygwin.x86_64.tgz maiko'
# Push Release to github
- name: Push the release
uses: ncipollo/release-action@v1
with:
allowUpdates: true
artifacts:
cygwin/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-cygwin.x86_64.tgz
tag: ${{ steps.tag.outputs.release_tag }}
draft: ${{ needs.inputs.outputs.draft }}
token: ${{ secrets.GITHUB_TOKEN }}
######################################################################################
# Emscripten: build and push Maiko compiled for Emscripten (to run Maiko in browser)
emscripten:
needs: [inputs, sentry]
if: |
needs.inputs.outputs.linux == 'true'
&& (
needs.sentry.outputs.release_not_built == 'true'
|| needs.inputs.outputs.force == 'true'
)
runs-on: ubuntu-latest
steps:
# Checkout the actions for this repo owner
- name: Checkout Actions
uses: actions/checkout@v4
with:
repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }}
- run: mv ./Actions_${{ github.sha }}/actions ../actions && rm -rf ./Actions_${{ github.sha }}
# Install SDL2
- name: Install SDL2
run: |
export DEBIAN_FRONTEND=noninteractive
sudo -E apt-get update
sudo -E apt-get install -y libsdl2-dev libsdl2-2.0-0
# Install Emscripten SDK
- name: Install Empscripten
working-directory: ../
run: |
git clone https://github.com/emscripten-core/emsdk.git
cd emsdk
./emsdk install latest
./emsdk activate latest
CWD="$(pwd)"
echo "${CWD}" >> ${GITHUB_PATH}
echo "${CWD}/upstream/emscripten" >> ${GITHUB_PATH}
echo "${CWD}/upstream/emscripten/tools" >> ${GITHUB_PATH}
echo "${CWD}/node/$(ls -d node/*64bit | tail -1)/bin" >> ${GITHUB_PATH}
# Checkout the maiko branch
- name: Checkout
uses: actions/checkout@v4
# Setup release tag
- name: Setup Release Tag
id: tag
uses: ./../actions/release-tag-action
# Compile maiko using Emscripten (no load build)
- name: Compile Maiko using Emscripten
working-directory: ./bin
run: |
./makeright wasm_nl
cd ../emscripten.wasm_nl
tar -c -z -f ../${{ steps.tag.outputs.release_tag }}-emscripten.tgz *
# Push Release to github
- name: Push the release
uses: ncipollo/release-action@v1
with:
allowUpdates: true
artifacts: ${{ steps.tag.outputs.release_tag }}-emscripten.tgz
tag: ${{ steps.tag.outputs.release_tag }}
draft: ${{ needs.inputs.outputs.draft }}
token: ${{ secrets.GITHUB_TOKEN }}
######################################################################################
# Use set-sentry-action to determine set the sentry that says this release has
# been successfully built
complete:
runs-on: ubuntu-latest
outputs:
build_successful: ${{ steps.output.outputs.build_successful }}
needs: [inputs, sentry, linux, macos, windows, emscripten]
steps:
# Checkout the actions for this repo owner
- name: Checkout Actions
uses: actions/checkout@v4
with:
repository: ${{ github.repository_owner }}/.github
path: ./Actions_${{ github.sha }}
- run: mv ./Actions_${{ github.sha }}/actions ../actions && rm -rf ./Actions_${{ github.sha }}
# Set sentry
- name: Is build for this commit already completed?
id: set
uses: ./../actions/set-sentry-action
with:
tag: "release_docker"
- name: Output
id: output
run: |
echo "build_successful=true" >> $GITHUB_OUTPUT
######################################################################################

15
.gitignore vendored
View File

@@ -5,12 +5,6 @@
\#*#
.DS_Store
# build directories
build/**
cmake-build-*/**
.idea/
*.m68k-x/**
*.m68k/**
*.386-sdl/**
*.386-x/**
*.386/**
*.ppc-x/**
@@ -18,21 +12,12 @@ cmake-build-*/**
*.sparc-x/**
*.sparc/**
*.x86_64-x/**
*.x86_64-sdl/**
*.x86_64/**
*.wasm/**
*.wasm-wasm/**
*.wasm_nl/**
*.wasm_nl-wasm_nl/**
*.armv7l-x/**
*.armv7l/**
*.aarch64-x/**
*.aarch64-sdl/**
*.aarch64/**
init.386/**
*.universal/**
# core files
core
*.core
*.swp

View File

@@ -1,5 +1,5 @@
CMAKE_MINIMUM_REQUIRED(VERSION 3.15)
PROJECT(maiko C)
CMAKE_MINIMUM_REQUIRED(VERSION 3.15)
SET(CMAKE_EXPORT_COMPILE_COMMANDS ON)
@@ -16,43 +16,17 @@ IF(CMAKE_C_COMPILER_ID MATCHES "SunPro")
SET(CMAKE_C_FLAGS "-fno-strict-aliasing ${CMAKE_C_FLAGS}")
ENDIF()
find_program(
CLANG_TIDY_EXE
NAMES "clang-tidy" "clang-tidy16" "clang-tidy15" "clang-tidy14" "clang-tidy13" "clang-tidy12" "clang-tidy11" "clang-tidy10"
DOC "Path to clang-tidy executable"
)
IF (CLANG_TIDY_EXE)
IF (NOT CMAKE_CROSSCOMPILING)
# There are many many warnings for strcpy instances to deal with,
# but suppress it for now so that other issues are more obvious
#
SET(CMAKE_C_CLANG_TIDY ${CLANG_TIDY_EXE} -checks=-*,cert-*,clang-analyzer-security.*,-clang-analyzer-security.insecureAPI.strcpy,-clang-analyzer-security.insecureAPI.bzero -header-filter=.*)
ENDIF()
ENDIF()
INCLUDE(CheckLibraryExists)
CHECK_LIBRARY_EXISTS(m fmod "" NEED_LIB_M)
IF(NEED_LIB_M)
SET(MAIKO_LIBRARIES m)
ENDIF()
SET (MAIKO_RELEASE 351 CACHE STRING "Release version to build. Release: 115, 200, 201, 210, 300, 350, 351")
SET_PROPERTY(CACHE MAIKO_RELEASE PROPERTY STRINGS 115 200 201 210 300 350 351)
MESSAGE("-- Configured for release ${MAIKO_RELEASE}")
SET(MAIKO_DEFINITIONS
"-DRELEASE=${MAIKO_RELEASE}"
)
SET(MAIKO_INIT_DEFINITIONS
"-DRELEASE=${MAIKO_RELEASE}" "-DINIT" "-DNOVERSION"
"-DRELEASE=351"
)
OPTION(MAIKO_DISPLAY_X11 "Use X11 for display." ON)
SET(MAIKO_DISPLAY_SDL OFF CACHE STRING "Use SDL for display. Version: OFF, 2, 3")
SET_PROPERTY(CACHE MAIKO_DISPLAY_SDL PROPERTY STRINGS OFF 2 3)
IF(MAIKO_DISPLAY_X11)
FIND_PACKAGE(X11 REQUIRED)
SET(MAIKO_DISPLAY_X11_DEFINITIONS
@@ -80,69 +54,15 @@ IF(MAIKO_DISPLAY_X11)
inc/xmkicondefs.h
inc/xrdoptdefs.h
inc/xscrolldefs.h
inc/xscroll.h
inc/xwinmandefs.h
)
MESSAGE("-- Configured for X11 display")
ENDIF()
IF(MAIKO_DISPLAY_SDL STREQUAL "2")
FIND_PACKAGE(SDL2 REQUIRED CONFIG REQUIRED COMPONENTS SDL2)
SET(MAIKO_DISPLAY_SDL_DEFINITIONS
"-DSDL=2"
)
SET(MAIKO_DISPLAY_SDL_INCLUDE_DIRS SDL2::Headers)
SET(MAIKO_DISPLAY_SDL_LIBRARIES SDL2::SDL2)
SET(MAIKO_DISPLAY_SDL_SRCS
src/sdl.c
)
SET(MAIKO_DISPLAY_SDL_HDRS
inc/sdldefs.h
)
MESSAGE("-- Configured for SDL2 display")
ELSEIF(MAIKO_DISPLAY_SDL STREQUAL "3")
FIND_PACKAGE(SDL3 REQUIRED CONFIG REQUIRED COMPONENTS SDL3)
SET(MAIKO_DISPLAY_SDL_DEFINITIONS
"-DSDL=3"
)
SET(MAIKO_DISPLAY_SDL_INCLUDE_DIRS SDL3::Headers)
SET(MAIKO_DISPLAY_SDL_LIBRARIES SDL3::SDL3)
SET(MAIKO_DISPLAY_SDL_SRCS
src/sdl.c
)
SET(MAIKO_DISPLAY_SDL_HDRS
inc/sdldefs.h
)
MESSAGE("-- Configured for SDL3 display")
ENDIF()
# according to: https://cmake.org/pipermail/cmake/2016-October/064342.html
# the following 2 lines should produce a dropdown-box in the cmake-gui
# but this will happen only after running the command line version of cmake,
# possibly after "clearing the cache" (i.e. starting with a fresh build directory)
SET(MAIKO_NETWORK_TYPE NONE CACHE STRING "Type of networking to use: one of: NONE, SUN_DLPI, SUN_NIT, NETHUB")
SET_PROPERTY(CACHE MAIKO_NETWORK_TYPE PROPERTY STRINGS NONE SUN_DLPI SUN_NIT NETHUB)
# configure networking implementation to use
IF(MAIKO_NETWORK_TYPE STREQUAL "NETHUB")
LIST(APPEND MAIKO_DEFINITIONS "-DMAIKO_ENABLE_NETHUB")
MESSAGE("-- Configured for NETHUB network support")
ELSEIF(MAIKO_NETWORK_TYPE STREQUAL "SUN_DLPI")
LIST(APPEND MAIKO_DEFINITIONS "-DMAIKO_ENABLE_ETHERNET -DUSE_DLPI")
MESSAGE("-- Configured for (SunOS) DLPI networking")
ELSEIF(MAIKO_NETWORK_TYPE STREQUAL "SUN_NIT")
LIST(APPEND MAIKO_DEFINITIONS "-DMAIKO_ENABLE_ETHERNET -DUSE_NIT")
MESSAGE("-- Configured for (SunOS) NIT networking")
ELSEIF(NOT MAIKO_NETWORK_TYPE STREQUAL "NONE")
MESSAGE(WARNING "Invalid option given for MAIKO_NETWORK_TYPE, must be one of:\nNONE, SUN_DLPI, SUN_NIT, NETHUB")
ENDIF()
IF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
LIST(APPEND MAIKO_DEFINITIONS
"-DOS5"
)
LIST(APPEND MAIKO_INIT_DEFINITIONS
"-DOS5"
"-DUSE_DLPI"
)
ENDIF()
@@ -188,8 +108,15 @@ SET(BAD_SRCS
SET(MAIKO_SRCS
src/allocmds.c
src/arithops.c
src/arrayops.c
src/arith2.c
src/arith3.c
src/arith4.c
src/array2.c
src/array3.c
src/array4.c
src/array5.c
src/array6.c
src/array.c
src/asmbbt.c
src/bbtsub.c
src/bin.c
@@ -209,9 +136,7 @@ SET(MAIKO_SRCS
src/dspif.c
src/dspsubrs.c
src/eqf.c
src/ether_common.c
src/ether_sunos.c
src/ether_nethub.c
src/ether.c
src/findkey.c
src/foreign.c
src/fp.c
@@ -285,16 +210,23 @@ SET(MAIKO_HDRS
inc/address.h
inc/adr68k.h
inc/allocmdsdefs.h
inc/arithopsdefs.h
inc/arith2defs.h
inc/arith3defs.h
inc/arith4defs.h
inc/arith.h
inc/arrayopsdefs.h
inc/array2defs.h
inc/array3defs.h
inc/array4defs.h
inc/array5defs.h
inc/array6defs.h
inc/arraydefs.h
inc/array.h
inc/bb.h
inc/bbtsubdefs.h
inc/bindefs.h
inc/bindsdefs.h
inc/bitbltdefs.h
inc/bbtmacro.h
inc/bitblt.h
inc/bltdefs.h
inc/byteswapdefs.h
inc/car-cdrdefs.h
@@ -319,6 +251,7 @@ SET(MAIKO_HDRS
inc/emlglob.h
inc/eqfdefs.h
inc/etherdefs.h
inc/ether.h
inc/fast_dsp.h
inc/findkeydefs.h
inc/foreigndefs.h
@@ -338,6 +271,7 @@ SET(MAIKO_HDRS
inc/gcscandefs.h
inc/gvar2defs.h
inc/hardrtndefs.h
inc/hdw_conf.h
inc/ifpage.h
inc/inetdefs.h
inc/initatms.h
@@ -397,14 +331,14 @@ SET(MAIKO_HDRS
inc/opcodes.h
inc/os.h
inc/osmsgdefs.h
inc/osmsgprint.h
inc/osmsg.h
inc/perrnodefs.h
inc/picture.h
inc/pilotbbt.h
inc/print.h
inc/rawrs232c.h
inc/retmacro.h
inc/returndefs.h
inc/return.h
inc/rpcdefs.h
inc/rplconsdefs.h
inc/rs232c.h
@@ -422,6 +356,7 @@ SET(MAIKO_HDRS
inc/tos1defs.h
inc/tosfns.h
inc/tosret.h
inc/tty.h
inc/typeofdefs.h
inc/ubf1defs.h
inc/ubf2defs.h
@@ -431,39 +366,34 @@ SET(MAIKO_HDRS
inc/unixfork.h
inc/unwinddefs.h
inc/uraiddefs.h
inc/uraidextdefs.h
inc/usrsubrdefs.h
inc/uutilsdefs.h
inc/vars3defs.h
inc/version.h
inc/vmemsavedefs.h
inc/vmemsave.h
inc/xcdefs.h
inc/z2defs.h
)
ADD_CUSTOM_COMMAND(OUTPUT vdate.c
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/bin/mkvdate > vdate.c
DEPENDS ${MAIKO_SRCS} ${MAIKO_HDRS} ${MAIKO_DISPLAY_X11_SRCS} ${MAIKO_DISPLAY_X11_HDRS} ${MAIKO_DISPLAY_SDL_SRCS} ${MAIKO_DISPLAY_SDL_HDRS}
ADD_CUSTOM_TARGET(gen-vdate
COMMAND mkvdate > vdate.c
BYPRODUCTS vdate.c
)
ADD_EXECUTABLE(lde src/ldeboot.c src/unixfork.c)
TARGET_COMPILE_DEFINITIONS(lde PRIVATE ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(lde PRIVATE inc)
TARGET_COMPILE_DEFINITIONS(lde PUBLIC ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(lde PUBLIC inc)
IF(MAIKO_DISPLAY_X11)
# Tell it that the X11 launcher is available.
TARGET_COMPILE_DEFINITIONS(lde PRIVATE ${MAIKO_DISPLAY_X11_DEFINITIONS})
TARGET_COMPILE_DEFINITIONS(lde PUBLIC ${MAIKO_DISPLAY_X11_DEFINITIONS})
# This is needed so that it can call XOpenDisplay.
TARGET_LINK_LIBRARIES(lde X11::X11)
ENDIF()
IF(MAIKO_DISPLAY_SDL)
# Tell it that the SDL launcher is available.
TARGET_COMPILE_DEFINITIONS(lde PRIVATE ${MAIKO_DISPLAY_SDL_DEFINITIONS})
ENDIF()
ADD_EXECUTABLE(ldeether src/ldeether.c src/dlpi.c)
TARGET_COMPILE_DEFINITIONS(ldeether PRIVATE ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(ldeether PRIVATE inc)
TARGET_COMPILE_DEFINITIONS(ldeether PUBLIC ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(ldeether PUBLIC inc)
IF(MAIKO_DISPLAY_X11)
ADD_EXECUTABLE(ldex
@@ -474,58 +404,19 @@ IF(MAIKO_DISPLAY_X11)
${MAIKO_DISPLAY_X11_SRCS}
${MAIKO_DISPLAY_X11_HDRS}
)
TARGET_COMPILE_DEFINITIONS(ldex PRIVATE ${MAIKO_DEFINITIONS} ${MAIKO_DISPLAY_X11_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(ldex PRIVATE inc)
TARGET_COMPILE_DEFINITIONS(ldex PUBLIC ${MAIKO_DEFINITIONS} ${MAIKO_DISPLAY_X11_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(ldex PUBLIC inc)
TARGET_LINK_LIBRARIES(ldex ${MAIKO_LIBRARIES} ${MAIKO_DISPLAY_X11_LIBRARIES})
ADD_EXECUTABLE(ldeinit
src/main.c
vdate.c
${MAIKO_SRCS}
${MAIKO_HDRS}
${MAIKO_DISPLAY_X11_SRCS}
${MAIKO_DISPLAY_X11_HDRS}
)
TARGET_COMPILE_DEFINITIONS(ldeinit PRIVATE ${MAIKO_INIT_DEFINITIONS} ${MAIKO_DISPLAY_X11_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(ldeinit PRIVATE inc)
TARGET_LINK_LIBRARIES(ldeinit ${MAIKO_LIBRARIES} ${MAIKO_DISPLAY_X11_LIBRARIES})
ENDIF()
IF(MAIKO_DISPLAY_SDL)
ADD_EXECUTABLE(ldesdl
src/main.c
vdate.c
${MAIKO_SRCS}
${MAIKO_HDRS}
${MAIKO_DISPLAY_SDL_SRCS}
${MAIKO_DISPLAY_SDL_HDRS}
)
TARGET_COMPILE_DEFINITIONS(ldesdl PRIVATE ${MAIKO_DEFINITIONS} ${MAIKO_DISPLAY_SDL_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(ldesdl PRIVATE inc)
TARGET_INCLUDE_DIRECTORIES(ldesdl PRIVATE ${MAIKO_DISPLAY_SDL_INCLUDE_DIRS})
IF(APPLE)
IF(MAIKO_DISPLAY_SDL STREQUAL "3")
#
# Until CMake properly supports .xcframeworks, https://gitlab.kitware.com/cmake/cmake/-/issues/25998
# we need to manually set the RPATH to produce a working executable
#
MESSAGE("-- Applying fixup for macOS RPATH for SDL3.xcframework")
SET_PROPERTY(TARGET ldesdl APPEND PROPERTY BUILD_RPATH "/Library/Frameworks/SDL3.xcframework/macos-arm64_x86_64")
#
ENDIF()
ENDIF()
TARGET_LINK_LIBRARIES(ldesdl ${MAIKO_LIBRARIES} ${MAIKO_DISPLAY_SDL_LIBRARIES})
ENDIF()
ADD_EXECUTABLE(mkvdate src/mkvdate.c)
TARGET_COMPILE_DEFINITIONS(mkvdate PRIVATE ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(mkvdate PRIVATE inc)
TARGET_COMPILE_DEFINITIONS(mkvdate PUBLIC ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(mkvdate PUBLIC inc)
ADD_EXECUTABLE(setsout src/setsout.c src/byteswap.c)
TARGET_COMPILE_DEFINITIONS(setsout PRIVATE ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(setsout PRIVATE inc)
TARGET_COMPILE_DEFINITIONS(setsout PUBLIC ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(setsout PUBLIC inc)
ADD_EXECUTABLE(tstsout src/tstsout.c src/byteswap.c)
TARGET_COMPILE_DEFINITIONS(tstsout PRIVATE ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(tstsout PRIVATE inc)
TARGET_COMPILE_DEFINITIONS(tstsout PUBLIC ${MAIKO_DEFINITIONS})
TARGET_INCLUDE_DIRECTORIES(tstsout PUBLIC inc)

14
NEWCDRCODING.md Normal file
View File

@@ -0,0 +1,14 @@
# CDR CODING in cons cells
The cdr-code is a 4-bit field of a 32-bit cons cell.
It is treated as an on-page indicator bit and a 3-bit scaled offset.
Certain combinations are treated specially.
on-page| offset | interpretation
-------|--------|----------------------------------------------------------------------------
1 | 0 | CDR is NIL
1 | 1 - 7 | CDR is at 2*offset (counted in 32-bit cells) on same page
0 | 0 | CDR is indirect, CDR(car)
0 | 1 - 7 | CDR is not a cons cell but is in the car of cell at 2*offset on same page

View File

@@ -1,13 +1,12 @@
# Maiko
Maiko is the implementation of the Medley Interlisp virtual machine for a
byte-coded Lisp instruction set, and some low-level functions for
connecting Lisp to a display (via X11 or SDL), the local filesystem,
and a network subsystem.
Maiko is the implementation of the Medley Interlisp virtual machine, for a
byte-coded Lisp instruction set and some low-level functions for
connecting with Lisp for access to display (via X11) and disk etc.
For an overview, see [Medley Interlisp Introduction](https://interlisp.org/medley/using/docs/medley/).
Newcomers should check out the [Medley Interlisp Introduction](https://github.com/Interlisp/medley/wiki/Medley-Interlisp-Introduction).
See [the Medley repository](https://github.com/Interlisp/medley) for
See [the Medley repository](https://github.org/Interlisp/medley) for
* [Issues](https://github.com/Interlisp/medley/issues) (note that maiko issues are there too)
* [Discussions](https://github.com/Interlisp/medley/discussions) (Q&A, announcements, etc)
* [Medley's README](https://github.com/Interlisp/medley/blob/master/README.md)
@@ -16,18 +15,17 @@ Bug reports, feature requests, fixes and improvements, support for additional pl
## Development Platforms
Development has been primarily on macOS, FreeBSD, and Linux, with testing on Solaris and Windows.
Processor architectures i386, x86\_64, arm64, arm7l, and SPARC.
We are developing on FreeBSD, Linux, MacOS, and Solaris currently
on arm7l, arm64, PowerPC, SPARC, i386, and x86_64 hardware.
## Building Maiko
### Building with make
Building requires a C compiler (`clang` preferred), either `make` or `CMake`, and X11 client libraries (`libx11-dev`), or SDL2. For example, using `make` and X11:
Building requires `clang`, `make`, X11 client libraries (`libx11-dev`). For example,
``` sh
$ sudo apt update
$ sudo apt install clang make libx11-dev
$ sudo apt install clang make x11dev
```
```
@@ -35,21 +33,18 @@ $ cd maiko/bin
$ ./makeright x
```
* The build will (attempt to) detect the OS-type and cpu-type. It will build binaries `lde` and `ldex` in `../`_`ostype.cputype`_ (with .o files in `../`_`ostype.cputype-x`_. For example, Linux on a 64-bit x86 will use `linux.x86_64`, while macOS 11 on a (new M1) Mac will use `darwin.aarch64`.
* If you prefer `gcc` over `clang`, you will need to edit the makefile fragment for your configuration (`makefile-ostype.cputype-x`) and comment out the line (with a #) that defines `CC` as `clang` and uncomment the line (delete the #) for the line that defines `CC` as `gcc`.
* The build will (attempt to) detect the OS-type and cpu-type. It will build binaries `lde` and `ldex` in `../ostype.cputype` (with .o files in `..ostype.cputype-x`. For example, Linux on a 64-bit x86 will use `linux.x86_64`, while MacOS 11 on (new) Mac will use `darwin.arm64`.
* If you prefer using `gcc` over `clang`, you will need to edit the makefile fragment for your configuration (`makefile-ostype.cputype-x1) and comment out the line (with a #) that defines `CC` for `clang` and uncomment the line (delete the #) for the line that defines `CC` for `gcc`.
* There is a cmake configuration (TBD)
### Building with CMake
We provide a `CMakeLists.txt` which provides mostly matching build capabilities to the `make` setup.
CMake options are provided to control the configuration of the Maiko executables:
* MAIKO\_DISPLAY\_SDL: [OFF], 2, 3 - selects display subsystem SDL of version specified
* MAIKO\_DISPLAY\_X11: [ON], OFF - selects X11 display subsystem
* MAIKO\_NETWORK\_TYPE: [NONE], SUN\_DLPI, SUN\_NIT, NETHUB - network subsystem access
* MAIKO_RELEASE: [351], various - see `maiko/inc/version.h`
### Building For MacOS
While SDL3 is selectable, the Maiko code has not yet been updated to work with the SDL3 API.
* Running on MacOS requires an X server, and building on a Mac requires X client libraries.
An X-server for x86 MacOS (and X11 client libraries) can be freely obtained at https://www.xquartz.org/
For the new arm64 MacOS 11, you'll need https://x.org which you can get via MacPorts or Brew.
### Building For macOS
### Building for Windows 10
Windows 10 currently requires "Docker for Desktop" or WSL2 -- basically a Linux virtual machine -- and a (Windows X-server).
See [Medley's README](https://github.com/Interlisp/medley/blob/master/README.md) for more.
* Building/running on macOS requires either an X server and X client libraries or the SDL2 library.
An X-server for macOS (and X11 client libraries) can be freely obtained at https://www.xquartz.org/releases
The SDL library is freely available from https://libsdl.org

View File

@@ -124,37 +124,9 @@ BIGATOMS True if this emulator will support 3-byte symbols, instead of
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
bitbltsub.c:#ifndef prropstyle
lispmap.h:#ifdef MEDLEY

1239
bin/config.guess vendored

File diff suppressed because it is too large Load Diff

310
bin/config.sub vendored
View File

@@ -1,14 +1,12 @@
#! /bin/sh
# Configuration validation subroutine script.
# Copyright 1992-2024 Free Software Foundation, Inc.
# Copyright 1992-2020 Free Software Foundation, Inc.
# shellcheck disable=SC2006,SC2268 # see below for rationale
timestamp='2024-01-01'
timestamp='2020-08-17'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
@@ -35,7 +33,7 @@ timestamp='2024-01-01'
# Otherwise, we print the canonical config type on stdout and succeed.
# You can get the latest version of this script from:
# https://git.savannah.gnu.org/cgit/config.git/plain/config.sub
# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub
# This file is supposed to be the same for all GNU packages
# and recognize all the CPU types, system types and aliases
@@ -52,13 +50,6 @@ timestamp='2024-01-01'
# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
# It is wrong to echo any other type of specification.
# The "shellcheck disable" line above the timestamp inhibits complaints
# about features and limitations of the classic Bourne shell that were
# superseded or lifted in POSIX. However, this script identifies a wide
# variety of pre-POSIX systems that do not have POSIX shells at all, and
# even some reasonably current systems (Solaris 10 as case-in-point) still
# have a pre-POSIX /bin/sh.
me=`echo "$0" | sed -e 's,.*/,,'`
usage="\
@@ -76,13 +67,13 @@ Report bugs and patches to <config-patches@gnu.org>."
version="\
GNU config.sub ($timestamp)
Copyright 1992-2024 Free Software Foundation, Inc.
Copyright 1992-2020 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
help="
Try '$me --help' for more information."
Try \`$me --help' for more information."
# Parse command line
while test $# -gt 0 ; do
@@ -121,16 +112,14 @@ esac
# Split fields of configuration type
# shellcheck disable=SC2162
saved_IFS=$IFS
IFS="-" read field1 field2 field3 field4 <<EOF
$1
EOF
IFS=$saved_IFS
# Separate into logical components for further validation
case $1 in
*-*-*-*-*)
echo "Invalid configuration '$1': more than four components" >&2
echo Invalid configuration \`"$1"\': more than four components >&2
exit 1
;;
*-*-*-*)
@@ -145,8 +134,7 @@ case $1 in
nto-qnx* | linux-* | uclinux-uclibc* \
| uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* \
| netbsd*-eabi* | kopensolaris*-gnu* | cloudabi*-eabi* \
| storm-chaos* | os2-emx* | rtmk-nova* | managarm-* \
| windows-* )
| storm-chaos* | os2-emx* | rtmk-nova*)
basic_machine=$field1
basic_os=$maybe_os
;;
@@ -175,10 +163,6 @@ case $1 in
basic_machine=$field1
basic_os=$field2
;;
zephyr*)
basic_machine=$field1-unknown
basic_os=$field2
;;
# Manufacturers
dec* | mips* | sequent* | encore* | pc533* | sgi* | sony* \
| att* | 7300* | 3300* | delta* | motorola* | sun[234]* \
@@ -938,13 +922,11 @@ case $basic_machine in
*-*)
# shellcheck disable=SC2162
saved_IFS=$IFS
IFS="-" read cpu vendor <<EOF
$basic_machine
EOF
IFS=$saved_IFS
;;
# We use 'pc' rather than 'unknown'
# We use `pc' rather than `unknown'
# because (1) that's what they normally are, and
# (2) the word "unknown" tends to confuse beginning users.
i*86 | x86_64)
@@ -1021,11 +1003,6 @@ case $cpu-$vendor in
;;
# Here we normalize CPU types with a missing or matching vendor
armh-unknown | armh-alt)
cpu=armv7l
vendor=alt
basic_os=${basic_os:-linux-gnueabihf}
;;
dpx20-unknown | dpx20-bull)
cpu=rs6000
vendor=bull
@@ -1076,7 +1053,7 @@ case $cpu-$vendor in
pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
cpu=i586
;;
pentiumpro-* | p6-* | 6x86-* | athlon-* | athlon_*-*)
pentiumpro-* | p6-* | 6x86-* | athlon-* | athalon_*-*)
cpu=i686
;;
pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
@@ -1127,7 +1104,7 @@ case $cpu-$vendor in
xscale-* | xscalee[bl]-*)
cpu=`echo "$cpu" | sed 's/^xscale/arm/'`
;;
arm64-* | aarch64le-*)
arm64-*)
cpu=aarch64
;;
@@ -1181,14 +1158,14 @@ case $cpu-$vendor in
case $cpu in
1750a | 580 \
| a29k \
| aarch64 | aarch64_be | aarch64c | arm64ec \
| aarch64 | aarch64_be \
| abacus \
| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] \
| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] \
| alphapca5[67] | alpha64pca5[67] \
| am33_2.0 \
| amdgcn \
| arc | arceb | arc32 | arc64 \
| arc | arceb \
| arm | arm[lb]e | arme[lb] | armv* \
| avr | avr32 \
| asmjs \
@@ -1200,29 +1177,45 @@ case $cpu-$vendor in
| d10v | d30v | dlx | dsp16xx \
| e2k | elxsi | epiphany \
| f30[01] | f700 | fido | fr30 | frv | ft32 | fx80 \
| javascript \
| h8300 | h8500 \
| hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
| hexagon \
| i370 | i*86 | i860 | i960 | ia16 | ia64 \
| ip2k | iq2000 \
| k1om \
| kvx \
| le32 | le64 \
| lm32 \
| loongarch32 | loongarch64 \
| m32c | m32r | m32rle \
| m5200 | m68000 | m680[012346]0 | m68360 | m683?2 | m68k \
| m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x \
| m88110 | m88k | maxq | mb | mcore | mep | metag \
| microblaze | microblazeel \
| mips* \
| mips | mipsbe | mipseb | mipsel | mipsle \
| mips16 \
| mips64 | mips64eb | mips64el \
| mips64octeon | mips64octeonel \
| mips64orion | mips64orionel \
| mips64r5900 | mips64r5900el \
| mips64vr | mips64vrel \
| mips64vr4100 | mips64vr4100el \
| mips64vr4300 | mips64vr4300el \
| mips64vr5000 | mips64vr5000el \
| mips64vr5900 | mips64vr5900el \
| mipsisa32 | mipsisa32el \
| mipsisa32r2 | mipsisa32r2el \
| mipsisa32r6 | mipsisa32r6el \
| mipsisa64 | mipsisa64el \
| mipsisa64r2 | mipsisa64r2el \
| mipsisa64r6 | mipsisa64r6el \
| mipsisa64sb1 | mipsisa64sb1el \
| mipsisa64sr71k | mipsisa64sr71kel \
| mipsr5900 | mipsr5900el \
| mipstx39 | mipstx39el \
| mmix \
| mn10200 | mn10300 \
| moxie \
| mt \
| msp430 \
| nanomips* \
| nds32 | nds32le | nds32be \
| nfp \
| nios | nios2 | nios2eb | nios2el \
@@ -1236,7 +1229,7 @@ case $cpu-$vendor in
| powerpc | powerpc64 | powerpc64le | powerpcle | powerpcspe \
| pru \
| pyramid \
| riscv | riscv32 | riscv32be | riscv64 | riscv64be \
| riscv | riscv32 | riscv64 \
| rl78 | romp | rs6000 | rx \
| s390 | s390x \
| score \
@@ -1248,13 +1241,11 @@ case $cpu-$vendor in
| sparcv8 | sparcv9 | sparcv9b | sparcv9v | sv1 | sx* \
| spu \
| tahoe \
| thumbv7* \
| tic30 | tic4x | tic54x | tic55x | tic6x | tic80 \
| tron \
| ubicom32 \
| v70 | v850 | v850e | v850e1 | v850es | v850e2 | v850e2v3 \
| vax \
| vc4 \
| visium \
| w65 \
| wasm32 | wasm64 \
@@ -1266,7 +1257,7 @@ case $cpu-$vendor in
;;
*)
echo "Invalid configuration '$1': machine '$cpu-$vendor' not recognized" 1>&2
echo Invalid configuration \`"$1"\': machine \`"$cpu-$vendor"\' not recognized 1>&2
exit 1
;;
esac
@@ -1287,45 +1278,34 @@ esac
# Decode manufacturer-specific aliases for certain operating systems.
if test x"$basic_os" != x
if test x$basic_os != x
then
# First recognize some ad-hoc cases, or perhaps split kernel-os, or else just
# First recognize some ad-hoc caes, or perhaps split kernel-os, or else just
# set os.
obj=
case $basic_os in
gnu/linux*)
kernel=linux
os=`echo "$basic_os" | sed -e 's|gnu/linux|gnu|'`
;;
os2-emx)
kernel=os2
os=`echo "$basic_os" | sed -e 's|os2-emx|emx|'`
os=`echo $basic_os | sed -e 's|gnu/linux|gnu|'`
;;
nto-qnx*)
kernel=nto
os=`echo "$basic_os" | sed -e 's|nto-qnx|qnx|'`
os=`echo $basic_os | sed -e 's|nto-qnx|qnx|'`
;;
*-*)
# shellcheck disable=SC2162
saved_IFS=$IFS
IFS="-" read kernel os <<EOF
$basic_os
EOF
IFS=$saved_IFS
;;
# Default OS when just kernel was specified
nto*)
kernel=nto
os=`echo "$basic_os" | sed -e 's|nto|qnx|'`
os=`echo $basic_os | sed -e 's|nto|qnx|'`
;;
linux*)
kernel=linux
os=`echo "$basic_os" | sed -e 's|linux|gnu|'`
;;
managarm*)
kernel=managarm
os=`echo "$basic_os" | sed -e 's|managarm|mlibc|'`
os=`echo $basic_os | sed -e 's|linux|gnu|'`
;;
*)
kernel=
@@ -1346,7 +1326,7 @@ case $os in
os=cnk
;;
solaris1 | solaris1.*)
os=`echo "$os" | sed -e 's|solaris1|sunos4|'`
os=`echo $os | sed -e 's|solaris1|sunos4|'`
;;
solaris)
os=solaris2
@@ -1375,7 +1355,7 @@ case $os in
os=sco3.2v4
;;
sco3.2.[4-9]*)
os=`echo "$os" | sed -e 's/sco3.2./sco3.2v/'`
os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
;;
sco*v* | scout)
# Don't match below
@@ -1387,7 +1367,13 @@ case $os in
os=psos
;;
qnx*)
os=qnx
case $cpu in
x86 | i*86)
;;
*)
os=nto-$os
;;
esac
;;
hiux*)
os=hiuxwe2
@@ -1451,7 +1437,7 @@ case $os in
;;
# Preserve the version number of sinix5.
sinix5.*)
os=`echo "$os" | sed -e 's|sinix|sysv|'`
os=`echo $os | sed -e 's|sinix|sysv|'`
;;
sinix*)
os=sysv4
@@ -1492,16 +1478,10 @@ case $os in
os=eabi
;;
*)
os=
obj=elf
os=elf
;;
esac
;;
aout* | coff* | elf* | pe*)
# These are machine code file formats, not OSes
obj=$os
os=
;;
*)
# No normalization, but not necessarily accepted, that comes below.
;;
@@ -1520,15 +1500,12 @@ else
# system, and we'll never get to this point.
kernel=
obj=
case $cpu-$vendor in
score-*)
os=
obj=elf
os=elf
;;
spu-*)
os=
obj=elf
os=elf
;;
*-acorn)
os=riscix1.2
@@ -1538,35 +1515,28 @@ case $cpu-$vendor in
os=gnu
;;
arm*-semi)
os=
obj=aout
os=aout
;;
c4x-* | tic4x-*)
os=
obj=coff
os=coff
;;
c8051-*)
os=
obj=elf
os=elf
;;
clipper-intergraph)
os=clix
;;
hexagon-*)
os=
obj=elf
os=elf
;;
tic54x-*)
os=
obj=coff
os=coff
;;
tic55x-*)
os=
obj=coff
os=coff
;;
tic6x-*)
os=
obj=coff
os=coff
;;
# This must come before the *-dec entry.
pdp10-*)
@@ -1588,24 +1558,19 @@ case $cpu-$vendor in
os=sunos3
;;
m68*-cisco)
os=
obj=aout
os=aout
;;
mep-*)
os=
obj=elf
os=elf
;;
mips*-cisco)
os=
obj=elf
os=elf
;;
mips*-*|nanomips*-*)
os=
obj=elf
mips*-*)
os=elf
;;
or32-*)
os=
obj=coff
os=coff
;;
*-tti) # must be before sparc entry or we get the wrong os.
os=sysv3
@@ -1614,8 +1579,7 @@ case $cpu-$vendor in
os=sunos4.1.1
;;
pru-*)
os=
obj=elf
os=elf
;;
*-be)
os=beos
@@ -1696,12 +1660,10 @@ case $cpu-$vendor in
os=uxpv
;;
*-rom68k)
os=
obj=coff
os=coff
;;
*-*bug)
os=
obj=coff
os=coff
;;
*-apple)
os=macos
@@ -1719,20 +1681,13 @@ esac
fi
# Now, validate our (potentially fixed-up) individual pieces (OS, OBJ).
# Now, validate our (potentially fixed-up) OS.
case $os in
# Sometimes we do "kernel-libc", so those need to count as OSes.
llvm* | musl* | newlib* | relibc* | uclibc*)
# Sometimes we do "kernel-abi", so those need to count as OSes.
musl* | newlib* | uclibc*)
;;
# Likewise for "kernel-abi"
eabi* | gnueabi*)
;;
# VxWorks passes extra cpu info in the 4th filed.
simlinux | simwindows | spe)
;;
# See `case $cpu-$os` validation below
ghcjs)
# Likewise for "kernel-libc"
eabi | eabihf | gnueabi | gnueabihf)
;;
# Now accept the basic system types.
# The portable systems comes first.
@@ -1742,20 +1697,20 @@ case $os in
| hpux* | unos* | osf* | luna* | dgux* | auroraux* | solaris* \
| sym* | plan9* | psp* | sim* | xray* | os68k* | v88r* \
| hiux* | abug | nacl* | netware* | windows* \
| os9* | macos* | osx* | ios* | tvos* | watchos* \
| os9* | macos* | osx* | ios* \
| mpw* | magic* | mmixware* | mon960* | lnews* \
| amigaos* | amigados* | msdos* | newsos* | unicos* | aof* \
| aos* | aros* | cloudabi* | sortix* | twizzler* \
| nindy* | vxsim* | vxworks* | ebmon* | hms* | mvs* \
| clix* | riscos* | uniplus* | iris* | isc* | rtu* | xenix* \
| mirbsd* | netbsd* | dicos* | openedition* | ose* \
| bitrig* | openbsd* | secbsd* | solidbsd* | libertybsd* | os108* \
| bitrig* | openbsd* | solidbsd* | libertybsd* | os108* \
| ekkobsd* | freebsd* | riscix* | lynxos* | os400* \
| bosx* | nextstep* | cxux* | oabi* \
| ptx* | ecoff* | winnt* | domain* | vsta* \
| bosx* | nextstep* | cxux* | aout* | elf* | oabi* \
| ptx* | coff* | ecoff* | winnt* | domain* | vsta* \
| udi* | lites* | ieee* | go32* | aux* | hcos* \
| chorusrdb* | cegcc* | glidix* | serenity* \
| cygwin* | msys* | moss* | proelf* | rtems* \
| chorusrdb* | cegcc* | glidix* \
| cygwin* | msys* | pe* | moss* | proelf* | rtems* \
| midipix* | mingw32* | mingw64* | mint* \
| uxpv* | beos* | mpeix* | udk* | moxiebox* \
| interix* | uwin* | mks* | rhapsody* | darwin* \
@@ -1767,117 +1722,42 @@ case $os in
| skyos* | haiku* | rdos* | toppers* | drops* | es* \
| onefs* | tirtos* | phoenix* | fuchsia* | redox* | bme* \
| midnightbsd* | amdhsa* | unleashed* | emscripten* | wasi* \
| nsk* | powerunix* | genode* | zvmoe* | qnx* | emx* | zephyr* \
| fiwix* | mlibc* | cos* | mbr* | ironclad* )
| nsk* | powerunix* | genode* | zvmoe* )
;;
# This one is extra strict with allowed versions
sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
# Don't forget version if it is 3.2v4 or newer.
;;
# This refers to builds using the UEFI calling convention
# (which depends on the architecture) and PE file format.
# Note that this is both a different calling convention and
# different file format than that of GNU-EFI
# (x86_64-w64-mingw32).
uefi)
;;
none)
;;
kernel* | msvc* )
# Restricted further below
;;
'')
if test x"$obj" = x
then
echo "Invalid configuration '$1': Blank OS only allowed with explicit machine code file format" 1>&2
fi
;;
*)
echo "Invalid configuration '$1': OS '$os' not recognized" 1>&2
exit 1
;;
esac
case $obj in
aout* | coff* | elf* | pe*)
;;
'')
# empty is fine
;;
*)
echo "Invalid configuration '$1': Machine code format '$obj' not recognized" 1>&2
exit 1
;;
esac
# Here we handle the constraint that a (synthetic) cpu and os are
# valid only in combination with each other and nowhere else.
case $cpu-$os in
# The "javascript-unknown-ghcjs" triple is used by GHC; we
# accept it here in order to tolerate that, but reject any
# variations.
javascript-ghcjs)
;;
javascript-* | *-ghcjs)
echo "Invalid configuration '$1': cpu '$cpu' is not valid with os '$os$obj'" 1>&2
echo Invalid configuration \`"$1"\': OS \`"$os"\' not recognized 1>&2
exit 1
;;
esac
# As a final step for OS-related things, validate the OS-kernel combination
# (given a valid OS), if there is a kernel.
case $kernel-$os-$obj in
linux-gnu*- | linux-android*- | linux-dietlibc*- | linux-llvm*- \
| linux-mlibc*- | linux-musl*- | linux-newlib*- \
| linux-relibc*- | linux-uclibc*- )
case $kernel-$os in
linux-gnu* | linux-dietlibc* | linux-android* | linux-newlib* | linux-musl* | linux-uclibc* )
;;
uclinux-uclibc*- )
;;
managarm-mlibc*- | managarm-kernel*- )
;;
windows*-msvc*-)
;;
-dietlibc*- | -llvm*- | -mlibc*- | -musl*- | -newlib*- | -relibc*- \
| -uclibc*- )
-dietlibc* | -newlib* | -musl* | -uclibc* )
# These are just libc implementations, not actual OSes, and thus
# require a kernel.
echo "Invalid configuration '$1': libc '$os' needs explicit kernel." 1>&2
echo "Invalid configuration \`$1': libc \`$os' needs explicit kernel." 1>&2
exit 1
;;
-kernel*- )
echo "Invalid configuration '$1': '$os' needs explicit kernel." 1>&2
exit 1
kfreebsd*-gnu* | kopensolaris*-gnu*)
;;
*-kernel*- )
echo "Invalid configuration '$1': '$kernel' does not support '$os'." 1>&2
exit 1
nto-qnx*)
;;
*-msvc*- )
echo "Invalid configuration '$1': '$os' needs 'windows'." 1>&2
exit 1
*-eabi* | *-gnueabi*)
;;
kfreebsd*-gnu*- | kopensolaris*-gnu*-)
;;
vxworks-simlinux- | vxworks-simwindows- | vxworks-spe-)
;;
nto-qnx*-)
;;
os2-emx-)
;;
*-eabi*- | *-gnueabi*-)
;;
none--*)
# None (no kernel, i.e. freestanding / bare metal),
# can be paired with an machine code file format
;;
-*-)
-*)
# Blank kernel with real OS is always fine.
;;
--*)
# Blank kernel and OS with real machine code file format is always fine.
;;
*-*-*)
echo "Invalid configuration '$1': Kernel '$kernel' not known to work with OS '$os'." 1>&2
*-*)
echo "Invalid configuration \`$1': Kernel \`$kernel' not known to work with OS \`$os'." 1>&2
exit 1
;;
esac
@@ -1960,7 +1840,7 @@ case $vendor in
;;
esac
echo "$cpu-$vendor${kernel:+-$kernel}${os:+-$os}${obj:+-$obj}"
echo "$cpu-$vendor-${kernel:+$kernel-}$os"
exit
# Local variables:

View File

@@ -9,11 +9,9 @@
# #
#########################################################################
SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
os=${LDEARCH:-`$SCRIPTPATH/config.guess`}
os=${LDEARCH:-`./config.guess`}
# o/s switch block
case "$os" in
m68k-*) echo m68k ;;
sparc-*) echo sparc ;;
alpha-*) echo alpha ;;
i*86-*-*) echo 386 ;;

View File

@@ -1,26 +0,0 @@
# Options for Linux, Intel x86_64 and X-Window
CC = gcc -m64 $(GCC_CFLAGS) -I/usr/local/include
#CC = clang -m64 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)sdl.o
#
# For SDL version 2
# -DSDL=2 in XFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in XFLAGS and -lSDL3 in LDFLAGS
#
XFLAGS = -DSDL=2
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
LDFLAGS = -lm -L/usr/local/lib -lSDL2
#
LDELDFLAGS =
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl

View File

@@ -18,7 +18,7 @@ XFLAGS = -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
DFLAGS = $(XFLAGS) -DRELEASE=351
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm

View File

@@ -19,7 +19,7 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
OPTFLAGS = -O2 -g
DEBUGFLAGS = # -DDEBUG -DOPTRACE
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) \
-DRELEASE=$(RELEASE) # -DSTACKCHECK -DFSBCHECK -DPCTRACE
-DRELEASE=351 -DSTACKCHECK -DFSBCHECK -DPCTRACE
LDFLAGS = -L/opt/X11/lib -lX11 -lm
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm

View File

@@ -1,26 +0,0 @@
# Options for MacOS, arm64 (aka aarch64) processor, SDL
CC = clang -target aarch64-apple-darwin $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)sdl.o
#
# For SDL version 2
# -DSDL=2 in SDLFLAGS and -framework SDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in SDLFLAGS and -framework SDL3 in LDFLAGS
#
SDLFLAGS = -DSDL=2 -F /Library/Frameworks
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g
DEBUGFLAGS = # -DDEBUG -DOPTRACE
DFLAGS = $(DEBUGFLAGS) $(SDLFLAGS) -DRELEASE=$(RELEASE)
LDFLAGS = -rpath /Library/Frameworks -F /Library/Frameworks -framework SDL2
LDELDFLAGS =
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl

View File

@@ -1,6 +1,6 @@
# Options for MacOS, arm64 (aka aarch64) processor, X windows
# Options for MacOS, x86 processor, X windows
CC = clang -target aarch64-apple-darwin $(CLANG_CFLAGS)
CC = clang $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
@@ -18,7 +18,7 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2
DEBUGFLAGS = # -DDEBUG -DOPTRACE
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE)
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351
LDFLAGS = -L/opt/X11/lib -lX11 -lm
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm

View File

@@ -19,7 +19,7 @@ XFLAGS = -I/usr/X11/include -DXWINDOW
OPTFLAGS = -O2 -g
DEBUGFLAGS = # -DDEBUG -DOPTRACE
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) \
-DRELEASE=$(RELEASE)
-DRELEASE=351
LDFLAGS = -L/usr/X11/lib -lX11 -lm
LDELDFLAGS = -L/usr/X11/lib -lX11 -lm

View File

@@ -1,25 +0,0 @@
# Options for MacOS, x86 processor, SDL
CC = clang -m64 -target x86_64-apple-darwin $(CLANG_CFLAGS)
#
# For SDL version 2
# -DSDL=2 in SDLFLAGS and -framework SDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in SDLFLAGS and -framework SDL3 in LDFLAGS
#
XFILES = $(OBJECTDIR)sdl.o
SDLFLAGS = -DSDL=2 -F /Library/Frameworks
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g
DEBUGFLAGS = # -DDEBUG -DOPTRACE
DFLAGS = $(DEBUGFLAGS) $(SDLFLAGS) -DRELEASE=$(RELEASE)
LDFLAGS = -rpath /Library/Frameworks -F /Library/Frameworks -framework SDL2
LDELDFLAGS =
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl

View File

@@ -1,6 +1,6 @@
# Options for MacOS, x86 processor, X windows
CC = clang -target x86_64-apple-darwin $(CLANG_CFLAGS)
CC = clang -m64 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
@@ -18,7 +18,7 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O1 -g
DEBUGFLAGS = # -DDEBUG -DOPTRACE
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE)
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351
LDFLAGS = -L/opt/X11/lib -lX11 -lm
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
@@ -26,4 +26,3 @@ LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldex

View File

@@ -13,12 +13,12 @@ LDFLAGS = -g graphics.lib binmode.lib mouse.lib
RM = del
SRCFILES = conspage.c gcoflow.c shift.c dbgtool.c gcr.c gcrcell.c llstk.c gcscan.c loopsops.c storage.c allocmds.c dir.c gvar2.c lowlev1.c subr.c arithops.c lowlev2.c subr0374.c doscomm.c hardrtn.c lsthandl.c sxhash.c draw.c main.c testtool.c array.c dsk.c inet.c misc7.c timer.c array2.c dspif.c initdsp.c miscn.c typeof.c array3.c initkbd.c ubf1.c array4.c dspsubrs.c initsout.c mkatom.c ubf2.c array5.c eqf.c intcall.c mkcell.c ubf3.c array6.c ether.c mkvdate.c ufn.c atom.c findkey.c kbdsubrs.c mouseif.c ufs.c bbtsub.c foreign.c keyevent.c unixcomm.c bin.c fp.c binds.c asmbbt.c fvar.c mvs.c unwind.c bitblt.c gc.c uraid.c blt.c gc2.c kprint.c osmsg.c usrsubr.c byteswap.c gcarray.c perrno.c ldeboot.c ldeether.c uutils.c carcdr.c gccode.c rawcolor.c vars3.c gcfinal.c ldsout.c return.c vmemsave.c chardev.c gchtfind.c lineblt8.c rpc.c xc.c common.c gcmain3.c lisp2c.c rplcons.c z2.c xmkicon.c xbbt.c xinit.c xscroll.c xcursor.c xlspwin.c xrdopt.c xwinman.c dosmouse.c vesafns.asm vesainit.c vgainit.c kbdif.c dspsparc.il copyright launch.asm lpread.c lpsolve.c lpmain.c lpwrite.c lpdual.c lptran.c
SRCFILES = conspage.c gcoflow.c shift.c dbgtool.c gcr.c gcrcell.c llstk.c gcscan.c loopsops.c storage.c allocmds.c dir.c gvar2.c lowlev1.c subr.c arith2.c lowlev2.c subr0374.c arith3.c doscomm.c hardrtn.c lsthandl.c sxhash.c arith4.c draw.c main.c testtool.c array.c dsk.c inet.c misc7.c timer.c array2.c dspif.c initdsp.c miscn.c typeof.c array3.c initkbd.c ubf1.c array4.c dspsubrs.c initsout.c mkatom.c ubf2.c array5.c eqf.c intcall.c mkcell.c ubf3.c array6.c ether.c mkvdate.c ufn.c atom.c findkey.c kbdsubrs.c mouseif.c ufs.c bbtsub.c foreign.c keyevent.c unixcomm.c bin.c fp.c binds.c asmbbt.c fvar.c mvs.c unwind.c bitblt.c gc.c uraid.c blt.c gc2.c kprint.c osmsg.c usrsubr.c byteswap.c gcarray.c perrno.c ldeboot.c ldeether.c uutils.c carcdr.c gccode.c rawcolor.c vars3.c gcfinal.c ldsout.c return.c vmemsave.c chardev.c gchtfind.c lineblt8.c rpc.c xc.c common.c gcmain3.c lisp2c.c rplcons.c z2.c xmkicon.c xbbt.c xinit.c xscroll.c xcursor.c xlspwin.c xrdopt.c xwinman.c dosmouse.c vesafns.asm vesainit.c vgainit.c kbdif.c dspsparc.il copyright launch.asm lpread.c lpsolve.c lpmain.c lpwrite.c lpdual.c lptran.c
OFILES = conspage.obj gcoflow.obj shift.obj dbgtool.obj gcr.obj gcrcell.obj llstk.obj gcscan.obj loopsops.obj storage.obj allocmds.obj dir.obj gvar2.obj lowlev1.obj subr.obj arithops.obj lowlev2.obj subr0374.obj doscomm.obj hardrtn.obj lsthandl.obj sxhash.obj draw.obj main.obj testtool.obj array.obj dsk.obj inet.obj misc7.obj timer.obj array2.obj dspif.obj initdsp.obj miscn.obj typeof.obj array3.obj initkbd.obj ubf1.obj array4.obj dspsubrs.obj initsout.obj mkatom.obj ubf2.obj array5.obj eqf.obj intcall.obj mkcell.obj ubf3.obj array6.obj ether.obj ufn.obj atom.obj findkey.obj kbdsubrs.obj mouseif.obj ufs.obj bbtsub.obj foreign.obj keyevent.obj unixcomm.obj bin.obj fp.obj binds.obj fvar.obj mvs.obj unwind.obj bitblt.obj gc.obj uraid.obj blt.obj gc2.obj kprint.obj osmsg.obj usrsubr.obj byteswap.obj gcarray.obj perrno.obj uutils.obj carcdr.obj asmbbt.obj gccode.obj vars3.obj gcfinal.obj ldsout.obj return.obj vmemsave.obj chardev.obj gchtfind.obj lineblt8.obj rpc.obj xc.obj common.obj gcmain3.obj lisp2c.obj rplcons.obj z2.obj vdate.obj $(COLORFILES) $(ARCHFILES) $(LPFILES)
OFILES = conspage.obj gcoflow.obj shift.obj dbgtool.obj gcr.obj gcrcell.obj llstk.obj gcscan.obj loopsops.obj storage.obj allocmds.obj dir.obj gvar2.obj lowlev1.obj subr.obj arith2.obj lowlev2.obj subr0374.obj arith3.obj doscomm.obj hardrtn.obj lsthandl.obj sxhash.obj arith4.obj draw.obj main.obj testtool.obj array.obj dsk.obj inet.obj misc7.obj timer.obj array2.obj dspif.obj initdsp.obj miscn.obj typeof.obj array3.obj initkbd.obj ubf1.obj array4.obj dspsubrs.obj initsout.obj mkatom.obj ubf2.obj array5.obj eqf.obj intcall.obj mkcell.obj ubf3.obj array6.obj ether.obj ufn.obj atom.obj findkey.obj kbdsubrs.obj mouseif.obj ufs.obj bbtsub.obj foreign.obj keyevent.obj unixcomm.obj bin.obj fp.obj binds.obj fvar.obj mvs.obj unwind.obj bitblt.obj gc.obj uraid.obj blt.obj gc2.obj kprint.obj osmsg.obj usrsubr.obj byteswap.obj gcarray.obj perrno.obj uutils.obj carcdr.obj asmbbt.obj gccode.obj vars3.obj gcfinal.obj ldsout.obj return.obj vmemsave.obj chardev.obj gchtfind.obj lineblt8.obj rpc.obj xc.obj common.obj gcmain3.obj lisp2c.obj rplcons.obj z2.obj vdate.obj $(COLORFILES) $(ARCHFILES) $(LPFILES)
HFILES = address.h adr68k.h arithopsdefs.h arith.h cell.h dbprint.h display.h dspif.h ifpage.h iopage.h lispemul.h lispmap.h lsptypes.h miscstat.h lspglob.h array.h bb.h bbtmacro.h debug.h devconf.h dspdata.h fast_dsp.h gcdata.h initatms.h inlinec.h keyboard.h lispver1.h lispver2.h lldsp.h locfile.h medleyfp.h mouseif.h my.h opcodes.h osmsgprint.h pilotbbt.h print.h retmacro.h stack.h stream.h subrs.h timeout.h tos1defs.h tosfns.h tosret.h xdefs.h xbitmaps.h xkeymap.h
HFILES = address.h adr68k.h arith.h cell.h dbprint.h display.h dspif.h ifpage.h iopage.h lispemul.h lispmap.h lsptypes.h miscstat.h lspglob.h array.h bb.h bitblt.h debug.h devconf.h dspdata.h ether.h fast_dsp.h gcdata.h hdw_conf.h initatms.h inlinec.h keyboard.h lispver1.h lispver2.h lldsp.h locfile.h medleyfp.h mouseif.h my.h opcodes.h osmsg.h pilotbbt.h print.h return.h stack.h stream.h subrs.h timeout.h tos1defs.h tosfns.h tosret.h vmemsave.h xdefs.h xbitmaps.h xkeymap.h
@@ -35,7 +35,7 @@ emul.exe : $(OFILES)
del copts
@ echo "Executable is now named '$@'"
main.o : lispemul.h address.h lsptypes.h adr68k.h stack.h lspglob.h lispmap.h ifpage.h iopage.h retmacro.h debug.h
main.o : lispemul.h address.h lsptypes.h adr68k.h stack.h lspglob.h lispmap.h ifpage.h iopage.h return.h debug.h
@@ -202,9 +202,9 @@ subr.obj : ../src/subr.c
$(CC) @copts ../src/subr.c -I ../inc -c $@
del copts
arithops.obj : ../src/arithops.c
arith2.obj : ../src/arith2.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/arithops.c -I ../inc -c $@
$(CC) @copts ../src/arith2.c -I ../inc -c $@
del copts
lowlev2.obj : ../src/lowlev2.c
@@ -217,6 +217,11 @@ subr0374.obj : ../src/subr0374.c
$(CC) @copts ../src/subr0374.c -I ../inc -c $@
del copts
arith3.obj : ../src/arith3.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/arith3.c -I ../inc -c $@
del copts
doscomm.obj : ../src/doscomm.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/doscomm.c -I ../inc -c $@
@@ -237,6 +242,11 @@ sxhash.obj : ../src/sxhash.c
$(CC) @copts ../src/sxhash.c -I ../inc -c $@
del copts
arith4.obj : ../src/arith4.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/arith4.c -I ../inc -c $@
del copts
draw.obj : ../src/draw.c
@ echo $(CFLAGS) > copts
$(CC) @copts ../src/draw.c -I ../inc -c $@

View File

@@ -1,40 +0,0 @@
# Options for Emscripten, WASM and SDL
CC = emcc $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)sdl.o
#
# For SDL version 2
# -DSDL=2 and -sUSE_SDL=2 in XFLAGS and -sUSE_SDL=2 in LDFLAGS
# For SDL version 3
# -DSDL=3 and -sUSE_SDL=3 in XFLAGS and -sUSE_SDL=3 in LDFLAGS
#
XFLAGS = -DSDL=2 -sUSE_SDL=2
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DMAIKO_ENABLE_NETHUB
MEDLEY?=../../medley
SYSOUT?=$(MEDLEY)/loadups/full.sysout
LD = emcc
LDFLAGS = -sUSE_SDL=2 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sEXIT_RUNTIME=1 \
--preload-file $(SYSOUT)@medley/loadups/full.sysout \
--preload-file $(MEDLEY)/loadups/whereis.hash@medley/loadups/whereis.hash \
--preload-file $(MEDLEY)/greetfiles/MEDLEYDIR-INIT.LCOM@usr/local/lde/site-init.lisp \
--preload-file $(MEDLEY)/docs/@medley/docs \
--preload-file $(MEDLEY)/doctools/@medley/doctools \
--preload-file $(MEDLEY)/greetfiles/@medley/greetfiles \
--preload-file $(MEDLEY)/internal/@medley/internal \
--preload-file $(MEDLEY)/sources/@medley/sources \
--preload-file $(MEDLEY)/library/@medley/library \
--preload-file $(MEDLEY)/lispusers/@medley/lispusers \
--preload-file $(MEDLEY)/fonts/@medley/fonts
LDELDFLAGS =
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/ldesdl.js

View File

@@ -1,29 +0,0 @@
# Options for Emscripten, WASM and SDL
CC = emcc $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)sdl.o
#
# For SDL version 2
# -DSDL=2 and -sUSE_SDL=2 in XFLAGS and -sUSE_SDL=2 in LDFLAGS
# For SDL version 3
# -DSDL=3 and -sUSE_SDL=3 in XFLAGS and -sUSE_SDL=3 in LDFLAGS
#
XFLAGS = -DSDL=2 -sUSE_SDL=2
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DMAIKO_ENABLE_NETHUB
MEDLEY?=../../medley
SYSOUT?=$(MEDLEY)/loadups/full.sysout
LD = emcc
LDFLAGS = -sUSE_SDL=2 -sASYNCIFY -sALLOW_MEMORY_GROWTH -sEXIT_RUNTIME=1 -sFORCE_FILESYSTEM -sLZ4
LDELDFLAGS =
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/ldesdl.js

View File

@@ -1,24 +0,0 @@
# Options for FreeBSD, Intel 386/486 and SDL
CC = clang -m32 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)sdl.o
#
# For SDL version 2
# -DSDL=2 in SDLFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in SDLFLAGS and -lSDL3 in LDFLAGS
#
SDLFLAGS = -DSDL=2 -I/usr/local/include
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE)
LDFLAGS = -L/usr/local/lib -lSDL2 -lm
LDELDFLAGS =
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl

View File

@@ -16,8 +16,8 @@ XFILES = $(OBJECTDIR)xmkicon.o \
XFLAGS = -I/usr/local/include -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
OPTFLAGS = -O1 -gdwarf-2
DFLAGS = $(XFLAGS) -DRELEASE=351
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm

View File

@@ -1,24 +0,0 @@
# Options for FreeBSD, ARM64 and SDL
CC = clang -m64 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)sdl.o
#
# For SDL version 2
# -DSDL=2 in SDLFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in SDLFLAGS and -lSDL3 in LDFLAGS
#
SDLFLAGS = -DSDL=2 -I/usr/local/include
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE)
LDFLAGS = -L/usr/local/lib -lSDL2 -lm
LDELDFLAGS =
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl

View File

@@ -1,27 +0,0 @@
# Options for FreeBSD, ARMv7 and X-Windows
CC = clang -m64 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -I/usr/local/include -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldex

View File

@@ -1,24 +0,0 @@
# Options for FreeBSD, Intel x86_64 and X-Windows
CC = clang -m64 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)sdl.o
#
# For SDL version 2
# -DSDL=2 in SDLFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in SDLFLAGS and -lSDL3 in LDFLAGS
#
SDLFLAGS = -DSDL=2 -I/usr/local/include
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE)
LDFLAGS = -L/usr/local/lib -lSDL2 -lm
LDELDFLAGS =
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl

View File

@@ -1,27 +0,0 @@
# Options for FreeBSD, Intel x86_64 and X-Windows
CC = clang -m64 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -I/usr/local/include -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldex

View File

@@ -1,25 +0,0 @@
# Options for Haiku, Intel x86_64 and SDL
CC = gcc -m64 $(GCC_CFLAGS)
# CC = clang -m64 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)sdl.o
#
# For SDL version 2
# -DSDL=2 in XFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in XFLAGS and -lSDL3 in LDFLAGS
#
XFLAGS = -DSDL=2
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
LDFLAGS = -lSDL2 -lnetwork
LDELDFLAGS = -lnetwork -lbsd
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl

View File

@@ -18,7 +18,7 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
# OPTFLAGS is normally -O2, for INIT we want unoptimized in case we need to debug it
OPTFLAGS = -O0 -g
DEBUGFLAGS =
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
LDFLAGS = -L/usr/X11/lib -lX11 -lm
LDELDFLAGS = -L/usr/X11/lib -lX11 -lm

View File

@@ -1,6 +1,6 @@
# Options for MacOS, aarch64 processor, X windows, for INIT processing
CC = clang -target aarch64-apple-darwin $(CLANG_CFLAGS)
CC = clang $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
@@ -18,7 +18,7 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O0 -g3
DEBUGFLAGS = # -DDEBUG -DOPTRACE
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
LDFLAGS = -L/opt/X11/lib -lX11 -lm
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm

View File

@@ -1,28 +0,0 @@
# Options for MacOS, x86_64 processor, X windows, for INIT processing
CC = clang -m64 -target x86_64-apple-darwin $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -I/opt/X11/include -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O0 -g
DEBUGFLAGS = # -DDEBUG -DOPTRACE
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
LDFLAGS = -L/opt/X11/lib -lX11 -lm
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/ldeinit

View File

@@ -1,27 +0,0 @@
# Options for FreeBSD, Intel 386/486 and X Windows
CC = clang -m32 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -I/usr/local/include -DXWINDOW
# OPTFLAGS is normally -O0 for init
OPTFLAGS = -O0 -g
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/ldeinit

View File

@@ -1,27 +0,0 @@
# Options for FreeBSD, ARMv7 and X-Windows
CC = clang -m64 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -I/usr/local/include -DXWINDOW
# OPTFLAGS is normally -O0 for init
OPTFLAGS = -O0 -g
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/ldeinit

View File

@@ -1,27 +0,0 @@
# Options for FreeBSD, Intel x86_64 and X-Windows
CC = clang -m64 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -I/usr/local/include -DXWINDOW
# OPTFLAGS is normally -O0 for init
OPTFLAGS = -O0 -g
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/ldeinit

View File

@@ -1,29 +0,0 @@
# Options for Linux, aarch64 processor, X windows, for INIT processing
CC = gcc $(GCC_CFLAGS)
#CC = clang $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -DXWINDOW
# OPTFLAGS is normally -O2, for INIT we want unoptimized in case we need to debug it
OPTFLAGS = -O0 -g
DEBUGFLAGS =
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/ldeinit

View File

@@ -1,29 +0,0 @@
# Options for Linux, x86 processor, X windows, for INIT processing
CC = gcc $(GCC_CFLAGS)
#CC = clang $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -DXWINDOW
# OPTFLAGS is normally -O2, for INIT we want unoptimized in case we need to debug it
OPTFLAGS = -O0 -g
DEBUGFLAGS =
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/ldeinit

View File

@@ -1,27 +0,0 @@
# Options for OpenBSD, Intel x86_64 and X-Window
CC = clang -m64 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -I/usr/X11R6/include -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
LDFLAGS = -L/usr/X11R6/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/X11R6/lib -lX11 -lc -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/ldeinit

View File

@@ -41,7 +41,7 @@ OPTFLAGS = -g3 -O0
DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
MACHINEFLAGS = -DOS5 -DUSE_DLPI
MACHINEFLAGS = -DOS5 -DUSE_DLPI -DLOCK_X_UPDATES
# The LDEINIT wants to have NOVERSION set, so we don't hang up on
# any change-over in versions.
@@ -50,7 +50,7 @@ DFLAGS = -DINIT \
$(XFLAGS) \
$(DEBUGFLAGS) \
$(MACHINEFLAGS) \
-DNOVERSION -DRELEASE=$(RELEASE)
-DNOVERSION -DRELEASE=351
LDFLAGS = -lX11 -lc -lm -lsocket -lnsl

View File

@@ -1,29 +0,0 @@
# Options for Windows System for Linux v1, aarch64 processor, X windows, for INIT processing
CC = gcc $(GCC_CFLAGS)
#CC = clang $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -DXWINDOW
# OPTFLAGS is normally -O2, for INIT we want unoptimized in case we need to debug it
OPTFLAGS = -O0 -g
DEBUGFLAGS =
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT -D__wsl1__
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/ldeinit

View File

@@ -1,29 +0,0 @@
# Options for Windows System for Linux v1, Intel x86_64 processor, X windows, for INIT processing
CC = gcc $(GCC_CFLAGS)
#CC = clang $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -DXWINDOW
# OPTFLAGS is normally -O2, for INIT we want unoptimized in case we need to debug it
OPTFLAGS = -O0 -g
DEBUGFLAGS =
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT -D__wsl1__
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/ldeinit

View File

@@ -1,25 +0,0 @@
# Options for Linux, Intel 386/486 and SDL
CC = gcc -m32 $(GCC_CFLAGS)
# CC = clang $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)sdl.o
#
# For SDL version 2
# -DSDL=2 in XFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in XFLAGS and -lSDL3 in LDFLAGS
#
XFLAGS = -DSDL=2
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
LDFLAGS = -lm -lSDL2
LDELDFLAGS =
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl

View File

@@ -1,8 +1,7 @@
# Options for Linux, Intel 386/486 and X-Window
CC = gcc -m32 $(GCC_CFLAGS)
# CC = clang -m32 $(CLANG_CFLAGS)
#CC = gcc -m32 $(GCC_CFLAGS)
CC = clang -m32 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
@@ -13,11 +12,12 @@ XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
DFLAGS = $(XFLAGS) -DRELEASE=351
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm

View File

@@ -1,25 +0,0 @@
# Options for Linux, ARM64 and SDL
CC = gcc $(GCC_CFLAGS)
#CC = clang $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)sdl.o
#
# For SDL version 2
# -DSDL=2 in SDLFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in SDLFLAGS and -lSDL3 in LDFLAGS
#
SDLFLAGS = -DSDL=2
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE)
LDFLAGS = -lSDL2 -lm
LDELDFLAGS =
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl

View File

@@ -1,27 +0,0 @@
# Options for Linux, aarch64 and X-Window
CC = gcc $(GCC_CFLAGS)
#CC = clang $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldex

View File

@@ -1,25 +0,0 @@
# Options for Linux, ARMv7 and SDL
CC = gcc $(GCC_CFLAGS)
#CC = clang $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)sdl.o
#
# For SDL version 2
# -DSDL=2 in XFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in XFLAGS and -lSDL3 in LDFLAGS
#
XFLAGS = -DSDL=2
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
LDFLAGS = -lm -lSDL2
LDELDFLAGS =
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl

View File

@@ -17,7 +17,7 @@ XFLAGS = -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
DFLAGS = $(XFLAGS) -DRELEASE=351
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm

View File

@@ -1,25 +0,0 @@
# Options for Linux, Intel x86_64 and SDL
CC = gcc -m64 $(GCC_CFLAGS)
# CC = clang -m64 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)sdl.o
#
# For SDL version 2
# -DSDL=2 in XFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in XFLAGS and -lSDL3 in LDFLAGS
#
XFLAGS = -DSDL=2
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
LDFLAGS = -lm -lSDL2
LDELDFLAGS =
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl

View File

@@ -1,7 +1,7 @@
# Options for Linux, Intel x86_64 and X-Window
CC = gcc -m64 $(GCC_CFLAGS)
# CC = clang -m64 $(CLANG_CFLAGS)
#CC = gcc -m64 $(GCC_CFLAGS)
CC = clang -m64 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
@@ -18,7 +18,7 @@ XFLAGS = -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
DFLAGS = $(XFLAGS) -DRELEASE=351
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm

View File

@@ -17,7 +17,7 @@ XFLAGS = -I/usr/X11R6/include -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
DFLAGS = $(XFLAGS) -DRELEASE=351
LDFLAGS = -L/usr/X11R6/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/X11R6/lib -lX11 -lc -lm

View File

@@ -36,7 +36,8 @@ DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
DFLAGS = $(XFLAGS) \
$(DEBUGFLAGS) \
-DOS5 \
-DRELEASE=$(RELEASE)
-DLOCK_X_UPDATES \
-DRELEASE=351
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl

View File

@@ -36,6 +36,7 @@ DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
DFLAGS = $(XFLAGS) \
$(DEBUGFLAGS) \
-DOS5 -DUSE_DLPI \
-DLOCK_X_UPDATES \
-I$(OPENWINHOME)/include \
-DRELEASE=210

View File

@@ -40,12 +40,12 @@ OPTFLAGS = -O2 -g3
DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
MACHINEFLAGS = -DOS5 -DUSE_DLPI
MACHINEFLAGS = -DOS5 -DUSE_DLPI -DLOCK_X_UPDATES
DFLAGS = $(XFLAGS) \
$(DEBUGFLAGS) \
$(MACHINEFLAGS) \
-DRELEASE=$(RELEASE)
-DRELEASE=351
LDFLAGS = -lX11 -lc -lm -lsocket -lnsl
LDELDFLAGS = -lX11 -lc -lm -lsocket -lnsl

View File

@@ -36,8 +36,9 @@ DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
DFLAGS = $(XFLAGS) \
$(DEBUGFLAGS) \
-DOS5 \
-DLOCK_X_UPDATES \
-DUSE_DLPI \
-DRELEASE=$(RELEASE)
-DRELEASE=351
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl

View File

@@ -38,8 +38,15 @@ REQUIRED-INCS = $(INCDIR)version.h $(INCDIR)maiko/platform.h
CFLAGS = $(OPTFLAGS) $(DFLAGS)
RFLAGS = -c $(CFLAGS) -I$(INCDIR) -I$(INCLUDEDIR)
OFILES = $(OBJECTDIR)arithops.o \
$(OBJECTDIR)arrayops.o \
OFILES = $(OBJECTDIR)arith2.o \
$(OBJECTDIR)arith3.o \
$(OBJECTDIR)arith4.o \
$(OBJECTDIR)array.o \
$(OBJECTDIR)array2.o \
$(OBJECTDIR)array3.o \
$(OBJECTDIR)array4.o \
$(OBJECTDIR)array5.o \
$(OBJECTDIR)array6.o \
$(OBJECTDIR)bin.o \
$(OBJECTDIR)binds.o \
$(OBJECTDIR)bitblt.o \
@@ -115,9 +122,7 @@ DEVICES = $(OBJECTDIR)dspsubrs.o \
$(OBJECTDIR)dir.o \
$(OBJECTDIR)keyevent.o \
$(OBJECTDIR)kbdsubrs.o \
$(OBJECTDIR)ether_common.o \
$(OBJECTDIR)ether_sunos.o \
$(OBJECTDIR)ether_nethub.o \
$(OBJECTDIR)ether.o \
$(OBJECTDIR)tty.o \
$(OBJECTDIR)initkbd.o
@@ -155,6 +160,9 @@ $(OSARCHDIR)$(LDENAME): $(LIBFILES) $(EXTFILES) $(OBJECTDIR)vdate.o
$(OSARCHDIR)ldeether: $(OBJECTDIR)ldeether.o $(DLPIFILES)
$(CC) $(OBJECTDIR)ldeether.o $(DLPIFILES) $(LDEETHERLDFLAGS) -o $(OSARCHDIR)ldeether
$(OSARCHDIR)mkvdate: $(OBJECTDIR)mkvdate.o $(REQUIRED-INCS)
$(CC) $(OBJECTDIR)mkvdate.o $(LDFLAGS) -o $(OSARCHDIR)mkvdate
$(OSARCHDIR)tstsout: $(OBJECTDIR)tstsout.o $(BYTESWAPFILES) $(REQUIRED-INCS)
$(CC) $(OBJECTDIR)tstsout.o $(BYTESWAPFILES) $(LDFLAGS) -lc -lm -o $(OSARCHDIR)tstsout
@@ -163,9 +171,9 @@ $(OSARCHDIR)setsout: $(OBJECTDIR)setsout.o $(REQUIRED-INCS)
#### Component files ######################################################
$(OBJECTDIR)vdate.o: $(LIBFILES) $(EXTFILES) mkvdate
$(OBJECTDIR)vdate.o: $(LIBFILES) $(EXTFILES) $(OSARCHDIR)mkvdate
$(RM) $(OBJECTDIR)vdate.c
$(BINDIR)mkvdate > $(OBJECTDIR)vdate.c
$(OSARCHDIR)mkvdate > $(OBJECTDIR)vdate.c
$(CC) $(RFLAGS) $(OBJECTDIR)vdate.c -o $(OBJECTDIR)vdate.o
$(OBJECTDIR)tstsout.o: $(SRCDIR)tstsout.c $(REQUIRED-INCS) \
@@ -189,10 +197,13 @@ $(OBJECTDIR)ldeboot.o: $(SRCDIR)ldeboot.c $(REQUIRED-INCS) \
$(OBJECTDIR)ldeether.o: $(SRCDIR)ldeether.c $(REQUIRED-INCS)
$(CC) $(RFLAGS) $(SRCDIR)ldeether.c -o $(OBJECTDIR)ldeether.o
$(OBJECTDIR)mkvdate.o: $(SRCDIR)mkvdate.c $(REQUIRED-INCS)
$(CC) $(RFLAGS) $(SRCDIR)mkvdate.c -o $(OBJECTDIR)mkvdate.o
$(OBJECTDIR)main.o: $(SRCDIR)main.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)dbprint.h \
$(INCDIR)emlglob.h $(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)stack.h \
$(INCDIR)retmacro.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h \
$(INCDIR)return.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h \
$(INCDIR)miscstat.h $(INCDIR)lsptypes.h $(INCDIR)lispmap.h $(INCDIR)debug.h \
$(INCDIR)timeout.h $(INCDIR)maindefs.h $(INCDIR)commondefs.h \
$(INCDIR)dirdefs.h $(INCDIR)dspifdefs.h $(INCDIR)devif.h \
@@ -207,7 +218,7 @@ $(OBJECTDIR)dbgtool.o: $(SRCDIR)dbgtool.c $(REQUIRED-INCS) \
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h \
$(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)emlglob.h $(INCDIR)cell.h \
$(INCDIR)stack.h $(INCDIR)dbgtooldefs.h $(INCDIR)kprintdefs.h \
$(INCDIR)testtooldefs.h $(INCDIR)uraidextdefs.h
$(INCDIR)testtooldefs.h
$(CC) $(RFLAGS) $(SRCDIR)dbgtool.c -o $(OBJECTDIR)dbgtool.o
$(OBJECTDIR)dlpi.o: $(SRCDIR)dlpi.c \
@@ -228,7 +239,7 @@ $(OBJECTDIR)testtool.o: $(SRCDIR)testtool.c $(REQUIRED-INCS) \
$(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)emlglob.h $(INCDIR)cell.h \
$(INCDIR)debug.h $(INCDIR)dbprint.h $(INCDIR)tosfns.h $(INCDIR)testtooldefs.h \
$(INCDIR)stack.h $(INCDIR)dbgtooldefs.h $(INCDIR)gcarraydefs.h \
$(INCDIR)kprintdefs.h $(INCDIR)mkatomdefs.h $(INCDIR)uraidextdefs.h
$(INCDIR)kprintdefs.h $(INCDIR)mkatomdefs.h
$(CC) $(RFLAGS) $(SRCDIR)testtool.c -o $(OBJECTDIR)testtool.o
$(OBJECTDIR)allocmds.o: $(SRCDIR)allocmds.c $(REQUIRED-INCS) \
@@ -240,40 +251,48 @@ $(OBJECTDIR)allocmds.o: $(SRCDIR)allocmds.c $(REQUIRED-INCS) \
$(INCDIR)timerdefs.h
$(CC) $(RFLAGS) $(SRCDIR)allocmds.c -o $(OBJECTDIR)allocmds.o
$(OBJECTDIR)arithops.o: $(SRCDIR)arithops.c $(REQUIRED-INCS) \
$(INCDIR)adr68k.h \
$(INCDIR)arith.h \
$(INCDIR)commondefs.h \
$(INCDIR)lispemul.h \
$(INCDIR)lispmap.h \
$(INCDIR)lsptypes.h \
$(INCDIR)mkcelldefs.h \
$(INCDIR)arithopsdefs.h \
$(INCDIR)fpdefs.h \
$(INCDIR)lspglob.h \
$(INCDIR)ifpage.h \
$(INCDIR)iopage.h \
$(INCDIR)miscstat.h
$(CC) $(RFLAGS) $(SRCDIR)arithops.c -o $(OBJECTDIR)arithops.o
$(OBJECTDIR)arith2.o: $(SRCDIR)arith2.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)lispmap.h $(INCDIR)lsptypes.h $(INCDIR)medleyfp.h $(INCDIR)arith.h \
$(INCDIR)arith2defs.h $(INCDIR)fpdefs.h $(INCDIR)mkcelldefs.h
$(CC) $(RFLAGS) $(SRCDIR)arith2.c -o $(OBJECTDIR)arith2.o
$(OBJECTDIR)arrayops.o: $(SRCDIR)arrayops.c $(REQUIRED-INCS) \
$(INCDIR)adr68k.h \
$(INCDIR)arrayopsdefs.h \
$(INCDIR)lispemul.h \
$(INCDIR)lispmap.h \
$(INCDIR)emlglob.h \
$(INCDIR)lspglob.h \
$(INCDIR)ifpage.h \
$(INCDIR)iopage.h \
$(INCDIR)miscstat.h \
$(INCDIR)lsptypes.h \
$(INCDIR)my.h \
$(INCDIR)arith.h \
$(INCDIR)commondefs.h \
$(INCDIR)mkcelldefs.h \
$(INCDIR)gcdata.h \
$(INCDIR)gchtfinddefs.h
$(CC) $(RFLAGS) $(SRCDIR)arrayops.c -o $(OBJECTDIR)arrayops.o
$(OBJECTDIR)arith3.o: $(SRCDIR)arith3.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
$(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h \
$(INCDIR)lsptypes.h $(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)cell.h \
$(INCDIR)arith.h $(INCDIR)arith3defs.h $(INCDIR)mkcelldefs.h
$(CC) $(RFLAGS) $(SRCDIR)arith3.c -o $(OBJECTDIR)arith3.o
$(OBJECTDIR)arith4.o: $(SRCDIR)arith4.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
$(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h \
$(INCDIR)lsptypes.h $(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)cell.h \
$(INCDIR)medleyfp.h $(INCDIR)arith.h $(INCDIR)arith4defs.h $(INCDIR)fpdefs.h \
$(INCDIR)mkcelldefs.h
$(CC) $(RFLAGS) $(SRCDIR)arith4.c -o $(OBJECTDIR)arith4.o
$(OBJECTDIR)array.o: $(SRCDIR)array.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)lispmap.h $(INCDIR)lsptypes.h $(INCDIR)emlglob.h $(INCDIR)arraydefs.h \
$(INCDIR)mkcelldefs.h $(INCDIR)arith.h $(INCDIR)my.h
$(CC) $(RFLAGS) $(SRCDIR)array.c -o $(OBJECTDIR)array.o
$(OBJECTDIR)array3.o: $(SRCDIR)array3.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)lispmap.h $(INCDIR)lsptypes.h $(INCDIR)emlglob.h \
$(INCDIR)array3defs.h $(INCDIR)mkcelldefs.h $(INCDIR)arith.h $(INCDIR)my.h
$(CC) $(RFLAGS) $(SRCDIR)array3.c -o $(OBJECTDIR)array3.o
$(OBJECTDIR)array5.o: $(SRCDIR)array5.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)lispmap.h $(INCDIR)lsptypes.h $(INCDIR)emlglob.h \
$(INCDIR)array5defs.h $(INCDIR)mkcelldefs.h $(INCDIR)arith.h $(INCDIR)my.h
$(CC) $(RFLAGS) $(SRCDIR)array5.c -o $(OBJECTDIR)array5.o
$(OBJECTDIR)bin.o: $(SRCDIR)bin.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
@@ -292,7 +311,7 @@ $(OBJECTDIR)bitblt.o: $(SRCDIR)bitblt.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)lispmap.h \
$(INCDIR)adr68k.h $(INCDIR)address.h $(INCDIR)pilotbbt.h $(INCDIR)display.h \
$(INCDIR)bbtmacro.h $(INCDIR)bb.h $(INCDIR)bitbltdefs.h $(INCDIR)initdspdefs.h
$(INCDIR)bitblt.h $(INCDIR)bb.h $(INCDIR)bitbltdefs.h $(INCDIR)initdspdefs.h
$(CC) $(RFLAGS) $(SRCDIR)bitblt.c -o $(OBJECTDIR)bitblt.o
$(OBJECTDIR)bbt68k.o: $(OBJECTDIR)bbt68k.i $(SRCDIR)bbt68k.s
@@ -308,10 +327,10 @@ $(OBJECTDIR)bbtsub.o: $(SRCDIR)bbtsub.c $(REQUIRED-INCS) \
$(INCDIR)xdefs.h $(INCDIR)lispemul.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h \
$(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)lispmap.h $(INCDIR)lsptypes.h \
$(INCDIR)emlglob.h $(INCDIR)adr68k.h $(INCDIR)address.h $(INCDIR)arith.h \
$(INCDIR)stack.h $(INCDIR)retmacro.h $(INCDIR)cell.h $(INCDIR)gcdata.h \
$(INCDIR)stack.h $(INCDIR)return.h $(INCDIR)cell.h $(INCDIR)gcdata.h \
$(INCDIR)bbtsubdefs.h $(INCDIR)car-cdrdefs.h $(INCDIR)commondefs.h \
$(INCDIR)gcarraydefs.h $(INCDIR)initdspdefs.h $(INCDIR)kprintdefs.h \
$(INCDIR)llstkdefs.h $(INCDIR)returndefs.h $(INCDIR)bb.h $(INCDIR)bbtmacro.h \
$(INCDIR)llstkdefs.h $(INCDIR)returndefs.h $(INCDIR)bb.h $(INCDIR)bitblt.h \
$(INCDIR)pilotbbt.h $(INCDIR)dspdata.h $(INCDIR)display.h $(INCDIR)dbprint.h \
$(INCDIR)devif.h
$(CC) $(RFLAGS) $(SRCDIR)bbtsub.c -o $(OBJECTDIR)bbtsub.o
@@ -324,7 +343,7 @@ $(OBJECTDIR)blt.o: $(SRCDIR)blt.c $(REQUIRED-INCS) \
$(CC) $(RFLAGS) $(SRCDIR)blt.c -o $(OBJECTDIR)blt.o
$(OBJECTDIR)byteswap.o: $(SRCDIR)byteswap.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h \
$(INCDIR)hdw_conf.h $(INCDIR)lispemul.h \
$(INCDIR)lispmap.h $(INCDIR)lsptypes.h $(INCDIR)stack.h \
$(INCDIR)byteswapdefs.h
$(CC) $(RFLAGS) $(SRCDIR)byteswap.c -o $(OBJECTDIR)byteswap.o
@@ -340,7 +359,7 @@ $(OBJECTDIR)car-cdr.o: $(SRCDIR)car-cdr.c $(REQUIRED-INCS) \
$(OBJECTDIR)chardev.o: $(SRCDIR)chardev.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)arith.h $(INCDIR)timeout.h \
$(INCDIR)locfile.h $(INCDIR)lispver2.h $(INCDIR)dbprint.h \
$(INCDIR)locfile.h $(INCDIR)lispver2.h $(INCDIR)osmsg.h $(INCDIR)dbprint.h \
$(INCDIR)chardevdefs.h $(INCDIR)byteswapdefs.h $(INCDIR)commondefs.h \
$(INCDIR)perrnodefs.h
$(CC) $(RFLAGS) $(SRCDIR)chardev.c -o $(OBJECTDIR)chardev.o
@@ -348,7 +367,7 @@ $(OBJECTDIR)chardev.o: $(SRCDIR)chardev.c $(REQUIRED-INCS) \
$(OBJECTDIR)rawcolor.o: $(SRCDIR)rawcolor.c $(REQUIRED-INCS) $(INCDIR)lispemul.h \
$(INCDIR)lspglob.h $(INCDIR)lispmap.h $(INCDIR)lsptypes.h \
$(INCDIR)emlglob.h $(INCDIR)adr68k.h $(INCDIR)address.h \
$(INCDIR)pilotbbt.h $(INCDIR)display.h $(INCDIR)bbtmacro.h \
$(INCDIR)pilotbbt.h $(INCDIR)display.h $(INCDIR)bitblt.h \
$(INCDIR)arith.h $(INCDIR)cell.h $(INCDIR)dspdata.h $(INCDIR)debug.h \
$(INCDIR)stream.h $(INCDIR)bbtsubdefs.h
$(CC) $(RFLAGS) $(SRCDIR)rawcolor.c -o $(OBJECTDIR)rawcolor.o
@@ -357,7 +376,7 @@ $(OBJECTDIR)llcolor.o: $(SRCDIR)llcolor.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
$(INCDIR)lsptypes.h $(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)emlglob.h \
$(INCDIR)display.h $(INCDIR)devconf.h $(INCDIR)bb.h $(INCDIR)bbtmacro.h \
$(INCDIR)display.h $(INCDIR)devconf.h $(INCDIR)bb.h $(INCDIR)bitblt.h \
$(INCDIR)pilotbbt.h $(INCDIR)dbprint.h $(INCDIR)llcolordefs.h
$(CC) $(RFLAGS) $(SRCDIR)llcolor.c -o $(OBJECTDIR)llcolor.o
@@ -369,7 +388,7 @@ $(OBJECTDIR)common.o: $(SRCDIR)common.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
$(INCDIR)adr68k.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h \
$(INCDIR)miscstat.h $(INCDIR)emlglob.h $(INCDIR)stack.h $(INCDIR)dbprint.h \
$(INCDIR)commondefs.h $(INCDIR)kprintdefs.h $(INCDIR)uraiddefs.h $(INCDIR)uraidextdefs.h
$(INCDIR)commondefs.h $(INCDIR)kprintdefs.h $(INCDIR)uraiddefs.h
$(CC) $(RFLAGS) $(SRCDIR)common.c -o $(OBJECTDIR)common.o
$(OBJECTDIR)conspage.o: $(SRCDIR)conspage.c $(REQUIRED-INCS) \
@@ -391,7 +410,7 @@ $(OBJECTDIR)mkcell.o: $(SRCDIR)mkcell.c $(REQUIRED-INCS) \
$(OBJECTDIR)draw.o: $(SRCDIR)draw.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)lispmap.h \
$(INCDIR)lsptypes.h $(INCDIR)emlglob.h $(INCDIR)adr68k.h $(INCDIR)bbtmacro.h \
$(INCDIR)lsptypes.h $(INCDIR)emlglob.h $(INCDIR)adr68k.h $(INCDIR)bitblt.h \
$(INCDIR)display.h $(INCDIR)drawdefs.h $(INCDIR)bbtsubdefs.h \
$(INCDIR)initdspdefs.h
$(CC) $(RFLAGS) $(SRCDIR)draw.c -o $(OBJECTDIR)draw.o
@@ -423,7 +442,7 @@ $(OBJECTDIR)fp.o: $(SRCDIR)fp.c $(REQUIRED-INCS) \
$(OBJECTDIR)intcall.o: $(SRCDIR)intcall.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)address.h \
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)lispmap.h $(INCDIR)stack.h \
$(INCDIR)retmacro.h $(INCDIR)emlglob.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h \
$(INCDIR)return.h $(INCDIR)emlglob.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h \
$(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)initatms.h $(INCDIR)cell.h \
$(INCDIR)tosfns.h $(INCDIR)intcalldefs.h $(INCDIR)commondefs.h \
$(INCDIR)llstkdefs.h $(INCDIR)returndefs.h
@@ -450,7 +469,7 @@ $(OBJECTDIR)ubf3.o: $(SRCDIR)ubf3.c $(REQUIRED-INCS) \
$(OBJECTDIR)uutils.o: $(SRCDIR)uutils.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)adr68k.h \
$(INCDIR)lsptypes.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h \
$(INCDIR)miscstat.h $(INCDIR)osmsgprint.h $(INCDIR)keyboard.h $(INCDIR)uutilsdefs.h \
$(INCDIR)miscstat.h $(INCDIR)osmsg.h $(INCDIR)keyboard.h $(INCDIR)uutilsdefs.h \
$(INCDIR)osmsgdefs.h $(INCDIR)uraiddefs.h
$(CC) $(RFLAGS) $(SRCDIR)uutils.c -o $(OBJECTDIR)uutils.o
@@ -474,26 +493,12 @@ $(OBJECTDIR)mouseif.o: $(SRCDIR)mouseif.c $(REQUIRED-INCS) $(INCDIR)lispemul.h \
$(INCDIR)dbprint.h $(INCDIR)devif.h
$(CC) $(RFLAGS) $(SRCDIR)mouseif.c -o $(OBJECTDIR)mouseif.o
$(OBJECTDIR)ether_common.o: $(SRCDIR)ether_common.c $(REQUIRED-INCS) \
$(OBJECTDIR)ether.o: $(SRCDIR)ether.c $(REQUIRED-INCS) \
$(INCDIR)commondefs.h $(INCDIR)lispemul.h \
$(INCDIR)lispmap.h $(INCDIR)emlglob.h $(INCDIR)lsptypes.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)dbprint.h $(INCDIR)etherdefs.h
$(CC) $(RFLAGS) $(SRCDIR)ether_common.c -o $(OBJECTDIR)ether_common.o
$(OBJECTDIR)ether_sunos.o: $(SRCDIR)ether_sunos.c $(REQUIRED-INCS) \
$(INCDIR)commondefs.h $(INCDIR)lispemul.h \
$(INCDIR)lispmap.h $(INCDIR)emlglob.h $(INCDIR)lsptypes.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)dbprint.h $(INCDIR)etherdefs.h
$(CC) $(RFLAGS) $(SRCDIR)ether_sunos.c -o $(OBJECTDIR)ether_sunos.o
$(OBJECTDIR)ether_nethub.o: $(SRCDIR)ether_nethub.c $(REQUIRED-INCS) \
$(INCDIR)commondefs.h $(INCDIR)lispemul.h \
$(INCDIR)lispmap.h $(INCDIR)emlglob.h $(INCDIR)lsptypes.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)dbprint.h $(INCDIR)etherdefs.h
$(CC) $(RFLAGS) $(SRCDIR)ether_nethub.c -o $(OBJECTDIR)ether_nethub.o
$(INCDIR)ether.h $(INCDIR)dbprint.h $(INCDIR)etherdefs.h
$(CC) $(RFLAGS) $(SRCDIR)ether.c -o $(OBJECTDIR)ether.o
$(OBJECTDIR)findkey.o: $(SRCDIR)findkey.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
@@ -505,7 +510,7 @@ $(OBJECTDIR)dsk.o: $(SRCDIR)dsk.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h \
$(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)arith.h $(INCDIR)stream.h \
$(INCDIR)timeout.h $(INCDIR)locfile.h $(INCDIR)lispver2.h \
$(INCDIR)timeout.h $(INCDIR)locfile.h $(INCDIR)lispver2.h $(INCDIR)osmsg.h \
$(INCDIR)dbprint.h $(INCDIR)dskdefs.h $(INCDIR)byteswapdefs.h \
$(INCDIR)car-cdrdefs.h $(INCDIR)cell.h $(INCDIR)commondefs.h \
$(INCDIR)ufsdefs.h
@@ -632,7 +637,7 @@ $(OBJECTDIR)hardrtn.o: $(SRCDIR)hardrtn.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
$(INCDIR)lsptypes.h $(INCDIR)adr68k.h $(INCDIR)address.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)emlglob.h \
$(INCDIR)cell.h $(INCDIR)stack.h $(INCDIR)retmacro.h $(INCDIR)hardrtndefs.h \
$(INCDIR)cell.h $(INCDIR)stack.h $(INCDIR)return.h $(INCDIR)hardrtndefs.h \
$(INCDIR)commondefs.h $(INCDIR)llstkdefs.h
$(CC) $(RFLAGS) $(SRCDIR)hardrtn.c -o $(OBJECTDIR)hardrtn.o
@@ -640,7 +645,7 @@ $(OBJECTDIR)inet.o: $(SRCDIR)inet.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
$(INCDIR)lsptypes.h $(INCDIR)arith.h $(INCDIR)emlglob.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)dbprint.h $(INCDIR)locfile.h $(INCDIR)lispver2.h \
$(INCDIR)ether.h $(INCDIR)dbprint.h $(INCDIR)locfile.h $(INCDIR)lispver2.h \
$(INCDIR)inetdefs.h $(INCDIR)byteswapdefs.h $(INCDIR)commondefs.h \
$(INCDIR)mkcelldefs.h
$(CC) $(RFLAGS) $(SRCDIR)inet.c -o $(OBJECTDIR)inet.o
@@ -649,7 +654,7 @@ $(OBJECTDIR)initdsp.o: $(SRCDIR)initdsp.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
$(INCDIR)lsptypes.h $(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)emlglob.h \
$(INCDIR)display.h $(INCDIR)devconf.h $(INCDIR)bb.h $(INCDIR)bbtmacro.h \
$(INCDIR)display.h $(INCDIR)devconf.h $(INCDIR)bb.h $(INCDIR)bitblt.h \
$(INCDIR)pilotbbt.h $(INCDIR)dbprint.h $(INCDIR)initdspdefs.h \
$(INCDIR)byteswapdefs.h $(INCDIR)xcursordefs.h $(INCDIR)devif.h
$(CC) $(RFLAGS) $(SRCDIR)initdsp.c -o $(OBJECTDIR)initdsp.o
@@ -663,7 +668,7 @@ $(OBJECTDIR)initkbd.o: $(SRCDIR)initkbd.c $(REQUIRED-INCS) \
$(CC) $(RFLAGS) $(SRCDIR)initkbd.c -o $(OBJECTDIR)initkbd.o
$(OBJECTDIR)initsout.o: $(SRCDIR)initsout.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h \
$(INCDIR)hdw_conf.h $(INCDIR)lispemul.h \
$(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h \
$(INCDIR)lsptypes.h $(INCDIR)lispmap.h $(INCDIR)adr68k.h $(INCDIR)cell.h \
$(INCDIR)devconf.h $(INCDIR)dbprint.h $(INCDIR)lldsp.h $(INCDIR)gcdata.h \
@@ -682,7 +687,7 @@ $(OBJECTDIR)keyevent.o: $(SRCDIR)keyevent.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)address.h $(INCDIR)stack.h $(INCDIR)keyboard.h $(INCDIR)display.h \
$(INCDIR)lsptypes.h $(INCDIR)bb.h $(INCDIR)bbtmacro.h $(INCDIR)pilotbbt.h \
$(INCDIR)lsptypes.h $(INCDIR)bb.h $(INCDIR)bitblt.h $(INCDIR)pilotbbt.h \
$(INCDIR)keyeventdefs.h $(INCDIR)osmsgdefs.h $(INCDIR)xwinmandefs.h \
$(INCDIR)devif.h $(INCDIR)dbprint.h
$(CC) $(RFLAGS) $(SRCDIR)keyevent.c -o $(OBJECTDIR)keyevent.o
@@ -698,7 +703,7 @@ $(OBJECTDIR)llstk.o: $(SRCDIR)llstk.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
$(INCDIR)adr68k.h $(INCDIR)address.h $(INCDIR)lsptypes.h $(INCDIR)initatms.h \
$(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h \
$(INCDIR)emlglob.h $(INCDIR)cell.h $(INCDIR)stack.h $(INCDIR)retmacro.h \
$(INCDIR)emlglob.h $(INCDIR)cell.h $(INCDIR)stack.h $(INCDIR)return.h \
$(INCDIR)llstkdefs.h $(INCDIR)commondefs.h $(INCDIR)dbgtooldefs.h \
$(INCDIR)testtooldefs.h $(INCDIR)kprintdefs.h $(INCDIR)storagedefs.h
$(CC) $(RFLAGS) $(SRCDIR)llstk.c -o $(OBJECTDIR)llstk.o
@@ -758,7 +763,7 @@ $(OBJECTDIR)osmsg.o: $(SRCDIR)osmsg.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)arith.h $(INCDIR)stream.h \
$(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h \
$(INCDIR)timeout.h $(INCDIR)locfile.h $(INCDIR)lispver2.h $(INCDIR)osmsgprint.h \
$(INCDIR)timeout.h $(INCDIR)locfile.h $(INCDIR)lispver2.h $(INCDIR)osmsg.h \
$(INCDIR)dbprint.h $(INCDIR)commondefs.h $(INCDIR)osmsgdefs.h
$(CC) $(RFLAGS) $(SRCDIR)osmsg.c -o $(OBJECTDIR)osmsg.o
@@ -766,7 +771,7 @@ $(OBJECTDIR)return.o: $(SRCDIR)return.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)address.h \
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)lispmap.h $(INCDIR)stack.h \
$(INCDIR)emlglob.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h \
$(INCDIR)miscstat.h $(INCDIR)initatms.h $(INCDIR)cell.h $(INCDIR)retmacro.h \
$(INCDIR)miscstat.h $(INCDIR)initatms.h $(INCDIR)cell.h $(INCDIR)return.h \
$(INCDIR)returndefs.h $(INCDIR)commondefs.h
$(CC) $(RFLAGS) $(SRCDIR)return.c -o $(OBJECTDIR)return.o
@@ -789,7 +794,7 @@ $(OBJECTDIR)shift.o: $(SRCDIR)shift.c $(REQUIRED-INCS) \
$(CC) $(RFLAGS) $(SRCDIR)shift.c -o $(OBJECTDIR)shift.o
$(OBJECTDIR)storage.o: $(SRCDIR)storage.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h \
$(INCDIR)hdw_conf.h $(INCDIR)lispemul.h \
$(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)lispmap.h $(INCDIR)stack.h \
$(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h \
$(INCDIR)cell.h $(INCDIR)lsptypes.h $(INCDIR)gcdata.h $(INCDIR)storagedefs.h \
@@ -808,7 +813,7 @@ $(OBJECTDIR)subr.o: $(SRCDIR)subr.c $(REQUIRED-INCS) \
$(INCDIR)gcrdefs.h $(INCDIR)inetdefs.h $(INCDIR)kbdsubrsdefs.h \
$(INCDIR)mkcelldefs.h $(INCDIR)osmsgdefs.h $(INCDIR)rpcdefs.h \
$(INCDIR)storagedefs.h $(INCDIR)timerdefs.h $(INCDIR)ufsdefs.h \
$(INCDIR)unixcommdefs.h $(INCDIR)uraidextdefs.h $(INCDIR)uutilsdefs.h $(INCDIR)vmemsavedefs.h
$(INCDIR)unixcommdefs.h $(INCDIR)uutilsdefs.h $(INCDIR)vmemsavedefs.h
$(CC) $(RFLAGS) $(SRCDIR)subr.c -o $(OBJECTDIR)subr.o
$(OBJECTDIR)miscn.o: $(SRCDIR)miscn.c $(REQUIRED-INCS) \
@@ -828,7 +833,7 @@ $(OBJECTDIR)subr0374.o: $(SRCDIR)subr0374.c $(REQUIRED-INCS) \
$(CC) $(RFLAGS) $(SRCDIR)subr0374.c -o $(OBJECTDIR)subr0374.o
$(OBJECTDIR)perrno.o: $(SRCDIR)perrno.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)osmsgprint.h \
$(INCDIR)lispemul.h $(INCDIR)osmsg.h \
$(INCDIR)perrnodefs.h $(INCDIR)osmsgdefs.h
$(CC) $(RFLAGS) $(SRCDIR)perrno.c -o $(OBJECTDIR)perrno.o
@@ -842,8 +847,8 @@ $(OBJECTDIR)timer.o: $(SRCDIR)timer.c $(REQUIRED-INCS) \
$(OBJECTDIR)tty.o: $(SRCDIR)tty.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)lspglob.h \
$(INCDIR)commondefs.h $(INCDIR)ttydefs.h
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h \
$(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)commondefs.h $(INCDIR)tty.h
$(CC) $(RFLAGS) $(SRCDIR)tty.c -o $(OBJECTDIR)tty.o
$(OBJECTDIR)typeof.o: $(SRCDIR)typeof.c $(REQUIRED-INCS) \
@@ -876,12 +881,12 @@ $(OBJECTDIR)uraid.o: $(SRCDIR)uraid.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lispmap.h \
$(INCDIR)adr68k.h $(INCDIR)lsptypes.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h \
$(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)emlglob.h $(INCDIR)cell.h \
$(INCDIR)debug.h $(INCDIR)devconf.h $(INCDIR)display.h $(INCDIR)bbtmacro.h \
$(INCDIR)debug.h $(INCDIR)devconf.h $(INCDIR)display.h $(INCDIR)bitblt.h \
$(INCDIR)uraiddefs.h $(INCDIR)dbgtooldefs.h $(INCDIR)stack.h \
$(INCDIR)gcarraydefs.h $(INCDIR)initdspdefs.h $(INCDIR)initkbddefs.h \
$(INCDIR)kprintdefs.h $(INCDIR)llstkdefs.h $(INCDIR)mkatomdefs.h \
$(INCDIR)returndefs.h $(INCDIR)testtooldefs.h $(INCDIR)timerdefs.h \
$(INCDIR)uraidextdefs.h $(INCDIR)vmemsavedefs.h $(INCDIR)devif.h
$(INCDIR)vmemsavedefs.h $(INCDIR)devif.h
$(CC) $(RFLAGS) $(SRCDIR)uraid.c -o $(OBJECTDIR)uraid.o
$(OBJECTDIR)rpc.o: $(SRCDIR)rpc.c $(REQUIRED-INCS) \
@@ -906,15 +911,38 @@ $(OBJECTDIR)vars3.o: $(SRCDIR)vars3.c $(REQUIRED-INCS) \
$(CC) $(RFLAGS) $(SRCDIR)vars3.c -o $(OBJECTDIR)vars3.o
$(OBJECTDIR)vmemsave.o: $(SRCDIR)vmemsave.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h \
$(INCDIR)hdw_conf.h $(INCDIR)lispemul.h \
$(INCDIR)lispmap.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h \
$(INCDIR)miscstat.h $(INCDIR)timeout.h $(INCDIR)adr68k.h \
$(INCDIR)miscstat.h $(INCDIR)vmemsave.h $(INCDIR)timeout.h $(INCDIR)adr68k.h \
$(INCDIR)lsptypes.h $(INCDIR)locfile.h $(INCDIR)lispver2.h $(INCDIR)dbprint.h \
$(INCDIR)devif.h $(INCDIR)vmemsavedefs.h $(INCDIR)byteswapdefs.h $(INCDIR)commondefs.h \
$(INCDIR)dskdefs.h $(INCDIR)initkbddefs.h $(INCDIR)perrnodefs.h \
$(INCDIR)ufsdefs.h
$(CC) $(RFLAGS) $(SRCDIR)vmemsave.c -o $(OBJECTDIR)vmemsave.o
$(OBJECTDIR)array2.o: $(SRCDIR)array2.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)lispmap.h $(INCDIR)lsptypes.h $(INCDIR)emlglob.h $(INCDIR)gcdata.h \
$(INCDIR)mkcelldefs.h $(INCDIR)arith.h $(INCDIR)my.h $(INCDIR)array2defs.h \
$(INCDIR)gchtfinddefs.h
$(CC) $(RFLAGS) $(SRCDIR)array2.c -o $(OBJECTDIR)array2.o
$(OBJECTDIR)array4.o: $(SRCDIR)array4.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)lispmap.h $(INCDIR)lsptypes.h $(INCDIR)mkcelldefs.h $(INCDIR)arith.h \
$(INCDIR)gcdata.h $(INCDIR)my.h $(INCDIR)array4defs.h $(INCDIR)gchtfinddefs.h
$(CC) $(RFLAGS) $(SRCDIR)array4.c -o $(OBJECTDIR)array4.o
$(OBJECTDIR)array6.o: $(SRCDIR)array6.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)adr68k.h \
$(INCDIR)lispmap.h $(INCDIR)lsptypes.h $(INCDIR)emlglob.h $(INCDIR)gcdata.h \
$(INCDIR)mkcelldefs.h $(INCDIR)arith.h $(INCDIR)my.h $(INCDIR)array6defs.h \
$(INCDIR)gchtfinddefs.h
$(CC) $(RFLAGS) $(SRCDIR)array6.c -o $(OBJECTDIR)array6.o
$(OBJECTDIR)sxhash.o: $(SRCDIR)sxhash.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)lspglob.h \
$(INCDIR)ifpage.h $(INCDIR)iopage.h $(INCDIR)miscstat.h $(INCDIR)lispmap.h \
@@ -929,13 +957,15 @@ $(OBJECTDIR)usrsubr.o: $(SRCDIR)usrsubr.c $(REQUIRED-INCS) \
$(OBJECTDIR)xc.o: $(SRCDIR)xc.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)emlglob.h \
$(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)stack.h $(INCDIR)retmacro.h \
$(INCDIR)address.h $(INCDIR)adr68k.h $(INCDIR)stack.h $(INCDIR)return.h \
$(INCDIR)dbprint.h $(INCDIR)lspglob.h $(INCDIR)ifpage.h $(INCDIR)iopage.h \
$(INCDIR)miscstat.h $(INCDIR)lsptypes.h $(INCDIR)lispmap.h $(INCDIR)cell.h \
$(INCDIR)initatms.h $(INCDIR)gcdata.h $(INCDIR)arith.h $(INCDIR)stream.h \
$(INCDIR)tos1defs.h $(INCDIR)tosret.h $(INCDIR)tosfns.h $(INCDIR)inlineC.h \
$(INCDIR)xcdefs.h $(INCDIR)arithopsdefs.h $(INCDIR)arrayopsdefs.h \
$(INCDIR)bitbltdefs.h $(INCDIR)bltdefs.h \
$(INCDIR)xcdefs.h $(INCDIR)arith2defs.h $(INCDIR)arith3defs.h \
$(INCDIR)arith4defs.h $(INCDIR)arraydefs.h $(INCDIR)array2defs.h \
$(INCDIR)array3defs.h $(INCDIR)array4defs.h $(INCDIR)array5defs.h \
$(INCDIR)array6defs.h $(INCDIR)bitbltdefs.h $(INCDIR)bltdefs.h \
$(INCDIR)byteswapdefs.h $(INCDIR)car-cdrdefs.h $(INCDIR)commondefs.h \
$(INCDIR)conspagedefs.h $(INCDIR)drawdefs.h $(INCDIR)eqfdefs.h \
$(INCDIR)findkeydefs.h $(INCDIR)fpdefs.h $(INCDIR)fvardefs.h \
@@ -992,13 +1022,10 @@ $(OBJECTDIR)xcursor.o: $(SRCDIR)xcursor.c $(REQUIRED-INCS) \
$(OBJECTDIR)xwinman.o: $(SRCDIR)xwinman.c $(REQUIRED-INCS) \
$(INCDIR)lispemul.h $(INCDIR)miscstat.h $(INCDIR)devif.h $(INCDIR)xdefs.h \
$(INCDIR)xwinmandefs.h $(INCDIR)keyeventdefs.h \
$(INCDIR)xscroll.h $(INCDIR)xwinmandefs.h $(INCDIR)keyeventdefs.h \
$(INCDIR)xlspwindefs.h $(INCDIR)xscrolldefs.h
$(CC) $(RFLAGS) $(SRCDIR)xwinman.c -o $(OBJECTDIR)xwinman.o
$(OBJECTDIR)sdl.o: $(SRCDIR)sdl.c $(REQUIRED-INCS)
$(CC) $(RFLAGS) $(SRCDIR)sdl.c -o $(OBJECTDIR)sdl.o
$(OBJECTDIR)foreign.o: $(SRCDIR)foreign.c $(REQUIRED-INCS) \
$(INCDIR)/foreigndefs.h
$(CC) $(RFLAGS) $(SRCDIR)foreign.c -o $(OBJECTDIR)foreign.o
@@ -1058,7 +1085,7 @@ $(OBJECTDIR)lpy.tab.o: $(SRCDIR)lpy.tab.c $(REQUIRED-INCS) $(INCDIR)lpdefs.h $(I
# .c.s. should always have -O
################################################################################
clean cleanup:
cleanup:
$(RM) -r $(OBJECTDIR) $(OSARCHDIR)
.c.o:

View File

@@ -1,25 +0,0 @@
# Options for Windows System for Linux v1, ARM64 and SDL
CC = gcc $(GCC_CFLAGS)
#CC = clang $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)sdl.o
#
# For SDL version 2
# -DSDL=2 in SDLFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in SDLFLAGS and -lSDL3 in LDFLAGS
#
SDLFLAGS = -DSDL=2
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__
LDFLAGS = -lSDL2 -lm
LDELDFLAGS =
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl

View File

@@ -1,27 +0,0 @@
# Options for Windows System for Linux v1, aarch64 and X-Window
CC = gcc $(GCC_CFLAGS)
#CC = clang $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldex

View File

@@ -1,25 +0,0 @@
# Options for Windows System for Linux v1, Intel x86_64 and SDL
CC = gcc -m64 $(GCC_CFLAGS)
# CC = clang -m64 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)sdl.o
#
# For SDL version 2
# -DSDL=2 in XFLAGS and -lSDL2 in LDFLAGS
# For SDL version 3
# -DSDL=3 in XFLAGS and -lSDL3 in LDFLAGS
#
XFLAGS = -DSDL=2
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__
LDFLAGS = -lm -lSDL2
LDELDFLAGS =
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldesdl

View File

@@ -1,28 +0,0 @@
# Options for Windows System for Linux v1, Intel x86_64 and X-Window
CC = gcc -m64 $(GCC_CFLAGS)
# CC = clang -m64 $(CLANG_CFLAGS)
XFILES = $(OBJECTDIR)xmkicon.o \
$(OBJECTDIR)xbbt.o \
$(OBJECTDIR)dspif.o \
$(OBJECTDIR)xinit.o \
$(OBJECTDIR)xscroll.o \
$(OBJECTDIR)xcursor.o \
$(OBJECTDIR)xlspwin.o \
$(OBJECTDIR)xrdopt.o \
$(OBJECTDIR)xwinman.o
XFLAGS = -DXWINDOW
# OPTFLAGS is normally -O2.
OPTFLAGS = -O2 -g3
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -D__wsl1__
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
OBJECTDIR = ../$(RELEASENAME)/
default : ../$(OSARCHNAME)/lde ../$(OSARCHNAME)/ldex

View File

@@ -54,10 +54,9 @@ if test $# -gt 0
shift
fi
: ${RELEASE=351}
architecture=`machinetype`
osversion=`osversion`
echo "making release ${RELEASE} for ${osversion} on ${architecture}."
echo "making so far for ${osversion} on ${architecture}."
case "$display" in
init) display=single
releasename=init-${osversion}.${architecture}
@@ -72,19 +71,6 @@ case "$display" in
x) releasename=${osversion}.${architecture}-${display}
ldename=ldex
;;
sdl*) releasename=${osversion}.${architecture}-${display}
ldename=ldesdl
;;
wasm) osversion=emscripten
architecture=wasm
releasename=${osversion}.${architecture}-${display}
ldename=ldesdl.js
;;
wasm_nl) osversion=emscripten
architecture=wasm_nl
releasename=${osversion}.${architecture}-${display}
ldename=ldesdl.js
;;
*) echo "display-option: $display is not supported."
exit
;;
@@ -107,12 +93,12 @@ if [ ! -d ../${releasename} ]; then
mkdir ../${releasename}
fi
echo start making lde for ${releasename}
echo start making lde for ${releasename}.
# then finally do the make, including the right stuff
# With makefile-tail merged, this should only take ONE make command....
make RELEASENAME=${releasename} RELEASE=${RELEASE} LDENAME=${ldename} \
make RELEASENAME=${releasename} LDENAME=${ldename} \
OSARCHNAME=${osversion}.${architecture} \
-f makefile-header -f makefile-${releasename} \
-f makefile-tail $*

View File

@@ -1,22 +0,0 @@
#!/bin/sh
if command -v "git" >/dev/null 2>&1; then
MAIKO_REV="$(git status --porcelain)"
if [ $? -eq 0 ]; then
if [ ! -z "$(git status --porcelain)" ]; then
MAIKO_REV="$(git rev-parse --short HEAD)-dirty"
else
MAIKO_REV="$(git rev-parse --short HEAD)"
fi
else
MAIKO_REV="none"
fi
else
MAIKO_REV = "none"
fi
cat <<EOF
#include <time.h>
extern const time_t MDate;
const time_t MDate = $(date +%s);
extern const char *MaikoGitVersion;
const char *MaikoGitVersion = "maiko git version: $MAIKO_REV";
EOF

View File

@@ -1,21 +1,15 @@
#!/bin/sh
SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
os=${LDEARCH:-`$SCRIPTPATH/config.guess`}
os=`./config.guess`
case "$os" in
m68k-*-amigaos) echo amigaos ;;
sparc-sun-sunos*) echo sunos4 ;;
sparc-sun-solaris1*) echo sunos4 ;;
*-*-solaris2*) echo sunos5 ;;
alpha-dec-osf1) echo osf1 ;;
*-apple-darwin*) echo darwin ;;
*-*-linux*)
if [ -n "${WSL_DISTRO_NAME}" ] && [ -z "${WSL_INTEROP}" ];
then echo wsl1; else echo linux; fi ;;
*-*-linux*) echo linux ;;
*-*-openbsd*) echo openbsd ;;
*-*-freebsd*) echo freebsd ;;
*-*-cygwin*) echo cygwin ;;
*-*-haiku*) echo haiku ;;
*-microsoft-wsl1) echo wsl1 ;;
esac
### Don't leave the variable set.
unset os

View File

@@ -1,44 +0,0 @@
#!/bin/sh
# Make and release maiko for one os / arch
# Hopefully to be replaced by GitHub Action
if [ ! -x ../../maiko/bin/machinetype ] ; then
echo ERROR: Must be run from maiko/bin
exit 1
fi
tag=$1
if [ -z "$tag" ] ; then
tag=maiko-`date +%y%m%d`
fi
export PATH=.:"$PATH"
osarch=`osversion`.`machinetype`
./makeright x
./makeright init
cd ../..
mkdir -p maiko/build
echo making $tag-$osarch.tgz
tar cfz maiko/build/$tag-$osarch.tgz \
maiko/bin/osversion \
maiko/bin/machinetype \
maiko/bin/config.guess \
maiko/bin/config.sub \
maiko/$osarch/lde*
if ! command -v gh >/dev/null ; then
echo
echo The GitHub Command Line Interface, gh
echo does not seem to be installed.
echo Please upload maiko/build/$tag-$osarch.tgz
echo to https://github.com/Interlisp/maiko/releases $tag
exit 0
fi
echo uploading
cd maiko
gh release upload --clobber $tag build/$tag-$osarch.tgz

View File

@@ -1,36 +0,0 @@
#!/bin/sh
# This script is just a placeholder until we get GitHub
# Actions to do releases
# Start Maiko release from maiko/bin
# startrelease [tag]
# tag defaults to maiko-YYMMDD
tag=$1
if [ -z "$tag" ] ; then
tag=maiko-`date +%y%m%d`
fi
if ! command -v gh >/dev/null ; then
echo "It seems like 'gh', the GitHub Command Line Interface is"
echo "not installed. You can start a release using the"
echo "web interface at"
echo "https://github.com/Interlisp/maiko/releases/new"
echo "Make up a tag (or use $tag)"
echo "and run './release-one tag' (or manually upload if"
echo "no 'gh' is installed) on every os/machine you want"
echo "this release to work for"
exit 0
fi
# Now for the only thing this script is actually doing
gh release create $tag -p -t $tag -n "See release notes in medley repo"
echo "Now run "
echo ./release-one $tag
echo "in maiko/bin on every os/machine you want this release"
echo "to work for. When done, edit the release in your"
echo "browser and uncheck the prerelease box "

View File

@@ -1,14 +0,0 @@
# CDR CODING in cons cells
The cdr-code is a 4-bit field of a 32-bit cons cell.
It is treated as an on-page indicator bit and a 3-bit scaled offset.
Certain combinations are treated specially.
| on-page | offset | interpretation |
|---------|---------|---------------------------------------------------------------------------|
| 1 | 0 | CDR is NIL |
| 1 | 1 - 7 | CDR is at 2*offset (counted in 32-bit cells) on same page |
| 0 | 0 | CDR is indirect, CDR(car) |
| 0 | 1 - 7 | CDR is not a cons cell but is in the car of cell at 2*offset on same page |

View File

@@ -1,86 +0,0 @@
# Using Dodo-networking with Maiko
The [Dodo XNS services](https://github.com/devhawala/dodo) provide an emulation for a usable
subset of the Xerox 8000 Network Services from the 1980-ies. Dodo uses its own virtual
network infrastructure - the Dodo *Nethub* - for avoiding the problems involved with
implementing the transmission of XNS protocol packets over (real or virtual) network
adapters of the diverse contemporary operating systems.
The Dodo Nethub provides a simple virtual network, a kind of *XNS-over-TCP/IP*,
where clients and servers connect with TCP/IP to the central Nethub program, which relays all
packets ingoing from one connection to the other connections.
The following sections describe the support for Dodo-networking added to
Maiko. The Dodo Nethub support was implemented and tested with Linux on the x86_64
architecture. However as only standard system calls for TCP/IP were used, adapting to other
platforms if necessary should be possible.
This extension allows Medley 3.51 running in a Maiko VM to use the XNS services
*Clearinghouse*, *Filing* and *Printing* provided by Dodo (using the *Mail* service may
also be possible, but this was not verified so far)
## Building Maiko with Dodo-networking support
As long as Dodo-networking support is not merged into the `master`-branch
of the primary Maiko repository, this networking option is only available in this
clone of the original Maiko repository in the branch `dodo-nethub-support`.
(however: this branch should already be checked out if this file is present)
The Dodo-networking support is enabled by defining `MAIKO_ENABLE_NETHUB`
when compiling Maiko. This can be done in the Makefile for the relevant platform
(file `bin/makefile-`*platform*) for example in the line where the compiler-command
variable is defined.
This is already done in the Makefile for the *Linux-x86_64-X* platform (file
`bin/makefile-linux.x86_64-x`), where the compiler-command defined as follows:
```
CC = clang -m64 $(CLANG_CFLAGS) -DMAIKO_ENABLE_NETHUB
```
After a complete (re-)build, this Maiko VM optionally allows to connect to a Dodo Nethub
and through this to use Dodo XNS services.
## Running Maiko with Dodo-networking
With Dodo-networking support compiled in, Maiko (i.e. the program `ldex`) accepts the
following additional commandline options:
- `-nh-host` *dodo-host*
the name or IP-address of the host where the Dodo Nethub program runs; no connection to
Dodo services will be opened if this option is not specified
Default: (*none*)
- `-nh-port` *port-number*
the port which the Dodo Nethub is listening to at *dodo-host*
Default: `3333`
- `-nh-mac` *machine-id*
the machine-id (aka. MAC-address) that this Maiko VM instance will use in the Dodo network;
the machine-id must be given as 48 bit hexadecimal value with a dash as byte-separator, i.e.
in the format *XX-XX-XX-XX-XX-XX* (with *XX* the hexcode for a single byte)
Default: `CA-FF-EE-12-34-56`
- `-nh-loglevel` *log-level*
the detail level of logging to `stdout`, one of:
`0`: log only main events (connect, disconnect or the like)
`1`: log network events each with a single line
`2`: detailled log of network events
Default: `0`
So by default Maiko will not connect to a Dodo nethub and behave like a "standard" version
without networking support.
To use Dodo XNS services, the option `-nh-host` must be given to specify the location
of the Dodo nethub. In the simplest (and probably most usual) case where Dodo is run on the
same machine as Maiko/Medley, the value for option `-nh-host` will be *localhost*, so
adding the option `-nh-host localhost` when starting the Medley Lisp system will allow
to use the XNS services of a Dodo system running locally.
Specifying the *machine-id* is optional unless more than one Maiko/Medley instances are to use
Dodo XNS services concurrently: in this case, each Maiko VM *must* use a *unique* machine-id,
so at most one Maiko VM may omit the `-nh-mac` option.
However, each machine-id used by the Maiko VMs should have an entry in the `machine.cfg`
file of the Dodo installation, cloning or copying the low-level SPP-configuration of the
`maiko-Lisp-One` example entry in the `machine.cfg` of the Dodo `dist.zip`
distribution.

View File

@@ -24,6 +24,7 @@
#define VERTICAL 0
#define HORIZONTAL 1
#define PERCENT_OF_SCREEN 95
#define SCROLL_PITCH 30
typedef struct _MyEvent
@@ -76,7 +77,7 @@ typedef struct
, White_Pixel ); \
XLOCK; \
XFlush( display ); \
XUNLOCK( display ); \
XUNLOCK; \
(child_win)->parent = parent_win; \
if( (child_win)->after_create ) \
((child_win)->after_create)(parent_win,child_win);\
@@ -95,7 +96,7 @@ typedef struct
, (window)->width \
, (window)->height ); \
XFlush( display ); \
XUNLOCK( display ); \
XUNLOCK; \
if( (window)->after_resize ) \
((window)->after_resize)( window ); \
} \
@@ -105,7 +106,7 @@ typedef struct
XLOCK; \
XDefineCursor( display, (window)->win, *(mycursor) ); \
XFlush( display ); \
XUNLOCK( display ); \
XUNLOCK; \
(window)->cursor = mycursor; \
}

View File

@@ -61,7 +61,7 @@
* triples in this array are interpreted in initkbd.c as
* reusable, (Lisp keyboard) code, (X keysym) symbol
*/
static const int generic_X_keymap[] = {
int generic_X_keymap[] = {
0, 107, 0x1000ff10, /* Un-named KEYSYM used on Sun kbd for F11 */
0, 108, 0x1000ff11, /* Un-named KEYSYM used on Sun kbd for F12 */
0, 107, XK_F11,
@@ -221,17 +221,17 @@ static const int generic_X_keymap[] = {
/* keypad digit assignments above, try assigning */
/* the new arrow-key key#s assigned for RS/6000 */
/* Failing that, try assigning the keypad #s. */
1, 84, XK_Left,
0, 129, XK_Left,
0, 84, XK_Left,
1, 82, XK_Up,
0, 130, XK_Up,
0, 82, XK_Up,
1, 69, XK_Down,
0, 131, XK_Down,
0, 69, XK_Down,
1, 87, XK_Right,
0, 132, XK_Right,
0, 87, XK_Right,
0, 93, XK_Multi_key, /* Expand, Sun type-4 */
0, 93, XK_Alt_R, /* Expand, RH Alt key */

View File

@@ -29,13 +29,13 @@
/**********************************************************************/
/* NOTE: These MACRO should be used for the pointers in LISP SYSOUT */
#define LLSH(datum, n) ((datum) << (n))
#define LRSH(datum, n) ((datum) >> (n))
#define LLSH(datum , n) ((datum )<< n)
#define LRSH(datum , n) ((datum) >> n)
#define HILOC(ptr) (LRSH(((unsigned int)(ptr) & SEGMASK),16))
#define LOLOC(ptr) ((unsigned int)(ptr) & 0x0ffff)
#define VAG2(hi,lo) (LispPTR)(LLSH((hi),16) | (lo))
#define VAG2(hi,lo) (LLSH((hi),16) | (lo))
/* NOTE: argument off must be WORD offset */

View File

@@ -9,6 +9,8 @@
* Hiroshi Hayata
*/
/************************************************************************/
/* */
/* Copyright 1989, 1990 Venue, Fuji Xerox Co., Ltd, Xerox Corp. */
@@ -18,6 +20,8 @@
/* */
/************************************************************************/
/**********************************************************************/
/*
Func name : adr68k.h
@@ -28,65 +32,32 @@
*/
/**********************************************************************/
#include <stddef.h>
#include <stdio.h>
#include "lispemul.h"
#include "lspglob.h"
static inline LispPTR LAddrFromNative(void *NAddr)
{
if ((uintptr_t)NAddr & 1) {
printf("Misaligned pointer in LAddrFromNative %p\n", NAddr);
}
return (LispPTR)(((DLword *)NAddr) - Lisp_world);
}
static inline DLword *NativeAligned2FromLAddr(LispPTR LAddr)
{
return (Lisp_world + LAddr);
}
/* translate 68k ptr to Lisp DLword address */
#define LADDR_from_68k(ptr68k) ((LispPTR)(((UNSIGNED)(ptr68k) - (UNSIGNED)Lisp_world) >>1))
static inline LispPTR *NativeAligned4FromLAddr(LispPTR LAddr)
{
if (LAddr & 1) {
printf("Misaligned pointer in NativeAligned4FromLAddr 0x%x\n", LAddr);
}
return (void *)(Lisp_world + LAddr);
}
static inline LispPTR *NativeAligned4FromLPage(LispPTR LPage)
{
return (void *)(Lisp_world + (LPage << 8));
}
/* translate 68k ptr to Lisp Page number */
#define LPAGE_from_68k(ptr68k) (LADDR_from_68k(ptr68k) >> 8)
static inline DLword StackOffsetFromNative(void *SAddr)
{
/* Stack offsets are expressed as an offset in DLwords from the stack base */
ptrdiff_t hoffset = (DLword *)SAddr - Stackspace;
if (hoffset > 0xffff || hoffset < 0) {
printf("Stack offset is out of range: 0x%tx\n", hoffset);
}
return (DLword)hoffset;
}
static inline DLword *NativeAligned2FromStackOffset(DLword StackOffset)
{
return Stackspace + StackOffset;
}
/* Translate Lisp_address to 68K address */
/* Lisp_addr: word offset */
#define Addr68k_from_LADDR(Lisp_addr) (Lisp_world + (Lisp_addr))
static inline LispPTR *NativeAligned4FromStackOffset(DLword StackOffset)
{
if (StackOffset & 1) {
printf("Misaligned StackOffset in NativeAligned4FromStackOffset 0x%hx\n", StackOffset);
}
return (void *)(Stackspace + StackOffset);
}
static inline LispPTR LPageFromNative(void *NAddr)
{
if ((uintptr_t)NAddr & 1) {
printf("Misaligned pointer in LPageFromNative %p\n", NAddr);
}
return (LispPTR)((((DLword *)NAddr) - Lisp_world) >> 8);
}
/* translate LispPage to 68k address */
#define Addr68k_from_LPAGE(Lisp_page) (Addr68k_from_LADDR((Lisp_page << 8) ))
/* Stack Offset Macros */
#define StkOffset_from_68K(ptr68k)\
((LispPTR)(((UNSIGNED)(ptr68k) - (UNSIGNED)Stackspace) >>1))
#define Addr68k_from_StkOffset(stkoffset)\
(Stackspace + (stkoffset))
#endif /* ADR68K_H */

View File

@@ -1,6 +1,6 @@
#ifndef ALLOCMDSDEFS_H
#define ALLOCMDSDEFS_H 1
#include "lispemul.h" /* for LispPTR, DLword */
LispPTR initmdspage(LispPTR *base, DLword size, LispPTR prev);
LispPTR *alloc_mdspage(short int type);
LispPTR initmdspage(register LispPTR *base, register DLword size, register LispPTR prev);
LispPTR *alloc_mdspage(register short int type);
#endif

View File

@@ -9,86 +9,54 @@
/* */
/************************************************************************/
#include "adr68k.h" // for NativeAligned4FromLAddr, LAddrFromNative
#include "commondefs.h" // for error
#include "lispemul.h" // for SEGMASK, ERROR_EXIT
#include "lispmap.h" // for S_NEGATIVE, S_POSITIVE
#include "lsptypes.h" // for TYPE_FIXP, GetTypeNumber, TYPE_FLOATP
#include "mkcelldefs.h" // for createcell68k
#define MAX_SMALL 65535 /* == 0x0000FFFF */
#define MIN_SMALL (-65536) /* == 0xFFFF0000 */
#define MIN_SMALL -65536 /* == 0xFFFF0000 */
#define MAX_FIXP 2147483647 /* == 0x7FFFFFFF */
#define MIN_FIXP (-2147483648) /* == 0x80000000 */
#define MIN_FIXP -2147483648 /* == 0x80000000 */
#define SMALLP_ZERO ((LispPTR)S_POSITIVE)
#define SMALLP_MINUSONE ((LispPTR)(S_NEGATIVE | 0xFFFF))
/**
* extract an integer value from a smallp
*/
static inline int GetSmalldata(LispPTR x) {
if ((SEGMASK & (int)x) == S_POSITIVE) return (int)(x & 0xFFFF);
if ((SEGMASK & (int)x) == S_NEGATIVE) return (int)(x | 0xFFFF0000);
error("Not smallp address");
return (0);
}
#define GetSmalldata(x) \
(((SEGMASK & x) == S_POSITIVE) \
? (0xFFFF & x) \
: (((SEGMASK & x) == S_NEGATIVE) ? (0xFFFF0000 | x) : error("Not smallp address")))
/**
* construct a smallp from an integer value
*/
#define GetSmallp(x) \
((0xFFFF0000 & x) ? (((0xFFFF0000 & x) == 0xFFFF0000) ? (S_NEGATIVE | (0xFFFF & x)) \
: error("Not Smallp data")) \
: (S_POSITIVE | (0xFFFF & x)))
static inline LispPTR GetSmallp(long x) {
if (x >= 0) {
if (x <= MAX_SMALL) return (LispPTR)(S_POSITIVE | x);
} else {
if (x >= MIN_SMALL) return (LispPTR)(S_NEGATIVE | (x & 0xFFFF));
}
error("Not Smallp data");
return (S_POSITIVE | 0);
}
#define FIXP_VALUE(dest) *((int *)Addr68k_from_LADDR(dest))
/**
* construct a smallp from an unsigned value
*/
static inline LispPTR GetPosSmallp(unsigned long x) {
if (x <= MAX_SMALL) return (LispPTR)(S_POSITIVE | x);
error("Not Smallp data");
return (S_POSITIVE | 0);
}
#define FIXP_VALUE(dest) *((int *)NativeAligned4FromLAddr(dest))
#define FLOATP_VALUE(dest) *((float *)NativeAligned4FromLAddr(dest))
#define FLOATP_VALUE(dest) *((float *)Addr68k_from_LADDR(dest))
#define N_GETNUMBER(sour, dest, label) \
do { \
switch (SEGMASK & (sour)) { \
case S_POSITIVE: (dest) = (int)((sour) & 0xFFFF); break; \
case S_NEGATIVE: (dest) = (int)((sour) | 0xFFFF0000); break; \
dest = sour; /* access memory once */ \
switch (SEGMASK & dest) { \
case S_POSITIVE: dest = 0xFFFF & (dest); break; \
case S_NEGATIVE: dest = 0xFFFF0000 | (dest); break; \
default: \
/* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
if (GetTypeNumber(sour) != TYPE_FIXP) goto label; \
(dest) = FIXP_VALUE(sour); \
if (GetTypeNumber(dest) != TYPE_FIXP) goto label; \
dest = FIXP_VALUE(dest); \
} \
} while (0)
#define N_IGETNUMBER(sour, dest, label) \
do { \
switch (SEGMASK & (sour)) { \
case S_POSITIVE: (dest) = (int)((sour) & 0xFFFF); break; \
case S_NEGATIVE: (dest) = (int)((sour) | 0xFFFF0000); break; \
dest = sour; /* access memory once */ \
switch (SEGMASK & dest) { \
case S_POSITIVE: dest = 0xFFFF & dest; break; \
case S_NEGATIVE: dest = 0xFFFF0000 | dest; break; \
default: \
switch (GetTypeNumber(sour)) { \
case TYPE_FIXP: (dest) = FIXP_VALUE(sour); break; \
switch (GetTypeNumber(dest)) { \
case TYPE_FIXP: dest = FIXP_VALUE(dest); break; \
case TYPE_FLOATP: { \
float temp; \
temp = FLOATP_VALUE(sour); \
/* NOLINTNEXTLINE(bugprone-macro-parentheses) */ \
register float temp; \
temp = FLOATP_VALUE(dest); \
if ((temp > ((float)0x7fffffff)) || (temp < ((float)0x80000000))) goto label; \
(dest) = (int)temp; \
dest = (int)temp; \
} break; \
default: goto label; /* NOLINT(bugprone-macro-parentheses) */ \
default: goto label; \
} \
break; \
} \
@@ -96,33 +64,100 @@ static inline LispPTR GetPosSmallp(unsigned long x) {
#define ARITH_SWITCH(arg, result) \
do { \
switch ((arg) & (int)0xFFFF0000) { \
case 0: (result) = (S_POSITIVE | (int)(arg)); break; \
case (int)0xFFFF0000: (result) = (S_NEGATIVE | (0xFFFF & (arg))); break; \
switch ((int)arg & 0xFFFF0000) { \
case 0: result = (S_POSITIVE | (int)arg); break; \
case 0xFFFF0000: result = (S_NEGATIVE | (0xFFFF & (int)arg)); break; \
default: { \
int *fixpp; \
register LispPTR *wordp; \
/* arg is FIXP, call createcell */ \
fixpp = (int *)createcell68k(TYPE_FIXP); \
*fixpp = (int)(arg); \
(result) = LAddrFromNative(fixpp); \
wordp = (LispPTR *)createcell68k(TYPE_FIXP); \
*((int *)wordp) = (int)arg; \
result = (LADDR_from_68k(wordp)); \
break; \
} \
} \
} while (0)
/* *******
NEED to See if this is faster than the N_ARITH_SWITCH macro
if( (MIN_FIXP <= result) && (result <= MAX_FIXP) ){
if(0 <= result){
if(result <= MAX_SMALL)
return(S_POSITIVE | result);
else{
wordp = createcell68k(TYPE_FIXP);
*((unsigned int *)wordp) = result;
return(LADDR_from_68k(wordp));
}
}else{
if(MIN_SMALL <= result)
return(S_NEGATIVE | (0xFFFF & result));
else{
wordp = createcell68k(TYPE_FIXP);
*((unsigned int *)wordp) = result;
return(LADDR_from_68k(wordp));
}
}/
}
****** */
#define N_ARITH_SWITCH(arg) \
do { \
switch ((arg) & (int)0xFFFF0000) { \
case 0: return (LispPTR) (S_POSITIVE | (arg)); \
case (int)0xFFFF0000: return (LispPTR)(S_NEGATIVE | (0xFFFF & (arg))); \
switch (arg & 0xFFFF0000) { \
case 0: return (S_POSITIVE | arg); \
case 0xFFFF0000: return (S_NEGATIVE | (0xFFFF & arg)); \
default: { \
int *fixpp; \
register LispPTR *fixpp; \
/* arg is FIXP, call createcell */ \
fixpp = (int *)createcell68k(TYPE_FIXP); \
*fixpp = (int)(arg); \
return (LAddrFromNative(fixpp)); \
fixpp = (LispPTR *)createcell68k(TYPE_FIXP); \
*((int *)fixpp) = arg; \
return (LADDR_from_68k(fixpp)); \
} \
} \
} while (0)
#define N_IARITH_BODY_2(a, tos, op) \
do { \
register int arg1, arg2; \
\
N_IGETNUMBER(a, arg1, do_ufn); \
N_IGETNUMBER(tos, arg2, do_ufn); \
\
arg1 = arg1 op arg2; \
\
N_ARITH_SWITCH(arg1); \
\
do_ufn: \
ERROR_EXIT(tos); \
} while (0)
#define N_ARITH_BODY_1(a, n, op) \
do { \
register int arg1; \
\
N_GETNUMBER(a, arg1, do_ufn); \
\
arg1 = arg1 op n; \
\
N_ARITH_SWITCH(arg1); \
\
do_ufn: \
ERROR_EXIT(a); \
} while (0)
#define N_ARITH_BODY_1_UNSIGNED(a, n, op) \
do { \
register unsigned int arg1; \
\
N_GETNUMBER(a, arg1, do_ufn); \
\
arg1 = arg1 op n; \
\
N_ARITH_SWITCH(arg1); \
\
do_ufn: \
ERROR_EXIT(a); \
} while (0)
#endif /* ARITH_H */

15
inc/arith2defs.h Normal file
View File

@@ -0,0 +1,15 @@
#ifndef ARITH2DEFS_H
#define ARITH2DEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_plus2(int tosm1, int tos);
LispPTR N_OP_iplus2(int tosm1, int tos);
LispPTR N_OP_difference(int tosm1, int tos);
LispPTR N_OP_idifference(int tosm1, int tos);
LispPTR N_OP_logxor(int tosm1, int tos);
LispPTR N_OP_logand(int tosm1, int tos);
LispPTR N_OP_logor(int tosm1, int tos);
LispPTR N_OP_greaterp(int tosm1, int tos);
LispPTR N_OP_igreaterp(int tosm1, int tos);
LispPTR N_OP_iplusn(int tos, int n);
LispPTR N_OP_idifferencen(int tos, int n);
#endif

7
inc/arith3defs.h Normal file
View File

@@ -0,0 +1,7 @@
#ifndef ARITH3DEFS_H
#define ARITH3DEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_makenumber(int tosm1, int tos);
LispPTR N_OP_boxiplus(register int a, int tos);
LispPTR N_OP_boxidiff(register int a, int tos);
#endif

8
inc/arith4defs.h Normal file
View File

@@ -0,0 +1,8 @@
#ifndef ARITH4DEFS_H
#define ARITH4DEFS_H 1
int N_OP_times2(int tosm1, int tos);
int N_OP_itimes2(int tosm1, int tos);
int N_OP_quot(int tosm1, int tos);
int N_OP_iquot(int tosm1, int tos);
int N_OP_iremainder(int tosm1, int tos);
#endif

View File

@@ -1,23 +0,0 @@
#ifndef ARITHOPSDEFS_H
#define ARITHOPSDEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_plus2(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_iplus2(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_difference(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_idifference(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_logxor(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_logand(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_logor(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_greaterp(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_igreaterp(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_iplusn(LispPTR tos, int n);
LispPTR N_OP_idifferencen(LispPTR tos, int n);
LispPTR N_OP_makenumber(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_boxiplus(LispPTR a, LispPTR tos);
LispPTR N_OP_boxidiff(LispPTR a, LispPTR tos);
LispPTR N_OP_times2(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_itimes2(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_quot(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_iquot(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_iremainder(LispPTR tosm1, LispPTR tos);
#endif

View File

@@ -24,8 +24,8 @@ typedef struct sequencedescriptor {
unsigned nil2 :1;
unsigned base :28;
unsigned typ :4;
unsigned length :28;
int32_t offst;
unsigned length: 28;
LispPTR offst;
} Arrayp;
struct arrayheader {
@@ -41,8 +41,8 @@ struct arrayheader {
unsigned extendablep :1;
unsigned typenumber :8;
DLword offset;
int32_t fillpointer;
int32_t totalsize;
LispPTR fillpointer;
LispPTR totalsize;
};
#else
typedef struct sequencedescriptor {
@@ -100,9 +100,9 @@ typedef struct sequencedescriptor {
unsigned readonly :1;
unsigned nil :1;
unsigned orig :1;
unsigned length :28;
unsigned length: 28;
unsigned typ :4;
int32_t offst;
LispPTR offst;
} Arrayp;
struct arrayheader {
@@ -118,8 +118,8 @@ struct arrayheader {
unsigned bitp :1;
unsigned indirectp :1;
unsigned readonlyp :1;
int32_t totalsize;
int32_t fillpointer;
LispPTR totalsize;
LispPTR fillpointer;
};
#else
typedef struct sequencedescriptor {
@@ -216,6 +216,14 @@ struct abdum
#define FIRSTARRAYSEGMENT 19
#define MAXCELLSPERHUNK 64
/****************** The following are for codereclaimer *********************/
#define BITSPERBITE 8
/********************* End of codereclaimer *********************************/
/****************************************************************************/
/* */
/* End of Definitions */

6
inc/array2defs.h Normal file
View File

@@ -0,0 +1,6 @@
#ifndef ARRAY2DEFS_H
#define ARRAY2DEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_misc4(register LispPTR data, register LispPTR base, register LispPTR typenumber,
register LispPTR inx, int alpha);
#endif

5
inc/array3defs.h Normal file
View File

@@ -0,0 +1,5 @@
#ifndef ARRAY3DEFS_H
#define ARRAY3DEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_aref1(register LispPTR arrayarg, register LispPTR inx);
#endif

5
inc/array4defs.h Normal file
View File

@@ -0,0 +1,5 @@
#ifndef ARRAY4DEFS_H
#define ARRAY4DEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_aset1(register LispPTR data, LispPTR arrayarg, register int inx);
#endif

5
inc/array5defs.h Normal file
View File

@@ -0,0 +1,5 @@
#ifndef ARRAY5DEFS_H
#define ARRAY5DEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_aref2(LispPTR arrayarg, LispPTR inx0, LispPTR inx1);
#endif

5
inc/array6defs.h Normal file
View File

@@ -0,0 +1,5 @@
#ifndef ARRAY6DEFS_H
#define ARRAY6DEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_aset2(register LispPTR data, LispPTR arrayarg, LispPTR inx0, LispPTR inx1);
#endif

5
inc/arraydefs.h Normal file
View File

@@ -0,0 +1,5 @@
#ifndef ARRAYDEFS_H
#define ARRAYDEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_misc3(LispPTR baseL, LispPTR typenumber, LispPTR inx, int alpha);
#endif

View File

@@ -1,10 +0,0 @@
#ifndef ARRAYOPSDEFS_H
#define ARRAYOPSDEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_misc3(LispPTR baseL, LispPTR typenumber, LispPTR inx, int alpha);
LispPTR N_OP_misc4(LispPTR data, LispPTR base, LispPTR typenumber, LispPTR inx, int alpha);
LispPTR N_OP_aref1(LispPTR arrayarg, LispPTR inx);
LispPTR N_OP_aset1(LispPTR data, LispPTR arrayarg, LispPTR inx);
LispPTR N_OP_aref2(LispPTR arrayarg, LispPTR inx0, LispPTR inx1);
LispPTR N_OP_aset2(LispPTR data, LispPTR arrayarg, LispPTR inx0, LispPTR inx1);
#endif

View File

@@ -140,7 +140,7 @@
#define B_src_word_in_postloop src32lbit >= dst32lbit
/* VARIABLES */
#define F_num_loop (((dst32lbit + w) >> 5) - 1)
#define F_num_loop ((dst32lbit + w) >> 5) - 1
#define B_num_loop ((w - dst32rbit - 1) > 0) ? ((w - dst32rbit - 1) >> 5) : 0
#define F_preloop_mask ((dst32lbit) ? (~(0xFFFFFFFF << (32 - dst32lbit))) : 0xFFFFFFFF)
#define F_postloop_mask 0xFFFFFFFF << (31 - dst32rbit)
@@ -389,7 +389,7 @@
do_partial_transfer \
dst32addr++; \
switch (op) \
{ int cnt; \
{ register int cnt; \
case op_repl_src: ForInner { DestGetsF(=) } break; \
case op_fn_and: ForInner { DestGetsF(&=) } break; \
case op_fn_or: ForInner { DestGetsF(|=) } break; \
@@ -416,14 +416,14 @@
if (aligned_loop) \
{ \
if (src_comp) switch (op) \
{ int cnt; \
{ register int cnt; \
case op_repl_src: ForInner {*dst32addr++ = ~*src32addr++;} break; \
case op_fn_and: ForInner {*dst32addr++ &= ~*src32addr++;} break; \
case op_fn_or: ForInner {*dst32addr++ |= ~*src32addr++;} break; \
case op_fn_xor: ForInner {*dst32addr++ ^= ~*src32addr++;} break; \
} \
else switch (op) \
{ int cnt; \
{ register int cnt; \
case op_repl_src: ForInner {*dst32addr++ = *src32addr++;} break; \
case op_fn_and: ForInner {*dst32addr++ &= *src32addr++;} break; \
case op_fn_or: ForInner {*dst32addr++ |= *src32addr++;} break; \
@@ -433,14 +433,14 @@
else \
{ \
if (src_comp) switch (op) \
{ int cnt; \
{ register int cnt; \
case op_repl_src: ForInner {GetSrcCF DestGetsF(=) } break; \
case op_fn_and: ForInner {GetSrcCF DestGetsF(&=) } break; \
case op_fn_or: ForInner {GetSrcCF DestGetsF(|=) } break; \
case op_fn_xor: ForInner {GetSrcCF DestGetsF(^=) } break; \
} \
else switch (op) \
{ int cnt; \
{ register int cnt; \
case op_repl_src: ForInner {GetSrcF DestGetsF(=) } break; \
case op_fn_and: ForInner {GetSrcF DestGetsF(&=) } break; \
case op_fn_or: ForInner {GetSrcF DestGetsF(|=) } break; \
@@ -470,14 +470,14 @@
if (aligned_loop) \
{ \
if (src_comp) switch (op) \
{ int cnt; \
{ register int cnt; \
case op_repl_src: ForInner {*dst32addr-- = ~*src32addr--;} break; \
case op_fn_and: ForInner {*dst32addr-- &= ~*src32addr--;} break; \
case op_fn_or: ForInner {*dst32addr-- |= ~*src32addr--;} break; \
case op_fn_xor: ForInner {*dst32addr-- ^= ~*src32addr--;} break; \
} \
else switch (op) \
{ int cnt; \
{ register int cnt; \
case op_repl_src: ForInner {*dst32addr-- = *src32addr--;} break; \
case op_fn_and: ForInner {*dst32addr-- &= *src32addr--;} break; \
case op_fn_or: ForInner {*dst32addr-- |= *src32addr--;} break; \
@@ -487,14 +487,14 @@
else \
{ \
if (src_comp) switch (op) \
{ int cnt; \
{ register int cnt; \
case op_repl_src: ForInner {GetSrcCB DestGetsB(=) } break; \
case op_fn_and: ForInner {GetSrcCB DestGetsB(&=) } break; \
case op_fn_or: ForInner {GetSrcCB DestGetsB(|=) } break; \
case op_fn_xor: ForInner {GetSrcCB DestGetsB(^=) } break; \
} \
else switch (op) \
{ int cnt; \
{ register int cnt; \
case op_repl_src: ForInner {GetSrcB DestGetsB(=) } break; \
case op_fn_and: ForInner {GetSrcB DestGetsB(&=) } break; \
case op_fn_or: ForInner {GetSrcB DestGetsB(|=) } break; \
@@ -698,24 +698,24 @@
/* However, YOU must set up the control variables that are used */
/* as "arguments" to the bitblt code: */
/* */
/* DLword *srcbase, *dstbase; */
/* register DLword *srcbase, *dstbase; */
/* int sx, dx, w, h, srcbpl, dstbpl, backwardflg; */
/* int src_comp, op, gray, num_gray, curr_gray_line; */
/* */
/************************************************************************/
#define variables \
int num_lines_remaining = 0; \
int dstnumL = 0, src32lbit = 0, srcLshift = 0, dst32lbit = 0; \
unsigned int srcRmask = 0, dstold = 0, dstdata = 0, mask = 0; \
UNSIGNED x32byta = 0, x32nbyt = 0, x32ia = 0; \
int abc, dst32rbit = 0, src32rbit = 0, fwd; \
unsigned int *OrigSrcAddr = 0, *OrigDstAddr = 0; \
int num_lines_remaining; \
int dstnumL, src32lbit, srcLshift, dst32lbit; \
unsigned int srcRmask, dstold, dstdata, mask; \
UNSIGNED x32byta, x32nbyt, x32ia; \
int abc, dst32rbit, src32rbit, fwd; \
unsigned int *OrigSrcAddr, *OrigDstAddr; \
int bb_fast; \
unsigned int preloop_mask, postloop_mask, sdw_mask; \
unsigned int *dst32addr = 0, *src32addr = 0; \
unsigned int shS = 0, savedS = 0, newS = 0; \
int srcRshift = 0;
register unsigned int *dst32addr, *src32addr; \
register unsigned int shS, savedS, newS; \
register int srcRshift;
@@ -738,7 +738,7 @@ int srcRshift = 0;
/************************************************************************/
#define new_bitblt_code \
do { \
{ \
variables \
some_init \
while (num_lines_remaining-- > 0) \
@@ -778,7 +778,7 @@ next_line: \
continue; \
} \
} /* end line loop */ \
} while (0)
}
@@ -791,7 +791,7 @@ next_line: \
/************************************************************************/
#define new_gray_bitblt_code \
do { \
{ \
variables \
some_init \
while (num_lines_remaining-- > 0) \
@@ -803,7 +803,7 @@ do_fpt: \
next_line: \
do_gray_advance \
} /* end line loop */ \
} while (0)
}
@@ -816,7 +816,7 @@ next_line: \
/************************************************************************/
#define new_char_bitblt_code \
do { \
{ \
variables \
some_init \
while (num_lines_remaining-- > 0) \
@@ -828,7 +828,7 @@ do_fpt: \
next_line: \
F_do_advance \
} /* end line loop */ \
} while (0)
}

View File

@@ -1,19 +1,36 @@
#ifndef BBTSUBDEFS_H
#define BBTSUBDEFS_H 1
/***** Don't use PixRect code on 386i for now *****/
/***** -or on any machine that doesn't support it (HP, e.g.) *****/
/********************************************************/
/* */
/* Don Charnley's bitblt code */
/* prropstyle is DEFINED when we want to use */
/* pixrect versions of the operations in this */
/* file, and UNDEFINED, when we want to use */
/* Don Charnley's bitblt code to do them. */
/* */
/********************************************************/
#include "lispemul.h" /* for LispPTR, DLword */
#if defined(SUNDISPLAY) && \
!defined(NOPIXRECT) && \
!defined(NEWBITBLT)
#define prropstyle 1
#endif
void bitbltsub(LispPTR *argv);
LispPTR n_new_cursorin(DLword *baseaddr, int dx, int dy, int w, int h);
LispPTR bitblt_bitmap(LispPTR *args);
LispPTR bitshade_bitmap(LispPTR *args);
#ifndef prropstyle
void bltchar(LispPTR *args);
void newbltchar(LispPTR *args);
#else
LispPTR bltchar(LispPTR *args);
LispPTR newbltchar(LispPTR *args);
#endif
void ccfuncall(unsigned int atom_index, int argnum, int bytenum);
void tedit_bltchar(LispPTR *args);

View File

@@ -1,5 +1,5 @@
#ifndef BINDEFS_H
#define BINDEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_bin(LispPTR tos);
LispPTR N_OP_bin(register int tos);
#endif

View File

@@ -1,7 +1,7 @@
#ifndef BINDSDEFS_H
#define BINDSDEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR *N_OP_bind(LispPTR *stack_pointer, LispPTR tos, unsigned byte1, unsigned byte2);
LispPTR *N_OP_unbind(LispPTR *stack_pointer);
LispPTR *N_OP_dunbind(LispPTR *stack_pointer, LispPTR tos);
LispPTR *N_OP_bind(register LispPTR *stack_pointer, register LispPTR tos, int byte1, int byte2);
LispPTR *N_OP_unbind(register LispPTR *stack_pointer);
LispPTR *N_OP_dunbind(register LispPTR *stack_pointer, register LispPTR tos);
#endif

View File

@@ -1,10 +1,10 @@
#ifndef BBTMACRO_H
#define BBTMACRO_H 1
#ifndef BITBLT_H
#define BITBLT_H 1
/* $Id: bitblt.h,v 1.2 1999/01/03 02:05:54 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
/*
* Copyright (C) 1988 by Fuji Xerox Co., Ltd. All rights reserved.
*
* File : bbtmacro.h (was bitblt.h)
* File : bitblt.h
*
* Author : Osamu Nakamura
*
@@ -27,16 +27,16 @@
#define ERROR PIX_SRC
#define PixOperation( SRCTYPE, OPERATION ) \
( (SRCTYPE) == ERASE ? \
((OPERATION) == REPLACE ? PIX_NOT(PIX_SRC) : \
((OPERATION) == PAINT ? PIX_NOT(PIX_SRC) | PIX_DST : \
((OPERATION) == ERASE ? PIX_NOT(PIX_SRC) & PIX_DST : \
((OPERATION) == INVERT ? PIX_NOT(PIX_SRC) ^ PIX_DST : ERROR)))) : \
( SRCTYPE == ERASE ? \
(OPERATION == REPLACE ? PIX_NOT(PIX_SRC) : \
(OPERATION == PAINT ? PIX_NOT(PIX_SRC) | PIX_DST : \
(OPERATION == ERASE ? PIX_NOT(PIX_SRC) & PIX_DST : \
(OPERATION == INVERT ? PIX_NOT(PIX_SRC) ^ PIX_DST : ERROR)))) : \
/* SRCTYPE == INPUT */ \
((OPERATION) == REPLACE ? PIX_SRC : \
((OPERATION) == PAINT ? PIX_SRC | PIX_DST : \
((OPERATION) == ERASE ? PIX_SRC & PIX_DST : \
((OPERATION) == INVERT ? PIX_SRC ^ PIX_DST : ERROR)))))
(OPERATION == REPLACE ? PIX_SRC : \
(OPERATION == PAINT ? PIX_SRC | PIX_DST : \
(OPERATION == ERASE ? PIX_SRC & PIX_DST : \
(OPERATION == INVERT ? PIX_SRC ^ PIX_DST : ERROR)))))
extern DLword *EmMouseX68K, *EmMouseY68K;
@@ -50,10 +50,17 @@ extern int DisplayRasterWidth;
#ifdef DOS
#define HideCursor { (currentdsp->mouse_invisible)(currentdsp, IOPage); }
#define ShowCursor { (currentdsp->mouse_visible)(IOPage->dlmousex, \
IOPage->dlmousey); }
#define HideCursor { (currentdsp->mouse_invisible)(currentdsp, IOPage68K); }
#define ShowCursor { (currentdsp->mouse_visible)(IOPage68K->dlmousex, \
IOPage68K->dlmousey); }
#elif defined(SUNDISPLAY) && defined(OLD_CURSOR)
extern struct winlock DisplayLockArea;
#define HideCursor \
ioctl( LispWindowFd, WINLOCKSCREEN, &DisplayLockArea)
#define ShowCursor \
ioctl( LispWindowFd, WINUNLOCKSCREEN, &DisplayLockArea)
#else
extern DLword *EmCursorX68K,*EmCursorY68K;
#define HideCursor { taking_mouse_down();}
@@ -76,13 +83,13 @@ extern DLword *EmCursorX68K,*EmCursorY68K;
/* Macro for locking and unlocking screen to prevent multiple updates */
#ifdef DOS
#define LOCKSCREEN currentdsp->device.locked++
#define UNLOCKSCREEN currentdsp->device.locked--
#define LOCKSCREEN currentdsp->device.locked++;
#define UNLOCKSCREEN currentdsp->device.locked--;
#else
#define LOCKSCREEN ScreenLocked = T
#define UNLOCKSCREEN ScreenLocked = NIL
#define LOCKSCREEN ScreenLocked = T;
#define UNLOCKSCREEN ScreenLocked = NIL;
#endif /* DOS */
#endif /* BBTMACRO_H */
#endif /* BITBLT_H */

View File

@@ -1,7 +1,7 @@
#ifndef BITBLTDEFS_H
#define BITBLTDEFS_H 1
#include "lispemul.h" /* for LispPTR, DLword */
LispPTR N_OP_pilotbitblt(LispPTR pilot_bt_tbl, LispPTR tos);
LispPTR N_OP_pilotbitblt(LispPTR pilot_bt_tbl,int tos);
int cursorin(DLword addrhi, DLword addrlo, int w, int h, int backward);
#endif

View File

@@ -1,6 +1,6 @@
#ifndef BLTDEFS_H
#define BLTDEFS_H 1
#include "lispemul.h" /* for LispPTR */
LispPTR N_OP_blt(LispPTR destptr, LispPTR sourceptr, LispPTR wordcount);
LispPTR N_OP_blt(LispPTR destptr, LispPTR sourceptr, register LispPTR wordcount);
#endif

View File

@@ -10,7 +10,17 @@ static inline unsigned int swapx(unsigned int word) {
return (((word >> 16) & 0xffff) | ((word & 0xffff) << 16));
}
void word_swap_page(void *page, unsigned longwordcount);
/****************************************************************/
/* */
/* Byte-swap a single 2-byte word */
/* */
/****************************************************************/
static inline unsigned short byte_swap_word(unsigned short word) {
return (((word >> 8) & 0xff) | ((word & 0xff) << 8));
}
void byte_swap_page(unsigned short *page, int wordcount);
void word_swap_page(unsigned short *page, int longwordcount);
void bit_reverse_region(unsigned short *top, int width, int height, int rasterwidth);
#ifdef RESWAPPEDCODESTREAM
unsigned int byte_swap_code_block(unsigned int *base);

View File

@@ -2,13 +2,13 @@
#define CAR_CDRDEFS_H 1
#include "cell.h" /* for ConsCell */
#include "lispemul.h" /* for LispPTR */
LispPTR car(LispPTR datum);
LispPTR cdr(LispPTR datum);
LispPTR rplaca(LispPTR x, LispPTR y);
LispPTR rplacd(LispPTR x, LispPTR y);
LispPTR N_OP_car(LispPTR tos);
LispPTR N_OP_cdr(LispPTR tos);
LispPTR N_OP_rplaca(LispPTR tosm1, LispPTR tos);
LispPTR N_OP_rplacd(LispPTR tosm1, LispPTR tos);
LispPTR car(register LispPTR datum);
LispPTR cdr(register LispPTR datum);
LispPTR rplaca(register LispPTR x, register LispPTR y);
LispPTR rplacd(LispPTR x, register LispPTR y);
LispPTR N_OP_car(register LispPTR tos);
LispPTR N_OP_cdr(register LispPTR tos);
LispPTR N_OP_rplaca(register LispPTR tosm1, register LispPTR tos);
LispPTR N_OP_rplacd(register LispPTR tosm1, register LispPTR tos);
ConsCell *find_close_prior_cell(struct conspage *page, LispPTR oldcell);
#endif

51
inc/cell.h Normal file → Executable file
View File

@@ -9,8 +9,6 @@
/* */
/************************************************************************/
#include "version.h"
/**********************************************************************/
/*
File Name : cell.h
@@ -22,8 +20,8 @@
*/
/**********************************************************************/
#include "adr68k.h" /* for NativeAligned4FromLPage, NativeAligned4FromLAddr */
#include "lispemul.h" /* for LispPTR, DLword */
#include "version.h" /* for BIGVM, NEWCDRCODING, BIGATOMS */
/* CONS CELL (LISTP) definitions moved to lispemulater.h */
@@ -31,7 +29,7 @@
/* On 68010,68000 This Macro does not effect */
#ifdef NEWCDRCODING
#define CARFIELD(x) ((int)(x) & 0x0fffffff)
#define CARFIELD(x) ((int)x & 0x0fffffff)
/* CDR-Codes defs */
#define CDR_ONPAGE 8
@@ -102,13 +100,13 @@ struct conspage {
/* Following MACROs for Conspage */
/* lisp_ptr is LISP pointer, returns 68k ptr points struct conspage obj */
#define Get_ConsPageBase(lisp_ptr) (struct conspage *)NativeAligned4FromLPage(POINTER_PAGEBASE(lisp_ptr))
#define Get_ConsPageBase(lisp_ptr) (struct conspage *)Addr68k_from_LPAGE(POINTER_PAGEBASE(lisp_ptr))
#define GetNewCell_68k(conspage68k) \
(ConsCell *)(((DLword *)(conspage68k)) + (unsigned)((conspage68k)->next_cell))
/* page : LISP page */
#define GetCONSCount(page) (((struct conspage *)NativeAligned4FromLPage(page))->count)
#define GetCONSCount(page) (((struct conspage *)Addr68k_from_LPAGE(page))->count)
#ifndef BYTESWAP
/* For chaining together free cons cells on a page */
@@ -126,7 +124,7 @@ typedef struct freec {
#endif /* BYTESWAP */
#define FREECONS(page, offset) ((freecons *)((DLword *)(page) + (offset)))
#define FREECONS(page, offset) ((freecons *)((DLword *)page + offset))
/************************************************************************/
/* */
@@ -377,17 +375,21 @@ struct cadr_cell {
#else
/* Good for old LITATOMS and new NEW-ATOMs */
#define GetDEFCELL68k(index) \
((((index) & SEGMASK) != 0) ? GetDEFCELLnew(index) : GetDEFCELLlitatom(index))
#define GetDEFCELL68k(index) \
(((index & SEGMASK) != 0) ? (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_DEFN_OFFSET) \
: GetDEFCELLlitatom(index))
#define GetVALCELL68k(index) \
((((index) & SEGMASK) != 0) ? GetVALCELLnew(index) : GetVALCELLlitatom(index))
#define GetVALCELL68k(index) \
(((index & SEGMASK) != 0) ? (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_VALUE_OFFSET) \
: GetVALCELLlitatom(index))
#define GetPnameCell(index) \
((((index) & SEGMASK) != 0) ? GetPnameCellnew(index) : GetPnameCelllitatom(index))
#define GetPnameCell(index) \
(((index & SEGMASK) != 0) ? (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_PNAME_OFFSET) \
: GetPnameCelllitatom(index))
#define GetPropCell(index) \
((((index) & SEGMASK) != 0) ? GetPropCellnew(index) : GetPropCelllitatom(index))
#define GetPropCell(index) \
(((index & SEGMASK) != 0) ? (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_PLIST_OFFSET) \
: GetPropCelllitatom(index))
/* Good only for old-style LITATOMS */
#ifdef BIGVM
@@ -403,24 +405,21 @@ struct cadr_cell {
#endif
/* Good only for new-style NEW-ATOMs */
/* Note: the _OFFSET values are in units of DLword so need to be adjusted before doing pointer
* arithmetic since we now have native pointers to cells not DLwords
*/
#define GetDEFCELLnew(index) (NativeAligned4FromLAddr(index) + (NEWATOM_DEFN_OFFSET / DLWORDSPER_CELL))
#define GetVALCELLnew(index) (NativeAligned4FromLAddr(index) + (NEWATOM_VALUE_OFFSET / DLWORDSPER_CELL))
#define GetPnameCellnew(index) (NativeAligned4FromLAddr(index) + (NEWATOM_PNAME_OFFSET / DLWORDSPER_CELL))
#define GetPropCellnew(index) (NativeAligned4FromLAddr(index) + (NEWATOM_PLIST_OFFSET / DLWORDSPER_CELL))
#define GetDEFCELLnew(index) (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_DEFN_OFFSET)
#define GetVALCELLnew(index) (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_VALUE_OFFSET)
#define GetPnameCellnew(index) (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_PNAME_OFFSET)
#define GetPropCellnew(index) (LispPTR *)(Addr68k_from_LADDR(index) + NEWATOM_PLIST_OFFSET)
#endif /* BIGATOMS */
/* When cadr() function is called, type check should be done. */
#define S_N_CHECKANDCADR(sour, dest, tos) \
do { \
LispPTR parm = sour; \
{ \
register LispPTR parm = sour; \
if (GetTypeNumber(parm) != TYPE_LISTP) { \
ERROR_EXIT(tos); \
} else \
(dest) = cadr(parm); \
} while (0)
dest = cadr(parm); \
}
#endif

View File

@@ -3,4 +3,6 @@
void stab(void);
void warn(const char *s);
int error(const char *s);
int stackcheck(void);
void stackoverflow(void);
#endif

View File

@@ -2,6 +2,6 @@
#define CONSPAGEDEFS_H 1
#include "lispemul.h" /* for LispPTR */
struct conspage *next_conspage(void);
LispPTR N_OP_cons(LispPTR cons_car, LispPTR cons_cdr);
LispPTR N_OP_cons(register int cons_car, register int cons_cdr);
LispPTR cons(LispPTR cons_car, LispPTR cons_cdr);
#endif

View File

@@ -40,10 +40,10 @@ extern int flushing;
#endif
#ifdef DEBUG
#define DBPRINT(X) do { printf("%s:%d ", __FILE__, __LINE__); printf X ; if (flushing) fflush(stdout); } while(0)
#define DBPRINT(X) do {printf X ; if (flushing) fflush(stdout); } while(0)
#define DEBUGGER(X) X
#else
#define DBPRINT(X) if (0) do {printf X ; } while(0)
#define DBPRINT(X) do {} while(0)
#define DEBUGGER(X)
#endif
@@ -51,11 +51,11 @@ extern int flushing;
/* For trace print statements */
#ifdef TRACE
#define TPRINT(X) do { printf("%s:%d ", __FILE__, __LINE__); printf X; if (flushing) fflush(stdout); } while (0)
#define TPRINT(X) do { printf X; if (flushing) fflush(stdout); } while (0)
#define TRACER(X) X
#else /* TRACE */
#define TPRINT(X) if (0) do { printf X; } while (0)
#define TPRINT(X) do { } while (0)
#define TRACER(X)
#endif /* TRACE */
@@ -64,10 +64,10 @@ extern int flushing;
/* For tracing individual opcode executions */
#ifdef OPTRACE
#define OPTPRINT(X) do { printf("%s:%d ", __FILE__, __LINE__); printf X; if (flushing) fflush(stdout); } while (0)
#define OPTPRINT(X) do { printf X; if (flushing) fflush(stdout); } while (0)
#define OPTRACER(X) X
#else
#define OPTPRINT(X) if (0) do { printf X; } while (0)
#define OPTPRINT(X) do { } while (0)
#define OPTRACER(X)
#endif
@@ -75,10 +75,10 @@ extern int flushing;
/* For tracing function calls */
#ifdef FNTRACE
#define FNTPRINT(X) do { printf("%s:%d ", __FILE__, __LINE__); printf X; if (flushing) fflush(stdout); } while (0)
#define FNTPRINT(X) do { printf X; if (flushing) fflush(stdout); } while (0)
#define FNTRACER(X) X
#else
#define FNTPRINT(X) if (0) do { printf X; } while (0)
#define FNTPRINT(X) do { } while (0)
#define FNTRACER(X)
#endif
@@ -86,10 +86,10 @@ extern int flushing;
/* For function-call & return stack checking */
#ifdef FNSTKCHECK
#define FNCHKPRINT(X) do { printf("%s:%d ", __FILE__, __LINE__); printf X ; if (flushing) fflush(stdout); } while (0)
#define FNCHKPRINT(X) do { printf X ; if (flushing) fflush(stdout); } while (0)
#define FNCHECKER(X) X
#else
#define FNCHKPRINT(X) if (0) do { printf X; } while (0)
#define FNCHKPRINT(X) do { } while (0)
#define FNCHECKER(X)
#endif

View File

@@ -11,6 +11,13 @@
/************************************************************************/
#include "lispemul.h" /* for LispPTR, DLword */
typedef void (*PFV)(); /* Pointer to Function returning Void */
typedef int (*PFI)(); /* Pointer to Function returning Int */
typedef char (*PFC)(); /* Pointer to Function returning Char */
typedef float (*PFF)(); /* Pointer to Function returning Float */
typedef int (*PFP)(); /* Pointer to Function returning a Pointer */
typedef unsigned long (*PFUL)(); /* Pointer to Function returning an unsigned long */
#ifdef XWINDOW
#include <X11/Xlib.h>
#endif /* XWINDOW */
@@ -45,16 +52,17 @@ typedef struct
{
int x;
int y;
unsigned width;
unsigned height;
int width;
int height;
} MRegion;
/**************************************************************/
/* D e v R e c */
/* */
/* Definition common to all devices. Used for mouse, kbd and */
/* display. The xxxInterfaceRec containing this device is */
/* passed as the only argument to the device methods */
/* display. */
/**************************************************************/
typedef struct
{
@@ -63,22 +71,22 @@ typedef struct
to prevent multiple consecutive initializations. */
int locked; /* LOCK, a semaphore: 0 if dev is free.
Test and increment to use this device. */
void (* enter)(void *); /* ENTER, a function
args: interface rec (Kbd, Dsp, Mouse)
void (* enter)(); /* ENTER, a function
args: self
Called to set up the device. Has to be called before
anything else is done to the device. */
void (* exit)(void *); /* EXIT, a function
args: interface rec (Kbd, Dsp, Mouse)
void (* exit)(); /* EXIT, a function
args: self
Called to deactivate the device and restore the
device to its previous state */
void (* before_raid)(void *); /* BEFORE_RAID, a function.
args: interface rec (Kbd, Dsp, Mouse)
void (* before_raid)(); /* BEFORE_RAID, a function.
args: self
Prepare this device for uraid. */
void (* after_raid)(void *); /* BEFORE_RAID, a function.
args: interface rec (Kbd, Dsp, Mouse)
void (* after_raid)(); /* BEFORE_RAID, a function.
args: self
Cleanup and restart device after uraid. */
void (* sync_device)(void *); /* SYNC_DEVICE, a function.
args: interface rec (Kbd, Dsp, Mouse)
void (* sync_device)(); /* SYNC_DEVICE, a function.
args: self
Make reality and emulator coincide with each other */
} DevRec;
@@ -88,7 +96,7 @@ typedef struct
/* M o u s e I n t e r f a c e */
/* */
/* Definition of the mouse. Note that the mouse is also */
/* dependent on the IOPage */
/* dependent on the IOPage68K */
/**************************************************************/
typedef struct
{
@@ -106,7 +114,7 @@ typedef struct
short tick; /* Clock for timeout. */
long StartTime; /* The maximum timeout */
long RunTimer; /* Chording timer activate flag. */
void (* NextHandler)(void); /* Pointer to the next timer (used with 2button) */
PFV NextHandler; /* Pointer to the next timer (used with 2button) */
} Button;
@@ -125,15 +133,14 @@ typedef struct {
typedef struct
{
DevRec device;
void (* Handler)(void); /* Event handler for the mouse. */
void (* Handler)(); /* Event handler for the mouse. */
MCursor Cursor;
Button Button;
LispPTR *timestamp;
unsigned int keyeventsize; /* The sizeof() one kbd event */
unsigned int maxkeyevent; /* Offset to the end of the ringbuffer. */
int eurokbd; /* Keep tabs of the euro-ness of the kbd */
} MouseInterfaceRec;
typedef MouseInterfaceRec *MouseInterface;
} MouseInterfaceRec, *MouseInterface;
@@ -141,12 +148,12 @@ typedef MouseInterfaceRec *MouseInterface;
/* K b d I n t e r f a c e */
/* */
/* Definition of the keyboard. Note that the keyboard is also */
/* dependent on the IOPage */
/* dependent on the IOPage68K */
/**************************************************************/
typedef struct
{
DevRec device;
void (*device_event)(void); /* Event handler for the keyboard. */
PFV device_event; /* Event handler for the keyboard. */
#ifdef DOS
u_char KeyMap[0x80]; /* The key translation table. Use the keycode you
get from the keyboard as an index. The value
@@ -155,13 +162,14 @@ typedef struct
unsigned int keyeventsize; /* The sizeof() one kbd event */
unsigned int maxkeyevent; /* Offset to the end of the ringbuffer. */
int eurokbd; /* Keep tabs of the euro-ness of the kbd */
void (* prev_handler)(void);/* The previous keyboard handler.
PFV prev_handler; /* The previous keyboard handler.
Keep this around
to restore when we exit Medley */
int URaid; /* Put this in a better place later.. /jarl */
#endif /* DOS */
} KbdInterfaceRec;
typedef KbdInterfaceRec *KbdInterface;
} KbdInterfaceRec, *KbdInterface;
/**************************************************************/
/* D s p I n t e r f a c e */
@@ -169,53 +177,47 @@ typedef KbdInterfaceRec *KbdInterface;
/* Definition of the display. This structure collects all the */
/* special knowledge needed to manipulate the screen. */
/**************************************************************/
/*
* NOTE: At this time only the DspInterface methods
* bitblt_to_screen(), clearscreen(), mouse_visible(), and mouse_invisible()
* are called, and the mouse_* are only used for DOS.
* All the other methods are not implemented and not called.
*/
typedef struct DspInterfaceRec
typedef struct
{
DevRec device;
unsigned long (* drawline)(void); /* DRAWLINE
void (* drawline)(); /* DRAWLINE
args: dont know yet. Not yet implemented.*/
unsigned long (* cleardisplay)(struct DspInterfaceRec *); /* CLEARDISPLAY, a function
void (* cleardisplay)(); /* CLEARDISPLAY, a function
args: self
clears the screen.*/
unsigned long (* get_color_map_entry)(void);
unsigned long (* set_color_map_entry)(void *);
unsigned long (* available_colors)(void); /* How many colors do I have on my palette */
unsigned long (* possible_colors)(void); /* How many colors is it possible to select from */
unsigned long (* get_color_map_entry)();
unsigned long (* set_color_map_entry)();
unsigned long (* available_colors)(); /* How many colors do I have on my palette */
unsigned long (* possible_colors)(); /* How many colors is it possible to select from */
#ifdef NOTYET
unsigned long (* get_color_map)(void); /* get a pointer to a colormap */
unsigned long (* set_color_map)(void); /* set the current colormap */
unsigned long (* make_color_map)(void); /* return a brand new colormap */
unsigned long (* get_color_map)(); /* get a pointer to a colormap */
unsigned long (* set_color_map)(); /* set the current colormap */
unsigned long (* make_color_map)(); /* return a brand new colormap */
#endif /* NOTYET */
unsigned long (* medley_to_native_bm)(void); /* 1 bit/pix to native bit/pix */
unsigned long (* native_to_medley_bm)(void); /* native bit/pix to 1 bit/pix */
unsigned long (* medley_to_native_bm)(); /* 1 bit/pix to native bit/pix */
unsigned long (* native_to_medley_bm)(); /* native bit/pix to 1 bit/pix */
unsigned long (* bitblt_to_screen)(struct DspInterfaceRec *, DLword *, int, int, int, int); /* BITBLT_TO_SCREEN, a function
unsigned long (* bitblt_to_screen)(); /* BITBLT_TO_SCREEN, a function
args: self, buffer left top width height.
biblt's buffer to the screen. */
unsigned long (* bitblt_from_screen)(void);
unsigned long (* scroll_region)(void); /* ie. bbt from screen to screen */
unsigned long (* mouse_invisible)(struct DspInterfaceRec *, void *); /* MOUSE_INVISIBLE
unsigned long (* bitblt_from_screen)();
unsigned long (* scroll_region)(); /* ie. bbt from screen to screen */
void (* mouse_invisible)(); /* MOUSE_INVISIBLE
args: self (a dsp), iop (an IOPAGE preferably the one and only)
This method makes the mouse invisible on the screen. Note that
the dsp supplies the method and the iop supplies the data. */
unsigned long (* mouse_visible)(int x, int y); /* MOUSE_VISIBLE
args: x, y position where the mouse/cursor should be displayed.
NOTE: this should probably include the DspInterface as the first arg?
*/
void (* mouse_visible)(); /* MOUSE_VISIBLE
args: self (a dsp), iop (an IOPAGE preferably the one and only)
This method makes the mouse visible on the screen. Note that
the dsp supplies the method and the iop supplies the data. */
MRegion Display; /* Dimensions of the physical display. */
unsigned short unused0; /* alignment padding for next field */
unsigned short bitsperpixel;
unsigned long colors; /* cache for the available_colors */
unsigned long colors; /* cash for the available_colors */
unsigned long oldstate; /* Keep the old state around */
unsigned long graphicsmode; /* Magic cookie used to set the state. */
unsigned long numberofbanks;
@@ -254,24 +256,22 @@ typedef struct DspInterfaceRec
Pixmap GravityOnPixmap;
Pixmap GravityOffPixmap;
XImage ScreenBitmap;
long DisableEventMask;
long EnableEventMask;
Mask DisableEventMask;
Mask EnableEventMask;
#endif /* XWINDOW */
} DspInterfaceRec;
typedef DspInterfaceRec *DspInterface;
} DspInterfaceRec, *DspInterface;
#ifdef XWINDOW
#define DefineCursor(dsp, window, mycursor) \
do { \
XLOCK; \
XDefineCursor((dsp)->display_id, window, *(mycursor) ); \
XUNLOCK(dsp); \
} while (0)
#define DefineCursor(display, window, mycursor) { \
XLOCK;\
XDefineCursor( display, window, *(mycursor) );\
XUNLOCK;\
}
#endif /* XWINDOW */
#define OUTER_SB_WIDTH(dsp) ((dsp)->ScrollBarWidth + 2*((dsp)->InternalBorderWidth))
#define OUTER_SB_WIDTH(dsp) (dsp->ScrollBarWidth + 2*(dsp->InternalBorderWidth))
#ifndef min
#define min( a, b ) (((a)<(b))?(a):(b))

Some files were not shown because too many files have changed in this diff Show More