247 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			247 lines
		
	
	
		
			9.1 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
##############################################################################
 | 
						|
#	UnixBench v5.1.1
 | 
						|
#  Based on The BYTE UNIX Benchmarks - Release 3
 | 
						|
#          Module: Makefile   SID: 3.9 5/15/91 19:30:15
 | 
						|
#
 | 
						|
##############################################################################
 | 
						|
# Bug reports, patches, comments, suggestions should be sent to:
 | 
						|
#	David C Niemi <niemi@tux.org>
 | 
						|
#
 | 
						|
# Original Contacts at Byte Magazine:
 | 
						|
#	Ben Smith or Tom Yager at BYTE Magazine
 | 
						|
#	bensmith@bytepb.byte.com    tyager@bytepb.byte.com
 | 
						|
#
 | 
						|
##############################################################################
 | 
						|
#  Modification Log: 7/28/89 cleaned out workload files
 | 
						|
#                    4/17/90 added routines for installing from shar mess
 | 
						|
#                    7/23/90 added compile for dhrystone version 2.1
 | 
						|
#                          (this is not part of Run file. still use old)
 | 
						|
#                          removed HZ from everything but dhry.
 | 
						|
#                          HZ is read from the environment, if not
 | 
						|
#                          there, you must define it in this file
 | 
						|
#                    10/30/90 moved new dhrystone into standard set
 | 
						|
#                          new pgms (dhry included) run for a specified
 | 
						|
#                          time rather than specified number of loops
 | 
						|
#                    4/5/91 cleaned out files not needed for
 | 
						|
#                          release 3 -- added release 3 files -ben
 | 
						|
#                    10/22/97 added compiler options for strict ANSI C
 | 
						|
#                          checking for gcc and DEC's cc on
 | 
						|
#                          Digital Unix 4.x (kahn@zk3.dec.com)
 | 
						|
#                    09/26/07 changes for UnixBench 5.0
 | 
						|
#                    09/30/07 adding ubgears, GRAPHIC_TESTS switch
 | 
						|
#                    10/14/07 adding large.txt
 | 
						|
##############################################################################
 | 
						|
 | 
						|
##############################################################################
 | 
						|
# CONFIGURATION
 | 
						|
##############################################################################
 | 
						|
 | 
						|
SHELL = /bin/sh
 | 
						|
 | 
						|
# GRAPHICS TESTS: Uncomment the definition of "GRAPHIC_TESTS" to enable
 | 
						|
# the building of the graphics benchmarks.  This will require the
 | 
						|
# X11 libraries on your system.
 | 
						|
#
 | 
						|
# Comment the line out to disable these tests.
 | 
						|
# GRAPHIC_TESTS = defined
 | 
						|
 | 
						|
# Set "GL_LIBS" to the libraries needed to link a GL program.
 | 
						|
GL_LIBS = -lGL -lXext -lX11
 | 
						|
 | 
						|
# OPTIMISATION SETTINGS:
 | 
						|
 | 
						|
## Very generic
 | 
						|
OPTON = -O
 | 
						|
 | 
						|
## For Linux 486/Pentium, GCC 2.7.x and 2.8.x
 | 
						|
#OPTON = -O2 -fomit-frame-pointer -fforce-addr -fforce-mem -ffast-math \
 | 
						|
#	-m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2
 | 
						|
 | 
						|
## For Linux, GCC previous to 2.7.0
 | 
						|
#OPTON = -O2 -fomit-frame-pointer -fforce-addr -fforce-mem -ffast-math -m486
 | 
						|
 | 
						|
#OPTON = -O2 -fomit-frame-pointer -fforce-addr -fforce-mem -ffast-math \
 | 
						|
#	-m386 -malign-loops=1 -malign-jumps=1 -malign-functions=1
 | 
						|
 | 
						|
## For Solaris 2, or general-purpose GCC 2.7.x
 | 
						|
#OPTON = -O2 -fomit-frame-pointer -fforce-addr -ffast-math -Wall
 | 
						|
 | 
						|
## For Digital Unix v4.x, with DEC cc v5.x
 | 
						|
#OPTON = -O4
 | 
						|
#CFLAGS = -DTIME -std1 -verbose -w0
 | 
						|
 | 
						|
