From 659ebeb12cbfa4035649f0a68d4be78fc0009eff Mon Sep 17 00:00:00 2001
From: Andrea Brancaleoni <miwaxe@gmail.com>
Date: Mon, 24 Oct 2016 15:07:29 +0200
Subject: [PATCH] install

---
 UnixBench/Makefile      | 29 ++++++++++++++++++++++-------
 UnixBench/Run           | 42 ++++++++++++++----------------------------
 UnixBench/pgms/multi.sh |  2 +-
 UnixBench/src/execl.c   |  4 +---
 4 files changed, 38 insertions(+), 39 deletions(-)

diff --git a/UnixBench/Makefile b/UnixBench/Makefile
index 880743a..748a2a4 100644
--- a/UnixBench/Makefile
+++ b/UnixBench/Makefile
@@ -141,12 +141,16 @@ BINS = $(PROGDIR)/arithoh $(PROGDIR)/register $(PROGDIR)/short \
 ## These compile only on some platforms...
 # $(PROGDIR)/poll $(PROGDIR)/poll2 $(PROGDIR)/select
 
+PROGRAMS = $(BINS) \
+	$(PROGDIR)/multi.sh $(PROGDIR)/tst.sh \
+	$(PROGDIR)/gfx-x11
+
+DATAS = $(PROGDIR)/unixbench.logo $(PROGDIR)/index.base \
+	$(TESTDIR)/sort.src $(TESTDIR)/cctest.c \
+	$(TESTDIR)/dc.dat $(TESTDIR)/large.txt
+
 # Required non-binary files.
-REQD = $(BINS) $(PROGDIR)/unixbench.logo \
-	$(PROGDIR)/multi.sh $(PROGDIR)/tst.sh $(PROGDIR)/index.base \
-	$(PROGDIR)/gfx-x11 \
-	$(TESTDIR)/sort.src $(TESTDIR)/cctest.c $(TESTDIR)/dc.dat \
-	$(TESTDIR)/large.txt
+REQD = $(PROGRAMS) $(DATAS)
 
 # ######################### the big ALL ############################
 all:
@@ -266,12 +270,12 @@ $(PROGDIR)/ubgears: LDFLAGS += -lm $(GL_LIBS)
 $(PROGDIR)/dhry2: CFLAGS += -DHZ=${HZ}
 $(PROGDIR)/dhry2: $(SRCDIR)/dhry_1.c $(SRCDIR)/dhry_2.c \
                   $(SRCDIR)/dhry.h $(SRCDIR)/timeit.c
-	$(CC) -o $@ ${CFLAGS} $(SRCDIR)/dhry_1.c $(SRCDIR)/dhry_2.c
+	$(CC) -o $@ ${CFLAGS} $(SRCDIR)/dhry_1.c $(SRCDIR)/dhry_2.c $(LDFLAGS)
 
 $(PROGDIR)/dhry2reg: CFLAGS += -DHZ=${HZ} -DREG=register
 $(PROGDIR)/dhry2reg: $(SRCDIR)/dhry_1.c $(SRCDIR)/dhry_2.c \
                      $(SRCDIR)/dhry.h $(SRCDIR)/timeit.c
-	$(CC) -o $@ ${CFLAGS} $(SRCDIR)/dhry_1.c $(SRCDIR)/dhry_2.c
+	$(CC) -o $@ ${CFLAGS} $(SRCDIR)/dhry_1.c $(SRCDIR)/dhry_2.c $(LDFLAGS)
 
 # Run the benchmarks and create the reports
 run:
