From 1c72a7109e10943a9da5e864e25e8fff26d788a9 Mon Sep 17 00:00:00 2001 From: Pav Lucistnik Date: Mon, 18 Jul 2005 21:12:39 +0000 Subject: [PATCH] exMARS combines the latest advance in corewar simulation technology, with proactive performance optimizations. Actually exMARS is a redcode simulator, just like exhaust and pMARS. In fact, I have shamelessly taken sourcecode from pMARS, exhaust, some ideas from qMars, a shot of optimizations, shook everything well, and garnished everything with a high level interface for Ruby. PR: ports/83576 Submitted by: Alejandro Pulver --- games/Makefile | 1 + games/exmars/Makefile | 45 +++++++++++++++++++++++++++++++ games/exmars/distinfo | 2 ++ games/exmars/files/patch-Makefile | 21 +++++++++++++++ games/exmars/pkg-descr | 24 +++++++++++++++++ games/exmars/pkg-plist | 45 +++++++++++++++++++++++++++++++ 6 files changed, 138 insertions(+) create mode 100644 games/exmars/Makefile create mode 100644 games/exmars/distinfo create mode 100644 games/exmars/files/patch-Makefile create mode 100644 games/exmars/pkg-descr create mode 100644 games/exmars/pkg-plist diff --git a/games/Makefile b/games/Makefile index 14c73bddc12d..ec4609ea6a0d 100644 --- a/games/Makefile +++ b/games/Makefile @@ -129,6 +129,7 @@ SUBDIR += enigma SUBDIR += euchre SUBDIR += evilfinder + SUBDIR += exmars SUBDIR += exult SUBDIR += falconseye SUBDIR += farblazer diff --git a/games/exmars/Makefile b/games/exmars/Makefile new file mode 100644 index 000000000000..d41634f61db9 --- /dev/null +++ b/games/exmars/Makefile @@ -0,0 +1,45 @@ +# New ports collection makefile for: exmars +# Date created: 16 Jul 2005 +# Whom: Alejandro Pulver +# +# $FreeBSD$ +# + +PORTNAME= exmars +PORTVERSION= 0.01 +CATEGORIES= games +MASTER_SITES= http://martinus.geekisp.com/files/ + +MAINTAINER= alejandro@varnet.biz +COMMENT= Memory Array Redcode Simulator, just like exhaust and pMARS + +USE_REINPLACE= yes + +ALL_TARGET= ${PORTNAME} + +OPTIONS= OPTIMIZED_CFLAGS "Enable compilation optimizations" off + +do-install: +# Program + @${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${PREFIX}/bin + +# Data + @${MKDIR} ${DATADIR} + @${CP} -R ${WRKSRC}/warriors ${DATADIR} + @${INSTALL_SCRIPT} ${WRKSRC}/bench.sh ${DATADIR} + +.include + +post-patch: +# Fix bench.sh + @${REINPLACE_CMD} -e 's|pmars|pmars-server| ; \ + s|\./exmars|exmars|' \ + ${WRKSRC}/bench.sh + +# Enable/disable compilation optimizations + @${REINPLACE_CMD} -e 's|\($${OPT}\)|${CFLAGS} \1|' ${WRKSRC}/${MAKEFILE} +.if !defined(WITH_OPTIMIZED_CFLAGS) + @${REINPLACE_CMD} -e 's|$${OPT}||' ${WRKSRC}/${MAKEFILE} +.endif + +.include diff --git a/games/exmars/distinfo b/games/exmars/distinfo new file mode 100644 index 000000000000..30bb03577582 --- /dev/null +++ b/games/exmars/distinfo @@ -0,0 +1,2 @@ +MD5 (exmars-0.01.tar.gz) = eccab4367bea768763e4a15cddbbe23f +SIZE (exmars-0.01.tar.gz) = 67047 diff --git a/games/exmars/files/patch-Makefile b/games/exmars/files/patch-Makefile new file mode 100644 index 000000000000..daabd0736a77 --- /dev/null +++ b/games/exmars/files/patch-Makefile @@ -0,0 +1,21 @@ +--- Makefile.orig Thu Oct 16 04:59:17 2003 ++++ Makefile Thu Jul 7 15:32:24 2005 +@@ -1,9 +1,9 @@ + # default flags +-CCFLAGS = -O3 -fomit-frame-pointer ++CCFLAGS = ${OPT} + + # my own highly tuned settings + #CC = gcc-3.3.1 +-#CCFLAGS = -O3 -fomit-frame-pointer -fforce-addr -funroll-all-loops -fstrict-aliasing -malign-double -fprefetch-loop-arrays -maccumulate-outgoing-args -minline-all-stringops -finline-functions -finline-limit=800 -ffast-math -mno-align-stringops ++OPT = -O3 -fomit-frame-pointer -fforce-addr -funroll-all-loops -fstrict-aliasing -malign-double -fprefetch-loop-arrays -maccumulate-outgoing-args -minline-all-stringops -finline-functions -finline-limit=800 -ffast-math -mno-align-stringops + #CCFLAGS += -mfpmath=sse,387 -mmmx -msse -march=pentium3 + + # develomental flags +@@ -21,4 +21,4 @@ + rm -f exmars Mars.so *.o *~ + + distclean: clean +- rm -f *.da +\ No newline at end of file ++ rm -f *.da diff --git a/games/exmars/pkg-descr b/games/exmars/pkg-descr new file mode 100644 index 000000000000..b9bebf1d5c2e --- /dev/null +++ b/games/exmars/pkg-descr @@ -0,0 +1,24 @@ +exMARS combines the latest advance in corewar simulation technology, with +proactive performance optimizations. + +Actually exMARS is a redcode simulator, just like exhaust and pMARS. In fact, +I have shamelessly taken sourcecode from pMARS, exhaust, some ideas from +qMars, a shot of optimizations, shook everything well, and garnished +everything with a high level interface for Ruby. + +The resulting program has the following main features: + +* Uses the parser from pMARS, so no previous parsing is neccessary. At first + this was my main motivation for exMARS. +* Speed: 50% faster than pmars on a Pentium III, and often more than twice as + fast than pmars on a Pentium 4 (using gcc 3.3.1, and the same compiler + options). +* Rewritten the code in a more object oriented way, which allows different + Mars at the same time in the same program, it should also be thread save. + +Author: Martin Ankerl + +WWW: http://martinus.geekisp.com/rublog.cgi/Projects/CoreWar/exMARS + +- Alejandro Pulver +alejandro@varnet.biz diff --git a/games/exmars/pkg-plist b/games/exmars/pkg-plist new file mode 100644 index 000000000000..84f691981cbe --- /dev/null +++ b/games/exmars/pkg-plist @@ -0,0 +1,45 @@ +bin/exmars +%%DATADIR%%/bench.sh +%%DATADIR%%/warriors/94nop/Fixed.red +%%DATADIR%%/warriors/94nop/Jaguar.red +%%DATADIR%%/warriors/94nop/QuickSilver.red +%%DATADIR%%/warriors/94nop/Stalker.red +%%DATADIR%%/warriors/94nop/behemot.red +%%DATADIR%%/warriors/94nop/blade.red +%%DATADIR%%/warriors/94nop/candy.red +%%DATADIR%%/warriors/94nop/candy2.red +%%DATADIR%%/warriors/94nop/cheephalfoff.red +%%DATADIR%%/warriors/94nop/firestorm.red +%%DATADIR%%/warriors/94nop/harmonysnoot.red +%%DATADIR%%/warriors/94nop/hazylazy.red +%%DATADIR%%/warriors/94nop/herbalavenger.red +%%DATADIR%%/warriors/94nop/jinx.red +%%DATADIR%%/warriors/94nop/machine.red +%%DATADIR%%/warriors/94nop/nPaperII.red +%%DATADIR%%/warriors/94nop/numb.red +%%DATADIR%%/warriors/94nop/olivia.red +%%DATADIR%%/warriors/94nop/pixie.red +%%DATADIR%%/warriors/94nop/procoptodon.red +%%DATADIR%%/warriors/94nop/purifier.red +%%DATADIR%%/warriors/94nop/recon2.red +%%DATADIR%%/warriors/94nop/reepicheep.red +%%DATADIR%%/warriors/94nop/rotpendragon.red +%%DATADIR%%/warriors/94nop/rov.red +%%DATADIR%%/warriors/94nop/silvertalon12.red +%%DATADIR%%/warriors/94nop/sonofvain.red +%%DATADIR%%/warriors/94nop/thunderstrike.red +%%DATADIR%%/warriors/94nop/uninvited.red +%%DATADIR%%/warriors/94nop/vanquisher2.red +%%DATADIR%%/warriors/error/error.red +%%DATADIR%%/warriors/pspace/dawn2.red +%%DATADIR%%/warriors/pspace/devilish.red +%%DATADIR%%/warriors/pspace/hammerhead.red +%%DATADIR%%/warriors/pspace/preserver.red +%%DATADIR%%/warriors/pspace/rotpendragon2.red +%%DATADIR%%/warriors/pspace/sunset.red +%%DATADIR%%/warriors/pspace/unheardof.red +@dirrm %%DATADIR%%/warriors/pspace +@dirrm %%DATADIR%%/warriors/error +@dirrm %%DATADIR%%/warriors/94nop +@dirrm %%DATADIR%%/warriors +@dirrm %%DATADIR%%