## generic gcc CFLAGS.  -DTIME must be included.
 | 
						|
CFLAGS += $(CPPFLAGS) -DTIME -DMINIX=1 -D_MINIX=1 -D_POSIX_SOURCE=1
 | 
						|
 | 
						|
 | 
						|
##############################################################################
 | 
						|
# END CONFIGURATION
 | 
						|
##############################################################################
 | 
						|
 | 
						|
 | 
						|
# local directories
 | 
						|
PROGDIR = ./pgms
 | 
						|
SRCDIR = ./src
 | 
						|
TESTDIR = ./testdir
 | 
						|
RESULTDIR = ./results
 | 
						|
TMPDIR = ./tmp
 | 
						|
# other directories
 | 
						|
INCLDIR = /usr/include
 | 
						|
LIBDIR = /lib
 | 
						|
SCRIPTS = unixbench.logo multi.sh tst.sh index.base
 | 
						|
SOURCES = arith.c big.c context1.c \
 | 
						|
	dummy.c execl.c \
 | 
						|
	fstime.c hanoi.c \
 | 
						|
	pipe.c spawn.c \
 | 
						|
	syscall.c looper.c timeit.c time-polling.c \
 | 
						|
	dhry_1.c dhry_2.c dhry.h whets.c ubgears.c
 | 
						|
TESTS = sort.src cctest.c dc.dat large.txt
 | 
						|
 | 
						|
# ifdef GRAPHIC_TESTS
 | 
						|
# GRAPHIC_BINS = $(PROGDIR)/ubgears
 | 
						|
# else
 | 
						|
GRAPHIC_BINS =
 | 
						|
# endif
 | 
						|
 | 
						|
# Program binaries.
 | 
						|
BINS = $(PROGDIR)/arithoh $(PROGDIR)/register $(PROGDIR)/short \
 | 
						|
	$(PROGDIR)/int $(PROGDIR)/long $(PROGDIR)/float $(PROGDIR)/double \
 | 
						|
	$(PROGDIR)/hanoi $(PROGDIR)/syscall $(PROGDIR)/context1 \
 | 
						|
	$(PROGDIR)/pipe $(PROGDIR)/spawn $(PROGDIR)/execl \
 | 
						|
	$(PROGDIR)/dhry2 $(PROGDIR)/dhry2reg  $(PROGDIR)/looper \
 | 
						|
	$(PROGDIR)/fstime $(PROGDIR)/whetstone-double $(GRAPHIC_BINS)
 | 
						|
## These compile only on some platforms...
 | 
						|
# $(PROGDIR)/poll $(PROGDIR)/poll2 $(PROGDIR)/select
 | 
						|
 | 
						|
# 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
 | 
						|
 | 
						|
# ######################### the big ALL ############################
 | 
						|
all: distr programs
 | 
						|
## Ick!!!  What is this about???  How about let's not chmod everything bogusly.
 | 
						|
#	@chmod 744 * $(SRCDIR)/* $(PROGDIR)/* $(TESTDIR)/* $(DOCDIR)/*
 | 
						|
 | 
						|
# ####################### a check for Run ######################
 | 
						|
check: $(REQD)
 | 
						|
	make all
 | 
						|
# ##############################################################
 | 
						|
# distribute the files out to subdirectories if they are in this one
 | 
						|
distr:
 | 
						|
	@echo "Checking distribution of files"
 | 
						|
# scripts
 | 
						|
	@if  test ! -d  $(PROGDIR) \
 | 
						|
        ; then  \
 | 
						|
           mkdir $(PROGDIR) \
 | 
						|
           ; mv $(SCRIPTS) $(PROGDIR) \
 | 
						|
        ; else \
 | 
						|
           echo "$(PROGDIR)  exists" \
 | 
						|
        ; fi
 | 
						|
# C sources
 | 
						|
	@if  test ! -d  $(SRCDIR) \
 | 
						|
        ; then  \
 | 
						|
           mkdir $(SRCDIR) \
 | 
						|
           ; mv $(SOURCES) $(SRCDIR) \
 | 
						|
        ; else \
 | 
						|
           echo "$(SRCDIR)  exists" \
 | 
						|
        ; fi
 | 
						|
