1ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown#!/bin/bash
2ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
3ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browndownloads="$HOME/software/downloads"
4ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
5ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownif [ ! -e /usr/include/tiffio.h ]; then
6ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  echo "Error: could not find file tiffio.h. Please install libtiff4-dev."
7ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  exit 1
8ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownfi
9ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
10ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownexport LC_ALL=C
11ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
12ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownmkdir -p "${downloads}"
13ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
14ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browncd "$(dirname $0)/.."
15ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
16ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownif [ -e splash2 ]; then
17ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  echo "Error: a directory with the name splash2 already exists. Please"
18ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  echo "remove it before running this script, or run this script in another"
19ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  echo "directory."
20ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  exit 1
21ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownfi
22ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
23ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown(
24ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  cd "$downloads"
25ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  if [ ! -e splash2.tar.gz ]; then
26ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    wget -q http://www-flash.stanford.edu/apps/SPLASH/splash2.tar.gz
27ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  fi
28ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  if [ ! -e splash2-modified.patch.gz ]; then
29ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown    wget -q http://www.capsl.udel.edu/splash/splash2-modified.patch.gz
30ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  fi
31ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown)
32ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
33ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browntar zxf $downloads/splash2.tar.gz
34ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browncd splash2
35ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browngzip -cd < "$downloads/splash2-modified.patch.gz" | patch -p1 -s
36ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownpatch -p1 -s <<'EOF'
37ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browndiff -ru orig/splash2/codes/apps/radiosity/display.C splash2/codes/apps/radiosity/display.C
38ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown--- orig/splash2/codes/apps/radiosity/display.C	2008-05-25 10:38:52.000000000 +0200
39ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+++ splash2/codes/apps/radiosity/display.C	2008-05-25 10:37:51.000000000 +0200
40ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown@@ -14,6 +14,7 @@
41ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown /*                                                                       */
42ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown /*************************************************************************/
43ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
44ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+#include <math.h>
45ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown #include <stdio.h>
46ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
47ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown EXTERN_ENV;
48ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown--- orig/splash2/codes/apps/radiosity/Makefile	2008-05-25 10:38:52.000000000 +0200
49ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+++ splash2/codes/apps/radiosity/Makefile	2008-05-25 13:05:36.000000000 +0200
50ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown@@ -15,7 +15,7 @@
51ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
52ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown LOADLIBES = glibdumb/glib.a glibps/glibps.a
53ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
54ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-$(TARGET): $(OBJS)
55ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+$(TARGET): $(OBJS) $(LOADLIBES)
56ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 	$(CC) $(OBJS) $(CFLAGS) $(LOADLIBES) -o $(TARGET) $(LDFLAGS)
57ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
58ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown radiosity.h: patch.h model.h parallel.h task.h
59ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown@@ -29,3 +29,7 @@
60ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown visible.c: visible.C $(HS)
61ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown rad_tools.c: rad_tools.C $(HS)
62ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown room_model.c: room_model.C $(HS)
63ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+glibdumb/glib.a:
64ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+	make -C glibdumb glib.a
65ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+glibps/glibps.a:
66ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+	make -C glibps glibps.a
67ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browndiff -ru orig/splash2/codes/apps/raytrace/rltotiff/Makefile splash2/codes/apps/raytrace/rltotiff/Makefile
68ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown--- orig/splash2/codes/apps/raytrace/rltotiff/Makefile	2008-05-25 10:38:52.000000000 +0200
69ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+++ splash2/codes/apps/raytrace/rltotiff/Makefile	2008-05-25 10:31:57.000000000 +0200
70ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown@@ -4,6 +4,3 @@
71ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown include ../../../Makefile.config
72ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
73ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown LDFLAGS := $(LDFLAGS) -ltiff
74ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-
75ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-clean:
76ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-	rm -rf $(OBJS) $(TARGET)
77ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownEOF
78ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
79ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
80ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownpatch -p1 -s <<EOF
81ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browndiff -ru orig/splash2/codes/Makefile.config splash2/codes/Makefile.config
82ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown--- orig/splash2/codes/Makefile.config	2008-05-25 10:38:52.000000000 +0200
83ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+++ splash2/codes/Makefile.config	2008-05-25 10:14:25.000000000 +0200
84ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown@@ -1,5 +1,5 @@
85ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-CC := gcc
86ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+CC := @CC@
87ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-CFLAGS := -O3 -pthread -D_POSIX_C_SOURCE=200112
88ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+CFLAGS := -g3 -m32 -O3 -pthread -D_POSIX_C_SOURCE=200112
89ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown #CFLAGS := -g3 -pthread -D_POSIX_C_SOURCE=200112
90ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown CFLAGS := \$(CFLAGS) -Wall -W -Wmissing-prototypes -Wmissing-declarations -Wredundant-decls -Wdisabled-optimization
91ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown CFLAGS := \$(CFLAGS) -Wpadded -Winline -Wpointer-arith -Wsign-compare -Wendif-labels
92ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown@@ -5,8 +5,8 @@
93ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown CFLAGS := \$(CFLAGS) -Wpadded -Winline -Wpointer-arith -Wsign-compare -Wendif-labels
94ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown LDFLAGS := -lm
95ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
96ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-BASEDIR := \$(HOME)/splash2/codes
97ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-MACROS := \$(BASEDIR)/null_macros/c.m4.null
98ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+BASEDIR := ${PWD}/codes
99ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+MACROS := \$(BASEDIR)/null_macros/c.m4.null.POSIX_BARRIER
100ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown M4 := m4 -s -Ulen -Uindex
101ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
102ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown x = *
103ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown--- orig/splash2/codes/apps/radiosity/elemman.C	2008-07-13 20:24:35.000000000 +0200
104ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+++ splash2/codes/apps/radiosity/elemman.C	2008-07-13 20:45:15.000000000 +0200
105ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown@@ -24,6 +24,7 @@
106ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
107ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
108ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown #include <stdio.h>
109ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+#include "drd.h"
110ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
111ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown EXTERN_ENV;
112ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
113ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown@@ -707,6 +708,12 @@ void process_rays(Element *e, long proce
114ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     e->n_interactions = 0 ;
115ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     UNLOCK(e->elem_lock->lock);
116ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
117ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+    {
118ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+      Interaction* p;
119ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+      for (p = i_list; p; p = p->next)
120ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+	DRD_IGNORE_VAR(*p);
121ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+    }
122ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+
123ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     /* For each interaction, do BF-error-analysis */
124ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     bf_error_analysis_list( e, i_list, process_id ) ;
125ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
126ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown--- orig/splash2/codes/apps/radiosity/rad_main.C	2008-07-13 20:24:35.000000000 +0200
127ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+++ splash2/codes/apps/radiosity/rad_main.C	2008-07-13 20:50:01.000000000 +0200
128ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown@@ -30,6 +30,7 @@
129ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown #include <panel.h>
130ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown #endif
131ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown #endif
132ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+#include "drd.h"
133ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
134ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown /* ANL macro initialization */
135ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
136ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown@@ -1084,6 +1085,18 @@ void init_global(long process_id)
137ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     /* Initialize statistical info */
138ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown     init_stat_info(process_id) ;
139ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
140ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+    {
141ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+      int i;
142ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+
143ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+      DRD_IGNORE_VAR(global->pbar_count);
144ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+      for (i = 0;
145ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+	   i < sizeof(global->task_queue) / sizeof(global->task_queue[0]);
146ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+	   i++)
147ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+	{
148ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+	  DRD_IGNORE_VAR(global->task_queue[i].n_tasks);
149ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+	}
150ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+      DRD_IGNORE_VAR(global->element_buf);
151ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+    }
152ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown }
153ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
154ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
155ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown--- orig/splash2/codes/apps/radiosity/Makefile	2008-07-13 20:24:35.000000000 +0200
156ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+++ splash2/codes/apps/radiosity/Makefile	2008-07-13 20:09:27.000000000 +0200
157ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown@@ -6,7 +6,7 @@ HS = model.h parallel.h patch.h radiosit
158ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
159ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown include ../../Makefile.config
160ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
161ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown-CFLAGS := \$(CFLAGS) -I./glibdumb -I./glibps
162ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown+CFLAGS := \$(CFLAGS) -I./glibdumb -I./glibps -I../../../../../drd -I../../../../../include
163ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown 
164ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown #CCOPTS = -I -float -I/usr/include \$(CFLAGS)
165ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown #LDFLAGS = -lm -lpthread
166ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff BrownEOF
167ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown
168ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brownfor m in $(find codes -name Makefile)
169ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browndo
170ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  echo "==== $m ===="
171ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Brown  make -s -C $(dirname $m)
172ed07e00d438c74b7a23c01bfffde77e3968305e4Jeff Browndone
173