@@ -283,4 +287,15 @@ clean:
 spotless:	clean
 	$(RM) $(RESULTDIR)/* $(TMPDIR)/*
 
+install: $(PROGRAMS)
+	mkdir -p $(DESTDIR)/usr/libexec/unixbench
+	for program in $(PROGRAMS); do \
+		install -m0755 $$program $(DESTDIR)/usr/libexec/unixbench; \
+	done
+	install -D -m0755 Run $(DESTDIR)/usr/bin/unixbench
+	mkdir -p $(DESTDIR)/usr/share/unixbench
+	for data in $(DATAS); do \
+		install -m0644 $$data $(DESTDIR)/usr/share/unixbench; \
+	done
+
 ## END ##
diff --git a/UnixBench/Run b/UnixBench/Run
index a16a5c9..80f2a8d 100755
--- a/UnixBench/Run
+++ b/UnixBench/Run
@@ -7,7 +7,6 @@ use Time::HiRes;
 use IO::Handle;
 use FindBin;
 
-
 ############################################################################
 #  UnixBench - Release 5.1.3, based on:
 #  The BYTE UNIX Benchmarks - Release 3
@@ -87,16 +86,19 @@ my $cCompiler = 'gcc';
 # variable names are the first parameter to getDir() below.
 
 # Directory where the test programs live.
-my $BINDIR = getDir('UB_BINDIR', $FindBin::Bin . "/pgms");
+my $BINDIR = "/usr/libexec/unixbench";
+
+# Data directory.
+my $DATADIR = "/usr/share/unixbench";
 
 # Temp directory, for temp files.
-my $TMPDIR = getDir('UB_TMPDIR', $FindBin::Bin . "/tmp");
+my $TMPDIR = "/tmp";
 
 # Directory to put results in.
-my $RESULTDIR = getDir('UB_RESULTDIR', $FindBin::Bin . "/results");
+my $RESULTDIR = "/var/lib/unixbench/results";
 
 # Directory where the tests are executed.
-my $TESTDIR = getDir('UB_TESTDIR', $FindBin::Bin . "/testdir");
+my $TESTDIR = "/var/lib/unixbench/testdir";
 
 
 ############################################################################
@@ -593,6 +595,8 @@ sub logFile {
     # Use the date in the base file name.
     my $ymd = strftime "%Y-%m-%d", localtime;
 
+    system("mkdir -p $RESULTDIR");
+
     while (1) {
         my $log = sprintf "%s/%s-%s-%02d",
                         ${RESULTDIR}, $sysInfo->{'name'}, $ymd, $count;
@@ -838,26 +842,6 @@ sub abortRun {
 # TEST SETUP
 ############################################################################
 
-# Do checks that everything's ready for testing.
-sub preChecks {
-    # Set the language.
-    $ENV{'LANG'} = $language;
-
-    # Check that the required files are in the proper places.
-    system("make check");
-    if ($? != 0) {
-        system("make all");
-        if ($? != 0) {
-            abortRun("\"make all\" failed");
-        }
-    }
-
-    # Create a script to kill this run.
-    system("echo \"kill -9 $$\" > \"${TMPDIR}/kill_run\"");
-    chmod(0755, $TMPDIR . "/kill_run");
-}
-
-
 # Parse the command arguments.
 sub parseArgs {
     my @words = @_;
@@ -1031,7 +1015,7 @@ sub indexResults {
 
     # Read in the baseline result data.  If we can't get it, just return
     # without making indexed results.
-    my $index = readResultsFromFile($BINDIR . "/index.base");
+    my $index = readResultsFromFile($DATADIR . "/index.base");
     if (!defined($index)) {
         return;
     }
@@ -1254,6 +1238,9 @@ sub runOnePass {
 
     # Remember where we are, and move to the test directory.
     my $pwd = `pwd`;
+    
+    system("mkdir -p $TESTDIR");
+    system("cp $DATADIR/* $TESTDIR");
     chdir($TESTDIR);
 
     # Execute N copies of the benchmark in parallel.
@@ -1823,7 +1810,6 @@ sub main {
         $tests = $index;
     }
 
-    preChecks();
     my $systemInfo = getSystemInfo();
 
     # If the number of copies to run was not set, set it to 1
@@ -1837,7 +1823,7 @@ sub main {
     }
 
     # Display the program banner.
-    system("cat \"${BINDIR}/unixbench.logo\"");
+    system("cat \"${DATADIR}/unixbench.logo\"");
 
     if ($verbose > 1) {
         printf "\n", join(", ", @$tests);
diff --git a/UnixBench/pgms/multi.sh b/UnixBench/pgms/multi.sh
index c65ba22..3987078 100755
--- a/UnixBench/pgms/multi.sh
+++ b/UnixBench/pgms/multi.sh
@@ -16,7 +16,7 @@
 ID="@(#)multi.sh:3.4 -- 5/15/91 19:30:24";
 instance=1
 while [ $instance -le $1 ]; do
-	/bin/sh "$UB_BINDIR/tst.sh" &
+	/bin/sh "/usr/libexec/unixbench/tst.sh" &
 	instance=`expr $instance + 1`
 done
 wait
diff --git a/UnixBench/src/execl.c b/UnixBench/src/execl.c
index 98f03dc..28c1996 100644
--- a/UnixBench/src/execl.c
+++ b/UnixBench/src/execl.c
@@ -68,9 +68,7 @@ char	*argv[];
 		/* the first invocation */
 		{
 		dur_str = argv[1];
-		if((ptr = getenv("UB_BINDIR")) != NULL)
-			sprintf(path_str,"%s/execl",ptr);
-		fullpath=path_str;
+		fullpath="/usr/libexec/unixbench/execl";
 		time(&start_time);
 		}
 	else  /* one of those execl'd invocations */
-- 
2.10.1

