mirror of
https://github.com/Interlisp/maiko.git
synced 2026-03-15 14:27:19 +00:00
Compare commits
7 Commits
fgh_fix-21
...
debug-arra
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4245764b31 | ||
|
|
4520609479 | ||
|
|
3b42f0579d | ||
|
|
29b492093d | ||
|
|
1c6d366e3c | ||
|
|
c74e7a0169 | ||
|
|
060420ce42 |
2
.github/workflows/Dockerfile_builder
vendored
2
.github/workflows/Dockerfile_builder
vendored
@@ -8,7 +8,7 @@
|
||||
#
|
||||
# ******************************************************************************
|
||||
|
||||
FROM ubuntu:22.04
|
||||
FROM ubuntu:latest
|
||||
SHELL ["/bin/bash", "-c"]
|
||||
USER root:root
|
||||
# Install build tools
|
||||
|
||||
129
.github/workflows/buildRelease.yml
vendored
129
.github/workflows/buildRelease.yml
vendored
@@ -107,7 +107,7 @@ jobs:
|
||||
echo "linux=true" >> $GITHUB_OUTPUT;
|
||||
echo "macos=true" >> $GITHUB_OUTPUT;
|
||||
echo "windows=true" >> $GITHUB_OUTPUT;
|
||||
|
||||
|
||||
|
||||
######################################################################################
|
||||
|
||||
@@ -123,7 +123,7 @@ jobs:
|
||||
steps:
|
||||
# Checkout the actions for this repo owner
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: ${{ github.repository_owner }}/.github
|
||||
path: ./Actions_${{ github.sha }}
|
||||
@@ -152,12 +152,12 @@ jobs:
|
||||
|| needs.inputs.outputs.force == 'true'
|
||||
)
|
||||
|
||||
runs-on: ubuntu-22.04
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
# Checkout the actions for this repo owner
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: ${{ github.repository_owner }}/.github
|
||||
path: ./Actions_${{ github.sha }}
|
||||
@@ -165,7 +165,7 @@ jobs:
|
||||
|
||||
# Checkout the branch
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Setup release tag
|
||||
- name: Setup Release Tag
|
||||
@@ -272,11 +272,11 @@ jobs:
|
||||
|
||||
# Checkout the branch
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Checkout the actions for this repo owner
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: ${{ github.repository_owner }}/.github
|
||||
path: ./Actions_${{ github.sha }}
|
||||
@@ -290,13 +290,13 @@ jobs:
|
||||
# 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
|
||||
brew uninstall --ignore-dependencies libxft
|
||||
brew uninstall --ignore-dependencies libxrender
|
||||
brew uninstall --ignore-dependencies libxext
|
||||
brew uninstall --ignore-dependencies libx11
|
||||
brew uninstall --ignore-dependencies xorgproto
|
||||
brew uninstall --ignore-dependencies libxdmcp
|
||||
brew uninstall --ignore-dependencies libxau
|
||||
|
||||
- name: Install X11 dependencies on MacOS
|
||||
env:
|
||||
@@ -310,8 +310,8 @@ jobs:
|
||||
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
|
||||
gh release download release-2.26.5 --repo libsdl-org/SDL --pattern SDL2-2.26.5.dmg
|
||||
hdiutil attach SDL2-2.26.5.dmg
|
||||
sudo ditto /Volumes/SDL2/SDL2.framework /Library/Frameworks/SDL2.framework
|
||||
hdiutil detach /Volumes/SDL2/
|
||||
|
||||
@@ -324,7 +324,7 @@ jobs:
|
||||
export LDEARCH=aarch64-apple-darwin
|
||||
./makeright init
|
||||
mkdir -p ../darwin.universal
|
||||
exe=ldeinit
|
||||
exe=ldeinit
|
||||
lipo -create \
|
||||
-arch arm64 ../darwin.aarch64/${exe} \
|
||||
-arch x86_64 ../darwin.x86_64/${exe} \
|
||||
@@ -337,7 +337,7 @@ jobs:
|
||||
# -DCMAKE_OSX_DEPLOYMENT_TARGET=10.12
|
||||
cmake .. \
|
||||
-DCMAKE_OSX_ARCHITECTURES="x86_64;arm64" \
|
||||
-DMAIKO_DISPLAY_SDL=2 \
|
||||
-DMAIKO_DISPLAY_SDL=ON \
|
||||
-DMAIKO_DISPLAY_X11=ON \
|
||||
-DCMAKE_BUILD_TYPE=Release
|
||||
cmake --build . --config Release
|
||||
@@ -346,7 +346,7 @@ jobs:
|
||||
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
|
||||
done
|
||||
|
||||
# Create release tar for github.
|
||||
- name: Make release tar(s)
|
||||
@@ -369,7 +369,7 @@ jobs:
|
||||
# Push Release
|
||||
- name: Push the release
|
||||
uses: ncipollo/release-action@v1
|
||||
with:
|
||||
with:
|
||||
allowUpdates: true
|
||||
artifacts:
|
||||
/tmp/release_tars/${{ steps.tag.outputs.release_tag }}-darwin.x86_64.tgz,
|
||||
@@ -383,7 +383,7 @@ jobs:
|
||||
|
||||
# Windows: build for Windows-Cygwin via Docker build and use results to
|
||||
# create and push release assets to github
|
||||
|
||||
|
||||
windows:
|
||||
|
||||
needs: [inputs, sentry]
|
||||
@@ -412,13 +412,13 @@ jobs:
|
||||
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")
|
||||
Start-Process setup-x86_64.exe -Wait -ArgumentList @("--root", ".\cygwin", "--quiet-mode", "--no-admin", "--wait", "--no-shortcuts", "--no-write-registry", "--verbose", "--site", "http://www.gtlib.gatech.edu/pub/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:
|
||||
env:
|
||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
run: |
|
||||
gh release download 2.26.5 --repo interlisp/cygwin-sdl --pattern *.tgz --output .\cygwin\sdl2.tar.gz
|
||||
@@ -426,13 +426,13 @@ jobs:
|
||||
|
||||
# Checkout the branch
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
path: cygwin\maiko
|
||||
|
||||
# Checkout the actions for this repo owner
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: ${{ github.repository_owner }}/.github
|
||||
path: ./Actions_${{ github.sha }}
|
||||
@@ -473,81 +473,6 @@ jobs:
|
||||
|
||||
|
||||
|
||||
######################################################################################
|
||||
|
||||
# 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
|
||||
@@ -560,12 +485,12 @@ jobs:
|
||||
outputs:
|
||||
build_successful: ${{ steps.output.outputs.build_successful }}
|
||||
|
||||
needs: [inputs, sentry, linux, macos, windows, emscripten]
|
||||
needs: [inputs, sentry, linux, macos, windows]
|
||||
|
||||
steps:
|
||||
# Checkout the actions for this repo owner
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
repository: ${{ github.repository_owner }}/.github
|
||||
path: ./Actions_${{ github.sha }}
|
||||
|
||||
5
.gitignore
vendored
5
.gitignore
vendored
@@ -10,7 +10,6 @@ cmake-build-*/**
|
||||
.idea/
|
||||
*.m68k-x/**
|
||||
*.m68k/**
|
||||
*.386-sdl/**
|
||||
*.386-x/**
|
||||
*.386/**
|
||||
*.ppc-x/**
|
||||
@@ -20,10 +19,6 @@ cmake-build-*/**
|
||||
*.x86_64-x/**
|
||||
*.x86_64-sdl/**
|
||||
*.x86_64/**
|
||||
*.wasm/**
|
||||
*.wasm-wasm/**
|
||||
*.wasm_nl/**
|
||||
*.wasm_nl-wasm_nl/**
|
||||
*.armv7l-x/**
|
||||
*.armv7l/**
|
||||
*.aarch64-x/**
|
||||
|
||||
115
CMakeLists.txt
115
CMakeLists.txt
@@ -18,7 +18,7 @@ ENDIF()
|
||||
|
||||
find_program(
|
||||
CLANG_TIDY_EXE
|
||||
NAMES "clang-tidy" "clang-tidy16" "clang-tidy15" "clang-tidy14" "clang-tidy13" "clang-tidy12" "clang-tidy11" "clang-tidy10"
|
||||
NAMES "clang-tidy" "clang-tidy13" "clang-tidy12" "clang-tidy11" "clang-tidy10"
|
||||
DOC "Path to clang-tidy executable"
|
||||
)
|
||||
|
||||
@@ -37,21 +37,12 @@ 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)
|
||||
OPTION(MAIKO_DISPLAY_SDL "Use SDL for display." OFF)
|
||||
|
||||
IF(MAIKO_DISPLAY_X11)
|
||||
FIND_PACKAGE(X11 REQUIRED)
|
||||
@@ -80,39 +71,25 @@ 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)
|
||||
IF(MAIKO_DISPLAY_SDL)
|
||||
FIND_PACKAGE(SDL2 REQUIRED)
|
||||
SET(MAIKO_DISPLAY_SDL_DEFINITIONS
|
||||
"-DSDL=2"
|
||||
"-DSDL"
|
||||
)
|
||||
SET(MAIKO_DISPLAY_SDL_INCLUDE_DIRS SDL2::Headers)
|
||||
SET(MAIKO_DISPLAY_SDL_LIBRARIES SDL2::SDL2)
|
||||
SET(MAIKO_DISPLAY_SDL_LIBRARIES ${SDL2_LIBRARIES})
|
||||
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")
|
||||
MESSAGE("-- Configured for SDL display")
|
||||
ENDIF()
|
||||
|
||||
# according to: https://cmake.org/pipermail/cmake/2016-October/064342.html
|
||||
@@ -141,9 +118,6 @@ IF(CMAKE_SYSTEM_NAME STREQUAL "SunOS")
|
||||
LIST(APPEND MAIKO_DEFINITIONS
|
||||
"-DOS5"
|
||||
)
|
||||
LIST(APPEND MAIKO_INIT_DEFINITIONS
|
||||
"-DOS5"
|
||||
)
|
||||
ENDIF()
|
||||
|
||||
IF(APPLE)
|
||||
@@ -294,7 +268,7 @@ SET(MAIKO_HDRS
|
||||
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 +293,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
|
||||
@@ -397,14 +372,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 +397,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
|
||||
@@ -437,33 +413,34 @@ SET(MAIKO_HDRS
|
||||
inc/vars3defs.h
|
||||
inc/version.h
|
||||
inc/vmemsavedefs.h
|
||||
inc/vmemsave.h
|
||||
inc/xcdefs.h
|
||||
inc/z2defs.h
|
||||
)
|
||||
|
||||
ADD_CUSTOM_COMMAND(OUTPUT vdate.c
|
||||
ADD_CUSTOM_TARGET(gen-vdate
|
||||
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}
|
||||
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})
|
||||
TARGET_COMPILE_DEFINITIONS(lde PUBLIC ${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,21 +451,9 @@ 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)
|
||||
@@ -500,32 +465,20 @@ IF(MAIKO_DISPLAY_SDL)
|
||||
${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_COMPILE_DEFINITIONS(ldesdl PUBLIC ${MAIKO_DEFINITIONS} ${MAIKO_DISPLAY_SDL_DEFINITIONS})
|
||||
TARGET_INCLUDE_DIRECTORIES(ldesdl PUBLIC inc)
|
||||
TARGET_INCLUDE_DIRECTORIES(ldesdl PRIVATE ${SDL2_INCLUDE_DIRS})
|
||||
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)
|
||||
|
||||
40
README.md
40
README.md
@@ -1,11 +1,10 @@
|
||||
# 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/).
|
||||
For an overview, see [Medley Interlisp Introduction](https://github.com/Interlisp/medley/wiki/Medley-Interlisp-Introduction).
|
||||
|
||||
See [the Medley repository](https://github.com/Interlisp/medley) for
|
||||
* [Issues](https://github.com/Interlisp/medley/issues) (note that maiko issues are there too)
|
||||
@@ -16,14 +15,13 @@ 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
|
||||
@@ -35,21 +33,17 @@ $ 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`.
|
||||
|
||||
### 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`
|
||||
|
||||
While SDL3 is selectable, the Maiko code has not yet been updated to work with the SDL3 API.
|
||||
* 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 using `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` for `clang` and uncomment the line (delete the #) for the line that defines `CC` for `gcc`.
|
||||
* There is a cmake configuration (TBD To Be Described here).
|
||||
|
||||
### Building For macOS
|
||||
|
||||
* Building/running on macOS requires either an X server and X client libraries or the SDL2 library.
|
||||
* Running on macOS requires an X server, and building on a Mac requires X client libraries.
|
||||
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
|
||||
|
||||
### Building for Windows 10
|
||||
|
||||
Windows 10 currently requires "Docker for Desktop" or WSL2 and a (Windows X-server).
|
||||
See [Medley's README](https://github.com/Interlisp/medley/blob/master/README.md) for more.
|
||||
|
||||
|
||||
1239
bin/config.guess
vendored
1239
bin/config.guess
vendored
File diff suppressed because it is too large
Load Diff
310
bin/config.sub
vendored
310
bin/config.sub
vendored
@@ -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:
|
||||
|
||||
@@ -9,8 +9,7 @@
|
||||
# #
|
||||
#########################################################################
|
||||
|
||||
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 ;;
|
||||
|
||||
@@ -5,17 +5,11 @@ CC = gcc -m64 $(GCC_CFLAGS) -I/usr/local/include
|
||||
|
||||
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
|
||||
XFLAGS = -DSDL
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
|
||||
LDFLAGS = -lm -L/usr/local/lib -lSDL2
|
||||
#
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -4,21 +4,14 @@ 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
|
||||
SDLFLAGS = -DSDL -F /Library/Frameworks
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g
|
||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||
DFLAGS = $(DEBUGFLAGS) $(SDLFLAGS) -DRELEASE=$(RELEASE)
|
||||
DFLAGS = $(DEBUGFLAGS) $(SDLFLAGS) -DRELEASE=351
|
||||
|
||||
LDFLAGS = -rpath /Library/Frameworks -F /Library/Frameworks -framework SDL2
|
||||
LDFLAGS = -F /Library/Frameworks -framework SDL2
|
||||
LDELDFLAGS =
|
||||
|
||||
OBJECTDIR = ../$(RELEASENAME)/
|
||||
|
||||
@@ -16,9 +16,9 @@ XFILES = $(OBJECTDIR)xmkicon.o \
|
||||
XFLAGS = -I/opt/X11/include -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2
|
||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
OPTFLAGS = -g -O2
|
||||
DEBUGFLAGS = -DARRAYCHECK -DDTDDEBUG # -DDEBUG -DOPTRACE
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351
|
||||
|
||||
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -2,22 +2,16 @@
|
||||
|
||||
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
|
||||
SDLFLAGS = -DSDL -F /Library/Frameworks
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g
|
||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||
DFLAGS = $(DEBUGFLAGS) $(SDLFLAGS) -DRELEASE=$(RELEASE)
|
||||
DFLAGS = $(DEBUGFLAGS) $(SDLFLAGS) -DRELEASE=351
|
||||
|
||||
LDFLAGS = -rpath /Library/Frameworks -F /Library/Frameworks -framework SDL2
|
||||
LDFLAGS = -F /Library/Frameworks -framework SDL2
|
||||
LDELDFLAGS =
|
||||
|
||||
OBJECTDIR = ../$(RELEASENAME)/
|
||||
|
||||
@@ -17,8 +17,8 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O1 -g
|
||||
DEBUGFLAGS = # -DDEBUG -DOPTRACE
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
DEBUGFLAGS = -DARRAYCHECK -DDTDDEBUG # -DDEBUG -DOPTRACE
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351
|
||||
|
||||
LDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||
LDELDFLAGS = -L/opt/X11/lib -lX11 -lm
|
||||
|
||||
@@ -18,7 +18,7 @@ SRCFILES = conspage.c gcoflow.c shift.c dbgtool.c gcr.c gcrcell.c llstk.
|
||||
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)
|
||||
|
||||
|
||||
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 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 bitblt.h debug.h devconf.h dspdata.h ether.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 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
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -4,17 +4,11 @@ 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
|
||||
SDLFLAGS = -DSDL -I/usr/local/include
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g
|
||||
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE)
|
||||
DFLAGS = $(SDLFLAGS) -DRELEASE=351
|
||||
|
||||
LDFLAGS = -L/usr/local/lib -lSDL2 -lm
|
||||
LDELDFLAGS =
|
||||
|
||||
@@ -17,7 +17,7 @@ XFLAGS = -I/usr/local/include -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
|
||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
|
||||
@@ -4,17 +4,11 @@ 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
|
||||
SDLFLAGS = -DSDL -I/usr/local/include
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g
|
||||
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE)
|
||||
DFLAGS = $(SDLFLAGS) -DRELEASE=351
|
||||
|
||||
LDFLAGS = -L/usr/local/lib -lSDL2 -lm
|
||||
LDELDFLAGS =
|
||||
|
||||
@@ -17,7 +17,7 @@ XFLAGS = -I/usr/local/include -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
|
||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
|
||||
@@ -4,17 +4,11 @@ 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
|
||||
SDLFLAGS = -DSDL -I/usr/local/include
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g
|
||||
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE)
|
||||
DFLAGS = $(SDLFLAGS) -DRELEASE=351
|
||||
|
||||
LDFLAGS = -L/usr/local/lib -lSDL2 -lm
|
||||
LDELDFLAGS =
|
||||
|
||||
@@ -17,7 +17,7 @@ XFLAGS = -I/usr/local/include -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
|
||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -18,7 +18,7 @@ XFLAGS = -I/opt/X11/include -DXWINDOW
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O0 -g
|
||||
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
|
||||
|
||||
@@ -17,7 +17,7 @@ XFLAGS = -I/usr/local/include -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O0 for init
|
||||
OPTFLAGS = -O0 -g
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||
|
||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
|
||||
@@ -17,7 +17,7 @@ XFLAGS = -I/usr/local/include -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O0 for init
|
||||
OPTFLAGS = -O0 -g
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||
|
||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
|
||||
@@ -17,7 +17,7 @@ XFLAGS = -I/usr/local/include -DXWINDOW
|
||||
|
||||
# OPTFLAGS is normally -O0 for init
|
||||
OPTFLAGS = -O0 -g
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE) -DNOVERSION -DINIT
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||
|
||||
LDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/local/lib -lX11 -lc -lm
|
||||
|
||||
@@ -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
|
||||
@@ -1,7 +1,7 @@
|
||||
# Options for Linux, x86 processor, X windows, for INIT processing
|
||||
|
||||
CC = gcc $(GCC_CFLAGS)
|
||||
#CC = clang $(CLANG_CFLAGS)
|
||||
#CC = gcc -m64 $(GCC_CFLAGS)
|
||||
CC = clang -m64 $(CLANG_CFLAGS)
|
||||
|
||||
XFILES = $(OBJECTDIR)xmkicon.o \
|
||||
$(OBJECTDIR)xbbt.o \
|
||||
@@ -19,7 +19,7 @@ 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
|
||||
DFLAGS = $(DEBUGFLAGS) $(XFLAGS) -DRELEASE=351 -DNOVERSION -DINIT
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm
|
||||
|
||||
@@ -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
|
||||
@@ -50,7 +50,7 @@ DFLAGS = -DINIT \
|
||||
$(XFLAGS) \
|
||||
$(DEBUGFLAGS) \
|
||||
$(MACHINEFLAGS) \
|
||||
-DNOVERSION -DRELEASE=$(RELEASE)
|
||||
-DNOVERSION -DRELEASE=351
|
||||
|
||||
|
||||
LDFLAGS = -lX11 -lc -lm -lsocket -lnsl
|
||||
|
||||
@@ -5,17 +5,11 @@ CC = gcc -m32 $(GCC_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
|
||||
XFLAGS = -DSDL
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
|
||||
LDFLAGS = -lm -lSDL2
|
||||
LDELDFLAGS =
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -5,17 +5,11 @@ CC = gcc $(GCC_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
|
||||
SDLFLAGS = -DSDL
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(SDLFLAGS) -DRELEASE=$(RELEASE)
|
||||
DFLAGS = $(SDLFLAGS) -DRELEASE=351
|
||||
|
||||
LDFLAGS = -lSDL2 -lm
|
||||
LDELDFLAGS =
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Options for Linux, aarch64 and X-Window
|
||||
# Options for Linux, ARMv7 and X-Window
|
||||
|
||||
CC = gcc $(GCC_CFLAGS)
|
||||
#CC = clang $(CLANG_CFLAGS)
|
||||
@@ -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
|
||||
|
||||
@@ -5,17 +5,11 @@ CC = gcc $(GCC_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
|
||||
XFLAGS = -DSDL
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
|
||||
LDFLAGS = -lm -lSDL2
|
||||
LDELDFLAGS =
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -5,17 +5,11 @@ CC = gcc -m64 $(GCC_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
|
||||
XFLAGS = -DSDL
|
||||
|
||||
# OPTFLAGS is normally -O2.
|
||||
OPTFLAGS = -O2 -g3
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=$(RELEASE)
|
||||
DFLAGS = $(XFLAGS) -DRELEASE=351
|
||||
|
||||
LDFLAGS = -lm -lSDL2
|
||||
LDELDFLAGS =
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -36,7 +36,7 @@ DEBUGFLAGS = # -DSTACKCHECK -DFNSTKCHECK
|
||||
DFLAGS = $(XFLAGS) \
|
||||
$(DEBUGFLAGS) \
|
||||
-DOS5 \
|
||||
-DRELEASE=$(RELEASE)
|
||||
-DRELEASE=351
|
||||
|
||||
LDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl
|
||||
LDELDFLAGS = -L/usr/X11/lib -lX11 -lc -lm -lsocket -lnsl
|
||||
|
||||
@@ -45,7 +45,7 @@ MACHINEFLAGS = -DOS5 -DUSE_DLPI
|
||||
DFLAGS = $(XFLAGS) \
|
||||
$(DEBUGFLAGS) \
|
||||
$(MACHINEFLAGS) \
|
||||
-DRELEASE=$(RELEASE)
|
||||
-DRELEASE=351
|
||||
|
||||
LDFLAGS = -lX11 -lc -lm -lsocket -lnsl
|
||||
LDELDFLAGS = -lX11 -lc -lm -lsocket -lnsl
|
||||
|
||||
@@ -37,7 +37,7 @@ DFLAGS = $(XFLAGS) \
|
||||
$(DEBUGFLAGS) \
|
||||
-DOS5 \
|
||||
-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
|
||||
|
||||
@@ -192,7 +192,7 @@ $(OBJECTDIR)ldeether.o: $(SRCDIR)ldeether.c $(REQUIRED-INCS)
|
||||
$(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 \
|
||||
@@ -292,7 +292,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 +308,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
|
||||
@@ -340,7 +340,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 +348,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 +357,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
|
||||
|
||||
@@ -391,7 +391,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 +423,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 +450,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
|
||||
|
||||
@@ -478,21 +478,21 @@ $(OBJECTDIR)ether_common.o: $(SRCDIR)ether_common.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
|
||||
$(INCDIR)ether.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
|
||||
$(INCDIR)ether.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
|
||||
$(INCDIR)ether.h $(INCDIR)dbprint.h $(INCDIR)etherdefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)ether_nethub.c -o $(OBJECTDIR)ether_nethub.o
|
||||
|
||||
$(OBJECTDIR)findkey.o: $(SRCDIR)findkey.c $(REQUIRED-INCS) \
|
||||
@@ -505,7 +505,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 +632,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 +640,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 +649,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
|
||||
@@ -682,7 +682,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 +698,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 +758,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 +766,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
|
||||
|
||||
@@ -828,7 +828,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
|
||||
|
||||
@@ -843,7 +843,7 @@ $(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)commondefs.h $(INCDIR)tty.h $(INCDIR)ttydefs.h
|
||||
$(CC) $(RFLAGS) $(SRCDIR)tty.c -o $(OBJECTDIR)tty.o
|
||||
|
||||
$(OBJECTDIR)typeof.o: $(SRCDIR)typeof.c $(REQUIRED-INCS) \
|
||||
@@ -876,7 +876,7 @@ $(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 \
|
||||
@@ -908,7 +908,7 @@ $(OBJECTDIR)vars3.o: $(SRCDIR)vars3.c $(REQUIRED-INCS) \
|
||||
$(OBJECTDIR)vmemsave.o: $(SRCDIR)vmemsave.c $(REQUIRED-INCS) \
|
||||
$(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 \
|
||||
@@ -929,7 +929,7 @@ $(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 \
|
||||
@@ -992,7 +992,7 @@ $(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
|
||||
|
||||
|
||||
@@ -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,9 @@ case "$display" in
|
||||
x) releasename=${osversion}.${architecture}-${display}
|
||||
ldename=ldex
|
||||
;;
|
||||
sdl*) releasename=${osversion}.${architecture}-${display}
|
||||
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 +96,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 $*
|
||||
|
||||
16
bin/mkvdate
16
bin/mkvdate
@@ -1,22 +1,6 @@
|
||||
#!/bin/sh
|
||||
if command -v "git" >/dev/null 2>&1; then
|
||||
MAIKO_REV="$(git status --porcelain)"
|
||||
if [ $? == 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
|
||||
|
||||
@@ -1,6 +1,5 @@
|
||||
#!/bin/sh
|
||||
SCRIPTPATH="$( cd "$(dirname "$0")" >/dev/null 2>&1 ; pwd -P )"
|
||||
os=${LDEARCH:-`$SCRIPTPATH/config.guess`}
|
||||
os=${LDEARCH:-`./config.guess`}
|
||||
case "$os" in
|
||||
m68k-*-amigaos) echo amigaos ;;
|
||||
sparc-sun-sunos*) echo sunos4 ;;
|
||||
@@ -12,7 +11,6 @@ case "$os" in
|
||||
*-*-openbsd*) echo openbsd ;;
|
||||
*-*-freebsd*) echo freebsd ;;
|
||||
*-*-cygwin*) echo cygwin ;;
|
||||
*-*-haiku*) echo haiku ;;
|
||||
esac
|
||||
### Don't leave the variable set.
|
||||
unset os
|
||||
|
||||
@@ -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 */
|
||||
|
||||
17
inc/adr68k.h
17
inc/adr68k.h
@@ -28,11 +28,19 @@
|
||||
*/
|
||||
/**********************************************************************/
|
||||
|
||||
#include <execinfo.h>
|
||||
#include <stddef.h>
|
||||
#include <stdio.h>
|
||||
#include "lispemul.h"
|
||||
#include "lspglob.h"
|
||||
|
||||
static inline void dobacktrace()
|
||||
{
|
||||
void* callstack[128];
|
||||
int i, frames = backtrace(callstack, 128);
|
||||
backtrace_symbols_fd(callstack, frames, 2);
|
||||
}
|
||||
|
||||
static inline LispPTR LAddrFromNative(void *NAddr)
|
||||
{
|
||||
if ((uintptr_t)NAddr & 1) {
|
||||
@@ -48,8 +56,9 @@ static inline DLword *NativeAligned2FromLAddr(LispPTR LAddr)
|
||||
|
||||
static inline LispPTR *NativeAligned4FromLAddr(LispPTR LAddr)
|
||||
{
|
||||
if (LAddr & 1) {
|
||||
printf("Misaligned pointer in NativeAligned4FromLAddr 0x%x\n", LAddr);
|
||||
if (LAddr & 1 || LAddr > 0x0FFFFFFF) {
|
||||
printf("Misaligned/bad pointer in NativeAligned4FromLAddr 0x%x\n", LAddr);
|
||||
dobacktrace();
|
||||
}
|
||||
return (void *)(Lisp_world + LAddr);
|
||||
}
|
||||
@@ -63,8 +72,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);
|
||||
if (hoffset > 0xffff) {
|
||||
printf("Stack offset is too large: 0x%tx\n", hoffset);
|
||||
}
|
||||
return (DLword)hoffset;
|
||||
}
|
||||
|
||||
@@ -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
|
||||
*
|
||||
@@ -85,4 +85,4 @@ extern DLword *EmCursorX68K,*EmCursorY68K;
|
||||
#define UNLOCKSCREEN ScreenLocked = NIL
|
||||
|
||||
#endif /* DOS */
|
||||
#endif /* BBTMACRO_H */
|
||||
#endif /* BITBLT_H */
|
||||
@@ -40,7 +40,7 @@ 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)
|
||||
@@ -51,7 +51,7 @@ 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 */
|
||||
|
||||
@@ -64,7 +64,7 @@ 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)
|
||||
@@ -75,7 +75,7 @@ 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)
|
||||
@@ -86,7 +86,7 @@ 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)
|
||||
|
||||
120
inc/ether.h
Normal file
120
inc/ether.h
Normal file
@@ -0,0 +1,120 @@
|
||||
#ifndef ETHER_H
|
||||
#define ETHER_H 1
|
||||
/* $Id: ether.h,v 1.2 1999/01/03 02:05:59 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* (C) Copyright 1989-92 Venue. All Rights Reserved. */
|
||||
/* Manufactured in the United States of America. */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
#include "lispemul.h" /* for LispPTR, DLword */
|
||||
|
||||
#ifndef BYTESWAP
|
||||
|
||||
typedef struct {
|
||||
DLword DLLOCALHOST0;
|
||||
DLword DLLOCALHOST1;
|
||||
DLword DLLOCALHOST2;
|
||||
DLword DLFIRSTICB;
|
||||
DLword DLINPUTMASK;
|
||||
DLword DLFIRSTOCB;
|
||||
DLword DLOUTPUTMASK;
|
||||
DLword DLMISSEDPACKETS;
|
||||
DLword DLLASTICB;
|
||||
DLword DLLASTOCB;
|
||||
} DLETHERCSB;
|
||||
|
||||
typedef struct{
|
||||
DLword DLIOCBLENGTH;
|
||||
DLword DLIOCBBUFFERLO;
|
||||
DLword DLIOCBBUFFERHI;
|
||||
DLword DLRETRANSMISSIONMASK;
|
||||
DLword DLIOCBBYTESUSED;
|
||||
DLword DLIOCBSTATUS;
|
||||
DLword DLNEXTIOCB;
|
||||
DLword DLFOROUTPUTUSE;
|
||||
} DLETHERIOCB;
|
||||
|
||||
typedef struct {
|
||||
unsigned int NETTYPE : 8;
|
||||
unsigned int NDBNEXT : 24;
|
||||
unsigned int NDBPUPNET : 8;
|
||||
unsigned int NDBNSNET : 24;
|
||||
unsigned int NDBTASK : 8;
|
||||
unsigned int NDBBROADCASTP : 24;
|
||||
unsigned int NDBPUPHOST : 8;
|
||||
unsigned int NDBTRANSMITTER : 24;
|
||||
unsigned int nil1: 8;
|
||||
unsigned int NDBENCAPSULATOR : 24;
|
||||
unsigned int NDBIQLENGTH : 8; /* DATATYPE */
|
||||
unsigned int NDBCSB : 24; /* DATATYPE */
|
||||
LispPTR NDBIQ;
|
||||
LispPTR NDBTQ;
|
||||
LispPTR NDBTRANSLATIONS;
|
||||
LispPTR NDBETHERFLUSHER;
|
||||
LispPTR NDBWATCHER;
|
||||
LispPTR NDBCANHEARSELF;
|
||||
LispPTR NDBIPNET;
|
||||
LispPTR NDBIPHOST;
|
||||
DLword NDBPUPTYPE;
|
||||
DLword nil2;
|
||||
LispPTR nil3;
|
||||
} NDB;
|
||||
#else
|
||||
/***********************************************/
|
||||
/* Byte-swapped definitions, for e.g., 80386's */
|
||||
/***********************************************/
|
||||
typedef struct {
|
||||
DLword DLLOCALHOST1;
|
||||
DLword DLLOCALHOST0;
|
||||
DLword DLFIRSTICB;
|
||||
DLword DLLOCALHOST2;
|
||||
DLword DLFIRSTOCB;
|
||||
DLword DLINPUTMASK;
|
||||
DLword DLMISSEDPACKETS;
|
||||
DLword DLOUTPUTMASK;
|
||||
DLword DLLASTOCB;
|
||||
DLword DLLASTICB;
|
||||
} DLETHERCSB;
|
||||
|
||||
typedef struct{
|
||||
DLword DLIOCBBUFFERLO;
|
||||
DLword DLIOCBLENGTH;
|
||||
DLword DLRETRANSMISSIONMASK;
|
||||
DLword DLIOCBBUFFERHI;
|
||||
DLword DLIOCBSTATUS;
|
||||
DLword DLIOCBBYTESUSED;
|
||||
DLword DLFOROUTPUTUSE;
|
||||
DLword DLNEXTIOCB;
|
||||
} DLETHERIOCB;
|
||||
|
||||
typedef struct {
|
||||
unsigned int NDBNEXT : 24;
|
||||
unsigned int NETTYPE : 8;
|
||||
unsigned int NDBNSNET : 24;
|
||||
unsigned int NDBPUPNET : 8;
|
||||
unsigned int NDBBROADCASTP : 24;
|
||||
unsigned int NDBTASK : 8;
|
||||
unsigned int NDBTRANSMITTER : 24;
|
||||
unsigned int NDBPUPHOST : 8;
|
||||
unsigned int NDBENCAPSULATOR : 24;
|
||||
unsigned int nil1: 8;
|
||||
unsigned int NDBCSB : 24; /* DATATYPE */
|
||||
unsigned int NDBIQLENGTH : 8; /* DATATYPE */
|
||||
LispPTR NDBIQ;
|
||||
LispPTR NDBTQ;
|
||||
LispPTR NDBTRANSLATIONS;
|
||||
LispPTR NDBETHERFLUSHER;
|
||||
LispPTR NDBWATCHER;
|
||||
LispPTR NDBCANHEARSELF;
|
||||
LispPTR NDBIPNET;
|
||||
LispPTR NDBIPHOST;
|
||||
DLword nil2;
|
||||
DLword NDBPUPTYPE;
|
||||
LispPTR nil3;
|
||||
} NDB;
|
||||
|
||||
#endif /* BYTESWAP */
|
||||
|
||||
#endif /* ETHER_H */
|
||||
35
inc/gcdata.h
35
inc/gcdata.h
@@ -18,7 +18,8 @@
|
||||
*/
|
||||
/**********************************************************************/
|
||||
#include "lispemul.h" /* for LispPTR, DLword */
|
||||
#include "version.h" /* for BIGVM */
|
||||
#include "version.h" /* for USHORT */
|
||||
#include "gchtfinddefs.h"
|
||||
|
||||
#define ADDREF 0 /* for gclookup routine. */
|
||||
#define DELREF 1 /* for gclookup routine. */
|
||||
@@ -131,10 +132,10 @@
|
||||
#ifdef BIGVM
|
||||
struct hashentry
|
||||
{ /* GC hashtable entry */
|
||||
DLword count :15;
|
||||
DLword stackref :1;
|
||||
DLword segnum :15;
|
||||
DLword collision :1;
|
||||
unsigned short count :15;
|
||||
unsigned short stackref :1;
|
||||
unsigned short segnum :15;
|
||||
unsigned short collision :1;
|
||||
};
|
||||
|
||||
struct htlinkptr
|
||||
@@ -162,10 +163,10 @@ struct htoverflow
|
||||
#else
|
||||
struct hashentry
|
||||
{ /* GC hashtable entry */
|
||||
DLword count :6;
|
||||
DLword stackref :1;
|
||||
DLword segnum :8;
|
||||
DLword collision :1;
|
||||
USHORT count :6;
|
||||
USHORT stackref :1;
|
||||
USHORT segnum :8;
|
||||
USHORT collision :1;
|
||||
};
|
||||
|
||||
struct htlinkptr
|
||||
@@ -200,10 +201,10 @@ struct htoverflow
|
||||
#ifdef BIGVM
|
||||
struct hashentry
|
||||
{ /* GC hashtable entry */
|
||||
DLword collision :1;
|
||||
DLword segnum :15;
|
||||
DLword stackref :1;
|
||||
DLword count :15;
|
||||
USHORT collision :1;
|
||||
USHORT segnum :15;
|
||||
USHORT stackref :1;
|
||||
USHORT count :15;
|
||||
};
|
||||
|
||||
struct htlinkptr
|
||||
@@ -231,10 +232,10 @@ struct htoverflow
|
||||
#else
|
||||
struct hashentry
|
||||
{ /* GC hashtable entry */
|
||||
DLword collision :1;
|
||||
DLword segnum :8;
|
||||
DLword stackref :1;
|
||||
DLword count :6;
|
||||
USHORT collision :1;
|
||||
USHORT segnum :8;
|
||||
USHORT stackref :1;
|
||||
USHORT count :6;
|
||||
};
|
||||
|
||||
struct htlinkptr
|
||||
|
||||
@@ -1,9 +1,8 @@
|
||||
#ifndef GCHTFINDDEFS_H
|
||||
#define GCHTFINDDEFS_H 1
|
||||
#include "lispemul.h" /* for LispPTR, DLword */
|
||||
#include "gcdata.h" /* for GCENTRY */
|
||||
void enter_big_reference_count(LispPTR ptr);
|
||||
void modify_big_reference_count(GCENTRY *entry, DLword casep, LispPTR ptr);
|
||||
void modify_big_reference_count(LispPTR *entry, DLword casep, LispPTR ptr);
|
||||
LispPTR htfind(LispPTR ptr, int casep);
|
||||
LispPTR rec_htfind(LispPTR ptr, int casep);
|
||||
#endif
|
||||
|
||||
@@ -217,7 +217,7 @@
|
||||
|
||||
#define FJUMPMACRO(x) \
|
||||
do { \
|
||||
if (TOPOFSTACK != 0) { POP; nextop1; } \
|
||||
if (TOPOFSTACK != 0) { goto PopNextop1; } \
|
||||
{ \
|
||||
CHECK_INTERRUPT; \
|
||||
POP; \
|
||||
@@ -227,7 +227,7 @@
|
||||
} while (0)
|
||||
#define TJUMPMACRO(x) \
|
||||
do { \
|
||||
if (TOPOFSTACK == 0) { POP; nextop1; } \
|
||||
if (TOPOFSTACK == 0) { goto PopNextop1; } \
|
||||
{ \
|
||||
CHECK_INTERRUPT; \
|
||||
POP; \
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
void process_io_events(void);
|
||||
void kb_trans(u_short keycode, u_short upflg);
|
||||
void taking_mouse_down(void);
|
||||
void taking_mouse_up(int newx, int newy);
|
||||
void copy_cursor(int newx, int newy);
|
||||
void cursor_hidden_bitmap(int x, int y);
|
||||
#endif
|
||||
|
||||
@@ -267,22 +267,22 @@ struct state {
|
||||
|
||||
/* For bit test */
|
||||
typedef struct wbits {
|
||||
DLword LSB : 1;
|
||||
DLword B14 : 1;
|
||||
DLword B13 : 1;
|
||||
DLword B12 : 1;
|
||||
DLword B11 : 1;
|
||||
DLword B10 : 1;
|
||||
DLword B9 : 1;
|
||||
DLword B8 : 1;
|
||||
DLword B7 : 1;
|
||||
DLword B6 : 1;
|
||||
DLword B5 : 1;
|
||||
DLword B4 : 1;
|
||||
DLword B3 : 1;
|
||||
DLword B2 : 1;
|
||||
DLword B1 : 1;
|
||||
DLword xMSB : 1;
|
||||
USHORT LSB : 1;
|
||||
USHORT B14 : 1;
|
||||
USHORT B13 : 1;
|
||||
USHORT B12 : 1;
|
||||
USHORT B11 : 1;
|
||||
USHORT B10 : 1;
|
||||
USHORT B9 : 1;
|
||||
USHORT B8 : 1;
|
||||
USHORT B7 : 1;
|
||||
USHORT B6 : 1;
|
||||
USHORT B5 : 1;
|
||||
USHORT B4 : 1;
|
||||
USHORT B3 : 1;
|
||||
USHORT B2 : 1;
|
||||
USHORT B1 : 1;
|
||||
USHORT xMSB : 1;
|
||||
} WBITS;
|
||||
|
||||
#define PUTBASEBIT68K(base68k, offset, bitvalue) \
|
||||
|
||||
@@ -194,9 +194,8 @@ do { \
|
||||
#endif /* min */
|
||||
|
||||
#define LispNumToCInt(Lisp) \
|
||||
( (((Lisp) & SEGMASK) == S_POSITIVE) ? ((Lisp) & 0xFFFF) : \
|
||||
(((Lisp) & SEGMASK) == S_NEGATIVE) ? ((Lisp) | 0xFFFF0000) : \
|
||||
(*((int *)(NativeAligned4FromLAddr(Lisp)))) )
|
||||
( (((Lisp) & SEGMASK) == S_POSITIVE) ? \
|
||||
((Lisp) & 0xFFFF) : (*((int *)(NativeAligned4FromLAddr(Lisp)))) )
|
||||
|
||||
#define UPLOWDIFF 0x20
|
||||
|
||||
@@ -499,8 +498,7 @@ do { \
|
||||
#define MAXVERSION 999999999
|
||||
|
||||
#define LASTVERSIONARRAY ((unsigned) -1)
|
||||
#define VERSIONARRAYCHUNKLENGTH 200
|
||||
#define VERSIONARRAYMAXLENGTH 2000
|
||||
#define VERSIONARRAYLENGTH 200
|
||||
|
||||
#define NoFileP(varray) \
|
||||
(((varray)->version_no == LASTVERSIONARRAY)? 1 : 0)
|
||||
|
||||
107
inc/lsptypes.h
107
inc/lsptypes.h
@@ -699,111 +699,4 @@ typedef
|
||||
/* low-order 12 bits first. */
|
||||
} BIGNUM;
|
||||
|
||||
|
||||
/* Ethernet records */
|
||||
|
||||
#ifndef BYTESWAP
|
||||
typedef struct {
|
||||
DLword DLLOCALHOST0;
|
||||
DLword DLLOCALHOST1;
|
||||
DLword DLLOCALHOST2;
|
||||
DLword DLFIRSTICB;
|
||||
DLword DLINPUTMASK;
|
||||
DLword DLFIRSTOCB;
|
||||
DLword DLOUTPUTMASK;
|
||||
DLword DLMISSEDPACKETS;
|
||||
DLword DLLASTICB;
|
||||
DLword DLLASTOCB;
|
||||
} DLETHERCSB;
|
||||
|
||||
typedef struct{
|
||||
DLword DLIOCBLENGTH;
|
||||
DLword DLIOCBBUFFERLO;
|
||||
DLword DLIOCBBUFFERHI;
|
||||
DLword DLRETRANSMISSIONMASK;
|
||||
DLword DLIOCBBYTESUSED;
|
||||
DLword DLIOCBSTATUS;
|
||||
DLword DLNEXTIOCB;
|
||||
DLword DLFOROUTPUTUSE;
|
||||
} DLETHERIOCB;
|
||||
|
||||
typedef struct {
|
||||
unsigned int NETTYPE : 8;
|
||||
unsigned int NDBNEXT : 24;
|
||||
unsigned int NDBPUPNET : 8;
|
||||
unsigned int NDBNSNET : 24;
|
||||
unsigned int NDBTASK : 8;
|
||||
unsigned int NDBBROADCASTP : 24;
|
||||
unsigned int NDBPUPHOST : 8;
|
||||
unsigned int NDBTRANSMITTER : 24;
|
||||
unsigned int nil1: 8;
|
||||
unsigned int NDBENCAPSULATOR : 24;
|
||||
unsigned int NDBIQLENGTH : 8; /* DATATYPE */
|
||||
unsigned int NDBCSB : 24; /* DATATYPE */
|
||||
LispPTR NDBIQ;
|
||||
LispPTR NDBTQ;
|
||||
LispPTR NDBTRANSLATIONS;
|
||||
LispPTR NDBETHERFLUSHER;
|
||||
LispPTR NDBWATCHER;
|
||||
LispPTR NDBCANHEARSELF;
|
||||
LispPTR NDBIPNET;
|
||||
LispPTR NDBIPHOST;
|
||||
DLword NDBPUPTYPE;
|
||||
DLword nil2;
|
||||
LispPTR nil3;
|
||||
} NDB;
|
||||
#else
|
||||
/***********************************************/
|
||||
/* Byte-swapped definitions, for e.g., 80386's */
|
||||
/***********************************************/
|
||||
typedef struct {
|
||||
DLword DLLOCALHOST1;
|
||||
DLword DLLOCALHOST0;
|
||||
DLword DLFIRSTICB;
|
||||
DLword DLLOCALHOST2;
|
||||
DLword DLFIRSTOCB;
|
||||
DLword DLINPUTMASK;
|
||||
DLword DLMISSEDPACKETS;
|
||||
DLword DLOUTPUTMASK;
|
||||
DLword DLLASTOCB;
|
||||
DLword DLLASTICB;
|
||||
} DLETHERCSB;
|
||||
|
||||
typedef struct{
|
||||
DLword DLIOCBBUFFERLO;
|
||||
DLword DLIOCBLENGTH;
|
||||
DLword DLRETRANSMISSIONMASK;
|
||||
DLword DLIOCBBUFFERHI;
|
||||
DLword DLIOCBSTATUS;
|
||||
DLword DLIOCBBYTESUSED;
|
||||
DLword DLFOROUTPUTUSE;
|
||||
DLword DLNEXTIOCB;
|
||||
} DLETHERIOCB;
|
||||
|
||||
typedef struct {
|
||||
unsigned int NDBNEXT : 24;
|
||||
unsigned int NETTYPE : 8;
|
||||
unsigned int NDBNSNET : 24;
|
||||
unsigned int NDBPUPNET : 8;
|
||||
unsigned int NDBBROADCASTP : 24;
|
||||
unsigned int NDBTASK : 8;
|
||||
unsigned int NDBTRANSMITTER : 24;
|
||||
unsigned int NDBPUPHOST : 8;
|
||||
unsigned int NDBENCAPSULATOR : 24;
|
||||
unsigned int nil1: 8;
|
||||
unsigned int NDBCSB : 24; /* DATATYPE */
|
||||
unsigned int NDBIQLENGTH : 8; /* DATATYPE */
|
||||
LispPTR NDBIQ;
|
||||
LispPTR NDBTQ;
|
||||
LispPTR NDBTRANSLATIONS;
|
||||
LispPTR NDBETHERFLUSHER;
|
||||
LispPTR NDBWATCHER;
|
||||
LispPTR NDBCANHEARSELF;
|
||||
LispPTR NDBIPNET;
|
||||
LispPTR NDBIPHOST;
|
||||
DLword nil2;
|
||||
DLword NDBPUPTYPE;
|
||||
LispPTR nil3;
|
||||
} NDB;
|
||||
#endif /* BYTESWAP */
|
||||
#endif /* LSPTYPES_H */
|
||||
|
||||
@@ -83,19 +83,6 @@
|
||||
# define MAIKO_OS_DETECTED 1
|
||||
#endif
|
||||
|
||||
#ifdef __EMSCRIPTEN__
|
||||
# define MAIKO_OS_LINUX 1
|
||||
# define MAIKO_OS_EMSCRIPTEN 1
|
||||
# define MAIKO_OS_NAME "Emscripten"
|
||||
# define MAIKO_EMULATE_TIMER_INTERRUPTS 1
|
||||
# define MAIKO_EMULATE_ASYNC_INTERRUPTS 1
|
||||
# define MAIKO_OS_UNIX_LIKE 1
|
||||
# define MAIKO_OS_DETECTED
|
||||
# define MAIKO_ARCH_NAME "WebAssembly"
|
||||
# define MAIKO_ARCH_WORD_BITS 32
|
||||
# define MAIKO_ARCH_DETECTED 1
|
||||
#endif
|
||||
|
||||
/* __x86_64__: GNU C, __x86_64: Sun Studio, _M_AMD64: Visual Studio */
|
||||
#if defined(__x86_64__) || defined(__x86_64) || defined(_M_AMD64)
|
||||
# define MAIKO_ARCH_X86_64 1
|
||||
@@ -166,12 +153,6 @@
|
||||
# define MAIKO_ARCH_DETECTED 1
|
||||
#endif
|
||||
|
||||
#ifdef __HAIKU__
|
||||
# define MAIKO_OS_HAIKU 1
|
||||
# define MAIKO_OS_NAME "Haiku"
|
||||
# define MAIKO_OS_UNIX_LIKE 1
|
||||
# define MAIKO_OS_DETECTED 1
|
||||
#endif
|
||||
/* Modern GNU C, Clang, Sun Studio provide __BYTE_ORDER__
|
||||
* Older GNU C (ca. 4.0.1) provides __BIG_ENDIAN__/__LITTLE_ENDIAN__
|
||||
*/
|
||||
|
||||
1
inc/my.h
1
inc/my.h
@@ -20,7 +20,6 @@
|
||||
#include "version.h" // for BIGVM
|
||||
#include "adr68k.h" // for NativeAligned2FromLAddr, NativeAligned4FromLAddr, LAddrFromNative
|
||||
#include "arith.h" // for N_ARITH_SWITCH, N_GETNUMBER
|
||||
#include "gchtfinddefs.h"// for htfind, rec_htfind, from gcdata.h macros
|
||||
#include "gcdata.h" // for ADDREF, DELREF
|
||||
#include "lispemul.h" // for ERROR_EXIT, LispPTR, DLword, SEGMASK, state
|
||||
#include "lispmap.h" // for S_POSITIVE, S_CHARACTER, S_NEGATIVE
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#ifndef OSMSGPRINT_H
|
||||
#define OSMSGPRINT_H 1
|
||||
#ifndef OSMSG_H
|
||||
#define OSMSG_H 1
|
||||
/* $Id: osmsg.h,v 1.2 1999/01/03 02:06:20 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
|
||||
|
||||
|
||||
@@ -23,4 +23,4 @@
|
||||
print_exp; \
|
||||
} while (0)
|
||||
|
||||
#endif /* OSMSGPRINT_H */
|
||||
#endif /* OSMSG_H */
|
||||
@@ -1,8 +0,0 @@
|
||||
#ifndef RAWCOLORDEFS_H
|
||||
#define RAWCOLORDEFS_H 1
|
||||
#include "lispemul.h" /* for LispPTR */
|
||||
void C_slowbltchar(LispPTR *args);
|
||||
LispPTR Colorize_Bitmap(LispPTR args[]);
|
||||
void Draw_8BppColorLine(LispPTR *args);
|
||||
void Uncolorize_Bitmap(LispPTR args[]);
|
||||
#endif
|
||||
@@ -1,12 +1,12 @@
|
||||
#ifndef RETMACRO_H
|
||||
#define RETMACRO_H 1
|
||||
#ifndef RETURN_H
|
||||
#define RETURN_H 1
|
||||
/* $Id: return.h,v 1.2 1999/01/03 02:06:22 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
|
||||
|
||||
|
||||
/**************************************************************/
|
||||
/*
|
||||
|
||||
File Name : retmacro.h (was return.h)
|
||||
File Name : return.h
|
||||
Desc. : Macros for return,contextsw
|
||||
|
||||
Written by : Takeshi Shimizu
|
||||
@@ -37,7 +37,7 @@
|
||||
#define FastRetCALL \
|
||||
do { \
|
||||
/* Get IVar from Returnee's IVAR offset slot(BF) */ \
|
||||
IVar = NativeAligned2FromStackOffset(GETWORD((DLword *)CURRENTFX - 1)); \
|
||||
IVar = NativeAligned2FromLAddr(STK_OFFSET | GETWORD((DLword *)CURRENTFX -1)); \
|
||||
/* Get FuncObj from Returnee's FNHEAD slot in FX */ \
|
||||
FuncObj = (struct fnhead *)NativeAligned4FromLAddr(FX_FNHEADER); \
|
||||
/* Get PC from Returnee's pc slot in FX */ \
|
||||
@@ -47,7 +47,7 @@
|
||||
#define FastRetCALL \
|
||||
do { \
|
||||
/* Get IVar from Returnee's IVAR offset slot(BF) */ \
|
||||
IVar = NativeAligned2FromStackOffset(GETWORD((DLword *)CURRENTFX - 1)); \
|
||||
IVar = NativeAligned2FromLAddr(STK_OFFSET | GETWORD((DLword *)CURRENTFX -1)); \
|
||||
/* Get FuncObj from Returnee's FNHEAD slot in FX */ \
|
||||
FuncObj = (struct fnhead *)NativeAligned4FromLAddr(FX_FNHEADER); \
|
||||
/* Get PC from Returnee's pc slot in FX */ \
|
||||
@@ -111,4 +111,4 @@
|
||||
S_CHECK( EndSTKP > CurrentStackPTR, \
|
||||
"End of stack isn't beyond current stk pointer."); \
|
||||
} while (0)
|
||||
#endif /* RETMACRO_H */
|
||||
#endif /* RETURN_H */
|
||||
114
inc/stack.h
114
inc/stack.h
@@ -79,22 +79,22 @@ typedef struct fnhead {
|
||||
} FNHEAD;
|
||||
|
||||
typedef struct frameex1 {
|
||||
DLword flags : 3;
|
||||
DLword fast : 1;
|
||||
DLword nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||
DLword incall : 1;
|
||||
DLword validnametable : 1;
|
||||
unsigned flags : 3;
|
||||
unsigned fast : 1;
|
||||
unsigned nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||
unsigned incall : 1;
|
||||
unsigned validnametable : 1;
|
||||
/* 0: look for FunctionHeader
|
||||
1: look for NameTable on this FrameEx */
|
||||
DLword nopush : 1;
|
||||
DLword usecount : 8;
|
||||
unsigned nopush : 1;
|
||||
unsigned usecount : 8;
|
||||
DLword alink; /* alink pointer (Low addr) */
|
||||
#ifdef BIGVM
|
||||
LispPTR fnheader; /* pointer to FunctionHeader (Hi2 addr) */
|
||||
#else
|
||||
DLword lofnheader; /* pointer to FunctionHeader (Low addr) */
|
||||
DLword hi1fnheader : 8; /* pointer to FunctionHeader (Hi1 addr) */
|
||||
DLword hi2fnheader : 8; /* pointer to FunctionHeader (Hi2 addr) */
|
||||
unsigned hi1fnheader : 8; /* pointer to FunctionHeader (Hi1 addr) */
|
||||
unsigned hi2fnheader : 8; /* pointer to FunctionHeader (Hi2 addr) */
|
||||
#endif /* BIGVM */
|
||||
DLword nextblock; /* pointer to FreeStackBlock */
|
||||
DLword pc; /* Program counter */
|
||||
@@ -102,23 +102,23 @@ typedef struct frameex1 {
|
||||
LispPTR nametable; /* ptr to NameTable of this FrameEx (Hi2 addr) */
|
||||
#else
|
||||
DLword lonametable; /* ptr to NameTable of this FrameEx (Low addr) */
|
||||
DLword hi1nametable : 8; /* ptr to NameTable of this FrameEx (Hi1 addr) */
|
||||
DLword hi2nametable : 8; /* ptr to NameTable of this FrameEx (Hi2 addr) */
|
||||
unsigned hi1nametable : 8; /* ptr to NameTable of this FrameEx (Hi1 addr) */
|
||||
unsigned hi2nametable : 8; /* ptr to NameTable of this FrameEx (Hi2 addr) */
|
||||
#endif /* BIGVM */
|
||||
DLword blink; /* blink pointer (Low addr) */
|
||||
DLword clink; /* clink pointer (Low addr) */
|
||||
} FX;
|
||||
|
||||
typedef struct frameex2 {
|
||||
DLword flags : 3;
|
||||
DLword fast : 1;
|
||||
DLword nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||
DLword incall : 1;
|
||||
DLword validnametable : 1;
|
||||
unsigned flags : 3;
|
||||
unsigned fast : 1;
|
||||
unsigned nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||
unsigned incall : 1;
|
||||
unsigned validnametable : 1;
|
||||
/* 0: look for FunctionHeader
|
||||
1: look for NameTable on this FrameEx */
|
||||
DLword nopush : 1;
|
||||
DLword usecount : 8;
|
||||
unsigned nopush : 1;
|
||||
unsigned usecount : 8;
|
||||
DLword alink; /* alink pointer (Low addr) */
|
||||
LispPTR fnheader; /* pointer to FunctionHeader */
|
||||
DLword nextblock; /* pointer to FreeStackBlock */
|
||||
@@ -135,19 +135,19 @@ typedef struct fxblock {
|
||||
} FXBLOCK;
|
||||
|
||||
typedef struct basic_frame {
|
||||
DLword flags : 3;
|
||||
DLword nil : 3;
|
||||
DLword residual : 1;
|
||||
DLword padding : 1;
|
||||
DLword usecnt : 8;
|
||||
unsigned flags : 3;
|
||||
unsigned nil : 3;
|
||||
unsigned residual : 1;
|
||||
unsigned padding : 1;
|
||||
unsigned usecnt : 8;
|
||||
DLword ivar; /* stk offset of IVARs for this frame ?? */
|
||||
|
||||
} Bframe;
|
||||
|
||||
typedef struct stkword {
|
||||
DLword flags : 3;
|
||||
DLword nil : 5;
|
||||
DLword usecount : 8;
|
||||
unsigned short flags : 3;
|
||||
unsigned short nil : 5;
|
||||
unsigned short usecount : 8;
|
||||
} StackWord;
|
||||
|
||||
typedef struct stack_block {
|
||||
@@ -185,33 +185,33 @@ typedef struct fnhead {
|
||||
unsigned nil3 : 2; /* not used */
|
||||
unsigned nil2 : 2; /* not used */
|
||||
#endif /* BIGVM */
|
||||
DLword argtype : 2; /* ?? */
|
||||
DLword byteswapped : 1; /* code was reswapped. */
|
||||
DLword nil4 : 1; /* not used, prev: native translated? */
|
||||
DLword fvaroffset : 8;
|
||||
unsigned argtype : 2; /* ?? */
|
||||
unsigned byteswapped : 1; /* code was reswapped. */
|
||||
unsigned nil4 : 1; /* not used, prev: native translated? */
|
||||
unsigned fvaroffset : 8;
|
||||
/* DLword offset from head of NameTable */
|
||||
DLword nlocals : 8; /* ?? */
|
||||
unsigned nlocals : 8; /* ?? */
|
||||
DLword ntsize; /* size of NameTable */
|
||||
/* NameTable of variable length is following with this structure. */
|
||||
} FNHEAD;
|
||||
|
||||
typedef struct frameex1 {
|
||||
DLword alink; /* alink pointer (Low addr) */
|
||||
DLword usecount : 8;
|
||||
DLword nopush : 1;
|
||||
DLword validnametable : 1;
|
||||
unsigned usecount : 8;
|
||||
unsigned nopush : 1;
|
||||
unsigned validnametable : 1;
|
||||
/* 0: look for FunctionHeader
|
||||
1: look for NameTable on this FrameEx */
|
||||
DLword incall : 1;
|
||||
DLword nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||
DLword fast : 1;
|
||||
DLword flags : 3; /* hi word */
|
||||
unsigned incall : 1;
|
||||
unsigned nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||
unsigned fast : 1;
|
||||
unsigned flags : 3; /* hi word */
|
||||
|
||||
#ifdef BIGVM
|
||||
LispPTR fnheader; /* pointer to FunctionHeader (Hi2 addr) */
|
||||
#else
|
||||
DLword hi2fnheader : 8; /* pointer to FunctionHeader (Hi2 addr) */
|
||||
DLword hi1fnheader : 8; /* pointer to FunctionHeader (Hi1 addr) */
|
||||
unsigned hi2fnheader : 8; /* pointer to FunctionHeader (Hi2 addr) */
|
||||
unsigned hi1fnheader : 8; /* pointer to FunctionHeader (Hi1 addr) */
|
||||
DLword lofnheader; /* pointer to FunctionHeader (Low addr) */
|
||||
#endif /* BIGVM */
|
||||
|
||||
@@ -221,8 +221,8 @@ typedef struct frameex1 {
|
||||
#ifdef BIGVM
|
||||
LispPTR nametable; /* pointer to NameTable of this FX (Hi2 addr) */
|
||||
#else
|
||||
DLword hi2nametable : 8; /* pointer to NameTable of this FX (Hi2 addr) */
|
||||
DLword hi1nametable : 8; /* pointer to NameTable of this FX (Hi1 addr) */
|
||||
unsigned hi2nametable : 8; /* pointer to NameTable of this FX (Hi2 addr) */
|
||||
unsigned hi1nametable : 8; /* pointer to NameTable of this FX (Hi1 addr) */
|
||||
DLword lonametable; /* pointer to NameTable of this FX (Low addr) */
|
||||
#endif /* BIGVM */
|
||||
|
||||
@@ -232,15 +232,15 @@ typedef struct frameex1 {
|
||||
|
||||
typedef struct frameex2 {
|
||||
DLword alink; /* alink pointer (Low addr) */
|
||||
DLword usecount : 8;
|
||||
DLword nopush : 1;
|
||||
DLword validnametable : 1;
|
||||
unsigned usecount : 8;
|
||||
unsigned nopush : 1;
|
||||
unsigned validnametable : 1;
|
||||
/* 0: look for FunctionHeader
|
||||
1: look for NameTable on this FrameEx */
|
||||
DLword incall : 1;
|
||||
DLword nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||
DLword fast : 1;
|
||||
DLword flags : 3;
|
||||
unsigned incall : 1;
|
||||
unsigned nil2 : 1; /* not used, prev: This frame treats N-func */
|
||||
unsigned fast : 1;
|
||||
unsigned flags : 3;
|
||||
|
||||
LispPTR fnheader; /* pointer to FunctionHeader (swapped) */
|
||||
|
||||
@@ -261,18 +261,18 @@ typedef struct fxblock {
|
||||
|
||||
typedef struct basic_frame {
|
||||
DLword ivar;
|
||||
DLword usecnt : 8;
|
||||
DLword padding : 1;
|
||||
DLword residual : 1;
|
||||
DLword nil : 3;
|
||||
DLword flags : 3;
|
||||
unsigned usecnt : 8;
|
||||
unsigned padding : 1;
|
||||
unsigned residual : 1;
|
||||
unsigned nil : 3;
|
||||
unsigned flags : 3;
|
||||
|
||||
} Bframe;
|
||||
|
||||
typedef struct stkword {
|
||||
DLword usecount : 8;
|
||||
DLword nil : 5;
|
||||
DLword flags : 3;
|
||||
USHORT usecount : 8;
|
||||
USHORT nil : 5;
|
||||
USHORT flags : 3;
|
||||
} StackWord;
|
||||
|
||||
typedef struct stack_block {
|
||||
|
||||
67
inc/tty.h
Normal file
67
inc/tty.h
Normal file
@@ -0,0 +1,67 @@
|
||||
#ifndef TTY_H
|
||||
#define TTY_H 1
|
||||
/* $Id: tty.h,v 1.2 1999/01/03 02:06:29 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* (C) Copyright 1989-96 Venue. All Rights Reserved. */
|
||||
/* Manufactured in the United States of America. */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
#include "lispemul.h" /* for DLword */
|
||||
|
||||
/*
|
||||
TTY Command
|
||||
*/
|
||||
|
||||
#define TTY_GET_STATUS 33280>>8
|
||||
#define TTY_ON 33536>>8
|
||||
#define TTY_OFF 33792>>8
|
||||
#define TTY_BREAK_ON 34304>>8
|
||||
#define TTY_BREAK_OFF 34560>>8
|
||||
#define PUT_CHAR 128
|
||||
#define ABORT_PUT 133
|
||||
#define SET_PARAM 129
|
||||
#define SET_DSR 33025
|
||||
#define SET_CTS 33026
|
||||
#define SET_CHAR_LENGTH 33028
|
||||
#define SET_PARITY 33032
|
||||
#define SET_STOP_BITS 33040
|
||||
#define SET_BAUD_RATE 33056
|
||||
#define SET_ALL_PARAMETERS 33087
|
||||
|
||||
typedef struct {
|
||||
unsigned command : 8;
|
||||
unsigned outdata : 8;
|
||||
} DLTTY_OUT_COMMAND;
|
||||
|
||||
typedef struct {
|
||||
unsigned on_off : 4;
|
||||
unsigned line_speed : 4;
|
||||
unsigned stop_bits : 2;
|
||||
unsigned parity : 2;
|
||||
unsigned char_length : 2;
|
||||
unsigned clear_to_send : 1;
|
||||
unsigned data_set_ready : 1;
|
||||
DLword notify_mask;
|
||||
} DLTTY_OUT_CSB;
|
||||
|
||||
typedef struct {
|
||||
unsigned state : 1;
|
||||
unsigned nil1 : 7;
|
||||
unsigned success : 1;
|
||||
unsigned break_detected : 1;
|
||||
unsigned framing_error : 1;
|
||||
unsigned data_lost : 1;
|
||||
unsigned parity_error : 1;
|
||||
unsigned nil2 : 2;
|
||||
unsigned not_ready : 1;
|
||||
char in_data;
|
||||
unsigned data_terminal_ready : 1;
|
||||
unsigned nil3 : 4;
|
||||
unsigned request_to_send : 1;
|
||||
unsigned rx_ready : 1;
|
||||
unsigned tx_ready : 1;
|
||||
} DLTTY_IN_CSB;
|
||||
|
||||
#endif /* TTY_H */
|
||||
@@ -6,5 +6,5 @@ LispPTR unix_username(LispPTR *args);
|
||||
LispPTR unix_getparm(LispPTR *args);
|
||||
LispPTR unix_getenv(LispPTR *args);
|
||||
LispPTR unix_fullname(LispPTR *args);
|
||||
LispPTR suspend_lisp(void);
|
||||
LispPTR suspend_lisp(LispPTR *args);
|
||||
#endif
|
||||
|
||||
@@ -227,6 +227,9 @@ typedef unsigned char u_char;
|
||||
typedef unsigned long u_int;
|
||||
typedef unsigned short u_short;
|
||||
#undef UNALIGNED_FETCH_OK
|
||||
typedef unsigned USHORT;
|
||||
#else
|
||||
typedef unsigned short USHORT;
|
||||
#endif /* DOS */
|
||||
|
||||
/****************************************************************/
|
||||
@@ -234,14 +237,6 @@ typedef unsigned short u_short;
|
||||
/* --Start of system-specific flags */
|
||||
/* */
|
||||
/****************************************************************/
|
||||
#ifdef MAIKO_OS_MACOS
|
||||
/* macOS does not follow the POSIX standard for the names of the stat
|
||||
fields that allow access to the nanosecond resolution times
|
||||
*/
|
||||
#define st_atim st_atimespec
|
||||
#define st_mtim st_mtimespec
|
||||
#define st_ctim st_ctimespec
|
||||
#endif
|
||||
|
||||
/****************************************************************/
|
||||
/* End of system-specific flag settings */
|
||||
|
||||
25
inc/vmemsave.h
Normal file
25
inc/vmemsave.h
Normal file
@@ -0,0 +1,25 @@
|
||||
#ifndef VMEMSAVE_H
|
||||
#define VMEMSAVE_H 1
|
||||
/* $Id: vmemsave.h,v 1.2 1999/01/03 02:06:29 sybalsky Exp $ (C) Copyright Venue, All Rights Reserved */
|
||||
|
||||
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* (C) Copyright 1989-96 Venue. All Rights Reserved. */
|
||||
/* Manufactured in the United States of America. */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
|
||||
/*
|
||||
File Name : vmemsave.h
|
||||
DEfinition for vmemsave
|
||||
*/
|
||||
|
||||
#define FP_IFPAGE 512 /* IFPAGE address in sysoutfile by Byte */
|
||||
#define DOMINOPAGES 301 /* skip dominopages in fptovp */
|
||||
#define SKIPPAGES 301 /* save first filepage */
|
||||
#define SKIP_DOMINOPAGES 153600 /* Byte size in sysoutfile for dominocode */
|
||||
#define SAVE_IFPAGE 223 /* Virtual address for IFPAGES's buffer page. This value is \EMUSWAPBUFFERS in lisp. */
|
||||
#endif /* VMEMSAVE_H */
|
||||
@@ -4,5 +4,5 @@
|
||||
int lispstringP(LispPTR Lisp);
|
||||
LispPTR vmem_save(char *sysout_file_name);
|
||||
LispPTR vmem_save0(LispPTR *args);
|
||||
void lisp_finish(int exit_status);
|
||||
void lisp_finish(void);
|
||||
#endif
|
||||
|
||||
18
inc/xscroll.h
Normal file
18
inc/xscroll.h
Normal file
@@ -0,0 +1,18 @@
|
||||
#ifndef XSCROLL_H
|
||||
#define XSCROLL_H 1
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* xscroll.h */
|
||||
/* */
|
||||
/* Scrolling functions implemented in xscroll.c */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
#include "devif.h" /* for DspInterface */
|
||||
void Scroll(DspInterface dsp, int newX, int newY);
|
||||
void JumpScrollVer(DspInterface dsp, int y);
|
||||
void JumpScrollHor(DspInterface dsp, int x);
|
||||
void ScrollLeft(DspInterface dsp);
|
||||
void ScrollRight(DspInterface dsp);
|
||||
void ScrollUp(DspInterface dsp);
|
||||
void ScrollDown(DspInterface dsp);
|
||||
#endif /* XSCROLL_H */
|
||||
11
src/bbtsub.c
11
src/bbtsub.c
@@ -47,8 +47,9 @@
|
||||
#include "address.h"
|
||||
#include "arith.h"
|
||||
#include "stack.h"
|
||||
#include "retmacro.h"
|
||||
#include "return.h"
|
||||
#include "cell.h"
|
||||
#include "gcdata.h"
|
||||
|
||||
#include "bbtsubdefs.h"
|
||||
#include "car-cdrdefs.h"
|
||||
@@ -60,7 +61,7 @@
|
||||
#include "returndefs.h"
|
||||
|
||||
#include "bb.h"
|
||||
#include "bbtmacro.h"
|
||||
#include "bitblt.h"
|
||||
#include "pilotbbt.h"
|
||||
#include "dspdata.h"
|
||||
#include "display.h"
|
||||
@@ -1663,7 +1664,7 @@ void ccfuncall(unsigned int atom_index, int argnum, int bytenum)
|
||||
CURRENTFX->nextblock = (LAddrFromNative(CurrentStackPTR) & 0x0ffff) - (argnum << 1) + 4 /* +3 */;
|
||||
|
||||
/* Setup IVar */ /* XXX: is it really only 2-byte aligned? */
|
||||
IVar = NativeAligned2FromStackOffset(CURRENTFX->nextblock);
|
||||
IVar = NativeAligned2FromLAddr((((LispPTR)(CURRENTFX->nextblock)) | STK_OFFSET));
|
||||
|
||||
/* Set PC to the Next Instruction and save into FX */
|
||||
CURRENTFX->pc = ((UNSIGNED)PC - (UNSIGNED)FuncObj) + bytenum;
|
||||
@@ -1798,7 +1799,7 @@ void tedit_bltchar(LispPTR *args)
|
||||
|
||||
} /* end tedit_bltchar */
|
||||
|
||||
#if defined(REALCURSOR)
|
||||
#if defined(REALCURSOR) || defined(SUNDISPLAY)
|
||||
#ifndef COLOR
|
||||
/* Lisp addr hi-word, lo-word, ... */
|
||||
static int old_cursorin(DLword addrhi, DLword addrlo, int x, int w, int h, int y, int backward)
|
||||
@@ -1865,4 +1866,4 @@ static int old_cursorin(DLword addrhi, DLword addrlo, int x, int w, int h, int y
|
||||
} /* COLOR case end */
|
||||
}
|
||||
#endif /* COLOR */
|
||||
#endif /* defined(REALCURSOR) */
|
||||
#endif /* defined(REALCURSOR) || defined(SUNDISPLAY) */
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
|
||||
#include "pilotbbt.h"
|
||||
#include "display.h"
|
||||
#include "bbtmacro.h"
|
||||
#include "bitblt.h"
|
||||
#include "bb.h"
|
||||
|
||||
#include "bitbltdefs.h"
|
||||
@@ -126,7 +126,7 @@ LispPTR N_OP_pilotbitblt(LispPTR pilot_bt_tbl, LispPTR tos)
|
||||
if (displayflg) (currentdsp->mouse_visible)(IOPage->dlmousex, IOPage->dlmousey);
|
||||
#endif /* SUNDISPLAY / DOS */
|
||||
|
||||
#if defined(XWINDOW) || defined(SDL)
|
||||
#ifdef XWINDOW
|
||||
flush_display_lineregion(dx, dstbase, w, h);
|
||||
#endif /* XWINDOW */
|
||||
|
||||
|
||||
@@ -38,7 +38,6 @@
|
||||
#include "conspagedefs.h" // for next_conspage
|
||||
#include "emlglob.h"
|
||||
#include "gcdata.h" // for GCLOOKUP, ADDREF, DELREF
|
||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
||||
#include "lispemul.h" // for ConsCell, LispPTR, DLword, NIL_PTR, state
|
||||
#include "lspglob.h" // for ListpDTD
|
||||
#include "lsptypes.h" // for Listp, dtd
|
||||
|
||||
@@ -43,6 +43,7 @@
|
||||
#include "arith.h"
|
||||
#include "timeout.h"
|
||||
#include "locfile.h"
|
||||
#include "osmsg.h"
|
||||
#include "dbprint.h"
|
||||
|
||||
#include "chardevdefs.h"
|
||||
|
||||
@@ -64,14 +64,14 @@ LispPTR Uraid_mess = NIL;
|
||||
int error(const char *cp) {
|
||||
char *ptr;
|
||||
if (device_before_raid() < 0) {
|
||||
(void)fprintf(stderr, "Can't Enter URAID.\n");
|
||||
fprintf(stderr, "Can't Enter URAID.\n");
|
||||
exit(-1);
|
||||
}
|
||||
/* comm read */
|
||||
URaid_errmess = cp;
|
||||
(void)fprintf(stderr, "\n*Error* %s\n", cp);
|
||||
fprintf(stderr, "\n*Error* %s\n", cp);
|
||||
fflush(stdin);
|
||||
(void)fprintf(stderr, "Enter the URaid\n");
|
||||
fprintf(stderr, "Enter the URaid\n");
|
||||
print(Uraid_mess);
|
||||
putchar('\n');
|
||||
/* XXX: make sure output is flushed so we can see where we are */
|
||||
|
||||
@@ -23,7 +23,6 @@
|
||||
#include "commondefs.h" // for error
|
||||
#include "conspagedefs.h" // for N_OP_cons, cons, next_conspage
|
||||
#include "gcdata.h" // for GCLOOKUP, ADDREF, DELREF
|
||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
||||
#include "lispemul.h" // for ConsCell, DLword, LispPTR, NIL_PTR, DLWORD...
|
||||
#include "lspglob.h"
|
||||
#include "lsptypes.h" // for dtd, Listp, TYPE_LISTP
|
||||
|
||||
@@ -303,14 +303,14 @@ int sf(struct frameex1 *fx_addr68k) {
|
||||
if (((fx_addr68k)->alink & 1) == 0) { /* FAST */
|
||||
bf = (Bframe *)(((DLword *)fx_addr68k) - 2);
|
||||
} else { /* SLOW */
|
||||
bf = (Bframe *)NativeAligned4FromStackOffset((fx_addr68k)->blink);
|
||||
bf = (Bframe *)NativeAligned4FromLAddr(((fx_addr68k)->blink + STK_OFFSET));
|
||||
}
|
||||
|
||||
/* Print IVARs */
|
||||
printf("IVAR -------\n");
|
||||
BT_morep;
|
||||
|
||||
ptr = NativeAligned2FromStackOffset(bf->ivar);
|
||||
ptr = NativeAligned2FromLAddr(STK_OFFSET + bf->ivar);
|
||||
i = 0;
|
||||
while (ptr != (DLword *)bf) {
|
||||
ptrlo = ptr + 1;
|
||||
@@ -475,7 +475,7 @@ int sf(struct frameex1 *fx_addr68k) {
|
||||
i++;
|
||||
}
|
||||
if (fx_addr68k->alink == 11) /* for contextsw */
|
||||
next68k = NativeAligned2FromStackOffset(fx_addr68k->nextblock);
|
||||
next68k = (DLword *)NativeAligned2FromLAddr((fx_addr68k->nextblock + STK_OFFSET));
|
||||
|
||||
else
|
||||
next68k = CurrentStackPTR;
|
||||
@@ -493,7 +493,7 @@ int sf(struct frameex1 *fx_addr68k) {
|
||||
return (-1);
|
||||
}
|
||||
|
||||
next68k = NativeAligned2FromStackOffset(fx_addr68k->nextblock);
|
||||
next68k = (DLword *)NativeAligned2FromLAddr((fx_addr68k->nextblock + STK_OFFSET));
|
||||
ptr = (DLword *)(fx_addr68k + 1);
|
||||
|
||||
i = 0;
|
||||
@@ -589,8 +589,8 @@ void bt1(FX *startFX) {
|
||||
BT_morep;
|
||||
while ((fnobj->framename != ATOM_T) && (fx->alink != 11)) {
|
||||
if (fnum > URMAXFXNUM - 1) {
|
||||
/* Internal buf overflow, too many stack frames */
|
||||
printf("***There are more than %d stack frames.\n", URMAXFXNUM);
|
||||
/* Internal buf overflow,more than 100 stacks */
|
||||
printf("***There are more than 100 stack frames.\n");
|
||||
printf(
|
||||
"If you want to continue, Uraid will smash its internal table for FX pointer. Do you "
|
||||
"accept?(Y or N)\n");
|
||||
|
||||
@@ -2150,8 +2150,7 @@ LispPTR COM_next_file(LispPTR *args)
|
||||
propp = gfsp->propp;
|
||||
|
||||
dfp = &FinfoArray[finfoid];
|
||||
fp = dfp->next;
|
||||
if (dfp->head == NULL || fp == NULL) return (SMALLP_MINUSONE);
|
||||
if (dfp->head == (FINFO *)0 || (fp = dfp->next) == (FINFO *)0) return (SMALLP_MINUSONE);
|
||||
dfp->next = fp->next;
|
||||
|
||||
laddr = gfsp->name;
|
||||
|
||||
14
src/dlpi.c
14
src/dlpi.c
@@ -188,7 +188,7 @@ int setup_dlpi_dev(char *device)
|
||||
dlbindreq(fd, 0x0600, 0, DL_CLDLS, 0, 0);
|
||||
|
||||
if (dlbindack(fd, buf) < 0) {
|
||||
(void)fprintf(stderr, "%s: dlbindack failed.\n", pname);
|
||||
fprintf(stderr, "%s: dlbindack failed.\n", pname);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
@@ -202,14 +202,14 @@ int setup_dlpi_dev(char *device)
|
||||
dlpromisconreq(fd, DL_PROMISC_SAP);
|
||||
|
||||
if (dlokack(fd, buf) < 0) {
|
||||
(void)fprintf(stderr, "%s: DL_PROMISC_SAP failed.\n", pname);
|
||||
fprintf(stderr, "%s: DL_PROMISC_SAP failed.\n", pname);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
dlpromisconreq(fd, DL_PROMISC_MULTI);
|
||||
|
||||
if (dlokack(fd, buf) < 0) {
|
||||
(void)fprintf(stderr, "%s: DL_PROMISC_MULTI failed.\n", pname);
|
||||
fprintf(stderr, "%s: DL_PROMISC_MULTI failed.\n", pname);
|
||||
return (-1);
|
||||
}
|
||||
|
||||
@@ -329,8 +329,8 @@ int dlpi_devtype(int fd)
|
||||
case DL_FDDI: return (DLT_FDDI);
|
||||
#endif
|
||||
default:
|
||||
(void)fprintf(stderr, "%s: DLPI MACtype %ld unknown, ", pname, (long)dlp->info_ack.dl_mac_type);
|
||||
(void)fprintf(stderr, "assuming ethernet.\n");
|
||||
fprintf(stderr, "%s: DLPI MACtype %ld unknown, ", pname, (long)dlp->info_ack.dl_mac_type);
|
||||
fprintf(stderr, "assuming ethernet.\n");
|
||||
return (DLT_EN10MB);
|
||||
}
|
||||
}
|
||||
@@ -585,7 +585,7 @@ static int strgetmsg(int fd, struct strbuf *ctlp, struct strbuf *datap, int *fla
|
||||
/*
|
||||
* sigalrm - handle alarms.
|
||||
*/
|
||||
static void sigalrm(int sig) { (void)(void)fprintf(stderr, "dlpi: timeout\n"); }
|
||||
static void sigalrm(int sig) { (void)fprintf(stderr, "dlpi: timeout\n"); }
|
||||
|
||||
/*
|
||||
* savestr - save string in dynamic memory.
|
||||
@@ -595,7 +595,7 @@ static char *savestr(char *s)
|
||||
char *t;
|
||||
|
||||
if ((t = malloc(strlen(s) + 1)) == NULL) {
|
||||
(void)(void)fprintf(stderr, "%s: out of memory.\n", pname);
|
||||
(void)fprintf(stderr, "%s: out of memory.\n", pname);
|
||||
(void)exit(1);
|
||||
}
|
||||
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#include <stddef.h> // for ptrdiff_t
|
||||
#include <stdlib.h> // for abs
|
||||
#include "adr68k.h" // for NativeAligned2FromLAddr
|
||||
#include "bbtmacro.h" // for MOUSEXR, MOUSEYH
|
||||
#include "bitblt.h" // for MOUSEXR, MOUSEYH
|
||||
#include "display.h" // for DISPLAYBUFFER, DisplayRegion68k, in_display...
|
||||
#include "drawdefs.h" // for N_OP_drawline
|
||||
#include "emlglob.h"
|
||||
|
||||
424
src/dsk.c
424
src/dsk.c
@@ -13,7 +13,7 @@
|
||||
#include <fcntl.h> // for O_RDWR, O_CREAT, open, O_RDONLY, O_TRUNC
|
||||
#include <stdio.h> // for NULL, sprintf, size_t, rename, SEEK_SET
|
||||
#include <stddef.h> // for ptrdiff_t
|
||||
#include <stdlib.h> // for strtoul, qsort
|
||||
#include <stdlib.h> // for strtoul
|
||||
#include <string.h> // for strcpy, strcmp, strlen, strncpy, strchr
|
||||
#include <sys/stat.h> // for stat, fstat, mkdir, S_ISREG, st_atime, chmod
|
||||
#include <sys/types.h> // for ino_t, time_t, off_t
|
||||
@@ -38,13 +38,12 @@
|
||||
#include <pwd.h> // for getpwuid, passwd
|
||||
#include <sys/param.h> // for MAXPATHLEN
|
||||
#include <sys/statvfs.h> // for statvfs
|
||||
#include <sys/time.h> // for timeval, utimes, futimens
|
||||
#include <sys/time.h> // for timeval, utimes
|
||||
#else
|
||||
#include <direct.h>
|
||||
#include <dos.h>
|
||||
#include <time.h>
|
||||
#include <io.h>
|
||||
#include <search.h> // for qsort(?)
|
||||
#define MAXPATHLEN _MAX_PATH
|
||||
#define MAXNAMLEM _MAX_PATH
|
||||
#define alarm(x) 0
|
||||
@@ -58,32 +57,25 @@ typedef struct filename_entry {
|
||||
unsigned version_no;
|
||||
} FileName;
|
||||
|
||||
/*
|
||||
* VA, a structure representing the file names and version numbers
|
||||
* that were present in a directory at a particular moment in time.
|
||||
* The {DSK} device presents a case-insensitive (to Medley) but
|
||||
* case-preserving (to the host) file system. The VA (Version Array)
|
||||
*/
|
||||
static struct {
|
||||
char name[MAXPATHLEN]; /* lowercase unversioned file name */
|
||||
ino_t dir_ino; /* inode of the directory */
|
||||
struct timespec lastMTime; /* modification time of the directory */
|
||||
int allocated; /* number of entries in the files array */
|
||||
int lastUsed; /* index of the last entry in use in files array */
|
||||
FileName *files; /* array of files */
|
||||
} VA = {0};
|
||||
typedef struct current_varray {
|
||||
char path[MAXPATHLEN]; /* pathname of directory */
|
||||
char file[MAXPATHLEN]; /* file name (down cased name) */
|
||||
time_t mtime;
|
||||
} CurrentVArray;
|
||||
|
||||
static FileName VersionArray[VERSIONARRAYLENGTH];
|
||||
static CurrentVArray VArrayInfo;
|
||||
|
||||
static int locate_file(char *dir, char *name);
|
||||
static int make_directory(char *dir);
|
||||
static int maintain_version(char *file, int forcep);
|
||||
static int compare_file_versions(const void *a, const void *b);
|
||||
static int maintain_version(char *file, FileName *varray, int forcep);
|
||||
static int get_versionless(FileName *varray, char *file, char *dir);
|
||||
static int check_vless_link(char *vless, FileName *varray, char *to_file, int *highest_p);
|
||||
static int get_old(char *dir, FileName *varray, char *afile, char *vfile);
|
||||
static int get_oldest(char *dir, FileName *varray, char *afile, char *vfile);
|
||||
static int get_new(char *dir, FileName *varray, char *afile, char *vfile);
|
||||
static int get_old_new(char *dir, FileName *varray, char *afile, char *vfile);
|
||||
static int get_version_array(char *dir, char *file);
|
||||
static int get_version_array(char *dir, char *file, FileName *varray, CurrentVArray *cache);
|
||||
|
||||
#ifdef DOS
|
||||
static void separate_drive(char *lfname, char *drive)
|
||||
@@ -375,24 +367,24 @@ LispPTR COM_openfile(LispPTR *args)
|
||||
if (dskp) {
|
||||
if (unpack_filename(file, dir, name, ver, 1) == 0) return (NIL);
|
||||
if (true_name(dir) != -1) return (0);
|
||||
if (get_version_array(dir, name) == 0) return (NIL);
|
||||
if (get_version_array(dir, name, VersionArray, &VArrayInfo) == 0) return (NIL);
|
||||
ConcNameAndVersion(name, ver, file);
|
||||
|
||||
switch (args[1]) {
|
||||
case RECOG_OLD:
|
||||
if (get_old(dir, VA.files, file, name) == 0) return (NIL);
|
||||
if (get_old(dir, VersionArray, file, name) == 0) return (NIL);
|
||||
break;
|
||||
|
||||
case RECOG_OLDEST:
|
||||
if (get_oldest(dir, VA.files, file, name) == 0) return (NIL);
|
||||
if (get_oldest(dir, VersionArray, file, name) == 0) return (NIL);
|
||||
break;
|
||||
|
||||
case RECOG_NEW:
|
||||
if (get_new(dir, VA.files, file, name) == 0) return (NIL);
|
||||
if (get_new(dir, VersionArray, file, name) == 0) return (NIL);
|
||||
break;
|
||||
|
||||
case RECOG_OLD_NEW:
|
||||
if (get_old_new(dir, VA.files, file, name) == 0) return (NIL);
|
||||
if (get_old_new(dir, VersionArray, file, name) == 0) return (NIL);
|
||||
break;
|
||||
|
||||
default: return (NIL);
|
||||
@@ -447,7 +439,7 @@ LispPTR COM_openfile(LispPTR *args)
|
||||
* Actually we are creating a new file. We have to
|
||||
* maintain a version status.
|
||||
*/
|
||||
if (maintain_version(file, 1) == 0) {
|
||||
if (maintain_version(file, (FileName *)NULL, 1) == 0) {
|
||||
TIMEOUT(rval = close(fd));
|
||||
*Lisp_errno = errno;
|
||||
return (NIL);
|
||||
@@ -493,7 +485,7 @@ LispPTR COM_openfile(LispPTR *args)
|
||||
* the entirely newly created file, versionless file, should not
|
||||
* be linked to any file.
|
||||
*/
|
||||
if (maintain_version(file, 0) == 0) {
|
||||
if (maintain_version(file, (FileName *)NULL, 0) == 0) {
|
||||
TIMEOUT(close(fd));
|
||||
*Lisp_errno = errno;
|
||||
return (NIL);
|
||||
@@ -678,7 +670,7 @@ LispPTR COM_closefile(LispPTR *args)
|
||||
*Lisp_errno = errno;
|
||||
return (NIL);
|
||||
}
|
||||
#ifndef DOS /* effectively NEVER, since we're in an ifdef DOS */
|
||||
#ifndef DOS
|
||||
TIMEOUT(rval = utimes(file, time));
|
||||
if (rval != 0) {
|
||||
*Lisp_errno = errno;
|
||||
@@ -689,9 +681,13 @@ LispPTR COM_closefile(LispPTR *args)
|
||||
int fd, fatp, dskp, rval;
|
||||
time_t cdate;
|
||||
char lfname[MAXPATHLEN + 5], host[MAXNAMLEN];
|
||||
char file[MAXPATHLEN];
|
||||
char file[MAXPATHLEN], dir[MAXPATHLEN], name[MAXNAMLEN + 1];
|
||||
char ver[VERSIONLEN];
|
||||
DIR *dirp;
|
||||
struct dirent *dp;
|
||||
struct stat sbuf;
|
||||
struct timespec timesp[2];
|
||||
struct timeval time[2];
|
||||
ino_t ino;
|
||||
|
||||
ERRSETJMP(NIL);
|
||||
Lisp_errno = (int *)NativeAligned4FromLAddr(args[3]);
|
||||
@@ -756,24 +752,60 @@ LispPTR COM_closefile(LispPTR *args)
|
||||
}
|
||||
}
|
||||
|
||||
/* introduction of futimens() allows us to set the times on an open
|
||||
* file descriptor so a lot of directory manipulation to find the
|
||||
* appropriate name associated with the inode is no longer required
|
||||
*/
|
||||
if (!unpack_filename(file, dir, name, ver, 1)) return (NIL);
|
||||
|
||||
timesp[0].tv_sec = (long)sbuf.st_atime;
|
||||
timesp[0].tv_nsec = 0L;
|
||||
timesp[1].tv_sec = (long)ToUnixTime(cdate);
|
||||
timesp[1].tv_nsec = 0L;
|
||||
if (dskp) {
|
||||
/*
|
||||
* On {DSK}, we have to make sure dir is case sensitively existing
|
||||
* directory.
|
||||
*/
|
||||
if (true_name(dir) != -1) return (NIL);
|
||||
|
||||
TIMEOUT(rval = futimens(fd, timesp));
|
||||
if (rval != 0) {
|
||||
/*
|
||||
* There is a very troublesome problem here. The file name Lisp
|
||||
* recognizes is not always the same as the name which COM_openfile
|
||||
* used to open the file. Sometimes COM_openfile uses the versionless
|
||||
* file name to open a file, although Lisp always recognizes with
|
||||
* *versioned* file name.
|
||||
* Thus, we compare i-node number of the requested file with ones of all
|
||||
* of files on the directory. This is time spending implementation.
|
||||
* More clean up work is needed.
|
||||
*/
|
||||
TIMEOUT(rval = fstat(fd, &sbuf));
|
||||
if (rval != 0) {
|
||||
*Lisp_errno = errno;
|
||||
return (NIL);
|
||||
}
|
||||
ino = sbuf.st_ino;
|
||||
|
||||
errno = 0;
|
||||
TIMEOUT0(dirp = opendir(dir));
|
||||
if (dirp == (DIR *)NULL) {
|
||||
*Lisp_errno = errno;
|
||||
return (NIL);
|
||||
}
|
||||
|
||||
for (S_TOUT(dp = readdir(dirp)); dp != (struct dirent *)NULL || errno == EINTR;
|
||||
errno = 0, S_TOUT(dp = readdir(dirp)))
|
||||
if (dp) {
|
||||
if (ino == (ino_t)dp->d_ino) sprintf(file, "%s/%s", dir, dp->d_name);
|
||||
}
|
||||
TIMEOUT(closedir(dirp));
|
||||
}
|
||||
|
||||
time[0].tv_sec = (long)sbuf.st_atime;
|
||||
time[0].tv_usec = 0L;
|
||||
time[1].tv_sec = (long)ToUnixTime(cdate);
|
||||
time[1].tv_usec = 0L;
|
||||
|
||||
TIMEOUT(rval = close(fd));
|
||||
if (rval == -1) {
|
||||
*Lisp_errno = errno;
|
||||
return (NIL);
|
||||
}
|
||||
|
||||
TIMEOUT(rval = close(fd));
|
||||
if (rval == -1) {
|
||||
TIMEOUT(rval = utimes(file, time));
|
||||
if (rval != 0) {
|
||||
*Lisp_errno = errno;
|
||||
return (NIL);
|
||||
}
|
||||
@@ -886,10 +918,10 @@ LispPTR DSK_getfilename(LispPTR *args)
|
||||
* Recognizing a file on DSK device needs the version information.
|
||||
* We gather version information in a version array first.
|
||||
*/
|
||||
if (get_version_array(dir, name) == 0) return (NIL);
|
||||
if (get_version_array(dir, name, VersionArray, &VArrayInfo) == 0) return (NIL);
|
||||
|
||||
ConcNameAndVersion(name, ver, aname);
|
||||
if (get_old(dir, VA.files, aname, vname) == 0) return (NIL);
|
||||
if (get_old(dir, VersionArray, aname, vname) == 0) return (NIL);
|
||||
|
||||
if ((rval = true_name(aname)) == 0) return (NIL);
|
||||
if (rval == -1) {
|
||||
@@ -926,10 +958,10 @@ LispPTR DSK_getfilename(LispPTR *args)
|
||||
strcpy(vname, dir);
|
||||
dirp = 1;
|
||||
} else {
|
||||
if (get_version_array(dir, name) == 0) return (NIL);
|
||||
if (get_version_array(dir, name, VersionArray, &VArrayInfo) == 0) return (NIL);
|
||||
|
||||
ConcNameAndVersion(name, ver, aname);
|
||||
if (get_oldest(dir, VA.files, aname, vname) == 0) return (NIL);
|
||||
if (get_oldest(dir, VersionArray, aname, vname) == 0) return (NIL);
|
||||
|
||||
if ((rval = true_name(aname)) == 0) return (NIL);
|
||||
if (rval == -1) {
|
||||
@@ -975,10 +1007,10 @@ LispPTR DSK_getfilename(LispPTR *args)
|
||||
* Here, dir is an existing directory. We have to perform
|
||||
* "new" recognition with the version information.
|
||||
*/
|
||||
if (get_version_array(dir, name) == 0) return (NIL);
|
||||
if (get_version_array(dir, name, VersionArray, &VArrayInfo) == 0) return (NIL);
|
||||
|
||||
ConcNameAndVersion(name, ver, aname);
|
||||
if (get_new(dir, VA.files, aname, vname) == 0) return (NIL);
|
||||
if (get_new(dir, VersionArray, aname, vname) == 0) return (NIL);
|
||||
dirp = 0;
|
||||
}
|
||||
}
|
||||
@@ -1001,10 +1033,10 @@ LispPTR DSK_getfilename(LispPTR *args)
|
||||
strcpy(vname, aname);
|
||||
dirp = 1;
|
||||
} else {
|
||||
if (get_version_array(dir, name) == 0) return (NIL);
|
||||
if (get_version_array(dir, name, VersionArray, &VArrayInfo) == 0) return (NIL);
|
||||
|
||||
ConcNameAndVersion(name, ver, aname);
|
||||
if (get_old_new(dir, VA.files, aname, vname) == 0) return (NIL);
|
||||
if (get_old_new(dir, VersionArray, aname, vname) == 0) return (NIL);
|
||||
dirp = 0;
|
||||
}
|
||||
}
|
||||
@@ -1100,6 +1132,7 @@ LispPTR DSK_deletefile(LispPTR *args)
|
||||
char file[MAXPATHLEN], fbuf[MAXPATHLEN], vless[MAXPATHLEN];
|
||||
char dir[MAXPATHLEN], ver[VERSIONLEN];
|
||||
int rval, fatp;
|
||||
FileName *varray;
|
||||
#ifdef DOS
|
||||
char drive[1], rawname[MAXNAMLEN];
|
||||
int extlen; /* len of extension, for making backup filename */
|
||||
@@ -1127,9 +1160,10 @@ LispPTR DSK_deletefile(LispPTR *args)
|
||||
#endif
|
||||
|
||||
if (unpack_filename(file, dir, fbuf, ver, 1) == 0) return (NIL);
|
||||
if (get_version_array(dir, fbuf) == 0) return (NIL);
|
||||
if (get_version_array(dir, fbuf, VersionArray, &VArrayInfo) == 0) return (NIL);
|
||||
varray = VersionArray;
|
||||
|
||||
if (NoFileP(VA.files))
|
||||
if (NoFileP(varray))
|
||||
return (NIL); /*
|
||||
* If the specified file is deleted from
|
||||
* outside of Lisp during the last time
|
||||
@@ -1144,9 +1178,9 @@ LispPTR DSK_deletefile(LispPTR *args)
|
||||
*/
|
||||
|
||||
ConcNameAndVersion(fbuf, ver, file);
|
||||
if (get_oldest(dir, VA.files, file, fbuf) == 0) return (NIL);
|
||||
if (get_oldest(dir, varray, file, fbuf) == 0) return (NIL);
|
||||
|
||||
if (get_versionless(VA.files, vless, dir) == 0) {
|
||||
if (get_versionless(varray, vless, dir) == 0) {
|
||||
/*
|
||||
* There is no versionless file. All we have to do is to simply
|
||||
* try to unlink the specified file.
|
||||
@@ -1165,7 +1199,7 @@ LispPTR DSK_deletefile(LispPTR *args)
|
||||
* file is linked will destroy the consistency of the version status.
|
||||
*/
|
||||
|
||||
if (check_vless_link(vless, VA.files, fbuf, &rval) == 0) return (NIL);
|
||||
if (check_vless_link(vless, varray, fbuf, &rval) == 0) return (NIL);
|
||||
|
||||
if (strcmp(file, vless) == 0 || strcmp(file, fbuf) == 0) {
|
||||
if (*fbuf != '\0') {
|
||||
@@ -1186,12 +1220,12 @@ LispPTR DSK_deletefile(LispPTR *args)
|
||||
/*
|
||||
* Finally, we have to maintain the version status.
|
||||
*/
|
||||
if (maintain_version(vless, 0) == 0) return (NIL);
|
||||
if (maintain_version(vless, (FileName *)NULL, 0) == 0) return (NIL);
|
||||
return (ATOM_T);
|
||||
} else {
|
||||
/*
|
||||
* Although the versionfile is specified, it is not linked
|
||||
* to any file in VA.files. We should not maintain the version
|
||||
* to any file in varray. We should not maintain the version
|
||||
* status after deleting the versionless file, because
|
||||
* we cannot say whether the versionless file is actually under
|
||||
* control of the Medley DSK file system or not.
|
||||
@@ -1246,6 +1280,7 @@ LispPTR DSK_renamefile(LispPTR *args)
|
||||
char dir[MAXPATHLEN], ver[VERSIONLEN];
|
||||
int rval, fatp;
|
||||
int need_maintain_flg;
|
||||
FileName *varray;
|
||||
#ifdef DOS
|
||||
char drive1[1], drive2[1];
|
||||
int extlen1, extlen2; /* len of extension */
|
||||
@@ -1296,9 +1331,10 @@ LispPTR DSK_renamefile(LispPTR *args)
|
||||
* We maintain the destination to handle the link damaged case correctly.
|
||||
*/
|
||||
ConcDirAndName(dir, fbuf, dst);
|
||||
if (maintain_version(dst, 0) == 0) return (NIL);
|
||||
if (maintain_version(dst, (FileName *)NULL, 0) == 0) return (NIL);
|
||||
|
||||
if (get_version_array(dir, fbuf) == 0) return (NIL);
|
||||
if (get_version_array(dir, fbuf, VersionArray, &VArrayInfo) == 0) return (NIL);
|
||||
varray = VersionArray;
|
||||
|
||||
/*
|
||||
* Although the file should have been recognized with "new" mode in Lisp
|
||||
@@ -1307,7 +1343,7 @@ LispPTR DSK_renamefile(LispPTR *args)
|
||||
*/
|
||||
|
||||
ConcNameAndVersion(fbuf, ver, dst);
|
||||
if (get_new(dir, VA.files, dst, fbuf) == 0) return (NIL);
|
||||
if (get_new(dir, varray, dst, fbuf) == 0) return (NIL);
|
||||
|
||||
/*
|
||||
* At this point, there are three cases for the destination. If there is
|
||||
@@ -1317,9 +1353,9 @@ LispPTR DSK_renamefile(LispPTR *args)
|
||||
* "real" destination file is the file to which the versionless file is linked,
|
||||
* we have to unlink the versionless file.
|
||||
*/
|
||||
if (!NoFileP(VA.files)) {
|
||||
if (OnlyVersionlessP(VA.files)) {
|
||||
get_versionless(VA.files, vless, dir);
|
||||
if (!NoFileP(varray)) {
|
||||
if (OnlyVersionlessP(varray)) {
|
||||
get_versionless(varray, vless, dir);
|
||||
if (strcmp(dst, vless) != 0) {
|
||||
ConcNameAndVersion(vless, "1", fbuf);
|
||||
TIMEOUT(rval = rename(vless, fbuf));
|
||||
@@ -1333,8 +1369,8 @@ LispPTR DSK_renamefile(LispPTR *args)
|
||||
* We are sure that the versionless file is linked to one of
|
||||
* the higher versioned file here.
|
||||
*/
|
||||
get_versionless(VA.files, vless, dir);
|
||||
if (check_vless_link(vless, VA.files, fbuf, &rval) == 0) { return (NIL); }
|
||||
get_versionless(varray, vless, dir);
|
||||
if (check_vless_link(vless, varray, fbuf, &rval) == 0) { return (NIL); }
|
||||
if (strcmp(dst, fbuf) == 0) {
|
||||
TIMEOUT(rval = unlink(vless));
|
||||
if (rval == -1) {
|
||||
@@ -1346,9 +1382,9 @@ LispPTR DSK_renamefile(LispPTR *args)
|
||||
}
|
||||
|
||||
if (unpack_filename(src, dir, fbuf, ver, 1) == 0) return (NIL);
|
||||
if (get_version_array(dir, fbuf) == 0) return (NIL);
|
||||
if (get_version_array(dir, fbuf, varray, &VArrayInfo) == 0) return (NIL);
|
||||
|
||||
if (NoFileP(VA.files))
|
||||
if (NoFileP(varray))
|
||||
return (NIL); /*
|
||||
* If the specified file is deleted from
|
||||
* outside of Lisp during the last time
|
||||
@@ -1362,9 +1398,9 @@ LispPTR DSK_renamefile(LispPTR *args)
|
||||
* of it.
|
||||
*/
|
||||
ConcNameAndVersion(fbuf, ver, src);
|
||||
if (get_old(dir, VA.files, src, fbuf) == 0) return (NIL);
|
||||
if (get_old(dir, varray, src, fbuf) == 0) return (NIL);
|
||||
|
||||
if (get_versionless(VA.files, vless, dir) == 0) {
|
||||
if (get_versionless(varray, vless, dir) == 0) {
|
||||
/*
|
||||
* There is no versionless file. All we have to do is to simply
|
||||
* try to rename the specified file.
|
||||
@@ -1377,7 +1413,7 @@ LispPTR DSK_renamefile(LispPTR *args)
|
||||
* versionless file is linked will destroy the consistency of the
|
||||
* version status.
|
||||
*/
|
||||
if (check_vless_link(vless, VA.files, fbuf, &rval) == 0) return (NIL);
|
||||
if (check_vless_link(vless, varray, fbuf, &rval) == 0) return (NIL);
|
||||
|
||||
if (strcmp(src, vless) == 0 && *fbuf != '\0') {
|
||||
/*
|
||||
@@ -1422,9 +1458,9 @@ LispPTR DSK_renamefile(LispPTR *args)
|
||||
* is on.
|
||||
*/
|
||||
|
||||
if (maintain_version(dst, 0) == 0) return (NIL);
|
||||
if (maintain_version(dst, (FileName *)NULL, 0) == 0) return (NIL);
|
||||
if (need_maintain_flg) {
|
||||
if (maintain_version(src, 0) == 0) return (NIL);
|
||||
if (maintain_version(src, (FileName *)NULL, 0) == 0) return (NIL);
|
||||
}
|
||||
|
||||
return (ATOM_T);
|
||||
@@ -1622,9 +1658,9 @@ LispPTR COM_getfileinfo(LispPTR *args)
|
||||
*/
|
||||
strcpy(file, dir);
|
||||
} else {
|
||||
if (get_version_array(dir, name) == 0) return (NIL);
|
||||
if (get_version_array(dir, name, VersionArray, &VArrayInfo) == 0) return (NIL);
|
||||
ConcNameAndVersion(name, ver, file);
|
||||
if (get_old(dir, VA.files, file, name) == 0) return (NIL);
|
||||
if (get_old(dir, VersionArray, file, name) == 0) return (NIL);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1811,9 +1847,9 @@ LispPTR COM_setfileinfo(LispPTR *args)
|
||||
if (dskp) {
|
||||
if (unpack_filename(file, dir, name, ver, 1) == 0) return (NIL);
|
||||
if (true_name(dir) != -1) return (0);
|
||||
if (get_version_array(dir, name) == 0) return (NIL);
|
||||
if (get_version_array(dir, name, VersionArray, &VArrayInfo) == 0) return (NIL);
|
||||
ConcNameAndVersion(name, ver, file);
|
||||
if (get_old(dir, VA.files, file, name) == 0) return (NIL);
|
||||
if (get_old(dir, VersionArray, file, name) == 0) return (NIL);
|
||||
}
|
||||
|
||||
switch (args[1]) {
|
||||
@@ -2767,26 +2803,34 @@ static int make_directory(char *dir)
|
||||
* and highest version number respectively.
|
||||
*
|
||||
* Description:
|
||||
* Finds the highest versioned entry in varray.
|
||||
*
|
||||
* Preconditions:
|
||||
* Varray must include at least one versioned file, satisfying the condition:
|
||||
* (!NoFileP(varray) && !OnlyVersionlessP(varray))
|
||||
* Varray must be sorted from highest to lowest version
|
||||
* Find the highest versioned entry in varray. Varray has to include at least
|
||||
* one versioned file, that is varray has to satisfy (!NoFileP(varray) &&
|
||||
* !OnlyVersionlessP(varray)).
|
||||
*
|
||||
*/
|
||||
|
||||
#ifdef DOS
|
||||
#define FindHighestVersion(varray, mentry, max_no) \
|
||||
do { \
|
||||
(max_no) = varray[0].version_no; \
|
||||
(mentry) = &varray[0]; \
|
||||
} while (0)
|
||||
do { \
|
||||
FileName *centry; \
|
||||
for (centry = varray, max_no = -1; centry->version_no != LASTVERSIONARRAY; centry++) { \
|
||||
if (centry->version_no > max_no) { \
|
||||
max_no = centry->version_no; \
|
||||
mentry = centry; \
|
||||
} \
|
||||
} \
|
||||
} while (0)
|
||||
#else
|
||||
#define FindHighestVersion(varray, mentry, max_no) \
|
||||
do { \
|
||||
(max_no) = varray[0].version_no; \
|
||||
(mentry) = &varray[0]; \
|
||||
} while (0)
|
||||
do { \
|
||||
FileName *centry; \
|
||||
for (centry = (varray), (max_no) = 0; centry->version_no != LASTVERSIONARRAY; centry++) { \
|
||||
if (centry->version_no > (max_no)) { \
|
||||
(max_no) = centry->version_no; \
|
||||
(mentry) = centry; \
|
||||
} \
|
||||
} \
|
||||
} while (0)
|
||||
#endif /* DOS */
|
||||
|
||||
/*
|
||||
@@ -2873,19 +2917,6 @@ static int make_directory(char *dir)
|
||||
} \
|
||||
} while (0)
|
||||
|
||||
/*
|
||||
* comparison function for qsort to sort file versions in descending order
|
||||
*/
|
||||
static int compare_file_versions(const void *a, const void *b)
|
||||
{
|
||||
unsigned a_ver = ((FileName *)a)->version_no;
|
||||
unsigned b_ver = ((FileName *)b)->version_no;
|
||||
|
||||
if (a_ver > b_ver) return (-1);
|
||||
if (a_ver < b_ver) return (1);
|
||||
return (0);
|
||||
}
|
||||
|
||||
/************************************************************************/
|
||||
/* */
|
||||
/* g e t _ v e r s i o n _ a r r a y */
|
||||
@@ -2897,6 +2928,7 @@ static int compare_file_versions(const void *a, const void *b)
|
||||
/* guarantee that the directory exists. */
|
||||
/* file File name, optionally including a (unix) version */
|
||||
/* varray Place to put the version array entries. */
|
||||
/* cache Place to hold info about the new version array */
|
||||
/* */
|
||||
/* Read thru DIR and gather all files that match FILE into */
|
||||
/* VARRAY. DIR's case must match existing directory's, but */
|
||||
@@ -2906,15 +2938,15 @@ static int compare_file_versions(const void *a, const void *b)
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
static int get_version_array(char *dir, char *file)
|
||||
static int get_version_array(char *dir, char *file, FileName *varray, CurrentVArray *cache)
|
||||
{
|
||||
#ifdef DOS
|
||||
/* DOS version-array builder */
|
||||
|
||||
char lcased_file[MAXPATHLEN];
|
||||
char old_file[MAXPATHLEN];
|
||||
char name[MAXNAMLEN];
|
||||
char ver[VERSIONLEN];
|
||||
int varray_index = 0;
|
||||
FileName *svarray;
|
||||
struct find_t dirp;
|
||||
struct direct *dp;
|
||||
int rval, drive = 0, isslash = 0;
|
||||
@@ -2955,12 +2987,14 @@ static int get_version_array(char *dir, char *file)
|
||||
|
||||
make_old_version(old_file, lcased_file);
|
||||
|
||||
svarray = varray;
|
||||
|
||||
TIMEOUT(res = _dos_findfirst(old_file, _A_NORMAL | _A_SUBDIR, &dirp));
|
||||
if (res == 0) {
|
||||
strcpy(name, dirp.name);
|
||||
strcpy(VA.files[varray_index].name, name);
|
||||
VA.files[varray_index].version_no = 0;
|
||||
varray_index++;
|
||||
strcpy(svarray->name, name);
|
||||
svarray->version_no = 0;
|
||||
svarray++;
|
||||
}
|
||||
|
||||
/*******************************/
|
||||
@@ -2979,48 +3013,34 @@ static int get_version_array(char *dir, char *file)
|
||||
separate_version(name, ver, 1);
|
||||
DOWNCASE(name);
|
||||
|
||||
strcpy(VA.files[varray_index].name, dirp.name);
|
||||
strcpy(svarray->name, dirp.name);
|
||||
if (*ver == '\0') {
|
||||
/* Versionless file */
|
||||
VA.files[varray_index].version_no = 1;
|
||||
svarray->version_no = 1;
|
||||
} else {
|
||||
/*
|
||||
* separate_version guarantees ver is a numeric string.
|
||||
* separator_version guarantees ver is a numeric
|
||||
* string.
|
||||
*/
|
||||
VA.files[varray_index].version_no = strtoul(ver, (char **)NULL, 10);
|
||||
}
|
||||
varray_index++;
|
||||
if (varray_index >= VERSIONARRAYMAXLENGTH) {
|
||||
*Lisp_errno = EIO;
|
||||
return (0);
|
||||
} else if (varray_index >= VA.allocated) {
|
||||
VA.allocated += VERSIONARRAYCHUNKLENGTH;
|
||||
VA.files = realloc(VA.files,
|
||||
sizeof(*VA.files) * VA.allocated);
|
||||
svarray->version_no = strtoul(ver, (char **)NULL, 10);
|
||||
}
|
||||
svarray++;
|
||||
}
|
||||
|
||||
/*
|
||||
* The last entry of VA.files is indicated by setting LASTVERSIONARRAY into
|
||||
* The last entry of varray is indicated by setting LASTVERSIONARRAY into
|
||||
* version_no field.
|
||||
*/
|
||||
VA.files[varray_index].version_no = LASTVERSIONARRAY;
|
||||
VA.lastUsed = varray_index;
|
||||
svarray->version_no = LASTVERSIONARRAY;
|
||||
|
||||
/*
|
||||
* If any files have been stored in VA.files, we store the name
|
||||
* If more than one files have been stored in varray, we store the name
|
||||
* without version in the last marker entry.
|
||||
*
|
||||
* NOTE: sorting "varray_index" entries will leave the LASTVERSIONARRAY item
|
||||
* untouched by the sort, which is intentional.
|
||||
*/
|
||||
if (!NoFileP(VA.files)) {
|
||||
strcpy(name, VA.files[0].name);
|
||||
if (!NoFileP(varray)) {
|
||||
strcpy(name, varray->name);
|
||||
separate_version(name, ver, 1);
|
||||
strcpy(VA.files[varray_index].name, name);
|
||||
if (varray_index > 1) {
|
||||
qsort(VA.files, varray_index, sizeof(*VA.files), compare_file_versions);
|
||||
}
|
||||
strcpy(svarray->name, name);
|
||||
}
|
||||
|
||||
return (1);
|
||||
@@ -3030,11 +3050,13 @@ static int get_version_array(char *dir, char *file)
|
||||
char lcased_file[MAXNAMLEN];
|
||||
char name[MAXNAMLEN];
|
||||
char ver[VERSIONLEN];
|
||||
int varray_index = 0;
|
||||
FileName *svarray;
|
||||
DIR *dirp;
|
||||
struct dirent *dp;
|
||||
/* Used in commented out code below:
|
||||
int rval;
|
||||
struct stat sbuf;
|
||||
*/
|
||||
|
||||
/*
|
||||
* First of all, prepare a lower cased file name for the case insensitive
|
||||
@@ -3044,29 +3066,30 @@ static int get_version_array(char *dir, char *file)
|
||||
separate_version(lcased_file, ver, 1);
|
||||
DOWNCASE(lcased_file);
|
||||
|
||||
/* Cache for VA.files reinstated using nanosecond timestamps which many
|
||||
* systems provide for directory modification times.
|
||||
* POSIX defines the struct stat field containing the nanosecond resolution
|
||||
* modification time as "st_mtim". See "version.h" for accomodations
|
||||
* for systems that call it something else (e.g., macOS st_mtimespec).
|
||||
/*
|
||||
TIMEOUT(rval = stat(dir, &sbuf));
|
||||
if (rval == -1) {
|
||||
*Lisp_errno = errno;
|
||||
return(0);
|
||||
}
|
||||
*/
|
||||
|
||||
/*
|
||||
* If the cached version array is still valid, we can return immediately.
|
||||
*/
|
||||
|
||||
TIMEOUT(rval = stat(dir, &sbuf));
|
||||
if (rval == -1) {
|
||||
*Lisp_errno = errno;
|
||||
return(0);
|
||||
}
|
||||
if (sbuf.st_ino == VA.dir_ino &&
|
||||
0 == strcmp(lcased_file, VA.name) &&
|
||||
sbuf.st_mtim.tv_sec == VA.lastMTime.tv_sec &&
|
||||
sbuf.st_mtim.tv_nsec == VA.lastMTime.tv_nsec) {
|
||||
return (1);
|
||||
} else {
|
||||
VA.dir_ino = sbuf.st_ino;
|
||||
VA.lastMTime = sbuf.st_mtim;
|
||||
strcpy(VA.name, lcased_file);
|
||||
}
|
||||
/*
|
||||
* Cache mechanism is not used now, because of the bug of Sun OS.
|
||||
* Sometimes just after unlinking a file on a directory, the st_mtime
|
||||
* of the directory does not change. This will make Maiko believe
|
||||
* cached version array is still valid, although it is already invalid.
|
||||
* sync(2) has no effect on such case.
|
||||
*/
|
||||
|
||||
/*
|
||||
if ((sbuf.st_mtime == cache->mtime) && strcmp(dir, cache->path) == 0
|
||||
&& strcmp(lcased_file, cache->file) == 0) return(1);
|
||||
*/
|
||||
errno = 0;
|
||||
TIMEOUT0(dirp = opendir(dir));
|
||||
if (dirp == NULL) {
|
||||
@@ -3074,13 +3097,7 @@ static int get_version_array(char *dir, char *file)
|
||||
return (0);
|
||||
}
|
||||
|
||||
/* There is no initialization call for the local file system, so we
|
||||
* must ensure there is initial storage allocated for the version array */
|
||||
if (VA.files == NULL) {
|
||||
VA.files = calloc(VERSIONARRAYCHUNKLENGTH, sizeof(*VA.files));
|
||||
VA.allocated = VERSIONARRAYCHUNKLENGTH;
|
||||
}
|
||||
for (S_TOUT(dp = readdir(dirp)); dp != NULL || errno == EINTR;
|
||||
for (S_TOUT(dp = readdir(dirp)), svarray = varray; dp != NULL || errno == EINTR;
|
||||
errno = 0, S_TOUT(dp = readdir(dirp)))
|
||||
if (dp) {
|
||||
strcpy(name, dp->d_name);
|
||||
@@ -3090,50 +3107,44 @@ static int get_version_array(char *dir, char *file)
|
||||
/*
|
||||
* This file can be regarded as a same file in Lisp sense.
|
||||
*/
|
||||
strcpy(VA.files[varray_index].name, dp->d_name);
|
||||
strcpy(svarray->name, dp->d_name);
|
||||
if (*ver == '\0') {
|
||||
/* Versionless file */
|
||||
VA.files[varray_index].version_no = 0;
|
||||
svarray->version_no = 0;
|
||||
} else {
|
||||
/*
|
||||
* separate_version guarantees ver is a numeric string.
|
||||
* separator_version guarantees ver is a numeric
|
||||
* string.
|
||||
*/
|
||||
VA.files[varray_index].version_no = strtoul(ver, (char **)NULL, 10);
|
||||
}
|
||||
varray_index++;
|
||||
if (varray_index >= VERSIONARRAYMAXLENGTH) {
|
||||
*Lisp_errno = EIO;
|
||||
return (0);
|
||||
} else if (varray_index >= VA.allocated) {
|
||||
VA.allocated += VERSIONARRAYCHUNKLENGTH;
|
||||
VA.files = realloc(VA.files,
|
||||
sizeof(*VA.files) * VA.allocated);
|
||||
svarray->version_no = strtoul(ver, (char **)NULL, 10);
|
||||
}
|
||||
svarray++;
|
||||
}
|
||||
}
|
||||
/*
|
||||
* The last entry of varray is indicated by setting LASTVERSIONARRAY into
|
||||
* version_no field.
|
||||
*/
|
||||
VA.files[varray_index].version_no = LASTVERSIONARRAY;
|
||||
VA.lastUsed = varray_index;
|
||||
svarray->version_no = LASTVERSIONARRAY;
|
||||
|
||||
/*
|
||||
* If any files have been stored in VA.files, we store the name
|
||||
* If more than one files have been stored in varray, we store the name
|
||||
* without version in the last marker entry.
|
||||
*
|
||||
* NOTE: sorting "varray_index" entries will leave the LASTVERSIONARRAY item
|
||||
* untouched by the sort, which is intentional.
|
||||
*/
|
||||
if (!NoFileP(VA.files)) {
|
||||
strcpy(name, VA.files[0].name);
|
||||
if (!NoFileP(varray)) {
|
||||
strcpy(name, varray->name);
|
||||
separate_version(name, ver, 1);
|
||||
strcpy(VA.files[varray_index].name, name);
|
||||
if (varray_index > 1) {
|
||||
qsort(VA.files, varray_index, sizeof(*VA.files), compare_file_versions);
|
||||
}
|
||||
strcpy(svarray->name, name);
|
||||
}
|
||||
|
||||
/*
|
||||
* Update cache information.
|
||||
*/
|
||||
/*
|
||||
strcpy(cache->path, dir);
|
||||
strcpy(cache->file, lcased_file);
|
||||
cache->mtime = sbuf.st_mtime;
|
||||
*/
|
||||
TIMEOUT(closedir(dirp));
|
||||
return (1);
|
||||
#endif /* DOS */
|
||||
@@ -3165,7 +3176,7 @@ static int get_version_array(char *dir, char *file)
|
||||
* to maintain the directory on which a file is being created.
|
||||
*/
|
||||
|
||||
static int maintain_version(char *file, int forcep)
|
||||
static int maintain_version(char *file, FileName *varray, int forcep)
|
||||
{
|
||||
char dir[MAXPATHLEN], fname[MAXNAMLEN], ver[VERSIONLEN];
|
||||
char old_file[MAXPATHLEN], vless[MAXPATHLEN];
|
||||
@@ -3173,14 +3184,17 @@ static int maintain_version(char *file, int forcep)
|
||||
int rval, max_no;
|
||||
FileName *entry;
|
||||
|
||||
if (unpack_filename(file, dir, fname, ver, 1) == 0) return (0);
|
||||
/*
|
||||
* We have to make sure that dir is the existing directory.
|
||||
*/
|
||||
if (true_name(dir) != -1) return (0);
|
||||
if (get_version_array(dir, fname) == 0) return (0);
|
||||
if (varray == (FileName *)NULL) {
|
||||
if (unpack_filename(file, dir, fname, ver, 1) == 0) return (0);
|
||||
/*
|
||||
* We have to make sure that dir is the existing directory.
|
||||
*/
|
||||
if (true_name(dir) != -1) return (0);
|
||||
if (get_version_array(dir, fname, VersionArray, &VArrayInfo) == 0) return (0);
|
||||
varray = VersionArray;
|
||||
}
|
||||
|
||||
if (NoFileP(VA.files)) {
|
||||
if (NoFileP(varray)) {
|
||||
/*
|
||||
* We don't need to care about such case that there is no such file
|
||||
* or an only versionless file exists.
|
||||
@@ -3188,14 +3202,14 @@ static int maintain_version(char *file, int forcep)
|
||||
return (1);
|
||||
}
|
||||
|
||||
if (OnlyVersionlessP(VA.files)) {
|
||||
if (OnlyVersionlessP(varray)) {
|
||||
if (forcep) {
|
||||
/*
|
||||
* If forcep, we link the versionless file to the version
|
||||
* 1 file.
|
||||
*/
|
||||
#ifndef DOS
|
||||
get_versionless(VA.files, vless, dir);
|
||||
get_versionless(varray, vless, dir);
|
||||
ConcNameAndVersion(vless, "1", fname);
|
||||
TIMEOUT(rval = link(vless, fname));
|
||||
if (rval == -1) {
|
||||
@@ -3212,13 +3226,13 @@ static int maintain_version(char *file, int forcep)
|
||||
* exists. Thus, FindHighestVersion works fine from now on.
|
||||
*/
|
||||
|
||||
if (get_versionless(VA.files, vless, dir) == 0) {
|
||||
if (get_versionless(varray, vless, dir) == 0) {
|
||||
/*
|
||||
* There is not a versionless file, but at least one versioned file.
|
||||
* Thus, the thing we have to do is to link a versionless file
|
||||
* to the existing highest versioned file.
|
||||
*/
|
||||
FindHighestVersion(VA.files, entry, max_no);
|
||||
FindHighestVersion(varray, entry, max_no);
|
||||
ConcDirAndName(dir, entry->name, old_file);
|
||||
/*
|
||||
* The versionless file should have the same case name as the old
|
||||
@@ -3237,15 +3251,15 @@ static int maintain_version(char *file, int forcep)
|
||||
return (1);
|
||||
}
|
||||
|
||||
if (check_vless_link(vless, VA.files, old_file, &highest_p) == 0) return (0);
|
||||
if (check_vless_link(vless, varray, old_file, &highest_p) == 0) return (0);
|
||||
|
||||
if (*old_file == '\0') {
|
||||
/*
|
||||
* The versionless file is not linked to any file in VA.files.
|
||||
* The versionless file is not linked to any file in varray.
|
||||
* Thus, we have to link the versionless file to the file which
|
||||
* is versioned one higher than the existing highest version.
|
||||
*/
|
||||
FindHighestVersion(VA.files, entry, max_no);
|
||||
FindHighestVersion(varray, entry, max_no);
|
||||
sprintf(ver, "%u", max_no + 1);
|
||||
/*
|
||||
* The old file should have the same case name as the versionless
|
||||
@@ -3270,7 +3284,7 @@ static int maintain_version(char *file, int forcep)
|
||||
return (1);
|
||||
} else {
|
||||
/*
|
||||
* Although the versionless file is linked to a file in VA.files,
|
||||
* Although the versionless file is linked to a file in varray,
|
||||
* the file is not the highest versioned file. We have to unlink
|
||||
* the wrongly linked versionless file, and link the highest versioned
|
||||
* file to a versionless file.
|
||||
@@ -3280,7 +3294,7 @@ static int maintain_version(char *file, int forcep)
|
||||
*Lisp_errno = errno;
|
||||
return (0);
|
||||
}
|
||||
FindHighestVersion(VA.files, entry, max_no);
|
||||
FindHighestVersion(varray, entry, max_no);
|
||||
ConcDirAndName(dir, entry->name, old_file);
|
||||
/*
|
||||
* The versionless file should have the same case name as the old
|
||||
|
||||
@@ -59,8 +59,8 @@ void make_dsp_instance(DspInterface dsp, char *lispbitmap, int width_hint, int h
|
||||
} else if (VGA_p()) {
|
||||
VGA_init(dsp, 0, 0, 0, depth_hint);
|
||||
} else { /* Can't set *ANY* video mode! */
|
||||
(void)(void)fprintf(stderr, "No portable graphics mode supported by this host.\n");
|
||||
(void)(void)fprintf(stderr, "\n-Expected VESA or VGA.\n");
|
||||
(void)fprintf(stderr, "No portable graphics mode supported by this host.\n");
|
||||
(void)fprintf(stderr, "\n-Expected VESA or VGA.\n");
|
||||
exit(1);
|
||||
}
|
||||
break;
|
||||
@@ -69,7 +69,7 @@ void make_dsp_instance(DspInterface dsp, char *lispbitmap, int width_hint, int h
|
||||
#elif XWINDOW
|
||||
/* lispbitmap is 0 when we call X_init the first time. */
|
||||
if (X_init(dsp, 0, LispDisplayRequestedWidth, LispDisplayRequestedHeight, depth_hint) == NULL) {
|
||||
(void)fprintf(stderr, "Can't open display.");
|
||||
fprintf(stderr, "Can't open display.");
|
||||
exit(-1);
|
||||
}
|
||||
#endif /* DOS | XWINDOW */
|
||||
@@ -87,7 +87,7 @@ void GenericReturnVoid(void *d) {(void)d; return; }
|
||||
void GenericPanic(void *d) {
|
||||
(void)d;
|
||||
TPRINT(("Enter GenericPanic\n"));
|
||||
(void)fprintf(stderr, "Panic! Call to uninitialized display slot!");
|
||||
fprintf(stderr, "Panic! Call to uninitialized display slot!");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
|
||||
@@ -40,12 +40,7 @@ extern int Mouse_Included;
|
||||
****************************************************/
|
||||
|
||||
void DSP_dspbout(LispPTR *args) /* args[0] : charcode */
|
||||
{
|
||||
int charcode = (args[0] & 0x7F);
|
||||
/* Interlisp-D uses CR as EOL which isn't useful here */
|
||||
putc((charcode == '\r') ? '\n' : charcode, BCPLDISPLAY);
|
||||
fflush(BCPLDISPLAY);
|
||||
}
|
||||
{ putc((args[0] & 0xFFFF) & 0x7f, BCPLDISPLAY); }
|
||||
|
||||
/****************************************************
|
||||
*
|
||||
@@ -57,16 +52,7 @@ void DSP_dspbout(LispPTR *args) /* args[0] : charcode */
|
||||
extern int DisplayInitialized;
|
||||
|
||||
void DSP_showdisplay(LispPTR *args)
|
||||
{
|
||||
LispPTR base = args[0]; /* pointer to the display bitmap */
|
||||
LispPTR rasterwidth = args[1]; /* should be a smallp */
|
||||
|
||||
if (base == NIL) {
|
||||
DisplayInitialized = 0;
|
||||
} else {
|
||||
DisplayInitialized = 1;
|
||||
}
|
||||
}
|
||||
{ DisplayInitialized = 1; }
|
||||
|
||||
/****************************************************
|
||||
*
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
#include "lsptypes.h"
|
||||
#include "lspglob.h"
|
||||
#include "adr68k.h"
|
||||
#include "ether.h"
|
||||
#include "dbprint.h"
|
||||
#include "etherdefs.h"
|
||||
#include "ifpage.h"
|
||||
|
||||
@@ -71,6 +71,7 @@
|
||||
#include "lsptypes.h"
|
||||
#include "lspglob.h"
|
||||
#include "adr68k.h"
|
||||
#include "ether.h"
|
||||
#include "dbprint.h"
|
||||
#include "etherdefs.h"
|
||||
#include "ifpage.h"
|
||||
|
||||
@@ -45,7 +45,7 @@ LispPTR N_OP_findkey(LispPTR tos, int byte) {
|
||||
#endif
|
||||
|
||||
if (CURRENTFX->alink & 1) { /* slow case */
|
||||
find_end = NativeAligned2FromStackOffset(CURRENTFX->blink - 4);
|
||||
find_end = (DLword *)NativeAligned2FromLAddr(STK_OFFSET | (CURRENTFX->blink - 4));
|
||||
} else { /* Fast cae */
|
||||
find_end = ((DLword *)CURRENTFX) - 2 - 4;
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
#include "emlglob.h"
|
||||
#include "fvardefs.h" // for N_OP_fvar_, N_OP_fvarn, N_OP_stkscan, nati...
|
||||
#include "gcdata.h" // for GCLOOKUP, ADDREF, DELREF
|
||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
||||
#include "lispmap.h" // for ATOMS_HI, STK_HI
|
||||
#include "lspglob.h" // for Stackspace
|
||||
#include "lsptypes.h" // for DLword, LispPTR, GETBASEWORD, state, FRAME...
|
||||
|
||||
1
src/gc.c
1
src/gc.c
@@ -12,7 +12,6 @@
|
||||
#include <stdio.h> // for printf
|
||||
#include "emlglob.h"
|
||||
#include "gcdata.h" // for GCLOOKUPV
|
||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
||||
#include "gcdefs.h" // for OP_gcref
|
||||
#include "lspglob.h"
|
||||
#include "lsptypes.h" // for state, ByteCode, PC, TopOfStack, Get_code_...
|
||||
|
||||
@@ -35,7 +35,6 @@
|
||||
#include "commondefs.h" // for error
|
||||
#include "gccodedefs.h" // for code_block_size, reclaimcodeblock
|
||||
#include "gcdata.h" // for REC_GCLOOKUP, DELREF, ADDREF
|
||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
||||
#include "lspglob.h" // for Deleted_Implicit_Hash_Slot_word, UFNTable
|
||||
#include "lsptypes.h" // for LispPTR, NIL, UFN, Get_code_BYTE, POINTERMASK
|
||||
#include "stack.h" // for fnhead
|
||||
|
||||
@@ -49,7 +49,6 @@
|
||||
#include "commondefs.h" // for error
|
||||
#include "gccodedefs.h" // for reclaimcodeblock
|
||||
#include "gcdata.h" // for DELREF, REC_GCLOOKUP
|
||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
||||
#include "gcfinaldefs.h" // for arrayblockmerger, checkarrayblock, deleteblock
|
||||
#include "lispemul.h" // for LispPTR, NIL, T, POINTERMASK, DLword, ATOM_T
|
||||
#include "llstkdefs.h" // for decusecount68k
|
||||
@@ -157,8 +156,10 @@ LispPTR findptrsbuffer(LispPTR ptr) {
|
||||
while (LAddrFromNative(bptr) != NIL) {
|
||||
if (ptr == bptr->vmempage)
|
||||
return (LAddrFromNative(bptr));
|
||||
else
|
||||
else {
|
||||
if (bptr->sysnext & 0xF0000000) printf("findptrsbuffer: would have failed %p 0x%X\n", bptr, bptr->sysnext);
|
||||
bptr = (struct buf *)NativeAligned4FromLAddr(bptr->sysnext);
|
||||
}
|
||||
}
|
||||
return (NIL);
|
||||
}
|
||||
@@ -225,8 +226,9 @@ LispPTR checkarrayblock(LispPTR base, LispPTR free, LispPTR onfreelist) {
|
||||
printarrayblock(base);
|
||||
error("ARRAYBLOCK Trailer INUSE bit set wrong\n");
|
||||
} else if (!onfreelist || (bbase->arlen < MINARRAYBLOCKSIZE))
|
||||
/* Remaining tests only for free list. */
|
||||
return (NIL);
|
||||
/* Remaining tests only for free list. */
|
||||
|
||||
bfwd = (struct arrayblock *)NativeAligned4FromLAddr(bbase->fwd);
|
||||
bbwd = (struct arrayblock *)NativeAligned4FromLAddr(bbase->bkwd);
|
||||
if ((bbwd->fwd != base) || (bfwd->bkwd != base)) {
|
||||
@@ -351,6 +353,7 @@ LispPTR makefreearrayblock(LispPTR block, DLword length) {
|
||||
/* */
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
LispPTR arrayblockmerger(LispPTR base, LispPTR nbase) {
|
||||
DLword arlens, narlens, secondbite, minblocksize, shaveback;
|
||||
struct arrayblock *bbase, *bnbase;
|
||||
@@ -359,23 +362,12 @@ LispPTR arrayblockmerger(LispPTR base, LispPTR nbase) {
|
||||
arlens = bbase->arlen;
|
||||
narlens = bnbase->arlen;
|
||||
secondbite = MAXARRAYBLOCKSIZE - arlens;
|
||||
/* There are three cases for merging the blocks
|
||||
* (1) the total size of the two blocks is less than max:
|
||||
* merge into a single block
|
||||
* (2) creating a max size block leaves a viable leftover block:
|
||||
* move the boundary to make a max block and a leftover block
|
||||
* (3) creating a max size block leaves a non-viable leftover block
|
||||
* move the boundary to make a big block and a minimum size leftover block
|
||||
*/
|
||||
if (base + (2 * arlens) != nbase) {
|
||||
error("Attempt to merge non-adjacent blocks in array space\n");
|
||||
}
|
||||
if (narlens > secondbite) { /* (2) or (3) */
|
||||
if (narlens > secondbite) {
|
||||
arlens = MAXARRAYBLOCKSIZE;
|
||||
narlens = narlens - secondbite;
|
||||
minblocksize =
|
||||
((*Hunk_word == ATOM_T) ? (ARRAYBLOCKOVERHEADCELLS + MAXCELLSPERHUNK) : MINARRAYBLOCKSIZE);
|
||||
if (narlens < minblocksize) { /* (3) */
|
||||
if (narlens < minblocksize) {
|
||||
shaveback = narlens - minblocksize;
|
||||
narlens = minblocksize;
|
||||
arlens += shaveback;
|
||||
@@ -399,10 +391,10 @@ LispPTR mergebackward(LispPTR base) {
|
||||
LispPTR pbase;
|
||||
struct arrayblock *ptrailer;
|
||||
|
||||
ptrailer = (struct arrayblock *)NativeAligned4FromLAddr(base - ARRAYBLOCKTRAILERWORDS);
|
||||
if (base == NIL)
|
||||
return (NIL);
|
||||
ptrailer = (struct arrayblock *)NativeAligned4FromLAddr(base - ARRAYBLOCKTRAILERWORDS);
|
||||
if ((*ArrayMerging_word == NIL) ||
|
||||
else if ((*ArrayMerging_word == NIL) ||
|
||||
((base == *ArraySpace_word) || ((base == *ArraySpace2_word) || (ptrailer->inuse == T))))
|
||||
return (linkblock(base));
|
||||
pbase = base - 2 * ptrailer->arlen;
|
||||
@@ -422,18 +414,16 @@ LispPTR mergebackward(LispPTR base) {
|
||||
LispPTR mergeforward(LispPTR base) {
|
||||
LispPTR nbase, nbinuse;
|
||||
struct arrayblock *bbase, *bnbase;
|
||||
if (*ArrayMerging_word == NIL) return NIL;
|
||||
if (base == NIL) return NIL;
|
||||
if (checkarrayblock(base, T, T)) return NIL;
|
||||
|
||||
bbase = (struct arrayblock *)NativeAligned4FromLAddr(base);
|
||||
nbase = base + 2 * (bbase->arlen);
|
||||
if (nbase == *ArrayFrLst_word || nbase == *ArrayFrLst2_word) return NIL;
|
||||
|
||||
bnbase = (struct arrayblock *)NativeAligned4FromLAddr(nbase);
|
||||
nbinuse = bnbase->inuse;
|
||||
if (checkarrayblock(nbase, !nbinuse, NIL)) return NIL;
|
||||
if (nbinuse) return (NIL);
|
||||
if ((*ArrayMerging_word == NIL) ||
|
||||
((base == NIL) ||
|
||||
(checkarrayblock(base, T, T) ||
|
||||
((nbase == *ArrayFrLst_word) ||
|
||||
((nbase == *ArrayFrLst2_word) ||
|
||||
(checkarrayblock(nbase, (!(nbinuse = bnbase->inuse)), NIL) || nbinuse))))))
|
||||
return (NIL);
|
||||
deleteblock(nbase);
|
||||
deleteblock(base);
|
||||
return (arrayblockmerger(base, nbase));
|
||||
@@ -552,15 +542,15 @@ void printarrayblock(LispPTR base) {
|
||||
printf(" Length: %d cells.\n\n", bbase->arlen);
|
||||
|
||||
addr = ((LispPTR *)bbase) - 20;
|
||||
for (; addr < (LispPTR *)bbase; addr++) printf("%16p %8x\n", (void *)addr, *addr);
|
||||
printf("%16p %8x <- array header\n", (void *)addr, *addr);
|
||||
for (; addr < (LispPTR *)bbase; addr++) printf("%p %8x\n", (void *)addr, *addr);
|
||||
printf("%p %8x <- array header\n", (void *)addr, *addr);
|
||||
addr++;
|
||||
for (; addr < (LispPTR *)bbase + 20; addr++) printf("%16p %8x\n", (void *)addr, *addr);
|
||||
for (; addr < (LispPTR *)bbase + 20; addr++) printf("%p %8x\n", (void *)addr, *addr);
|
||||
printf(". . .\n");
|
||||
|
||||
addr = ((LispPTR *)btrailer) - 20;
|
||||
for (; addr < (LispPTR *)btrailer; addr++) printf("%16p %8x\n", (void *)addr, *addr);
|
||||
printf("%16p %8x <- array trailer\n", (void *)addr, *addr);
|
||||
for (; addr < (LispPTR *)btrailer; addr++) printf("%p %8x\n", (void *)addr, *addr);
|
||||
printf("%p %8x <- array trailer\n", (void *)addr, *addr);
|
||||
addr++;
|
||||
for (; addr < (LispPTR *)btrailer + 20; addr++) printf("%16p %8x\n", (void *)addr, *addr);
|
||||
for (; addr < (LispPTR *)btrailer + 20; addr++) printf("%p %8x\n", (void *)addr, *addr);
|
||||
}
|
||||
|
||||
@@ -253,7 +253,7 @@ void enter_big_reference_count(LispPTR ptr) {
|
||||
/* */
|
||||
/************************************************************************/
|
||||
|
||||
void modify_big_reference_count(GCENTRY *entry, DLword casep, LispPTR ptr) {
|
||||
void modify_big_reference_count(LispPTR *entry, DLword casep, LispPTR ptr) {
|
||||
struct gc_ovfl *oventry;
|
||||
LispPTR tmp;
|
||||
|
||||
|
||||
@@ -39,7 +39,6 @@
|
||||
#include "commondefs.h" // for error
|
||||
#include "emlglob.h"
|
||||
#include "gcdata.h" // for GCENTRY, REC_GCLOOKUP, STKREF, hashentry
|
||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
||||
#include "gcmain3defs.h" // for gcmapscan, gcmapunscan, gcscanstack
|
||||
#include "gcrcelldefs.h" // for gcreccell
|
||||
#include "gcscandefs.h" // for gcscan1, gcscan2
|
||||
|
||||
@@ -31,7 +31,6 @@
|
||||
|
||||
#include "arith.h" // for GetSmalldata
|
||||
#include "gcdata.h" // for htoverflow, REC_GCLOOKUP
|
||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
||||
#include "gcoflowdefs.h" // for gc_handleoverflow, gcmaptable
|
||||
#include "gcrdefs.h" // for doreclaim
|
||||
#include "lispemul.h" // for NIL, DLword, LispPTR
|
||||
|
||||
@@ -71,7 +71,6 @@
|
||||
#include "commondefs.h" // for error
|
||||
#include "gccodedefs.h" // for reclaimcodeblock
|
||||
#include "gcdata.h" // for DELREF, REC_GCLOOKUPV, ADDREF, REC_GCLOOKUP
|
||||
#include "gchtfinddefs.h" // for htfind, rec_htfind
|
||||
#include "gcfinaldefs.h" // for reclaimarrayblock, reclaimstackp, releasing...
|
||||
#include "gcrcelldefs.h" // for freelistcell, gcreccell
|
||||
#include "lispemul.h" // for LispPTR, ConsCell, NIL, POINTERMASK, DLword
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user