#!/bin/make # @(#} $Revision: 1.24 $ # @(#} RCS control in //prime.corp/usr/local/src/cmd/prime/src/Makefile # # prime - largest known prime generation discovery package # # Copyright (C) 1997 Landon Curt Noll, all rights reserved. # # Permission to use, copy, modify, and distribute this software and # its documentation for any purpose is hereby granted, provided that # the above copyright, this permission notice, and the disclaimer # below appear in all of the following: # # * supporting documentation # * source copies # * source works derived from this source # # THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, # INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO # EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY SPECIAL, INDIRECT OR # CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF # USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR # OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR # PERFORMANCE OF THIS SOFTWARE. # # Landon Curt Noll /\oo/\ # # chongo@{toad,sgi}.com Share and Enjoy! # make tools and flags # SHELL= /bin/sh CC= cc CFLAGS= -O2 -n32 #CFLAGS= -O2 -n32 -mips4 -r10000 #CFLAGS= -O2 -n32 -r10000 #CFLAGS= -O2 -n32 -DDEBUG #CFLAGS= -g -n32 LDFLAGS= # what we build # OBJS= minv.o init_sieve.o sqrmod.o mapstat.o WORK= mkprimetbl.o primetbl.o pr_tbl.o pattern.o primes.o err.o \ mkprimetbl primes primetbl.c primetbl.h TARGETS= minv_test sqrmod init_sieve mapstat chkcomp testlock \ do_init do_map0 do_map1 report progress sbackup re_comp jump.o \ do_map1a do_map2 # default rule # all: ${TARGETS} # targets # minv_test: minv.c ${CC} ${CFLAGS} -DSTANDALONE minv.c -o minv_test ${LDFLAGS} init_sieve: init_sieve.o primetbl.o primetbl.h ${CC} ${CFLAGS} init_sieve.o primetbl.o -o init_sieve ${LDFLAGS} sqrmod: sqrmod.o ${CC} ${CFLAGS} sqrmod.o -o sqrmod ${LDFLAGS} mapstat: mapstat.o ${CC} ${CFLAGS} mapstat.o -o mapstat ${LDFLAGS} chkcomp: chkcomp.sh chkcomp.awk rm -f chkcomp cp chkcomp.sh chkcomp chmod +x chkcomp do_init: do_init.sh rm -f do_init cp do_init.sh do_init chmod +x do_init do_map0: do_map0.sh rm -f do_map0 cp do_map0.sh do_map0 chmod +x do_map0 do_map1: do_map1.sh rm -f do_map1 cp do_map1.sh do_map1 chmod +x do_map1 do_map1a: do_map1a.sh rm -f do_map1a cp do_map1a.sh do_map1a chmod +x do_map1a do_map2: do_map2.sh rm -f do_map2 cp do_map2.sh do_map2 chmod +x do_map2 re_comp: re_comp.sh rm -f re_comp cp re_comp.sh re_comp chmod +x re_comp report: report.sh rm -f report cp report.sh report chmod +x report progress: progress.sh rm -f progress cp progress.sh progress chmod +x progress sbackup: sbackup.sh rm -f sbackup cp sbackup.sh sbackup chmod +x sbackup # object file rules # init_sieve.o: init_sieve.c primetbl.h ${CC} ${CFLAGS} -c init_sieve.c sqrmod.o: sqrmod.c ${CC} ${CFLAGS} -c sqrmod.c mapstat.o: mapstat.c ${CC} ${CFLAGS} -c mapstat.c # build the full prime table (primetbl.c and primetbl.h) for # odd primes < 2^24+43 (16777259) # primetbl.c primetbl.h: primes mkprimetbl #Makefile rm -f primetbl.c primetbl.h @echo " this next step may take a bit of time" ./primes 1 16777260 | ./mkprimetbl primetbl chmod -w primetbl.c primetbl.h mkprimetbl: mkprimetbl.o ${CC} ${CFLAGS} mkprimetbl.o -o mkprimetbl ${LDFLAGS} primes: pr_tbl.o pattern.o primes.o err.o ${CC} ${CFLAGS} primes.o pr_tbl.o pattern.o err.o -o primes ${LDFLAGS} mkprimetbl.o: mkprimetbl.c ${CC} ${CFLAGS} -c mkprimetbl.c primetbl.o: primetbl.c primetbl.h @echo " this next step may take a bit of time" ${CC} ${CFLAGS} -c primetbl.c pr_tbl.o: pr_tbl.c primes.h ${CC} ${CFLAGS} pr_tbl.c -c pattern.o: pattern.c ${CC} ${CFLAGS} pattern.c -c primes.o: primes.c primes.h err.h ${CC} ${CFLAGS} primes.c -c err.o: err.c err.h ${CC} ${CFLAGS} err.c -c jump.o: jump.c jump.h ${CC} ${CFLAGS} jump.c -c testlock: testlock.o ${CC} ${CFLAGS} testlock.o -o testlock ${LDFLAGS} testlock.o: testlock.c ${CC} ${CFLAGS} testlock.c -c # utility rules # clean: rm -f ${OBJS} rm -f ${WORK} clobber: clean rm -f ${TARGETS} jump.o