diff --git a/.github/workflows/build-ci.yml b/.github/workflows/build-ci.yml new file mode 100644 index 0000000..0724b47 --- /dev/null +++ b/.github/workflows/build-ci.yml @@ -0,0 +1,62 @@ +name: Build CI-specific versions + +on: [push, pull_request, workflow_dispatch] + +permissions: + contents: read + +jobs: + build_windows_x64: + env: + SYSROOT: /usr/x86_64-w64-mingw32/sys-root/mingw + runs-on: ubuntu-latest + container: fedora:latest + steps: + - uses: actions/checkout@v3 + - name: Install dependencies + run: sudo dnf -y install autoconf automake binutils cpp gcc make pkgconf pkgconf-m4 pkgconf-pkg-config zip unzip git mingw64-gcc mingw64-gcc-c++ mingw64-zlib mingw64-zlib-static mingw64-libpng mingw64-libpng-static mingw64-SDL2 mingw64-win-iconv python3-pillow + - name: Build + run: make PLATFORM=mingw32-sdl ARCH=x86_64 + - name: Package artifact + run: mkdir dist && cp LICENSE docs/* build/x86_64-mingw32-sdl/zeta86.exe $SYSROOT/bin/SDL2.dll dist/ + - name: Archive artifact + uses: actions/upload-artifact@v3 + with: + name: Zeta (Windows) + path: dist/* + + build_linux_x64: + runs-on: ubuntu-22.04 + steps: + - uses: actions/checkout@v3 + - name: Update Ubuntu packages + run: sudo apt-get update + - name: Set up Ubuntu packages + run: sudo apt-get install -y git zip libsdl2-dev && pip install Pillow + - name: Build + run: make PLATFORM=unix-sdl + - name: Package artifact + run: mkdir dist && cp LICENSE build/unix-sdl/zeta86 dist/ + - name: Archive artifact + uses: actions/upload-artifact@v3 + with: + name: Zeta (Linux) + path: dist/* + + build_macos: + runs-on: macos-latest + steps: + - uses: actions/checkout@v3 + - name: Set up macOS packages + run: brew install sdl2 && pip install Pillow + - name: Build (x86_64) + run: make PLATFORM=macos-sdl ARCH=x86_64 + - name: Build (AArch64) + run: make PLATFORM=macos-sdl ARCH=aarch64 + - name: Package artifact + run: mkdir dist && cp LICENSE dist/ && lipo -create -output dist/zeta86 build/x86_64-macos-sdl/zeta86 build/aarch64-macos-sdl/zeta86 + - name: Archive artifact + uses: actions/upload-artifact@v3 + with: + name: Zeta (macOS) + path: dist/* diff --git a/Makefile b/Makefile index 104154a..3b0f032 100644 --- a/Makefile +++ b/Makefile @@ -16,7 +16,7 @@ CC = gcc endif endif -VERSION ?= unknown +VERSION ?= 1.0.6 RESDIR = res SRCDIR = src @@ -37,6 +37,18 @@ endif CFLAGS += -mwindows LIBS = -Wl,-Bstatic -lmingw32 -lwinpthread -lm -lgcc -lSDL2main -lpng -lz -lssp -Wl,-Bdynamic -lSDL2 -lopengl32 TARGET = $(BUILDDIR)/zeta86.exe +else ifeq (${PLATFORM},macos-sdl) +USE_SDL = 1 +CC = clang +LIBS = -framework OpenGL -lSDL2 -lSDL2main -lpng -lm +TARGET = $(BUILDDIR)/zeta86 +ifeq (${ARCH},x86_64) +CFLAGS += -target x86_64-apple-macos10.12 +LDFLAGS += -target x86_64-apple-macos10.12 +else ifeq (${ARCH},aarch64) +CFLAGS += -target arm64-apple-macos11 +LDFLAGS += -target arm64-apple-macos11 +endif else ifeq (${PLATFORM},unix-sdl) USE_SDL = 1 LIBS = -lGL -lSDL2 -lSDL2main -lpng -lm @@ -65,7 +77,7 @@ CFLAGS = -O3 --js-library ${SRCDIR}/emscripten_glue.js \ LDFLAGS = ${CFLAGS} TARGET = $(BUILDDIR)/zeta_native.js else -$(error Please specify PLATFORM: mingw32-sdl, unix-curses, unix-headless, unix-sdl, wasm) +$(error Please specify PLATFORM: macos-sdl, mingw32-sdl, unix-curses, unix-headless, unix-sdl, wasm) endif OBJS = $(OBJDIR)/8x8.o \ diff --git a/docs/LICENSE-libpng.txt b/docs/LICENSE-libpng.txt new file mode 100644 index 0000000..e0c5b53 --- /dev/null +++ b/docs/LICENSE-libpng.txt @@ -0,0 +1,134 @@ +COPYRIGHT NOTICE, DISCLAIMER, and LICENSE +========================================= + +PNG Reference Library License version 2 +--------------------------------------- + + * Copyright (c) 1995-2019 The PNG Reference Library Authors. + * Copyright (c) 2018-2019 Cosmin Truta. + * Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson. + * Copyright (c) 1996-1997 Andreas Dilger. + * Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. + +The software is supplied "as is", without warranty of any kind, +express or implied, including, without limitation, the warranties +of merchantability, fitness for a particular purpose, title, and +non-infringement. In no event shall the Copyright owners, or +anyone distributing the software, be liable for any damages or +other liability, whether in contract, tort or otherwise, arising +from, out of, or in connection with the software, or the use or +other dealings in the software, even if advised of the possibility +of such damage. + +Permission is hereby granted to use, copy, modify, and distribute +this software, or portions hereof, for any purpose, without fee, +subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you + must not claim that you wrote the original software. If you + use this software in a product, an acknowledgment in the product + documentation would be appreciated, but is not required. + + 2. Altered source versions must be plainly marked as such, and must + not be misrepresented as being the original software. + + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + + +PNG Reference Library License version 1 (for libpng 0.5 through 1.6.35) +----------------------------------------------------------------------- + +libpng versions 1.0.7, July 1, 2000, through 1.6.35, July 15, 2018 are +Copyright (c) 2000-2002, 2004, 2006-2018 Glenn Randers-Pehrson, are +derived from libpng-1.0.6, and are distributed according to the same +disclaimer and license as libpng-1.0.6 with the following individuals +added to the list of Contributing Authors: + + Simon-Pierre Cadieux + Eric S. Raymond + Mans Rullgard + Cosmin Truta + Gilles Vollant + James Yu + Mandar Sahastrabuddhe + Google Inc. + Vadim Barkov + +and with the following additions to the disclaimer: + + There is no warranty against interference with your enjoyment of + the library or against infringement. There is no warranty that our + efforts or the library will fulfill any of your particular purposes + or needs. This library is provided with all faults, and the entire + risk of satisfactory quality, performance, accuracy, and effort is + with the user. + +Some files in the "contrib" directory and some configure-generated +files that are distributed with libpng have other copyright owners, and +are released under other open source licenses. + +libpng versions 0.97, January 1998, through 1.0.6, March 20, 2000, are +Copyright (c) 1998-2000 Glenn Randers-Pehrson, are derived from +libpng-0.96, and are distributed according to the same disclaimer and +license as libpng-0.96, with the following individuals added to the +list of Contributing Authors: + + Tom Lane + Glenn Randers-Pehrson + Willem van Schaik + +libpng versions 0.89, June 1996, through 0.96, May 1997, are +Copyright (c) 1996-1997 Andreas Dilger, are derived from libpng-0.88, +and are distributed according to the same disclaimer and license as +libpng-0.88, with the following individuals added to the list of +Contributing Authors: + + John Bowler + Kevin Bracey + Sam Bushell + Magnus Holmgren + Greg Roelofs + Tom Tanner + +Some files in the "scripts" directory have other copyright owners, +but are released under this license. + +libpng versions 0.5, May 1995, through 0.88, January 1996, are +Copyright (c) 1995-1996 Guy Eric Schalnat, Group 42, Inc. + +For the purposes of this copyright and license, "Contributing Authors" +is defined as the following set of individuals: + + Andreas Dilger + Dave Martindale + Guy Eric Schalnat + Paul Schmidt + Tim Wegner + +The PNG Reference Library is supplied "AS IS". The Contributing +Authors and Group 42, Inc. disclaim all warranties, expressed or +implied, including, without limitation, the warranties of +merchantability and of fitness for any purpose. The Contributing +Authors and Group 42, Inc. assume no liability for direct, indirect, +incidental, special, exemplary, or consequential damages, which may +result from the use of the PNG Reference Library, even if advised of +the possibility of such damage. + +Permission is hereby granted to use, copy, modify, and distribute this +source code, or portions hereof, for any purpose, without fee, subject +to the following restrictions: + + 1. The origin of this source code must not be misrepresented. + + 2. Altered versions must be plainly marked as such and must not + be misrepresented as being the original source. + + 3. This Copyright notice may not be removed or altered from any + source or altered source distribution. + +The Contributing Authors and Group 42, Inc. specifically permit, +without fee, and encourage the use of this source code as a component +to supporting the PNG file format in commercial products. If you use +this source code in a product, acknowledgment is not required but would +be appreciated. diff --git a/docs/LICENSE-zlib.txt b/docs/LICENSE-zlib.txt new file mode 100644 index 0000000..51c2378 --- /dev/null +++ b/docs/LICENSE-zlib.txt @@ -0,0 +1,20 @@ + (C) 1995-2017 Jean-loup Gailly and Mark Adler + + This software is provided 'as-is', without any express or implied + warranty. In no event will the authors be held liable for any damages + arising from the use of this software. + + Permission is granted to anyone to use this software for any purpose, + including commercial applications, and to alter it and redistribute it + freely, subject to the following restrictions: + + 1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. + 2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. + 3. This notice may not be removed or altered from any source distribution. + + Jean-loup Gailly Mark Adler + jloup@gzip.org madler@alumni.caltech.edu diff --git a/docs/README-SDL.txt b/docs/README-SDL.txt new file mode 100644 index 0000000..8d92955 --- /dev/null +++ b/docs/README-SDL.txt @@ -0,0 +1,13 @@ + +Please distribute this file with the SDL runtime environment: + +The Simple DirectMedia Layer (SDL for short) is a cross-platform library +designed to make it easy to write multi-media software, such as games +and emulators. + +The Simple DirectMedia Layer library source code is available from: +https://www.libsdl.org/ + +This library is distributed under the terms of the zlib license: +http://www.zlib.net/zlib_license.html +