# test data
 | 
						|
	@if  test ! -d  $(TESTDIR) \
 | 
						|
        ; then  \
 | 
						|
           mkdir $(TESTDIR) \
 | 
						|
           ; mv $(TESTS) $(TESTDIR) \
 | 
						|
        ; else \
 | 
						|
           echo "$(TESTDIR)  exists" \
 | 
						|
        ; fi
 | 
						|
# temporary work directory
 | 
						|
	@if  test ! -d  $(TMPDIR) \
 | 
						|
        ; then  \
 | 
						|
           mkdir $(TMPDIR) \
 | 
						|
        ; else \
 | 
						|
           echo "$(TMPDIR)  exists" \
 | 
						|
        ; fi
 | 
						|
# directory for results
 | 
						|
	@if  test ! -d  $(RESULTDIR) \
 | 
						|
        ; then  \
 | 
						|
           mkdir $(RESULTDIR) \
 | 
						|
        ; else \
 | 
						|
           echo "$(RESULTDIR)  exists" \
 | 
						|
        ; fi
 | 
						|
 | 
						|
programs: $(BINS)
 | 
						|
 | 
						|
# Individual programs
 | 
						|
$(PROGDIR)/arithoh:	$(SRCDIR)/arith.c
 | 
						|
	$(CC) -o $(PROGDIR)/arithoh ${CFLAGS} ${OPTON} -Darithoh $(SRCDIR)/arith.c
 | 
						|
$(PROGDIR)/register: $(SRCDIR)/arith.c
 | 
						|
	$(CC) -o $(PROGDIR)/register ${CFLAGS} ${OPTON} -Ddatum='register int' $(SRCDIR)/arith.c
 | 
						|
$(PROGDIR)/short: $(SRCDIR)/arith.c
 | 
						|
	$(CC) -o $(PROGDIR)/short ${CFLAGS} ${OPTON} -Ddatum=short $(SRCDIR)/arith.c
 | 
						|
$(PROGDIR)/int: $(SRCDIR)/arith.c
 | 
						|
	$(CC) -o $(PROGDIR)/int ${CFLAGS} ${OPTON} -Ddatum=int $(SRCDIR)/arith.c
 | 
						|
$(PROGDIR)/long: $(SRCDIR)/arith.c
 | 
						|
	$(CC) -o $(PROGDIR)/long ${CFLAGS} ${OPTON} -Ddatum=long $(SRCDIR)/arith.c
 | 
						|
$(PROGDIR)/float: $(SRCDIR)/arith.c
 | 
						|
	$(CC) -o $(PROGDIR)/float ${CFLAGS} ${OPTON} -Ddatum=float $(SRCDIR)/arith.c
 | 
						|
$(PROGDIR)/double: $(SRCDIR)/arith.c
 | 
						|
	$(CC) -o $(PROGDIR)/double ${CFLAGS} ${OPTON} -Ddatum=double $(SRCDIR)/arith.c
 | 
						|
$(PROGDIR)/whetstone-double: $(SRCDIR)/whets.c
 | 
						|
	$(CC) -o $(PROGDIR)/whetstone-double ${CFLAGS} ${OPTON} -DDP -DUNIX -DUNIXBENCH $(SRCDIR)/whets.c -lm
 | 
						|
$(PROGDIR)/hanoi: $(SRCDIR)/hanoi.c
 | 
						|
	$(CC) -o $(PROGDIR)/hanoi ${CFLAGS} ${OPTON} $(SRCDIR)/hanoi.c
 | 
						|
 | 
						|
$(PROGDIR)/poll: $(SRCDIR)/time-polling.c
 | 
						|
	$(CC) -DHAS_POLL -DUNIXBENCH -o $(PROGDIR)/poll ${CFLAGS} ${OPTON} $(SRCDIR)/time-polling.c
 | 
						|
 | 
						|
$(PROGDIR)/poll2: $(SRCDIR)/time-polling.c
 | 
						|
	$(CC) -DHAS_POLL2 -DUNIXBENCH -o $(PROGDIR)/poll2 ${CFLAGS} ${OPTON} $(SRCDIR)/time-polling.c
 | 
						|
 | 
						|
$(PROGDIR)/select: $(SRCDIR)/time-polling.c
 | 
						|
	$(CC) -DHAS_SELECT -DUNIXBENCH -o $(PROGDIR)/select ${CFLAGS} ${OPTON} $(SRCDIR)/time-polling.c
 | 
						|
 | 
						|
