From 230904414561612feade740f59b1d1e6baf50af7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Josef=20S=C3=B6ntgen?= Date: Mon, 10 Feb 2014 21:53:43 +0100 Subject: [PATCH] Port of chocolate-doom (v2.2.1) "Chocolate Doom is a Doom source port that accurately reproduces the experience of Doom as it was played in the 1990s." Fixes #2. --- ports/chocolate-doom.hash | 1 + ports/chocolate-doom.port | 10 ++ run/chocolate-doom.run | 209 +++++++++++++++++++++++ src/app/chocolate-doom/config.h | 89 ++++++++++ src/app/chocolate-doom/doom/target.mk | 6 + src/app/chocolate-doom/heretic/target.mk | 6 + src/app/chocolate-doom/hexen/target.mk | 6 + src/app/chocolate-doom/strife/target.mk | 6 + src/app/chocolate-doom/target.inc | 88 ++++++++++ 9 files changed, 421 insertions(+) create mode 100644 ports/chocolate-doom.hash create mode 100644 ports/chocolate-doom.port create mode 100644 run/chocolate-doom.run create mode 100644 src/app/chocolate-doom/config.h create mode 100644 src/app/chocolate-doom/doom/target.mk create mode 100644 src/app/chocolate-doom/heretic/target.mk create mode 100644 src/app/chocolate-doom/hexen/target.mk create mode 100644 src/app/chocolate-doom/strife/target.mk create mode 100644 src/app/chocolate-doom/target.inc diff --git a/ports/chocolate-doom.hash b/ports/chocolate-doom.hash new file mode 100644 index 0000000..ac30e22 --- /dev/null +++ b/ports/chocolate-doom.hash @@ -0,0 +1 @@ +ff160dca7cf576e9e842e72f6f2724624e47d07a diff --git a/ports/chocolate-doom.port b/ports/chocolate-doom.port new file mode 100644 index 0000000..252534e --- /dev/null +++ b/ports/chocolate-doom.port @@ -0,0 +1,10 @@ +LICENSE := GPLv2 +VERSION := 2.2.1 +DOWNLOADS := chocolate-doom.archive + +BASE_URL := http://www.chocolate-doom.org/downloads/$(VERSION) +URL(chocolate-doom) := $(BASE_URL)/chocolate-doom-$(VERSION).tar.gz +SHA(chocolate-doom) := be0f2b5d642beca8c9ef21ad0472ee9329bc2a78 +SIG(chocolate-doom) := ${URL(chocolate-doom)}.asc +KEY(chocolate-doom) := 23354344 +DIR(chocolate-doom) := src/app/chocolate-doom diff --git a/run/chocolate-doom.run b/run/chocolate-doom.run new file mode 100644 index 0000000..cc200be --- /dev/null +++ b/run/chocolate-doom.run @@ -0,0 +1,209 @@ +# +# Build +# + +if {[have_include "power_on/qemu"]} { + puts "\nRunning on Qemu is not recommended.\n" + exit 1 +} + + +# +# On x86 systems w/o ps2 only use usb input +# +set use_usb_input_only 0 + +set use_audio [expr ![have_spec arm]] + +set build_components { + core init + drivers/timer + server/tar_fs + drivers/framebuffer + drivers/input + + app/chocolate-doom/doom +} + + +if {[have_spec linux]} { + set use_usb_input_only 1 +} + +lappend_if $use_audio build_components drivers/audio + +source ${genode_dir}/repos/base/run/platform_drv.inc +append_platform_drv_build_components + + +lappend_if [expr ![have_spec linux]] build_components drivers/usb +lappend_if [expr !$use_usb_input_only] build_components server/input_merger + +build $build_components + +create_boot_directory + +# +# Generate config +# + +append config { + + + + + + + + + + + + + + + + + + + + + + } + +append_if [have_spec sdl] config { + + + + + + + } + +append_platform_drv_config + +append_if [have_spec vesa] config { + + + + + } + +append_if [have_spec pl11x] config { + + + + } + +append_if [expr [have_spec ps2] && !$use_usb_input_only] config { + + + + } + +append_if [expr ![have_spec linux]] config { + + + + + + + } + +append_if $use_audio config { + + + + } + +append_if [expr !$use_usb_input_only] config { + + + + + + + + + + + + + + + } + +append config { + + + + + + + + + + + + + + + + + + + + } +append_if [expr !$use_usb_input_only] config { + } +append config { + + + +} + +install_config $config + +if {![file exists bin/data.tar]} { + if {![file exists bin/doom1.wad]} { + puts "" + puts "Please download the Doom 1 Shareware IWAD from" + puts " http://distro.ibiblio.org/pub/linux/distributions/slitaz/sources/packages/d/doom1.wad" + puts "and place it in './bin'. Afterwards run this script again." + puts "" + exit 1 + } + + catch { exec mkdir bin/wads } + catch { exec cp bin/doom1.wad bin/wads } + exec tar cf bin/data.tar -C bin wads +} + +# +# Boot modules +# + +# generic modules +set boot_modules { + core init timer tar_fs + chocolate-doom + ld.lib.so + libc.lib.so libm.lib.so sdl.lib.so sdl_net.lib.so + sdl_mixer.lib.so pthread.lib.so + data.tar +} + +# platform-specific modules +append_platform_drv_boot_modules + +lappend_if $use_audio boot_modules audio_drv +lappend_if [have_spec linux] boot_modules fb_sdl +lappend_if [have_spec vesa] boot_modules fb_drv +lappend_if [expr ![have_spec linux]] boot_modules usb_drv +lappend_if [expr !$use_usb_input_only] boot_modules input_merger +lappend_if [expr [have_spec ps2] && !$use_usb_input_only] boot_modules ps2_drv +lappend_if [have_spec pl11x] boot_modules fb_drv + +build_boot_image $boot_modules + +run_genode_until forever diff --git a/src/app/chocolate-doom/config.h b/src/app/chocolate-doom/config.h new file mode 100644 index 0000000..0477148 --- /dev/null +++ b/src/app/chocolate-doom/config.h @@ -0,0 +1,89 @@ +/* config.h. Generated from config.hin by configure. */ +/* config.hin. Generated from configure.ac by autoheader. */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_DEV_ISA_SPKRIO_H */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_DEV_SPEAKER_SPEAKER_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_INTTYPES_H 1 + +/* Define to 1 if you have the `ioperm' function. */ +/* #undef HAVE_IOPERM */ + +/* Define to 1 if you have the `amd64' library (-lamd64). */ +/* #undef HAVE_LIBAMD64 */ + +/* Define to 1 if you have the `i386' library (-li386). */ +/* #undef HAVE_LIBI386 */ + +/* Define to 1 if you have the `m' library (-lm). */ +#define HAVE_LIBM 1 + +/* Define to 1 if you have the `samplerate' library (-lsamplerate). */ +/* #undef HAVE_LIBSAMPLERATE */ + +/* Define to 1 if you have the header file. */ +/* #undef HAVE_LINUX_KD_H */ + +/* Define to 1 if you have the header file. */ +#define HAVE_MEMORY_H 1 + +/* Define to 1 if you have the `mmap' function. */ +#define HAVE_MMAP 1 + +/* Define to 1 if you have the `sched_setaffinity' function. */ +/* #undef HAVE_SCHED_SETAFFINITY */ + +/* Define to 1 if you have the header file. */ +#define HAVE_STDINT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STDLIB_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRINGS_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_STRING_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_STAT_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_SYS_TYPES_H 1 + +/* Define to 1 if you have the header file. */ +#define HAVE_UNISTD_H 1 + +/* Name of package */ +#define PACKAGE "chocolate-doom" + +/* Define to the address where bug reports for this package should be sent. */ +#define PACKAGE_BUGREPORT "fraggle@gmail.com" + +/* Define to the full name of this package. */ +#define PACKAGE_NAME "Chocolate Doom" + +/* Define to the full name and version of this package. */ +#define PACKAGE_STRING "Chocolate Doom 2.0.0" + +/* Define to the one symbol short name of this package. */ +#define PACKAGE_TARNAME "chocolate-doom" + +/* Define to the home page for this package. */ +#define PACKAGE_URL "" + +/* Define to the version of this package. */ +#define PACKAGE_VERSION "2.0.0" + +/* Change this when you create your awesome forked version */ +#define PROGRAM_PREFIX "chocolate-" + +/* Define to 1 if you have the ANSI C header files. */ +#define STDC_HEADERS 1 + +/* Version number of package */ +#define VERSION "2.0.0" diff --git a/src/app/chocolate-doom/doom/target.mk b/src/app/chocolate-doom/doom/target.mk new file mode 100644 index 0000000..9f8e703 --- /dev/null +++ b/src/app/chocolate-doom/doom/target.mk @@ -0,0 +1,6 @@ +GAME = doom + +TARGET=chocolate-$(GAME) + +include $(PRG_DIR)/../target.inc + diff --git a/src/app/chocolate-doom/heretic/target.mk b/src/app/chocolate-doom/heretic/target.mk new file mode 100644 index 0000000..156de02 --- /dev/null +++ b/src/app/chocolate-doom/heretic/target.mk @@ -0,0 +1,6 @@ +GAME = heretic + +TARGET=chocolate-$(GAME) + +include $(PRG_DIR)/../target.inc + diff --git a/src/app/chocolate-doom/hexen/target.mk b/src/app/chocolate-doom/hexen/target.mk new file mode 100644 index 0000000..5c950fd --- /dev/null +++ b/src/app/chocolate-doom/hexen/target.mk @@ -0,0 +1,6 @@ +GAME = hexen + +TARGET=chocolate-$(GAME) + +include $(PRG_DIR)/../target.inc + diff --git a/src/app/chocolate-doom/strife/target.mk b/src/app/chocolate-doom/strife/target.mk new file mode 100644 index 0000000..80eb8b9 --- /dev/null +++ b/src/app/chocolate-doom/strife/target.mk @@ -0,0 +1,6 @@ +GAME = strife + +TARGET=chocolate-$(GAME) + +include $(PRG_DIR)/../target.inc + diff --git a/src/app/chocolate-doom/target.inc b/src/app/chocolate-doom/target.inc new file mode 100644 index 0000000..d4d24b5 --- /dev/null +++ b/src/app/chocolate-doom/target.inc @@ -0,0 +1,88 @@ +CHOCOLATE_DOOM_DIR = $(call select_from_ports,chocolate-doom)/src/app/chocolate-doom + +# textscreen +SRC_C += $(notdir $(wildcard $(CHOCOLATE_DOOM_DIR)/textscreen/*.c)) +# opl +SRC_C += $(notdir $(wildcard $(CHOCOLATE_DOOM_DIR)/opl/*.c)) +# pcsound +SRC_C += $(notdir $(wildcard $(CHOCOLATE_DOOM_DIR)/pcsound/*.c)) +# common engine source +SRC_C += \ + aes_prng.c \ + d_event.c \ + d_iwad.c \ + d_loop.c \ + d_mode.c \ + deh_io.c \ + deh_main.c \ + deh_mapping.c \ + deh_str.c \ + deh_text.c \ + gusconf.c \ + i_cdmus.c \ + i_endoom.c \ + i_joystick.c \ + i_main.c \ + i_oplmusic.c \ + i_pcsound.c \ + i_scale.c \ + i_sdlmusic.c \ + i_sdlsound.c \ + i_sound.c \ + i_system.c \ + i_timer.c \ + i_video.c \ + i_videohr.c \ + m_argv.c \ + m_bbox.c \ + m_cheat.c \ + m_config.c \ + m_controls.c \ + m_fixed.c \ + m_misc.c \ + memio.c \ + midifile.c \ + mus2mid.c \ + net_client.c \ + net_common.c \ + net_dedicated.c \ + net_gui.c \ + net_io.c \ + net_loop.c \ + net_packet.c \ + net_query.c \ + net_sdl.c \ + net_server.c \ + net_structrw.c \ + sha1.c \ + tables.c \ + v_video.c \ + w_checksum.c \ + w_file.c \ + w_file_posix.c \ + w_file_stdc.c \ + w_file_win32.c \ + w_main.c \ + w_merge.c \ + w_wad.c \ + z_zone.c + +# game src +SRC_C += $(notdir $(wildcard $(CHOCOLATE_DOOM_DIR)/src/$(GAME)/*.c)) + +vpath %.c $(CHOCOLATE_DOOM_DIR)/opl +vpath %.c $(CHOCOLATE_DOOM_DIR)/pcsound +vpath %.c $(CHOCOLATE_DOOM_DIR)/src +vpath %.c $(CHOCOLATE_DOOM_DIR)/src/$(GAME) +vpath %.c $(CHOCOLATE_DOOM_DIR)/textscreen + +INC_DIR += $(PRG_DIR)/.. +INC_DIR += $(CHOCOLATE_DOOM_DIR)/opl +INC_DIR += $(CHOCOLATE_DOOM_DIR)/pcsound +INC_DIR += $(CHOCOLATE_DOOM_DIR)/src +INC_DIR += $(CHOCOLATE_DOOM_DIR)/src/$(GAME) +INC_DIR += $(CHOCOLATE_DOOM_DIR)/textscreen + +LIBS = libc libm sdl sdl_mixer sdl_net + +# vi:set ft=make :