From 5f0e59b495a0b05f32ac0aa0b05bc319234db9e7 Mon Sep 17 00:00:00 2001 From: Puck Meerburg Date: Tue, 2 Dec 2014 16:20:50 +0000 Subject: [PATCH] Add rssavers recipe * Created new haiku-misc category for miscellaneous Haiku stuff like screen savers (following gentoo's ports) --- .../rssavers/patches/rssavers-0.2.patchset | 619 ++++++++++++++++++ haiku-misc/rssavers/rssavers-0.2.recipe | 74 +++ 2 files changed, 693 insertions(+) create mode 100644 haiku-misc/rssavers/patches/rssavers-0.2.patchset create mode 100644 haiku-misc/rssavers/rssavers-0.2.recipe diff --git a/haiku-misc/rssavers/patches/rssavers-0.2.patchset b/haiku-misc/rssavers/patches/rssavers-0.2.patchset new file mode 100644 index 000000000..7a27b2dfb --- /dev/null +++ b/haiku-misc/rssavers/patches/rssavers-0.2.patchset @@ -0,0 +1,619 @@ +From ee9e2d290aed2d9206b911140662ec2aa2babd4f Mon Sep 17 00:00:00 2001 +From: Puck Meerburg +Date: Tue, 2 Dec 2014 15:06:43 +0000 +Subject: Fix Haiku compilation, add screen_blanker wrapper for screen savers + + +diff --git a/include/rsHaikuScreenSaver/rsHaikuScreenSaver.h b/include/rsHaikuScreenSaver/rsHaikuScreenSaver.h +new file mode 100644 +index 0000000..098b748 +--- /dev/null ++++ b/include/rsHaikuScreenSaver/rsHaikuScreenSaver.h +@@ -0,0 +1,71 @@ ++/* ++ * Copyright (C) 2006 Terence M. Welsh (rsXScreenSaver) ++ * Modified by Puck Meerburg, (c) 2014 ++ * ++ * This file is part of rsHaikuScreenSaver. ++ * ++ * rsHaikuScreenSaver is free software; you can redistribute it and/or ++ * modify it under the terms of the GNU Lesser General Public ++ * License as published by the Free Software Foundation; either ++ * version 2.1 of the License, or (at your option) any later version. ++ * ++ * rsHaikuScreenSaver is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ */ ++ ++ ++/* ++ * rsHaikuScreenSaver library, based on rsXScreenSaver ++ * ++ * Library for handling standard OpenGL screensaver functionality, such ++ * as opening windows, choosing pixel formats, setting video modes, ++ * handling user input, etc... ++ */ ++ ++ ++ ++#ifndef RSHAIKUSCREENSAVER_H ++#define RSHAIKUSCREENSAVER_H ++ ++ ++#include ++#include ++#include ++#include ++#include ++ ++ ++ ++extern int checkingPassword; // A saver should check this and stop drawing if true ++extern int isSuspended; // power save mode ++extern int doingPreview; // Previews take extra long to initialize because Windows ++// has lots of screwy resource hogging problems. It's good to check this so that you ++// can simplify your preview. ++ ++// These variables can be useful information for saver programmer ++extern int pfd_swap_exchange; // Is this bit set in the PIXELFORMATDESCRIPTOR? ++extern int pfd_swap_copy; // Is this bit set in the PIXELFORMATDESCRIPTOR? ++// used to limit frame rate of saver (0 = no limit) ++extern unsigned int dFrameRateLimit; ++// Keyboard toggle for displaying statistics, such as frames per second. ++// User must implement the displaying of statistics if kStatistics is true. ++extern int kStatistics; ++ ++ ++ ++//---------------------------------------------------------------------------- ++ ++ ++// All idle processing is done here. Typically, you would just draw ++// frames during this routine. ++//void idleProc(); ++ ++ ++ ++#endif +diff --git a/include/rsMath/rsMatrix.h b/include/rsMath/rsMatrix.h +index 75d8cfc..08794b8 100644 +--- a/include/rsMath/rsMatrix.h ++++ b/include/rsMath/rsMatrix.h +@@ -24,7 +24,7 @@ + + + +-#include ++#include + + + +diff --git a/include/util/arguments.h b/include/util/arguments.h +index 7295a0c..899bebe 100644 +--- a/include/util/arguments.h ++++ b/include/util/arguments.h +@@ -33,7 +33,10 @@ + + // Handy template for converting std::string to numeric types. + template +-bool from_string(T& t, const std::string& str, std::ios_base& (*f)(std::ios_base&)){ ++bool from_string( ++ T& t, ++ const std::string& str, ++ std::ios& (*f)(std::ios&)){ + std::istringstream iss(str); + return !(iss >> f >> t).fail(); + } +diff --git a/include/util/rsTimer.h b/include/util/rsTimer.h +index 0eeed2d..0a9855d 100644 +--- a/include/util/rsTimer.h ++++ b/include/util/rsTimer.h +@@ -28,6 +28,7 @@ + #include + #else + #include ++#include + #include + #include + #endif +diff --git a/src/Flocks/Flocks.cpp b/src/Flocks/Flocks.cpp +index 12515fc..3eb5189 100644 +--- a/src/Flocks/Flocks.cpp ++++ b/src/Flocks/Flocks.cpp +@@ -32,6 +32,9 @@ + #ifdef RS_XSCREENSAVER + #include + #endif ++#ifdef RS_HAIKUSCREENSAVER ++#include ++#endif + + #include + #include +@@ -417,7 +420,7 @@ void setDefaults(){ + } + + +-#ifdef RS_XSCREENSAVER ++#if defined(RS_XSCREENSAVER) || defined(RS_HAIKUSCREENSAVER) + void handleCommandLine(int argc, char* argv[]){ + setDefaults(); + getArgumentsValue(argc, argv, std::string("-leaders"), dLeaders, 1, 100); +@@ -468,7 +471,7 @@ void initSaver(HWND hwnd){ + + reshape(rect.right, rect.bottom); + #endif +-#ifdef RS_XSCREENSAVER ++#if defined(RS_XSCREENSAVER) || defined(RS_HAIKUSCREENSAVER) + void initSaver(){ + #endif + int i; +@@ -529,7 +532,7 @@ void initSaver(){ + } + + +-#ifdef RS_XSCREENSAVER ++#if defined(RS_XSCREENSAVER) | defined(RS_HAIKUSCREENSAVER) + void cleanUp(){ + // Free memory + delete[] lBugs; +diff --git a/src/Flocks/Makefile b/src/Flocks/Makefile +index c8e926e..b816e29 100644 +--- a/src/Flocks/Makefile ++++ b/src/Flocks/Makefile +@@ -1,6 +1,6 @@ + INCLUDE = -I../../include +-LIBRARY = -lm -lGL -lGLU ../../lib/rsXScreenSaver.a ../../lib/Rgbhsl.a ../../lib/rsText.a +-CFLAGS = -O3 -DRS_XSCREENSAVER $(INCLUDE) ++LIBRARY = -shared -g -lGL -lGLU ../../lib/rsHaikuScreenSaver.a ../../lib/Rgbhsl.a ../../lib/rsText.a # -lm ++CFLAGS = -O3 -g -DRS_HAIKUSCREENSAVER $(INCLUDE) + + OBJECTS = Flocks.o + +diff --git a/src/Flux/Flux.cpp b/src/Flux/Flux.cpp +index 0bff6c1..f297801 100644 +--- a/src/Flux/Flux.cpp ++++ b/src/Flux/Flux.cpp +@@ -32,6 +32,9 @@ + #ifdef RS_XSCREENSAVER + #include + #endif ++#ifdef RS_HAIKUSCREENSAVER ++#include ++#endif + + #include + #include +@@ -82,7 +85,7 @@ int dRotation; + int dWind; + int dInstability; + int dBlur; +-#ifdef RS_XSCREENSAVER ++#if defined(RS_XSCREENSAVER) || defined(RS_HAIKUSCREENSAVER) + #define DEFAULTS1 1 + #define DEFAULTS2 2 + #define DEFAULTS3 3 +@@ -606,7 +609,7 @@ void setDefaults(int which){ + } + + +-#ifdef RS_XSCREENSAVER ++#if defined(RS_XSCREENSAVER) || defined(RS_HAIKUSCREENSAVER) + void handleCommandLine(int argc, char* argv[]){ + int defaults = DEFAULTS1; + setDefaults(defaults); +@@ -654,7 +657,7 @@ void initSaver(HWND hwnd){ + glLoadIdentity(); + gluPerspective(100.0, aspectRatio, 0.01, 200.0); + #endif +-#ifdef RS_XSCREENSAVER ++#if defined(RS_XSCREENSAVER) || defined(RS_HAIKUSCREENSAVER) + void initSaver(){ + #endif + int i, j; +@@ -749,7 +752,7 @@ void initSaver(){ + } + + +-#ifdef RS_XSCREENSAVER ++#if defined(RS_XSCREENSAVER) || defined(RS_HAIKUSCREENSAVER) + void cleanUp(){ + // Free memory + delete[] fluxes; +diff --git a/src/Flux/Makefile b/src/Flux/Makefile +index 903cfd4..0b14ab8 100644 +--- a/src/Flux/Makefile ++++ b/src/Flux/Makefile +@@ -1,6 +1,6 @@ + INCLUDE = -I../../include +-LIBRARY = -L../../lib -lm -lGL -lGLU ../../lib/rsXScreenSaver.a ../../lib/Rgbhsl.a ../../lib/rsText.a +-CFLAGS = -O3 -DRS_XSCREENSAVER $(INCLUDE) ++LIBRARY = -L../../lib -shared -lGL -lGLU ../../lib/rsHaikuScreenSaver.a ../../lib/Rgbhsl.a ../../lib/rsText.a # -lm ++CFLAGS = -O3 -DRS_HAIKUSCREENSAVER $(INCLUDE) + + OBJECTS = Flux.o + +diff --git a/src/Hyperspace/Hyperspace.cpp b/src/Hyperspace/Hyperspace.cpp +index 490db7b..c9998d3 100644 +--- a/src/Hyperspace/Hyperspace.cpp ++++ b/src/Hyperspace/Hyperspace.cpp +@@ -35,6 +35,9 @@ + #ifdef RS_XSCREENSAVER + #include + #endif ++#ifdef RS_HAIKUSCREENSAVER ++#include ++#endif + + #include + #include +@@ -446,7 +449,7 @@ void setDefaults(){ + } + + +-#ifdef RS_XSCREENSAVER ++#if defined(RS_XSCREENSAVER) || defined(RS_HAIKUSCREENSAVER) + void handleCommandLine(int argc, char* argv[]){ + setDefaults(); + getArgumentsValue(argc, argv, std::string("-speed"), dSpeed, 1, 100); +@@ -506,7 +509,7 @@ void initSaver(HWND hwnd){ + + reshape(rect.right, rect.bottom); + #endif +-#ifdef RS_XSCREENSAVER ++#if defined(RS_XSCREENSAVER) || defined(RS_HAIKUSCREENSAVER) + void initSaver(){ + #endif + // Seed random number generator +@@ -630,7 +633,7 @@ void initSaver(){ + } + + +-#ifdef RS_XSCREENSAVER ++#if defined(RS_XSCREENSAVER) || defined(RS_HAIKUSCREENSAVER) + void cleanUp(){ + // Free memory + if(dUseGoo) +diff --git a/src/Hyperspace/Makefile b/src/Hyperspace/Makefile +index 99f26cb..721b982 100644 +--- a/src/Hyperspace/Makefile ++++ b/src/Hyperspace/Makefile +@@ -1,6 +1,6 @@ + INCLUDE = -I. -I../../include +-LIBRARY = -lm -lGL -lGLU ../../lib/rsXScreenSaver.a ../../lib/rsMath.a ../../lib/Implicit.a ../../lib/rsText.a ../../lib/Rgbhsl.a +-CFLAGS = -O3 -DRS_XSCREENSAVER -DGL_GLEXT_PROTOTYPES $(INCLUDE) ++LIBRARY = -shared -lGL -lGLU ../../lib/rsHaikuScreenSaver.a ../../lib/rsMath.a ../../lib/Implicit.a ../../lib/rsText.a ../../lib/Rgbhsl.a # -lm ++CFLAGS = -O3 -DRS_HAIKUSCREENSAVER -DGL_GLEXT_PROTOTYPES $(INCLUDE) + + OBJECTS = Hyperspace.o \ + causticTextures.o \ +diff --git a/src/Implicit/Makefile b/src/Implicit/Makefile +index 8659f8b..3ce93f1 100644 +--- a/src/Implicit/Makefile ++++ b/src/Implicit/Makefile +@@ -1,5 +1,5 @@ + INCLUDE = -I../../include +-COMPILE = gcc $(INCLUDE) -O3 -DGL_GLEXT_PROTOTYPES -msse -mfpmath=sse ++COMPILE = gcc $(INCLUDE) -shared -O3 -DGL_GLEXT_PROTOTYPES # -msse -mfpmath=sse + OBJECTS = impCubeTables.o \ + impCubeVolume.o \ + impSurface.o \ +diff --git a/src/Microcosm/Makefile b/src/Microcosm/Makefile +index ddaade3..2262be1 100644 +--- a/src/Microcosm/Makefile ++++ b/src/Microcosm/Makefile +@@ -1,6 +1,6 @@ + INCLUDE = -I. -I../../include +-LIBRARY = -lm -lGL -lGLU ../../lib/rsXScreenSaver.a ../../lib/rsMath.a ../../lib/Implicit.a ../../lib/Rgbhsl.a ../../lib/rsText.a -pthread +-CFLAGS = -O3 -DRS_XSCREENSAVER -DGL_GLEXT_PROTOTYPES $(INCLUDE) -msse -mfpmath=sse ++LIBRARY = -lGL -lGLU ../../lib/rsHaikuScreenSaver.a ../../lib/rsMath.a ../../lib/Implicit.a ../../lib/Rgbhsl.a ../../lib/rsText.a # -pthread -lm ++CFLAGS = -O3 -shared -DRS_HAIKUSCREENSAVER -DGL_GLEXT_PROTOTYPES $(INCLUDE) # -msse -mfpmath=sse + + OBJECTS = Microcosm.o \ + MirrorBox.o \ +diff --git a/src/Microcosm/Microcosm.cpp b/src/Microcosm/Microcosm.cpp +index 3c6b2be..c05584e 100644 +--- a/src/Microcosm/Microcosm.cpp ++++ b/src/Microcosm/Microcosm.cpp +@@ -31,6 +31,9 @@ + #ifdef RS_XSCREENSAVER + #include + #endif ++#ifdef RS_HAIKUSCREENSAVER ++#include ++#endif + + //#include + #include +@@ -869,7 +872,7 @@ void setDefaults(int which){ + } + + +-#ifdef RS_XSCREENSAVER ++#if defined(RS_XSCREENSAVER) || defined(RS_HAIKUSCREENSAVER) + void handleCommandLine(int argc, char* argv[]){ + setDefaults(0); + getArgumentsValue(argc, argv, std::string("-stime"), dSingleTime, 0, 300); +@@ -921,7 +924,7 @@ void initSaver(HWND hwnd){ + + reshape(rect.right, rect.bottom); + #endif +-#ifdef RS_XSCREENSAVER ++#if defined(RS_XSCREENSAVER) || defined(RS_HAIKUSCREENSAVER) + void initSaver(){ + #endif + srand((unsigned)time(NULL)); +@@ -1132,7 +1135,7 @@ void initSaver(){ + } + + +-#ifdef RS_XSCREENSAVER ++#if defined(RS_XSCREENSAVER) || defined(RS_HAIKUSCREENSAVER) + void cleanUp(){ + // Free memory + } +diff --git a/src/Plasma/Makefile b/src/Plasma/Makefile +index 697ece9..18e152c 100644 +--- a/src/Plasma/Makefile ++++ b/src/Plasma/Makefile +@@ -1,6 +1,6 @@ + INCLUDE = -I../../include +-LIBRARY = -L../../lib -lm -lGL -lGLU ../../lib/rsXScreenSaver.a ../../lib/rsText.a +-CFLAGS = -O3 -DRS_XSCREENSAVER $(INCLUDE) ++LIBRARY = -shared -L../../lib -lGL -lGLU ../../lib/rsHaikuScreenSaver.a ../../lib/rsText.a ++CFLAGS = -O3 -DRS_HAIKUSCREENSAVER $(INCLUDE) + + OBJECTS = Plasma.o + +diff --git a/src/Plasma/Plasma.cpp b/src/Plasma/Plasma.cpp +index 82444e4..6011e6f 100644 +--- a/src/Plasma/Plasma.cpp ++++ b/src/Plasma/Plasma.cpp +@@ -33,6 +33,9 @@ + #ifdef RS_XSCREENSAVER + #include + #endif ++#ifdef RS_HAIKUSCREENSAVER ++#include ++#endif + + #include + #include +@@ -263,7 +266,7 @@ void setDefaults(){ + } + + +-#ifdef RS_XSCREENSAVER ++#if defined(RS_XSCREENSAVER) || defined(RS_HAIKUSCREENSAVER) + void handleCommandLine(int argc, char* argv[]){ + setDefaults(); + getArgumentsValue(argc, argv, std::string("-zoom"), dZoom, 1, 100); +@@ -302,7 +305,7 @@ void initSaver(HWND hwnd){ + glLoadIdentity(); + gluOrtho2D(0.0f, 1.0f, 0.0f, 1.0f); + #endif +-#ifdef RS_XSCREENSAVER ++#ifndef WIN32 + void initSaver(){ + #endif + int i, j; +@@ -339,7 +342,7 @@ void initSaver(){ + } + + +-#ifdef RS_XSCREENSAVER ++#if defined(RS_XSCREENSAVER) || defined(RS_HAIKUSCREENSAVER) + void cleanUp(){ + ; + } +diff --git a/src/rsHaikuScreenSaver/Makefile b/src/rsHaikuScreenSaver/Makefile +new file mode 100644 +index 0000000..5853683 +--- /dev/null ++++ b/src/rsHaikuScreenSaver/Makefile +@@ -0,0 +1,17 @@ ++INCLUDE = -I../../include ++COMPILE = gcc $(INCLUDE) -O3 ++OBJECTS = rsHaikuScreenSaver.o \ ++ ../util/arguments.o ++ ++ ++all: $(OBJECTS) ++ ar cr ../../lib/rsHaikuScreenSaver.a $(OBJECTS) ++ ++clean: ++ rm $(OBJECTS) ++ ++ ++.SUFFIXES: .cpp .o ++ ++.cpp.o: ++ $(COMPILE) -o $@ -c $< +diff --git a/src/rsHaikuScreenSaver/rsHaikuScreenSaver.cpp b/src/rsHaikuScreenSaver/rsHaikuScreenSaver.cpp +new file mode 100644 +index 0000000..521bfe8 +--- /dev/null ++++ b/src/rsHaikuScreenSaver/rsHaikuScreenSaver.cpp +@@ -0,0 +1,173 @@ ++/* ++ * Copyright (C) 2014 Puck Meerburg. ++ * ++ * This file is part of rsHaikuScreenSaver. ++ * ++ * rsHaikuScreenSaver 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 2 of the License, ++ * or (at your option) any later version. ++ * ++ * rsHaikuScreenSaver is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with this program; if not, write to the Free Software ++ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ++ */ ++ ++#include ++#include ++#include ++#include ++ ++int checkingPassword = 0; ++int isSuspended = 0; ++int doingPreview = 0; ++unsigned int dFrameRateLimit = 0; ++int kStatistics = 0; ++bool useRootWindow = false; ++ ++bool quit = false; ++ ++// Functions that must be implemented by screensaver ++extern void handleCommandLine(int argc, char* argv[]); ++extern void initSaver(); ++extern void cleanUp(); ++extern void idleProc(); ++extern void reshape(int, int); ++ ++class ScreenSaverGLView : public BGLView { ++ public: ++ ScreenSaverGLView(BRect bounds); ++ void FrameResized(float width, float height); ++ void EnableDirectMode(bool enabled); ++ void DrawSaver(); ++ private: ++ bool mConnected; ++ bool mFirst; ++}; ++ ++ScreenSaverGLView::ScreenSaverGLView(BRect bounds) : ++ BGLView(bounds, (const char *)NULL, B_FOLLOW_ALL, ++ B_FRAME_EVENTS | B_WILL_DRAW, ++ BGL_RGB | BGL_ALPHA | BGL_DEPTH | BGL_DOUBLE) { ++ mFirst = true; ++} ++ ++ ++void ++ScreenSaverGLView::DrawSaver() ++{ ++ if (mConnected) { ++ LockGL(); ++ if (mFirst) { ++ char *stuff[2] = { "saver", 0 }; ++ handleCommandLine(1, stuff); ++ initSaver(); ++ reshape((int)Bounds().Width(), (int)Bounds().Height()); ++ mFirst = false; ++ } ++ idleProc(); ++ SwapBuffers(); ++ UnlockGL(); ++ } ++} ++ ++ ++void ++ScreenSaverGLView::EnableDirectMode(bool enabled) ++{ ++ BGLView::EnableDirectMode(enabled); ++ mConnected = enabled; ++} ++ ++ ++void ++ScreenSaverGLView::FrameResized(float width, float height) ++{ ++ if (mConnected) { ++ LockGL(); ++ reshape((int)width, (int)height); ++ UnlockGL(); ++ } ++} ++ ++class rsHaikuScreenSaver : public BScreenSaver ++{ ++ public: ++ rsHaikuScreenSaver(BMessage *archive, image_id); ++ void DirectConnected(direct_buffer_info* info); ++ void Draw(BView *, int32 frame); ++ void StopSaver(); ++ void StartConfig(BView *view); ++ status_t StartSaver(BView *view, bool preview); ++ ++ private: ++ ScreenSaverGLView *fSaverView; ++}; ++ ++ ++BScreenSaver* instantiate_screen_saver(BMessage *msg, image_id image) ++{ ++ return new rsHaikuScreenSaver(msg, image); ++} ++ ++ ++rsHaikuScreenSaver::rsHaikuScreenSaver(BMessage *archive, image_id id) ++ : ++ BScreenSaver(archive, id) ++{ ++} ++ ++ ++void ++rsHaikuScreenSaver::StartConfig(BView *view) ++{ ++} ++ ++ ++status_t ++rsHaikuScreenSaver::StartSaver(BView *view, bool preview) ++{ ++ float viewWidth = view->Bounds().Width(); ++ float viewHeight = view->Bounds().Height(); ++ ++ fSaverView = new ScreenSaverGLView(BRect(0, 0, viewWidth, viewHeight)); ++ ++ view->AddChild(fSaverView); ++ ++ // Set tick size to 50,000 microseconds = 0.05 seconds ++ SetTickSize(50000); ++ ++ return B_OK; ++} ++ ++void ++rsHaikuScreenSaver::Draw(BView *, int32 frame) ++{ ++ fSaverView->DrawSaver(); ++} ++ ++void ++rsHaikuScreenSaver::DirectConnected(direct_buffer_info* info) ++{ ++ if (fSaverView) { ++ fSaverView->DirectConnected(info); ++ fSaverView->EnableDirectMode(true); ++ } ++} ++ ++void ++rsHaikuScreenSaver::StopSaver() ++{ ++ if (fSaverView) ++ fSaverView->EnableDirectMode(false); ++ ++ fSaverView->LockGL(); ++ cleanUp(); ++ fSaverView->UnlockGL(); ++} ++ +-- +1.8.3.4 + diff --git a/haiku-misc/rssavers/rssavers-0.2.recipe b/haiku-misc/rssavers/rssavers-0.2.recipe new file mode 100644 index 000000000..747af004f --- /dev/null +++ b/haiku-misc/rssavers/rssavers-0.2.recipe @@ -0,0 +1,74 @@ +SUMMARY="Really Slick Screen Savers" +DESCRIPTION="The Really Slick Screen Savers are a set of, as the name implies,\ +really slick screen savers! Originally made for Windows, these have been ported\ + to Linux and Haiku too!" +HOMEPAGE="http://reallyslick.com/screensavers/" +SRC_URI="http://downloads.sourceforge.net/rssavers/rssavers-0.2.src.tar.gz" +CHECKSUM_SHA256="be58390ea092ffe4ccecf827b04f5e99a1be5be12eaf5266a415fadb01ea4f24" +PATCHES="rssavers-0.2.patchset" +REVISION="1" +COPYRIGHT="1999-2010 Terence M. Welsh\ +2014 Puck Meerburg (Haiku part)" +LICENSE="GNU GPL v2" +ARCHITECTURES="x86_gcc2 x86 x86_64" +PROVIDES=" + rssavers = $portVersion + addon:Flocks = $portVersion + addon:Flux = $portVersion + addon:Hyperspace = $portVersion + addon:Microcosm = $portVersion + addon:Plasma = $portVersion + " +REQUIRES=" + haiku >= $haikuVersion + lib:libgl + lib:libglu + " +BUILD_PREREQUIRES=" + cmd:gcc + cmd:make + devel:libgl + devel:libglu + " +BUILD_REQUIRES=" + haiku_devel >= $haikuVersion + " + +BUILD() +{ + cd src + cd rsHaikuScreenSaver + make + cd ../rsMath + make + cd ../rsText + make + cd ../Rgbhsl + make + cd ../Implicit + make + + cd ../Flocks + make + + cd ../Flux + make + + #cd ../Hyperspace # For some reason this won't run + #make + + cd ../Microcosm + make + + cd ../Plasma + make + + cd .. +} + +INSTALL() +{ + mkdir -p $addOnsDir/Screen\ Savers + cd bin + cp flocks flux microcosm plasma $addOnsDir/Screen\ Savers +}