$(PROGDIR)/fstime: $(SRCDIR)/fstime.c
 | 
						|
	$(CC) -o $(PROGDIR)/fstime ${CFLAGS} ${OPTON} $(SRCDIR)/fstime.c
 | 
						|
 | 
						|
$(PROGDIR)/syscall: $(SRCDIR)/syscall.c
 | 
						|
	$(CC) -o $(PROGDIR)/syscall ${CFLAGS} ${OPTON} $(SRCDIR)/syscall.c
 | 
						|
$(PROGDIR)/context1: $(SRCDIR)/context1.c
 | 
						|
	$(CC) -o $(PROGDIR)/context1 ${CFLAGS} ${OPTON} $(SRCDIR)/context1.c
 | 
						|
$(PROGDIR)/pipe: $(SRCDIR)/pipe.c
 | 
						|
	$(CC) -o $(PROGDIR)/pipe ${CFLAGS} ${OPTON} $(SRCDIR)/pipe.c
 | 
						|
$(PROGDIR)/spawn: $(SRCDIR)/spawn.c
 | 
						|
	$(CC) -o $(PROGDIR)/spawn ${CFLAGS} ${OPTON} $(SRCDIR)/spawn.c
 | 
						|
$(PROGDIR)/execl: $(SRCDIR)/execl.c $(SRCDIR)/big.c
 | 
						|
	$(CC) -o $(PROGDIR)/execl ${CFLAGS} ${OPTON} $(SRCDIR)/execl.c
 | 
						|
 | 
						|
$(PROGDIR)/dhry2: $(SRCDIR)/dhry_1.c $(SRCDIR)/dhry_2.c $(SRCDIR)/dhry.h
 | 
						|
	cd $(SRCDIR); $(CC) -c ${CFLAGS} -DHZ=${HZ} ${OPTON} dhry_1.c
 | 
						|
	cd $(SRCDIR); $(CC) -c ${CFLAGS} -DHZ=${HZ} ${OPTON} dhry_2.c
 | 
						|
	$(CC) -o $(PROGDIR)/dhry2 ${CFLAGS} ${OPTON} $(SRCDIR)/dhry_1.o $(SRCDIR)/dhry_2.o
 | 
						|
	cd $(SRCDIR); rm -f dhry_1.o dhry_2.o
 | 
						|
$(PROGDIR)/dhry2reg: $(SRCDIR)/dhry_1.c $(SRCDIR)/dhry_2.c $(SRCDIR)/dhry.h
 | 
						|
	cd $(SRCDIR); $(CC) -c ${CFLAGS} -DREG=register -DHZ=${HZ} ${OPTON} dhry_1.c
 | 
						|
	cd $(SRCDIR); $(CC) -c ${CFLAGS} -DREG=register -DHZ=${HZ} ${OPTON} dhry_2.c
 | 
						|
	$(CC) -o $(PROGDIR)/dhry2reg ${CFLAGS} ${OPTON} $(SRCDIR)/dhry_1.o $(SRCDIR)/dhry_2.o
 | 
						|
	cd $(SRCDIR); rm -f dhry_1.o dhry_2.o
 | 
						|
 | 
						|
$(PROGDIR)/looper: $(SRCDIR)/looper.c
 | 
						|
	$(CC) -o $(PROGDIR)/looper ${CFLAGS} ${OPTON} $(SRCDIR)/looper.c
 | 
						|
 | 
						|
$(PROGDIR)/ubgears: $(SRCDIR)/ubgears.c
 | 
						|
	$(CC) -o $(PROGDIR)/ubgears ${CFLAGS} ${OPTON} $(SRCDIR)/ubgears.c $(GL_LIBS)
 | 
						|
 | 
						|
# Run the benchmarks and create the reports
 | 
						|
run:
 | 
						|
	sh ./Run
 | 
						|
 | 
						|
clean:
 | 
						|
	rm -f $(BINS) core *~ */*~
 | 
						|
 | 
						|
spotless:	clean
 | 
						|
	rm -f $(RESULTDIR)/* $(TMPDIR)/*
 | 
						|
 | 
						|
## END ##
 |